]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
sem_prag.ads (Build_Classwide_Expression): new procedure to build the expression...
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
017d237e
ES
12016-06-22 Ed Schonberg <schonberg@adacore.com>
2
3 * sem_prag.ads (Build_Classwide_Expression): new procedure to
4 build the expression for an inherited classwide condition, and
5 to validate such expressions when they apply to an inherited
6 operation that is not overridden.
7 * sem_prag.adb (Primitives_Mapping): new data structure to
8 handle the mapping between operations of a root type and the
9 corresponding overriding operations of a type extension. Used
10 to construct the expression for an inherited classwide condition.
11 (Update_Primitives_Mapping): add to Primitives_Mapping the links
12 between primitive operations of a root type and those of a given
13 type extension.
14 (Build_Pragma_Check_Equivalent): use Primitives_Mapping.
15 * sem_ch6.adb (New_Overloaded_Entity): Remove call to
16 Collect_Iherited_Class_Wide_Conditions in GNATprove_Mode. This
17 needs to be done at freeze point of the type.
18 * freeze.adb (Check_Inherited_Conditions): new procedure to
19 verify the legality of inherited classwide conditions. In normal
20 compilation mode the procedure determines whether an inherited
21 operation needs a wrapper to handle an inherited condition that
22 differs from the condition of the root type. In SPARK mode
23 the routine invokes Collect_Inherited_Class_Wide_Conditions to
24 produce the SPARK version of these inherited conditions.
25 (Freeze_Record_Type): For a type extension, call
26 Check_Inherited_Conditions.
27
497a660d
AC
282016-06-22 Hristian Kirtchev <kirtchev@adacore.com>
29
30 * sem_ch3.adb, sem_type.adb, sem.adb, freeze.adb, sem_util.adb,
31 s-htable.adb, exp_ch11.adb, s-secsta.adb, restrict.adb, exp_disp.adb,
32 sem_ch8.adb, s-tpobop.adb, exp_aggr.ads, sem_ch13.adb: Minor
33 reformatting.
34
352016-06-22 Yannick Moy <moy@adacore.com>
36
37 * lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Inverse order of
38 treatments so that files without compilation unit are simply skipped
39 before more elaborate treatments.
40
412016-06-22 Bob Duff <duff@adacore.com>
42
43 * s-memory.ads: Minor typo fixes in comments.
44 * s-memory.adb: Code cleanup.
45
35484fc8
OH
462016-05-22 Olivier Hainque <hainque@adacore.com>
47
48 * vxworks-crtbe-link.spec: Removed, no longer used.
49
194d6f3f
JS
502016-06-22 Justin Squirek <squirek@adacore.com>
51
52 * sem_ch8.adb (Push_Scope): Add a check for when the
53 scope table is empty to assign the global variable
54 Configuration_Component_Alignment.
55 * sem.adb (Do_Analyze): Add Configuration_Component_Alignment
56 to be assigned when the environment is cleaned instead of the
57 default.
58 * sem.ads Add a global variable Configuration_Component_Alignment
59 to store the value given by pragma Component_Alignment in the
60 context of a configuration file.
61 * sem_prag.adb (Analyze_Pragma): Correct the case for
62 Component_Alignment so that the pragma is verified and add
63 comments to explain how it is applied to the scope stack.
64
652016-06-22 Justin Squirek <squirek@adacore.com>
66
67 * sprint.adb (Sprint_Node_Actual): Add check in
68 the case of an N_Object_Declaration when evaluating an expression
69 to properly ignore errors.
70
d1aea5dd
AC
712016-06-22 Bob Duff <duff@adacore.com>
72
73 * g-comlin.ads (Parameter_Type): Change subtype of Last to
74 Natural.
75 * g-comlin.adb (Set_Parameter): Change subtype of Last to
76 Natural.
77 (Getopt): Check for Arg = "", and Switches /= "".
78 (Internal_Initialize_Option_Scan): Check for Argument (Parser,
79 Index) /= "".
80
812016-06-22 Gary Dismukes <dismukes@adacore.com>
82
83 * sem_prag.adb, sem_ch8.adb: Minor reformatting.
84
405b907c
AC
852016-06-22 Ed Schonberg <schonberg@adacore.com>
86
87 * einfo.ads, einfo.adb (Is_Actual_Subtype): New flag, defined
88 on subtypes that are created within subprogram bodies to handle
89 unconstrained composite formals.
90 * checks.adb (Apply_Predicate_Check): Do not generate a check on
91 an object whose type is an actual subtype.
92 * sem_ch6.adb (Set_Actual_Subtypes): Do not generate an
93 actual subtype for a formal whose base type is private.
94 Set Is_Actual_Subtype on corresponding entity after analyzing
95 its declaration.
96
972016-06-22 Justin Squirek <squirek@adacore.com>
98
99 * sem_prag.adb (Check_Expr_Is_OK_Static_Expression): Fix ordering
100 of if-block and add in a condition to test for errors during
101 resolution.
102 * sem_res.adb (Resolution_Failed): Add comment to explain why
103 the type of a node which failed to resolve is set to the desired
104 type instead of Any_Type.
105 * sem_ch8.adb (Analyze_Object_Renaming): Add a check for Any_Type
106 to prevent crashes on Is_Access_Constant.
107
80007176
AC
1082016-06-22 Hristian Kirtchev <kirtchev@adacore.com>
109
110 * lib-xref-spark_specific.adb, checks.adb, sem_ch13.adb: Minor
111 reformatting.
112 * exp_ch7.adb: Minor typo fix.
113 * lib.ads (Get_Top_Level_Code_Unit): Add comment.
114
1152016-06-22 Bob Duff <duff@adacore.com>
116
117 * s-tassta.adb (Task_Wrapper): Fix handling of Fall_Back_Handler
118 wrt independent tasks.
119
1202016-06-22 Ed Schonberg <schonberg@adacore.com>
121
122 * sem_dim.adb (Analyze_Dimension): Propagate dimension for
123 explicit_dereference nodes when they do not come from source,
124 to handle correctly dimensional analysis on iterators over
125 containers whose elements have declared dimensions.
126
7ffbef99
AC
1272016-06-22 Arnaud Charlet <charlet@adacore.com>
128
129 * spark_xrefs.ads (Scope_Num): type refined to positive integers.
130 * lib-xref-spark_specific.adb (Detect_And_Add_SPARK_Scope):
131 moved into scope of Collect_SPARK_Xrefs.
132 (Add_SPARK_Scope): moved into scope of Collect_SPARK_Xrefs;
133 now uses Dspec and Scope_Id from Collect_SPARK_Xrefs.
134 (Collect_SPARK_Xrefs): refactored to avoid retraversing the list
135 of scopes.
136 (Traverse_Compilation_Unit): refactored as a generic procedure.
137 * types.ads (Unit_Number_Type): range refined.
138
f26a3587
AC
1392016-06-22 Hristian Kirtchev <kirtchev@adacore.com>
140
141 * lib-xref-spark_specific.adb, a-cuprqu.ads, sem_ch6.adb: Minor
142 reformatting.
143
1442016-06-22 Eric Botcazou <ebotcazou@adacore.com>
145
146 * sem_util.ads (Address_Value): Declare new function.
147 * sem_util.adb (Address_Value): New function extracted
148 unmodified from Apply_Address_Clause_Check, which returns the
149 underlying value of the expression of an address clause.
150 * checks.adb (Compile_Time_Bad_Alignment): Delete.
151 (Apply_Address_Clause_Check): Call Address_Value on
152 the expression. Do not issue the main warning here and
153 issue the secondary warning only when the value of the
154 expression is not known at compile time.
155 * sem_ch13.adb (Address_Clause_Check_Record): Add A component and
156 adjust the description.
157 (Analyze_Attribute_Definition_Clause): In the case
158 of an address, move up the code creating an entry in the table of
159 address clauses. Also create an entry for an absolute address.
160 (Validate_Address_Clauses): Issue the warning for absolute
161 addresses here too. Tweak condition associated with overlays
162 for consistency.
163
f24ea912
AC
1642016-06-22 Ed Schonberg <schonberg@adacore.com>
165
166 * sem_ch13.adb (Is_Predicate_Static): An inherited predicate
167 can be static only if it applies to a scalar type.
168
1692016-06-22 Ed Schonberg <schonberg@adacore.com>
170
171 * exp_util.adb (Adjust_Result_Type): Convert operand to base
172 type to prevent spurious constraint checks on subtypes of Boolean.
173
1742016-06-22 Bob Duff <duff@adacore.com>
175
176 * debug.adb: Document debug switch -gnatd.o.
177 * sem_elab.adb (Check_Internal_Call): Debug switch -gnatd.o
178 now causes a more conservative treatment of indirect calls,
179 treating P'Access as a call to P in more cases. We Can't make
180 this the default, because it breaks common idioms, for example
181 the soft links.
182 * sem_util.adb: Add an Assert.
183
1842016-06-22 Bob Duff <duff@adacore.com>
185
186 * a-cuprqu.ads, a-cuprqu.adb: Completely rewrite this package. Use
187 red-black trees, which gives O(lg N) worst-case performance on
188 Enqueue and Dequeue. The previous version had O(N) Enqueue in
189 the worst case.
190
1912016-06-22 Arnaud Charlet <charlet@adacore.com>
192
193 * sem_warn.adb: minor style fix in comment.
194 * spark_xrefs.ads (Scope_Num): type refined to positive integers.
195 * lib-xref-spark_specific.adb (Detect_And_Add_SPARK_Scope):
196 moved into scope of Collect_SPARK_Xrefs.
197 (Add_SPARK_Scope): moved into scope of Collect_SPARK_Xrefs;
198 now uses Dspec and Scope_Id from Collect_SPARK_Xrefs.
199 (Collect_SPARK_Xrefs): refactored to avoid retraversing the list
200 of scopes.
201 * sem_ch3.adb (Build_Discriminal): Set Parent of the discriminal.
202
b48a45e3
AC
2032016-06-22 Arnaud Charlet <charlet@adacore.com>
204
205 * lib-xref-spark_specific.adb (Generate_Dereference): Assignment to not
206 commented local variables replaced with direct uses of their values.
207
22da8770
AC
2082016-06-22 Hristian Kirtchev <kirtchev@adacore.com>
209
210 * exp_ch7.adb (Add_Invariant): Replace the
211 current type instance with the _object parameter even in ASIS mode.
212 (Build_Invariant_Procedure_Body): Do not insert the
213 invariant procedure body into the tree for ASIS and GNATprove.
214 (Build_Invariant_Procedure_Declaration): Do not insert the
215 invariant procedure declaration into the tree for ASIS and
216 GNATprove.
217 * lib-xref-spark_specific.adb (Add_SPARK_Scope): Update comment.
218
2192016-06-22 Ed Schonberg <schonberg@adacore.com>
220
221 * sem_ch6.adb (Set_Actual_Subtypes): If the type of the actual
222 has predicates, the actual subtype must be frozen properly
223 because of the generated tests that may follow. The predicate
224 may be specified by an explicit aspect, or may be inherited in
225 a derivation.
226
444656ce
ES
2272016-06-22 Ed Schonberg <schonberg@adacore.com>
228
229 * exp_ch4.adb (In_Range_Chec)): New predicate, subsidiary of
230 Expand_N_In: within an expanded range check that might raise
231 Constraint_Error do not generate a predicate check as well. It
232 is redundant because the context will add an explicit predicate
233 check, and it will raise the wrong exception if it fails.
234 * lib-xref-spark_specific.adb (Add_SPARK_File): Remove useless checks
235 since dependency units always have an associated compilation unit.
236
3bb91f98
AC
2372016-06-22 Arnaud Charlet <charlet@adacore.com>
238
239 * lib.ads: Code cleanup.
240 * inline.adb: Type refinement for a counter variable.
241 * lib-xref-spark_specific.adb (Add_SPARK_File): removal of no-op code.
242 Code cleanup.
243
d42b7559
EB
2442016-06-21 Eric Botcazou <ebotcazou@adacore.com>
245
246 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): New
247 function.
248 (set_reverse_storage_order_on_array_type): Likewise.
249 (gnat_to_gnu_entity) <E_Array_Type>: Call them to set the flags.
250 <E_Array_Subtype>: Likewise.
251 <E_String_Literal_Subtype>: Likewise.
252 (substitute_in_type) <ARRAY_TYPE>: Likewise.
253 * gcc-interface/utils.c (gnat_pushdecl): Always create a variant for
254 the DECL_ORIGINAL_TYPE of a type.
255
20250fb8
AC
2562016-06-20 Hristian Kirtchev <kirtchev@adacore.com>
257
258 * make.adb, gnatbind.adb, g-socket.adb, sem_ch13.adb: Minor
259 reformatting.
260 * lib.ads, sem_util.adb: Minor typo in comment.
261
2622016-06-20 Yannick Moy <moy@adacore.com>
263
264 * sem_prag.adb, sem_prag.ads (Build_Pragma_Check_Equivalent):
265 Add parameter Keep_Pragma_Id to optionally keep
266 the identifier of the pragma instead of converting
267 to pragma Check. Also set type of new function call
268 appropriately. (Collect_Inherited_Class_Wide_Conditions):
269 Call Build_Pragma_Check_Equivalent with the new parameter
270 Keep_Pragma_Id set to True to keep the identifier of the copied
271 pragma.
272 * sinfo.ads: Add comment.
273
2742016-06-20 Hristian Kirtchev <kirtchev@adacore.com>
275
276 * exp_ch7.adb (Build_Invariant_Procedure_Body):
277 Always install the scope of the invariant procedure
278 in order to produce better error messages. Do not
279 insert the body when the context is a generic unit.
280 (Build_Invariant_Procedure_Declaration): Perform minimal
281 decoration of the invariant procedure and its formal parameter
282 in case they are not analyzed. Do not insert the declaration
283 when the context is a generic unit.
284
9e3be36e
ES
2852016-06-20 Ed Schonberg <schonberg@adacore.com>
286
287 * sem_ch13.adb (Visible_Component): New procedure, subsidiary
288 of Replace_Type_References_ Generic, to determine whether an
289 identifier in a predicate or invariant expression is a visible
290 component of the type to which the predicate or invariant
291 applies. Implements the visibility rule stated in RM 13.1.1
292 (12/3).
293
2f8d7dfe
AC
2942016-06-20 Hristian Kirtchev <kirtchev@adacore.com>
295
296 * s-regpat.adb, sem_prag.adb, pprint.adb, sem_ch13.adb: Minor
297 reformatting.
298
2992016-06-20 Tristan Gingold <gingold@adacore.com>
300
301 * make.adb (Check_Standard_Library): Consider system.ads
302 if s-stalib.adb is not available.
303 * gnatbind.adb (Add_Artificial_ALI_File): New procedure extracted from
304 gnatbind.
305
3062016-06-20 Thomas Quinot <quinot@adacore.com>
307
308 * g-socket.adb (Is_IP_Address): A string consisting in digits only is
309 not a dotted quad.
310
3112016-06-20 Arnaud Charlet <charlet@adacore.com>
312
313 * exp_ch7.adb (Build_Invariant_Procedure_Body):
314 decorate invariant procedure body with typical properties of
315 procedure entityes.
316
3172016-06-20 Arnaud Charlet <charlet@adacore.com>
318
319 * a-exetim-darwin.adb: New file.
320
3ddfabe3
AC
3212016-06-16 Hristian Kirtchev <kirtchev@adacore.com>
322
323 * atree.ads, atree.adb (Elist29): New routine.
324 (Set_Elist29): New routine.
325 * atree.h New definition for Elist29.
326 * einfo.adb Subprograms_For_Type is now an Elist rather than
327 a node. Has_Invariants is now a synthesized attribute
328 and does not require a flag. Has_Own_Invariants
329 is now Flag232. Has_Inherited_Invariants is
330 Flag291. Is_Partial_Invariant_Procedure is Flag292.
331 (Default_Init_Cond_Procedure): Reimplemented.
332 (Has_Inherited_Invariants): New routine.
333 (Has_Invariants): Reimplemented.
334 (Has_Own_Invariants): New routine.
335 (Invariant_Procedure): Reimplemented.
336 (Is_Partial_Invariant_Procedure): New routine.
337 (Partial_Invariant_Procedure): Reimplemented.
338 (Predicate_Function): Reimplemented.
339 (Predicate_Function_M): Reimplemented.
340 (Set_Default_Init_Cond_Procedure): Reimplemented.
341 (Set_Has_Inherited_Invariants): New routine.
342 (Set_Has_Invariants): Removed.
343 (Set_Has_Own_Invariants): New routine.
344 (Set_Invariant_Procedure): Reimplemented.
345 (Set_Is_Partial_Invariant_Procedure): New routine.
346 (Set_Partial_Invariant_Procedure): Reimplemented.
347 (Set_Predicate_Function): Reimplemented.
348 (Set_Predicate_Function_M): Reimplemented.
349 (Set_Subprograms_For_Type): Reimplemented.
350 (Subprograms_For_Type): Reimplemented.
351 (Write_Entity_Flags): Output Flag232 and Flag291.
352 * einfo.ads Add new attributes Has_Inherited_Invariants
353 Has_Own_Invariants Is_Partial_Invariant_Procedure
354 Partial_Invariant_Procedure Change the documentation
355 of attributes Has_Inheritable_Invariants Has_Invariants
356 Invariant_Procedure Is_Invariant_Procedure Subprograms_For_Type
357 (Has_Inherited_Invariants): New routine along with pragma Inline.
358 (Has_Own_Invariants): New routine along with pragma Inline.
359 (Is_Partial_Invariant_Procedure): New routine along with pragma Inline.
360 (Partial_Invariant_Procedure): New routine.
361 (Set_Has_Inherited_Invariants): New routine along with pragma Inline.
362 (Set_Has_Invariants): Removed along with pragma Inline.
363 (Set_Has_Own_Invariants): New routine along with pragma Inline.
364 (Set_Is_Partial_Invariant_Procedure): New routine
365 along with pragma Inline.
366 (Set_Partial_Invariant_Procedure): New routine.
367 (Set_Subprograms_For_Type): Update the signature.
368 (Subprograms_For_Type): Update the signature.
369 * exp_ch3.adb Remove with and use clauses for Sem_Ch13.
370 (Build_Array_Invariant_Proc): Removed.
371 (Build_Record_Invariant_Proc): Removed.
372 (Freeze_Type): Build the body of the invariant procedure.
373 (Insert_Component_Invariant_Checks): Removed.
374 * exp_ch7.adb Add with and use clauses for Sem_Ch6, Sem_Ch13,
375 and Stringt.
376 (Build_Invariant_Procedure_Body): New routine.
377 (Build_Invariant_Procedure_Declaration): New routine.
378 * exp_ch7.ads (Build_Invariant_Procedure_Body): New routine.
379 (Build_Invariant_Procedure_Declaration): New routine.
380 * exp_ch9.adb (Build_Corresponding_Record): Do not propagate
381 attributes related to invariants to the corresponding record
382 when building the corresponding record. This is done by
383 Build_Invariant_Procedure_Declaration.
384 * exp_util.adb (Make_Invariant_Call): Reimplemented.
385 * freeze.adb (Freeze_Array_Type): An array type requires an
386 invariant procedure when its component type has invariants.
387 (Freeze_Record_Type): A record type requires an invariant
388 procedure when at least one of its components has an invariant.
389 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Inherit
390 invariant-related attributes.
391 (Analyze_Subtype_Declaration):
392 Inherit invariant-related attributes.
393 (Build_Derived_Record_Type): Inherit invariant-related attributes.
394 (Check_Duplicate_Aspects): Reimplemented.
395 (Get_Partial_View_Aspect): New routine.
396 (Process_Full_View): Inherit invariant-related attributes. Reimplement
397 the check on hidden inheritance of class-wide invariants.
398 (Remove_Default_Init_Cond_Procedure): Reimplemented.
399 * sem_ch6.adb (Analyze_Subprogram_Specification): Do not modify
400 the controlling type for an invariant procedure declaration
401 or body.
402 (Is_Invariant_Procedure_Or_Body): New routine.
403 * sem_ch7.adb (Analyze_Package_Specification): Build the partial
404 invariant body in order to preanalyze and resolve all invariants
405 of a private type at the end of the visible declarations. Build
406 the full invariant body in order to preanalyze and resolve
407 all invariants of a private type's full view at the end of
408 the private declarations.
409 (Preserve_Full_Attributes): Inherit invariant-related attributes.
410 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Ensure that
411 aspects are analyzed with the proper view when the protected type
412 is a completion of a private type. Inherit invariant-related attributes.
413 (Analyze_Task_Type_Declaration): Ensure that
414 aspects are analyzed with the proper view when the task type
415 is a completion of a private type. Inherit invariant-related
416 attributes.
417 * sem_ch13.adb Remove with and use clauses for Stringt.
418 (Build_Invariant_Procedure_Declaration): Removed.
419 (Build_Invariant_Procedure): Removed.
420 (Freeze_Entity_Checks): Do not build the body of the invariant
421 procedure here.
422 The body is built when the type is frozen in Freeze_Type.
423 (Inherit_Aspects_At_Freeze_Point): Do not inherit any attributes
424 related to invariants here because this leads to erroneous
425 inheritance.
426 (Replace_Node): Rename to Replace_Type_Ref.
427 * sem_ch13.ads (Build_Invariant_Procedure_Declaration): Removed.
428 (Build_Invariant_Procedure): Removed.
429 * sem_prag.adb Add with and use clauses for Exp_Ch7.
430 (Analyze_Pragma): Reimplement the analysis of pragma Invariant.
431 * sem_res.adb (Resolve_Actuals): Emit a specialized error when
432 the context is an invariant.
433 * sem_util.adb (Get_Views): New routine.
434 (Incomplete_Or_Partial_View): Consider generic packages when
435 examining declarations.
436 (Inspect_Decls): Consider full type
437 declarations because they may denote a derivation from a
438 private type.
439 (Propagate_Invariant_Attributes): New routine.
440 * sem_util.ads (Get_Views): New routine.
441 (Propagate_Invariant_Attributes): New routine.
442
4432016-06-16 Arnaud Charlet <charlet@adacore.com>
444
445 * pprint.adb (Expression_Image): Add better handling of UCs,
446 we don't want to strip them all for clarity.
447
448
ff7b374b
KT
4492016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
450
451 * exp_util.adb (Safe_Unchecked_Type_Conversion): Use "alignment"
452 instead of "alignement".
453
73170f9e
AC
4542016-06-16 Gary Dismukes <dismukes@adacore.com>
455
456 * sem_util.adb: Minor typo fix.
457
4582016-06-16 Emmanuel Briot <briot@adacore.com>
459
460 * s-regpat.adb: Further fix for invalid index in GNAT.Regexp.
461
4622016-06-16 Eric Botcazou <ebotcazou@adacore.com>
463
464 * sem_ch13.adb (Validate_Address_Clauses): Use the same logic to
465 issue the warning on the offset for the size as for the alignment
466 and tweak the wording for the sake of consistency.
467
4682016-06-16 Ed Schonberg <schonberg@adacore.com>
469
470 * sem_prag.adb (Check_Class_Wide_COndition): New procedure,
471 subsidiary of Analyze_Pre_Post_ Condition_In_Decl_Part, to
472 check legality rules that follow from the revised semantics of
473 class-wide pre/postconditions described in AI12-0113.
474 (Build_Pragma_Check_Equivalent): Abstract subprogram declarations
475 must be included in list of overriding primitives of a derived
476 type.
477
4bfb35fd
AC
4782016-06-16 Ed Schonberg <schonberg@adacore.com>
479
480 * sem_util.adb (May_Be_Lvalue): An actual in an unexpanded
481 attribute reference 'Read is an assignment and must be considered
482 a modification of the object.
483
4842016-06-16 Gary Dismukes <dismukes@adacore.com>
485
486 * einfo.adb: Minor editorial.
487
d1b83e62
AC
4882016-06-16 Ed Schonberg <schonberg@adacore.com>
489
490 * sem_prag.adb (Overridden_Ancestor): Clean up code to use
491 controlling type of desired primitive rather than its scope,
492 because the primitive that inherits the classwide condition may
493 comes from several derivation steps.
494
4952016-06-16 Javier Miranda <miranda@adacore.com>
496
497 * einfo.adb (Set_Default_Init_Cond_Procedure): Allow calls setting
498 this attribute to Empty (only if the attribute has not been set).
499 * sem_util.adb (Build_Default_Init_Cond_Procedure_Body):
500 No action needed if the spec was not built.
501 (Build_Default_Init_Cond_Procedure_Declaration): The spec is
502 not built if DIC is set to NULL or no condition was specified.
503 * exp_ch3.adb (Expand_N_Object_Declaration): Check availability
504 of the Init_Cond procedure before generating code to call it.
505
5062016-06-16 Emmanuel Briot <briot@adacore.com>
507
508 * s-regpat.adb: Fix invalid index check when matching end-of-line
509 on substrings.
510
5112016-06-16 Arnaud Charlet <charlet@adacore.com>
512
513 * gnat1drv.adb: Minor reformatting.
514
3386e3ae
AC
5152016-06-16 Ed Schonberg <schonberg@adacore.com>
516
517 * sem_ch3.adb (Check_Entry_Contracts): New procedure, subsidiary
518 of Analyze_Declarations, that performs pre-analysis of
519 pre/postconditions on entry declarations before full analysis
520 is performed after entries have been converted into procedures.
521 Done solely to capture semantic errors.
522 * sem_attr.adb (Analyze_Attribute, case 'Result): Add guard to
523 call to Denote_Same_Function.
524
5252016-06-16 Emmanuel Briot <briot@adacore.com>
526
527 * g-comlin.adb: Fix minor memory leak in GNAT.Command_Line.
528
5292016-06-16 Hristian Kirtchev <kirtchev@adacore.com>
530
531 * exp_ch7.adb (Find_Last_Init): Remove obsolete code. The
532 logic is now performed by Process_Object_Declaration.
533 (Process_Declarations): Recognize a controlled deferred
534 constant which is in fact initialized by means of a
535 build-in-place function call as needing finalization actions.
536 (Process_Object_Declaration): Insert the counter after the
537 build-in-place initialization call for a controlled object. This
538 was previously done in Find_Last_Init.
539 * exp_util.adb (Requires_Cleanup_Actions): Recognize a controlled
540 deferred constant which is in fact initialized by means of a
541 build-in-place function call as needing finalization actions.
542
5432016-06-16 Justin Squirek <squirek@adacore.com>
544
545 * exp_aggr.adb (Expand_Array_Aggregate): Minor comment changes and
546 additional style fixes.
547 * exp_ch7.adb: Minor typo fixes and reformatting.
548
5ed4ba15
AC
5492016-06-16 Justin Squirek <squirek@adacore.com>
550
551 * sem_ch3.adb (Analyze_Object_Declaration): Add a missing check
552 for optimized aggregate arrays with qualified expressions.
553 * exp_aggr.adb (Expand_Array_Aggregate): Fix block and
554 conditional statement in charge of deciding whether to perform
555 in-place expansion. Specifically, use Parent_Node to jump over
556 the qualified expression to the object declaration node. Also,
557 a check has been inserted to skip the optimization if SPARK 2005
558 is being used in strict adherence to RM 4.3(5).
559
5602016-06-16 Tristan Gingold <gingold@adacore.com>
561
562 * sem_prag.adb (Analyze_Pragma): Simplify code
563 for Pragma_Priority.
564
36d3d5d3
EB
5652016-06-16 Eric Botcazou <ebotcazou@adacore.com>
566
567 * sem_util.ads (Indexed_Component_Bit_Offset): Declare.
568 * sem_util.adb (Indexed_Component_Bit_Offset): New
569 function returning the offset of an indexed component.
570 (Has_Compatible_Alignment_Internal): Call it.
571 * sem_ch13.adb (Offset_Value): New function returning the offset of an
572 Address attribute reference from the underlying entity.
573 (Validate_Address_Clauses): Call it and take the offset into
574 account for the size warning.
575
34557478
HK
5762016-06-16 Hristian Kirtchev <kirtchev@adacore.com>
577
578 * bindgen.adb, exp_util.adb, sem_ch9.adb, sem_util.adb: Minor
579 reformatting.
580
3ab53b0d
GD
5812016-06-16 Gary Dismukes <dismukes@adacore.com>
582
583 * sem_ch9.adb, sem_util.ads, sem_res.adb: Minor reformatting and typo
584 fixes.
585
a8a42b93
AC
5862016-06-16 Javier Miranda <miranda@adacore.com>
587
588 * sem_res.adb (Resolve): Under relaxed RM semantics silently
589 replace occurrences of null by System.Null_Address.
590 * sem_ch4.adb (Analyze_One_Call, Operator_Check): Under
591 relaxed RM semantics silently replace occurrences of null by
592 System.Null_Address.
593 * sem_util.ad[sb] (Null_To_Null_Address_Convert_OK): New subprogram.
594 (Replace_Null_By_Null_Address): New subprogram.
595
5962016-06-16 Bob Duff <duff@adacore.com>
597
598 * exp_util.adb (Is_Controlled_Function_Call):
599 This was missing the case where the call is in prefix format,
600 with named notation, as in Obj.Func (Formal => Actual).
601
fb757f7d
AC
6022016-06-16 Hristian Kirtchev <kirtchev@adacore.com>
603
604 * exp_attr.adb, inline.adb, sem_attr.adb, sem_elab.adb: Minor
605 reformatting.
606
6072016-06-16 Bob Duff <duff@adacore.com>
608
609 * sem_util.adb (Collect): Avoid Empty Full_T. Otherwise Etype
610 (Full_T) crashes when assertions are on.
611 * sem_ch12.adb (Matching_Actual): Correctly handle the case where
612 "others => <>" appears in a generic formal package, other than
613 by itself.
614
6152016-06-16 Arnaud Charlet <charlet@adacore.com>
616
617 * usage.adb: Remove confusing comment in usage line.
618 * bindgen.adb: Fix binder generated file in codepeer mode wrt
619 recent additions.
620
6212016-06-16 Javier Miranda <miranda@adacore.com>
622
623 * restrict.adb (Check_Restriction_No_Use_Of_Entity): Avoid
624 never-ending loop, code cleanup; adding also support for Text_IO.
625 * sem_ch8.adb (Find_Expanded_Name): Invoke
626 Check_Restriction_No_Use_Entity.
627
6282016-06-16 Tristan Gingold <gingold@adacore.com>
629
630 * exp_ch9.adb: Minor comment fix.
631 * einfo.ads (Has_Protected): Clarify comment.
632 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Do not
633 consider private protected types declared in the runtime for
634 the No_Local_Protected_Types restriction.
635
124bed29
AC
6362016-06-14 Ed Schonberg <schonberg@adacore.com>
637
638 * sem_ch6.adb (Set_Actual_Subtypes): Do not generate actual
639 subtypes for unconstrained formals when analyzing the generated
640 body of an expression function, because it may lead to premature
641 and misplaced freezing of the types of formals.
642
6432016-06-14 Gary Dismukes <dismukes@adacore.com>
644
645 * sem_elab.adb, sem_ch4.adb: Minor reformatting and typo fix.
646
6472016-06-14 Tristan Gingold <gingold@adacore.com>
648
649 * einfo.adb (Set_Has_Timing_Event): Add assertion.
650 * sem_util.ads, sem_util.adb (Propagate_Concurrent_Flags): New
651 name for Propagate_Type_Has_Flags.
652 * exp_ch3.adb, sem_ch3.adb, sem_ch7.adb, sem_ch9.adb: Adjust after
653 renaming.
654
519e9fdf
AC
6552016-06-14 Bob Duff <duff@adacore.com>
656
657 * sem_elab.adb (Check_A_Call): Do nothing if the callee is
658 (or is in) an instance, and the caller is outside. Misc cleanup.
659
6602016-06-14 Javier Miranda <miranda@adacore.com>
661
662 * sem_ch4.adb (Analyze_Quantified_Expression):
663 Generating C code avoid spurious warning on loop variable of
664 inlinined postconditions.
665
64f5d139
JM
6662016-06-14 Javier Miranda <miranda@adacore.com>
667
668 * sem_attr.adb (Analyze_Attribute_Old_Result): Adding assertion.
669 (Analyze_Attribute [Attribute_Old]): Generating C handle
670 analysis of 'old in inlined postconditions.
671 (Analyze_Attribute [Attribute_Result]): Generating C handle analysis
672 of 'result in inlined postconditions.
673 * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Old]):
674 Generating C handle expansion of 'old in inlined postconditions.
675 * inline.adb (Declare_Postconditions_Result): New subprogram.
676 * sem_ch12.adb (Copy_Generic_Node): Copy pragmas generated from
677 aspects when generating C code since pre/post conditions are
678 inlined and the frontend inlining relies on this routine to
679 perform inlining.
680 * exp_ch6.adb (Inlined_Subprogram): Replace Generate_C_Code
681 by Modify_Tree_For_C.
682 * exp_unst.adb (Visit_Node): Searching for up-level references
683 skip entities defined in inlined subprograms.
684
5a527952
AC
6852016-06-14 Hristian Kirtchev <kirtchev@adacore.com>
686
687 * sem_ch7.adb, sem_ch12.adb, freeze.adb, lib-xref.ads, exp_ch3.adb:
688 Minor reformatting.
689
6902016-06-14 Bob Duff <duff@adacore.com>
691
692 * sem_elab.adb: Do nothing if the callee is intrinsic.
693 * sinfo.ads, einfo.ads: Minor comment fixes.
694
7782ff67
AC
6952016-06-14 Ed Schonberg <schonberg@adacore.com>
696
697 * contracts.adb (Has_Null_Body): Move to sem_util, for general
698 availability.
699 * sem_util.ads, sem_util.adb (Has_Null_Body): Predicate to
700 determine when an internal procedure created for some assertion
701 checking (e.g. type invariant) is a null procedure. Used to
702 eliminate redundant calls to such procedures when they apply to
703 components of composite types.
704 * exp_ch3.adb (Build_Component_Invariant_Call): Do not add call
705 if invariant procedure has a null body.
706
7072016-06-14 Thomas Quinot <quinot@adacore.com>
708
709 * g-socket.ads (Check_Selector): Clarify effect on IN OUT socket
710 set parameters.
711
7122016-06-14 Hristian Kirtchev <kirtchev@adacore.com>
713
714 * exp_ch4.adb (Process_Action): Pass the action
715 list to Process_Transient_Object.
716 (Process_If_Case_Statements): Pass the action list to
717 Process_Transient_Object.
718 (Process_Transient_Object): Add new parameter Stmts and update the
719 comment on usage. When the context is a Boolean evaluation, insert
720 any finalization calls after the last statement of the construct.
721
4969efdf
AC
7222016-06-14 Tristan Gingold <gingold@adacore.com>
723
724 * einfo.adb, einfo.ads (Has_Timing_Event,
725 Set_Has_Timing_Event): Add Has_Timing_Event flag.
726 (Write_Entity_Flags): Display * sem_util.ads, sem_util.adb:
727 (Propagate_Type_Has_Flags): New procedure to factorize code.
728 * exp_ch3.adb (Expand_Freeze_Array_Type,
729 Expand_Freeze_Record_Type): Call Propagate_Type_Has_Flags.
730 * sem_ch3.adb (Access_Type_Decalaration): Initialize
731 Has_Timing_Event flag. (Analyze_Object_Declaration):
732 Move code that check No_Local_Timing_Events near
733 the code that check No_Local_Protected_Objects.
734 (Analyze_Private_Extension_Declaration, Array_Type_Declaration)
735 (Build_Derived_Type, Copy_Array_Base_Type_Attributes,
736 Process_Full_View) (Record_Type_Definition): Call
737 Propagate_Type_Has_Flags.
738 * sem_ch4.adb (Analyze_Allocator): Check No_Local_Timing_Events.
739 * sem_ch7.adb (New_Private_Type): Set Has_Timing_Event on the
740 Timing_Event type.
741 (Uninstall_Declaration): Call Propagate_Type_Has_Flags.
742 * sem_ch9.adb (Analyze_Protected_Definition): Call
743 Propagate_Type_Has_Flags.
744
7452016-06-14 Arnaud Charlet <charlet@adacore.com>
746
747 * sem.ads: Minor style fix.
748
44900051
AC
7492016-06-14 Ed Schonberg <schonberg@adacore.com>
750
751 * sem_ch12.adb (Analyze_Associations): An actual parameter
752 with a box must be included in the count of actuals, to detect
753 possible superfluous named actuals that do not match any of the
754 formals of the generic unit in a formal package declaration.
755
7562016-06-14 Justin Squirek <squirek@adacore.com>
757
758 * sem_ch3.adb (Analyze_Object_Declaration): Fix formatting
759 of error output related to SPARK RM 6.1.7(3) and pragma
760 Extensions_Visible.
761 * sem_ch4.adb (Analyze_Type_Conversion): Fix formatting of error
762 output related to SPARK RM 6.1.7(3) and pragma Extensions_Visible.
763 * sem_prag.adb (Analyze_Pragma): Fix formatting of error output
764 related to SPARK RM 7.1.2(15) and pragma Volatile_Function
765 so that the values True and False are no longer surrounded by
766 double quotes.
767 * sem_res.adb (Resolve_Actuals): Fix formatting of error output
768 related to SPARK RM 6.1.7(3) and pragma Extensions_Visible.
769
7702016-06-14 Arnaud Charlet <charlet@adacore.com>
771
772 * gnat1drv.adb (Adjust_Global_Switches): Enable access checks
773 in codepeer mode.
774 * freeze.adb: Minor grammar fix in comment.
0da343bc
AC
7752016-06-14 Hristian Kirtchev <kirtchev@adacore.com>
776
777 * lib.adb: Minor reformatting.
778 * sem_util.adb (Is_OK_Volatile_Context): Do
779 include Address in the supported attributes.
780
7812016-06-14 Hristian Kirtchev <kirtchev@adacore.com>
782
783 * exp_ch4.adb (Expand_N_Case_Expression):
784 Code cleanup. Finalize any transient controlled
785 objects on exit from a case expression alternative.
786 (Expand_N_If_Expression): Code cleanup.
787 (Process_Actions): Removed.
788 (Process_If_Case_Statements): New routine.
789 (Process_Transient_Object): Change the name of formal Rel_Node to
790 N and update all occurrences. Update the comment on usage. When
791 the type of the context is Boolean, the proper insertion point
792 for the finalization call is after the last declaration.
793
7942016-06-14 Ed Schonberg <schonberg@adacore.com>
795
796 * lib-xref.ads, lib-xref.adb (Has_Deferred_Reference): new
797 predicate to determine whether an entity appears in a context
798 for which a Deferred_Reference was created, because it is not
799 possible to determine when reference is analyzed whether it
800 appears in a context in which the entity is modified.
801 * sem_ch5.adb (Analyze_Statement): Do not emit a useless warning
802 on assignment for an entity that has a deferred_reference.
803
8042016-06-14 Javier Miranda <miranda@adacore.com>
805
806 * sem_res.adb (Resolve_Actuals): Generate a reference to actuals that
807 come from source. Previously the reference was generated only if the
808 call comes from source but the call may be rewritten by the expander
809 thus causing the notification of spurious warnings.
810
8112016-06-14 Arnaud Charlet <charlet@adacore.com>
812
813 * gnat1drv.adb: Remove further references to AAMP.
814 * checks.adb (Apply_Scalar_Range_Check): Take
815 Check_Float_Overflow info account.
816 * live.ads, live.adb Added subprogram headers and
817 start-of-processing-for comments.
818 * sem_ch12.adb (Instantiate_Package_Body): Do not suppress
819 checks when instantiating runtime units in CodePeer mode.
820
a5150cb1
AC
8212016-06-14 Arnaud Charlet <charlet@adacore.com>
822
823 * exp_ch3.adb (Expand_N_Object_Declaration): Only consider
824 nodes from sources.
825
8262016-06-14 Arnaud Charlet <charlet@adacore.com>
827
828 * switch-c.adb, gnat1drv.adb (Adjust_Global_Switches): Only disable
829 simple value propagation in CodePeer mode when warnings are disabled.
830 (Scan_Front_End_Switches): Enable relevant front-end switches
831 when using -gnateC.
832
8332016-06-14 Hristian Kirtchev <kirtchev@adacore.com>
834
835 * sem_util.adb (Is_OK_Volatile_Context): A
836 reference to a volatile object is considered OK if appears as
837 the prefix of attributes Address, Alignment, Component_Size,
838 First_Bit, Last_Bit, Position, Size, Storage_Size.
839
8402016-06-14 Yannick Moy <moy@adacore.com>
841
842 * lib-xref-spark_specific.adb (Add_SPARK_File): Do not traverse
843 subunits directly, as they are already traversed as part of the
844 top-level unit to which they belong.
845 (Add_SPARK_Xrefs): Add assertions to ensure correct sorting.
846 (Generate_Dereference): Use unique definition place for special
847 variable __HEAP, to ensure correct sorting of references.
848 * lib-xref.adb (Generate_Reference): Use top-level unit in case
849 of subunits.
850 * lib.adb, lib.ads (Get_Top_Level_Code_Unit): New functions that
851 compute the top-level code unit for a source location of AST node,
852 that go past subunits.
853
7cdb6871
EB
8542016-06-13 Eric Botcazou <ebotcazou@adacore.com>
855
856 * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Build only a minimal
857 PARM_DECL when the parameter type is dummy.
858 * gcc-interface/trans.c (Call_to_gnu): Translate formal types before
859 formal objects.
860
42e77cbc
EB
8612016-06-13 Eric Botcazou <ebotcazou@adacore.com>
862
863 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with
864 PLUS_EXPR in the expression of a renaming.
865
0317e5a2
EB
8662016-06-13 Eric Botcazou <ebotcazou@adacore.com>
867
868 * gcc-interface/utils2.c (known_alignment) <CALL_EXPR>: Deal specially
869 with calls to malloc.
870
aa18f65a
EB
8712016-06-11 Eric Botcazou <ebotcazou@adacore.com>
872
873 * gcc-interface/trans.c (build_binary_op_trapv): If no operand is a
874 constant, use the generic implementation of the middle-end; otherwise
875 turn the dynamic conditions into static conditions and simplify.
876
a31d78c6
EB
8772016-06-11 Eric Botcazou <ebotcazou@adacore.com>
878
879 * gcc-interface/trans.c (Case_Statement_to_gnu): Deal with characters.
880
773392af
PMR
8812016-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
882
883 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not clobber
884 gnat_entity_name with temporary names for XUP and XUT types.
885
4d926e34
MS
8862016-06-10 Martin Sebor <msebor@redhat.com>
887
888 PR c/71392
889 * gcc/ada/gcc-interface/utils.c (handle_nonnull_attribute): Accept
890 the nonnull attribute in type-generic builtins.
891
42a5e410
EB
8922016-06-06 Eric Botcazou <ebotcazou@adacore.com>
893
894 * gcc-interface/decl.c (Gigi_Equivalent_Type): Make sure equivalent
895 types are present before returning them. Remove final assertion.
896 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Adjust to
897 above change.
898 <E_Protected_Type>: Likewise.
899
f8a9b81f
EB
9002016-06-06 Eric Botcazou <ebotcazou@adacore.com>
901
902 * gcc-interface/trans.c (elaborate_all_entities_for_package): Also do
903 not elaborate Itypes.
904
1f0b1322
EB
9052016-06-06 Eric Botcazou <ebotcazou@adacore.com>
906
907 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
908 for noinline and noclone attributes.
909 (handle_noinline_attribute): New handler.
910 (handle_noclone_attribute): Likewise.
911
5a4916be
EB
9122016-06-06 Eric Botcazou <ebotcazou@adacore.com>
913
914 * gcc-interface/trans.c (process_type): Beef up comment.
915
62801a77
EB
9162016-06-06 Eric Botcazou <ebotcazou@adacore.com>
917
918 * gcc-interface/utils2.c (build_call_alloc_dealloc): Do not substitute
919 placeholder expressions here but...
920 * gcc-interface/trans.c (gnat_to_gnu) <N_Free_Statement>: ...here.
921 Make an exception to the protection of a CALL_EXPR result with an
922 unconstrained type only in the same cases as Call_to_gnu.
923
f1ff07ec
EB
9242016-06-06 Eric Botcazou <ebotcazou@adacore.com>
925
926 * gcc-interface/trans.c (gnat_to_gnu): Rework special code dealing
927 with boolean rvalues and set the location directly. Do not set the
928 location in the other cases for a simple name.
929 (gnat_to_gnu_external): Clear the location on the expression.
930
d5ebeb8c
EB
9312016-06-06 Eric Botcazou <ebotcazou@adacore.com>
932
933 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Component>: Remove
934 useless 'else' statements and tidy up.
935 <E_Array_Subtype>: Fully deal with the declaration here.
936 <E_Incomplete_Type>: Use properly-typed constant.
937 Assert that we don't apply the special type treatment to dummy types.
938 Separate this treatment from the final back-annotation and simplify
939 the condition for the RM size.
940 (gnat_to_gnu_param): Add GNU_PARAM_TYPE parameter and adjust.
941 (gnat_to_gnu_subprog_type): Ajust call to gnat_to_gnu_param.
942 * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Declaration>: Add
943 comment.
944 (process_freeze_entity): Remove obsolete code.
945 (process_type): Minor tweaks.
946
4d9446f9
EB
9472016-06-06 Eric Botcazou <ebotcazou@adacore.com>
948
949 * einfo.ads (Returns_Limited_View): Remove.
950 (Set_Returns_Limited_View ): Likewise.
951 * einfo.adb (Returns_Limited_View): Likewise.
952 (Set_Returns_Limited_View ): Likewise.
953 * freeze.adb (Late_Freeze_Subprogram): Remove.
954 (Freeze_Entity): Do not defer the freezing of functions returning an
955 incomplete type coming from a limited context.
956
7414a3c3
EB
9572016-06-06 Eric Botcazou <ebotcazou@adacore.com>
958
959 * gcc-interface/gigi.h (finish_subprog_decl): Add ASM_NAME parameter.
960 * gcc-interface/decl.c (gnu_ext_name_for_subprog): New function.
961 (gnat_to_gnu_entity) <E_Subprogram_Type>: Do not check compatibility
962 of profiles for builtins here... Call gnu_ext_name_for_subprog.
963 Also update profiles if pointers to limited_with'ed types are
964 updated.
965 (gnat_to_gnu_param): Restore the correct source location information
966 for vector ABI warnings.
967 (associate_subprog_with_dummy_type): Add comment about AI05-019.
968 Set TYPE_DUMMY_IN_PROFILE_P flag unconditionally.
969 (update_profile): Deal with builtin declarations.
970 Call gnu_ext_name_for_subprog. Adjust call to finish_subprog_decl.
971 (update_profiles_with): Add comment.
972 (gnat_to_gnu_subprog_type): Reuse the return type if it is complete.
973 Likewise for parameter declarations in most cases. Do not change
974 the return type for the CICO mechanism if the profile is incomplete.
975 ...but here instead. Always reset the slot for the parameters.
976 * gcc-interface/utils.c (create_subprog_decl): Call
977 gnu_ext_name_for_subprog. Do not set the assembler name here but...
978 (finish_subprog_decl): ...but here instead. Add ASM_NAME parameter.
979
128a98ea
EB
9802016-06-06 Eric Botcazou <ebotcazou@adacore.com>
981
982 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the
983 declaration of the corresponding record type before that of the
984 unprotected version of the subprograms that operate on it.
985 (Expand_Access_Protected_Subprogram_Type): Declare the Equivalent_Type
986 just before the original type.
987 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Point the current
988 declaration to the newly created declaration for the primitive.
989 (Analyze_Subtype_Declaration): Remove obsolete code forcing the
990 freezing of the subtype before its declaration.
991 (Replace_Anonymous_Access_To_Protected_Subprogram): Insert the new
992 declaration in the nearest enclosing scope for formal parameters too.
993 (Build_Derived_Access_Type): Restore the status of the created Itype
994 after it is erased by Copy_Node.
995 * sem_ch6.adb (Exchange_Limited_Views): Remove guard on entry.
996 (Analyze_Subprogram_Body_Helper): Call Exchange_Limited_Views only if
997 the specification is present.
998 Move around the code changing the designated view of the return type
999 and save the original view. Restore it on exit.
1000 * sem_ch13.adb (Build_Predicate_Function_Declaration): Always insert
1001 the declaration right after that of the type.
1002
e4b631a5
SW
10032016-06-01 Simon Wright <simon@pushface.org>
1004
1005 PR ada/71358
1006 * g-comlin.adb (Display_Section_Help): Do not dereference
1007 Config.Switches if it's null.
1008 (Getopt): Likewise.
1009
3dc553dd
EB
10102016-05-31 Eric Botcazou <ebotcazou@adacore.com>
1011
1012 * s-osinte-kfreebsd-gnu.ads (clock_getres): Define.
1013 (Get_Page_Size): Remove duplicate and return int.
1014
10152016-05-31 Jan Sommer <soja-lists@aries.uberspace.de>
1016
1017 PR ada/71317
1018 * s-osinte-rtems.ads (clock_getres): Define.
1019 (Get_Page_Size): Remove duplicate and return int.
1020
55c8849f
EB
10212016-05-20 Eric Botcazou <ebotcazou@adacore.com>
1022
1023 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
1024 Make same-sized subtypes of signed base types signed.
1025 * gcc-interface/utils.c (make_type_from_size): Adjust to above change.
1026 (unchecked_convert): Likewise.
1027
d972bae0
EB
10282016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1029
1030 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build
1031 a specific type for the object if it is deemed a constant.
1032
f91caacb
EB
10332016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1034
1035 * freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to
1036 components of any elementary types and of composite types.
1037
3d626f94
EB
10382016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1039
1040 * freeze.adb (Freeze_Array_Type): Call Addressable predicate instead
1041 of testing for individual sizes.
1042 (Freeze_Entity): Rework implementation of pragma Implicit_Packing for
1043 array types, in particular test for suitable sizes upfront and do not
1044 mimic the processing that will be redone later in Freeze_Array_Type.
1045
cce309d7
EB
10462016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1047
1048 * gcc-interface/trans.c (elaborate_all_entities_for_package): Also skip
1049 formal objects.
1050
b3f75672
EB
10512016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1052
1053 * doc/gnat_rm/implementation_defined_attributes.rst
1054 (Scalar_Storage_Order): Adjust restriction for packed array types.
1055 * einfo.ads (Is_Bit_Packed_Array): Adjust description.
1056 (Is_Packed): Likewise.
1057 (Is_Packed_Array_Impl_Type): Likewise.
1058 (Packed_Array_Impl_Type): Likewise.
1059 * exp_ch4.adb (Expand_N_Indexed_Component): Do not do anything special
1060 if the prefix is not a packed array implemented specially.
1061 * exp_ch6.adb (Expand_Actuals): Expand indexed components only for
1062 bit-packed array types.
1063 * exp_pakd.adb (Install_PAT): Set Is_Packed_Array_Impl_Type flag on
1064 the PAT before analyzing its declaration.
1065 (Create_Packed_Array_Impl_Type): Remove redundant statements.
1066 * freeze.adb (Check_Component_Storage_Order): Reject packed array
1067 components only if they are bit packed.
1068 (Freeze_Array_Type): Fix logic detecting bit packing and do not bit
1069 pack for composite types whose size is multiple of a byte.
1070 Create the implementation type for packed array types only when it is
1071 needed, i.e. bit packing or packing because of holes in index types.
1072 Make sure the Has_Non_Standard_Rep and Is_Packed flags agree.
1073 * gcc-interface/gigi.h (make_packable_type): Add MAX_ALIGN parameter.
1074 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
1075 Call maybe_pad_type instead of building the padding type manually.
1076 (gnat_to_gnu_entity) <E_Array_Subtype>: Do not assert that
1077 Packed_Array_Impl_Type is present for packed arrays.
1078 (gnat_to_gnu_component_type): Also handle known alignment for packed
1079 types by passing it to make_packable_type.
1080 * gcc-interface/utils.c (make_packable_type): Add MAX_ALIGN parameter
1081 and deal with it in the array case. Adjust recursive call. Simplify
1082 computation of new size and cap the alignment to BIGGEST_ALIGNMENT.
1083
6232acb7
TQ
10842016-05-16 Thomas Quinot <quinot@adacore.com>
1085
1086 * freeze.adb (Check_Component_Storage_Order): Also get full view of
1087 enclosing type.
1088
34da9c98
EB
10892016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1090
1091 * exp_util.adb (Remove_Side_Effects): Also make a constant if we need
1092 to capture the value for a small not by-reference record type.
1093 * freeze.ads (Check_Compile_Time_Size): Adjust comment.
1094 * freeze.adb (Set_Small_Size): Likewise. Accept a size in the range
1095 of 33 .. 64 bits.
1096 (Check_Compile_Time_Size): Merge scalar and access type cases. Change
1097 variable name in array type case. For the computation of the packed
1098 size, deal with record components and remove redundant test.
1099 (Freeze_Array_Type): Also adjust packing status when the size of the
1100 component type is in the range 33 .. 64 bits.
1101 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Turn primitive
1102 into elementary type throughout. Minor tweaks.
1103 (Alignment Clauses): Document actual alignment of packed array types.
1104 (Pragma Pack for Arrays): List only the 3 main cases and adjust. Add
1105 "simple" to the record case. Document effect on non packable types.
1106 (Pragma Pack for Records): Likewise. Add record case and adjust.
1107
47e62307
EB
11082016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1109
1110 * gcc-interface/Make-lang.in (GNATMAKE_FOR_HOST): In the canadian
1111 cross case, use host_noncanonical instead of host as prefix.
1112 (GNATBIND_FOR_HOST): Likewise.
1113 (GNATLINK_FOR_HOST): Likewise.
1114 (GNATLS_FOR_HOST): Likewise.
1115
498988ad
EB
11162016-05-06 Eric Botcazou <ebotcazou@adacore.com>
1117
1118 PR ada/70969
1119 * system-darwin-ppc64.ads: Add pragma No_Elaboration_Code_All.
1120 * system-linux-armeb.ads: Likewise.
1121 * system-linux-mips64el.ads: Likewise.
1122 * system-linux-mips.ads: Likewise.
1123 * system-linux-mipsel.ads: Likewise.
1124 * system-linux-ppc64.ads: Likewise.
1125 * system-linux-sparcv9.ads: Likewise.
1126 * system-rtems.ads: Likewise.
1127
2a746f23
ST
11282016-05-04 Samuel Thibault <samuel.thibault@ens-lyon.org>
1129
1130 * s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize
1131 instead of __getpagesize.
1132
87cdf04b
RO
11332016-05-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1134
1135 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
1136 Honor DESTDIR.
1137
a56886e9
AC
11382016-05-02 Tristan Gingold <gingold@adacore.com>
1139
1140 * fname.adb (Is_Predefined_File_Name): Also consider non-krunched
1141 i-* names.
1142
11432016-05-02 Ed Schonberg <schonberg@adacore.com>
1144
1145 * sem_util.adb (Aggregate_Constraint_Checks): Separate
1146 accessibility checks and non-null checks for aggregate components,
1147 to prevent spurious accessibility errors.
1148
11492016-05-02 Ed Schonberg <schonberg@adacore.com>
1150
1151 * sem_ch3.adb (OK_For_Limited_Init): A type conversion is not
1152 always legal in the in-place initialization of a limited entity
1153 (e.g. an allocator).
1154 * sem_res.adb (Resolve_Allocator): Improve error message with RM
1155 reference when allocator expression is illegal.
1156
fc3819c9
AC
11572016-05-02 Ed Schonberg <schonberg@adacore.com>
1158
1159 * exp_ch6.adb (Expand_Call): When inlining a call to a function
1160 declared in a package instance, locate the instance node of the
1161 package after the actual package declaration. skipping over
1162 pragmas that may have been introduced when the generic unit
1163 carries aspects that are transformed into pragmas.
1164
11652016-05-02 Bob Duff <duff@adacore.com>
1166
1167 * s-memory.adb (Alloc, Realloc): Move checks
1168 for Size = 0 or size_t'Last into the Result = System.Null_Address
1169 path for efficiency. Improve comments (based on actual C language
1170 requirements for malloc).
1171 * exp_util.adb (Build_Allocate_Deallocate_Proc): Optimize the
1172 case where we are using the default Global_Pool_Object, and we
1173 don't need the heavy finalization machinery.
1174
14c3ae9a
GD
11752016-05-02 Gary Dismukes <dismukes@adacore.com>
1176
1177 * exp_util.ads, sem_ch12.adb: Minor reformatting.
1178
89d3b1a1
AC
11792016-05-02 Javier Miranda <miranda@adacore.com>
1180
1181 * exp_util.ads, exp_util.adb (Force_Evaluation): Adding new formal.
1182 (Remove_Side_Effects): Adding a new formal.
1183 * exp_ch6.adb (Expand_Simple_Function_Return): Generating the
1184 call to the _Postconditions procedure ensure that side-effects
1185 are unconditionally removed.
1186
11872016-05-02 Ed Schonberg <schonberg@adacore.com>
1188
1189 * sem_ch12.adb (Check_Formal_Package_Instance, Check_Mismatch):
1190 Use original node to determine whether the declaration is for
1191 a formal type declaration, to take into account that formwl
1192 private types are rewritten as private extension declarations
1193 to simplify semantic analysis.
1194
ca90b962
GD
11952016-05-02 Gary Dismukes <dismukes@adacore.com>
1196
1197 * exp_ch9.adb, sem_ch6.adb, sem_ch6.ads: Minor reformatting and typo
1198 fixes.
1199
bac5ba15
AC
12002016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1201
1202 * sem_ch3.adb, exp_ch9.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb: Minor
1203 reformatting.
1204
12052016-05-02 Ed Schonberg <schonberg@adacore.com>
1206
1207 * exp_ch4.adb (Expand_N_Allocator): If the designated type
1208 is a private derived type with no discriminants, examine its
1209 underlying_full_view to determine whether the full view has
1210 defaulted discriminants, so their defaults can be used in the
1211 call to the initialization procedure for the designated object.
1212
42f11e4c
AC
12132016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1214
1215 * exp_prag.adb, comperr.adb: Minor reformatting.
1216
12172016-05-02 Ed Schonberg <schonberg@adacore.com>
1218
1219 * exp_pakd.adb (Rj_Unchecked_Convert_To): Do not perform an
1220 unchecked conversion if the source size is 0 (indicating that
1221 its RM size is unknown). This will happen with packed arrays of
1222 non-discrete types, in which case the component type is known
1223 to match.
1224
12252016-05-02 Arnaud Charlet <charlet@adacore.com>
1226
1227 * debug.adb: Reserve -gnatd.V.
1228
12292016-05-02 Javier Miranda <miranda@adacore.com>
1230
1231 * sem_ch3.adb (Process_Full_View): Remove from visibility
1232 wrappers of synchronized types to avoid spurious errors with
1233 their wrapped entity.
1234 * exp_ch9.adb (Build_Wrapper_Spec): Do not generate the wrapper
1235 if no interface primitive is covered by the subprogram and this is
1236 not a primitive declared between two views; see Process_Full_View.
1237 (Build_Protected_Sub_Specification): Link the dispatching
1238 subprogram with its original non-dispatching protected subprogram
1239 since their names differ.
1240 (Expand_N_Protected_Type_Declaration):
1241 If a protected subprogram overrides an interface primitive then
1242 do not build a wrapper if it was already built.
1243 * einfo.ads, einfo.adb (Original_Protected_Subprogram): New attribute.
1244 * sem_ch4.adb (Names_Match): New subprogram.
1245 * sem_ch6.adb (Check_Synchronized_Overriding): Moved
1246 to library level and defined in the public part of the
1247 package to invoke it from Exp_Ch9.Build_Wrapper_Spec
1248 (Has_Matching_Entry_Or_Subprogram): New subprogram.
1249 (Report_Conflict): New subprogram.
1250
331e5015
AC
12512016-05-02 Jerome Lambourg <lambourg@adacore.com>
1252
1253 * s-unstyp.ads: Code cleanups.
1254
12552016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1256
1257 * sem_ch13.adb (Size_Too_Small_Error): Fix the error message format.
1258
12592016-05-02 Ed Schonberg <schonberg@adacore.com>
1260
1261 * exp_prag.adb (Expand_attributes_In_Consequence,
1262 Expand_Attributes): If the prefix of'Old is an unconstrained type,
1263 for example an unconstrained formal of the enclosing subprogram,
1264 create an object declaration with an expression to obtain the
1265 actual subtype of the temporary.
1266
12672016-05-02 Arnaud Charlet <charlet@adacore.com>
1268
1269 * comperr.adb (Delete_SCIL_Files): Add missing handling of
1270 N_Subprogram_Declaration.
1271
2cc2e964
AC
12722016-05-02 Gary Dismukes <dismukes@adacore.com>
1273
1274 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb,
1275 gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo
1276 fixes.
1277 * sem_prag.adb, sem_ch12.adb: Minor typo fixes.
1278
12792016-05-02 Ed Schonberg <schonberg@adacore.com>
1280
1281 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The
1282 function call may be wrapped in an explicit type conversion.
1283
12842016-05-02 Jerome Lambourg <lambourg@adacore.com>
1285
1286 * interfac.ads: use pragma No_Elaboration_Code_All.
1287 * s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All.
1288
12892016-05-02 Ed Schonberg <schonberg@adacore.com>
1290
1291 * sem.adb (Analyze: If node is an error node previously created
1292 by the parser, disable expansion to prevent subsequent glitches
1293 in error recovery.
1294
51122913
HK
12952016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1296
1297 * sem_ch13.adb (Alignment_Error): Removed.
1298 (Get_Alignment_Value): Code cleanup.
1299
32b794c8
AC
13002016-05-02 Tristan Gingold <gingold@adacore.com>
1301
1302 * sem_ch3.adb (Analyze_Object_Declaration): Use Has_Protected
1303 to check for the no local protected objects restriction.
1304
13052016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1306
1307 * einfo.adb Anonymous_Master now uses Node35.
1308 (Anonymous_Master): Update the assertion and node reference.
1309 (Set_Anonymous_Master): Update the assertion and node reference.
1310 (Write_Field35_Name): Add output for Anonymous_Master.
1311 (Write_Field36_Name): The output is now undefined.
1312 * einfo.ads Update the node and description of attribute
1313 Anonymous_Master. Remove prior occurrences in entities as this
1314 is now a type attribute.
1315 * exp_ch3.adb (Expand_Freeze_Array_Type): Remove local variable
1316 Ins_Node. Anonymous access- to-controlled component types no
1317 longer need finalization masters. The master is now built when
1318 a related allocator is expanded.
1319 (Expand_Freeze_Record_Type): Remove local variable Has_AACC. Do not
1320 detect whether the record type has at least one component of anonymous
1321 access-to- controlled type. These types no longer need finalization
1322 masters. The master is now built when a related allocator is expanded.
1323 * exp_ch4.adb Remove with and use clauses for Lib and Sem_Ch8.
1324 (Current_Anonymous_Master): Removed.
1325 (Expand_N_Allocator): Call Build_Anonymous_Master to create a
1326 finalization master for an anonymous access-to-controlled type.
1327 * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
1328 Call routine Build_Anonymous_Master to create a finalization master
1329 for an anonymous access-to-controlled type.
1330 * exp_ch7.adb (Allows_Finalization_Master): New routine.
1331 (Build_Anonymous_Master): New routine.
1332 (Build_Finalization_Master): Remove formal parameter
1333 For_Anonymous. Use Allows_Finalization_Master to determine whether
1334 circumstances warrant a finalization master. This routine no
1335 longer creates masters for anonymous access-to-controlled types.
1336 (In_Deallocation_Instance): Removed.
1337 * exp_ch7.ads (Build_Anonymous_Master): New routine.
1338 (Build_Finalization_Master): Remove formal parameter For_Anonymous
1339 and update the comment on usage.
1340 * sem_util.adb (Get_Qualified_Name): New routines.
1341 (Output_Name): Reimplemented.
1342 (Output_Scope): Removed.
1343 * sem_util.ads (Get_Qualified_Name): New routines.
1344
13452016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1346
1347 * debug.adb: Document the use of switch -gnatd.H.
1348 * gnat1drv.adb (Adjust_Global_Switches): Set ASIS_GNSA mode when
1349 -gnatd.H is present.
1350 (Gnat1drv): Suppress the call to gigi when ASIS_GNSA mode is active.
1351 * opt.ads: Add new option ASIS_GNSA_Mode.
1352 * sem_ch13.adb (Alignment_Error): New routine.
1353 (Analyze_Attribute_Definition_Clause): Suppress certain errors in
1354 ASIS mode for attribute clause Alignment, Machine_Radix, Size, and
1355 Stream_Size.
1356 (Check_Size): Use routine Size_Too_Small_Error to
1357 suppress certain errors in ASIS mode.
1358 (Get_Alignment_Value): Use routine Alignment_Error to suppress certain
1359 errors in ASIS mode.
1360 (Size_Too_Small_Error): New routine.
1361
4871a41d
AC
13622016-05-02 Arnaud Charlet <charlet@adacore.com>
1363
1364 * spark_xrefs.ads Description of the spark cross-references
1365 clarified; small style fixes.
1366 * lib-xref-spark_specific.adb (Add_SPARK_Scope,
1367 Detect_And_Add_SPARK_Scope): consider protected types and bodies
1368 as yet another scopes.
1369 (Enclosing_Subprogram_Or_Library_Package): refactored using
1370 Hristian's suggestions; added support for scopes of protected
1371 types and bodies; fix for entries to return the scope of the
1372 enclosing concurrent type, which is consistent with what is
1373 returned for protected subprograms.
1374 * sem_intr.adb: Minor style fix in comment.
1375
8d4611f7
AC
13762016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1377
1378 * lib-xref.ads, lib-xref-spark_specific.adb, get_spark_xrefs.adb,
1379 put_spark_xrefs.adb: Minor reformatting.
1380
13812016-05-02 Doug Rupp <rupp@adacore.com>
1382
1383 * g-traceb.ads: Document traceback for ARM.
1384
13852016-05-02 Javier Miranda <miranda@adacore.com>
1386
1387 * exp_disp.adb (Make_Tags): Do not generate the
1388 external name of interface tags adding the suffix counter since
1389 it causes problems at link time when the IP routines are inlined
1390 across units with optimization.
1391
13922016-05-02 Ed Schonberg <schonberg@adacore.com>
1393
1394 * einfo.ads, einfo.adb (Predicates_Ignared): new flag to indicate
1395 that predicate checking is disabled for predicated subtypes in
1396 the context of an Assertion_Policy pragma.
1397 * checks.adb (Apply_Predicate_Check): Do nothing if
1398 Predicates_Ignored is true.
1399 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): If
1400 Predicates_Ignores is true, the function Rep_To_Pos does raise
1401 an exception for invalid data.
1402 * exp_ch4.adb (Expand_N_Type_Conversion): IF target is a predicated
1403 type do not apply check if Predicates_Ignored is true.
1404 * exp_ch5.adb (Expand_N_Case_Statement): If Predicates_Ignored
1405 is true, sem_prag.adb:
1406 * sem_ch3.adb (Analyze_Object_Declaration): If Predicates_Ignored
1407 is true do not emit predicate check on initializing expression.
1408
bcb0389e
AC
14092016-05-02 Arnaud Charlet <charlet@adacore.com>
1410
1411 * get_spark_xrefs.adb (Get_Nat, Get_Name): Initialize variables when
1412 they are declared; refine type of a counter from Integer to Natural.
1413 * sem_ch5.adb, gnatcmd.adb, s-intman-posix.adb, eval_fat.adb,
1414 prj.adb, sem_util.adb, s-intman-android.adb, prj-nmsc.adb, sem_ch8.adb,
1415 exp_ch3.adb: Minor editing.
1416
ef25192b
YM
14172016-05-02 Yannick Moy <moy@adacore.com>
1418
1419 * a-tigeli.adb (Get_Line): Always set Last prior to returning.
1420
14212016-05-02 Yannick Moy <moy@adacore.com>
1422
1423 * lib-xref.adb: Minor style fix in whitespace of declarations.
1424 * put_spark_xrefs.adb (Put_SPARK_Xrefs): printing of strings
1425 refactored without loops.
1426 * put_spark_xrefs.ads (Write_Info_Str): new formal argument of
1427 generic procedure.
1428 * spark_xrefs.adb (Write_Info_Str): new actual in instantiation
1429 of generic procedure.
1430
eff69022
AC
14312016-05-02 Arnaud Charlet <charlet@adacore.com>
1432
1433 * lib-xref-spark_specific.adb (Add_SPARK_Scope): add task type scope.
1434 (Detect_And_Add_SPARK_Scope): detect and add task type scope.
1435 (Enclosing_Subprogram_Or_Package): Respect boundaries of task
1436 and entry declarations.
1437 * spark_xrefs.ads: minor typo in comment.
1438
fb8d37ef
AC
14392016-05-02 Arnaud Charlet <charlet@adacore.com>
1440
1441 * make.adb: Minor: avoid an exception when calling gnatmake with
1442 no argument and gnatmake is built with checks on.
1443 * lib-xref-spark_specific.adb: Minor code cleanup.
1444
c4405dfe
ES
14452016-05-02 Ed Schonberg <schonberg@adacore.com>
1446
1447 * sem_util.adb (Normalize_Actuals): Take into account extra
1448 actuals that may have been introduced previously. Normally extra
1449 actuals are introduced when a call is expanded, but a validity
1450 check may copy and reanalyze a call that carries an extra actual
1451 (e.g. an accessibility parameter) before the call itself is
1452 marked Analzyed, and the analysis of the copy has to be able to
1453 cope with the added actual.
1454
07eb872e
AC
14552016-05-02 Bob Duff <duff@adacore.com>
1456
1457 * sem_ch10.adb (Analyze_Compilation_Unit): Preserve
1458 treeishness. Previous version had Context_Items shared between
1459 the spec and body.
1460
14612016-05-02 Ed Schonberg <schonberg@adacore.com>
1462
1463 * sem_aggr.adb (Resolve_Aggr_Expression): For both array and
1464 record cases, apply predicate check on component for expression
1465 only if expression has been analyzed already. For expressions
1466 that need to be duplicated when they cover multiple components,
1467 resolution and predicate checking take place later.
1468
14692016-05-02 Olivier Hainque <hainque@adacore.com>
1470
1471 * a-direct.adb (Delete_Tree): Use full names to designate subdirs
1472 and files therein, instead of local names after a change of
1473 current directory.
1474
a25ad01c
TQ
14752016-05-02 Thomas Quinot <quinot@adacore.com>
1476
1477 * freeze.adb (Check_Component_Storage_Order): Get full view of
1478 component type.
1479
558fbeb0
HK
14802016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1481
1482 * checks.adb, freeze.adb, sem_res.adb, s-stposu.adb, repinfo.adb:
1483 Minor reformatting.
1484
1e60643a
AC
14852016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
1486
1487 * sem_ch4.adb (Find_Indexing_Operations): Use the underlying type
1488 of the container base type in case the container is a subtype.
1489 * sem_ch5.adb (Analyze_Iterator_Specification): Ensure that
1490 the selector has an entity when checking for a component of a
1491 mutable object.
1492
14932016-05-02 Arnaud Charlet <charlet@adacore.com>
1494
1495 Remove dead code.
1496 * opt.ads (Latest_Ada_Only): New flag.
1497 * sem_prag.adb, par-prag.adb: Ignore pragma Ada_xx under this flag.
1498 * usage.adb, switch-c.adb: Disable support for -gnatxx under this flag.
1499 * einfo.ads (Has_Predicates, Predicate_Function):
1500 Clarify that Has_Predicates does not imply that Predicate_Function
1501 will return a non-empty entity.
1502
15032016-05-02 Ed Schonberg <schonberg@adacore.com>
1504
1505 * sem_res.adb (Resolve_Qualified_Expression): Generate a predicate
1506 check if type requires it.
1507 * checks.adb (Apply_Predicate_Check): Disable checks in the
1508 object declaration created for an expression with side-effects
1509 that requires a predicate check to prevent infinite recursion
1510 during expansion.
1511
15122016-05-02 Ed Schonberg <schonberg@adacore.com>
1513
1514 * sem_ch6.adb (Process_Formals): Check properly the type of a
1515 formal to determine whether a given convention applies to it.
1516
15172016-05-02 Doug Rupp <rupp@adacore.com>
1518
1519 * tracebak.c: Add incantations for arm-vxworks[67] traceback.
1520
15212016-05-02 Thomas Quinot <quinot@adacore.com>
1522
1523 * freeze.adb (Check_Component_Storage_Order): Make it a warning, not an
1524 error, to have a component with implicit SSO within a composite type
1525 that has explicit SSO.
1526
15272016-05-02 Bob Duff <duff@adacore.com>
1528
1529 * s-stposu.adb (Allocate_Any_Controlled): Don't lock/unlock twice.
1530
15312016-05-02 Ed Schonberg <schonberg@adacore.com>
1532
1533 * repinfo.adb (List_Entities): Make procedure recursive, to
1534 provide representation information for subprograms declared
1535 within subprogram bodies.
1536
f96fd197
AC
15372016-05-02 Arnaud Charlet <charlet@adacore.com>
1538
1539 * exp_ch5.adb, layout.adb, gnatcmd.adb exp_attr.adb, make.adb,
1540 bindgen.adb, debug.adb, exp_pakd.adb, freeze.adb, sem_util.adb,
1541 gnatlink.adb, switch-m.adb, exp_ch4.adb, repinfo.adb, adabkend.adb,
1542 osint.adb: Remove dead code.
1543
15442016-05-02 Yannick Moy <moy@adacore.com>
1545
1546 * a-tigeli.adb (Get_Line): Fix bound for test to
1547 decide when to compensate for character 0 added by call to fgets.
1548
3ba1a9eb
AC
15492016-05-02 Ed Schonberg <schonberg@adacore.com>
1550
1551 * sem_ch4.adb (Analyze_Allocator): If the expression does not
1552 have a subtype indication and the type is an unconstrained tagged
1553 type with defaulted discriminants, create an explicit constraint
1554 for it during analysis to prevent out-of-order freezing actions
1555 on generated classwide types.
1556
15572016-05-02 Javier Miranda <miranda@adacore.com>
1558
1559 * exp_ch5.adb (Expand_N_Assignment_Statement):
1560 In the runtime check that ensures that the tags of source an
1561 target match, add missing displacement of the pointer to the
1562 objects if they cover interface types.
1563
15642016-05-02 Ed Schonberg <schonberg@adacore.com>
1565
1566 * sem_attr.adb (Analyze_Attribute, case 'Old): Do not use
1567 base type for attribute when type is discrete: transformation
1568 is not needed for such types, and leads to spurious errors if
1569 the context is a case construct.
1570
552cc590
EB
15712016-05-02 Eric Botcazou <ebotcazou@adacore.com>
1572
1573 * gcc-interface/decl.c (elaborate_reference_1): Do not bother about
1574 operand #2 for COMPONENT_REF.
1575 * gcc-interface/utils2.c (gnat_save_expr): Likewise.
1576 (gnat_protect_expr): Likewise.
1577 (gnat_stabilize_reference_1): Likewise.
1578 (gnat_rewrite_reference): Do not bother about operand #3 for ARRAY_REF.
1579 (get_inner_constant_reference): Likewise.
1580 (gnat_invariant_expr): Likewise.
1581 * gcc-interface/trans.c (fold_constant_decl_in_expr): Likewise.
1582
3eaec285
EB
15832016-05-02 Eric Botcazou <ebotcazou@adacore.com>
1584
1585 * gcc-interface/trans.c (Range_to_gnu): New static function.
1586 (Raise_Error_to_gnu) <N_In>: Call it to translate the range.
1587 (gnat_to_gnu) <N_In>: Likewise.
1588
f73036c1
EB
15892016-04-30 Eric Botcazou <ebotcazou@adacore.com>
1590
1591 * gcc-interface/Make-lang.in (ACATSCMD): New variable.
1592 (check-acats): Use it.
1593 (check_acats_targets): Likewise.
1594
24efbb3e
EB
15952016-04-28 Eric Botcazou <ebotcazou@adacore.com>
1596
1597 PR ada/70786
1598 * a-textio.adb (Get_Immediate): Add missing 'not' in expression.
1599
1e55d29a
EB
16002016-04-27 Eric Botcazou <ebotcazou@adacore.com>
1601
1602 * sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged
1603 incomplete type without full view.
1604 * sem_ch6.adb (Exchange_Limited_Views): Change into a function and
1605 return the list of changes.
1606 (Restore_Limited_Views): New procedure to undo the transformation made
1607 by Exchange_Limited_Views.
1608 (Analyze_Subprogram_Body_Helper): Adjust call to Exchange_Limited_Views
1609 and call Restore_Limited_Views at the end, if need be.
1610 (Possible_Freeze): Do not delay freezing because of incomplete types.
1611 (Process_Formals): Remove kludges for class-wide types.
1612 * types.h (By_Copy_Return): Delete.
1613 * gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): Move around.
1614 (TYPE_DUMMY_IN_PROFILE_P): New macro.
1615 * gcc-interface/gigi.h (update_profiles_with): Declare.
1616 (finish_subprog_decl): Likewise.
1617 (get_minimal_subprog_decl): Delete.
1618 (create_subprog_type): Likewise.
1619 (create_param_decl): Adjust prototype.
1620 (create_subprog_decl): Likewise.
1621 * gcc-interface/decl.c (defer_limited_with): Rename into...
1622 (defer_limited_with_list): ...this.
1623 (gnat_to_gnu_entity): Adjust to above renaming.
1624 (finalize_from_limited_with): Likewise.
1625 (tree_entity_vec_map): New structure.
1626 (gt_pch_nx): New helpers.
1627 (dummy_to_subprog_map): New hash table.
1628 (gnat_to_gnu_param): Set the SLOC here. Remove MECH parameter and
1629 add FIRST parameter. Deal with the mechanism here instead of...
1630 Do not make read-only variant of types. Simplify expressions.
1631 In the by-ref case, test the mechanism before must_pass_by_ref
1632 and also TYPE_IS_BY_REFERENCE_P before building the reference type.
1633 (gnat_to_gnu_subprog_type): New static function extracted from...
1634 Do not special-case the type_annotate_only mode. Call
1635 gnat_to_gnu_profile_type instead of gnat_to_gnu_type on return type.
1636 Deal with dummy return types. Likewise for parameter types. Deal
1637 with by-reference types explicitly and add a kludge for null procedures
1638 with untagged incomplete types. Remove assertion on the types and be
1639 prepared for multiple elaboration of the declarations. Skip the whole
1640 CICO processing if the profile is incomplete. Handle the completion of
1641 a previously incomplete profile.
1642 (gnat_to_gnu_entity) <E_Variable>: Rename local variable.
1643 Adjust couple of calls to create_param_decl.
1644 <E_Access_Subprogram_Type, E_Anonymous_Access_Subprogram_Type>:
1645 Remove specific deferring code.
1646 <E_Access_Type>: Also deal with E_Subprogram_Type designated type.
1647 Simplify handling of dummy types and remove obsolete comment.
1648 Constify a couple of variables. Do not set TYPE_UNIVERSAL_ALIASING_P
1649 on dummy types.
1650 <E_Access_Subtype>: Tweak comment and simplify condition.
1651 <E_Subprogram_Type>: ...here. Call it and clean up handling. Remove
1652 obsolete comment and adjust call to gnat_to_gnu_param. Adjust call to
1653 create_subprog_decl.
1654 <E_Incomplete_Type>: Add a couple of 'const' qualifiers and get rid of
1655 inner break statements. Tidy up condition guarding direct use of the
1656 full view.
1657 (get_minimal_subprog_decl): Delete.
1658 (finalize_from_limited_with): Call update_profiles_with on dummy types
1659 with TYPE_DUMMY_IN_PROFILE_P set.
1660 (is_from_limited_with_of_main): Delete.
1661 (associate_subprog_with_dummy_type): New function.
1662 (update_profile): Likewise.
1663 (update_profiles_with): Likewise.
1664 (gnat_to_gnu_profile_type): Likewise.
1665 (init_gnat_decl): Initialize dummy_to_subprog_map.
1666 (destroy_gnat_decl): Destroy dummy_to_subprog_map.
1667 * gcc-interface/misc.c (gnat_get_alias_set): Add guard for accessing
1668 TYPE_UNIVERSAL_ALIASING_P.
1669 (gnat_get_array_descr_info): Minor tweak.
1670 * gcc-interface/trans.c (gigi): Adjust calls to create_subprog_decl.
1671 (build_raise_check): Likewise.
1672 (Compilation_Unit_to_gnu): Likewise.
1673 (Identifier_to_gnu): Accept mismatches coming from a limited context.
1674 (Attribute_to_gnu): Remove kludge for dispatch table entities.
1675 (process_freeze_entity): Do not retrieve old definition if there is an
1676 address clause on the entity. Call update_profiles_with on dummy types
1677 with TYPE_DUMMY_IN_PROFILE_P set.
1678 * gcc-interface/utils.c (build_dummy_unc_pointer_types): Also set
1679 TYPE_REFERENCE_TO to the fat pointer type.
1680 (create_subprog_type): Delete.
1681 (create_param_decl): Remove READONLY parameter.
1682 (finish_subprog_decl): New function extracted from...
1683 (create_subprog_decl): ...here. Call it. Remove CONST_FLAG and
1684 VOLATILE_FLAG parameters and adjust.
1685 (update_pointer_to): Also clear TYPE_REFERENCE_TO in the unconstrained
1686 case.
1687
437244c7
AC
16882016-04-27 Arnaud Charlet <charlet@adacore.com>
1689
1690 * aa_util.adb, aa_util.ads: Removed, no longer used.
1691
16922016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1693
1694 * sem_prag.adb (Analyze_Pragma): An object
1695 renaming declaration resulting from the expansion of an object
1696 declaration is a suitable context for pragma Ghost.
1697
16982016-04-27 Doug Rupp <rupp@adacore.com>
1699
1700 * init.c: Refine last checkin so the only requirement is the
1701 signaling compilation unit is compiled with the same mode as
1702 the compilation unit containing the initial landing pad.
1703
17042016-04-27 Ed Schonberg <schonberg@adacore.com>
1705
1706 * sem_ch13.adb (Valid_Default_Iterator): Better filter of illegal
1707 specifications for Default_Iterator, including overloaded cases
1708 where no interpretations are legal, and return types that are
1709 not iterator types.
1710
17112016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1712
1713 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not install
1714 an accessibility check when the left hand side of the assignment
1715 denotes a container cursor.
1716 * exp_util.ads, exp_util.adb (Find_Primitive_Operations): Removed.
1717 * sem_ch4.adb (Find_Indexing_Operations): New routine.
1718 (Try_Container_Indexing): Code cleanup.
1719
57323d5b
AC
17202016-04-27 Arnaud Charlet <charlet@adacore.com>
1721
1722 * sem_ch10.adb, sem_case.adb: Mark messages udner -gnatwr when needed.
1723
17242016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1725
1726 * errout.adb, errutil.adb: Minor reformatting.
1727
17282016-04-27 Ed Schonberg <schonberg@adacore.com>
1729
1730 * sem_ch13.adb (Analyze_Aspect_Specifications, case Pre/Post):
1731 Check that the classwide version is illegal when the prefix is
1732 an operation of an untagged synchronized type.
1733
ac566cbe
AC
17342016-04-27 Arnaud Charlet <charleT@adacore.com>
1735
1736 * sinput-l.ads, sem_ch13.adb: Minor editing.
1737
17382016-04-27 Doug Rupp <rupp@adacore.com>
1739
1740 * init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]:
1741 Bump the pc so the lower order bit is set.
1742
17432016-04-27 Ed Schonberg <schonberg@adacore.com>
1744
1745 * sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is
1746 enabled, report an empty range in a case construct.
1747
6616e390
AC
17482016-04-27 Arnaud Charlet <charlet@adacore.com>
1749
1750 * sinput.ads, a-cfdlli.adb, a-crbtgo.adb, a-chtgop.adb, a-cbhama.adb,
1751 a-rbtgbo.adb, a-crdlli.adb, a-chtgbo.adb: Minor editing.
1752
6d0d18dc
AC
17532016-04-27 Bob Duff <duff@adacore.com>
1754
1755 * a-chtgop.adb (Adjust): Zero the tampering counts on assignment,
1756 as is done for the other containers.
1757
17582016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1759
1760 * ghost.adb (In_Subprogram_Body_Profile): New routine.
1761 (Is_OK_Declaration): Treat an unanalyzed expression
1762 function as an OK context. Treat a reference to a Ghost entity
1763 as OK when it appears within the profile of a subprogram body.
1764
17652016-04-27 Bob Duff <duff@adacore.com>
1766
1767 * errout.ads: Document the fact that informational messages
1768 don't have to be warnings.
1769 * errout.adb (Error_Msg_Internal): In statistics counts, deal
1770 correctly with informational messages that are not warnings.
1771 (Error_Msg_NEL): Remove useless 'if' aroung Set_Posted, because
1772 Set_Posted already checks for errors and ignores others.
1773 * erroutc.adb (Prescan_Message): Set Is_Serious_Error to False
1774 if Is_Info_Msg; the previous code was assuming that Is_Info_Msg
1775 implies Is_Warning_Msg.
1776 * errutil.adb (Error_Msg): In statistics counts, deal correctly
1777 with informational messages that are not warnings.
1778
680d5f61
AC
17792016-04-27 Ed Schonberg <schonberg@adacore.com>
1780
1781 * sem_util.ads, sem_util.adb (Is_Null_Record_Type): New predicate
1782 to determine whether a record type is a null record.
1783 * sem_ch3.adb (Analyze_Object_Declaration): If the type is a
1784 null record and there is no expression in the declaration,
1785 no predicate check applies to the object.
1786
17872016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1788
1789 * sem_ch7.adb (Analyze_Package_Body_Helper): The body of an
1790 instantiated package should not cause freezing of previous contracts.
1791
17922016-04-27 Ed Schonberg <schonberg@adacore.com>
1793
1794 * sem_dim.adb (Analyze_Dimension): Handle subtype declarations
1795 that do not come from source.
1796 (Analyze_Dimension_Subtype_Declaration): Allow confirming
1797 dimensions on subtype entity, either inherited from base type
1798 or provided by aspect specification.
1799
18002016-04-27 Ed Schonberg <schonberg@adacore.com>
1801
1802 * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution):
1803 Add scalar formal object Zero, to allow detection and report
1804 when the matrix is singular.
1805 * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution):
1806 Raise Constraint_Error if the Forward_Eliminate pass has
1807 determined that determinant is Zero.o
1808 * s-ngrear.adb (Solve): Add actual for Zero in corresponding
1809 instantiations.
1810 * s-ngcoar.adb (Solve): Ditto.
1811
14f3895c
AC
18122016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1813
1814 * sem_ch3.adb: Minor reformatting.
1815
18162016-04-27 Ed Schonberg <schonberg@adacore.com>
1817
1818 * sem_dim.adb (Analyze_Dimension, case N_Identifier): Check
1819 that identifier has a usable type before analysis, to handle
1820 properly identifiers introduced after some lexical/syntactic
1821 recovery that created new identifiers.
1822
db99c46e
AC
18232016-04-27 Bob Duff <duff@adacore.com>
1824
1825 * a-coinve.adb, a-comutr.adb, a-conhel.adb, a-convec.adb,
1826 exp_util.adb: Remove assertions that can fail in obscure cases when
1827 assertions are turned on but tampering checks are turned off.
1828
18292016-04-27 Javier Miranda <miranda@adacore.com>
1830
1831 * exp_ch6.adb (Add_Call_By_Copy_Code,
1832 Add_Simple_Call_By_Copy_Code, Expand_Actuals): Handle formals
1833 whose type comes from the limited view.
1834
18352016-04-27 Yannick Moy <moy@adacore.com>
1836
1837 * a-textio.adb: Complete previous patch.
1838
18392016-04-27 Yannick Moy <moy@adacore.com>
1840
1841 * inline.adb (Expand_Inlined_Call): Use Cannot_Inline instead of
1842 Error_Msg_N to issue message about impossibility to inline call,
1843 with slight change of message.
1844
18452016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1846
1847 * exp_spark.adb (Expand_Potential_Renaming): Removed.
1848 (Expand_SPARK): Update the call to expand a potential renaming.
1849 (Expand_SPARK_Potential_Renaming): New routine.
1850 * exp_spark.ads (Expand_SPARK_Potential_Renaming): New routine.
1851 * sem.adb Add with and use clauses for Exp_SPARK.
1852 (Analyze): Expand a non-overloaded potential renaming for SPARK.
1853
18542016-04-27 Ed Schonberg <schonberg@adacore.com>
1855
1856 * sem_ch3.adb (Constrain_Discriminated_Type): In an instance,
1857 check full view for the presence of defaulted discriminants,
1858 even when the partial view of a private type has no visible and
1859 no unknown discriminants.
1860
c6c8d059
AC
18612016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1862
1863 * lib-xref.adb, exp_ch3.adb: Minor reformatting.
1864
18652016-04-27 Nicolas Roche <roche@adacore.com>
1866
1867 * rtinit.c: Add weak symbol __gnat_do_argv_expansion.
1868
caa64a44
AC
18692016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1870
1871 * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Code
1872 cleanup. Check the original node when trying to determine the node kind
1873 of pragma Volatile's argument to account for untagged derivations
1874 where the type is transformed into a constrained subtype.
1875
18762016-04-27 Olivier Hainque <hainque@adacore.com>
1877
1878 * mkdir.c (__gnat_mkdir): Rework the vxworks section to use a
1879 consistent posix interface on the caller side.
1880
18812016-04-27 Ed Schonberg <schonberg@adacore.com>
1882
1883 * sem_ch10.adb (Build_Limited_View, Decorate_Type): If this
1884 is a limited view of a type, initialize the Limited_Dependents
1885 field to catch misuses of the type in a client unit.
1886
18872016-04-27 Thomas Quinot <quinot@adacore.com>
1888
1889 * a-strunb-shared.adb (Finalize): add missing Reference call.
1890 * s-strhas.adb: minor grammar fix and extension of comment
1891 * sem_ch8.adb: minor whitespace fixes
1892
18932016-04-27 Ed Schonberg <schonberg@adacore.com>
1894
1895 * lib-xref.adb (Get_Type_Reference): Handle properly the case
1896 of an object declaration whose type definition is a class-wide
1897 subtype and whose expression is a function call that returns a
1898 classwide type.
1899
19002016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1901
1902 * sem_util.ads, sem_util.adb (Output_Entity): New routine.
1903 (Output_Name): New routine.
1904
19052016-04-27 Bob Duff <duff@adacore.com>
1906
1907 * exp_ch3.adb (Rewrite_As_Renaming): Disable previous change for now.
1908
a6ac7311
AC
19092016-04-27 Vincent Celier <celier@adacore.com>
1910
1911 * gnatcmd.adb: For "gnat ls -V -P", recognize switch
1912 --unchecked-shared-lib-imports and set the flag
1913 Opt.Unchecked_Shared_Lib_Imports accordingly.
1914
19152016-04-27 Ed Schonberg <schonberg@adacore.com>
1916
1917 * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part):
1918 A generic subprogram is never a primitive operation, and thus
1919 a classwide condition for it is not legal.
1920
19212016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1922
1923 * sem_aggr.adb, sem_dim.adb, sem_dim.ads, einfo.adb: Minor
1924 reformatting.
1925
888be6b1
AC
19262016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1927
1928 * sem_res.adb (Flag_Effectively_Volatile_Objects): New routine.
1929 (Resolve_Actuals): Flag effectively volatile objects with enabled
1930 property Async_Writers or Effective_Reads as illegal.
1931 * sem_util.adb (Is_OK_Volatile_Context): Comment reformatting.
1932
19332016-04-27 Javier Miranda <miranda@adacore.com>
1934
1935 * exp_ch3.adb (Make_Predefined_Primitive_Specs):
1936 Do not generate the profile of the equality operator if it has
1937 been explicitly defined as abstract in the parent type. Required
1938 to avoid reporting an spurious error.
1939
19402016-04-27 Ed Schonberg <schonberg@adacore.com>
1941
1942 * sem_dim.ads, sem_dim.adb (Check_Expression_Dimensions): New
1943 procedure to compute the dimension vector of a scalar expression
1944 and compare it with the dimensions if its expected subtype. Used
1945 for the ultimate components of a multidimensional aggregate,
1946 whose components typically are themselves aggregates that are
1947 expanded separately. Previous to this patch, dimensionality
1948 checking on such aggregates generated spurious errors.
1949 * sem_aggr.adb (Resolve_Array_Aggregate): Use
1950 Check_Expression_Dimensions when needed.
1951
19522016-04-27 Javier Miranda <miranda@adacore.com>
1953
1954 * einfo.ads, einfo.adb (Corresponding_Function): New attribute
1955 (applicable to E_Procedure).
1956 (Corresponding_Procedure): New attribute (applicable to E_Function).
1957 * exp_util.adb (Build_Procedure_Form): Link the function with
1958 its internally built proc and viceversa.
1959 * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the
1960 attribute Rewritten_For_C and Corresponding_Procedure to the body.
1961 * exp_ch6.adb (Rewritten_For_C_Func_Id): Removed.
1962 (Rewritten_For_C_Proc_Id): Removed.
1963 * exp_unst.adb (Note_Uplevel_Ref): Use the new attribute to
1964 locate the corresponding procedure.
1965
c7518e6f
AC
19662016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1967
1968 * sem_ch13.adb (Analyze_Aspect_Export_Import): Signal that there is no
1969 corresponding pragma.
1970
19712016-04-27 Bob Duff <duff@adacore.com>
1972
1973 * exp_ch3.adb: Minor comment improvement.
1974
19752016-04-27 Ed Schonberg <schonberg@adacore.com>
1976
1977 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): If the
1978 return type is an untagged limited record with only access
1979 discriminants and no controlled components, the return value does not
1980 need to use the secondary stack.
1981
19822016-04-27 Javier Miranda <miranda@adacore.com>
1983
1984 * exp_util.adb (Remove_Side_Effects): When
1985 generating C code handle object declarations that have
1986 discriminants and are initialized by means of a call to a
1987 function.
1988
19892016-04-27 Ed Schonberg <schonberg@adacore.com>
1990
1991 * a-textio.adb (Get_Line function): Handle properly the case of
1992 a line that has the same length as the buffer (or a multiple
1993 thereof) and there is no line terminator.
1994 * a-tigeli.adb (Get_Line procedure): Do not store an end_of_file
1995 in the string when there is no previous line terminator and we
1996 need at most one additional character.
1997
814cc240
AC
19982016-04-27 Arnaud Charlet <charlet@adacore.com>
1999
2000 * s-rident.ads: Make No_Implicit_Loops non partition wide.
2001
20022016-04-27 Arnaud Charlet <charlet@adacore.com>
2003
2004 * sem_ch11.adb (Analyze_Handled_Statements): check useless
2005 assignments also in entries and task bodies, not only in
2006 procedures and declaration blocks.
2007 * sem_ch5.adb (Analyze_Block_Statement): check useless
2008 assignements in declaration blocks as part of processing their
2009 handled statement sequence, just like it was done for procedures
2010 and now is also done for entries and task bodies.
2011 * sem_warn.adb (Warn_On_Useless_Assignment): detect boundries
2012 of entries and task bodies just like of procedures.
2013
20142016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
2015
2016 * sem_util.adb (Is_Volatile_Function): Recognize
2017 a function declared within a protected type as well as the
2018 protected/unprotected version of a function.
2019
24d2fbbe
BD
20202016-04-27 Bob Duff <duff@adacore.com>
2021
2022 * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite an object
2023 declaration of the form "X : T := Func (...);", where T is
2024 controlled, as a renaming.
2025 * a-strunb-shared.adb (Finalize): Set the Unbounded_String Object
2026 to be an empty string, instead of null-ing out the Reference.
2027 * exp_util.adb (Needs_Finalization): Remove redundant code.
2028
2e885a6f
AC
20292016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
2030
2031 * aspects.ads Aspects Export and Import do not require delay. They
2032 were classified as delayed aspects, but treated as non-delayed
2033 by the analysis of aspects.
2034 * freeze.adb (Copy_Import_Pragma): New routine.
2035 (Wrap_Imported_Subprogram): Copy the import pragma by first
2036 resetting all semantic fields to avoid an infinite loop when
2037 performing the copy.
2038 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add
2039 comment on the processing of aspects Export and Import
2040 at the freeze point.
2041 (Analyze_Aspect_Convention: New routine.
2042 (Analyze_Aspect_Export_Import): New routine.
2043 (Analyze_Aspect_External_Link_Name): New routine.
2044 (Analyze_Aspect_External_Or_Link_Name): Removed.
2045 (Analyze_Aspect_Specifications): Factor out the analysis of
2046 aspects Convention, Export, External_Name, Import, and Link_Name
2047 in their respective routines. Aspects Export and Import should
2048 not generate a Boolean pragma because their corresponding pragmas
2049 have a very different syntax.
2050 (Build_Export_Import_Pragma): New routine.
2051 (Get_Interfacing_Aspects): New routine.
2052
20532016-04-27 Eric Botcazou <ebotcazou@adacore.com>
2054
2055 * inline.adb (Add_Inlined_Body): Overhaul implementation,
2056 robustify handling of -gnatn1, add special treatment for
2057 expression functions.
2058
20592016-04-27 Doug Rupp <rupp@adacore.com>
2060
2061 * g-traceb.ads: Update comment.
2062 * exp_ch2.adb: minor style fix in object declaration
2063
2a253c5b
AC
20642016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
2065
2066 * sem_elab.adb (Check_Internal_Call): Do not
2067 consider a call when it appears within pragma Initial_Condition
2068 since the pragma is part of the elaboration statements of a
2069 package body and may only call external subprograms or subprograms
2070 whose body is already available.
2071 (Within_Initial_Condition): New routine.
2072
20732016-04-27 Ed Schonberg <schonberg@adacore.com>
2074
2075 * exp_util.adb (Build_Procedure_Form): Prevent double generation
2076 of the procedure form when dealing with an expression function
2077 whose return type is an array.
2078 * sem_ch3.adb: Fix out-of order Has_Predicates setting.
2079 * exp_ch6.adb: Proper conversion for inherited operation in C.
2080 * sem_ch6.adb: Code cleanup.
2081
20822016-04-27 Hristian Kirtchev <kirtchev@adacore.com>
2083
2084 * lib-xref.ads, sem_ch10.adb: minor style fix in comment
2085 * g-socket.adb: Minor reformatting.
2086 * sinfo.ads: Minor comment correction.
2087 * sem_warn.ads: minor grammar fix in comment
2088
afc737f0
EB
20892016-04-27 Eric Botcazou <ebotcazou@adacore.com>
2090
2091 * gcc-interface/gigi.h (gnat_to_gnu_entity): Adjust prototype.
2092 (maybe_pad_type): Adjust comment.
2093 (finish_record_type): Likewise.
2094 (rest_of_record_type_compilation): Likewise.
2095 * gcc-interface/decl.c (gnat_to_gnu_entity): Change DEFINITION type
2096 parameter from integer to boolean. Adjust recursive calls.
2097 <E_Subprogram_Type>: Use copy_type and remove redundant assignments.
2098 <E_Signed_Integer_Subtype>: Adjust comment. Remove call to
2099 rest_of_record_type_compilation. Set TYPE_PADDING_P flag earlier.
2100 Pass false to finish_record_type. Set the debug type later.
2101 <E_Record_Subtype>: Remove call to rest_of_record_type_compilation.
2102 (gnat_to_gnu_component_type): Fix formatting.
2103 (gnat_to_gnu_field_decl): Adjust call to gnat_to_gnu_entity.
2104 (gnat_to_gnu_type): Likewise.
2105 * gcc-interface/trans.c (Identifier_to_gnu): Likewise.
2106 (Loop_Statement_to_gnu): Likewise.
2107 (Subprogram_Body_to_gnu): Likewise.
2108 (Exception_Handler_to_gnu_fe_sjlj): Likewise.
2109 (Exception_Handler_to_gnu_gcc): Likewise.
2110 (Compilation_Unit_to_gnu): Likewise.
2111 (gnat_to_gnu): Likewise.
2112 (push_exception_label_stack): Likewise.
2113 (elaborate_all_entities_for_package): Likewise.
2114 (process_freeze_entity): Likewise.
2115 (process_decls): Likewise.
2116 (process_type): Likewise.
2117 * gcc-interface/utils.c (struct deferred_decl_context_node): Tweak.
2118 (maybe_pad_type): Adjust comments. Set the debug type later. Remove
2119 call to rest_of_record_type_compilation.
2120 (rest_of_record_type_compilation): Use copy_type.
2121 (copy_type): Use correctly typed constants.
2122 (gnat_signed_or_unsigned_type_for): Use copy_type.
2123 * gcc-interface/utils2.c (nonbinary_modular_operation): Likewise.
2124 (build_goto_raise): Adjust call tognat_to_gnu_entity.
2125
06aed101
EB
21262016-04-27 Eric Botcazou <ebotcazou@adacore.com>
2127
2128 * gcc-interface/misc.c (gnat_init): Do not call
2129 internal_reference_types.
2130
1ee806d8
SS
21312016-04-27 Svante Signell <svante.signell@gmail.com>
2132
2133 * gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.
2134 * s-osinte-gnu.ads: Small tweaks.
2135 * s-osinte-gnu.adb: New file.
2136
6c7f7b8c
AC
21372016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2138
2139 * sem_prag.adb (Match_Constituent): Treat a constant as a legal
2140 constituent even if it is not to prevent spurious errors.
2141
21422016-04-21 Gary Dismukes <dismukes@adacore.com>
2143
2144 * sem_ch4.adb: Minor typo fixes and reformatting.
2145
21462016-04-21 Dmitriy Anisimkov <anisimko@adacore.com>
2147
2148 * g-calend.ads (No_Time): The same value in any timezone.
2149 * g-socket.adb (Raise_Host_Error): Remove ending
2150 dot from original error message before append colon delimited
2151 host name.
2152
0310af44
AC
21532016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2154
2155 * sem_ch3.adb: Code cleanup.
2156 * sem_ch6.adb: Code cleanup.
2157 (Is_Matching_Limited_View): New routine.
2158 (Matches_Limited_With_View): Reimplemented.
2159 * sem_ch10.adb (Decorate_Type): Code cleanup.
2160
21612016-04-21 Doug Rupp <rupp@adacore.com>
2162
2163 * tracebak.c (PPC ELF): Add macro defs for lynxos178e.
2164
21652016-04-21 Ed Schonberg <schonberg@adacore.com>
2166
2167 * sem_ch4.adb (Try_Container_Indexing): If there are overloaded
2168 indexing functions, collect all overloadings of the call firts,
2169 and then transfer them to indexing node, to prevent interleaving
2170 of the set of interpretations of the nodes involved.
2171 * sem_res.adb (Resolve): Suppress cascaded errors that report
2172 ambiguities when one of the actuals in an overloaded generatlized
2173 indexing operation is illegal and has type Any_Type, as is done
2174 for similar cascaded errors in subprogram calls.
2175 (Valid_Tagged_Conversion): Cleanup conversion checks when one
2176 of the types involved is a class-wide subtype.
2177
21782016-04-21 Ed Schonberg <schonberg@adacore.com>
2179
2180 * sem_ch12.adb (Load_Parent_Of_Generic): When looking for the
2181 subprogram declaration within a wrapper package, skip pragmas
2182 that may have been generated by aspect specifications on the
2183 generic instance.
2184
21852016-04-21 Javier Miranda <miranda@adacore.com>
2186
2187 * exp_aggr.adb (Component_Not_OK_For_Backend): Generating C
2188 code return True for array identifiers since the backend needs
2189 to initialize such component by means of memcpy().
2190
150346bd
AC
21912016-04-21 Arnaud Charlet <charlet@adacore.com>
2192
2193 * a-tasatt.adb, a-tasatt.ads (Fast_Path): Rewritten to avoid reading
2194 potentially uninitialized memory.
2195 * sem_ch3.adb: Minor style fix in comment.
2196
c25f170d
AC
21972016-04-21 Arnaud Charlet <charlet@adacore.com>
2198
2199 * gnat_rm.texi, gnat_ugn.texi,
2200 doc/gnat_ugn/gnat_project_manager.rst,
2201 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
2202 doc/gnat_ugn/gnat_and_program_execution.rst,
2203 doc/gnat_ugn/gnat_utility_programs.rst,
2204 doc/gnat_ugn/the_gnat_compilation_model.rst,
2205 doc/gnat_rm/implementation_defined_attributes.rst,
2206 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
2207 doc/gnat_rm/implementation_defined_pragmas.rst,
2208 doc/gnat_rm/the_gnat_library.rst,
2209 doc/gnat_rm/implementation_defined_aspects.rst: Update doc.
2210 * doc/Makefile: Cleanups.
2211
f76647c2
AC
22122016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2213
2214 * exp_pakd.adb, sem_ch13.adb: Minor reformatting.
2215
22162016-04-21 Ed Schonberg <schonberg@adacore.com>
2217
2218 * exp_dbug.adb, exp_dbug.ads (Qualify_Entity_Name): Add suffixes to
2219 disambiguate local variables that may be hidden from inner visibility
2220 by nested block declarations or loop variables.
2221
22a4f9d5
AC
22222016-04-21 Jerome Lambourg <lambourg@adacore.com>
2223
2224 * s-soflin.adb: Initialize the Stack_Limit global variable.
2225
22262016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2227
2228 * lib-writ.adb: Minor reformatting.
2229
22302016-04-21 Ed Schonberg <schonberg@adacore.com>
2231
2232 * exp_pakd.adb (Compute_Number_Components): New function to
2233 build an expression that computes the number of a components of
2234 an array that may be multidimensional.
2235 (Expan_Packed_Eq): Use it.
2236
22372016-04-21 Arnaud Charlet <charlet@adacore.com>
2238
2239 * g-traceb.ads: Update list of supported platforms.
2240
22412016-04-21 Ed Schonberg <schonberg@adacore.com>
2242
2243 * sem_ch13.adb (Add_Predicates): if the type is declared in
2244 an inner package it may be frozen outside of the package, and
2245 the generated pragma has not been analyzed yet, the expression
2246 for the predicate must be captured and added to the predicate
2247 function at this point.
2248
22492016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2250
2251 * contracts.adb (Analyze_Package_Body_Contract): Do not check
2252 for a missing package refinement because 1) packages do not have
2253 "refinement" and 2) the check for proper state refinement is
2254 performed in a different place.
2255 * einfo.adb (Has_Non_Null_Visible_Refinement): Reimplemented.
2256 (Has_Null_Visible_Refinement): Reimplemented.
2257 * sem_ch3.adb (Analyze_Declarations): Determine whether all
2258 abstract states have received a refinement and if not, emit
2259 errors.
2260 * sem_ch7.adb (Analyze_Package_Declaration): Code
2261 cleanup. Determine whether all abstract states of the
2262 package and any nested packages have received a refinement
2263 and if not, emit errors.
2264 (Requires_Completion_In_Body): Add new formal parameter
2265 Do_Abstract_States. Update the comment on usage. Propagate the
2266 Do_Abstract_States flag to all Unit_Requires_Body calls.
2267 (Unit_Requires_Body): Remove formal
2268 parameter Ignore_Abstract_States. Add new formal paramter
2269 Do_Abstract_States. Propagate the Do_Abstract_States flag to
2270 all Requires_Completion_In calls.
2271 * sem_ch7.ads (Unit_Requires_Body): Remove formal
2272 parameter Ignore_Abstract_States. Add new formal paramter
2273 Do_Abstract_States. Update the comment on usage.
2274 * sem_ch9.adb (Analyze_Single_Protected_Declaration): Do
2275 not initialize the constituent list as this is now done on a
2276 need-to-add-element basis.
2277 (Analyze_Single_Task_Declaration):
2278 Do not initialize the constituent list as this is now done on
2279 a need-to-add-element basis.
2280 * sem_ch10.adb (Decorate_State): Do not initialize the constituent
2281 lists as this is now done on a need-to-add-element basis.
2282 * sem_prag.adb (Analyze_Constituent): Set the
2283 refinement constituents when adding a new element.
2284 (Analyze_Part_Of_In_Decl_Part): Set the Part_Of constituents when
2285 adding a new element.
2286 (Analyze_Part_Of_Option): Set the Part_Of
2287 constituents when adding a new element.
2288 (Analyze_Pragma): Set the Part_Of constituents when adding a new
2289 element.
2290 (Check_Constituent_Usage (all versions)): Reimplemented.
2291 (Collect_Constituent): Set the refinement constituents when adding
2292 a new element.
2293 (Create_Abstract_State): Do not initialize the
2294 constituent lists as this is now done on a need-to-add-element basis.
2295 (Propagate_Part_Of): Set the Part_Of constituents when
2296 adding a new element.
2297 * sem_util.adb (Check_State_Refinements): New routine.
2298 (Has_Non_Null_Refinement): Reimplemented.
2299 (Has_Null_Refinement): Reimplemented.
2300 (Requires_State_Refinement): Removed.
2301 * sem_util.ads (Check_State_Refinements): New routine.
2302 (Requires_State_Refinement): Removed.
2303
c4dc2125
HK
23042016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2305
2306 * lib-writ.adb, sem_ch6.adb: Minor reformatting and code cleanup.
2307 * sem.adb: Fix comment.
2308
c42aba6b
AC
23092016-04-21 Ed Schonberg <schonberg@adacore.com>
2310
2311 * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype
2312 declaration with no aspects, whose subtype_mark is a subtype
2313 with predicates, inherits the list of subprograms for the type.
2314
23152016-04-21 Arnaud Charlet <charlet@adacore.com>
2316
2317 * exp_aggr.adb (Has_Per_Object_Constraint): Refine previous
2318 change.
2319
23202016-04-21 Thomas Quinot <quinot@adacore.com>
2321
2322 * g-socket.adb (Raise_Host_Error): Include additional Name parameter.
2323
23242016-04-21 Ed Schonberg <schonberg@adacore.com>
2325
2326 * lib-writ.adb (Write_ALI): Do not record in ali file units
2327 that are present in the files table but not analyzed. These
2328 units are present because they appear in the context of units
2329 named in limited_with clauses, and the unit being compiled does
2330 not depend semantically on them.
2331
23322016-04-21 Ed Schonberg <schonberg@adacore.com>
2333
2334 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Simplify code to
2335 create the procedure body for an function returning an array type,
2336 when generating C code. Reuse the subprogram body rather than
2337 creating a new one, both as an efficiency measure and because
2338 in an instance the body may contain global references that must
2339 be preserved.
2340
bbe008b6
HK
23412016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2342
2343 * sem_ch3.adb, exp_attr.adb, exp_ch6.adb, exp_aggr.adb: Minor
2344 reformatting.
2345
35f4f238
JM
23462016-04-21 Javier Miranda <miranda@adacore.com>
2347
2348 * exp_aggr.adb (Component_Check): Extend
2349 the check that verifies that the aggregate has no function
2350 calls to handle transformations performed by the frontend.
2351 (Ultimate_Original_Expression): New subprogram.
2352
a1ad79ed
AC
23532016-04-21 Philippe Gil <gil@adacore.com>
2354
2355 * krunch.adb (Krunch): Fix krunching of i-java.
2356
23572016-04-21 Arnaud Charlet <charlet@adacore.com>
2358
2359 * exp_ch8.adb (Evaluation_Required): Always return
2360 True when Modify_Tree_For_C.
2361
9b7924dd
AC
23622016-04-21 Eric Botcazou <ebotcazou@adacore.com>
2363
2364 * gnatlink.adb (Gnatlink): Robustify detection of Windows target.
2365 * alloc.ads: Minor comment fixes.
2366 * einfo.ads: Fix typo.
2367
23682016-04-21 Arnaud Charlet <charlet@adacore.com>
2369
2370 * exp_aggr.adb (Component_Not_OK_For_Backend): Redo previous
2371 changes to handle all cases of components depending on the
2372 discriminant, not just string literals.
2373
23742016-04-21 Ed Schonberg <schonberg@adacore.com>
2375
2376 * sem_ch3.adb (Analyze_Subtype_Declaration): If the subtype
2377 declaration is the generated declaration for a generic actual,
2378 inherit predicates from the actual if it is a predicated subtype.
2379
23802016-04-21 Ed Schonberg <schonberg@adacore.com>
2381
2382 * exp_ch6.adb (Rewrite_Function_Call_For_C): If the function is
2383 inherited and its result is controlling, introduce a conversion
2384 on the actual for the corresponding procedure call, to avoid
2385 spurious type errors.
2386
23872016-04-21 Jerome Lambourg <lambourg@adacore.com>
2388
2389 * krunch.adb (Krunch): Fix krunching of i-vxworks.
2390
d74716b3
AC
23912016-04-21 Gary Dismukes <dismukes@adacore.com>
2392
2393 * exp_aggr.adb: Minor reformatting and code cleanup.
2394
23952016-04-21 Ed Schonberg <schonberg@adacore.com>
2396
2397 * sem_ch13.adb (Resolve_Name): Omit quantified expressions from
2398 resolution, because they introduce local names. Full resolution
2399 will take place when predicate function is constructed.
2400
0ef5cd0a 24012016-04-21 Arnaud Charlet <charlet@adacore.com>
2d6aa715 2402
0ef5cd0a
AC
2403 * exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous
2404 change to take into account Per_Object_Constraint field rather
2405 than special casing strings.
2406 * exp_ch6.adb: Fix typo in Replace_Returns.
2d6aa715 2407
0ef5cd0a 24082016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2d6aa715 2409
0ef5cd0a 2410 * sem_ch5.adb: Minor reformatting.
2d6aa715
AC
2411
24122016-04-21 Arnaud Charlet <charlet@adacore.com>
2413
2414 * exp_aggr.adb (Backend_Processing_Possible): Return False
2415 when generating C and aggregate contains function calls.
2416
24172016-04-21 Tristan Gingold <gingold@adacore.com>
2418
2419 * krunch.adb (Krunch): Only partially krunch children of
2420 Interfaces that aren't known.
2421
24222016-04-21 Ed Schonberg <schonberg@adacore.com>
2423
2424 * sem_prag.adb (Make_Inline): Handle properly the instantiation
2425 of a generic subpprogram that carries an Inline aspect. Place
2426 inline info on the anonymous subprogram that is constructed in
2427 the wrapper package.
2428 (Analyze_Pragma, case Pure): Do not check placement if pragma
2429 appears within an instantiation, which can be nested at any level.
2430 * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not copy Freeze
2431 node from anonymous subprogram to its visible renaming. The
2432 freeze node will be constructed if the subprogram carries
2433 delayed aspects.
2434 (Set_Global): Preserve dimension information if present (from
2435 code reading).
2436
24372016-04-21 Vasiliy Fofanov <fofanov@adacore.com>
2438
2439 * gnatlink.adb: Change wording of the warning message on
2440 problematic filenames to be more neutral. Add a new substring
2441 "patch" introduced on Windows 10.
2442
08f52d9f
AC
24432016-04-21 Philippe Gil <gil@adacore.com>
2444
2445 * tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only)
2446
24472016-04-21 Javier Miranda <miranda@adacore.com>
2448
2449 * exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string
2450 literals.
2451
24522016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2453
2454 * einfo.adb (Has_Non_Null_Abstract_State): New routine.
2455 * einfo.ads New synthesized attribute
2456 Has_Non_Null_Abstract_State along with occurrences in entities.
2457 (Has_Non_Null_Abstract_State): New routine.
2458 * sem_ch7.adb (Unit_Requires_Body): Add local variable
2459 Requires_Body. A package declaring an abstract state requires
2460 a body only when the state is non-null and the package contains
2461 at least one other construct that requires completion in a body.
2462 * sem_util.adb (Mode_Is_Off): Removed.
2463 (Requires_State_Refinement): Remove an obsolete check. Code
2464 cleanup.
2465
24662016-04-21 Bob Duff <duff@adacore.com>
2467
2468 * sem_attr.adb (Analyze_Attribute): In processing
2469 the 'Old attribute, a warning is given for infinite recursion. Fix
2470 the code to not crash when the prefix of 'Old denotes a protected
2471 function.
2472 * sem_ch5.adb (Analyze_Iterator_Specification):
2473 Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases
2474 where the parameter would not be an object.
2475
24762016-04-21 Eric Botcazou <ebotcazou@adacore.com>
2477
2478 * sem_eval.adb (Compile_Time_Compare): Be prepared for an empty
2479 Etype or Underlying_Type of the operands.
2480
24812016-04-21 Eric Botcazou <ebotcazou@adacore.com>
2482
2483 * atree.adb (Print_Statistics): Protect against overflows and
2484 print the memory consumption in bytes.
2485 * table.adb (Reallocate): Do the intermediate calculation of the new
2486 size using the Memory.size_t type.
2487
b943a971
AC
24882016-04-21 Gary Dismukes <dismukes@adacore.com>
2489
2490 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Suppress
2491 expansion of Attribute_Machine and Attribute_Model for AAMP.
2492
24932016-04-21 Ed Schonberg <schonberg@adacore.com>
2494
2495 * freeze.adb: Disable previous change for now.
2496
24972016-04-21 Ed Schonberg <schonberg@adacore.com>
2498
2499 * sem_ch8.adb (Find_Selected_Component): If prefix has an
2500 access type and designated type is a limited view, introduce
2501 an explicit dereference before continuing the analysis, and
2502 set its type to the non-limited view of the designated type,
2503 if we are in context where it is available.
2504
78bc7fe6
ES
25052016-04-21 Ed Schonberg <schonberg@adacore.com>
2506
2507 * freeze.adb: Freeze profile in ASIS mode.
2508
6dc87f5f
AC
25092016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2510
2511 * sem_aux.ads, sem_aux.adb (Has_Rep_Item): New variant.
2512 * sem_util.adb (Inherit_Rep_Item_Chain): Reimplemented.
2513
25142016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2515
2516 * exp_ch6.adb: Minor reformatting.
2517
25182016-04-21 Ed Schonberg <schonberg@adacore.com>
2519
2520 * sem_ch13.adb: Minor comment update.
2521
25222016-04-21 Ed Schonberg <schonberg@adacore.com>
2523
2524 * freeze.ads, freeze.adb (Freeze_Entity, Freeze_Before): Add
2525 boolean parameter to determine whether freezing an overloadable
2526 entity freezes its profile as well. This is required by
2527 AI05-019. The call to Freeze_Profile within Freeze_Entity is
2528 conditioned by the value of this flag, whose default is True.
2529 * sem_attr.adb (Resolve_Attribute, case 'Access): The attribute
2530 reference freezes the prefix, but it the prefix is a subprogram
2531 it does not freeze its profile.
2532
a14bbbb4
AC
25332016-04-21 Javier Miranda <miranda@adacore.com>
2534
2535 * exp_util.adb (Build_Procedure_Form): No action needed for
2536 subprogram renamings since the backend can generate the call
2537 using the renamed subprogram. This leaves the tree more clean
2538 to the backend.
2539 * exp_ch6.adb (Expand_Call): Extend previous patch for
2540 rewritten-for-c entities to handle subprogram renamings.
2541 (Rewrite_Function_Call_For_C): Handle subprogram renamings.
2542
25432016-04-21 Ed Schonberg <schonberg@adacore.com>
2544
2545 * sem_ch13.adb: Code cleanup.
2546
17fd72ce
ES
25472016-04-21 Ed Schonberg <schonberg@adacore.com>
2548
2549 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
2550 created for SPARK_To_C, the entity must remain invisible so it
2551 does not overload subsequent references to the original function.
2552 * exp_ch6.adb (Build_Procedure_Body_Form, Replace_Returns):
2553 Handle Extended_Return_Statements by replacing it with a block
2554 with assignments and a simple return statement.
2555 * exp_util.adb (Build_Procedure_Form): Make procedure entity
2556 invisible after analyzing declaration, to prevent improper
2557 overloading.
2558
aeb98f1d
JM
25592016-04-21 Javier Miranda <miranda@adacore.com>
2560
2561 * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the
2562 attribute Rewritten_For_C to the body since since the expander
2563 may generate calls using that entity.
2564 * exp_ch6.adb (Expand_Call): For internally generated
2565 calls ensure that they reference the entity of the spec
2566 of the called function.
2567 (Rewritten_For_C_Func_Id): New subprogram.
2568 (Rewritten_For_C_Proc_Id): New subprogram.
2569 (Rewrite_Function_Call_For_C): Invoke the new subprogram to
2570 ensure that we skip freezing entities.
2571 * exp_util.adb (Build_Procedure_Form): No action needed if the
2572 procedure was already built.
2573
2cc7967f
AC
25742016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
2575
2576 * sem_ch3.adb, exp_util.adb, sem_ch13.adb, exp_unst.adb: Minor
2577 reformatting.
2578
25792016-04-21 Ed Schonberg <schonberg@adacore.com>
2580
2581 * sem_util.adb (Denotes_Iterator): Use root type to determine
2582 whether the ultimate ancestor is the predefined iterator
2583 interface pakage.
2584 * exp_ch5.adb (Expand_Iterator_Over_Container): simplify code
2585 and avoid reuse of Pack local variable.
2586
25872016-04-21 Olivier Hainque <hainque@adacore.com>
2588
2589 * system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
2590 system-vxworks-ppc.ads, system-vxworks-m68k.ads,
2591 system-vxworks-mips.ads, system-vxworks-x86.ads: Define
2592 Executable_Extension to ".out".
2593
29a56f61
JM
25942016-04-21 Javier Miranda <miranda@adacore.com>
2595
2596 * frontend.adb: Update call to Unnest_Subprograms.
2597 * exp_ch6.ads, exp_ch6.adb, exp_unst.ads, exp_unst.adb
2598 (Unnest_Subprograms): Moved to package exp_unst.
2599 * exp_unst.ads (Unnest_Subprogram): Moved to the body of the
2600 package.
2601 * exp_dbug.adb (Qualify_Entity_Name): Enable qualification of
2602 enumeration literals when generating C code.
2603
e379beb5
AC
26042016-04-21 Javier Miranda <miranda@adacore.com>
2605
2606 * frontend.adb: Remove call to initialize Exp_Ch6.
2607 * exp_ch6.ads, exp_ch6.adb (Initialize): removed.
2608 (Unest_Entry/Unest_Bodies): Removed.
2609 (Unnest_Subprograms): Code cleanup.
2610
26112016-04-21 Arnaud Charlet <charlet@adacore.com>
2612
2613 * set_targ.adb (Read_Target_Dependent_Values):
2614 close target description file once its contents is read.
2615 * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File
2616 and Stderr_File): Close local file descriptors before spawning
2617 child process.
2618 * exp_util.adb (Containing_Package_With_Ext_Axioms): Limit scope of
2619 local variables to make the code easier to understand and avoid
2620 duplicated calls to Parent and Generic_Parent.
2621
6905a049
AC
26222016-04-20 Bob Duff <duff@adacore.com>
2623
2624 * s-os_lib.ads: Minor comment fix.
2625
26262016-04-20 Ed Schonberg <schonberg@adacore.com>
2627
2628 * exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate
2629 a discriminant check for a type whose partial view has unknown
2630 discriminants when the full view has discriminants with defaults.
2631
26322016-04-20 Javier Miranda <miranda@adacore.com>
2633
2634 * exp_util.adb (Remove_Side_Effects): When generating C code
2635 remove side effect of type conversion of access to unconstrained
2636 array type.
2637 (Side_Effect_Free): Return false for the type
2638 conversion of access to unconstrained array type when generating
2639 C code.
2640 * sem_res.adb (Resolved_Type_Conversion): Remove side effects
2641 of access to unconstrained array type conversion when generating
2642 C code.
2643
26442016-04-20 Ed Schonberg <schonberg@adacore.com>
2645
2646 * sem_ch13.adb (Build_Predicate_Function_Declaration): New
2647 function, to construct the declaration of a predicate function
2648 at the end of the current declarative part rather than at the
2649 (possibly later) freeze point of the type. This also allows uses
2650 of a type with predicates in instantiations elsewhere.
2651 (Resolve_Aspect_Expression): New procedure to detect visiblity
2652 errors in aspect expressions, at the end of the declarative part
2653 that includes the type declaration.
2654 * sem_ch3.adb (Complete_Private_Subtype): Propagate properly the
2655 predicate function from private to full view.
2656 * einfo.adb (Predicate_Function): Refine search for predicate
2657 function when type has a full view and predicate function may
2658 be defined on either view.
2659
26602016-04-20 Javier Miranda <miranda@adacore.com>
2661
2662 * frontend.adb: Passing the root of the tree to
2663 Unnest_Subprograms().
2664 * exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that
2665 took care of adding subprograms to the Unest_Bodies table since
2666 performing such action too early disables the ability to process
2667 generic instantiations.
2668 (Unnest_Subprograms): Adding parameter.
2669 (Search_Unnesting_Subprograms): New subprogram.
2670 * exp_ch6.ads (Unnest_Subrograms): Update documentation.
2671
268aeaa9
AC
26722016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2673
2674 * exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting.
2675
26762016-04-20 Ed Schonberg <schonberg@adacore.com>
2677
2678 * exp_unst.adb (Check_Static_Type): For a private type, check
2679 full view.
2680
26812016-04-20 Ed Schonberg <schonberg@adacore.com>
2682
2683 * sem_attr.adb (Check_Type): Reject an attribute reference in
2684 an aspect expression, when the prefix of the reference is the
2685 current instance of the type to which the aspect applies.
2686
51b42ffa
AC
26872016-04-20 Bob Duff <duff@adacore.com>
2688
2689 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about
2690 hiding unless we're actually hiding something. The previous
2691 code would (for example) warn about a "<" on a record type
2692 because it incorrectly thought it was hiding the "<" on Boolean
2693 in Standard. We need to check that the homonym S is in fact a
2694 homograph of a predefined operator.
2695
26962016-04-20 Ed Schonberg <schonberg@adacore.com>
2697
2698 * exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here
2699 from exp_ch6.adb, for use in SPARK_To_C mode when creating the
2700 procedure equivalent to a function returning an array, when this
2701 construction is deferred to the freeze point of the function.
2702 * sem_util.adb (Is_Unchecked_Conversion_Instance): Include a
2703 function that renames an instance of Unchecked_Conversion.
2704 * freeze.adb (Freeze_Subprogram): Generate the proper procedure
2705 declaration for a function returning an array.
2706 * exp_ch6.adb (Build_Procedure_Form): Moved to exp_util.
2707
f73dc37f
ES
27082016-04-20 Ed Schonberg <schonberg@adacore.com>
2709
2710 * sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute):
2711 New predicate to determine that in a context with full run-time,
2712 a function call is an expansion of a reference to attribute
2713 Priority.
2714 * sem_ch5.adb (Analyze_Function_Call): use it.
2715 * exp_ch5.adb (Expand_N_Subprogram_Call): use it.
2716
75a957f5
AC
27172016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2718
2719 * einfo.adb Flag286 is now used as Is_Exception_Handler.
2720 (Is_Exception_Handler): New routine.
2721 (Set_Is_Exception_Handler): New routine.
2722 (Write_Entity_Flags): Output the status of Is_Exception_Handler.
2723 * einfo.ads New attribute Is_Exception_Handler along with
2724 occurrences in entities.
2725 (Is_Exception_Handler): New routine along with pragma Inline.
2726 (Set_Is_Exception_Handler): New routine along with pragma Inline.
2727 * exp_ch7.adb (Make_Transient_Block): Ignore blocks generated
2728 for exception handlers with a choice parameter.
2729 * sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope
2730 generated for a choice parameter as an exception handler.
2731
27322016-04-20 Ed Schonberg <schonberg@adacore.com>
2733
2734 * sem_ch3.adb (Build_Derived_Access_Type): Remove dead code.
2735 (Constrain_Discriminated_Type): In an instance, if the type has
2736 unknown discriminants, use its full view.
2737 (Process_Subtype): Check that the base type is private before
2738 adding subtype to Private_Dependents list.
2739
27402016-04-20 Bob Duff <duff@adacore.com>
2741
2742 * sem_ch13.adb: Minor comment fix.
2743
bc795e3e
YM
27442016-04-20 Yannick Moy <moy@adacore.com>
2745
2746 * sem_ch4.adb: Fix typos in comments.
2747 * sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives.
2748
0f8b3e5d
AC
27492016-04-20 Ed Schonberg <schonberg@adacore.com>
2750
2751 * sem_ch4.adb (Analyze_Selected_Component): A reference to the
2752 current instance of a task type is legal if the prefix is an
2753 expression of that task type and the selector is an entry or
2754 entry family.
2755
27562016-04-20 Arnaud Charlet <charlet@adacore.com>
2757
2758 * a-cfdlli.ads (List): Type is no longer tagged, not needed. Move
2759 varsize field at the end for efficiency.
2760
0c61772a
AC
27612016-04-20 Vincent Celier <celier@adacore.com>
2762
2763 * gnatcmd.adb: Do not invoke gprls when the invocation of "gnat
2764 ls" includes the switch -V.
2765 * clean.adb: "<target>-gnatclean -P" now calls "gprclean
2766 --target=<target>"
2767 * make.adb: "<target>-gnatmake -P" now calls "gprbuild
2768 --target=<target>"
2769
27702016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2771
2772 * sem_ch12.adb (Qualify_Type): Do not perform
2773 partial qualification when the immediate scope is a generic unit.
2774
61d1b085
HK
27752016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2776
2777 * exp_unst.adb: Minor reformatting.
2778
18431dc5
AC
27792016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2780
2781 * exp_ch4.adb (Expand_Allocator_Expression): Ensure that the
2782 tag assignment and adjustment preceed the accessibility check.
2783 * exp_ch7.adb (Is_Subprogram_Call): Reimplemented.
2784
27852016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2786
2787 * exp_prag.adb (Expand_Attributes): Ensure that
2788 the temporary used to capture the value of attribute 'Old's
2789 prefix is properly initialized.
2790
27912016-04-20 Javier Miranda <miranda@adacore.com>
2792
2793 * exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library
2794 level.
2795
dfbc6cbe
AC
27962016-04-20 Arnaud Charlet <charlet@adacore.com>
2797
2798 * sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning
2799 in codepeer mode.
2800
28012016-04-20 Vincent Celier <celier@adacore.com>
2802
2803 * make.adb: Code cleanup.
2804
28052016-04-20 Arnaud Charlet <charlet@adacore.com>
2806
2807 * exp_ch4.adb (Expand_Allocator_Expression): Help C code
2808 generation.
2809
06f6c43f
AC
28102016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2811
2812 * sem_ch12.adb (Copy_Generic_Node): Handle the special
2813 qualification installed for universal literals that act as
2814 operands in binary or unary operators. (Qualify_Operand): Mark
2815 the qualification to signal the instantiation mechanism how to
2816 handle global reference propagation.
2817 * sinfo.adb (Is_Qualified_Universal_Literal): New routine.
2818 (Set_Is_Qualified_Universal_Literal): New routine.
2819 * sinfo.ads New attribute Is_Qualified_Universal_Literal along
2820 with occurrences in nodes.
2821 (Is_Qualified_Universal_Literal):
2822 New routine along with pragma Inline.
2823 (Set_Is_Qualified_Universal_Literal): New routine along with
2824 pragma Inline.
2825
28262016-04-20 Ed Schonberg <schonberg@adacore.com>
2827
2828 * sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length
2829 so that the corresponding checks are preserved across compilations
2830 that include System.Constants in their context.
2831
28322016-04-20 Gary Dismukes <dismukes@adacore.com>
2833
2834 * sem_type.adb: Minor typo fix and reformatting.
2835 * a-conhel.ads: Update comment.
2836
28372016-04-20 Bob Duff <duff@adacore.com>
2838
2839 * a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the
2840 code so it doesn't trigger an "uninit var" warning.
2841
71129dde
AC
28422016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2843
2844 * sem_attr.ads Add new table Universal_Type_Attribute.
2845 * sem_util.adb (Yields_Universal_Type): Use a table lookup when
2846 checking attributes.
2847
28482016-04-20 Ed Schonberg <schonberg@adacore.com>
2849
2850 * exp_aggr.adb (Init_Stored_Discriminants,
2851 Init_Visible_Discriminants): New procedures, subsidiary of
2852 Build_Record_Aggr_Code, to handle properly the construction
2853 of aggregates for a derived type that constrains some parent
2854 discriminants and renames others.
2855
5c63aafa
HK
28562016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2857
2858 * sem_ch12.adb (Qualify_Universal_Operands): New routine.
2859 (Save_References_In_Operator): Add explicit qualifications in
2860 the generic template for all operands of universal type.
2861 * sem_type.adb (Disambiguate): Update the call to Matches.
2862 (Matches): Reimplemented.
2863 * sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine.
2864
7e22a38c
AC
28652016-04-20 Ed Schonberg <schonberg@adacore.com>
2866
2867 * sem_ch13.adb (Rep_Item_Too_Late): Better error message for
2868 an illegal aspect that freezes the entity to which it applies.
2869
28702016-04-20 Bob Duff <duff@adacore.com>
2871
2872 * a-stwibo.ads, a-stzbou.ads
2873 ("="): Add overriding keyword before function to avoid crash when
2874 compiler is called with -gnatyO (check overriding indicators).
2875
28762016-04-20 Ed Schonberg <schonberg@adacore.com>
2877
2878 * sem_prag.adb (Analyze_Pragma, case Check_Policy): If this
2879 is a configuration pragma and it uses the ARG syntax, insert
2880 the rewritten pragma after the current one rather than using
2881 Insert_Actions.
2882
28832016-04-20 Arnaud Charlet <charlet@adacore.com>
2884
2885 * exp_aggr.adb (Backend_Processing_Possible): Add handling of
2886 C back-end.
2887
b83dd5ec
HK
28882016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2889
2890 * s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb,
2891 s-imglli.adb: Minor reformatting.
2892
d566e90a
HK
28932016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2894
2895 * sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the
2896 renamed operator when the associated node appears within a
2897 pre/postcondition.
2898 * sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine.
2899
9a476d75
AC
29002016-04-20 Yannick Moy <moy@adacore.com>
2901
2902 * osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix.
2903 * einfo.adb (Set_Overridden_Operation): Add assertion.
2904 * sem_util.adb (Unique_Entity): for renaming-as-body return the spec
2905 entity.
2906
29072016-04-20 Javier Miranda <miranda@adacore.com>
2908
2909 * exp_unst.adb (Append_Unique_Call): New subprogram.
2910 (Unnest_Subprogram): Replace the unique occurrence
2911 of Call.Append() by Append_Unique_Call() which protects us from
2912 adding to the Calls table duplicated entries.
2913
29142016-04-20 Arnaud Charlet <charlet@adacore.com>
2915
2916 * exp_attr.adb (Is_GCC_Target): Fix for C backend.
2917 * xref_lib.ads (Dependencies_Tables): instantiate
2918 Table package with types that guarantee its safe use.
2919 * s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested
2920 procedures.
2921
88438c0e
AC
29222016-04-20 Arnaud Charlet <charlet@adacore.com>
2923
2924 * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]):
2925 Disable expansion when generating C code.
2926 * sinfo.ads, inline.ads: Minor editing.
2927
c37e6613
HK
29282016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
2929
2930 * sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor
2931 reformatting.
2932
7f5e1dee
JM
29332016-04-20 Javier Miranda <miranda@adacore.com>
2934
2935 * contracts.adb (Build_Postconditions_Procedure): Code cleanup.
2936 * ghost.adb (Os_OK_Ghost_Context.Is_OK_Declaration): Handle the
2937 declaration of the internally built _postcondition procedure.
2938
31ae1b46
AC
29392016-04-20 Arnaud Charlet <charlet@adacore.com>
2940
2941 * snames.ads-tmpl (Internal_Attribute_Id, Attribute_Class_Array): Fix
2942 indentation.
2943 * sem_util.adb (Is_Unchecked_Conversion_Instance):
2944 defense against library-level renamings of other functions,
2945 which are never instances of Unchecked_Conversion.
2946 * einfo.ads: minor fix of casing in comment
2947
29482016-04-20 Ed Schonberg <schonberg@adacore.com>
2949
2950 * exp_ch6.adb (Expand_N_Subprogram_Stub): Do not expand a body
2951 that has been analyzed and expanded already. Qualify the names
2952 in the proper body for use in the generation of C code.
2953
1ba563f5
AC
29542016-04-20 Javier Miranda <miranda@adacore.com>
2955
2956 * contracts.adb (Build_Postconditions_Procedure): Force its
2957 inlining when generating C code.
2958 * sem_attr.adb (Analyze_Attribute_Old_Result): Handle inlined
2959 _postconditions when generating C code.
2960 * exp_ch6.adb (Inlined_Subprogram): Inline calls to
2961 _postconditions when generating C code.
2962 * sinfo.ads, sinfo.adb (Corresponding_Spec, Set_Corresponding_Spec):
2963 types of return value and argument changed from Node_Id to
2964 Entity_Id.
2965
29662016-04-20 Vincent Celier <celier@adacore.com>
2967
2968 * make.adb, clean.adb, gnatname.adb: Revert previous change for now.
2969
29702016-04-20 Eric Botcazou <ebotcazou@adacore.com>
2971
2972 * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset
2973 the Has_Delayed_Freeze flag on the anonymous instance node.
2974
e361e9a1
AC
29752016-04-20 Javier Miranda <miranda@adacore.com>
2976
2977 * sem_ch5.adb (Analyze_Iterator_Specification): Remove transient
2978 scope associated with the renaming object declaration.
2979 * exp_util.adb (Insert_Actions): Remove handling of iterator
2980 loop marked as requiring the secondary stack.
2981
29822016-04-20 Ed Schonberg <schonberg@adacore.com>
2983
2984 * sem_attr.adb (Analyze_Attribute, case 'Image): Implement
2985 AI12-0124, which extends the functionality of the attribute so it
2986 reflects the semantics of GNAT 'Img when applied to scalar types.
2987 * lib-xref.adb: minor whitespace layout fix.
2988
d67ffa88
AC
29892016-04-20 Vincent Celier <celier@adacore.com>
2990
2991 * clean.adb (Gnatclean): Fail if project file specified and
2992 gprclean is not available.
2993 * gnatname.adb: Fail is -P is used and gprname is not available.
2994 * make.adb (Initialize): Fail if project file specified and
2995 gprbuild is not available.
2996
29972016-04-20 Bob Duff <duff@adacore.com>
2998
2999 * sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary
3000 stack when possible.
3001
93e90bf4
AC
30022016-04-20 Gary Dismukes <dismukes@adacore.com>
3003
3004 * par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and
3005 reformatting.
3006
30072016-04-20 Ed Schonberg <schonberg@adacore.com>
3008
3009 * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool):
3010 If the pragma comes from an aspect specification, verify that
3011 the aspect applies to an entity with a declarative part.
3012 * exp_ch5.adb: Code cleanup.
3013
30142016-04-20 Ed Schonberg <schonberg@adacore.com>
3015
3016 * sem_res.adb (Resolve_If_Expression): If first expression is
3017 universal, resolve subsequent ones with the corresponding class
3018 type (Any_Integer or Any_Real).
3019
30202016-04-20 Ed Schonberg <schonberg@adacore.com>
3021
3022 * sem_ch5.adb (Analyze_Iterator_Specification): If expansion is
3023 disabled, complete the analysis of the iterator name to ensure
3024 that reference for entities within are properly generated.
3025
30262016-04-20 Arnaud Charlet <charlet@adacore.com>
3027
3028 * a-dispat.ads (Yield): add Global contract.
3029 * a-calend.ads, a-reatim.ads: Added Initializes => Clock_Time.
3030 * a-taside.adb: Added Initializes => Tasking_State.
3031
ae3d8837
HK
30322016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
3033
3034 * sem_ch13.adb (Build_Invariant_Procedure):
3035 Reimplement the invariant procedure spec and body insertion.
3036
776fbb74
AC
30372016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
3038
3039 * sem_ch13.adb (Add_Invariant): Do not replace
3040 the saved expression of an invariatn aspect when inheriting
3041 a class-wide type invariant as this clobbers the existing
3042 expression. Do not use New_Copy_List as it is unnecessary
3043 and leaves the parent pointers referencing the wrong part of
3044 the tree. Do not replace the type references for ASIS when
3045 inheriting a class-wide type invariant as this clobbers the
3046 existing replacement.
3047
30482016-04-20 Ed Schonberg <schonberg@adacore.com>
3049
3050 * sem_util.adb (Build_Explicit_Dereference): If the designated
3051 expression is an entity name, generate reference to the entity
3052 because it will not be resolved again.
3053
a0176903
AC
30542016-04-19 Arnaud Charlet <charlet@adacore.com>
3055
3056 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
3057 gnat_rm.texi: Update documentation.
3058
009c0268
AC
30592016-04-19 Olivier Hainque <hainque@adacore.com>
3060
3061 * par_sco.adb (Traverse_One, case N_Case_Statement):
3062 Skip pragmas before the first alternative.
3063 (Traverse_Handled_Statement_Sequence, Exception_Handlers): Likewise.
3064
30652016-04-19 Tristan Gingold <gingold@adacore.com>
3066
3067 * adaint.c (__gnat_lwp_self): New function (for darwin).
3068 * s-osinte-darwin.ads, s-osinte-darwin.adb (lwp_self): Import
3069 of __gnat_lwp_self.
3070
27b95a65
OH
30712016-04-19 Olivier Hainque <hainque@adacore.com>
3072
3073 * sem_util.adb (Build_Elaboration_Entity): Always request an
3074 elab counter when preserving control-flow.
3075
30762016-04-19 Olivier Hainque <hainque@adacore.com>
3077
3078 * sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set
3079 Needs_Debug_Info when producing SCOs.
3080 * par_sco.adb (Traverse_Aspects): Fix categorization of
3081 Type_Invariant to match actual processing as activated depending
3082 on pragma Assertion_Policy.
3083 * sem_prag.adb (Analyze_Pragma): Remove special case for
3084 Name_Invariant regarding SCO generation, which completely disabled
3085 the production of SCOs for Invariant pragmas and aspects.
3086
b4213ffd
AC
30872016-04-19 Hristian Kirtchev <kirtchev@adacore.com>
3088
3089 * checks.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor
3090 reformatting.
3091
30922016-04-19 Ed Schonberg <schonberg@adacore.com>
3093
3094 * freeze.adb (Freeze_Profile): Refine predicate that checks
3095 whether a function that returns a limited view is declared in
3096 another unit and cannot be frozen at this point.
3097
30982016-04-19 Ed Schonberg <schonberg@adacore.com>
3099
3100 * exp_aggr.adb (Component_Count): Handle properly superflat
3101 arrays, i.e. empty arrays where Hi < Lo - 1, to ensure that the
3102 return value of the function is Natural, rather than leaving
3103 the handling of such arrays to the caller of this function.
3104
b3143037
AC
31052016-04-19 Arnaud Charlet <charlet@adacore.com>
3106
3107 * sem_prag.adb, sem_attr.adb, par-prag.adb, exp_aggr.adb, sem_type.adb
3108 sem_ch12.adb, sem_ch3.adb, exp_ch7.adb, exp_ch9.adb: Code cleanup.
3109 * sem_res.adb, sem_util.ads, sem_util.adb (Is_OK_Volatile_Context):
3110 Promoted from being a nested subprogram in Sem_Res.Resolve_Entity_Name
3111 to publicly visible routine in Sem_Util.
3112
31132016-04-19 Ed Schonberg <schonberg@adacore.com>
3114
3115 * checks.adb (Apply_Parameter_Aliasing_Checks): Do not apply
3116 the check if the type of the actual is By_Reference.
3117
e90e9503
AC
31182016-04-19 Arnaud Charlet <charlet@adacore.com>
3119
3120 * sem_res.adb (Within_Subprogram_Call): Detect
3121 also nodes that appear in entry calls.
3122 (Resolve_Actuals, Insert_Default): Propagate
3123 dimension information if any, from default expression to the
3124 copy that appears in the list of actuals.
3125 * uintp.ads: minor whitespace fix in comment.
3126 * sem_prag.adb, stringt.adb, inline.adb, lib-xref-spark_specific.adb:
3127 Minor code cleanup.
3128 * set_targ.adb (Set_Targ): convert directly from
3129 Natural to Pos, without intermediate conversion to Int.
3130
db7e3721
AC
31312016-04-19 Arnaud Charlet <charlet@adacore.com>
3132
3133 * sem_ch6.adb (Process_Formals): Mark suspicious reference to
3134 SPARK RM in comment.
3135 * sem_prag.adb (Analyze_Global_Item): Fix reference to SPARK RM
3136 in comment.
3137 * sem_res.adb (Property_Error, Resolve_Actuals): Fix reference
3138 to SPARK RM in both comment and error message.
3139
68101499
EB
31402016-04-19 Eric Botcazou <ebotcazou@adacore.com>
3141
3142 * sem_ch6.adb (Possible_Freeze): If the type is an incomplete
3143 CW type, then the subprogram must have a delayed freeze. This
3144 ensures that the backend can properly recover the full view when
3145 elaborating the access subprogram declaration.
3146
16e764a7
AC
31472016-04-19 Ed Schonberg <schonberg@adacore.com>
3148
3149 * sem_attr.adb (Resolve_Attribute, case 'Access): Freeze
3150 overloadable entity if originally overloaded.
3151
31522016-04-19 Arnaud Charlet <charlet@adacore.com>
3153
3154 * exp_aggr.adb, exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_code.adb,
3155 exp_fixd.adb, namet.adb, osint.adb, osint.ads, par-ch2.adb,
3156 sem_ch10.adb, sem_ch12.adb, sem_disp.adb, sem_elab.adb, sem_elim.adb
3157 sem_util.adb, styleg.adb, styleg.ads, stylesw.ads: Minor code
3158 clean up.
3159
4754d4e8
AC
31602016-04-19 Arnaud Charlet <charlet@adacore.com>
3161
3162 * sem_util.adb (Copy_Node_With_Replacement):
3163 use Set_Comes_From_Source instead of directly manipulating
3164 internals of the node table.
3165 * sem_util.adb (Within_Scope): refactored to remove duplicated code.
3166 * sem_aux.adb (Get_Rep_Pragma,
3167 Subprogram_Body_Entity, Subprogram_Spec): declare variables that
3168 do not change as constants and initialize them in the declaration.
3169 (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare
3170 variables that do not change as constants and initialize them
3171 in the declaration.
3172
87fd6836
AC
31732016-04-19 Ed Schonberg <schonberg@adacore.com>
3174
3175 * sem_res.adb (Resolve_Entry_Call): If the entry has
3176 preconditions it is rewritten by means of a wrapper that
3177 incorporates the original call. Before rewriting generate a
3178 reference to the entry being called to prevent spurious warnings
3179 and provide correct cross-reference information.
3180
31812016-04-19 Hristian Kirtchev <kirtchev@adacore.com>
3182
3183 * sem_disp.adb (Check_Dispatching_Context): Code cleanup. Add
3184 local constant Scop. Ignore any internally generated loops when
3185 performing the check concerning an abstract subprogram call
3186 without a controlling argument.
3187 * sem_util.ads, sem_util.adb (Current_Scope_No_Loops): New routine.
3188
b35e5dcb
AC
31892016-04-19 Bob Duff <duff@adacore.com>
3190
3191 * sem_elab.adb (Check_A_Call): There are cases where we have No
3192 (Ent) after the Alias loop, even when there was no previous error,
3193 so we can't assert that there was an error.
3194
31952016-04-19 Ed Schonberg <schonberg@adacore.com>
3196
3197 * sem_attr.adb (Analyze_Access_Attribute, OK_Self_Reference):
3198 Reject use of type name as a prefix to 'access within an aggregate
3199 in a context that is not the declarative region of a type.
3200
32012016-04-19 Vincent Celier <celier@adacore.com>
3202
3203 * gnatcmd.adb: Make "gnat ls -P" invoke gprls Make "gnat bind
3204 -P" invoke "gprbuild -b" Make "gnat link -P" invoke "gprbuild
3205 -l" Fail if the invocation is "gnat find -P" or "gnat xref -P"
3206 Remove anything related to project files
3207 * g-mbdira.adb: minor whitespace cleanup
3208 * g-spipat.adb: minor removal of extra spaces after closing paren
3209
32102016-04-19 Ed Schonberg <schonberg@adacore.com>
3211
3212 * exp_ch6.adb (Expand_Actuals): If post-statements are present
3213 and the enclosing context is a function call or indexing, build
3214 an Expression_With_Actions for the call.
3215
32162016-04-19 Hristian Kirtchev <kirtchev@adacore.com>
3217
3218 * lib-writ.adb (Write_With_Lines): Code cleanup. Do not generate
3219 a with line for an ignored Ghost unit.
3220 * sem_ch7.adb (Analyze_Package_Declaration): Add local constant
3221 Par. A child package is Ghost when its parent is Ghost.
3222 * sem_prag.adb (Analyze_Pragma): Pragma Ghost can now apply to
3223 a subprogram declaration that acts as a compilation unit.
3224
fe37c7af
MM
32252016-04-18 Michael Matz <matz@suse.de>
3226
3227 * gcc-interface/decl.c (gnat_to_gnu_entity): Use SET_TYPE_ALIGN.
3228 (gnat_to_gnu_field): Ditto.
3229 (components_to_record): Ditto.
3230 (create_variant_part_from): Ditto.
3231 (copy_and_substitute_in_size): Ditto.
3232 (substitute_in_type): Ditto.
3233 * gcc-interface/utils.c (make_aligning_type): Use SET_TYPE_ALIGN.
3234 (make_packable_type): Ditto.
3235 (maybe_pad_type): Ditto.
3236 (finish_fat_pointer_type): Ditto.
3237 (finish_record_type): Ditto and use SET_DECL_ALIGN.
3238 (rest_of_record_type_compilation): Use SET_TYPE_ALIGN.
3239 (create_field_decl): Use SET_DECL_ALIGN.
3240
be035558
AC
32412016-04-18 Arnaud Charlet <charlet@adacore.com>
3242
3243 * einfo.adb (Overridden_Operation): assert that
3244 function is called for valid arguments.
3245 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_type.adb,
3246 s-osinte-vxworks.ads, a-ngcefu.adb, sem_ch10.adb, einfo.ads,
3247 sem_prag.adb, sem_ch12.adb, sem.adb, i-cobol.ads, freeze.adb,
3248 sem_util.adb, a-chtgop.ads, s-rannum.adb, exp_ch6.adb, s-bignum.adb,
3249 s-osinte-freebsd.ads, par-ch5.adb, a-chtgbo.ads, a-cofove.adb:
3250 No space after closing parenthesis except where required for
3251 layout.
3252 * sem_res.adb: Minor reformatting.
3253
32542016-04-18 Arnaud Charlet <charlet@adacore.com>
3255
3256 * exp_ch4.adb (Expand_N_Case_Expression): Convert into a case
3257 statement when relevant.
3258
32592016-04-18 Bob Duff <duff@adacore.com>
3260
3261 * a-cuprqu.adb (Enqueue): Properly handle the
3262 case where the new element has a unique priority.
3263
32642016-04-18 Tristan Gingold <gingold@adacore.com>
3265
3266 * adaint.h: Define stat structures and functions for iOS
3267 simulator.
3268
9d4f9832
AC
32692016-04-18 Arnaud Charlet <charlet@adacore.com>
3270
3271 * sem_res.adb (Resolve_Entry_Call): reset
3272 Is_Overloaded flag after resolving calls to overloaded protected
3273 operations.
3274 * exp_spark.adb (Expand_SPARK): call
3275 Qualify_Entity_Names for tasking nodes, i.e. protected types,
3276 task types and entries.
3277 * exp_ch4.adb (Expand_N_If_Expression): Refine previous change
3278 in case of an unconstrained type.
3279
32802016-04-18 Yannick Moy <moy@adacore.com>
3281
3282 * sem_eval.adb, sem_eval.ads (Check_Non_Static_Context): Add
3283 comment to document usage of subprogram in GNATprove.
3284
a65dcb0d
AC
32852016-04-18 Ed Schonberg <schonberg@adacore.com>
3286
3287 * sem_prag.adb (Analyze_Pragma, case Test_Case): Improve error
3288 message for wrong placement of aspect Test_Case.
3289
32902016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3291
3292 * einfo.ads: Update the documentation of attribute Renamed_Object.
3293 * exp_spark.adb (Expand_Potential_Renaming): Reimplemented.
3294
32952016-04-18 Gary Dismukes <dismukes@adacore.com>
3296
3297 * exp_ch4.adb (Optimize_Length_Comparison): Return immediately
3298 in the case of AAMP (same as for use of the -gnatd.P switch) to
3299 suppress this optimization, which avoids creating a dependence
3300 on the 64-bit arithmetic package.
3301
7548f2cb
AC
33022016-04-18 Arnaud Charlet <charlet@adacore.com>
3303
3304 * exp_ch4.adb: Update comment.
3305
33062016-04-18 Eric Botcazou <ebotcazou@adacore.com>
3307
3308 * exp_ch6.adb (Expand_Call): Make sure instantiations are
3309 registered only once as pending here.
3310
f916243b
AC
33112016-04-18 Arnaud Charlet <charlet@adacore.com>
3312
3313 * exp_ch4.adb, gnat1drv.adb, opt.ads, sem_res.adb
3314 (Minimize_Expression_With_Actions): New flag.
3315 (Adjust_Global_Switches): Set Minimize_Expression_With_Actions
3316 when generating C.
3317 (Resolve_Short_Circuit): Redo previous change
3318 using Minimize_Expression_With_Actions.
3319 (Expand_N_If_Expression,
3320 Expand_Short_Circuit_Operator): Restore old code to avoid
3321 Expression_With_Actions when Minimize_Expression_With_Actions
3322 is set.
3323
33242016-04-18 Vincent Celier <celier@adacore.com>
3325
3326 * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and
3327 Stderr_File): Close local file descriptors when no longer needed.
3328
33292016-04-18 Ed Schonberg <schonberg@adacore.com>
3330
3331 * sem_ch5.adb (Analyze_Iterator_Specification): Remove SPARK
3332 mode check that the type of the cursor in an iteration over
3333 a formal container is not volatile. The proper check on the
3334 element type is done elsewhere.
3335
33362016-04-18 Ed Schonberg <schonberg@adacore.com>
3337
3338 * sem_ch6.adb (Process_Formals): Do not set a delay freeze on
3339 a subprogram that returns a class-wide type, if the subprogram
3340 is a compilation unit, because otherwise gigi will treat the
3341 subprogram as external, leading to link errors.
3342
22071092
AC
33432016-04-18 Arnaud Charlet <charlet@adacore.com>
3344
3345 * sem_res.adb (Resolve_Short_Circuit): Do not use
3346 expression-with-actions when generating C.
3347
ad81cb78
AC
33482016-04-18 Yannick Moy <moy@adacore.com>
3349
3350 * sem_util.adb (Apply_Compile_Time_Constraint_Error): Do not generate
3351 raise node in GNATprove mode.
3352
33532016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3354
3355 * s-fileio.adb: Minor reformatting.
3356 * sem_prag.adb (Analyze_Input_Item): Add local
3357 variable Input_OK. Do not consider mappings of generic formal
3358 parameters to actuals.
3359
33602016-04-18 Ed Schonberg <schonberg@adacore.com>
3361
3362 * sem_ch5.adb (Get_Cursor_Type): If iterator type is a derived
3363 type, the cursor is declared in the scope of the parent type.
3364 (Analyze_Parameter_Specification): A qualified expression with an
3365 iterator type indicates an iteration over a container (explicit
3366 or implicit).
3367
520c0201
AC
33682016-04-18 Arnaud Charlet <charlet@adacore.com>
3369
3370 * osint-c.ads, osint-c.adb (Delete_C_File, Delete_H_File): New.
3371 * gnat1drv.adb (Gnat1drv): Delete old C files before regenerating them.
3372 * debug.adb: Reserve -gnatd.4 to force generation of C files.
3373
33742016-04-18 Yannick Moy <moy@adacore.com>
3375
3376 * sem_eval.adb (Eval_Arithmetic_Op): Do not issue error on static
3377 division by zero, instead possibly issue a warning.
3378 * sem_res.adb (Resolve_Arithmetic_Op): Do not issue error on
3379 static division by zero, instead add check flag on original
3380 expression.
3381 * sem_util.adb, sem_util.ads (Compile_Time_Constraint_Error):
3382 Only issue error when both SPARK_Mode is On and Warn is False.
3383
33842016-04-18 Yannick Moy <moy@adacore.com>
3385
3386 * checks.adb (Apply_Scalar_Range_Check): Force
3387 warning instead of error when SPARK_Mode is On, on index out of
3388 bounds, and set check flag for GNATprove.
3389
274c2cda
AC
33902016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3391
3392 * sem_prag.adb (Check_In_Out_States.Check_Constituent_Usage):
3393 Update the comment on usage. Reimplemented.
3394 (Check_Input_States.Check_Constituent_Usage): Update the comment
3395 on usage. A Proof_In constituent can now refine an Input state
3396 as long as there is at least one Input constituent present.
3397
33982016-04-18 Ed Schonberg <schonberg@adacore.com>
3399
3400 * sem_ch6.adb (Check_Inline_Pragma): Use the Sloc of the
3401 body id as the sloc of the entity in the generated subprogram
3402 declaration, to avoid spurious conformance errors when style
3403 checks are enabled.
3404
a6363ed3
AC
34052016-04-18 Ed Schonberg <schonberg@adacore.com>
3406
3407 * sem_ch4.adb (Analyze_Selected_Component, Has_Dereference):
3408 Refine check on illegal calls to entities within a task body,
3409 when the entity is declared in an object of the same type. In
3410 a generic context there might be no explicit dereference but if
3411 the prefix includes an access type the construct is legal.
3412
34132016-04-18 Arnaud Charlet <charlet@adacore.com>
3414
3415 * rtsfind.ads, rtsfind.adb (RE_Id, RE_Unit_Table): add
3416 RE_Default_Priority.
3417
34182016-04-18 Bob Duff <duff@adacore.com>
3419
3420 * sem_prag.adb (Check_Arg_Is_Local_Name): Don't do the check
3421 if the pragma came from an aspect specification.
3422
34232016-04-18 Gary Dismukes <dismukes@adacore.com>
3424
3425 * gnat1drv.adb, contracts.adb: Minor reformatting and wording fixes.
3426
34272016-04-18 Ed Schonberg <schonberg@adacore.com>
3428
3429 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): To suppress
3430 superfluous conformance check on an inlined body with a previous
3431 spec, use the fact that the generated declaration does not come
3432 from source. We must treat the entity as coming from source to
3433 enable some back-end inlining when pragma appears after the body.
3434
4afcf3a5
AC
34352016-04-18 Gary Dismukes <dismukes@adacore.com>
3436
3437 * lib-xref-spark_specific.adb, par-ch2.adb, errout.ads,
3438 exp_intr.adb: Minor reformatting and typo corrections.
3439
34402016-04-18 Ed Schonberg <schonberg@adacore.com>
3441
3442 * sem_ch6.adb: Code cleanup.
3443
34442016-04-18 Thomas Quinot <quinot@adacore.com>
3445
3446 * sem_ch13.adb: Minor reformatting and error message tweaking
3447 (remove extraneous spaces).
3448
34492016-04-18 Johannes Kanig <kanig@adacore.com>
3450
3451 * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK.
3452
34532016-04-18 Bob Duff <duff@adacore.com>
3454
3455 * s-fileio.adb (Fopen_Mode): If Mode = Out_File, and the file
3456 exists, and it's a fifo, we use "w" as the open string instead of
3457 "r+". This is necessary to make a write to the fifo block until
3458 a reader is ready.
3459
34602016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3461
3462 * sem_attr.adb (Denote_Same_Function): Account
3463 for a special case where a primitive of a tagged type inherits
3464 a class-wide postcondition from a parent type.
3465
58ba2415
HK
34662016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3467
3468 * par-ch2.adb (P_Expression_Or_Reserved_Word): New routine.
3469 (P_Pragma): Signal Scan_Pragma_Argument_Association when the use
3470 of reserved words is OK.
3471 (Scan_Pragma_Argument_Association):
3472 Add new formal Reserved_Words_OK and update the comment on
3473 usage. Code cleanup. Parse an expression or a reserved word in
3474 identifier form for pragmas Restriction_Warnings and Restrictions
3475 No_Use_Of_Attribute.
3476 * restrict.adb (Check_Restriction_No_Use_Of_Attribute):
3477 Reimplemented. (Check_Restriction_No_Use_Of_Pragma): Code cleanup.
3478 (Set_Restriction_No_Specification_Of_Aspect): Properly set the warning
3479 flag for an aspect.
3480 (Set_Restriction_No_Use_Of_Attribute): Properly set the warning
3481 flag for an attribute. (Set_Restriction_No_Use_Of_Entity):
3482 Update the parameter profile.
3483 (Set_Restriction_No_Use_Of_Pragma): Properly set the warning flag for
3484 a pragma.
3485 * restrict.ads (Check_Restriction_No_Use_Of_Attribute): Update
3486 the comment on usage.
3487 (Set_Restriction_No_Use_Of_Entity): Update the parameter profile.
3488 * sem_attr.adb (Analyze_Attribute): Check restriction
3489 No_Use_Of_Attribute.
3490 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check
3491 restriction No_Use_Of_Attribute before any rewritings have
3492 taken place.
3493 * sem_prag.adb (Analyze_Pragma): Check restriction
3494 No_Use_Of_Pragma before any rewritings have taken place.
3495
b269f477
BD
34962016-04-18 Bob Duff <duff@adacore.com>
3497
3498 * sem_ch6.adb (Is_Inline_Pragma): The pragma
3499 argument can be a selected component, which has no Chars field,
3500 so we need to deal with that case (use the Selector_Name).
3501 (Check_Inline_Pragma): We need to test Is_List_Member before
3502 calling In_Same_List, because in case of a library unit, they're
3503 not in lists, so In_Same_List fails an assertion.
3504
35052016-04-18 Bob Duff <duff@adacore.com>
3506
3507 * namet.ads, namet.adb: Add an Append that appends a
3508 Bounded_String onto a Bounded_String. Probably a little more
3509 efficient than "Append(X, +Y);". Also minor cleanup.
3510 (Append_Decoded, Append_Decoded_With_Brackets, Append_Unqualified,
3511 Append_Unqualified_Decoded): Make sure these work with non-empty
3512 buffers.
3513 * casing.ads, casing.adb (Set_Casing): Pass a Bounded_String
3514 parameter, defaulting to Global_Name_Buffer.
3515 * errout.ads, errout.adb (Adjust_Name_Case): Pass a
3516 Bounded_String parameter, no default.
3517 * exp_ch11.adb (Expand_N_Raise_Statement): Use local
3518 Bounded_String instead of Global_Name_Buffer.
3519 * exp_intr.ads, exp_intr.adb (Write_Entity_Name): Rename it
3520 to Append_Entity_Name, and pass a Bounded_String parameter,
3521 instead of using globals.
3522 (Add_Source_Info): Pass a Bounded_String parameter, instead of
3523 using globals.
3524 (Expand_Source_Info): Use local instead of globals.
3525 * stringt.ads, stringt.adb (Append): Add an Append procedure
3526 for appending a String_Id onto a Bounded_String.
3527 (String_To_Name_Buffer, Add_String_To_Name_Buffer): Rewrite in
3528 terms of Append.
3529 * sem_prag.adb (Set_Error_Msg_To_Profile_Name): Adjust for new
3530 Adjust_Name_Case parameter.
3531 * erroutc.adb, uname.adb: Don't pass D => Mixed_Case to
3532 Set_Casing; that's the default.
3533 * lib-xref-spark_specific.adb (Add_SPARK_Scope): Pretend that calls to
3534 protected subprograms are entry calls; otherwise it is not possible to
3535 distinguish them from regular subprogram calls.
3536
876f1624
AC
35372016-04-18 Gary Dismukes <dismukes@adacore.com>
3538
3539 * sem_ch13.adb (Has_Good_Profile): Improvement
3540 of error message. Now indicates subtype_mark of formal parameter
3541 rather than the formal's name, plus minor rewording.
3542
35432016-04-18 Pascal Obry <obry@adacore.com>
3544
3545 * adaint.c, adaint.h, s-os_lib.ads: Add new routine Current_Process_Id.
3546
77039fe2
AC
35472016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3548
3549 * stringt.adb, exp_ch6.adb, sem_ch13.adb: Minor reformatting.
3550
35512016-04-18 Gary Dismukes <dismukes@adacore.com>
3552
3553 * par-ch4.adb, sem_prag.adb: Minor reformatting.
3554
ea102799
BD
35552016-04-18 Bob Duff <duff@adacore.com>
3556
3557 * sinput.ads, sinput.adb (Build_Location_String): Take a
3558 parameter instead of using a global variable. The function
3559 version no longer destroys the Name_Buffer.
3560 * stringt.ads, stringt.adb (String_From_Name_Buffer): Take a
3561 parameter, which defaults to the Global_Name_Buffer, so some
3562 calls can avoid the global.
3563 * exp_ch11.adb, exp_intr.adb: Use new interfaces above
3564 to avoid using globals. All but one call to Build_Location_String
3565 avoids the global. Only one call to String_From_Name_Buffer
3566 avoids it.
3567
87feba05
AC
35682016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3569
3570 * namet.adb, namet.ads, exp_unst.adb: Minor reformatting.
3571
35722016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3573
3574 * sem_eval.adb (Choice_Matches): Check the expression
3575 against the predicate values when the choice denotes a
3576 subtype with a static predicate.
3577 (Eval_Membership_Op): Code cleanup. Remove the suspicious guard which
3578 tests for predicates.
3579 (Is_OK_Static_Subtype): A subtype with a dynamic predicate
3580 is not static. (Is_Static_Subtype): A subtype with a dynamic
3581 predicate is not static.
3582 * sem_eval.ads (Is_OK_Static_Subtype): Update the comment on usage.
3583 (Is_Static_Subtype): Update the comment on usage.
3584
35852016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3586
3587 * sem_prag.adb (Analyze_Input_Item): Allow
3588 generic formals to appear as initialization items.
3589
35902016-04-18 Ed Schonberg <schonberg@adacore.com>
3591
3592 * sem_ch13.adb (Analyze_Stream_TSS_Definition,
3593 Has_Good_Profile): Additional error message to indicate that
3594 the second parameter of the subprogram must be a first subtype.
3595
35962016-04-18 Ed Schonberg <schonberg@adacore.com>
3597
3598 * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Is_Inline_Pragma):
3599 Use the pragma lookahead that determines whether a subprogram
3600 is to be inlined, when some level of backend optimization is
3601 required.
3602 * sem_ch12.ads, sem_ch12.adb (Add_Pending_Instantiation): Factorize
3603 code used to create an instance body when needed for inlining.
3604 * exp_ch6.adb (Expand_Call): When a call is to be inlined, and the
3605 call appears within an instantiation that is not a compilation
3606 unit, add a pending instantiation for the enclosing instance,
3607 so the backend can inline in turn the calls contained in the
3608 inlined body.
3609
3e20cb68
AC
36102016-04-18 Ed Schonberg <schonberg@adacore.com>
3611
3612 * sem_prag.adb (Build_Pragma_Check_Equivalent): The mapping
3613 that relates operations of the parent type to the operations of
3614 the derived type has three distinct sources:
3615 a) explicit operations of the derived type carry an
3616 Overridden_Operation that designates the operation in the
3617 ancestor.
3618 b) Implicit operations that are inherited by the derived type
3619 carry an alias that may be an explicit subprogram (in which case
3620 it may have an Overridden_ Operation indicator) or may also be
3621 inherited and carry its own alias.
3622 c) If the parent type is an interface, the operation of the
3623 derived type does not override, but the interface operation
3624 indicates the operation that implements it.
3625 * sem_prag.adb: Minor reformatting.
3626 * sem_prag.adb (Check_External_Property): Update
3627 the comment on usage. Reimplement.
3628
36292016-04-18 Ed Schonberg <schonberg@adacore.com>
3630
3631 * exp_ch5.adb (Expand_Assignment_Statement): In restricted
3632 profiles such as ZFP, ceiling priority is not available.
3633
36342016-04-18 Bob Duff <duff@adacore.com>
3635
3636 * namet-sp.ads: Minor typo fix, ironically in 'Spelling_Checker'.
3637
36382016-04-18 Bob Duff <duff@adacore.com>
3639
3640 * sem_elab.adb (Output_Calls): Use
3641 Get_Name_String, to clearly indicate that the global Name_Buffer
3642 is being used. The previous code used Is_Internal_Name, which
3643 returns a Boolean, but also has a side effect of setting the
3644 Name_Buffer. Then it called the other Is_Internal_Name, which uses
3645 the Name_Buffer for its input. And then it called Error_Msg_N,
3646 again using the Name_Buffer. We haven't eliminated the global
3647 usage here, but we've made it a bit clearer.
3648 This also allows us to have a side-effect-free version of
3649 Is_Internal_Name.
3650 * namet.ads, namet.adb: Provide a type Bounded_String, along with
3651 routines that can be used without using global variables. Provide
3652 Global_Name_Buffer so existing code can continue to use the
3653 global. Mark the routines that use globals as obsolete. New code
3654 shouldn't call the obsolete ones, and we should clean up existing
3655 code from time to time.
3656 Name_Find_Str is renamed as Name_Find.
3657 * namet.h: Changed as necessary to interface to the new version
3658 of Namet.
3659 * bindgen.adb, exp_unst.adb: Name_Find_Str is renamed as
3660 Name_Find.
3661
1f55088d
AC
36622016-04-18 Yannick Moy <moy@adacore.com>
3663
3664 * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): used
3665 outside of GNATprove, hence it should not be removed.
3666
36672016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3668
3669 * sem_prag.adb (Analyze_Refinement_Clause):
3670 The refinement of an external abstract state can now mention
3671 non-external constituents.
3672 (Check_External_Property): Update all SPARK RM references.
3673
36742016-04-18 Bob Duff <duff@adacore.com>
3675
3676 * exp_intr.adb: Remove some duplicated code.
3677
36782016-04-18 Yannick Moy <moy@adacore.com>
3679
3680 * a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads: Mark
3681 package spec and body out of SPARK.
3682
36832016-04-18 Johannes Kanig <kanig@adacore.com>
3684
3685 * spark_xrefs.ads: Minor comment update.
3686
36872016-04-18 Johannes Kanig <kanig@adacore.com>
3688
3689 * gnat1drv.adb (Gnat1drv): Force loading of System
3690 unit for SPARK.
3691
36922016-04-18 Bob Duff <duff@adacore.com>
3693
3694 * a-cuprqu.adb: Correction to previous change. If a new node
3695 is inserted at the front of the queue (because it is higher
3696 priority than the previous front node), we need to update
3697 Header.Next_Unequal -- not just in the case where the queue was
3698 previously empty.
3699
142870f5
AC
37002016-04-18 Bob Duff <duff@adacore.com>
3701
3702 * a-cuprqu.ads: Change the representation of List_Type from a
3703 singly-linked list to a doubly-linked list. In addition, add a
3704 pointer Next_Unequal, which points past a possibly-long chain
3705 of equal-priority items. This increases efficiency, especially
3706 in the case of many equal-priority items.
3707 * a-cuprqu.adb (Dequeue, Enqueue): Rewrite algorithms to take
3708 advantage of new data structure.
3709 (Finalize): Rewrite in terms of Dequeue, for simplicity.
3710
37112016-04-18 Yannick Moy <moy@adacore.com>
3712
3713 * contracts.adb (Analyze_Object_Contract,
3714 Analyze_Protected_Contract): Remove tests performed in GNATprove.
3715 * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization):
3716 Remove query for tests performed in GNATprove.
3717
ec3c7387
AC
37182016-04-18 Ed Schonberg <schonberg@adacore.com>
3719
3720 * sem_aggr.adb (Resolve_Record_Aggregate): If
3721 Warn_On_Redundant_Constructs is enabled, report a redundant box
3722 association that does not cover any components, as it done for
3723 redundant others associations in case statements.
3724
37252016-04-18 Ed Schonberg <schonberg@adacore.com>
3726
3727 * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions):
3728 Analyze the generated Check pragma for an inherited condition so
3729 that it does not freeze the dispatching type of the primitive
3730 operation, because it is pre-analyzed at the point of the
3731 subprogram declaration (and not in the subprogram body, as is
3732 done during regular expansion).
3733
37342016-04-18 Vincent Celier <celier@adacore.com>
3735
3736 * ali.ads: Increase the range of all _Id types to 100 millions.
3737
37382016-04-18 Gary Dismukes <dismukes@adacore.com>
3739
3740 * sem_warn.adb (Check_References): Change warning to suggest
3741 using pragma Export rather than saying "volatile has no effect".
3742
37432016-04-18 Bob Duff <duff@adacore.com>
3744
3745 * g-souinf.ads (Compilation_ISO_Date): New function to return
3746 the current date in ISO form.
3747 * exp_intr.adb (Expand_Source_Info, Add_Source_Info): Expand
3748 a call to Compilation_ISO_Date into a string literal containing
3749 the current date in ISO form.
3750 * exp_intr.ads (Add_Source_Info): Improve documentation.
3751 * sem_intr.adb (Check_Intrinsic_Subprogram): Recognize
3752 Compilation_ISO_Date.
3753 * snames.ads-tmpl (Name_Compilation_ISO_Date): New Name_Id.
3754
0f6251c7
AC
37552016-04-18 Eric Botcazou <ebotcazou@adacore.com>
3756
3757 * layout.adb (Set_Elem_Alignment): Extend setting of alignment
3758 to subtypes that are not first subtypes.
3759
37602016-04-18 Ed Schonberg <schonberg@adacore.com>
3761
3762 * sem_prag.ads (Collect_Inherited_Class_Wide_Conditions):
3763 Simplify interface.
3764 * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Insert
3765 generated pragmas after subprogram declaration, rather than in
3766 the corresponding subprogram body.
3767 * sem_ch6.adb (New_Overloaded_Entity): In GNATProve
3768 mode, if the operation is overridding, call
3769 Collect_Inherited_Class_Wide_Conditions to generate the
3770 corresponding pragmas immediately after the corresponding
3771 subprogram declaration.
3772
37732016-04-18 Arnaud Charlet <charlet@adacore.com>
3774
3775 * spark_xrefs.ads (Xref_Index, Scope_Index, File_Index): restrict
3776 type to natural numbers.
3777 (Stype): document code characters for concurrent entities.
3778
37792016-04-18 Olivier Hainque <hainque@adacore.com>
3780
3781 * targparm.ads: Update the Frontend_Exceptions default internal
3782 value.
3783 (Frontend_Exceptions_On_Target): Change default value to True.
3784
37852016-04-18 Ed Schonberg <schonberg@adacore.com>
3786
3787 * sem_ch4.adb (Analyze_Selected_Component): Refine error
3788 detection when a selected component in the body of a synchronized
3789 type is a reference to an object of the same type declared
3790 elsewhere. The construct is legal if the prefix of the selected
3791 component includes an explicit dereference at any point.
3792
070d862d
HK
37932016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3794
3795 * sem_ch3.adb (Analyze_Object_Declaration): Do not consider
3796 internally generated expressions when trying to determine whether
3797 a formal parameter of a tagged type subject to Extensions_Visible
3798 False is used to initialize an object.
3799 * sem_ch4.adb (Analyze_Type_Conversion): Do not consider
3800 internally generated expressions when trying to determine whether
3801 a formal parameter of a tagged type subject to Extensions_Visible
3802 False is used in a type conversion.
3803
933aa0ac
AC
38042016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3805
3806 * sem_res.adb (Is_Protected_Operation_Call):
3807 Add guards to account for a non-decorated selected component.
3808
38092016-04-18 Yannick Moy <moy@adacore.com>
3810
3811 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve
3812 implementation of Body_Has_SPARK_Mode_On.
3813 * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_From_Annotation):
3814 New function replacing previous Get_SPARK_Mode_From_Pragma, that
3815 deals also with aspects.
3816 (Get_SPARK_Mode_Type): Make function internal again.
3817 * inline.adb, sem_ch7.adb, sem_util.adb: Use new
3818 Get_SPARK_Mode_From_Annotation.
3819
4179af27
HK
38202016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3821
3822 * contracts.adb (Analyze_Object_Contract): Update references to
3823 SPARK RM.
3824 * freeze.adb (Freeze_Entity): Update references to SPARK RM.
3825 * ghost.adb Add with and use clauses for Sem_Disp.
3826 (Check_Ghost_Derivation): Removed.
3827 (Check_Ghost_Overriding):
3828 Reimplemented. (Check_Ghost_Policy): Update references to SPARK RM.
3829 (Check_Ghost_Primitive): New routine.
3830 (Check_Ghost_Refinement): New routine. (Is_OK_Ghost_Context):
3831 Update references to SPARK RM. (Is_OK_Pragma): Update references
3832 to SPARK RM. Predicates are now a valid context for references
3833 to Ghost entities.
3834 * ghost.ads (Check_Ghost_Derivation): Removed.
3835 (Check_Ghost_Overriding): Update the comment on usage.
3836 (Check_Ghost_Primitive): New routine.
3837 (Check_Ghost_Refinement): New routine.
3838 (Remove_Ignored_Ghost_Code): Update references to SPARK RM.
3839 * sem_ch3.adb (Process_Full_View): Remove the now obsolete check
3840 related to Ghost derivations
3841 * sem_ch6.adb (Check_Conformance): Remove now obsolete check
3842 related to the convention-like behavior of pragma Ghost.
3843 (Check_For_Primitive_Subprogram): Verify that the Ghost policy
3844 of a tagged type and its primitive agree.
3845 * sem_prag.adb (Analyze_Pragma): Update references to SPARK
3846 RM. Move the verification of pragma Assertion_Policy Ghost
3847 to the proper place. Remove the now obsolete check related
3848 to Ghost derivations.
3849 (Collect_Constituent): Add a call to Check_Ghost_Refinement.
3850 * sem_res.adb (Resolve_Actuals): Update references to SPARK RM.
3851
0d6014fa
AC
38522016-04-18 Eric Botcazou <ebotcazou@adacore.com>
3853
3854 * layout.adb: Fix more minor typos in comments.
3855
38562016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3857
3858 * a-calend.ads, sem_prag.adb, sem_ch6.adb: Minor reformatting.
3859
539ca5ec
AC
38602016-04-18 Ed Schonberg <schonberg@adacore.com>
3861
3862 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): In GNATprove
3863 mode, collect inherited class-wide conditions to generate the
3864 corresponding pragmas.
3865 * sem_prag.ads (Build_Pragma_Check_Equivalent): Moved from contracts
3866 * contracts.adb (Collect_Inherited_Class_Wide_Conditions): New
3867 procedure for overriding subprograms, used to generate the pragmas
3868 corresponding to an inherited class- wide pre- or postcondition.
3869 * sem_prag.adb (Build_Pragma_Check_Equivalent): moved here
3870 from contracts.adb (Replace_Condition_Entities): Subsidiary
3871 Build_Pragma_Check_Equivalent, to implement the proper semantics
3872 of inherited class-wide conditions, as given in AI12-0113.
3873 (Process_Class_Wide_Condition): Removed.
3874 (Collect_Inherited_Class_Wide_Conditions): Iterate over pragmas
3875 in contract of subprogram, to collect inherited class-wide
3876 conditions.
3877 (Build_Pragma_Check_Equivalent): Moved to sem_prag.adb
3878
38792016-04-18 Yannick Moy <moy@adacore.com>
3880
3881 * a-calend.adb (Ada.Calendar): Mark package body as SPARK_Mode Off.
3882 * a-calend.ads (Ada.Calendar): Mark package spec as
3883 SPARK_Mode and add synchronous external abstract state Clock_Time.
3884
fd22e260
AC
38852016-04-18 Yannick Moy <moy@adacore.com>
3886
3887 * sem_res.adb (Resolve_Call): Prevent inlining of
3888 calls inside expression functions. Factor previous code issuing
3889 errors to call Cannot_Inline instead, which does appropriate
3890 processing of message for GNATprove.
3891
38922016-04-18 Arnaud Charlet <charlet@adacore.com>
3893
3894 * einfo.ads, sem_ch3.adb, sem_ch8.adb, osint-l.adb, rtsfind.adb,
3895 osint-b.adb: Cleanups.
3896
38972016-04-18 Yannick Moy <moy@adacore.com>
3898
3899 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only create
3900 body to inline in GNATprove mode when SPARK_Mode On applies to
3901 subprogram body.
3902 * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_Type): Make function
3903 public.
3904
39052016-04-18 Eric Botcazou <ebotcazou@adacore.com>
3906
3907 * layout.adb: Fix minor typo in comment.
3908 * inline.adb: Fix minor pasto.
3909 * sem_ch12.ads: Fix minor typos in comments.
3910
0d66b596
AC
39112016-04-18 Ed Schonberg <schonberg@adacore.com>
3912
3913 * sem_disp.adb (Check_Dispatching_Call): Major rewriting to
3914 handle some complex cases of tag indeterminate calls that are
3915 actuals in other dispatching calls that are themselves tag
3916 indeterminate.
3917 (Check_Dispatching_Context): Add parameter to support recursive
3918 check for an enclosing construct that may provide a tag for a
3919 tag-indeterminate call.
3920
39212016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3922
3923 * sem_prag.adb (Analyze_Depends_In_Decl_Part):
3924 Add global variables Task_Input_Seen and Task_Output_Seen.
3925 (Analyze_Global_Item): Detect an illegal use of the current
3926 instance of a single protected/task type in a global annotation.
3927 (Analyze_Input_Output): Inputs and output related to the current
3928 instance of a task unit are now tracked.
3929 (Check_Usage): Require
3930 the presence of the current instance of a task unit only when
3931 one input/output is available. (Current_Task_Instance_Seen):
3932 New routine.
3933 (Is_CCT_Instance): New parameter profile. Update
3934 the comment on usage. The routine now properly recognizes several
3935 cases related to single protected/task types.
3936
39372016-04-18 Hristian Kirtchev <kirtchev@adacore.com>
3938
3939 * freeze.adb (Freeze_Entity): Use New_Freeze_Node
3940 to create a brand new freeze node. This handles a case where an
3941 ignored Ghost context is freezing something which is not ignored
3942 Ghost and whose freeze node should not be removed from the tree.
3943 (New_Freeze_Node): New routine.
3944
39452016-04-18 Jerome Lambourg <lambourg@adacore.com>
3946
3947 * sigtramp.h (__gnat_set_is_vxsim) New function to
3948 tell sigtramp-vxworks to handle vxsim signal contexts. *
3949 sigtramp-vxworks.c (__gnat_sigtramp) Take into account the
3950 differences in the sigcontext structure between the expected
3951 regular x86 or x86_64 ones and the ones received in case of
3952 exexution on the vxworks simulator.
3953 * init.c: also compute is_vxsim in case of x86_64-vx7 target. Provide
3954 this information to sigtramp-vxworks.c. Remove the old mechanism for
3955 vxsim.
3956 * init-vxsim.c, sigtramp-vxworks-vxsim.c: remove, now obsolete.
3957
39582016-04-18 Eric Botcazou <ebotcazou@adacore.com>
3959
3960 * exp_ch3.adb (Inline_Init_Proc): New function returning
3961 whether the initialization procedure of a type should be
3962 inlined. Return again True for controlled type themselves.
3963 (Build_Array_Init_Proc): Call it to set Set_Is_Inlined on Init_Proc.
3964 (Build_Record_Init_Proc): Likewise.
3965
a86c18d9
AC
39662016-04-18 Arnaud Charlet <charlet@adacore.com>
3967
3968 * gnatvsn.ads (Library_Version): Bump to 7.
3969
88fa9a24
ES
39702016-04-18 Ed Schonberg <schonberg@adacore.com>
3971
3972 * sem_ch6.adb (Analyze_Expression_Function): Set Inlined flag
3973 on the entity of a subprogram declaration that is completed by
3974 an expression function.
3975
39762016-04-18 Ed Schonberg <schonberg@adacore.com>
3977
3978 * sem_util.adb (Is_Current_Instance): A entity given by a subtype
3979 declaration can appear in an aspect specification for a dynamic
3980 predicate, and a pragma for aspect Predicate_Failure.
3981 * exp_util.adb (Replace_Subtype_References): Replace current
3982 occurrences of the subtype to which a dynamic predicate applies,
3983 byt the expression that triggers a predicate check. Needed to
3984 implement new aspect Predicate_Failure.
3985
7b47778e
AC
39862016-04-18 Arnaud Charlet <charlet@adacore.com>
3987
3988 * a-intsig.ads, a-intsig.adb: Removed, no longer used.
3989 * Makefile.rtl: update accordingly.
3990
39912016-04-18 Eric Botcazou <ebotcazou@adacore.com>
3992
3993 * sem_type.adb (Disambiguate): Call Covers only when necessary
3994 for standard operators.
3995
39962016-04-18 Eric Botcazou <ebotcazou@adacore.com>
3997
3998 * atree.ads (Num_Extension_Nodes): Add couple of figures
3999 to comment.
4000 * atree.adb: Add GNAT.Heap_Sort_G dependency.
4001 (Print_Statistics): New exported procedure to print statistics.
4002
40032016-04-18 Eric Botcazou <ebotcazou@adacore.com>
4004
4005 * exp_ch3.adb (Build_Record_Init_Proc): Do not mark the procedure
4006 as to be inlined if the type needs finalization.
4007
84538074
JL
40082016-04-18 Jerome Lambourg <lambourg@adacore.com>
4009
4010 * sigtramp-vxworks-target.inc: sigtramp-vxworks: force the stack
4011 alignment for x86_64.
4012 * init.c: Better fix for guard page reset on x86_64-vx7.
4013 Do not try to retrieve the page that actually raised
4014 the signal as the probing mechanism used on x86_64 do not allow
4015 such retrieval. We thus just test if the guard page is active,
4016 and re-activate it if not.
4017
230ad369
AC
40182016-04-18 Arnaud Charlet <charlet@adacore.com>
4019
4020 * a-sytaco.adb (Suspension_Object): Aspect Default_Initial_Condition
4021 added.
4022
40232016-04-18 Jerome Lambourg <lambourg@adacore.com>
4024
4025 * affinity.c: Use the proper type for task id.
4026 * init.c (__gnat_inum_to_ivec): ivec is a pointer.
4027
d9d25d04
AC
40282016-04-18 Arnaud Charlet <charlet@adacore.com>
4029
4030 * sem_prag.adb (Process_Convention): Relax rule on exporting
4031 Intrinsic types if Relaxed_RM_Semantics is True.
4032
40332016-04-18 Vincent Celier <celier@adacore.com>
4034
4035 * sem_ch3.adb, lib.ads, sinfo.ads, sem_ch10.adb, einfo.adb, einfo.ads,
4036 checks.ads, sem_ch12.adb, sem.adb, sem_util.adb, sem_util.ads,
4037 sem_res.adb, sem_attr.adb, par.adb, exp_ch4.adb, errout.ads,
4038 sem_ch4.adb, atree.adb, atree.ads, sem_warn.adb, treepr.adb,
4039 exp_ch3.ads, exp_unst.adb: Change "descendent" to
4040 "descendant" in comments, error messages and identifiers.
6e9ecd1f 4041 * gcc-interface/decl.c: Ditto.
d9d25d04
AC
4042
40432016-04-18 Eric Botcazou <ebotcazou@adacore.com>
4044
4045 * sem_type.adb (Operator_Matches_Spec): Call First_Formal on
4046 New_S only once at the beginning of the function.
4047
7d9979e6
EB
40482016-04-02 Eric Botcazou <ebotcazou@adacore.com>
4049
4050 * gcc-interface/decl.c (components_to_record): Restrict the previous
4051 change to fields with variable size.
4052
a1799e5e
EB
40532016-03-27 Eric Botcazou <ebotcazou@adacore.com>
4054
7d9979e6 4055 * gcc-interface/decl.c (components_to_record): Add special case for
a1799e5e
EB
4056 single field with representation clause at offset 0.
4057
b462f860
SS
40582016-03-16 Svante Signell <svante.signell@gmail.com>
4059
4060 * gcc-interface/Makefile.in: Add support for x86 GNU/Hurd.
4061 * s-osinte-gnu.ads: New file.
4062
3488bd6b
EB
40632016-03-13 Eric Botcazou <ebotcazou@adacore.com>
4064
4065 * system-vxworks-m68k.ads (Stack_Check_Probes): Set to True.
4066 (Stack_Check_Limits): Set to False.
4067 * system-vxworks-mips.ads (Stack_Check_Probes): Set to True.
4068 (Stack_Check_Limits): Set to False.
4069 * system-vxworks-ppc.ads (Stack_Check_Probes): Set to True.
4070 (Stack_Check_Limits): Set to False.
4071 * system-vxworks-sparcv9.ads (Stack_Check_Probes): Set to True.
4072 (Stack_Check_Limits): Set to False.
4073 * system-vxworks-x86.ads (Stack_Check_Probes): Set to True.
4074 (Stack_Check_Limits): Set to False.
4075
4c335163
EB
40762016-03-07 Eric Botcazou <ebotcazou@adacore.com>
4077
4078 * gcc-interface/trans.c (statement_node_p): New predicate.
4079 (gnat_to_gnu): Invoke it to detect statement nodes. In ASIS mode, do
4080 not return dummy results for expressions attached to packed array
4081 implementation types.
4082
1878be32
EB
40832016-03-07 Eric Botcazou <ebotcazou@adacore.com>
4084
4085 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always mark
4086 the expression of a renaming manually in case #3.
4087
22e3fa19
DV
40882016-03-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
4089
3488bd6b 4090 * system-linux-s390.ads: Enable Stack_Check_Probes.
22e3fa19
DV
4091 * system-linux-s390.ads: Likewise.
4092
4232ebbb
ML
40932016-02-29 Martin Liska <mliska@suse.cz>
4094
4095 * gcc-interface/utils.c (set_reverse_storage_order_on_pad_type):
4096 Replace ENABLE_CHECKING macro with flag_checking.
4097
8ea456b9
EB
40982016-02-29 Eric Botcazou <ebotcazou@adacore.com>
4099
4100 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Retrofit
4101 handling of unconstrained array types as designated types into common
4102 processing. Also handle array types as incomplete designated types.
4103
68ec5613
EB
41042016-02-29 Eric Botcazou <ebotcazou@adacore.com>
4105
4106 * gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In
4107 ASIS mode, fully lay out the minimal record type.
4108
5d2a63dc
EB
41092016-02-29 Eric Botcazou <ebotcazou@adacore.com>
4110
4111 * gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code.
4112 (build_return_expr): Likewise.
4113 (Call_to_gnu): If this is a function call and there is no target,
4114 create a temporary for the return value for all aggregate types,
4115 but never create it for a return statement. Push a binding level
4116 around the call in more cases. Remove obsolete code.
4117
93e708f9
EB
41182016-02-29 Eric Botcazou <ebotcazou@adacore.com>
4119
4120 * gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro.
4121 * gcc-interface/gigi.h (gigi): Remove useless attribute.
4122 (gnat_gimplify_expr): Likewise.
4123 (gnat_to_gnu_external): Declare.
4124 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Factor out
4125 code dealing with the expression of external constants into...
4126 Invoke gnat_to_gnu_external instead.
4127 <E_Variable>: Invoke gnat_to_gnu_external to translate renamed objects
4128 when not for a definition. Deal with COMPOUND_EXPR and variables with
4129 DECL_RETURN_VALUE_P set for renamings and with the case of a dangling
4130 'reference to a function call in a renaming. Remove obsolete test and
4131 adjust associated comment.
4132 * gcc-interface/trans.c (Call_to_gnu): Set DECL_RETURN_VALUE_P on the
4133 temporaries created to hold the return value, if any.
4134 (gnat_to_gnu_external): ...this. New function.
4135 * gcc-interface/utils.c (create_var_decl): Detect a constant created
4136 to hold 'reference to function call.
4137 * gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Add folding
4138 for COMPOUND_EXPR in the DECL_RETURN_VALUE_P case.
4139
e2f0522e
EB
41402016-02-17 Eric Botcazou <ebotcazou@adacore.com>
4141
81ec91f3 4142 * exp_ch4.adb (Expand_N_Indexed_Component): Activate synchronization if
e2f0522e
EB
4143 the prefix denotes an entity which Has_Atomic_Components.
4144 * gcc-interface/trans.c (node_is_atomic): Return true if the prefix
4145 denotes an entity which Has_Atomic_Components.
4146
bf17fe3f
EB
41472016-02-17 Eric Botcazou <ebotcazou@adacore.com>
4148
4149 * gcc-interface/utils2.c (gnat_protect_expr): Make a SAVE_EXPR only
4150 for fat pointer or scalar types.
4151
7005800c
EB
41522016-02-16 Eric Botcazou <ebotcazou@adacore.com>
4153
4154 * gcc-interface/gigi.h (maybe_debug_type): New inline function.
4155 * gcc-interface/misc.c (gnat_get_array_descr_info): Use it.
4156 Call maybe_character_value on the array bounds. Get to the base type
4157 of the index type and call maybe_debug_type on it.
4158 * gcc-interface/utils.c (finish_character_type): Add special treatment
4159 for char_type_node.
4160
8c7eac62
EB
41612016-02-16 Eric Botcazou <ebotcazou@adacore.com>
4162
4163 * gcc-interface/misc.c (gnat_enum_underlying_base_type): New function.
4164 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define to above.
4165
9c582551
JJ
41662016-02-12 Jakub Jelinek <jakub@redhat.com>
4167
4168 * prj-tree.ads: Spelling fixes - behaviour -> behavior and
4169 neighbour -> neighbor.
4170 * prep.adb: Likewise.
4171 * prj.ads: Likewise.
4172 * prepcomp.adb: Likewise.
4173 * g-socket.ads: Likewise.
4174 * s-imgrea.adb: Likewise.
4175 * a-calend.adb: Likewise.
4176 * exp_disp.adb: Likewise.
4177 * doc/gnat_ugn/gnat_utility_programs.rst: Likewise.
4178 * g-socket.adb: Likewise.
4179 * sem_ch12.adb: Likewise.
4180 * terminals.c: Likewise.
4181
2746ac67
BS
41822016-02-08 Bernd Schmidt <bschmidt@redhat.com>
4183
4184 * gcc-interface/misc.c (gnat_init): Remove second argument in call to
4185 build_common_tree_nodes.
4186
ffe9a0a7
EB
41872016-02-08 Eric Botcazou <ebotcazou@adacore.com>
4188
4189 * gcc-interface/utils.c (create_var_decl): Set again DECL_COMMON and
4190 DECL_IGNORED_P last.
4191
e0ef6912
EB
41922016-01-28 Eric Botcazou <ebotcazou@adacore.com>
4193
4194 * gcc-interface/gigi.h (enum attr_type): Rename into...
4195 (enum attrib_type): ...this.
4196 (struct attrib): Adjust.
4197 * gcc-interface/decl.c (prepend_one_attribute): Likewise.
4198
825da0d2
EB
41992016-01-20 Eric Botcazou <ebotcazou@adacore.com>
4200
4201 * exp_ch2.adb (Expand_Current_Value): Make an appropriate character
4202 literal if the entity is of a character type.
4203 * gcc-interface/lang.opt (fsigned-char): New option.
4204 * gcc-interface/misc.c (gnat_handle_option): Accept it.
4205 (gnat_init): Adjust comment.
4206 * gcc-interface/gigi.h (finish_character_type): New prototype.
4207 (maybe_character_type): New inline function.
4208 (maybe_character_value): Likewise.
4209 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Type>: For
4210 a character of CHAR_TYPE_SIZE, make a signed type if flag_signed_char.
4211 Set TYPE_ARTIFICIAL early and call finish_character_type on the type.
4212 <E_Enumeration_Subtype>: For a subtype of character with RM_Size and
4213 Esize equal to CHAR_TYPE_SIZE, make a signed type if flag_signed_char.
4214 Copy TYPE_STRING_FLAG from type to subtype.
4215 <E_Array_Type>: Deal with character index types.
4216 <E_Array_Subtype>: Likewise.
4217 * gcc-interface/trans.c (gigi): Replace unsigned_char_type_node with
4218 char_type_node throughout.
4219 (build_raise_check): Likewise.
4220 (get_type_length): Deal with character types.
4221 (Attribute_to_gnu) <Attr_Pos>: Likewise. Remove obsolete range check
4222 code. Minor tweak.
4223 <Attr_Pred>: Likewise.
4224 (Loop_Statement_to_gnu): Likewise.
4225 (Raise_Error_to_gnu): Likewise.
4226 <N_Indexed_Component>: Deal with character index types. Remove
4227 obsolete code.
4228 <N_Slice>: Likewise.
4229 <N_Type_Conversion>: Deal with character types. Minor tweak.
4230 <N_Unchecked_Type_Conversion>: Likewise.
4231 <N_In>: Likewise.
4232 <N_Op_Eq>: Likewise.
4233 (emit_index_check): Delete.
4234 * gcc-interface/utils.c (finish_character_type): New function.
4235 (gnat_signed_or_unsigned_type_for): Deal with built-in character types.
4236 * gcc-interface/utils2.c (expand_sloc): Replace unsigned_char_type_node
4237 with char_type_node.
4238 (build_call_raise): Likewise.
4239 (build_call_raise_column): Likewise.
4240 (build_call_raise_range): Likewise.
4241
9a1bdc31
EB
42422016-01-18 Eric Botcazou <ebotcazou@adacore.com>
4243
4244 * gcc-interface/gigi.h (build_call_raise_column): Adjust prototype.
4245 (build_call_raise_range): Likewise.
4246 (gnat_unsigned_type): Delete.
4247 (gnat_signed_type): Likewise.
4248 (gnat_signed_or_unsigned_type_for): New prototype.
4249 (gnat_unsigned_type_for): New inline function.
4250 (gnat_signed_type_for): Likewise.
4251 * gcc-interface/cuintp.c (build_cst_from_int): Call build_int_cst.
4252 * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise.
4253 (gnat_to_gnu_entity) <E_Array_Type>: Always translate the index types
4254 and compute their base type from that.
4255 <E_Array_Subtype>: Remove duplicate declaration.
4256 * gcc-interface/misc.c (get_array_bit_stride): Call build_int_cst.
4257 * gcc-interface/trans.c (get_type_length): Likewise.
4258 (Attribute_to_gnu): Likewise.
4259 (Loop_Statement_to_gnu): Likewise.
4260 (Call_to_gnu): Likewise.
4261 (gnat_to_gnu): Call build_real, build_int_cst, gnat_unsigned_type_for
4262 and gnat_signed_type_for. Minor tweaks.
4263 (build_binary_op_trapv): Likewise.
4264 (emit_check): Likewise.
4265 (convert_with_check): Likewise.
4266 (Raise_Error_to_gnu): Adjust calls to the build_call_raise family of
4267 functions. Minor tweaks.
4268 (Case_Statement_to_gnu): Remove dead code.
4269 (gnat_to_gnu): Call gnat_unsigned_type_for and gnat_signed_type_for.
4270 (init_code_table): Minor reordering.
4271 * gcc-interface/utils.c (gnat_unsigned_type): Delete.
4272 (gnat_signed_type): Likewise.
4273 (gnat_signed_or_unsigned_type_for): New function.
4274 (unchecked_convert): Use directly the size in the test for precision
4275 vs size adjustments.
4276 (install_builtin_elementary_types): Call gnat_signed_type_for.
4277 * gcc-interface/utils2.c (nonbinary_modular_operation): Call
4278 build_int_cst.
4279 (build_goto_raise): New function taken from...
4280 (build_call_raise): ...here. Call it.
4281 (build_call_raise_column): Add KIND parameter and call it.
4282 (build_call_raise_range): Likewise.
4283
7c775aca
EB
42842016-01-18 Eric Botcazou <ebotcazou@adacore.com>
4285
4286 * gcc-interface/ada-tree.h (TYPE_IMPLEMENTS_PACKED_ARRAY_P): Rename to
4287 (TYPE_IMPL_PACKED_ARRAY_P): ...this.
4288 (TYPE_CAN_HAVE_DEBUG_TYPE_P): Do not test TYPE_DEBUG_TYPE.
4289 * gcc-interface/decl.c (gnat_to_gnu_entity): Simplify NULL_TREE tests
4290 and tweak gnat_encodings tests throughout.
4291 (initial_value_needs_conversion): Likewise.
4292 (intrin_arglists_compatible_p): Likewise.
4293 * gcc-interface/misc.c (gnat_print_type): Likewise.
4294 (gnat_get_debug_type): Likewise.
4295 (gnat_get_fixed_point_type_info): Likewise.
4296 (gnat_get_array_descr_info): Likewise.
4297 (get_array_bit_stride): Likewise.
4298 (gnat_get_type_bias): Fix formatting.
4299 (enumerate_modes): Likewise.
4300 * gcc-interface/trans.c (gnat_to_gnu): Likewise.
4301 (add_decl_expr): Simplify NULL_TREE test.
4302 (end_stmt_group): Likewise.
4303 (build_binary_op_trapv): Fix formatting.
4304 (get_exception_label): Use switch statement.
4305 (init_code_table): Move around.
4306 * gcc-interface/utils.c (global_bindings_p): Simplify NULL_TREE test.
4307 (gnat_poplevel): Likewise.
4308 (gnat_set_type_context): Likewise.
4309 (defer_or_set_type_context): Fix formatting.
4310 (gnat_pushdecl): Simplify NULL_TREE test.
4311 (maybe_pad_type): Likewise.
4312 (add_parallel_type): Likewise.
4313 (create_range_type): Likewise.
4314 (process_deferred_decl_context): Likewise.
4315 (convert): Likewise.
4316 (def_builtin_1): Likewise.
4317 * gcc-interface/utils2.c (find_common_type): Likewise.
4318 (build_binary_op): Likewise.
4319 (gnat_rewrite_reference): Likewise.
4320 (get_inner_constant_reference): Likewise.
4321
ae5a77fa
EB
43222016-01-18 Eric Botcazou <ebotcazou@adacore.com>
4323
4324 PR ada/69219
4325 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Consider
4326 the parent function instead of the current function in order to issue
4327 the warning or the error. Add guard for ignored functions.
4328
e9dcf0a4
JJ
43292016-01-17 Jakub Jelinek <jakub@redhat.com>
4330
4331 * adaint.c (__gnat_killprocesstree): Avoid -Wparentheses warning.
4332
4c0f272c
JJ
43332016-01-15 Jakub Jelinek <jakub@redhat.com>
4334
4335 * adaint.c (__gnat_locate_exec_on_path): Use const char * instead
4336 of char * for path_val to avoid warnings.
4337
396a2ee2
PMR
43382016-01-06 Pierre-Marie de Rodat <derodat@adacore.com>
4339
4340 * gcc-interface/utils.c: Bump copyright year.
4341 (rest_of_record_type_compilation): Add XVE/XVU parallel types to
4342 the current lexical scope.
4343
21fa2a29
JJ
43442016-01-04 Jakub Jelinek <jakub@redhat.com>
4345
4346 * gnat_ugn.texi: Bump @copying's copyright year.
4347 * gnat_rm.texi: Likewise.
4348
783bfcce 43492016-01-02 Eric Botcazou <ebotcazou@adacore.com>
6260b90c
AC
4350
4351 * gnatvsn.ads: Bump copyright year.
4352
ad41bd84 4353\f
783bfcce 4354Copyright (C) 2016 Free Software Foundation, Inc.
ad41bd84
JM
4355
4356Copying and distribution of this file, with or without modification,
4357are permitted in any medium without royalty provided the copyright
4358notice and this notice are preserved.