1 2014-02-23 Eric Botcazou <ebotcazou@adacore.com>
3 * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting.
4 Look through a conversion between original and packable version to get
6 (build_component_ref): Rework comment and fix formatting.
8 2014-02-20 Sergey Rybin <rybin@adacore.com frybin>
10 * gnat_ugn.texi, vms_data.ads (gnatelim): Add description of
11 project-specific options.
13 2014-02-20 Ed Schonberg <schonberg@adacore.com>
15 * a-cbdlli.adb (Insert): When capacity exceeded, raise Capacity_Error,
17 * a-cbmutr.adb (Append_Child, Insert_Child, Prepend_Child): Ditto.
18 * sem_ch5.adb: Code clean up.
20 2014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
22 * sem_prag.adb (Usage_Error): Remove local
23 constant Typ. Remove the specialized diagnostics for unconstrained
24 or tagged items as those are not part of the explicit input set
25 of the related subprogram and should not be flagged.
27 2014-02-20 Ed Schonberg <schonberg@adacore.com>
29 * sem_attr.adb: Add guard to preserve all errors.
31 2014-02-20 Vincent Celier <celier@adacore.com>
33 * switch-m.adb (Normalize_Compiler_Switches): Take into account
34 switches that are recorded in ALI files: -gnateA, -gnateE,
35 -gnateF, -gnateinn, -gnateu, -gnateV and -gnateY.
37 2014-02-20 Ed Schonberg <schonberg@adacore.com>
39 * sem_ch5.adb (Analyze_Iterator_Specification): Check legality
40 of an element iterator form over a formal container with an
42 * exp_ch5.adb (Build_Formal_Container_Iteration): Utility
43 to create declaration and loop statements for both forms of
45 (Expand_Formal_Container_Element_Iterator): New procedure
46 to handle loops of the form "for E of C" when C is a formal
48 (Expand_Formal_Container_Iterator): Code cleanup.
50 2014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
52 * sem_prag.adb (Add_Item_To_Name_Buffer): New routine.
53 (Analyze_Contract_Case): Remove the use of
54 "may". Replace "aspect Contract_Cases" to avoid categorization
56 (Analyze_External_Property_In_Decl_Part): Remove the use of "formal".
57 (Analyze_Global_Item): Remove
58 the use of "formal", specify the subprogram. Split the
59 error message about a state with visible refinement into
60 two. Remove the use of "global" from "volatile global item".
61 (Analyze_Initialization_Item): Ensure that the SPARK RM reference
63 (Analyze_Input_Output): Update the call to
64 Check_Mode. Specify the duplicated item. Reword the error
65 message concerning an input of a null output list. Use "\"
66 for error message continuation.
67 (Analyze_Part_Of): Remove
68 the use of "may". Use "\" for error message continuation.
69 (Analyze_Refined_Depends_In_Decl_Part): Update the error
70 message concerning a useless refinement to match the format
72 (Analyze_Refined_Global_In_Decl_Part): Reword the error message
73 concerning a useless refinement.
74 (Analyze_Refinement_Clause): Use "\" for error message continuation.
75 (Check_Constituent_Usage): Use "\" for error message continuation.
76 (Check_Dependency_Clause): Use "\" for error message continuation.
77 (Check_Matching_Constituent): Use "\" for error message continuation.
78 (Check_Missing_Part_Of): Use "\" for error message continuation.
79 (Check_Mode): Renamed to
80 Check_Role. Update the comment on usage. Redo the error reporting
82 (Check_Mode_Restriction_In_Enclosing_Context): Use "\" for error
84 (Find_Mode): Renamed to Find_Role. Update the parameter profile along
85 with comment on usage. Update all occurrences of Is_Input and Is_Output.
86 (Inconsistent_Mode_Error): Use "\" for error message continuation.
87 (Input_Match): Use "\" for error message continuation.
88 (Role_Error): New routine.
89 (Set_Convention_From_Pragma): Use "\" for error message continuation.
90 (Usage_Error): Add local variable Error_Msg. Build specialized error
91 message showcasing the offending item kind. Redo the diagnostics for
94 2014-02-20 Ed Schonberg <schonberg@adacore.com>
96 * exp_util.adb (Is_Iterated_Container): Use high-level primitives
97 to determine whether a type is a container type, rather than
98 examining only its type declaration, so that subtypes and derived
99 types are handled properly.
101 2014-02-20 Sergey Rybin <rybin@adacore.com frybin>
103 * gnat_ugn.texi: gnatmetric: add description of project-specific
106 2014-02-20 Ed Schonberg <schonberg@adacore.com>
108 * sem_attr.adb (Analyze_Attribute, case 'Update): Verify that
109 all choices in an association for a record type have the same
110 type, as is done for record aggregates.
112 2014-02-20 Robert Dewar <dewar@adacore.com>
114 * a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb: Use pragma
115 Unmodified rather than Warnings (Off). Make comments
116 uniform in the four affected units.
118 2014-02-20 Robert Dewar <dewar@adacore.com>
120 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
121 Object_Size): For non-scalar types allow any value that is a
123 * gnat_rm.texi: Document Object_Size for composites more clearly.
125 2014-02-20 Yannick Moy <moy@adacore.com>
127 * sem_util.ads, sem_util.adb (Default_Initialization): Remove function.
129 2014-02-20 Ed Schonberg <schonberg@adacore.com>
131 * stand.ads: Raise_Type: new predefined entity, used as the type
132 of a Raise_Expression prior to resolution.
133 * cstand.adb: Build entity for Raise_Type.
134 * sem_ch11.adb (Analyze_Raise_Expression): use Raise_Type as the
135 initial type of the node.
136 * sem_type.adb (Covers): Raise_Type is compatible with all
138 * sem_res.adb (Resolve): Remove special handling of Any_Type on
139 Raise_Expression nodes.
140 (Resolve_Raise_Expression): Signal ambiguity if the type of the
141 context is still Raise_Type.
143 2014-02-20 Robert Dewar <dewar@adacore.com>
145 * sem_ch12.adb (Validate_Access_Type_Instance): Add message if
146 mismatching predicates.
147 * sem_ch6.adb (Check_Conformance): Give better messages on
149 * sem_eval.adb (Predicates_Match): Move to spec.
150 * sem_eval.ads (Predicates_Match): Moved here from body.
152 2014-02-20 Ed Schonberg <schonberg@adacore.com>
154 * a-cbmutr.adb: Use default value in Insert_Child.
156 2014-02-20 Vincent Celier <celier@adacore.com>
158 * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: Call
159 Stringt.Initialize in all project aware tools.
161 2014-02-20 Doug Rupp <rupp@adacore.com>
163 * gnat_ugn.texi: Document gnatbind -X option.
164 * vms_data.ads: Minor warnings documentation reformatting.
166 2014-02-20 Ed Schonberg <schonberg@adacore.com>
168 * exp_ch3.adb (Expand_Freeze_Array_Type): Only create invariant
169 procedure for a base type.
171 2014-02-20 Robert Dewar <dewar@adacore.com>
173 * sem_ch4.adb (Analyze_Case_Expression): Get type from first
174 expression with type info.
175 * sem_ch13.adb: Minor reformatting.
176 * sem_eval.adb (Subtypes_Statically_Match): Make sure we return
177 False if predicates do not match on the two types.
179 2014-02-20 Arnaud Charlet <charlet@adacore.com>
181 * sem_prag.adb (Analyze_Pragma [pragma Attach_Handler]):
182 In Relaxed_RM_Semantics mode, allow any static integer value,
183 for compatibility with other compilers.
185 2014-02-20 Vincent Celier <celier@adacore.com>
187 * errutil.adb (Initialize): Properly initialize entry in table
188 Warnings when warnings are suppressed.
190 2014-02-20 Robert Dewar <dewar@adacore.com>
192 * s-os_lib.ads: Add warning about non-portability of Rename_File.
193 * sem_util.ads, sem_util.adb (Is_Junk_Name): New function.
194 * sem_warn.adb: Use Is_Junk_Name to suppress some warnings.
195 * gnat_ugn.texi: Document no warnings on junk variable names.
196 * layout.adb: Minor code reorganization (use Ekind_In).
197 * stringt.adb: Move initialization of Null_String_Id to Initialize
200 2014-02-20 Ed Schonberg <schonberg@adacore.com>
202 * sem_ch13.adb: Initialize optional Element_Id.
204 2014-02-20 Robert Dewar <dewar@adacore.com>
206 * s-os_lib.ads (Rename_File): Minor commment addition.
208 2014-02-20 Thomas Quinot <quinot@adacore.com>
210 * einfo.ads: Minor reformatting.
212 2014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
214 * aspects.adb (Exchange_Aspects): New routine.
215 * aspects.ads (Exchange_Aspects): New routine.
216 * atree.adb (Rewrite): Do not check whether the save node has
217 aspects as it never will, instead check the node about to be clobbered.
218 * einfo.adb (Write_Field25_Name): Abstract_States can appear in
219 entities of generic packages.
220 * sem_ch6.adb (Analyze_Expression_Function): Fix the parent
221 pointer of an aspect specification list after rewriting takes place.
222 * sem_ch7.adb (Analyze_Package_Body_Helper): Swap the aspect
223 specifications of the generic template and the copy used for analysis.
224 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Swap
225 the aspect specifications of the generic template and the
226 copy used for analysis.
227 (Analyze_Package_Instantiation): Propagate the aspect specifications
228 from the generic template to the instantiation.
229 (Build_Instance_Compilation_Unit_Nodes): Propagate the aspect
230 specifications from the generic template to the instantiation.
231 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle aspects
232 Abstract_State, Initializes and Initial_Condition when they
233 apply to a package instantiation.
235 2014-02-20 Robert Dewar <dewar@adacore.com>
237 * stringt.adb: Add call to Initialize in package initialization.
239 2014-02-20 Robert Dewar <dewar@adacore.com>
241 * a-crbtgk.adb, a-cihama.adb, a-coinve.adb, a-ciorse.adb, a-crbtgo.adb,
242 a-cidlli.adb, a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb,
243 a-chtgke.adb, a-chtgop.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb,
244 a-convec.adb, a-cohase.adb, a-chtgbk.adb, a-chtgbo.adb: Minor
247 2014-02-20 Bob Duff <duff@adacore.com>
249 * s-os_lib.ads: Minor: Remove incorrect comment.
251 2014-02-20 Robert Dewar <dewar@adacore.com>
253 * sem_elab.adb (Check_Elab_Assign): Clearer warning message.
255 2014-02-20 Ed Schonberg <schonberg@adacore.com>
257 * a-cborma.adb (Assign): When creating a node without a specified
258 element, insert an uninitialized element in the map, because
259 the instance may provide an element type with a default
260 initialization, e.g a scalar with a Default_Value aspect.
261 * a-cbhama.adb (Assign_Key): Remove useless Allocate procedure.
262 (Insert): In the version without explicit element, provide an
263 uninitialized element, as above.
264 * a-cbdlli.adb (Append): In the version without explicit element,
265 provide an uninitalized element, as above.
266 (Allocate): Remove unused version.
268 2014-02-20 Robert Dewar <dewar@adacore.com>
270 * sem_elab.adb: Minor code reorganization (use Nkind_In).
271 * stringt.adb: Remove temporary pragma Warnings (Off).
272 * stringt.ads: Add pragma Elaborate_Body to ensure initialization
275 2014-02-20 Matthew Heaney <heaney@adacore.com>
277 * a-chtgbk.adb (Replace): Use correct offset when calculating bucket
280 2014-02-20 Ed Schonberg <schonberg@adacore.com>
282 * sem_ch5.adb (Analyze_Iterator_Specification): Initialize
283 properly the cursor type for subsequent volatile testing in SPARK
284 mode, when domain is a formal container with an Iterabe aspect.
286 2014-02-20 Robert Dewar <dewar@adacore.com>
288 * errout.adb (Set_Warnings_Mode_Off): Add Reason argument.
289 (Set_Specific_Warning_Off): Add Reason argument.
290 * errout.ads (Set_Warnings_Mode_Off): Add Reason argument.
291 (Set_Specific_Warning_Off): Add Reason argument.
292 * erroutc.adb (Warnings_Entry): Add Reason field
293 (Specific_Warning_Entry): Add Reason field.
294 (Warnings_Suppressed): return String_Id for Reason.
295 (Warning_Specifically_Suppressed): return String_Id for Reason.
296 * erroutc.ads (Warnings_Entry): Add Reason field.
297 (Specific_Warning_Entry): Add Reason field.
298 (Set_Specific_Warning_Off): Add Reason argument.
299 (Set_Warnings_Mode_Off): Add Reason argument.
300 (Warnings_Suppressed): return String_Id for Reason.
301 (Warning_Specifically_Suppressed): return String_Id for Reason.
302 * errutil.adb (Warnings_Suppressed): returns String_Id for Reason
303 (Warning_Specifically_Suppressed): returns String_Id for Reason
304 * gnat_rm.texi: Document that Warning parameter is string literal
305 or a concatenation of string literals.
306 * par-prag.adb: New handling for Reason argument.
307 * sem_prag.adb (Analyze_Pragma, case Warning): New handling
309 * sem_util.ads, sem_util.adb (Get_Reason_String): New procedure.
310 * sem_warn.ads (Warnings_Off_Entry): Add reason field.
311 * stringt.adb: Set Null_String_Id.
312 * stringt.ads (Null_String_Id): New constant.
314 2014-02-20 Robert Dewar <dewar@adacore.com>
316 * einfo.ads: Minor comment addition: Etype of package is
318 * checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch13.adb,
319 exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb,
320 exp_ch7.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_imgv.adb,
321 exp_intr.adb, exp_prag.adb, exp_sel.adb, exp_strm.adb, exp_util.adb,
322 freeze.adb, rtsfind.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb,
323 sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
324 sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb, sem_res.adb,
325 sem_util.adb, tbuild.adb, tbuild.ads: Remove New_Reference_To.
326 Replace all calls with calls to New_Occurrence_Of.
328 2014-02-20 Robert Dewar <dewar@adacore.com>
330 * par-util.adb (Ignore, case of right paren): Make this a
333 2014-02-19 Robert Dewar <dewar@adacore.com>
335 * sem_ch5.adb, sem_prag.adb, sem_attr.adb: Minor reformatting.
336 * debug.adb: Remove -gnatd.X switch, no longer used.
337 * styleg.adb (Check_Then): Remove check of -gnatd.X, check is
340 2014-02-19 Bob Duff <duff@adacore.com>
342 * g-socket.ads: Minor: Correct some comments.
344 2014-02-19 Ed Schonberg <schonberg@adacore.com>
346 * sem_ch5.adb: Inhibit iterator rewriting in ASIS mode.
348 2014-02-19 Arnaud Charlet <charlet@adacore.com>
350 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not generate
351 an error on out of range priorities if Relaxed_RM_Semantics.
352 * sem_prag.adb (Analyze_Pragma): Ditto.
354 2014-02-19 Bob Duff <duff@adacore.com>
356 * sem_attr.adb (Resolve_Attribute): Detect the case of F'Access
357 where F denotes the renaming of an enumeration literal, and
358 issue a specialized error message.
360 2014-02-19 Matthew Heaney <heaney@adacore.com>
362 * a-chtgop.ads (Checked_Index): New operation.
363 (Next): Changed mode of hash table.
364 * a-chtgop.adb (Adjust, Delete_Node_Sans_Free): Detect tampering
365 (Generic_Read, Reserve_Capacity): Ditto.
366 (Generic_Equal): Detect tampering.
367 (Next): Changed mode of hash table, detect tampering.
368 * a-chtgke.ads (Checked_Index, Checked_Equivalent_Keys): New
370 (Find): Changed mode of hash table.
371 * a-chtgke.adb (Checked_Equivalent_Keys): New operation
372 (Delete_Key_Sans_Free, Generic_Conditional_Insert): Detect
374 (Find): Changed mode of hash table, check for tampering.
375 (Generic_Replace_Element): Check for tampering.
376 * a-chtgbk.ads (Checked_Index, Checked_Equivalent_Keys): New operation.
377 * a-chtgbk.adb (Checked_Index, Checked_Equivalent_Keys): New
378 operation (Delete_Key_Sans_Free, Generic_Conditional_Insert):
380 (Find, Generic_Replace_Element): Check for tampering.
381 * a-chtgbo.ads (Checked_Index): New operation.
382 * a-chtgbo.adb (Checked_Index): New operation
383 (Delete_Node_Sans_Free, Generic_Equal): Detect tampering.
384 (Generic_Read, Next): Ditto.
385 * a-cohase.adb, a-cihase.adb (Is_In): Changed mode of hash
386 table (Difference, Intersection): Use variable view of
387 source, detect tampering (Find, Is_Subset, Overlap): Use
388 variable view of container (Symmetric_Difference, Union):
389 Detect tampering (Vet): Use Checked_Index to detect tampering
390 (Constant_Reference, Element, Find): Use variable view of
392 (Update_Element_Preserving_Key): Detect tampering.
393 * a-cbhase.adb (Difference, Find, Is_In): Use variable view
396 (Equivalent_Sets, Overlap): Use Node's Next component.
397 (Vet): Use Checked_Index to detect tampering.
398 (Constant_Reference, Element, Find): Use variable view of container.
399 (Update_Element_Preserving_Key): Detect tampering.
400 * a-cohama.adb, a-cihama.adb, a-cbhama.adb (Constant_Reference,
401 Element, Find): Use variable view of container.
402 (Reference): Rename hash table component.
403 (Vet): Use Checked_Index to detect tampering.
405 2014-02-19 Arnaud Charlet <charlet@adacore.com>
407 * adabkend.adb (Scan_Compiler_Arguments): Add missing handling
410 2014-02-19 Thomas Quinot <quinot@adacore.com>
412 * tbuild.adb (New_Occurrence_Of, New_Rerefence_To): Guard
413 against calls without Def_Id.
415 2014-02-19 Claire Dross <dross@adacore.com>
417 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
418 a-cofove.ads: Add global annotations to subprograms.
420 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
422 * sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Remove
423 constants Errors, Pack_Id and Pack_Init. Remove variable Vars.
424 Initial_Condition no longer requires the presence of pragma
425 Initialized. Do not try to diagnose whether all variables mentioned in
426 pragma Initializes also appear in Initial_Condition.
427 (Collect_Variables): Removed.
428 (Match_Variable): Removed.
429 (Match_Variables): Removed.
430 (Report_Unused_Variables): Removed.
432 2014-02-19 Thomas Quinot <quinot@adacore.com>
434 * gnat_rm.texi (pragma Stream_Convert): Minor rewording.
436 2014-02-19 Robert Dewar <dewar@adacore.com>
438 * sem_util.adb, sem_util.ads, prj-conf.adb, s-os_lib.adb: Minor
441 2014-02-19 Vincent Celier <celier@adacore.com>
443 * prj-part.adb (Parse_Single_Project): Use the fully resolved
444 project path, with all symbolic links resolved, to check if the
445 same project is imported with a different unresolved path.
446 * prj-tree.ads (Project_Name_And_Node): Component Canonical_Path
447 changed to Resolved_Path to reflect that all symbolic links
450 2014-02-19 Ed Schonberg <schonberg@adacore.com>
452 * sem_util.ads, sem_util.adb (Get_Cursor_Type): Moved to sem_util
453 from sem_ch13, for use elsewhere.
454 * sem_ch13.adb (Get_Cursor_Type): Moved to sem_util.
455 * sem_ch5.adb (Analyze_Iterator_Specification): Set properly the
456 cursor type on the loop variable when the iteration is over o
459 2014-02-19 Vincent Celier <celier@adacore.com>
461 * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Add declaration
462 for an empty Target (Check_Target): Never fail when an empty
463 target is declared in the configuration project.
465 2014-02-19 Ed Schonberg <schonberg@adacore.com>
467 * sem_prag.adb (Check_Arg_Is_Local_Name): Argument is local if
468 the pragma comes fron a predicate aspect and the context is a
469 record declaration within the scope that declares the type.
471 2014-02-19 Robert Dewar <dewar@adacore.com>
473 * gnat_rm.texi: Minor clarifications.
474 * expander.adb, sem_aggr.adb: Add comments.
476 2014-02-19 Ed Schonberg <schonberg@adacore.com>
478 * sem_prag.adb (Check_Arg_Is_Local_Name): For an aspect that
479 applies to a subprogram body, the name is the current scope,
480 rather than being declared in the current scope.
481 (Analyze_Pragma, case No_Return): Handle properly a No_Return
482 aspect applied to a subprogram body.
484 2014-02-19 Ed Schonberg <schonberg@adacore.com>
486 * sem_ch13.adb (Resolve_Iterable_Operation): Improve resolution
487 of overloaded subprograms, and fix bug in handling of primitive
490 2014-02-19 Pascal Obry <obry@adacore.com>
492 * s-os_lib.adb: Minor reformatting.
494 2014-02-19 Yannick Moy <moy@adacore.com>
496 * expander.adb (Expand): Do nothing inside generics.
497 * sem_aggr.adb (Aggregate_Constraint_Checks): Do nothing inside
500 2014-02-19 Yannick Moy <moy@adacore.com>
502 * exp_ch2.adb: Remove useless 'with' of unit Uintp.
504 2014-02-19 Robert Dewar <dewar@adacore.com>
506 * sem_ch3.adb, style.adb, sem_prag.adb, sem_ch13.adb: Minor reformatting
507 * a-sequio.adb: Remove useless pragma Extensions_Allowed (no
510 2014-02-19 Claire Dross <dross@adacore.com>
512 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
513 a-cforse.ads, a-cofove.ads: Add Iterable aspect to formal containers.
515 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
517 * sem_ch3.adb (Analyze_Declarations): Analyze
518 a package contract at the end of the private declarations (if
519 applicable), otherwise analyze it and the end of the visible
522 2014-02-19 Ed Schonberg <schonberg@adacore.com>
524 * style.adb (Missing_Overriding): If subprogram is an
525 instantiation, place warning on the instance node itself,
526 without mention of the original generic. Do not emit message
527 if explicit Ada version is older than the introduction of the
528 overriding indicator.
530 2014-02-19 Yannick Moy <moy@adacore.com>
532 * gnat_rm.texi: Doc clarifications.
534 2014-02-19 Yannick Moy <moy@adacore.com>
536 * exp_util.adb (Remove_Side_Effects): Do not remove side-effects
539 2014-02-19 Ed Schonberg <schonberg@adacore.com>
541 * sem_ch13.adb (Get_Cursor_Type): Obtain cursor type from
542 specified First primitive, rather than by name.
543 (Validate_Iterable_Aspect, Resolve_Iterable_Operation): Use it,
544 and extend error checking for missing primitives and incorrect
547 2014-02-19 Ed Schonberg <schonberg@adacore.com>
549 * sem_ch3.adb (Check_Pragma_Implemented): Detect additional
550 errors when a Synchronization aspect on an overriding protected
551 operation does not match the given aspect on the overridden
552 operation of an ancestor interface.
554 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
556 * sem_prag.adb (Check_Loop_Pragma_Grouping): New routine.
557 (Check_Loop_Pragma_Placement): Update
558 comment on usage. Remove local variables Orig_Stmt and
559 Within_Same_Sequence. Check that the current Loop_Invariant or
560 Loop_Variant pragma is grouped together with other such pragmas.
561 (Is_Loop_Pragma): New routine.
562 (Prev_In_Loop): Removed.
564 2014-02-19 Robert Dewar <dewar@adacore.com>
566 * par-ch6.adb (P_Return): For extended return, end column lines
568 * par.adb: Minor documentation clarification.
570 2014-02-19 Yannick Moy <moy@adacore.com>
572 * sem_prag.adb (Check_Loop_Pragma_Placement): Add check
573 that Loop_Invariant and Loop_Variant appear consecutively.
574 * gnat_rm.texi Update documentation of Loop_Invariant and
575 Loop_Variant pragmas.
577 2014-02-19 Robert Dewar <dewar@adacore.com>
579 * debug.adb: Document -gnatd.X.
580 * par-ch5.adb (P_If_Statement): Always check THEN, even if not
582 (Check_Then_Column): Ditto.
583 * styleg.adb (Check_Then): Allow THEN on line after IF.
584 (Check_Then): Check THEN placement under control of -gnatd.X
585 * styleg.ads (Check_Then): Now called even if THEN is not first
587 * stylesw.ads (Style_Check_If_Then_Layout): Document new
589 * gnat_ugn.texi: For -gnatyi, THEN can now be on line after IF.
591 2014-02-19 Robert Dewar <dewar@adacore.com>
593 * a-cfhama.adb, a-cfhase.adb, a-cforse.adb, a-cofove.adb, a-ngcefu.adb,
594 a-teioed.adb, a-wtedit.adb, a-ztedit.adb, exp_ch5.adb, inline.adb,
595 prj-pp.adb, prj-tree.adb, sem_ch12.adb, sem_ch8.adb,
596 vms_conv.adb: Fix bad layout of IF statements
598 2014-02-19 Robert Dewar <dewar@adacore.com>
600 * exp_util.adb (Side_Effect_Free): Scalar if expressions can be SEF.
602 2014-02-19 Robert Dewar <dewar@adacore.com>
604 * exp_util.adb: Update comments.
606 2014-02-19 Doug Rupp <rupp@adacore.com>
608 * bindgen.adb (Gen_Adainit) [VMS] New global Float_Format.
609 * init.c (__gl_float_format): [VMS] New global.
610 (__gnat_set_features): Call FP_CONTROL to set FPSR for the float
611 representation in effect.
613 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
615 * exp_ch6.adb Add with and use clause for Exp_Prag.
616 (Expand_Contract_Cases): Relocated to Exp_Prag.
617 * exp_ch6.ads (Expand_Contract_Cases): Relocated to Exp_Prag.
618 * exp_prag.adb Add with and use clauses for Checks and Validsw.
619 (Expand_Contract_Cases): Relocated from Exp_Ch6. Update the
620 structure of the expanded code to showcase the evaluation of
621 attribute 'Old prefixes. Add local variable Old_Evals. Expand
622 any attribute 'Old references found within a consequence. Add
623 circuitry to evaluate the prefixes of attribute 'Old that
624 belong to a selected consequence.
625 (Expand_Old_In_Consequence): New routine.
626 * exp_prag.ads (Expand_Contract_Cases): Relocated from Exp_Ch6.
627 * sem_attr.adb (Check_Use_In_Contract_Cases): Warn that a
628 potentially unevaluated prefix is always evaluated.
630 2014-02-19 Robert Dewar <dewar@adacore.com>
632 * exp_attr.adb (Expand_Min_Max_Attribute): Use Insert_Declaration
633 (Expand_Min_Max_Attribute): Use Matching_Standard_Type.
634 * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove special
635 handling for the case of Modify_Tree_For_C, this approach did
637 * exp_util.adb (Matching_Standard_Type): New function
638 (Side_Effect_Free): New top level functions (from
639 Remove_Side_Effects).
640 * exp_util.ads (Side_Effect_Free): New top level functions
642 * sinfo.ads: Minor comment updates.
644 2014-02-19 Ed Schonberg <schonberg@adacore.com>
646 * exp_ch6.adb (Expand_Simple_Function_Return): If return
647 type is unconstrained and uses the secondary stack, mark the
648 enclosing function accordingly, to ensure that the value is not
651 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
653 * par.adb Alphabetize the routines in Par.Sync.
654 (Resync_Past_Malformed_Aspect): New routine.
655 * par-ch13.adb (Get_Aspect_Specifications): Alphabetize local
656 variables. Code and comment reformatting. Detect missing
657 parentheses on aspects [Refined_]Global and [Refined_]Depends
658 with a non-null definition.
659 * par-sync.adb: Alphabetize all routines in this separate unit.
660 (Resync_Past_Malformed_Aspect): New routine.
662 2014-02-19 Robert Dewar <dewar@adacore.com>
664 * sem_eval.ads, sem_eval.adb (Subtypes_Statically_Match): Return False
665 if Esize values do not match.
667 2014-02-19 Yannick Moy <moy@adacore.com>
669 * sinfo.ads: Minor comment update.
671 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
673 * atree.ads: Minor reformatting (change Entity_Info to Einfo).
675 2014-02-19 Thomas Quinot <quinot@adacore.com>
677 * exp_ch7.adb (Find_Node_To_Be_Wrapped): An assignment statement
678 that has the No_Ctrl_Actions flag is a suitable node to be
679 wrapped if the assigned expression has no finalization actions.
680 * sem_eval.adb (Eval_Entity_Name): For a compile time known
681 boolean value, mark the corresponding condition SCO as constant.
683 2014-02-19 Robert Dewar <dewar@adacore.com>
685 * exp_util.adb: Minor reformatting.
686 * exp_util.ads (Matching_Standard_Type): New function.
687 * exp_ch7.adb: Minor reformatting.
689 2014-02-19 Ed Schonberg <schonberg@adacore.com>
691 * sem_ch13.adb (Get_Cursor_Type): Use scope of iterable type
692 to find declaration for Cursor, to handle properly the case of
693 a discriminated iterable type.
695 2014-02-19 Vincent Celier <celier@adacore.com>
697 * gnatcmd.adb (GNATCmd): Always replace the object dirs of
698 imported library projects with the library ALI dirs, when setting
700 * prj-env.ads (Ada_Objects_Path): Correct comments about
701 argument Including_Libraries.
703 2014-02-19 Gary Dismukes <dismukes@adacore.com>
705 * gnat_rm.texi: Minor spelling fixes.
707 2014-02-19 Doug Rupp <rupp@adacore.com>
709 * init.c: Remove unneeded code.
710 * fe.h (Float_Format): New macro
711 * gcc-interface/trans.c (gigi): On VMS, set vms_float_format.
713 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
715 * sem_prag.adb (Check_Refined_Global_Item):
716 A state or variable acts as a constituent only it is part of an
717 encapsulating state and the state has visible refinement.
719 2014-02-19 Ed Schonberg <schonberg@adacore.com>
721 * sem_ch6.adb (Analyze_Subprogram_Contract): Do not warn on a
722 postcondition for a function when the expression does not mention
723 'Result but the function has in-out parameters.
725 2014-02-19 Robert Dewar <dewar@adacore.com>
727 * gnat_rm.texi: Add documentation on Value_Size forcing biased
730 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
732 * lib-xref.ads Remove the small table of letter and symbol usage as we
735 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
737 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Emit specific error
738 messages depending on the offending misplaced aspect specifications.
739 (Diagnose_Misplaced_Aspect_Specifications): New routine.
741 2014-02-19 Ed Schonberg <schonberg@adacore.com>
743 * sem_ch13.adb (Get_Cursor): Utility to retrieve cursor type
744 for iterable aspect primitives.
745 (Resolve_Iterable_Operation): Use expected signature of iterable
746 aspect to resolve primitive when overloading is present.
747 (Validate_Iterable_Aspect, Analyze_Aspects_At_Freeze_Point): use it.
748 (Check_Signature): Removed.
750 2014-02-19 Yannick Moy <moy@adacore.com>
752 * sem_ch10.adb (Analyze_Proper_Body): Issue error on missing
753 subunit in GNATprove_Mode.
754 * sinfo.ads (GNATprove_Mode): Document error issued in GNATprove_Mode.
756 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
758 * lib-xref.ads Alphabetize the contents of table
759 Xref_Entity_Letters. Add an entry in table Xref_Entity_Letters
760 for E_Abstract_State. List all letters and symbols in use.
761 * sem_prag.adb (Analyze_Abstract_State): Update all calls
762 to Create_Abstract_State to reflect the new signature.
763 (Create_Abstract_State): Change subprogram profile and update
764 the comment on usage. Use the proper location of the state
765 declaration when creating a new abstract state entity. Do not
766 generate an external name, but simply reuse the name coming from
767 the state declaration.
769 2014-02-19 Robert Dewar <dewar@adacore.com>
771 * exp_ch4.adb (Expand_N_Expression_With_Actions): Make sure
772 declarations get properly inserted in Modify_Tree_For_C mode.
773 * sinfo.ads: Minor comment addition.
775 2014-02-19 Robert Dewar <dewar@adacore.com>
777 * par-ch9.adb, exp_ch5.adb, sem_ch5.adb, exp_attr.adb, sem_util.adb,
778 sem_util.ads, sem_ch13.adb, sem_ch13.ads: Minor reformatting.
780 2014-02-19 Ed Schonberg <schonberg@adacore.com>
782 * style.adb (Missing_Overriding): Warning does not apply in
783 language versions prior to Ada 2005.
784 * snames.ads-tmpl: Add Name_Iterable and Attribute_Iterable.
785 * sem_attr.adb: Add Attribute_Iterable where needed.
786 * exp_attr.adb: ditto.
787 * exp_ch5.adb (Expand_Formal_Container_Loop): New procedure to
788 handle loops and quantified expressions over types that have an
789 iterable aspect. Called from Expand_Iterator_Loop.
790 * sem_ch5.adb (Analyze_Iterator_Specification): Recognize types
791 with Iterable aspect.
792 * sem_ch13.adb (Validate_Iterable_Aspect): Verify that the
793 subprograms specified in the Iterable aspect have the proper
794 signature involving container and cursor.
795 (Check_Aspect_At_Freeze_Point): Analyze value of iterable aspect.
796 * sem_ch13.ads (Validate_Iterable_Aspect): New subprogram.
797 * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive):
798 New procedure to retrieve one of the primitives First, Last,
799 or Has_Element, from the value of the iterable aspect of a
801 (Is_Container_Element): Predicate to recognize expressions
802 that denote an element of one of the predefined containers,
803 for possible optimization. This subprogram is not currently
804 used, pending ARG discussions on the legality of the proposed
805 optimization. Worth preserving for eventual use.
806 (Is_Iterator): Recognize formal container types.
807 * aspects.ads, aspects.adb: Add Aspect_Iterable where needed.
809 2014-02-19 Robert Dewar <dewar@adacore.com>
811 * exp_attr.adb (Expand_Min_Max_Attribute): New procedure
812 (Expand_N_Attribute_Reference): Use this procedure for Min and Max.
813 * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove object
814 declarations from list of actions.
815 * output.ads, output.adb (Delete_Last_Char): New procedure.
816 * sinfo.ads: Document handling of Mod and expression with actions
817 in Modify_Tree_For_C mode.
819 2014-02-19 Ed Schonberg <schonberg@adacore.com>
821 * par-ch9.adb (P_Task): Add a null statement to produce a
822 well-formed task body when due to a previous syntax error the
823 statement list is empty.
825 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com>
827 * sem_prag.adb (Check_Dependency_Clause): Account
828 for the case where a state with a non-null refinement matches a
829 null output list. Comment reformatting.
830 (Inputs_Match): Copy a solitary input to avoid an assertion failure
831 when trying to match the same input in multiple clauses.
833 2014-02-19 Gary Dismukes <dismukes@adacore.com>
835 * sem_attr.adb: Minor typo fix.
837 2014-02-18 Robert Dewar <dewar@adacore.com>
839 * cstand.adb (Build_Signed_Integer_Type): Minor change of formal
840 from Int to Nat (Build_Unsigned_Integer_Type): New procedure
841 (Create_Standard): Create new unsigned types.
842 * exp_ch4.adb (Expand_N_Op_Mod): Expand mod in Modify_Tree_For_C
843 mode (Expand_N_Reference): Removed, problematic and not needed
845 * exp_ch4.ads (Expand_N_Reference): Removed, problematic and
847 * exp_util.ads, exp_util.adb (Power_Of_Two): New function.
848 * expander.adb: Remove call to Expand_N_Reference (problematic,
850 * sem_aux.ads, sem_aux.adb (Corresponding_Unsigned_Type): New function.
851 * stand.adb: Read and write unsigned type entities.
852 * stand.ads: Add new unsigned types.
854 2014-02-18 Hristian Kirtchev <kirtchev@adacore.com>
856 * sem_ch4.adb (Analyze_Call): Do not mark a function call
857 as being inside an assertion expression as the flag is now removed.
858 (Check_Ghost_Subprogram_Call): Do not query the
859 In_Assertion_Expression flag as it is now removed, instead use
860 a predicate function.
861 * sem_elab.adb (Check_Internal_Call_Continue): Do not query the
862 In_Assertion_Expression flag as it is now removed, instead use
863 a predicate function.
864 * sem_prag.ads: Add new table Assertion_Expression_Pragma.
865 * sem_util.adb Add with and use clause for Sem_Prag.
866 (In_Assertion_Expression_Pragma): New routine.
867 * sem_util.ads (In_Assertion_Expression_Pragma): New routine.
868 * sinfo.adb (In_Assertion_Expression): Removed.
869 (Set_In_Assertion_Expression): Removed.
870 * sinfo.ads Remove flag In_Assertion_Expression along with its
872 (In_Assertion_Expression): Removed along with
873 pragma Inline. (Set_In_Assertion_Expression): Removed along
876 2014-02-18 Sergey Rybin <rybin@adacore.com frybin>
878 * gnat_ugn.texi: gnatpp section: add note that '-j' cannot be
879 used together with '-r', '-rf' or '-rnb' options.
881 2014-02-18 Hristian Kirtchev <kirtchev@adacore.com>
883 * sem_attr.adb (Analyze_Attribute): Comment
884 and code reformatting. Use separate routines to check the
885 legality of attribute 'Old in certain pragmas. Verify
886 the use of 'Old, 'Result and locally declared entities
887 within the prefix of 'Old.
888 (Check_References_In_Prefix): New routine.
889 (Check_Use_In_Contract_Cases): New routine.
890 (Check_Use_In_Test_Case): New routine.
892 2014-02-18 Vincent Celier <celier@adacore.com>
894 * sem_aux.adb (Is_By_Reference_Type): For each components of
895 a record type, check also if the component is volatile as it
896 may have an aspect that makes it volatile. If it is, then the
897 record type is a by reference type.
899 2014-02-18 Robert Dewar <dewar@adacore.com>
901 * exp_attr.adb: Minor reformatting.
902 * exp_ch4.ads, exp_ch4.adb (Expand_N_Reference): New procedure.
903 * exp_util.adb (Remove_Side_Effects): Add conditional expressions
904 as another case where we don't generate N_Reference nodes for
906 * expander.adb (Expand): Add call to Expand_N_Reference.
908 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
910 * sem_prag.adb (Analyze_Refined_Pragma): Remove
911 local variable Pack_Spec. Refinement pragmas may now apply to
912 bodies of both visible and private subprograms.
914 2014-02-06 Robert Dewar <dewar@adacore.com>
916 * exp_attr.adb (Expand_Loop_Entry_Attribute):
917 Minor change (Attr => N) (Expand_Pred_Succ): New name
918 Expand_Pred_Succ_Attribute (Expand_N_Attribute_Reference, case
919 Max): Expand into if expression if Modify_Tree_For_C mode.
920 (Expand_N_Attribute_Reference, case Min): ditto
921 * sinfo.ads: Modify_Tree_For_C takes care of expanding Min and
924 2014-02-06 Ed Schonberg <schonberg@adacore.com>
926 * sem_ch3.adb (Analyze_Object_Declaration): Do not generate
927 predicate check if this is an internal declaration with
928 No_Initialization set, as for an expanded aggregate component.
930 2014-02-06 Doug Rupp <rupp@adacore.com>
932 * init.c (__gnat_default_resignal_p) [VMS]: Test for and resignal
933 conditions with severity of "SUCCESS" or "INFORMATIONAL".
935 2014-02-06 Yannick Moy <moy@adacore.com>
937 * sem_prag.adb (Analyze_Pragma): Analyze pragma
938 Debug rewritten node before rewriting it as a null statement in
941 2014-02-06 Robert Dewar <dewar@adacore.com>
943 * sem_attr.adb (Min_Max): New procedure.
944 (Max_Alignment_For_Allocation_Max_Size_In_Storage_Elements): New
947 2014-02-06 Sergey Rybin <rybin@adacore.com frybin>
949 * gnat_ugn.texi, vms_data.ads: Add documentation of '-t' option for
952 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
954 * sem_prag.adb (Analyze_Abstract_State): Update
955 all calls to Create_Abstract_State to pass the proper state
957 (Create_Abstract_State): Add new formal parameter
958 State_Decl along with comment on usage. Establish a link between
959 the abstract state entity and the state declaration.
961 2014-02-06 Robert Dewar <dewar@adacore.com>
963 * sem_attr.adb (Analyze_Attribute, case Max): Check for improper
964 comparison of unordered enumeration type.
965 (Analyze_Attribute, case Max): Check for improper comparison of
966 unordered enumeration type.
967 * sem_res.adb (Bad_Unordered_Enumeration_Reference): Moved to
969 * sem_util.ads, sem_util.adb (Bad_Unordered_Enumeration_Reference):
970 Moved here from Sem_Res.
972 2014-02-06 Robert Dewar <dewar@adacore.com>
974 * sem_ch3.adb, sem_prag.adb, sem_res.adb, lib-xref.adb: Minor
977 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
979 * sem_ch6.adb (Process_Formals): Error message reformatting.
981 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
983 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local
984 variable Spec. Do not inherit the null indicator from the
985 subprogram body when generating the spec.
987 2014-02-06 Robert Dewar <dewar@adacore.com>
989 * casing.adb (Determine_Casing): Consider SPARK_Mode to be
992 2014-02-06 Ed Schonberg <schonberg@adacore.com>
994 * exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false
995 when the function has a foreign convention, but not if only the
996 limited return type has such a convention.
998 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1000 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Remove local
1001 variable Spec. Comment reformatting. Use Copy_Separate_Tree
1002 rather than New_Copy_Tree when building the corresponding
1003 subprogram declaration.
1005 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1007 * sem_prag.adb (Analyze_Global_Item): Remove
1008 the mode-related checks on abstract states with enabled external
1010 (Property_Error): Removed.
1012 2014-02-06 Javier Miranda <miranda@adacore.com>
1014 * lib-xref.adb (Generate_Reference): When
1015 generating the reference to the first private entity take care
1016 of handling swapped entities.
1018 2014-02-06 Sergey Rybin <rybin@adacore.com frybin>
1020 * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for
1023 2014-02-06 Robert Dewar <dewar@adacore.com>
1025 * exp_ch4.adb (Expand_N_Shift_Left): Handle shift counts greater
1026 than the word size when operating in Modify_Tree_For_C mode.
1027 * sinfo.ads: Add documentation section on Modify_Tree_For_C mode.
1029 2014-02-06 Robert Dewar <dewar@adacore.com>
1031 * erroutc.adb (Warning_Specifically_Suppressed.Matches):
1032 compare is case insensitive.
1033 * gnat_rm.texi: Document that string compare for Warnings Off
1034 is now case insensitive.
1036 2014-02-06 Eric Botcazou <ebotcazou@adacore.com>
1038 * gnat_rm.texi: Small wording tweak.
1040 2014-02-06 Pascal Obry <obry@adacore.com>
1042 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Included_Patterns
1043 and Included_Artifact_Patterns attribute definitions.
1045 2014-02-06 Yannick Moy <moy@adacore.com>
1047 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set
1048 SPARK_Mode pragma component for all subprograms, including stubs.
1050 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1052 * sem_ch10.adb (Analyze_Package_Body_Stub): Maintain
1053 the configuration options of the enclosing context in a
1055 (Analyze_Subprogram_Body_Stub): Maintain the
1056 configuration options of the enclosing context in a stack-like
1059 2014-02-06 Robert Dewar <dewar@adacore.com>
1061 * debug.adb: -gnatd.u sets Modify_Tree_For C
1062 * exp_ch4.adb (Expand_N_Op_Rotate_Left): Expand out
1063 if Modify_Tree_For_C (Expand_N_Op_Rotate_Right): ditto.
1064 (Expand_N_Op_Arithmetic_Right_Shift): ditto.
1065 * exp_intr.adb (Expand_Shift): Call expander so we do
1066 Modify_Tree_For_C expansions.
1067 * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C
1070 2014-02-06 Fedor Rybin <frybin@adacore.com>
1072 * prj-proc.ads (Tree_Loaded_Callback): new type Callback used
1073 after the phase 1 of the processing of each aggregated project
1074 to get access to project trees of aggregated projects.
1075 (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded
1076 If specified, On_New_Tree_Loaded is called after each aggregated
1077 project has been processed succesfully.
1078 (Process): new parameter On_New_Tree_Loaded.
1079 * prj-proc.adb (Process_Aggregated_Projects): On_New_Tree_Loaded
1080 callback added after processing of each aggregated project.
1081 (Recursive_Process): new parameter On_New_Tree_Loaded.
1082 (Process): new parameter On_New_Tree_Loaded.
1083 (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded.
1084 * prj-conf.ads (Parse_Project_And_Apply_Config): new parameter
1086 * prj-conf.adb (Parse_Project_And_Apply_Config): new parameter
1089 2014-02-06 Bob Duff <duff@adacore.com>
1091 * gnat_ugn.texi: Implement --insert-blank-lines and
1092 --preserve-blank-lines switches.
1094 2014-02-06 Sergey Rybin <rybin@adacore.com frybin>
1096 * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for
1099 2014-02-06 Eric Botcazou <ebotcazou@adacore.com>
1101 * gnat_rm.texi (Pragma Optimize_Alignment): Document the effect
1102 of the pragma on individual objects.
1104 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1106 * einfo.adb Node29 is now used as BIP_Initialization_Call.
1107 (BIP_Initialization_Call): New routine.
1108 (Set_BIP_Initialization_Call): New routine.
1109 (Write_Field29_Name): Add an entry for constants and variables.
1110 * einfo.ads Add new attribute BIP_Initialization_Call and update
1112 (BIP_Initialization_Call): New routine along with pragma Inline.
1113 (Set_BIP_Initialization_Call): New routine along with pragma Inline.
1114 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
1115 Add local declaration Res_Decl. Capture the build-in-place
1116 initialization call when the related object declaration has
1117 created a transient block.
1118 * exp_ch7.adb (Process_Transient_Objects): Add local variable
1119 Fin_Insrt. Recognize a scenario where an object declaration acts
1120 as a transient context and is initialized by a build-in-place
1123 2014-02-06 Pascal Obry <obry@adacore.com>
1125 * prj-util.adb (For_Interface_Sources): Fix handling of required
1126 bodies for aggregate libs.
1128 2014-02-06 Robert Dewar <dewar@adacore.com>
1130 * nlists.ads: Minor comment clarifications.
1132 2014-02-06 Robert Dewar <dewar@adacore.com>
1134 * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C
1136 * opt.ads (Modify_Tree_For_C): New flag.
1137 * output.ads, output.adb (Last_Char): New function.
1139 2014-02-06 Pascal Obry <obry@adacore.com>
1141 * projects.texi, prj-env.adb (Initialize_Default_Project_Path): Add
1142 share/gpr for cross-builds.
1144 2014-02-06 Robert Dewar <dewar@adacore.com>
1146 * exp_util.ads, checks.adb, sem_prag.adb, prj-util.adb, sem_ch13.adb:
1147 Minor reformatting and code clean ups.
1149 2014-02-06 Pascal Obry <obry@adacore.com>
1151 * prj-util.adb (For_Interface_Sources): Skip non compilable languages.
1152 * prj.ads: Minor typo fix in comment.
1154 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1156 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add
1157 local variable Expr. Flag clauses with extra parenthesis as this
1158 is not allowed by the syntax of the pragma. Code reformatting.
1160 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1162 * exp_attr.adb (Expand_N_Attribute_Reference): Alphabetize
1163 variables. Rename variabme Tnn to Temp. Do not create a temporary
1164 if assertions are disabled. Find enclosing routine _Postconditions
1165 and insert the temporary that captures the value of the prefix
1167 * exp_ch6.adb (Build_Postconditions_Procedure):
1168 Insert the generated _Postconditions routine
1169 before the first source declaration of the related
1171 (Insert_After_Last_Declaration): Removed.
1172 (Insert_Before_First_Source_Declaration): New routine.
1174 2014-02-06 Ed Schonberg <schonberg@adacore.com>
1176 * exp_util.adb, exp_util.ads (Within_Internal_Subprogram):
1177 Utility to determine whether current expansion is for the body
1178 of a predefined primitive operation.
1179 (Make_Predicate_Check): Use Within_Internal_Subpgram
1180 * checks.adb (Apply_Predicate_Check): Use
1181 Within_Internal_Subprogram
1182 * sem_ch13.adb (Freeze_Entity_Checks): Ditto.
1184 2014-02-06 Pascal Obry <obry@adacore.com>
1186 * prj.ads, prj-util.adb: Minor reformatting.
1188 2014-02-06 Ed Schonberg <schonberg@adacore.com>
1190 * exp_ch6.adb (Expand_Subprogram_Contract, Append_Enabled_Item):
1191 Take into account the Split_PPC flag to ensure that conjuncts
1192 in a composite postcondition aspect are tested in source order.
1194 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1196 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Flag illegal
1198 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Flag
1199 illegal use of SPARK_Mode.
1200 (Instantiate_Subprogram_Body): Flag illegal use of SPARK_Mode.
1201 * sem_prag.adb (Analyze_Pragma): Code reformatting.
1202 * sem_util.adb Add with and use clause for Aspects.
1203 (Check_SPARK_Mode_In_Generic): New routine.
1204 * sem_util.ads (Check_SPARK_Mode_In_Generic): New routine.
1206 2014-02-06 Thomas Quinot <quinot@adacore.com>
1208 * a-calend.adb (Formatting_Operations.Split): Ensure that
1209 Time_Error is raised for invalid time values.
1211 2014-02-06 Arnaud Charlet <charlet@adacore.com>
1213 * sem_prag.adb (Analyze_Pragma): Rewrite as a null statement
1216 2014-02-06 Robert Dewar <dewar@adacore.com>
1218 * einfo.ads, einfo.adb (Is_Discriminant_Check_Function): New flag.
1219 * exp_ch3.adb (Build_Dcheck_Function): Set
1220 Is_Discriminant_Check_Function.
1222 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1224 * exp_ch7.adb (Is_Subprogram_Call): Inspect
1225 the original tree in certain cases where a construct has been
1226 factored out and replaced by a reference to a temporary.
1228 2014-02-06 Ed Schonberg <schonberg@adacore.com>
1230 * sem_ch3.adb (Process_Full_View): Fix typo in the order of
1231 parameters when propagating predicate function to full view.
1232 (Find_Type_Of_Object): Freeze base type of object type to catch
1233 premature use of discriminated private type without a full view.
1235 2014-02-06 Robert Dewar <dewar@adacore.com>
1237 * sprint.adb: Minor reformatting.
1239 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1241 * exp_ch4.adb (Process_Transient_Object): Add local variable
1242 Temp_Ins. When the transient object is initialized by an
1243 aggregate, the hook must capture the object after the last
1244 component assignment takes place.
1245 * exp_ch7.adb (Detect_Subprogram_Call): Expose the subprogram to
1246 routine Is_Subprogram_Call.
1247 (Is_Subprogram_Call): Inspect an
1248 aggregate that has been heavily expanded for subprogram calls.
1249 (Process_Transient_Objects): Add local variables Expr, Ptr_Id
1250 and Temp_Ins. Remove the nested declare block and adjust the
1251 indentation. When the transient object is initialized by an
1252 aggregate, the hook must capture the object after the last
1253 component assignment takes place.
1255 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1257 * sem_prag.adb (Analyze_Global_Item): Detect illegal uses of
1258 external states with enabled properties that do not match the
1260 (Property_Error): New routine.
1261 * sem_res.adb (Property_Error): New routine.
1262 (Resolve_Actuals): Detect illegal uses of external variables with
1263 enabled properties in procedure calls that do not match the mode of
1264 the corresponding formal parameter.
1266 2014-02-06 Hristian Kirtchev <kirtchev@adacore.com>
1268 * sem_util.adb (Has_Enabled_Property): Rename
1269 formal parameter Prop_Nam to Property. Update the comment on usage
1270 and all occurrences in the body. Add local variable Prop_Nam. When
1271 inspecting a property with an expression, the property name
1272 appears as the first choice of the component association.
1274 2014-02-04 Robert Dewar <dewar@adacore.com>
1276 * exp_ch5.adb, einfo.ads, freeze.adb, sem_ch8.adb: Minor reformatting.
1278 2014-02-04 Gary Dismukes <dismukes@adacore.com>
1280 * sem_aggr.adb: Change "runtime" to "run time" in warning message,
1281 for consistency with other messages.
1283 2014-02-04 Ed Schonberg <schonberg@adacore.com>
1285 * exp_ch5.adb (Expand_Iterator_Loop): For a container element
1286 iterator, indicate that the element is a constant if the container
1287 type does not have a variable indexing aspect.
1288 * sem_ch8.adb (Analyze_Object_Renaming): If the entity is already
1289 marked as constant, do not reset its Ekind, to ensure that
1290 container elements in an element loop are not modified if the
1291 container (e.g. a hashed set) only has a constant indexing aspect.
1293 2014-02-04 Arnaud Charlet <charlet@adacore.com>
1295 * g-souinf.ads: Subprograms in this unit are actually not pure.
1296 * freeze.adb (Freeze_Subprogram): Do not reset Is_Pure for Intrinsics.
1297 * einfo.ads (Is_Pure): Update doc to match implementation.
1299 2014-02-04 Gary Dismukes <dismukes@adacore.com>
1301 * exp_ch13.adb: Minor spelling fix.
1303 2014-02-04 Robert Dewar <dewar@adacore.com>
1305 * opt.ads: Minor comment update.
1307 2014-02-04 Robert Dewar <dewar@adacore.com>
1309 * exp_ch4.adb (Expand_N_Expression_With_Actions): Use Rewrite
1312 2014-02-04 Ed Schonberg <schonberg@adacore.com>
1314 * sem_aggr.adb (Resolve_Array_Aggregate): Suppress warnings
1315 on null expressions if component type is non-null, when the
1316 corresponding association covers an empty range of index values.
1318 2014-02-04 Robert Dewar <dewar@adacore.com>
1320 * sinfo.ads: Further comments on N_Expression_With_Actions node.
1322 2014-02-04 Hristian Kirtchev <kirtchev@adacore.com>
1324 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global
1325 variables Out_Items and Ref_Global. Remove local constant
1326 Body_Id along with dummy variables D1, D2, D3, D4, D5, D6, D7
1327 and D8. Remove the useless collection of global items as this
1328 was a leftover from an earlier version of the routine. Move
1329 several routines out to avoid deep nesting and indentation.
1330 (Inputs_Match): Add formal parameter Dep_Clause. Rename formal
1331 parameter Do_Checks to Post_Errors. Update the comment on usage.
1332 (Is_Matching_Input): Renamed to Input_Match. Add formal parameters
1333 Ref_Inputs and Do_Checks. Rename formal parameter Do_Checks
1334 to Post_Errors. Update the comment on usage. Account for the
1335 case where a self referential state may have a null input_list.
1336 (Is_Self_Referential): New routine.
1338 2014-02-04 Ed Schonberg <schonberg@adacore.com>
1340 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the
1341 entity renames an expression, as in the case of an object of
1342 an unconstrained type initialized by a function call, defer the
1343 rewriting of the expression to the expander.
1344 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
1345 'Alignment): If the entity renames an expression, introduce
1346 temporary to capture value, and rewrite original declaration to
1349 2014-02-04 Gary Dismukes <dismukes@adacore.com>
1351 * g-comlin.adb: Minor typo fix.
1353 2014-02-04 Ed Schonberg <schonberg@adacore.com>
1355 * freeze.adb (Freeze_All): Types derived from a formal
1356 access_to_classwide type do not have a finalization master.
1358 2014-02-04 Robert Dewar <dewar@adacore.com>
1360 * sprint.adb: Minor reformatting.
1362 2014-02-04 Robert Dewar <dewar@adacore.com>
1364 * exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate
1365 cases where Actions is a null list.
1366 * sinfo.ads (N_Expression_With_Actions): Actions can be
1367 temporarily empty during semantic analysis, but must be non-empty
1368 in the final expanded tree.
1370 2014-01-31 Robert Dewar <dewar@adacore.com>
1372 * exp_ch9.adb: Minor reformatting.
1374 2014-01-31 Emmanuel Briot <briot@adacore.com>
1376 * g-comlin.adb (Set_Command_Line): Take the switches
1377 configuration from the Command_Line_Config.
1379 2014-01-31 Hristian Kirtchev <kirtchev@adacore.com>
1381 * sem_prag.adb (Analyze_Refinement_Clause): Guard against a malformed
1384 2014-01-31 Vincent Celier <celier@adacore.com>
1386 * projects.texi: Add more documentation about others used as an
1387 index in indexed attributes.
1389 2014-01-31 Robert Dewar <dewar@adacore.com>
1391 * gnat_ugn.texi: Minor update.
1392 * gnat_rm.texi: Add example to Restriction_Warnings documentation.
1393 * exp_util.adb: Minor reformatting.
1395 2014-01-31 Ed Schonberg <schonberg@adacore.com>
1397 * exp_ch9.adb (Expand_Entry_Barrier): Warn if the barrier
1398 depends on data that is not private to the protected object,
1399 and potentially modifiable in unsynchronized fashion.
1401 2014-01-31 Yannick Moy <moy@adacore.com>
1403 * erroutc.adb (Validate_Specific_Warnings): Remove special case for
1406 2014-01-31 Robert Dewar <dewar@adacore.com>
1408 * prj-attr.ads (First_Attribute_Of): Returns Empty_Attribute
1409 for Unknown_Package.
1410 * sem_ch6.adb, sem_attr.adb: Minor comment addition.
1412 2014-01-31 Hristian Kirtchev <kirtchev@adacore.com>
1414 * exp_util.adb (Build_Allocate_Deallocate_Proc): Rewrite
1415 the logic that generates a runtime check to determine the
1416 controlled status of the object about to be allocated or
1417 deallocated. Class-wide types now always use a runtime check
1418 even if they appear as generic actuals.
1419 (Find_Object): Detect
1420 a special case that involves interface class-wide types because
1421 the object appears as a complex expression.
1423 2014-01-31 Ed Schonberg <schonberg@adacore.com>
1425 * sem_ch6.adb (Process_Formals): In Ada2012 mode, place
1426 subprogram with an incomplete untagged formals on the list of
1427 private dependents, to verify that the type is properly completed
1428 in the private part.
1429 * sem_attr.adb: Code clean up.
1431 2014-01-31 Robert Dewar <dewar@adacore.com>
1433 * exp_ch6.adb: Minor reformatting.
1435 2014-01-31 Vincent Celier <celier@adacore.com>
1437 * prj-attr.adb (First_Attribute_Of): Return Unknown_Attribute
1438 when Pkg is unknown.
1440 2014-01-31 Hristian Kirtchev <kirtchev@adacore.com>
1442 * sem_res.adb (Resolve_Entity_Name): Comment
1443 reformatting. Allow volatile objects in various generated checks.
1445 2014-01-31 Ed Schonberg <schonberg@adacore.com>
1447 * sem_attr.adb (Analyze_Attribute, case 'Update): For a record
1448 component association, set the etype of the identifier, for
1451 2014-01-31 Ed Schonberg <schonberg@adacore.com>
1453 * exp_ch6.adb (Has_Visibility_Of_Subprogram): If type is not
1454 declared in a package, not checks can apply to the subprogram.
1456 2014-01-31 Robert Dewar <dewar@adacore.com>
1458 * erroutc.adb (Validate_Specific_Warnings): Warnings are
1459 controlled -gnatw.W.
1460 * gnat_ugn.texi: Document new warnings controlled by -gnatw.w.
1461 * opt.ads (Warn_On_Warnings_Off): Now controls more cases.
1463 2014-01-31 Arnaud Charlet <charlet@adacore.com>
1465 * exp_disp.adb: Update comments.
1467 2014-01-31 Yannick Moy <moy@adacore.com>
1469 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration,
1470 Save_Global_References): Guard access to expression in aspect.
1472 2014-01-31 Yannick Moy <moy@adacore.com>
1474 * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode):
1475 Issue an error when the pragma is applied to a generic unit,
1476 a generic declaration, or inside a generic.
1478 2014-01-31 Yannick Moy <moy@adacore.com>
1480 * sem_ch8.adb (Analyze_Subprogram_Renaming): Set SPARK_Mode on renaming
1483 2014-01-31 Robert Dewar <dewar@adacore.com>
1485 * exp_ch9.adb, s-tassta.adb, s-tposen.adb, s-tposen.ads: Minor
1488 2014-01-31 Tristan Gingold <gingold@adacore.com>
1490 * exp_disp.adb: Add a historic note.
1492 2014-01-31 Robert Dewar <dewar@adacore.com>
1494 * sem_warn.adb (Warn_On_Useless_Assignments): Add call to
1495 Process_Deferred_References.
1497 2014-01-31 Yannick Moy <moy@adacore.com>
1499 * erroutc.adb (Validate_Specific_Warnings): Do not issue a message for
1500 ineffective pragma Warnings(Off) in GNATprove_Mode.
1502 2014-01-31 Bob Duff <duff@adacore.com>
1504 * s-taskin.ads: Minor comment fix.
1505 * s-tassta.adb (Abort_Dependents): Don't abort all dependents;
1506 just direct dependents. If this is actually an abort, each task
1507 will take care of aborting its dependents, so all dependents will
1508 get aborted, as before. However, when this is called the second
1509 time from Vulnerable_Complete_Master "for convenience" (i.e. to
1510 kill off tasks waiting at terminate alternatives), aborting
1511 indirect dependents is wrong, because it causes some unrelated
1512 tasks to get aborted.
1514 2014-01-31 Robert Dewar <dewar@adacore.com>
1516 * sem_ch4.adb: Minor reformatting.
1518 2014-01-31 Robert Dewar <dewar@adacore.com>
1520 * exp_ch2.adb: New calling sequence for Is_LHS.
1521 * frontend.adb: Add call to Process_Deferred_References.
1522 * lib-xref.ads, lib-xref.adb (Process_Deferred_References): New.
1523 (Deferred_References): New table.
1524 * sem_ch8.adb (Find_Direct_Name): Make deferred reference table
1526 (Find_Expanded_Name): Ditto.
1527 * sem_res.adb: New calling sequence for Is_LHS.
1528 * sem_util.ads, sem_util.adb (Is_LHS): New calling sequence.
1529 * sem_warn.adb: Call Process_Deferred_References before issuing
1532 2014-01-31 Tristan Gingold <gingold@adacore.com>
1534 * exp_util.adb (Corresponding_Runtime_Package): Restrict the
1535 use of System_Tasking_Protected_Objects_Single_Entry.
1536 * exp_ch9.adb (Build_Simple_Entry_Call): Remove Mode parameter
1537 of Protected_Single_Entry_Call.
1538 (Expand_N_Timed_Entry_Call): Remove single_entry case.
1539 * exp_disp.adb (Make_Disp_Asynchronous_Select_Body): Remove
1541 (Make_Disp_Timed_Select_Body): Likewise.
1542 * rtsfind.ads (RE_Timed_Protected_Single_Entry_Call): Remove.
1543 * s-tposen.adb (Send_Program_Error, PO_Do_Or_Queue): Remove
1545 (Wakeup_Entry_Caller): Remove Self_ID and New_State parameters.
1546 (Wait_For_Completion_With_Timeout): Remove.
1547 (Protected_Single_Entry_Call): Remove Mode parameter
1548 (always Simple_Call).
1549 (Service_Entry): Remove Self_Id constant (not used anymore).
1550 (Timed_Protected_Single_Entry_Call): Remove.
1551 * s-tposen.ads (Timed_Protected_Single_Entry_Call): Remove.
1552 (Protected_Single_Entry_Call): Remove Mode parameter.
1554 2014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
1556 * einfo.adb (Get_Pragma): Handle the retrieval of pragma Refined_Post.
1557 * einfo.ads (Get_Pragma): Update the comment on special pragmas
1558 handled by this routine.
1559 * sem_prag.adb (Analyze_Pragma): Add a legal pragma Refined_Post
1560 to the contract of the related subprogram body.
1561 * sem_util.adb (Add_Contract_Item): Handle the insertion of
1562 pragma Refined_Post into the contract of a subprogram body.
1563 * sinfo.ads Update the documentation of node N_Contract.
1564 * sem_res.adb (Resolve_Entity_Name): Add a guard
1565 to detect abstract states and variables only when checking the
1566 SPARK 2014 rules concerning volatile object placement.
1568 2014-01-29 Ed Schonberg <schonberg@adacore.com>
1570 * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): within an instance,
1571 null is compatible with any access type.
1573 2014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
1575 * sem_util.adb (Find_Placement_In_State_Space): Assume that the default
1576 placement is not in a package.
1578 2014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
1580 * sem_util.adb (Has_Enabled_Property): Compare the character field of
1583 2014-01-29 Robert Dewar <dewar@adacore.com>
1585 * sem_intr.adb, a-ztexio.ads, sinfo.ads, sem_res.adb, gnatlink.adb,
1586 vms_conv.adb, a-except.ads, a-except-2005.ads, a-teioed.adb,
1587 sem_warn.ads, treepr.ads, erroutc.ads, a-excach.adb: Minor reformatting.
1589 2014-01-29 Robert Dewar <dewar@adacore.com>
1591 * sem_util.ads, sem_util.adb (In_Pragma_Expression): New function.
1592 * sem_warn.adb (Check_References): Suppress warnings if inside
1593 Initial_Condition pragma.
1595 2014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
1597 * sem_prag.adb (Check_Missing_Part_Of): List all values of
1598 State_Space_Kind for readability reasons. Do not emit an error on
1599 a private item when the enclosing package lacks aspect/pragma
1600 Abstract_State. Do not emit an error on a private package
1601 instantiation when the corresponding generic template lacks
1603 (Has_Visible_State): New routine.
1604 * sem_util.adb (Find_Placement_In_State_Space): The visible
1605 declarations of any kind of child units in general act as proper
1608 2014-01-29 Robert Dewar <dewar@adacore.com>
1610 * a-except-2005.adb, a-except.adb, a-excpol-abort.adb, a-exstat.adb,
1611 ali.adb, a-numaux.ads, a-numaux-darwin.ads, a-numaux-libc-x86.ads,
1612 a-numaux-vms.ads, a-numaux-vxworks.ads, a-numaux-x86.ads, aspects.ads,
1613 a-taside.adb, a-teioed.adb, a-textio.adb, a-textio.ads, atree.adb,
1614 atree.ads, a-witeio.adb, a-witeio.ads, a-wtedit.adb, a-ztedit.adb,
1615 a-ztexio.adb, bcheck.adb, binde.adb, checks.adb, comperr.adb,
1616 cstand.adb, debug_a.adb, einfo.ads, errout.adb, erroutc.adb,
1617 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb,
1618 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, exp_dbug.adb,
1619 exp_disp.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_util.adb,
1620 freeze.adb, frontend.adb, g-comlin.ads, g-mbdira.adb, gnat1drv.adb,
1621 gprep.adb, g-spipat.adb, i-cpp.ads, i-vxwork.ads, i-vxwork-x86.ads,
1622 krunch.ads, layout.adb, lib-load.adb, lib-writ.adb, lib-writ.ads,
1623 live.adb, namet.ads, osint.adb, osint-c.adb, output.ads, par.adb,
1624 par-ch10.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
1625 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-prag.adb,
1626 par-sync.adb, par-tchk.adb, par-util.adb, prj.adb, repinfo.adb,
1627 rtsfind.adb, s-arit64.adb, s-asthan-vms-alpha.adb,
1628 s-asthan-vms-ia64.adb, s-bignum.adb, scans.adb, scng.adb, s-dimmks.ads,
1629 sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb,
1630 sem_ch12.adb, sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb,
1631 sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_disp.adb, sem_elab.adb,
1632 sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_res.adb,
1633 sem_type.adb, sem_util.adb, sem_warn.adb, set_targ.adb, s-fatgen.adb,
1634 s-fatgen.ads, s-fileio.adb, s-imgcha.adb, s-imgrea.adb, sinfo.ads,
1635 sinput-c.adb, snames.ads-tmpl, s-os_lib.adb, sprint.adb,
1636 s-regpat.adb, s-secsta.adb, s-stalib.ads,
1637 s-stchop.adb, s-stoele.ads, stand.ads, s-taprop-solaris.adb,
1638 s-tasdeb-vms.adb, s-tasini.adb, s-tassta.adb, s-valdec.adb,
1639 s-valuti.adb, s-wchjis.adb, s-wchwts.adb, system.ads, system-vms_64.ads,
1640 system-vms-ia64.ads, treepr.adb, types.ads, uintp.adb, uname.adb,
1641 urealp.adb, usage.adb, vxaddr2line.adb: Minor reformatting.
1643 2014-01-29 Robert Dewar <dewar@adacore.com>
1645 * expander.adb: Minor reformatting.
1647 2014-01-29 Javier Miranda <miranda@adacore.com>
1649 * exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to
1652 2014-01-29 Javier Miranda <miranda@adacore.com>
1654 * exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code
1655 that checks if an interface types defines the predefined "="
1656 function because the compiler was erroneously not generating the
1657 predefined "=" primitive as soon as the name of some interface
1658 primitive is "=" (formals were not checked).
1660 2014-01-29 Ed Schonberg <schonberg@adacore.com>
1662 * expander.adb (Expander): In GNATprove mode, do not process
1663 transient scopes: they are in general not created in this mode,
1664 and an attempt to examine them will lead to constraint errors when
1665 processing configuration pragmas that have analyzable expressions.
1667 2014-01-29 Vincent Celier <celier@adacore.com>
1669 * clean.adb (Gnatclean): Fail if main project is an aggregate
1670 project or if there is an aggregate library project in the
1672 * gnatcmd.adb: Fail if the main project is an aggregate project
1673 or if there is an aggegate library project in the project tree.
1674 * make.adb (Initialize): : Fail if main project is an aggregate
1675 project or if there is an aggregate library project in the
1677 * makeutl.ads (Aggregate_Libraries_In): New Boolean function.
1678 * prj-makr.adb (Initialize): Fail if the main project is an
1679 aggregate project or an aggregate library project.
1681 2014-01-29 Vincent Celier <celier@adacore.com>
1683 * prj-part.adb (Check_Import_Aggregate): New procedure
1684 to check if an imported project is an aggregate project.
1685 (Parse_Single_Project): Call Check_Import_Aggregate
1686 * projects.texi: Document that aggregate projects cannot be
1687 extended or imported.
1689 2014-01-29 Robert Dewar <dewar@adacore.com>
1691 * exp_ch9.adb, sem_ch7.ads, s-regexp.adb, sem_ch13.adb: Minor
1692 reformatting and code clean up.
1693 * gnat_ugn.texi: Add documentation section on Atomic Variables
1696 2014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
1698 * einfo.adb Flag264 is now unused.
1699 (Has_Body_References): Removed.
1700 (Set_Has_Body_References): Removed.
1701 (Write_Entity_Flags): Remove the output for flag Has_Body_References.
1702 * einfo.ads Update the comment on usage of attribute
1703 Body_References. Remove attribute Has_Body_References and its
1705 (Has_Body_References): Removed along with pragma Inline.
1706 (Set_Has_Body_References): Removed along with pragma Inline.
1707 * sem_prag.adb (Analyze_Global_Item): Move the call to
1708 Record_Possible_Body_Reference in the state related checks
1709 section. Add a comment intended function.
1710 (Analyze_Input_Output): Move the call to Record_Possible_Body_Reference
1711 in the state related checks section. Add a comment intended function.
1712 (Analyze_Refinement_Clause): Cleanup the illegal body reference
1713 reporting. Add a comment on timing of error reporting.
1714 (Record_Possible_Body_Reference): Reimplement the routine.
1716 2014-01-29 Vincent Celier <celier@adacore.com>
1718 * makeutl.adb (Mains.Find_File_Add_Extension): Only look for specs for
1719 unit-based languages.
1720 (Mains.Complete_Mains.Do_Complete): Use the source file project
1721 tree when calling Find_File_Add_Extension. Use the correct
1722 project name when reporting an error.
1724 2014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
1726 * aspects.adb Add an entry for aspect Part_Of in table
1728 * aspects.ads Add an entry for aspect Part_Of in tables Aspect_Id,
1729 Aspect_Argument, Aspect_Names and Aspect_Delay.
1730 * atree.h Define Elist9.
1731 * atree.adb (Elist9): New routine.
1732 (Set_Elist9): New routine.
1733 * atree.ads (Elist9): New routine.
1734 (Set_Elist9): New routine.
1735 * einfo.adb Add Part_Of_Constituents and Encapsulating_State to
1736 the list of node usage. Remove Refined_State from the list of
1738 (Encapsulating_State): New routine.
1740 Handle pragma Part_Of; (Part_Of_Constituents): New routine.
1741 (Refined_State): Removed.
1742 (Set_Encapsulating_State): New routine.
1743 (Set_Part_Of_Constituents): New routine.
1744 (Set_Refined_State): Removed.
1745 (Write_Field9_Name): Add an entry
1746 for Part_Of_Constituents (Write_Field10_Name): Add an entry for
1747 Encapsulating_State. Remove the entry for Refined_State.
1748 * einfo.ads Add new attributes Encapsulating_State
1749 and Part_Of_Constituents alond with their usage in
1750 entities. Remove attribute Refined_State along with its
1752 (Encapsulating_State): New routine and
1753 pragma Inline. (Get_Pragma): Update the comment on usage.
1754 (Part_Of_Constituents): New routine and pragma Inline.
1755 (Refined_State): Removed along with pragma Inline.
1756 (Set_Encapsulating_State): New routine and pragma Inline.
1757 (Set_Part_Of_Constituents): New routine and pragma Inline.
1758 (Set_Refined_State): Removed along with pragma Inline.
1759 * par-prag.adb Pragma Part_Of does not need any special processing
1761 * sem_ch3.adb (Analyze_Declarations): Remove local variables
1762 Body_Id and Prag. Call separate routines to analyze the
1763 contract of a package [body].
1764 (Analyze_Object_Contract):
1765 Update the comment on usage. Remove local variables
1766 Items and Nam. Use Get_Pragma rather than traversing the
1767 classification list. Verify whether the lack of indicator
1768 Part_Of agrees with the placement of the variable in state space.
1769 (Analyze_Object_Declaration): Initialize the encapsulating state
1770 of a variable. (Requires_State_Refinement): Moved to sem_util.
1771 * sem_ch7.adb (Analyze_Package_Body_Contract): New routine.
1772 (Analyze_Package_Contract): New routine.
1773 * sem_ch7.ads (Analyze_Package_Body_Contract): New routine.
1774 (Analyze_Package_Contract): New routine.
1775 * sem_ch10.adb (Decorate_State): Initialize the encapsulating
1776 state and Part_Of constituents.
1777 * sem_ch13.adb (Analyze_Aspect_Specifications):
1778 Add processing for aspect Part_Of. Update all
1779 calls to Decorate_Delayed_Aspect_And_Pragma.
1780 (Check_Aspect_At_Freeze_Point): Aspect Part_Of does
1781 not need any special processing at freeze time.
1782 (Decorate_Delayed_Aspect_And_Pragma): Renamed to
1783 Decorate_Aspect_And_Pragma. Add formal parameter Delayed and
1784 update the associated comment.
1785 * sem_prag.adb Add an entry for pragma Part_Of in table Sig_Flags.
1786 (Analyze_Abstract_State): Add new global variable State_Id. Remove
1787 local constants Errors and Loc. Remove local variables Is_Null
1788 and State_Nam. Create the entity of the abstract state on the
1789 spot, before all remaining checks are performed. Verify that a
1790 missing Part_Of option agrees with the placement of the abstract
1791 state within the state space.
1792 (Analyze_Depends_In_Decl_Part):
1793 Add new global variables Constits_Seen and States_Seen. Check
1794 that a state and a corresponding constituent do not appear
1795 in pragma [Refined_]Depends.
1796 (Analyze_Global_In_Decl_Part):
1797 Add new global variables Constits_Seen and States_Seen. Check
1798 that a state and a corresponding constituent do not appear
1799 in pragma [Refined_]Global.
1800 (Analyze_Global_Item):
1801 Remove the now obsolete code that deals with Part_Of.
1802 Add the entity of the global item to the list of processed
1803 items. (Analyze_Initializes_In_Decl_Part): Add new global
1804 variables Constits_Seen and States_Seen. Check that a state
1805 and a corresponding constituent do not appear in pragma
1807 (Analyze_Initialization_Item): Add the entity
1808 of the initialization item to the list of processed items.
1809 (Analyze_Input_Item): Add the entity of the initialization
1810 item to the list of processed items.
1811 (Analyze_Input_Output):
1812 Remove the now obsolete code that deals with Part_Of. Add the
1813 entity of the input/output to the list of processed items.
1814 (Analyze_Part_Of): New routine.
1815 (Analyze_Part_Of_Option): Remove
1816 local constant Par_State. Add local constant Encaps and local
1817 variables Encaps_Id and Legal. Use Analyze_Part of to analyze
1818 the option. Turn the related state into a Part_Of constituent
1819 if the option is legal.
1820 (Analyze_Pragma): Add processing
1822 (Analyze_Refined_State_In_Decl_Part):
1823 Remove global constants Pack_Body and Spec_Id. Remove
1824 global variables Abstr_States and Hidden_States. Add new
1825 global variables Available_States, Body_Id, Body_States and
1826 Spec_Id. Add new local constant Body_Decl. Reimplement the
1827 logic that extracts the states available for refinement from
1828 the related package and the body hidden states of the said
1830 (Analyze_Refinement_Clause): Add local variable Part_Of_Constits.
1831 (Check_Applicable_Policy): Alphabetize body.
1832 (Check_Dependency_Clause): Replace Refined_State
1833 with Encapsulating_State.
1834 (Check_Matching_Constituent):
1835 Reimplement the logic that determines whether an item is a valid
1836 / invalid constituent of the current refined state. Return when
1837 a construct does not denote a valid abstract state. Extract the
1838 list of Part_Of constituents for further analysis. Check that all
1839 Part_Of constituents of a state have been used in its refinement.
1840 (Check_Matching_State): Update the comment on usage. Operate
1841 on the list of available states.
1842 (Check_Missing_Part_Of): New routine.
1843 (Check_Refined_Global_Item): Replace Refined_State
1844 with Encapsulating_State.
1845 (Check_State_And_Constituent_Use): New routine.
1846 (Create_Abstract_State): New routine.
1847 (Is_Matching_Input): Replace Refined_State with Encapsulating_State.
1848 (Is_Part_Of): Removed.
1849 (Collect_Body_States): New routine.
1850 (Collect_Constituent): Replace Refined_State with Encapsulating_State.
1851 (Collect_Hidden_States): Removed.
1852 (Report_Unrefined_States): Change the profile of the procedure along
1853 with the comment on usage.
1854 (Report_Unused_Constituents): New routine.
1855 (Report_Unused_Hidden_States): Removed.
1856 (Report_Unused_States): New routine.
1857 * sem_prag.ads (Check_Missing_Part_Of): New routine.
1858 * sem_util.adb (Add_Contract_Item): Pragma Part_Of can now
1859 appear in the classification pragmas of a package instantiation
1861 (Find_Placement_In_State_Space): New routine.
1862 (Is_Child): Removed.
1863 (Is_Child_Or_Sibling): Remove formal
1864 parameter Private_Child. Remove the private child checks.
1865 (Requires_State_Refinement): Moved from sem_ch3.
1866 * sem_util.ads Add new type State_Space_Kind along with
1867 comment on its usage and values.
1868 (Add_Contract_Item): Update the comment on usage.
1869 (Find_Body_Discriminal): Alphabetize spec.
1870 (Find_Placement_In_State_Space): New routine.
1871 (Is_Child_Or_Sibling): Remove formal parameter Private_Child
1872 and update the comment on usage.
1873 (Requires_State_Refinement): Moved from sem_ch3.
1874 * sinfo.ads: Update the documentation of N_Contract.
1875 * snames.ads-tmpl The predefined name for Part_Of is now used
1876 to denote a pragma. Add Pragma_Id for Part_Of.
1878 2014-01-29 Emmanuel Briot <briot@adacore.com>
1880 * s-regexp.adb (Create_Secondary_Table): Automatically grow the state
1882 (Dump): New subprogram.
1884 2014-01-29 Tristan Gingold <gingold@adacore.com>
1886 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Add
1887 Expand_Entry_Declaration to factorize code.
1889 2014-01-29 Ed Schonberg <schonberg@adacore.com>
1891 * checks.adb: minor clarification.
1892 * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit
1893 search for primitive operations to the entities that immediately
1894 follow the type declaration.
1896 2014-01-29 Tristan Gingold <gingold@adacore.com>
1898 * exp_ch9.adb (Build_Protected_Entry): Do not call
1899 Complete_Entry_Body anymore.
1900 * rtsfind.ads (RE_Complete_Single_Entry_Body): Remove.
1901 * s-tposen.ads, s-tposen.adb (Complete_Single_Entry_Body): Remove.
1903 2014-01-29 Pierre-Marie Derodat <derodat@adacore.com>
1905 * s-os_lib.adb, s-os_lib.ads (Normalize_Pathname): Return an empty
1906 string when the Name input bigger than allowed. Adapt the function
1909 2014-01-29 Ed Schonberg <schonberg@adacore.com>
1911 * checks.adb (Install_Null_Excluding_Check): Do not emit warning
1912 if expression is within a case_expression of if_expression.
1914 2014-01-29 Robert Dewar <dewar@adacore.com>
1916 * exp_ch9.adb, inline.ads: Minor reformatting.
1918 2014-01-29 Tristan Gingold <gingold@adacore.com>
1920 * exp_ch9.adb (Is_Exception_Safe): Return true if no exceptions.
1922 2014-01-29 Yannick Moy <moy@adacore.com>
1924 * inline.ads (Pending_Body_Info): Add SPARK_Mode and
1925 SPARK_Mode_Pragma components to be able to analyze generic
1927 * sem_ch12.adb (Analyze_Package_Instantiation,
1928 Inline_Instance_Body, Need_Subprogram_Instance_Body,
1929 Load_Parent_Of_Generic): Pass in SPARK_Mode from instantiation
1930 for future analysis of the instance.
1931 (Instantiate_Package_Body,
1932 Instantiate_Subprogram_Body, Set_Instance_Inv): Set SPARK_Mode
1933 from instantiation to analyze the instance.
1935 2014-01-29 Robert Dewar <dewar@adacore.com>
1937 * sem_ch7.adb, sem_prag.adb, sem_ch4.adb, sem_ch6.adb: Minor code
1940 2014-01-29 Yannick Moy <moy@adacore.com>
1942 * gnat_rm.texi: Update description of SPARK_Mode pragma.
1944 2014-01-29 Tristan Gingold <gingold@adacore.com>
1946 * exp_ch9.adb (Expand_N_Protected_Body): Remove Num_Entries.
1948 2014-01-29 Thomas Quinot <quinot@adacore.com>
1950 * sem_ch4.adb (Find_Component_In_Instance): Update comment.
1952 2014-01-29 Ed Schonberg <schonberg@adacore.com>
1954 * exp_util.adb (Build_Task_Image_Prefix): Indicate that the
1955 resulting string is an internal entity. and thus requires no
1956 initialization. This is relevant when Initialize_ Scalars is
1957 enabled, because the resultant spurious initialization may lead to
1958 secondary stack anomalies that produce a mangled name for a task.
1960 2014-01-29 Yannick Moy <moy@adacore.com>
1962 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode
1963 not inherited from spec anymore. Check consistency
1964 rules after processing of declarations.
1965 * sem_ch7.adb (Analyze_Package_Body_Helper): SPARK_Mode not inherited
1966 from spec anymore. Check consistency rules after processing of
1968 (Analyze_Package_Declaration): Set SPARK_Mode only for non-generic
1970 * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): Implement new
1973 2014-01-27 Robert Dewar <dewar@adacore.com>
1975 * sem_res.adb (Resolve_Comparison_Op): Add type name/location
1977 (Resolve_Range): Add type name/location to unordered msg.
1979 2014-01-27 Claire Dross <dross@adacore.com>
1981 * a-cofove.adb/s (Copy): Add precondition so that Copy (Source,
1982 Capacity) is only called with Capacity >= Length (Source) and
1983 Capacity in Capacity_Range.
1984 * a-cfdlli.adb/s, a-cfhase.adb/s, a-cfhama.adb/s, a-cforse.adb/s,
1985 a-cforma.adb/s (Copy): Add precondition so that Copy (Source, Capacity)
1986 is only called with Capacity >= Source.Capacity. Raise Capacity_Error
1987 in the code is this is not the case.
1989 2014-01-27 Thomas Quinot <quinot@adacore.com>
1991 * sem_ch4.adb (Analyze_Selected_Component): Fix handling of
1992 selected component in an instance where the component of the
1993 actual is not visibile at instantiation.
1995 2014-01-27 Ed Schonberg <schonberg@adacore.com>
1997 * sem_ch6.adb: sem_ch6.adb (Set_Actual_Subtypes): If the type
1998 has a dynamic predicate, generate freeze node for Actual_Subtype
1999 at once, because the declaration of the corresponding predicate
2000 function will make reference to it.
2002 2014-01-27 Tristan Gingold <gingold@adacore.com>
2004 * exp_ch7.adb, exp_ch9.adb: Adjust comments.
2006 2014-01-27 Robert Dewar <dewar@adacore.com>
2008 * exp_ch4.adb (Expand_N_Op_Expon): Remove unsigned type test
2009 for 2**X optimization.
2011 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2013 * a-suenst.adb: strings.utf_encoding.strings (Decode): Check
2014 explicitly whether value is in range of Character, because the
2015 library is typically compiled with range checks disabled, and
2016 we cannot rely on the implicit check on the argument of 'Val.
2018 2014-01-27 Vincent Celier <celier@adacore.com>
2020 * a-ciorma.adb, a-cihama.adb (Assign): Copy the Source to the Target,
2021 not the Target to itself.
2023 2014-01-27 Robert Dewar <dewar@adacore.com>
2025 * vms_conv.ads, ali.adb, sem_ch6.ads, opt.ads, vms_cmds.ads: Minor
2026 changes to avoid incorrect use of unordered enum types.
2028 2014-01-27 Thomas Quinot <quinot@adacore.com>
2030 * sem_ch4.adb: Minor reformatting.
2032 2014-01-27 Robert Dewar <dewar@adacore.com>
2034 * scn.adb (Check_End_Of_Line): Removed.
2035 (Error_Long_Line): Removed.
2036 (Determine_License): Use versions of above routines from Scanner.
2037 * scng.adb (Check_End_Of_Line): Moved to spec.
2038 (Error_Long_Line): Removed, no longer used.
2039 * scng.ads (Check_End_Of_Line): Moved here from body.
2041 2014-01-27 Tristan Gingold <gingold@adacore.com>
2043 * exp_ch7.adb (Build_Cleanup_Statements): Call
2044 Build_Protected_Subprogram_Call_Cleanup to insert the cleanup
2046 * exp_ch9.adb (Build_Protected_Subprogram_Body): Likewise.
2047 Remove Service_Name variable.
2048 (Build_Protected_SUbprogam_Call_Cleanup): New procedure that
2049 factorize code from the above subprograms.
2050 * exp_ch9.ads (Build_Protected_Subprogram_Call_Cleanup): New procedure.
2052 2014-01-27 Hristian Kirtchev <kirtchev@adacore.com>
2054 * einfo.adb (Has_Option): Reimplemented.
2055 * sem_prag.adb (Analyze_Refinement_Clause): Add global
2056 variables AR_Constit, AW_Constit, ER_Constit, EW_Constit,
2057 External_Constit_Seen and State. Add local variables Body_Ref,
2058 Body_Ref_Elmt and Extra_State. Reimplement part of the logic to
2059 avoid a cumbersome while pool. Verify the legality of an external
2060 state and relevant properties.
2061 (Check_External_Property): New routine.
2062 (Check_Matching_State): Remove parameter profile
2063 and update comment on usage.
2064 (Collect_Constituent): Store the
2065 relevant external property of a constituent.
2066 * sem_util.adb (Async_Readers_Enabled): Update the call to
2067 Has_Enabled_Property.
2068 (Async_Writers_Enabled): Update the call to Has_Enabled_Property.
2069 (Effective_Reads_Enabled): Update the call to Has_Enabled_Property.
2070 (Effective_Writes_Enabled): Update the call to Has_Enabled_Property.
2071 (Has_Enabled_Property): Rename formal parameter Extern to State_Id.
2072 Update comment on usage. Reimplement the logic to recognize the various
2073 formats of properties.
2075 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2077 * par-ch5.adb: Minor reformatting.
2079 2014-01-27 Tristan Gingold <gingold@adacore.com>
2081 * s-tposen.ads: Harmonize style and comments.
2083 2014-01-27 Vincent Celier <celier@adacore.com>
2085 * projects.texi: Document that shared library projects, by
2086 default, cannot import projects that are not shared library
2089 2014-01-27 Robert Dewar <dewar@adacore.com>
2091 * sem_ch8.adb (Find_Selected_Component): Use Replace instead
2094 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2096 * a-suenco.adb, a-suenst.adb (Decode): Raise encoding error if
2097 any other exception is raised.
2098 (Convert): If both Input_Scheme and Output_Scheme are UTF_8 it is
2099 still necessary to perform a conversion in order to remove overlong
2102 2014-01-27 Robert Dewar <dewar@adacore.com>
2104 * exp_smem.adb: Minor reformatting.
2106 2014-01-27 Thomas Quinot <quinot@adacore.com>
2108 * a-calfor.ads: Fix incorrect reference to operator "-" in comment.
2110 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2112 * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, relocate
2113 nodes for operands to the original node for the call, to preserve
2114 Original_Node pointers within the resolved operands, given that
2115 they may have been rewritten as well. Previous approach copied
2116 the operands into a new tree and lost those pointers.
2118 2014-01-27 Claire Dross <dross@adacore.com>
2121 * a-cofove.adb, a-cofove.ads: Add Strict_Equal function to the API.
2123 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2125 * sem_util.adb (Check_Internal_Protected_Use): A call through
2126 an anonymous access parameter of the current protected function
2127 is not a potential modification of the current object.
2129 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2131 * a-cobove.adb (Reserve_Capacity): Procedure raises
2132 Capacity_Error, not Constraint_Error, when request cannot be
2135 2014-01-27 Vincent Celier <celier@adacore.com>
2137 * a-coorma.adb, a-cohama.adb (Assign): Copy the Source to the Target,
2138 not the Target to itself.
2140 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2142 * exp_ch4.adb (Expand_Concatenate): If the target of the
2143 concatenation is a library-level entity, always use the off-line
2144 version of concatenation, regardless of optimization level. This
2145 is space-efficient, and prevents linking problems when some
2146 units are compiled with different optimization levels.
2148 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2150 * sem_ch5.adb: Code clean up.
2152 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2154 * par-ch5.adb (P_Iterator_Specification): Improve error recovery
2155 when an array or container iterator includes a subtype indication,
2156 which is only legal in an element iterator.
2158 2014-01-27 Thomas Quinot <quinot@adacore.com>
2160 * exp_ch7.adb: Minor reformatting.
2162 2014-01-27 Robert Dewar <dewar@adacore.com>
2164 * opt.adb (SPARK_Mode): Default for library units is None rather
2166 * opt.ads: Remove AUTO from SPARK_Mode_Type SPARK_Mode_Type is
2168 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Remove AUTO
2170 * snames.ads-tmpl (Name_Auto): Removed, no longer used.
2172 2014-01-27 Robert Dewar <dewar@adacore.com>
2174 * par-ch5.adb (P_Sequence_Of_Statements): Make entry in
2175 Suspicious_Labels table if we have identifier; followed by loop
2177 * par-endh.adb (Evaluate_End_Entry): Search Suspicious_Labels table.
2178 * par.adb (Suspicious_Labels): New table.
2180 2014-01-27 Robert Dewar <dewar@adacore.com>
2182 * exp_aggr.adb (Check_Bounds): Reason is range check, not
2185 2014-01-27 Yannick Moy <moy@adacore.com>
2187 * get_spark_xrefs.adb (Get_SPARK_Xrefs): Accept new type 'c' for
2189 * lib-xref-spark_specific.adb (Is_Global_Constant): Remove useless
2191 (Add_SPARK_Xrefs): Include references to constants.
2192 * spark_xrefs.ads Document new character 'c' for references to
2195 2014-01-27 Thomas Quinot <quinot@adacore.com>
2197 * exp_smem.adb (Add_Write_After): For a function call, insert write as
2198 an after action in a transient scope.
2200 2014-01-27 Thomas Quinot <quinot@adacore.com>
2202 * exp_smem.adb (Expand_Shared_Passive_Variable): For a reference
2203 to a shared variable as an OUT formal in a call to an init proc,
2204 the 'Read call must be emitted after, not before, the call.
2206 2014-01-27 Robert Dewar <dewar@adacore.com>
2208 * gnat_rm.texi: Remove mention of AUTO mode for SPARK_Mode pragma.
2210 2014-01-27 Robert Dewar <dewar@adacore.com>
2212 * a-wichha.adb (Character_Set_Version): Change to output proper
2215 2014-01-27 Hristian Kirtchev <kirtchev@adacore.com>
2217 * einfo.adb (Is_Input_Only_State): Removed.
2218 (Is_Non_Volatile_State): Removed.
2219 (Is_Output_State): Removed.
2220 * einfo.ads (Is_Input_Only_State): Remove attribute and
2221 subprogram. Update related entity.
2222 (Is_Non_Volatile_State):
2223 Remove attribute and subprogram. Update related entity.
2224 (Is_Output_State): Removed attribute and subprogram. Update
2226 * exp_ch6.adb (Expand_Subprogram_Contract): Update comment on
2228 * sem_ch3.adb (Analyze_Declarations): Analyze the contract of
2229 an object, not just variables.
2230 (Analyze_Object_Contract): New routine.
2231 (Analyze_Variable_Contract): Removed.
2232 (Process_Discriminants): Detect an illegal use of volatile
2233 discriminant in SPARK mode.
2234 * sem_ch5.adb (Analyze_Iterator_Specification):
2235 Detect an illegal use of volatile loop variable.
2236 (Analyze_Loop_Parameter_Specification): Detect an illegal use
2237 of volatile loop variable.
2238 * sem_ch6.adb (Process_Formals): Update the volatile object
2239 detection. Detect an illegal formal of mode IN OUT or OUT in
2240 SPARK mode. Enhance the error messages with references.
2241 * sem_ch12.adb (Instantiate_Object): Update the volatile object
2242 detection. Enhance the error messages with references.
2243 * sem_prag.adb (Analyze_Abstract_State): Enhance the error
2244 messages with references.
2245 (Analyze_Contract_Case): Enhance the error messages with references.
2246 (Analyze_External_Property): Call Check_Duplicate_Property to process
2247 an external property.
2248 (Analyze_External_Property_In_Decl_Part): New routine.
2249 (Analyze_External_State_In_Decl_Part): Removed.
2250 (Analyze_Global_Item): Detect an illegal
2251 use of a volatile constant. Detect an illegal use
2252 of a variable with enabled Effective_Reads. Enhance
2253 the error messages with references. Remove obsolete
2254 checks concerning Input_Only and Output_Only states.
2255 (Analyze_Initialization_Item): Enhance the error messages
2257 (Analyze_Initializes_In_Decl_Part): Do not
2258 collect the states and variables when the initialization list
2260 (Analyze_Input_Item): Enhance the error messages with references.
2261 (Analyze_Input_Output): Enhance the error messages with references.
2262 (Analyze_Pragma): Enhance the error messages with references.
2263 (Analyze_Refinement_Clause): Code reformatting.
2264 (Analyze_Refined_Depends_In_Decl_Part):
2265 Rename global variable Global to Reg_Global and update all
2266 occurrences. Add local variables D7 and D8. Update the error
2267 messages with references. Update the call to Collect_Global_Items.
2268 (Analyze_Refined_Global_In_Decl_Part): Add local variables
2269 Has_Proof_In_State, Proof_In_Constits and Proof_In_Items. Update
2270 the call to Collect_Global_Items. Account for a Proof_In state
2271 in null / useless refinement checks. Verify the coverage of
2273 (Check_Dependency_Clause): Remove local variable
2274 Out_Constits. Remove the retrieval and removal of constituents
2275 for an Output_Only state. Remove the reporting of unused
2276 Output_Only state constituents.
2277 (Check_Duplicate_Mode): Enhance
2278 the error message with a reference.
2279 (Check_Duplicate_Property): New routine.
2280 (Check_Duplicate_Option): Enhance the error message with a reference.
2281 (Check_External_Properties): Enhance the error message with a reference.
2282 (Check_Function_Return): Enhance the error message with a reference.
2283 (Check_In_Out_States): Update
2284 comment on usage. Add a specialized error message for Proof_In
2285 constituents. Enhance the error message with a reference.
2286 (Check_Input_States): Update comment on usage. Account for
2287 possible Proof_In constituents. Enhance the error message
2289 (Check_Matching_Constituent): Enhance the error message with a
2291 (Check_Matching_State): Enchance the error message with a reference.
2292 (Check_Mode): Add local variable From_Global. Update the call to
2293 Find_Mode. Emit more precise error messages concerning extra items
2294 (Check_Mode_Restriction_In_Enclosing_Context): Consider
2295 pragma Refined_Global. Enhance the error message with a
2297 (Check_Mode_Restriction_In_Function): Enhance the error message with
2299 (Check_Output_States): Update comment on usage. Add local variable
2300 Posted. Account for possible Proof_In constituents. Produce a detailed
2301 list of missing constituents.
2302 (Check_Proof_In_States): New routine.
2303 (Check_Refined_Global_Item): Handle Proof_In
2304 constituents. Enchance the error message with a reference.
2305 (Collect_Global_Items): Add formal parameters Proof_In_Items
2306 and Has_Proof_In_State. Update the comment on usage. Account
2308 (Create_Or_Modify_Clause): Enchance
2309 the error message with a reference.
2311 formal parameter From_Global. Update the comment on usage.
2312 Detect when the mode is governed by pragma [Refined_]Global.
2313 (Output_Constituents): Removed.
2314 (Report_Extra_Constituents):
2315 Report extra Proof_In constituents.
2316 (Report_Unused_Constituents): Removed.
2317 (Usage_Error): Code reformatting. Enhance the error
2318 messages with reference.
2319 * sem_prag.ads (Analyze_External_Property_In_Decl_Part): New routine.
2320 (Analyze_External_State_In_Decl_Part): Removed.
2321 * sem_res.adb (Resolve_Actuals): Update the volatile object
2322 detection. Enhance the error message with a reference.
2323 (Resolve_Entity_Name): Update the volatile object
2324 detection. Enhance the error message with a reference.
2325 * sem_util.adb (Is_Refined_State): Add a guard to avoid a crash.
2326 (Is_SPARK_Volatile_Object): New routine.
2327 (Has_Volatile_Component): New routine.
2328 * sem_util.ads (Is_Delegate): Alphabetized.
2329 (Is_SPARK_Volatile_Object): New routine.
2330 (Has_Volatile_Component): New routine.
2331 * snames.ads-tmpl: Remove names Name_Input_Only and Name_Output_Only.
2333 2014-01-27 Ed Schonberg <schonberg@adacore.com>
2335 * sem_attr.adb: Resolve fully prefix of 'Update.
2337 2014-01-27 Ben Brosgol <brosgol@adacore.com>
2339 * gnat_rm.texi: Minor clarifications.
2341 2014-01-27 Robert Dewar <dewar@adacore.com>
2343 * sem_elab.adb (Check_Internal_Call_Continue): Avoid complaining
2344 about call that is generated as part of an Initial_Condition
2346 * sem_prag.adb: Minor spelling correction.
2348 2014-01-27 Robert Dewar <dewar@adacore.com>
2350 * sem_prag.adb (Set_Convention_From_Pragma): Check that
2351 convention Ghost can only apply to functions.
2352 * einfo.ads, einfo.adb (Is_Ghost_Subprogram): Add clarifying comment.
2354 2014-01-27 Robert Dewar <dewar@adacore.com>
2356 * gnat_ugn.texi: Add Short_Enums to documentation of
2359 2014-01-27 Robert Dewar <dewar@adacore.com>
2361 * sem_prag.adb (Analyze_Input_Item): Correct check for input
2362 item in same package.
2363 * sem_util.ads, sem_util.adb (Within_Scope): New function.
2365 2014-01-26 Arnaud Charlet <charlet@adacore.com>
2367 * a-intnam-lynxos.ads, mlib-tgt-specific-lynxos.adb,
2368 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
2369 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-tpopsp-lynxos.adb,
2370 system-lynxos-ppc.ads, system-lynxos-x86.ads: Removed, no longer
2373 2014-01-25 Eric Botcazou <ebotcazou@adacore.com>
2375 * gcc-interface/Makefile.in: Fix oversight.
2377 2014-01-25 Eric Botcazou <ebotcazou@adacore.com>
2379 * gcc-interface/utils.c (convert_to_fat_pointer): Un-obfuscate the
2380 conversion from a thin pointer with a shifted value.
2381 * gcc-interface/utils2.c (gnat_build_constructor): Propagate the
2382 read-only flag from the values onto the result.
2383 (gnat_invariant_expr): Accept read-only CONSTRUCTORs.
2385 2014-01-25 Tristan Gingold <gingold@adacore.com>
2387 * gcc-interface/decl.c (gnat_to_gnu_entity): Always build a variable
2388 for E_Variable with a pragma Linker_Section.
2390 2014-01-25 Robert Dewar <dewar@adacore.com>
2392 * gcc-interface/decl.c (gnat_to_gnu_param): Make sure an Out parameter
2393 with Default_Value aspect is passed in by copy.
2395 2014-01-24 Eric Botcazou <ebotcazou@adacore.com>
2397 * set_targ.adb: Set Short_Enums.
2398 * gcc-interface/lang.opt (fshort-enums): New option.
2399 * gcc-interface/misc.c (gnat_handle_option): Handle it.
2400 (gnat_post_options): Do not modify the global settings.
2402 2014-01-24 Robert Dewar <dewar@adacore.com>
2404 * g-rannum.ads, g-rannum.adb (Random_Ordinary_Fixed): New generic
2406 (Random_Decimal_Fixed): New generic function.
2407 * s-rannum.ads: Minor comment clarifications.
2409 2014-01-24 Robert Dewar <dewar@adacore.com>
2411 * back_end.adb: Remove Short_Enums handling (handled in
2412 Ttypes/Get_Targ now) Minor added comments.
2413 * freeze.adb: Change name Short_Enums_On_Target to
2415 * get_targ.ads, get_targ.adb (Get_Short_Enums): New function.
2416 * opt.ads: Minor comment updates.
2417 * sem_ch13.adb: Change name Short_Enums_On_Target to
2419 * set_targ.adb: Set Short_Enums from gcc back end.
2420 * set_targ.ads (Short_Enums): New variable.
2421 * targparm.ads, targparm.adb: Remove Short_Enums entries (handled in
2422 Ttypes/Get_Targ now).
2423 * ttypes.ads (Target_Short_Enums): New constant boolean switch
2425 2014-01-24 Pascal Obry <obry@adacore.com>
2427 * g-sercom-mingw.adb: Fix serial port name for port number > 10.
2429 2014-01-24 Gary Dismukes <dismukes@adacore.com>
2431 * exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when
2432 comparing it with Ctrl_Arg, since Ctrl_Arg may have had qualification
2435 2014-01-24 Robert Dewar <dewar@adacore.com>
2437 * sinfo.ads, make.adb, prj-env.adb: Minor reformatting.
2439 2014-01-24 Vincent Celier <celier@adacore.com>
2441 * prj.adb (Add_Aggregated_Project): Do not add a project in
2442 the list if it is already there.
2444 2014-01-24 Yannick Moy <moy@adacore.com>
2446 * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package):
2447 Correct the search for a subrogram declaration to which a pragma is
2450 2014-01-24 Bob Duff <duff@adacore.com>
2452 * gnat_ugn.texi: Document --decimal-grouping and
2453 --based-grouping switches in gnatpp.
2455 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2457 * sinfo.ads: Documentation update.
2459 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2461 * sem_ch3.adb (Constant_Redeclaration): New declaration is
2462 illegal if previous one has an initial expression that is an
2463 aggregate expanded into assignments.
2465 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2467 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Small
2468 code reorganization to remove spurious warning on a loop with
2469 an array element iterator that has a null range.
2471 2014-01-24 Vincent Celier <celier@adacore.com>
2473 * make.adb (Binding_Phase): When setting the Ada paths, use
2474 the library ALI dir, not the object dir in libraries.
2476 2014-01-24 Yannick Moy <moy@adacore.com>
2478 * sinfo.ads: Add documentation of check flag fields.
2480 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2482 * sem_res.adb (Resolve_Actuals): If an actual is a view
2483 conversion of a discriminated object, and the formal type is
2484 discriminated and constrained, apply a discriminant check to
2487 2014-01-24 Robert Dewar <dewar@adacore.com>
2489 * prj.adb, prj-env.adb, back_end.adb: Add comment, minor code clean ups.
2491 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2493 * sem_ch3.adb (Analyze_Declarations): At the end of an
2494 appropriate declarative part, call Freeze_All from the first
2495 declaration in the scope, not from the first unfrozen one. This
2496 is necessary to apply visibility checks to entities with delayed
2497 aspects. Otherwise, in the presence of instantiations and cleanups
2498 that they may generate, the delayed aspects may be analyzed too
2499 late and produce spurious visibility errors.
2500 * sem_attr.adb: Place etype on range.
2501 * sem_ch6.adb: Documentation expression functions.
2503 2014-01-24 Robert Dewar <dewar@adacore.com>
2505 * exp_ch7.adb: Minor change of Indices to Indexes (preferred
2506 terminology in compiler).
2508 2014-01-24 Robert Dewar <dewar@adacore.com>
2510 * scans.ads: Remove Tok_Raise from Sterm, Eterm, After_SM
2511 categories, now that Ada 95 supports raise expressions.
2513 2014-01-24 Robert Dewar <dewar@adacore.com>
2515 * freeze.adb (Freeze_Enumeration_Type): Use new target parameter
2516 Short_Enums_On_Target.
2517 * sem_ch13.adb (Set_Enum_Esize): Take Short_Enums_On_Target
2519 * targparm.ads, targparm.adb: Add new target parameter Short_Enums.
2521 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2523 * sem_ch5.adb (Analyze_Iterator_Specification): If subtype
2524 indication is given explicity, check that it matches the array
2525 component type or the container element type of the domain
2528 2014-01-24 Tristan Gingold <gingold@adacore.com>
2530 * back_end.adb (Scan_Compiler_Arguments): Set Short_Enums_On_Target.
2531 * gcc-interface/misc.c (flag_short_enums): Declare.
2532 (gnat_post_options): Set it.
2534 2014-01-24 Vincent Celier <celier@adacore.com>
2536 * prj-env.adb (Ada_Objects_Path): Use Ada_Objects_Path_No_Libs
2537 to cache the result when Including_Libraries is False.
2538 * prj-env.ads (Ada_Objects_Path): Update documentation
2539 * prj.adb (Free (Project_Id)): Also free Ada_Objects_Path_No_Libs
2540 (Get_Object_Directory): Return the Library_Ali_Dir only when
2541 when Including_Libraries is True.
2542 * prj.ads (Get_Object_Directory): Fix and complete documentation
2543 (Project_Data): New component Ada_Objects_Path_No_Libs
2545 2014-01-24 Robert Dewar <dewar@adacore.com>
2547 * checks.adb (Expr_Known_Valid): Result of fpt operator never
2550 2014-01-24 Eric Botcazou <ebotcazou@adacore.com>
2552 * back_end.adb: Minor fix in comment.
2554 2014-01-24 Javier Miranda <miranda@adacore.com>
2556 * sem_ch3.adb (Check_Abstract_Overriding): Code reestructuration
2557 required to report the error in case of task types.
2559 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2561 * sem_attr.adb: Additional index checking.
2563 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2565 * sem_attr.adb (Analyze_Attribute, case 'Update): Analyze
2566 expressions in each component association, and for records note
2567 the entity in each association choice, for subsequent resolution.
2568 (Resolve_Attribute, case 'Update): Complete resolution of
2569 expressions in each component association.
2571 2014-01-24 Robert Dewar <dewar@adacore.com>
2573 * sem.adb (Sem): Avoid premature reference to Current_Sem_Unit
2574 (this was causing Is_Main_Unit_Or_Main_Unit_Spec to be set wrong,
2575 leading to wrong handling of SPARK_Mode for library units).
2577 2014-01-24 Robert Dewar <dewar@adacore.com>
2579 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set SPARK_Mode
2580 on generic instances (do not consider them to be internally
2583 2014-01-24 Doug Rupp <rupp@adacore.com>
2585 * s-osinte-android.ads (pthread_sigmask): Import sigprocmask
2586 vice pthread_sigmask.
2588 2014-01-24 Vincent Celier <celier@adacore.com>
2590 * prj.adb (Debug_Output (Str, Str2)): Output if verbosity is
2593 2014-01-24 Vincent Celier <celier@adacore.com>
2595 * prj-ext.adb (Add): Do not output anything when Silent is True,
2596 whatever the verbosity. When Source is From_External_Attribute,
2597 set the corresponding environment variable if it is not already set.
2598 * prj-ext.ads (Add): New Boolean parameter Silent, defaulted
2600 * prj-proc.adb (Process_Expression_For_Associative_Array):
2601 For attribute External, call Prj.Ext.Add with Silent set to
2602 True for the child environment, to avoid useless output in non
2605 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2607 * sem_res.adb (Set_Slice_Subtype): Handle properly a discrete
2608 range given by a subtype indication, and force evaluation of
2609 the bounds, as for a simple range.
2610 * exp_util.adb (Evaluate_Slice_Bounds): Utility to force evaluation
2611 of bounds of slice for various kinds of discrete ranges.
2612 (Evaluate_Name, Evaluate_Subtype_From_Expr): use
2613 Evaluate_Slice_Bounds.
2615 2014-01-24 Bob Duff <duff@adacore.com>
2617 * s-taskin.ads (Activator): Make this Atomic, because
2618 Activation_Is_Complete reads it, and that can be called
2619 from any task. Previously, this component was only
2620 modified by the activator before activation, and by
2621 Self after activation.
2622 * a-taside.ads, a-taside.adb (Environment_Task,
2623 Activation_Is_Complete): Implement these missing functions.
2625 2014-01-24 Doug Rupp <rupp@adacore.com>
2627 * init.c: Add a handler section for Android.
2629 2014-01-24 Arnaud Charlet <charlet@adacore.com>
2631 * i-cexten.ads (Unsigned_33..64, Unsigned_33..64): New types.
2633 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2635 * sem_ch4.adb (Operator_Check): If one operand is a
2636 Raise_Expression, set its type to that of the other operand.
2637 * sem_res.adb (Resolve_Raise_Expression): new procedure.
2638 (Resolve_Actuals): For an actual that is a Raise_Expression,
2639 set the type to that of the formal.
2640 * sem_type.adb (Find_Unique_Type): If one of the operands is a
2641 Raise_Expression, return type of the other operand.
2643 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2645 * sem_aggr.adb (Resolve_Record_Aggregate): If a scalar
2646 component of the record has a type with a default aspect, and
2647 the corresponding aggregate component is initiaized with a box,
2648 use the default value in the rewritten aggregate.
2650 2014-01-24 Tristan Gingold <gingold@adacore.com>
2652 * s-interr.ads, s-interr.adb, s-interr-hwint.adb, s-interr-vms.adb,
2653 s-interr-sigaction.adb,
2654 s-interr-dummy.adb (Install_Restricted_Handlers): Add Prio parameter.
2655 * exp_ch9.adb (Make_Initialize_Protection): Add Prio parameter
2656 to the call to Install_Restricted_Handlers.
2658 2014-01-24 Emmanuel Briot <briot@adacore.com>
2660 * prj-nmsc.adb (Check_File): Add protection when the source is
2661 not fully initialized.
2663 2014-01-24 Ed Schonberg <schonberg@adacore.com>
2665 * sem_util.adb (Is_Post_State): In a postcondition, a selected
2666 component that denotes an implicit dereference is a reference
2667 to the post state of the subprogram.
2669 2014-01-24 Robert Dewar <dewar@adacore.com>
2671 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode OFF
2672 for generated subprograms.
2673 (Analyze_Subprogram_Specification): Ditto.
2675 2014-01-24 Vincent Celier <celier@adacore.com>
2677 * prj-dect.adb (Check_Attribute_Allowed): Detect more forbidden
2678 attributes in package Builder of aggregate and aggregate library
2680 * prj-nmsc.adb (Process_Naming_Scheme.Check.Check_Aggregate):
2681 Remove procedure (Process_Naming_Scheme.Check.Check_Aggregated):
2682 Remove parameters. Change error message from "... externally
2683 build library ..." to "... externally built project ...".
2684 (Process_Naming_Scheme.Check): Do not do any check in aggregate
2685 project, as attribute Library_Dir and Library_Name have already
2686 been detected as forbidden.
2688 2014-01-24 Vincent Celier <celier@adacore.com>
2690 * prj-env.adb (Find_Project): If cached project path is not in
2691 project directory, look in current directory first and use cached
2692 project path only if project is not found in project directory.
2694 2014-01-24 Robert Dewar <dewar@adacore.com>
2696 * sem_util.adb, lib-xref.adb: Correct false positive warnings.
2698 2014-01-24 Vincent Celier <celier@adacore.com>
2700 * projects.texi: Document that aggregate projects are only
2701 supported by gprbuild, but not by gnatmake. Document that the
2702 only attribute Switches in package Binder of aggregate projects
2703 will be ignored if its index is not others. Document that
2704 attribute Global_Config_File is allowed in package Binder of
2707 2014-01-24 Robert Dewar <dewar@adacore.com>
2709 * sem_prag.adb: Minor code reorganization.
2710 * sem_util.adb: Minor fix of potential latent bug in Is_LHS.
2712 2014-01-24 Pascal Obry <obry@adacore.com>
2714 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Excluded_Patterns
2715 attribute definition.
2717 2014-01-24 Vincent Celier <celier@adacore.com>
2719 * makeutl.adb (Queue.Insert_No_Roots): In gprbuild, do not put
2720 in the Queue the same source (same path, same multi-source index)
2721 from the same project file, to avoid compiling several times
2724 2014-01-24 Eric Botcazou <ebotcazou@adacore.com>
2726 * einfo.ads (First_Rep_Item): Remove obsolete stuff.
2727 (Has_Gigi_Rep_Item): Likewise.
2728 * sem_prag.adb (Analyze_Pragma) <Pragma_Linker_Section>: Do not set
2729 Has_Gigi_Rep_Item for objects.
2730 * gcc-interface/decl.c (prepend_one_attribute_to): Rename into...
2731 (prepend_one_attribute): ...this.
2732 (prepend_one_attribute_pragma): New function extracted from...
2733 (prepend_attributes): ...here. Swap the parameters for consistency.
2734 (gnat_to_gnu_entity): Adjust calls to prepend_one_attribute_to and to
2736 <object>: Deal with a pragma Linker_Section on a constant
2737 or variable. <E_Function>: Deal with a pragma Linker_Section
2739 (get_minimal_subprog_decl): Adjust calls to prepend_one_attribute_to.
2741 2014-01-24 Vincent Celier <celier@adacore.com>
2743 * opt.ads: Minor comment update.
2745 2014-01-24 Robert Dewar <dewar@adacore.com>
2747 * sem_prag.adb (Analyze_Input_Output): Add missing error check
2749 * sem_util.adb (Is_Refined_State): Add defense against junk
2752 2014-01-24 Pascal Obry <obry@adacore.com>
2754 * projects.texi: Removes Build_Slaves attribute documentation.
2756 2014-01-23 Robert Dewar <dewar@adacore.com>
2758 * opt.adb (Register_Opt_Config_Switches): Save SPARK_Mode_Pragma
2761 2014-01-23 Ed Schonberg <schonberg@adacore.com>
2763 * sem_util.adb (Is_Potentially_Unevaluated): Predicate only
2764 applies to expressions that come from source.
2765 * sem_attr.adb (Analyze_Attribute, case 'Old): Improve error
2767 (Analyze_Attribute, case 'Loop_Entry): Apply SPARK 2014 legality
2768 rule regarding potentially unevaluated expressions, to prefix
2771 2014-01-23 Ed Schonberg <schonberg@adacore.com>
2773 * exp_util.adb (Make_Invqriant_Call): If type of expression is
2774 a private extension, get invariant from base type.
2776 2014-01-23 Robert Dewar <dewar@adacore.com>
2778 * sem_util.adb, sem_attr.adb: Minor reformatting.
2780 2014-01-23 Robert Dewar <dewar@adacore.com>
2782 * opt.adb (Save_Opt_Config_Switches): Save SPARK_Mode_Pragma
2783 (Restore_Opt_Config_Switches): Restore SPARK_Mode_Pragma.
2784 * sem.adb (Semantics): Remove save/restore of
2785 SPARK_Mode[_Pragma]. Not needed since already done in
2786 Save/Restore_Opt_Config_Switches.
2788 2014-01-23 Robert Dewar <dewar@adacore.com>
2790 * gnat_rm.texi, einfo.adb, einfo.ads, sem_prag.adb, gnat_ugn.texi,
2791 freeze.adb, repinfo.adb, aspects.adb, aspects.ads, sem_ch13.adb:
2792 Linker_Section enhancements.
2794 2014-01-23 Tristan Gingold <gingold@adacore.com>
2796 * gnat_rm.texi: Minor editing.
2798 2014-01-23 Robert Dewar <dewar@adacore.com>
2800 * opt.adb (Set_Opt_Config_Switches): Reset SPARK mode for
2801 with'ed internal units.
2802 * sem.adb (Semantics): Save and restore SPARK_Mode[_Pragma].
2804 2014-01-23 Javier Miranda <miranda@adacore.com>
2806 * lib-xref.adb (Generate_Reference): As part of processing the
2807 "end-of-spec" reference generate an extra reference to the first
2808 private entity of the package.
2809 * xr_tabls.adb (Add_Reference): No action needed for the extra
2810 'E' reference associated; similar to the processing of the
2813 2014-01-23 Bob Duff <duff@adacore.com>
2815 * gnat_ugn.texi: Change "--&pp off" to "--!pp off".
2817 2014-01-23 Ed Schonberg <schonberg@adacore.com>
2819 * sem_util.ads, sem_util.adb (Is_Potentially_Unevaluated): new
2820 predicate to implement rule given in 6.1.1 (20/3).
2821 * sem_attr.adb (Analyze_Attribute, case 'Old): Reject prefix of
2822 'Old in a postcondition, if it is potentially unevaluated and
2823 it is not an entity name.
2825 2014-01-23 Bob Duff <duff@adacore.com>
2827 * gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp.
2829 2014-01-23 Robert Dewar <dewar@adacore.com>
2831 * gnatlink.adb (Gnatlink): Fix problem of generating bad name
2834 2014-01-23 Bob Duff <duff@adacore.com>
2836 * g-dynhta.ads: Minor comment fix.
2838 2014-01-23 Yannick Moy <moy@adacore.com>
2840 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Inherit SPARK_Mode
2841 from spec on body only when not already inherited on spec. Set
2842 SPARK_Mode from context on body without previous spec. *
2843 * sem_prag.adb (Analyze_Pragma): Check placement of pragma on
2844 library-level entities. Correct retrieval of entity from
2845 declaration, for cases where the declaration is not a unit.
2846 * sem_ch12.adb (Instantiate_Object): Avoid
2847 calling Is_Volatile_Object on an empty node.
2849 2014-01-23 Robert Dewar <dewar@adacore.com>
2851 * gnatlink.adb (Gnatlink): Check for suspicious executable file
2854 2014-01-23 Robert Dewar <dewar@adacore.com>
2856 * a-ngelfu.ads: Remove bad uses of AND which should be AND THEN.
2857 * sem_res.adb (Check_No_Direct_Boolean_Operators): Don't give
2858 style errors in instances.
2859 * g-dynhta.ads (Static_HTable): Comment updates.
2861 2014-01-23 Vincent Celier <celier@adacore.com>
2863 * prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt
2864 to find a configuration project file when Config_File_Name is
2865 No_Configuration_File.
2866 * prj-conf.ads (No_Configuration_File): New constant String.
2867 * prj-pars.adb (Parse): Call Get_Or_Create_Configuration_File
2868 with Config_File_Name set to No_Configuration_File, so that
2869 no existing configuration project file will be used, and the
2870 configuration project will be only created in memory when
2871 Add_Default_GNAT_Naming_Scheme is called.
2872 * projects.texi: Minor reformatting.
2874 2014-01-23 Vincent Celier <celier@adacore.com>
2876 * prj-conf.adb (Get_Or_Create_Configuration_File): Never parse
2877 a config project file if On_Load_Config is not null.
2878 * prj-pars.adb: Minor comment changes.
2880 2014-01-23 Ed Schonberg <schonberg@adacore.com>
2882 * lib-xref.adb (Output_References): Output progenitors of
2883 synchronized tagged types, for source navigation.
2885 2014-01-23 Robert Dewar <dewar@adacore.com>
2887 * exp_util.adb, sinfo.adb, sinfo.ads, sem.adb, sem_res.adb,
2888 expander.adb, exp_ch11.adb, exp_ch11.ads, sem_ch11.adb, sem_ch11.ads,
2889 sprint.adb, sprint.ads: Remove unused node N_Subprogram_Info.
2891 2014-01-23 Emmanuel Briot <briot@adacore.com>
2893 * prj-conf.adb (Get_Or_Create_Configuration_File): call
2894 On_Load_Config later.
2896 2014-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2898 * sem_ch3.adb (Analyze_Declarations): Do not
2899 generate the spec of the late primitive in ASIS mode. Add two
2900 comments to explain the special cases when the expansion is
2903 2014-01-23 Robert Dewar <dewar@adacore.com>
2905 * sem_util.adb (Note_Possible_Modification): Fix error of
2906 misbehaving for implicit dereference cases in -gnatc mode.
2908 2014-01-23 Emmanuel Briot <briot@adacore.com>
2910 * prj-pars.adb: Minor reformatting.
2912 2014-01-22 Ed Schonberg <schonberg@adacore.com>
2914 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): A subprogram
2915 body generated for an expression function within a protected body
2916 needs a set of renaming declarations if the expression function
2919 2014-01-22 Ed Schonberg <schonberg@adacore.com>
2921 * lib-xref.adb (Get_Type_Reference): In semantics-only mode,
2922 list interface progenitor of a tagged concurrent type, for better
2925 2014-01-22 Robert Dewar <dewar@adacore.com>
2927 * lib.adb (In_Extended_Main_Code_Unit): Return False for
2929 (In_Extended_Main_Source_Unit): Return False for Standard_Location.
2930 * lib.ads (In_Extended_Main_Code_Unit): Add documentation on
2931 treatment of Slocs No_Location and Standard_Location.
2932 * restrict.adb (Check_Restriction_No_Dependence): Explicitly
2933 check for entity with Standard_Location Sloc, rather than relying
2934 on Lib routines to do that.
2935 * sem_res.adb (Resolve_Call): Implement SPARK_05 restriction
2936 that a call cannot occur before a later occuring body within
2939 2014-01-22 Thomas Quinot <quinot@adacore.com>
2941 * rtsfind.adb: Update comment.
2943 2014-01-22 Hristian Kirtchev <kirtchev@adacore.com>
2945 * sem_aux.ads, sem_aux.adb (Is_Body): New routine.
2946 * sem_ch3.adb (Analyze_Declarations): Add local variable
2947 Body_Seen. Generate the spec of a late controlled
2948 primitive body that is about to freeze its related type.
2949 (Handle_Late_Controlled_Primitive): New routine.
2951 2014-01-22 Robert Dewar <dewar@adacore.com>
2953 * a-stream.adb: Minor reformatting.
2955 2014-01-22 Ed Schonberg <schonberg@adacore.com>
2957 * sem_ch8.adb (From_Actual_Package): Introduce a recursive
2958 sub-procedure Declared_In_Actual to handle properly the visibility
2959 of actuals in actual packages, that are themselves actuals to a
2960 actual package of the current instance. This mimics properly the
2961 visibility of formals of formal packages declared with a box,
2962 within the corresponding generic unit.
2964 2014-01-22 Robert Dewar <dewar@adacore.com>
2966 * checks.adb: Do not assume that a volatile variable is valid.
2968 2014-01-22 Thomas Quinot <quinot@adacore.com>
2970 * g-catiio.ads (Image, Value): Clarify that these functions
2971 operate in the local time zone. Minor documentation update.
2973 2014-01-22 Thomas Quinot <quinot@adacore.com>
2975 * csets.adb, csets.ads, opt.ads: Minor documentation fixes.
2977 2014-01-22 Robert Dewar <dewar@adacore.com>
2979 * sem_aux.adb, sem_aux.ads, sem_ch3.adb (Has_Unconstrained_Elements):
2980 Moved to sem_aux.adb.
2982 2014-01-22 Robert Dewar <dewar@adacore.com>
2984 * vms_data.ads: Minor reformatting.
2986 2014-01-22 Robert Dewar <dewar@adacore.com>
2988 * debug.adb: Document messages affected by -gnatd.E including
2989 the new ones that relate to late definition of equality.
2990 * sem_ch6.adb (Check_Untagged_Equality): In Ada 2012 mode, if
2991 debug flag -gnatd.E is set, then generate warnings rather than
2993 (Check_Untagged_Equality): In earlier versions of Ada,
2994 generate warnings if Warn_On_Ada_2012_Incompatibility flag is set.
2996 2014-01-22 Robert Dewar <dewar@adacore.com>
2998 * sem_prag.adb (Usage_Error): Output additional messages for
2999 unconstrained OUT parameters lacking an input dependency.
3001 2014-01-22 Robert Dewar <dewar@adacore.com>
3003 * sem_ch4.adb: Minor reformatting.
3005 2014-01-22 Robert Dewar <dewar@adacore.com>
3007 * restrict.ads: Minor reformatting.
3008 * sem_res.adb (Resolve_Call): Check for SPARK_05 restriction that
3009 forbids a call from within a subprogram to the same subprogram.
3011 2014-01-22 Thomas Quinot <quinot@adacore.com>
3013 * a-stream.ads (Read_SEA, Write_SEA): New subprograms, optimized
3014 stream attributes for Stream_Element_Array.
3015 * a-stream.adb (Read_SEA, Write_SEA): Bodies for the above.
3016 * rtsfind.adb (Check_CRT): Do not reject a reference to an entity
3017 defined in the current scope.
3019 2014-01-22 Robert Dewar <dewar@adacore.com>
3021 * debug.adb, exp_ch4.adb, erroutc.adb: Minor reformatting.
3023 2014-01-22 Thomas Quinot <quinot@adacore.com>
3025 * sem_ch7.adb, sem_ch8.adb, exp_ch3.adb: Minor reformatting.
3027 2014-01-22 Thomas Quinot <quinot@adacore.com>
3029 * sem_ch3.adb (Analyze_Object_Declaration): For a constant
3030 declaration initialized with a function call, whose type
3031 has variable size, need to remove side effects so that the
3032 initialization expression becomes a dereference of a temporary
3033 reference to the function result.
3035 2014-01-22 Yannick Moy <moy@adacore.com>
3037 * errout.adb (Initialize): Remove trick to add dummy entry
3039 * erroutc.adb (Set_Warnings_Mode_Off,
3040 Set_Warnings_Mode_On): Do nothing if warnings are suppressed by
3041 command line switch.
3042 * opt.ads (Warning_Mode): Document behavior
3043 wrt pragma Warnings, in normal mode and in GNATprove_Mode.
3045 2014-01-22 Robert Dewar <dewar@adacore.com>
3047 * sem_ch3.adb, errout.adb, erroutc.adb: Minor reformatting.
3049 2014-01-22 Robert Dewar <dewar@adacore.com>
3051 * sem_ch13.adb (Check_Pool_Size_Clash): New procedure
3052 (Analyze_Attribute_Definition_Clause, case Storage_Pool): call
3053 Check_Pool_Size_Clash (Analyze_Attribute_Definition_Clause,
3054 case Storage_Size): call Check_Pool_Size_Clash.
3056 2014-01-22 Robert Dewar <dewar@adacore.com>
3058 * sem_ch3.adb, exp_util.adb, sem_dim.adb, sem_elab.adb, sem_ch8.adb,
3059 sem_eval.ads: Minor reformatting.
3061 2014-01-22 Thomas Quinot <quinot@adacore.com>
3063 * sem_eval.adb (Compile_Time_Known_Bounds): Return False for
3064 Any_Composite to prevent cascaded errors.
3066 2014-01-22 Yannick Moy <moy@adacore.com>
3068 * errout.adb (Initialize): Do not insert special entry in Warnings
3069 table in GNATprove_Mode.
3070 * erroutc.adb (Set_Warnings_Mode_On): Add info in Warnings table in
3072 * gnat1drv.adb (Adjust_Global_Switches): Do not suppress frontend
3075 2014-01-22 Robert Dewar <dewar@adacore.com>
3077 * sem_prag.adb (Analyze_Initializes_In_Decl_Part): Handle null
3080 2014-01-22 Robert Dewar <dewar@adacore.com>
3082 * snames.ads-tmpl: Update header.
3084 2014-01-22 Thomas Quinot <quinot@adacore.com>
3086 * exp_util.adb (Insert_Actions): When inserting actions on a
3087 short circuit operator that has already been analyzed, do not park
3088 actions in node; instead introduce an N_Expression_With_Actions
3089 and insert actions immediately.
3090 Add guard for unexpected case of climbing up through statement
3091 in Actions list of an N_Expression_With_Actions.
3092 * sem_elab.adb (Insert_Elab_Check): Remove complex
3093 specialized circuitry for the case where the context is already
3094 analyzed, as it is not needed and introduces irregularities in
3095 finalization. Instead rely on the above change to Insert_Actions
3096 to ensure that late insertion on short circuit operators works
3099 2014-01-22 Ed Schonberg <schonberg@adacore.com>
3101 * sem_ch4.adb (Operator_Check): Improve error message when an
3102 operand of concatenation is an access type.
3104 2014-01-22 Thomas Quinot <quinot@adacore.com>
3106 * sem_dim.adb (Analyze_Dimension_Identifier): Add guard against
3109 2014-01-22 Ed Schonberg <schonberg@adacore.com>
3111 * sem_ch8.adb (Find_Selected_Component): Handle properly the case
3112 of an expanded name in a proper body, whose prefix is a package
3113 in the context of the proper body, when there is a homonym of
3114 the package declared in the parent unit.
3116 2014-01-22 Robert Dewar <dewar@adacore.com>
3118 * sem_warn.adb (Check_Use_Clause): Don't give no entities used
3119 msg if errors found.
3120 (Check_One_Unit): Same change.
3122 2014-01-22 Robert Dewar <dewar@adacore.com>
3124 * ug_words: Add missing/wrong entries for VMS warning switches.
3125 * sem_prag.adb (Check_Duplicate_Pragma): Avoid flagging parent type.
3127 2014-01-22 Jerome Guitton <guitton@adacore.com>
3129 * mlib-tgt-specific-vxworks.adb (Get_Target_Suffix): Replace xscale by
3132 2014-01-22 Robert Dewar <dewar@adacore.com>
3134 * gnat_rm.texi, gnat_ugn.texi: Document passive task optimization
3136 2014-01-22 Eric Botcazou <ebotcazou@adacore.com>
3138 * gcc-interface/Makefile.in: Minor fixes.
3140 2014-01-21 Robert Dewar <dewar@adacore.com>
3142 * par-ch4.adb (P_If_Expression): Rewritten to improve error recovery.
3143 * par-ch5.adb (P_Condition): New version with expression prescanned.
3144 * par.adb (P_Condition): New version with expression prescanned.
3146 2014-01-21 Robert Dewar <dewar@adacore.com>
3148 * gnat_rm.texi: Document that Allow_Integer_Address is ignored
3149 if Address is not a private type.
3150 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
3151 Ignore pragma if System.Address is not a private type.
3153 2014-01-21 Arnaud Charlet <charlet@adacore.com>
3155 * namet.ads (Name_Len): Initialize to 0 to avoid accessing an
3156 uninitialized value.
3158 2014-01-21 Thomas Quinot <quinot@adacore.com>
3160 * gnat_rm.texi (Scalar_Storage_Order): Update documentation.
3162 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3164 * sem_ch12.adb (Set_Instance_Env): In Ada 2012 mode, preserve
3165 the value of Assertions_Enabled flag when compiling an instance of
3166 an internal unit. This facilitates the use of pre/postconditions
3167 in generic internal units, such as the new elementary function
3170 2014-01-21 Robert Dewar <dewar@adacore.com>
3172 * exp_aggr.adb: Minor reformatting.
3173 * sem_attr.adb: Minor reformatting.
3174 * sem_res.adb: Minor comment addition.
3175 * einfo.adb: Minor comment updates.
3176 * freeze.adb: Minor reformatting and code reorganization.
3178 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3180 * par-ch4.adb (P_If_Expression): Handle more gracefully an
3181 elsif clause that does not have an else part.
3183 2014-01-21 Robert Dewar <dewar@adacore.com>
3185 * checks.adb, sem_util.ads, sem_ch4.adb: Minor reformatting.
3186 * gcc-interface/Makefile.in: clean up target pairs.
3188 2014-01-21 Pascal Obry <obry@adacore.com>
3190 * projects.texi: Minor typo fix.
3192 2014-01-21 Thomas Quinot <quinot@adacore.com>
3194 * freeze.adb (Check_Component_Storage_Order): If a record type
3195 has an explicit Scalar_Storage_Order attribute definition clause,
3196 reject any component that itself is of a composite type and does
3199 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3201 * sem_ch10.adb (Generate_Parent_Reference): Make public so it
3202 can be used to generate proper cross-reference information for
3203 the parent units of proper bodies.
3205 2014-01-21 Thomas Quinot <quinot@adacore.com>
3207 * exp_pakd.adb (Expand_Packed_Element_Set,
3208 Expand_Packed_Element_Reference): No byte swapping required in
3209 the front-end for the case of a reverse storage order array,
3210 as this is now handled uniformly in the back-end. However we
3211 still need to swap back an extracted element if it is itself a
3212 nested composite with reverse storage order.
3214 2014-01-21 Hristian Kirtchev <kirtchev@adacore.com>
3216 * sem_prag.adb (Analyze_External_Property): Add processing for "others".
3217 (Analyze_Pragma): Update the grammar of pragma Abstract_State to
3220 2014-01-21 Arnaud Charlet <charlet@adacore.com>
3222 * gnat_ugn.texi: Minor updates.
3224 2014-01-21 Thomas Quinot <quinot@adacore.com>
3226 * exp_pakd.adb: Update comment, minor reformatting.
3228 2014-01-21 Hristian Kirtchev <kirtchev@adacore.com>
3230 * sem_ch3.adb (Analyze_Variable_Contract): Trigger the volatile
3231 object check when SPARK_Mode is on.
3232 * sem_ch6.adb (Process_Formals): Trigger the volatile object
3233 check when SPARK_Mode is on.
3234 * sem_ch12.adb (Instantiate_Object): Trigger the volatile object
3235 check when SPARK_Mode is on.
3236 * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the
3237 corresponding pragma of aspect SPARK_Mode in the visible
3238 declarations of a package declaration.
3239 * sem_prag.adb (Analyze_Pragma): Trigger the volatile object
3240 check when SPARK_Mode is on.
3241 * sem_res.adb (Resolve_Actuals): Trigger the volatile object
3242 check when SPARK_Mode is on.
3243 (Resolve_Entity_Name): Trigger
3244 the volatile object check when SPARK_Mode is on.
3246 2014-01-21 Robert Dewar <dewar@adacore.com>
3248 * sem_ch3.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_res.adb,
3249 sem_ch6.adb, a-except-2005.adb: Minor reformatting.
3251 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3253 * exp_ch3.adb (Expand_N_Object_Declaration): When a class-wide
3254 object is declared, it is rewritten as a renaming of an dynamic
3255 expression that wraps the initial value. The renaming declaration
3256 is first given an internal name, to prevent collisions with the
3257 entity already declared, and then the name is modified to reflect
3258 the original one. the modification of the name must preserve
3259 the source location of the original, to prevent spurious errors
3260 when compiling with style checks if the declaration involves
3261 more than one entity.
3263 2014-01-21 Hristian Kirtchev <kirtchev@adacore.com>
3265 * aspects.adb Add entries for Async_Readers, Async_Writers,
3266 Effective_Reads and Effective_Writes in table Canonical_Aspect.
3267 * aspects.ads Add entries for Async_Readers, Async_Writers,
3268 Effective_Reads and Effective_Writes in tables Aspect_Id,
3269 Aspect_Names, Aspect_Delay and Implementation_Defined_Aspect.
3270 * atree.adb (Ekind_In): New version with 8 parameters.
3271 (Node34): New routine.
3272 (Set_Node34): New routine.
3273 * atree.ads (Ekind_In): New version with 8 parameters.
3274 (Node34): New routine.
3275 (Set_Node34): New routine.
3276 * einfo.adb Contract is now Node34.
3277 (Contract): Update the assertion and node usage.
3278 (Get_Pragma): Include pragmas Async_Readers, Async_Writers,
3279 Effective_Reads and Effective_Writes.
3280 (Set_Contract): Update the assertion and node usage.
3281 (Write_Field24_Name): Remove the output for a contract.
3282 (Write_Field34_Name): Add output for a contract.
3283 * einfo.ads Contract is now Node34. Update the comment on
3284 attribute usage and related node structures.
3285 (Get_Pragma): Update the comment on usage.
3286 * par-prag.adb (Prag): Pragmas Async_Readers, Async_Writers,
3287 Effective_Reads and Effective_Writes do not require special
3288 processing by the parser.
3289 * sem_ch3.adb (Analyze_Variable_Contract): New routine.
3290 (Analyze_Declarations): Analyze the contract of a variable at
3291 the end of the declarative region.
3292 (Analyze_Object_Declaration): Create a contract for a variable.
3293 * sem_ch6.adb (Analyze_Subprogram_Contract): Update the retrieval
3294 of classification pragmas.
3295 (Process_Formals): Detect an illegal
3296 use of a volatile object as a formal in a function.
3297 * sem_ch12.adb (Instantiate_Object): Detect an illegal use of
3298 a volatile object as an actual in generic instantiation.
3299 * sem_prag.adb Add entries for Async_Readers, Async_Writers,
3300 Effective_Reads and Effective_Writes in table Sig_Flags.
3301 (Analyze_External_State_In_Decl_Part): New routine.
3302 (Analyze_Global_Item): Detect an illegal use of a volatile object
3303 as a global item of a function.
3304 (Analyze_Pragma): Reimplement
3305 pragma Abstract_State. Add support for pragmas Async_Readers,
3306 Async_Writers, Effective_Reads and Effective_Writes.
3307 (Check_External_Properties): New routine.
3308 * sem_prag.ads (Analyze_External_State_In_Decl_Part): New routine.
3309 (Check_External_Properties): New routine.
3310 * sem_res.adb (Resolve_Actuals): Detect an illegal use of a
3311 volatile object as an actual in a call.
3312 (Resolve_Entity_Name):
3313 Add local variables Par, Prev and Usage_OK. Detect illegal
3314 contexts of volatile objects.
3315 * sem_util.adb (Add_Contract_Item): Add support for
3316 pragmas associated with the contract of a variable.
3317 (Async_Readers_Enabled): New routine.
3318 (Async_Writers_Enabled): New routine.
3319 (Effective_Reads_Enabled): New routine.
3320 (Effective_Writes_Enabled): New routine.
3321 (Has_Enabled_Property):
3323 (Is_Unchecked_Conversion_Instance): New routine.
3324 (Is_Volatile_Object): Add support for entities that may denote
3326 * sem_util.ads (Add_Contract_Item): Update the
3328 (Async_Readers_Enabled): New routine.
3329 (Async_Writers_Enabled): New routine.
3330 (Effective_Reads_Enabled): New routine.
3331 (Effective_Writes_Enabled): New routine.
3332 (Is_Unchecked_Conversion_Instance): New routine.
3333 * sinfo.ads Update the comment on the structure of N_Contract.
3334 * snames.ads-tmpl Add predefined names for Async_Readers,
3335 Async_Writers, Effective_Reads and Effective_Writes. Add
3336 pragma ids for Async_Readers, Async_Writers, Effective_Reads
3337 and Effective_Writes.
3339 2014-01-21 Robert Dewar <dewar@adacore.com>
3341 * exp_ch4.adb (Eval_Op_Expon): Use CRT_Safe_Compile_Time_Known_Value
3342 * sem_eval.adb (Compile_Time_Known_Value): Remove special
3343 handling of CRT mode (CRT_Safe_Compile_Time_Known_Value): New
3344 function (Eval_Op_Expon): Add CRT_Safe in call to Test_Foldable
3345 (Test_Foldable): Add CRT_Safe parameter
3346 * sem_eval.ads (Compile_Time_Known_Value): Remove special
3347 handling of CRT mode.
3348 (CRT_Safe_Compile_Time_Known_Value): New function.
3350 2014-01-21 Robert Dewar <dewar@adacore.com>
3352 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Fix problem
3353 with pragma or aspect that applies to package spec or subprogram
3356 2014-01-21 Robert Dewar <dewar@adacore.com>
3358 * exp_aggr.adb: Minor reformatting.
3360 2014-01-21 Johannes Kanig <kanig@adacore.com>
3362 * gnat1drv.adb (Gnat1drv) remove obsolete reference to -gnatd.H.
3364 2014-01-21 Bob Duff <duff@adacore.com>
3366 * gnat_ugn.texi: Document the "checks" attribute in gnat2xml.
3368 2014-01-21 Steve Baird <baird@adacore.com>
3370 * gnat_rm.texi: Improve description of SPARK_Mode pragma.
3372 2014-01-21 Vincent Celier <celier@adacore.com>
3374 * prj-part.adb (Parse_Single_Project): Accept to extend a project
3375 if it has only be imported by an project being extended. When a
3376 project that has only been imported by a project being extended
3377 is imported by another project that is not being extended,
3378 reset the previous indication, so that it will be an error if
3379 this project is extended later.
3380 * prj-tree.adb (Create_Project): Include component From_Extended
3381 in table Projects_HT
3382 * prj-tree.ads (Project_Name_And_Node): New Boolean component
3385 2014-01-21 Robert Dewar <dewar@adacore.com>
3387 * atree.ads, atree.adb: Add Node33 and Set_Node33.
3388 * einfo.ads, einfo.adb (SPARK_Pragma): New field (SPARK_Aux_Pragma):
3389 New field (SPARK_Pragma_Inherited): New flag
3390 (SPARK_Aux_Pragma_Inherited): New flag (SPARK_Mode_Pragmas):
3392 * lib.ads, lib.adb: Remove SPARK_Mode_Pragma, no longer used.
3393 * opt.ads (SPARK_Mode_Pragma): New global variable.
3394 * sem.ads: Add Save_SPARK_Mode_Pragma field to Scope_Stack_Entry.
3395 * sem_ch3.adb: Use new SPARK_Mode data structures.
3396 * sem_ch6.adb: Set SPARK_Mode fields in subprogram specs and bodies.
3397 * sem_ch7.adb: Set SPARK_Mode fields in package spec and body entities.
3398 * sem_ch8.adb (Push_Scope): Save SPARK_Mode_Pragma.
3399 (Pop_Scope): Restore SPARK_Mode_Pragma.
3400 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Rewrite for
3401 new data structures.
3403 2014-01-21 Arnaud Charlet <charlet@adacore.com>
3405 * back_end.adb: Undo previous change, not needed. Minor reformatting.
3407 2014-01-21 Thomas Quinot <quinot@adacore.com>
3409 * exp_ch5.adb: Fix comment.
3410 * switch-c.adb: Minor comment update.
3411 * exp_ch3.adb: Minor reformatting.
3413 2014-01-21 Arnaud Charlet <charlet@adacore.com>
3415 * back_end.adb (Scan_Compiler_Arguments): Do not store object
3416 filename in gnatprove mode.
3418 2014-01-21 Thomas Quinot <quinot@adacore.com>
3420 * sinfo.ads (No_Ctrl_Actions): Clarify documentation (flag also
3421 suppresses usage of primitive _assign for tagged types).
3422 * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Set
3423 No_Ctrl_Actions for a tagged type that does not require
3424 finalization, as we want to disable usage of _assign (which
3425 may cause undesirable discriminant checks on an uninitialized,
3428 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3430 * sem_prag.adb: Reject invariant'class on completion.
3432 2014-01-21 Javier Miranda <miranda@adacore.com>
3434 * exp_ch3.adb (Build_Init_Procedure): For
3435 derivations of interfaces, do not move the the initialization
3436 of the _parent field since such assignment is not generated.
3438 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3440 * sem_res.adb (Rewrite_Renamed_Operator): Do not replace entity
3441 with the operator it renames if we are within an expression of
3442 a pre/postcondition, because the expression will be reanalyzed
3443 at a later point, and the analysis of the renaming may affect
3444 the visibility of the operator when in an instance.
3446 2014-01-21 Robert Dewar <dewar@adacore.com>
3448 * sinfo.ads, sinfo.adb: Change Do_Discriminant_Check to use new Flag1.
3449 Add this flag to type conversion nodes and assignment nodes.
3450 * treepr.adb: Deal properly with Flag 1,2,3.
3451 * treeprs.adt: Minor comment update.
3453 2014-01-21 Robert Dewar <dewar@adacore.com>
3455 * sem_eval.adb (Compile_Time_Known_Value): Add Ignore_CRT
3457 * sem_eval.ads (Compile_Time_Known_Value): Add Ignore_CRT
3458 parameter, completely rewrite spec.
3460 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3462 * sem_ch10.adb (Install_Withed_Unit): If the unit is a subprogram
3463 instance that is inlined, it may have been rewritten as a wrapper
3464 package. In that case the unit that must be made visible is the
3465 related instance of the package.
3467 2014-01-21 Arnaud Charlet <charlet@adacore.com>
3469 * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Refine
3470 previous change in codepeer mode.
3472 2014-01-21 Arnaud Charlet <charlet@adacore.com>
3474 * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Always add
3475 call to Abort_Undefer, as expected by the runtime.
3476 * s-tasren.adb (Local_Complete_Rendezvous): Replace
3477 Defer_Abort_Nestable by Defer_Abort, since we do not expect abort to be
3478 deferred at this point. Update comments.
3480 2014-01-21 Thomas Quinot <quinot@adacore.com>
3482 * exp_ch4.adb, exp_ch5.adb, checks.adb: Minor reformatting.
3484 2014-01-21 Arnaud Charlet <charlet@adacore.com>
3486 * switch-c.adb, usage.adb, gnat_ugn.texi: Mark -gnates as internal,
3489 2014-01-21 Robert Dewar <dewar@adacore.com>
3491 * switch-c.adb, usage.adb, atree.adb, atree.ads: Minor reformatting.
3493 2014-01-21 Thomas Quinot <quinot@adacore.com>
3495 * atree.adb, atree.ads (Num_Extension_Nodes): Switch to Node_Id, since
3496 this is value is used in Node_Id arithmetic operations.
3497 (Copy_Node, Exchange_Entities): Use loops indexed by Num_Extension_Nodes
3498 instead of hard-coded unrolled code.
3500 2014-01-21 Yannick Moy <moy@adacore.com>
3502 * gnat1drv.adb: Minor code cleanup, removing useless code.
3504 2014-01-21 Arnaud Charlet <charlet@adacore.com>
3506 * opt.ads (SPARK_Switches_File_Name): New.
3507 * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnates=xxx *
3508 * usage.adb (Usage): Document -gnates, in gnatprove mode only.
3509 * gnat_ugn.texi: Document -gnates.
3511 2014-01-21 Yannick Moy <moy@adacore.com>
3513 * errout.adb (Special_Msg_Delete): Update comment. Remove
3514 special case for GNATprove which should not ignore mismatch
3515 in sizes for representation clauses.
3516 * sem_prag.adb (Analyze_Pragma): Remove special case for GNATprove
3517 which should not ignore pragma Pack.
3519 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3521 * sem_ch4.adb: Code clean up.
3523 2014-01-21 Steve Baird <baird@adacore.com>
3525 * gnat_rm.texi: Improve GNAT RM description of SPARK_Mode pragma.
3527 2014-01-21 Robert Dewar <dewar@adacore.com>
3529 * gcc-interface/gigi.h: Get Flags array address.
3530 * gcc-interface/trans.c: Acquire Flags array address.
3531 * atree.adb: Add support for Flags array and Flag0,1,2,3.
3532 * atree.ads: Add support for Flags array and Flag0,1,2,3.
3533 * atree.h: Add support for Flags array and Flag0,1,2,3.
3534 * back_end.adb: Pass Flags array address to gigi.
3536 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3538 * sem_ch8.adb (Attribute_Renaming): Transfer original attribute
3539 reference to generated body so that legality checks on stream
3540 attributes are properly applied. If type is tagged and already
3541 frozen, insert generated body at the point of the renaming
3544 2014-01-21 Ed Schonberg <schonberg@adacore.com>
3546 * sem_ch12.adb: Code clean up.
3547 * sem_ch8.adb: Minor reformatting
3549 2014-01-20 Robert Dewar <dewar@adacore.com>
3551 * checks.adb: Check SPARK_Mode instead of GNATProve_Mode for
3552 converting warnings on inevitable exceptions to errors.
3553 * exp_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for
3554 converting warnings on inevitable exceptions to errors.
3555 * opt.adb (SPARK_Mode_Config): Handled like other config flags
3556 * opt.ads (SPARK_Mode_Type): Moved here from types (renamed from
3557 SPARK_Mode_Id) (SPARK_Mode_Type): Add pragma Ordered, remove
3558 SPARK_ from names (SPARK_Mode): New flag (SPARK_Mode_Config):
3559 New flag (Config_Switches_Type): Add SPARK_Mode field
3560 * sem.adb: Minor code reorganization (remove unnecessary with)
3561 * sem.ads (Scope_Stack_Entry): Add Save_SPARK_Mode field
3562 * sem_aggr.adb: Check SPARK_Mode instead of GNATProve_Mode for
3563 converting warnings on inevitable exceptions to errors.
3564 * sem_attr.adb: Check SPARK_Mode instead of GNATProve_Mode for
3565 converting warnings on inevitable exceptions to errors.
3566 * sem_ch3.adb: Check SPARK_Mode instead of GNATProve_Mode for
3567 converting warnings on inevitable exceptions to errors.
3568 * sem_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for
3569 converting warnings on inevitable exceptions to errors.
3570 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Reset SPARK_Mode
3572 * sem_ch7.adb (Analyze_Package_Body_Helper): Reset SPARK_Mode
3574 * sem_ch8.adb (Push_Scope): Save SPARK_Mode (Pop_Scope):
3576 * sem_elab.adb: Check SPARK_Mode instead of GNATProve_Mode for
3577 converting warnings on inevitable exceptions to errors.
3578 * sem_prag.adb (Get_SPARK_Mode_From_Pragma): New function
3579 (Get_SPARK_Mode_Id): Removed (Get_SPARK_Mode_Type): New name
3580 of Get_SPARK_Mode_Id
3581 * sem_prag.ads (Get_SPARK_Mode_From_Pragma): New function
3582 * sem_res.adb: Check SPARK_Mode instead of GNATProve_Mode for
3583 converting warnings on inevitable exceptions to errors.
3584 * sem_util.adb: Check SPARK_Mode instead of GNATProve_Mode for
3585 converting warnings on inevitable exceptions to errors.
3586 * types.ads (SPARK_Mode_Id): Moved to opt.ads and renamed
3589 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3591 * sem_ch13.adb: Add semantic information to rewritten type
3594 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3596 * exp_ch5.adb (Expand_N_Assignment_Statement): If both sides
3597 are of a type with unknown discriminants, convert both to the
3598 underlying view of the type, so that the proper constraint check
3599 can be applied to the right-hand side.
3601 2014-01-20 Robert Dewar <dewar@adacore.com>
3603 * atree.adb (Copy_Node): Fix failure to copy last component
3604 (Exchange_Entities): Fix failure to exchange last entity
3606 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3608 * sem_ch12.adb: Code clean up.
3610 2014-01-20 Robert Dewar <dewar@adacore.com>
3612 * gnat_rm.texi, sem_ch4.adb: Minor reformatting.
3614 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3616 * sem_ch4.adb (Analyze_Quantified_Expression): If after
3617 pre-analysis the loop parameter specification has been
3618 rewritten as a iterator specification, propagate the change to
3619 the quantified expression, for ASIS navigtion needs.
3621 2014-01-20 Vincent Celier <celier@adacore.com>
3623 * par-ch10.adb: Minor error message change: escape [ and ].
3625 2014-01-20 Robert Dewar <dewar@adacore.com>
3627 * checks.adb: Make warnings on exceptions into errors in GNATprove mode.
3628 * errout.adb: Implement [ and ] insertion characters.
3629 * errout.ads: Document new [ and ] insertion characters.
3630 * sem_ch12.adb, restrict.adb, frontend.adb, exp_ch7.adb: Minor
3631 addition of ??? comment.
3632 * lib-xref.adb, exp_util.adb, gnat1drv.adb: Minor reformatting
3633 * exp_ch4.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_elab.adb,
3634 sem_eval.adb, sem_res.adb, sem_util.adb, sem_attr.adb, sem_aggr.adb:
3635 Make warnings on exceptions into errors in GNATprove mode.
3636 * sem_dim.adb: Minor reformatting throughout Quote [ and ]
3639 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3641 * sem_ch13.adb: Code clean up.
3643 2014-01-20 Robert Dewar <dewar@adacore.com>
3645 * errout.ads, errout.adb: Implement >? >x? >X? sequences in error
3647 * sem_ch6.adb (Check_Statement_Sequence): Missing return is an
3648 error in GNATprove mode.
3650 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3652 * par-ch4.adb (Is_Parameterless_Attribute): The Ada2012 attribute
3653 reference 'Old takes no parameters, and thus can appear as a
3656 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
3658 * exp_aggr.adb: Fix minor typos.
3660 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3662 * sem_attr.adb (Analyze_Attribute, case 'Constrained): In an
3663 instance the attribute is legal, and its value is determined
3664 statically if the type has no discriminants. This choice is
3665 more useful than rechecking the legality rule in the instance,
3666 is consistent with older usage, and is also consistent with all
3669 2014-01-20 Arnaud Charlet <charlet@adacore.com>
3671 * sem_cat.adb (Validate_Static_Object_Name): Change error into
3672 warning in Relaxed_Semantic_Mode.
3674 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3676 * sem_attr.adb: Code and comments cleanup.
3678 2014-01-20 Yannick Moy <moy@adacore.com>
3680 * debug.adb Free debug flags -gnatd.D, -gnatd.G and -gnatd.V *
3681 * errout.adb (Compilation_Errors): Remove special handling in
3683 * gnat1drv.adb (Adjust_Global_Switches): Remove handling of the
3684 removed debug flags.
3685 * gnat_rm.texi: Initial documentation for Abstract_State, Depends,
3686 Global, Initial_Condition, Initializes and Refined_State pragmas and
3688 * opt.ads (Frame_Condition_Mode, Formal_Extensions,
3689 SPARK_Strict_Mode): Remove global flags.
3690 * sem_ch3.adb (Analyze_Object_Declaration): Check of no hidden state
3691 always performed now, on packages declaring a null state.
3692 (Signed_Integer_Type_Declaration): Remove ill-designed attempt
3693 at providing pedantic mode for bounds of integer types.
3694 * sem_ch4.adb (Analyze_Quantified_Expression): Warning on suspicious
3695 "some" quantified expression now issued under control of -gnatw.t,
3696 like the other warning on unused bound variable.
3697 * sem_prag.adb (Check_Precondition_Postcondition): Remove useless test
3699 (Analyze_Pragma): Remove tests for SPARK 2014
3700 pragmas, not officially allowed by GNAT.
3702 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
3704 * sem_prag.adb (Analyze_Pragma): Ensure that
3705 the sole argument of pragmas Abstract_State, Contract_Cases,
3706 Depends, Global and Initializes in in aggregate form.
3707 (Analyze_Refined_Pragma): Ensure that the sole argument of
3708 pragmas Refined_Depends, Refined_Global and Refined_State is in
3710 (Ensure_Aggregate_Form): New routine.
3712 2014-01-20 Doug Rupp <rupp@adacore.com>
3714 * sem_attr.adb (Analyze_Attribute): case
3715 Attribute_Constrained => treat all prefixes as legal for Declib
3718 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
3720 * sem_prag.adb (Check_Mode): Reimplement the routine.
3721 (Find_Mode): New routine.
3723 2014-01-20 Robert Dewar <dewar@adacore.com>
3725 * sem_ch4.adb (Operator_Check): Handle additional
3726 Allow_Integer_Address cases.
3728 2014-01-20 Robert Dewar <dewar@adacore.com>
3730 * gnat_rm.texi (Allow_Integer_Address): Remove note about not
3731 allowed if address is non-private, no longer true.
3732 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
3733 Remove check for address being private, causes difficulty when
3734 pragma used in gnat.adc file and is not needed, since we guard
3735 this in Address_Integer_Convert_OK.
3736 * exp_ch7.adb: Minor reformatting.
3737 * sem_ch4.adb: Handle operator operands in Allow_Integer_Address mode.
3739 2014-01-20 Robert Dewar <dewar@adacore.com>
3741 * checks.adb (Apply_Range_Check): Remove gnatprove special
3742 casing of exponentiation.
3743 * sem_res.adb (Resolve_Op_Expon): Apply range check to right
3744 operand for integer case to check range against Natural.
3746 2014-01-20 Robert Dewar <dewar@adacore.com>
3748 * s-tataat.adb: Minor reformatting.
3750 2014-01-20 Robert Dewar <dewar@adacore.com>
3752 * einfo.adb (Is_Descendent_Of_Address): Now applies to all
3753 entities, and also fix documentation to remove mention of visible
3754 integer type, since this is not what the implementation does.
3755 * einfo.ads (Is_Descendent_Of_Address): Now applies to all
3756 entities, and also fix documentation to remove mention of visible
3757 integer type, since this is not what the implementation does.
3758 * gnat_rm.texi: Minor clarification of Allow_Integer_Address
3760 * sem_ch4.adb (Analyze_One_Call): Handle Allow_Integer_Address
3761 case for parameter type check.
3762 * sem_res.adb (Resolve): Use new function
3763 Address_Integer_Convert_OK.
3764 * sem_type.adb: Minor code reorganization (use Ekind_In) Minor
3765 reformatting throughout.
3766 * sem_util.adb (Address_Integer_Convert_OK): New function.
3767 * sem_util.ads: Minor reformatting (put specs in alpha order)
3768 (Address_Integer_Convert_OK): New function.
3770 2014-01-20 Thomas Quinot <quinot@adacore.com>
3772 * exp_ch7.adb (Wrap_Transient_Expression):
3773 Insertion extra conditional expression only if
3774 Opt.Suppress_Control_Flow_Optimizations is set.
3776 2014-01-20 Arnaud Charlet <charlet@adacore.com>
3778 * s-tataat.adb (Initialize_Attributes): Abort might already be
3779 deferred in Create_Task.
3781 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
3783 * checks.adb (Apply_Scalar_Range_Check): Flag
3784 the exponent as requiring a range check when the expression is
3787 2014-01-20 Fedor Rybin <frybin@adacore.com>
3789 * gnat_ugn.texi: Documenting --passed-tests option for gnattest.
3791 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
3793 * sem_util.adb (Default_Initialization): New routine.
3794 * sem_util.ads: Add new type Default_Initialization_Kind.
3795 (Default_Initialization): New routine.
3797 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
3799 * sem_prag.adb (Check_Mode): Correct all error
3800 message logic dealing with in/in out parameters that may appear
3801 as inputs or have a self reference.
3803 2014-01-20 Robert Dewar <dewar@adacore.com>
3805 * exp_ch9.adb, checks.adb, exp_intr.adb: Minor reformatting.
3806 * sem_res.adb (Resolve): Fix error causing infinite loop for
3807 integer used as address. Allow addresses as integers.
3809 2014-01-20 Arnaud Charlet <charlet@adacore.com>
3811 * s-osinte-linux.ads (struct_sigaction): Fix rep clause.
3813 2014-01-20 Bob Duff <duff@adacore.com>
3815 * par-ch8.adb (P_Use_Type_Clause): Detect syntax
3816 error when "use all" is not followed by "type".
3818 2014-01-20 Bob Duff <duff@adacore.com>
3820 * exp_intr.adb (Expand_Unc_Deallocation): Remove warning on abort
3823 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3825 * checks.adb (Apply_Address_Clause_Check): If there is an
3826 alignment check on the expression in an address clause, and there
3827 is no local exception propagation, add an additional explanatory
3828 message to clarify the cause of previous warning.
3830 2014-01-20 Robert Dewar <dewar@adacore.com>
3832 * exp_ch7.adb: Minor reformatting.
3833 * opt.ads: Minor comment updates.
3834 * sem.adb: Minor name change Is_Main_Unit =>
3835 Is_Main_Unit_Or_Main_Unit_Spec.
3836 * sem_ch6.adb: Minor reformatting and code reorganization.
3838 2014-01-20 Bob Duff <duff@adacore.com>
3840 * gnat_ugn.texi: Update gnatpp switches.
3842 2014-01-20 Thomas Quinot <quinot@adacore.com>
3844 * exp_ch9.adb: Minor comment edit.
3846 2014-01-20 Robert Dewar <dewar@adacore.com>
3848 * gnat_rm.texi: Document that Allow_Integer_Address is permitted
3849 only if System.Address is a private type.
3850 * opt.ads (Allow_Integer_Address): No longer set by -gnates.
3851 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address):
3852 Allowed only if type System.Address is private, since otherwise
3854 * sem_res.adb: Fix failure to properly Analyze unchecked
3855 conversions that were introduced by Allow_Integer_Address.
3856 * switch-c.adb: Remove -gnates switch.
3857 * usage.adb: Remove -gnates switch.
3858 * gnat_ugn.texi: Remove documentation of -gnates flag.
3860 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3862 * sem_ch6.adb (Analyze_Expression_Function): Pre-analyze and
3863 resolve expression to perform proper name capture.
3865 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3867 * sem.adb (Semantics): When saving/restoring configuration
3868 switches, the spec of a pre- defined unit that is the main unit
3869 must be treated as a predefined unit as well.
3871 2014-01-20 Thomas Quinot <quinot@adacore.com>
3873 * exp_ch7.adb (Wrap_Transient_Expression): For a Boolean
3874 expression, insert an extra conditional expression when saving
3875 the value of the expression, for the benefit of control flow
3876 graph based coverage analysis.
3877 * exp_ch3.adb: Minor reformatting.
3879 2014-01-20 Robert Dewar <dewar@adacore.com>
3881 * gnat1drv.adb: Set Allow_Integer_Address in relaxed semantics mode.
3882 * gnat_rm.texi: Document pragma Allow_Integer_Address.
3883 * gnat_ugn.texi: Document pragma Allow_Integer_Address, -gnates.
3884 * opt.ads: New flag Allow_Integer_Address.
3885 * par-prag.adb: Dummy entry for pragma Allow_Integer_Address.
3886 * sem_ch5.adb: Minor reformatting.
3887 * sem_prag.adb: Implement pragma Allow_Integer_Address.
3888 * sem_res.adb (Resolve): Allow integer address value if
3890 * sem_util.adb: Minor reformatting.
3891 * snames.ads-tmpl: Add entry for pragma Allow_Integer_Address.
3892 * switch-c.adb: Recognize flag -gnates.
3893 * usage.adb: Document flag -gnates.
3895 2014-01-20 Thomas Quinot <quinot@adacore.com>
3897 * s-tadeca.adb: Fix minor typos in comment.
3899 2014-01-20 Pascal Obry <obry@adacore.com>
3901 * s-win32.ads (FreeLibrary): New import.
3903 2014-01-20 Robert Dewar <dewar@adacore.com>
3905 * sem_res.adb, sem_cat.adb: Minor reformatting.
3906 * sem_ch11.adb (Analyze_Raise_Statement): Only give warning about
3907 assigning to OUT parameters for the current subprogram scope.
3908 * exp_ch4.adb: Minor reformatting.
3910 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3912 * exp_ch4.adb (Process_Transient_Object,
3913 Find_Enclosing_Contexts): If the top-level if-expression that
3914 generated the transient object is an actual in a call, the proper
3915 Hook_Context is a construct enclosing the call.
3916 * einfo.ads: Indicate that Related_Expression is used to link a
3917 loop variable to the container expression over which the loop
3919 (Analyze_Iterator_Specification): Set the Related_Expression of
3920 the loop variable in a container element iterator.
3921 (Note_Possible_Modification): If the variable is the loop
3922 variable in a container element iterator, indicate that the
3923 enclosing container is also modified.
3925 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
3927 * aspects.adb (Move_Or_Merge_Aspects): Reimplemented.
3929 2014-01-20 Robert Dewar <dewar@adacore.com>
3931 * s-taasde.ads, gnat_ugn.texi, s-tadeca.adb, sem_res.adb, s-tadeca.ads:
3932 Minor reformatting and code clean up.
3934 2014-01-20 Arnaud Charlet <charlet@adacore.com>
3936 * sem_cat.adb (Validate_Object_Declaration): Relax semantics
3937 of objects of private type if Relaxed_RM_Semantics.
3939 2014-01-20 Claire Dross <dross@adacore.com>
3941 * a-cofove.ads (Vector): Capacity discriminant
3942 should be in range of the index.
3944 2014-01-20 Thomas Quinot <quinot@adacore.com>
3946 * a-caldel.ads(To_Duration), s-taasde.ads(Time_Enqueue):
3947 Clarify specs s-tadeca.adb(Enqueue_Calendar): Compensate for
3948 possible difference between epoch of Ada.Calendar clock and Ada
3949 real-time/tasking clock.
3950 * s-taprop-posix.adb: Minor comment fix.
3952 2014-01-20 Doug Rupp <rupp@adacore.com>
3954 * sysdep.c [vxworks]: Remove Vxworks version noise for RTP.
3956 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
3958 * exp_attr.adb (Expand_N_Attribute_Reference): Generate validity
3959 checks on the prefix of attribute 'Old.
3960 * sem_ch3.adb (Process_Range_Expr_In_Decl): Suppress the
3961 generation of validity checks on a range that belongs to the
3962 iteration scheme of a quantified expression.
3963 * sem_ch5.adb (One_Bound): Suppress the generation of validity
3964 checks on a bound that belongs to the iteration scheme of a
3965 quantified expression, generate the check in all other cases.
3967 2014-01-20 Bob Duff <duff@adacore.com>
3969 * gnat_ugn.texi: Enable --pp-new by default. Minor reorganization.
3971 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3973 * sem_res.adb (Resolve): When compiling a predefined unit, ignore
3974 interpretations that do not come from other predefined units,
3975 to prevent spurious ambiguities in the presence of user-defined
3976 operators in the context of (an instance of) a predefined unit.
3978 2014-01-20 Robert Dewar <dewar@adacore.com>
3980 * gnat_rm.texi: Document that Loop_Variant is included in
3981 Statement_Assertions.
3982 * sem_prag.adb (Check_Kind): Add Loop_Variant to
3983 Statement_Assertions (Check_Applicable_Policy): Add Loop_Variant
3984 to Statement_Assertions.
3986 2014-01-20 Doug Rupp <rupp@adacore.com>
3988 * sysdep.c (__gnat_is_file_not_found_error) [vxworks6]: Add case
3989 for errno ENOENT from RTP on NFS mounted file system.
3991 2014-01-20 Ed Schonberg <schonberg@adacore.com>
3993 * sem_util.adb (Check_Function_Writable_Actuals): 1) Do not
3994 examine code that does not come from source. The check does not
3995 apply to code generated for constraint checks, and such code may
3996 generate spurious error messages when compiled with expansion
3997 disabled (as in a generic unit) because side effects may not
3999 2) Make error messages more explicit: indicate the component
4000 of the construct whose value is indeterminate because of a
4001 call to a function with in-out parameter in another component,
4002 when there is no mandated order of execution between the two
4003 components (actuals, aggregate components, alternatives).
4005 2014-01-20 Robert Dewar <dewar@adacore.com>
4007 * gnat_rm.texi: Minor cleanup.
4009 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4011 * sem_attr.adb (Analyze_Attribute): Attributes 'Old and 'Result
4012 can now apply to a refined postcondition.
4013 * sem_ch6.adb (Analyze_Subprogram_Contract): Remove local
4014 variable Result_Seen. Add variables Case_Prag, Post_Prag,
4015 Seen_In_Case and Seen_In_Post. Update the mechanism that detects
4016 whether postconditions and/or constract-cases mention attribute
4017 'Result and introduce a post-state when applied to functions.
4018 (Check_Result_And_Post_State): Removed.
4019 * sem_prag.adb (Analyze_Pragma): Add local variable
4020 Result_Seen. Verify that the expression of pragma Refined_Post
4021 mentions attribute 'Result and introduces a post-state.
4022 * sem_util.ads, sem_util.adb (Check_Result_And_Post_State): New routine.
4024 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4026 * exp_ch7.adb (Is_Subprogram_Call): New routine.
4027 (Process_Transient_Objects): Make variable Must_Hook global with
4028 respect to all locally declared subprograms. Search the context
4029 for at least one subprogram call.
4030 (Requires_Hooking): Removed.
4032 2014-01-20 Claire Dross <dross@adacore.com>
4034 * a-cfdlli.ads a-cfhama.ads a-cfhase.ads a-cforma.ads
4035 * a-cforse.ads a-cofove.ads: Add pragma Annotate (GNATprove,
4036 External_Axiomatization);
4038 2014-01-20 Robert Dewar <dewar@adacore.com>
4040 * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Allow
4041 Loop_Entry in Assert, Assert_And_Cut, and Assume pragmas.
4042 * sem_prag.adb (Analyze_Pragma, case Assert[_And_Cut], Assume):
4043 Allow Loop_Entry to be used in these pragmas if they appear in
4044 an appropriate context.
4045 (Placement_Error): Specialize error
4046 message for pragma Assert[_And_Cut] or pragma Assume containing
4047 Loop_Entry attribute.
4048 * a-exexpr-gcc.adb, sinput.adb: Minor reformatting.
4049 * s-excmac-arm.ads, s-except.ads, s-excmac-gcc.ads: Minor reformatting
4052 2014-01-20 Robert Dewar <dewar@adacore.com>
4054 * gnat1drv.adb: Minor comment update.
4056 2014-01-20 Tristan Gingold <gingold@adacore.com>
4058 * raise-gcc.c (PERSONALITY_FUNCTION/arm): Remove unused
4059 variables, comment out unused code.
4060 * a-exexpr-gcc.adb: Move declarations to s-excmac-gcc.ads
4061 * s-excmac-gcc.ads: New file, extracted from a-exexpr-gcc.adb
4062 * s-excmac-arm.ads: New file.
4064 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4066 * exp_ch4.adb (Expand_N_Slice): Remove constant D and variables
4067 Drange and Index_Typ. Remove the circuitry which creates a
4068 range check to compare the index type of the array against the
4070 * sem_res.adb (Resolve_Slice): Add local variable Dexpr. Update
4071 the circuitry which creates a range check to handle a
4072 discrete_range denoted by a subtype indication.
4074 2014-01-20 Pierre-Marie Derodat <derodat@adacore.com>
4076 * sinput.adb, sinput.ads (Sloc_Range): Traverse the tree of original
4077 nodes to get the original sloc range.
4079 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4081 * sem_prag.adb (Analyze_Pragma): Use Defining_Entity to obtain the
4082 entity of a [library level] package.
4084 2014-01-20 Tristan Gingold <gingold@adacore.com>
4086 * raise-gcc.c (exception_class_eq): New function.
4087 (is_handled_by): Use it to compare exception classes.
4088 (PERSONALITY_STORAGE): Define. (continue_unwind): New function to
4089 be called to return URC_CONTINUE_UNWIND.
4090 (personality_body): New function, extracted from PERSONALITY_ROUTINE.
4091 (PERSONALITY_ROUTINE): Add an implementation for the ARM unwinder.
4093 2014-01-20 Robert Dewar <dewar@adacore.com>
4095 * opt.ads: Minor comment update.
4097 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4099 * exp_ch4.adb (Expand_N_Slice): Relocate some variables and
4100 constants to the "Local variables" area. Add new constant D. Add
4101 new variables Drange and Index_Typ. Rename Pfx to Rep and Ptp
4102 to Pref_Typ and update all occurrences. Add circuitry to extract
4103 the discrete_range and the index type and build a range check.
4105 2014-01-20 Arnaud Charlet <charlet@adacore.com>
4107 * gnat1drv.adb (Adjust_Global_Switches): Enable
4108 Treat_Categorization_Errors_As_Warnings when Relaxed_RM_Semantics
4111 2014-01-20 Thomas Quinot <quinot@adacore.com>
4113 * sem_ch5.adb, sem_ch4.adb: Minor reformatting.
4115 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4117 * sem_ch13.adb (Analyze_Aspect_Specifications):
4118 When aspect SPARK_Mode appears on a package body, insert the
4119 generated pragma at the top of the body declarations.
4121 2014-01-20 Robert Dewar <dewar@adacore.com>
4123 * sem_aggr.adb, exp_prag.adb, sem_aux.adb, sinfo.ads, sem_ch10.adb,
4124 checks.adb, sem_prag.adb, sem_ch12.adb, freeze.adb, g-arrspl.adb,
4125 expander.adb, gnat1drv.adb, exp_ch4.adb, sem_ch6.adb,
4126 sem_ch8.adb, exp_dist.adb: Minor reformatting.
4128 2014-01-20 Yannick Moy <moy@adacore.com>
4130 * gnat1drv.adb (Gnat1drv): Call Write_ALI with Object=True in GNATprove
4133 2014-01-20 Pascal Obry <obry@adacore.com>
4135 * g-arrspl.ads (Slice_Set): New definition (will use a copy on
4137 * g-arrspl.adb: Adapt all routine to this new implementation.
4138 (Set): Copy the Slice_Set definition before reusing it.
4140 2014-01-20 Arnaud Charlet <charlet@adacore.com>
4142 * sem_prag.adb (Process_Import_Or_Interface): In
4143 Relaxed_RM_Semantics, support old Ada 83 style of pragma Import.
4144 (Analyze_Pragma): Ditto for pragma Export.
4145 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Handle old pragma
4148 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4150 * einfo.ads: E_Abstract_State is now part of the entities that
4151 can be overloaded. Update type Overloadable_Kind to reflect the
4152 inclusion of abstract states.
4153 * sem_ch6.adb (New_Overloaded_Entity): A function can now
4154 overload an abstract state.
4155 * sem_prag.adb (Analyze_Constituent): Handle the overloading
4156 of states by functions. Use Entity_Of to obtain the entity of
4157 a constituent. (Analyze_Global_Item): Handle the overloading of
4158 states by functions.
4159 (Analyze_Initialization_Item): Handle the
4160 overloading of states by functions. Use Entity_Of to obtain the
4162 (Analyze_Input_Item): Handle the overloading
4163 of states by functions. Use Entity_Of to obtain the entity of an item.
4164 (Analyze_Input_Output): Handle the overloading of states by functions.
4165 (Analyze_Refinement_Clause): Handle the overloading
4166 of states by functions. Use Entity_Of to obtain the entity of an item.
4167 (Appears_In): Use Entity_Of to obtain the entity of an element.
4168 (Check_Usage): Use Entity_Of to obtain the entity of
4169 an item. Add a guard to prevent a crash due to a previous error.
4170 (Resolve_State): New routine.
4172 2014-01-20 Yannick Moy <moy@adacore.com>
4174 * spark_xrefs.ads, debug.adb, gnat1drv.adb, errout.adb, errout.ads,
4175 opt.ads: Minor comments updates.
4177 2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4179 * einfo.adb (Non_Limited_View): Applies to abstract states.
4180 (Set_From_Limited_With): Applies to abstract states.
4181 (Set_Non_Limited_View): Applies to abstract states.
4182 (Write_Field17): Output the non-limited view of an abstract state.
4183 * einfo.ads: Update the comment on usage and occurrences in
4184 nodes for attributes From_Limited_With and Non_Limited_View.
4185 * sem_aux.adb (Available_View): This routine can now handle
4187 * sem_aux.ads (Available_View): This routine can now handle
4188 abstract states. Update the comment on usage.
4189 * sem_ch8.adb (Find_Expanded_Name): Handle abstract views
4190 of states and variables.
4191 (In_Pragmas_Depends_Or_Global): New routine.
4192 * sem_ch10.adb (Build_Limited_Views): Implement
4193 abstract (limited) views of variables and states.
4194 (Build_Shadow_Entity): This routine is now a procedure. Add
4195 formal parameter Shadow. Update the comment on usage. Add
4196 context-specific decoration for states and variables.
4197 (Decorate_State): New routine. (Decorate_Variable): New routine.
4198 (Find_And_Process_States): New routine.
4199 (Process_Declarations): Renamed to Process_Declarations_And_States.
4200 (Process_Declarations_And_States): Add formal parameters
4201 Pack and Create_Abstract_Views. Update the comment on usage.
4202 (Process_States): New routine.
4203 * sem_prag.adb (Check_Dependency_Clause): Handle abstract
4204 views of states and variables. Match the abstract view of a state
4205 against its corresponding non-abstract view.
4206 (Is_Matching_Input):
4207 Handle abstract views of states and variables. Match the abstract
4208 view of a state against its corresponding non-abstract view.
4209 (Process_Global_Item): Handle abstract views of states and
4212 2014-01-20 Bob Duff <duff@adacore.com>
4214 * sem_ch10.adb (Expand_With_Clause): Don't
4215 recurse on the prefix if the current with-ed name refers to a
4216 package that renames its own parent, eg "package P.Q renames P;".
4218 2014-01-20 Yannick Moy <moy@adacore.com>
4220 * exp_spark.adb (Expand_SPARK_Call): Remove procedure.
4221 * opt.adb, opt.ads (Full_Expander_Active): Remove function.
4222 * checks.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb, sem_aggr.adb,
4223 * sem_ch10.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb,
4224 * sem_disp.adb, sem_res.adb Replace Full_Expander_Active by
4227 2014-01-20 Yannick Moy <moy@adacore.com>
4229 * sinfo.ads Update documentation of GNATprove mode.
4231 2014-01-20 Yannick Moy <moy@adacore.com>
4233 * adabkend.adb, ali-util.adb, errout.adb, exp_ch7.adb,
4234 * exp_dbug.adb, freeze.adb, lib-xref.adb, restrict.adb,
4235 * sem_attr.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb,
4236 * sem_prag.adb, sem_res.adb, sem_util.adb Rename SPARK_Mode into
4238 * sem_ch13.adb: Remove blank.
4239 * exp_spark.adb, exp_spark.ads (Expand_SPARK_Call): Only replace
4240 subprograms by alias for renamings, not for inherited primitive
4242 * exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion
4244 (Remove_Side_Effects): Apply the removal in
4245 GNATprove mode, for the full analysis of expressions.
4246 * expander.adb (Expand): Call the light SPARK expansion in GNATprove
4248 (Expander_Mode_Restore, Expander_Mode_Save_And_Set): Ignore
4249 save/restore actions for Expander_Active flag in GNATprove mode,
4250 similar to what is done in ASIS mode.
4251 * frontend.adb (Frontend): Generic bodies are instantiated in
4253 * gnat1drv.adb (Adjust_Global_Switches): Set operating
4254 mode to Check_Semantics in GNATprove mode, although a light
4255 expansion is still performed.
4256 (Gnat1drv): Set Back_End_Mode to
4257 Declarations_Only in GNATprove mode, and later on special case
4258 the GNATprove mode to continue analysis anyway.
4259 * lib-writ.adb (Write_ALI): Always generate ALI files in
4261 * opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to
4263 (SPARK_Mode): Renamed as GNATprove_Mode.
4264 * sem_aggr.adb (Aggregate_Constraint_Checks): Add checks in the
4265 tree in GNATprove_Mode.
4266 * sem_ch12.adb (Analyze_Package_Instantiation): Always instantiate
4267 body in GNATprove mode.
4268 (Need_Subprogram_Instance_Body): Always instantiate body in GNATprove
4270 * sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):
4271 Make sure side effects are removed in GNATprove mode.
4273 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
4275 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Robustify tests
4276 for aliased objects with an unconstrained nominal subtype.
4277 * gcc-interface/trans.c (Call_to_gnu): Likewise.
4278 (gnat_to_gnu) <case N_Op_Not>: Robustify test for private type.
4279 <case N_Op_Minus>: Remove useless code.
4280 (Exception_Handler_to_gnu_zcx): Minor tweaks.
4282 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
4284 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Record_Subtype>:
4285 Tidy up. For a subtype with discriminants and variant part, if a
4286 variant is statically selected and the fields all have a constant
4287 position, put them in order of increasing position. Likewise if
4288 no variant part but representation clause is present.
4289 * gcc-interface/utils.c (make_packable_type): Robustify.
4290 (maybe_pad_type): Use local variable and tidy up condition. If no
4291 alignment is specified, use the original one.
4292 (create_type_stub_decl): Minor tweak.
4293 (convert) <case VECTOR_CST>: Fix typo.
4294 <case CONSTRUCTOR>: Deal with padding types around the same type.
4295 Do not punt on missing fields.
4296 (unchecked_convert): Call finish_record_type to lay out the special
4297 record types made for conversions from/to problematic integer types.
4298 Bump the alignment of CONSTRUCTORs before converting them to a more
4301 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
4303 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Component>: Remove
4304 obsolete code for type_annotate_only mode, simplify code and slightly
4305 improve wording of comments.
4307 2014-01-12 Eric Botcazou <ebotcazou@adacore.com>
4310 * gcc-interface/cuintp.c (build_cst_from_int): Use 32-bit integer type
4311 as intermediate type.
4312 (UI_To_gnu): Likewise.
4314 2014-01-03 Eric Botcazou <ebotcazou@adacore.com>
4316 * gnatvsn.ads (Current_Year): Bump to 2014.
4318 2014-01-02 Tobias Burnus <burnus@net-b.de>
4320 * gnat_ugn.texi: Bump @copying's copyright year.
4322 Copyright (C) 2014 Free Software Foundation, Inc.
4324 Copying and distribution of this file, with or without modification,
4325 are permitted in any medium without royalty provided the copyright
4326 notice and this notice are preserved.