* gcc-interface/utils2.c (build_simple_component_ref): Fix formatting.
[official-gcc.git] / gcc / ada / ChangeLog
blob9ab0bb23b47af16e3107b90ece5eb44c09862478
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
5         the base object.
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,
16         not Constraint_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
41         Iterable aspect.
42         * exp_ch5.adb (Build_Formal_Container_Iteration): Utility
43         to create declaration and loop statements for both forms of
44         container iterators.
45         (Expand_Formal_Container_Element_Iterator): New procedure
46         to handle loops of the form  "for E of C" when C is a formal
47         container.
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
55         of aspect vs pragma.
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
62         is on one line.
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
71         of Refined_Global.
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
81         to use Role_Error.
82         (Check_Mode_Restriction_In_Enclosing_Context): Use "\" for error
83         message continuation.
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
92         unconstrained types.
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
104         options.
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
122         multiple of 8.
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
137         other types.
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
148         predicate mismatch.
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
198         routine.
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
245         reformatting.
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
273         of Null_String_Id.
275 2014-02-20  Matthew Heaney  <heaney@adacore.com>
277         * a-chtgbk.adb (Replace): Use correct offset when calculating bucket
278         index.
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
308         for Reason argument.
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
317         Standard_Void_Type.
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
331         serious error.
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
338         now always made.
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
369         operation.
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
373         tampering.
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):
379         Detect tampering.
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
391         container.
392         (Update_Element_Preserving_Key): Detect tampering.
393         * a-cbhase.adb (Difference, Find, Is_In): Use variable view
394         of container.
395         (Is_Subset): Ditto.
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
408         of -nostdinc.
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
439         reformatting.
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
448         are resolved.
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
457         formal container.
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
488         operation Element.
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
498         generics.
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
508         longer needed).
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
520         declarations.
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
537         inside a generic.
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
545         signatures.
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
567         up with RETURN.
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
581         first token
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
586         token on line.
587         * stylesw.ads (Style_Check_If_Then_Layout): Document new
588         relaxed rules.
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
636         not work.
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
641         (moved from body).
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
649         prematurely removed.
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
699         the object paths.
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
728         representation.
730 2014-02-19  Hristian Kirtchev  <kirtchev@adacore.com>
732         * lib-xref.ads Remove the small table of letter and symbol usage as we
733         already have one.
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
800         formal container.
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
844         for now.
845         * exp_ch4.ads (Expand_N_Reference): Removed, problematic and
846         not needed for now.
847         * exp_util.ads, exp_util.adb (Power_Of_Two): New function.
848         * expander.adb: Remove call to Expand_N_Reference (problematic,
849         and not needed now).
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
871         use in nodes.
872         (In_Assertion_Expression): Removed along with
873         pragma Inline.  (Set_In_Assertion_Expression): Removed along
874         with pragma Inline.
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
905         primitive types.
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
922         Max attributes.
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
939         GNATprove mode.
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
945         procedure.
947 2014-02-06  Sergey Rybin  <rybin@adacore.com frybin>
949         * gnat_ugn.texi, vms_data.ads: Add documentation of '-t' option for
950         gnatmetric/gnatpp.
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
956         "declaration".
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
968         sem_util.adb.
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
975         reformatting.
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
990         mixed case.
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
1009         properties.
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
1021         gnatmetric.
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
1054         stack-like fasion.
1055         (Analyze_Subprogram_Body_Stub): Maintain the
1056         configuration options of the enclosing context in a stack-like
1057         fashion.
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
1068         if -gnatd.u set.
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
1085         On_New_Tree_Loaded.
1086         * prj-conf.adb (Parse_Project_And_Apply_Config): new parameter
1087         On_New_Tree_Loaded.
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
1097         gnatelim.
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
1111         its usage in nodes.
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
1121         function call.
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
1135         if gnatd.V set.
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
1166         before the routine.
1167         * exp_ch6.adb (Build_Postconditions_Procedure):
1168         Insert the generated _Postconditions routine
1169         before the first source declaration of the related
1170         subprogram.
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
1197         use of SPARK_Mode.
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
1214         in GNATprove_Mode.
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
1259         global mode.
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
1310         instead of Replace.
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
1347         use temporary.
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
1382         refinement clause.
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
1404         GNATprove_Mode.
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
1449         SPARK use.
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
1481         entity.
1483 2014-01-31  Robert Dewar  <dewar@adacore.com>
1485         * exp_ch9.adb, s-tassta.adb, s-tposen.adb, s-tposen.ads: Minor
1486         reformatting.
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
1525         entries.
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
1530         warnings.
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
1540         single_entry case.
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
1544         Self_Id parameter.
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
1581         the sole property.
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
1602         visible state.
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
1606         placement location.
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
1650         previous patch.
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
1671         project tree.
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
1676         project tree.
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
1694         and Optimization.
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
1704         usage in nodes.
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
1727         Canonical_Aspect.
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
1737         node usage.
1738         (Encapsulating_State): New routine.
1739         (Get_Pragma):
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
1751         usage in entities.
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
1760         by the parser.
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
1806         Initializes.
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
1821         for pragma Part_Of.
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
1829         package.
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
1860         or a variable.
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
1881         machine as needed.
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
1907         specification.
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
1926         instance.
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
1938         reorganization.
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
1967         declarations.
1968         (Analyze_Package_Declaration): Set SPARK_Mode only for non-generic
1969         packages.
1970         * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): Implement new
1971         consistency rules.
1973 2014-01-27  Robert Dewar  <dewar@adacore.com>
1975         * sem_res.adb (Resolve_Comparison_Op): Add type name/location
1976         to unordered msg.
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
2045         for protected body.
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
2087         projects.
2089 2014-01-27  Robert Dewar  <dewar@adacore.com>
2091         * sem_ch8.adb (Find_Selected_Component): Use Replace instead
2092         of Rewrite.
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
2100         encodings.
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
2133         satisfied.
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
2165         than Off.
2166         * opt.ads: Remove AUTO from SPARK_Mode_Type SPARK_Mode_Type is
2167         no longer ordered.
2168         * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Remove AUTO
2169         possibility.
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
2176         or block.
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
2183         length check.
2185 2014-01-27  Yannick Moy  <moy@adacore.com>
2187         * get_spark_xrefs.adb (Get_SPARK_Xrefs): Accept new type 'c' for
2188         reference.
2189         * lib-xref-spark_specific.adb (Is_Global_Constant): Remove useless
2190         function now.
2191         (Add_SPARK_Xrefs): Include references to constants.
2192         * spark_xrefs.ads Document new character 'c' for references to
2193         constants.
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
2213         value.
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
2225         related entity.
2226         * exp_ch6.adb (Expand_Subprogram_Contract): Update comment on
2227         generated code.
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
2256         with references.
2257         (Analyze_Initializes_In_Decl_Part): Do not
2258         collect the states and variables when the initialization list
2259         is null.
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
2272         Proof_In states.
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
2288         with a areference.
2289         (Check_Matching_Constituent): Enhance the error message with a
2290         reference.
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
2296         reference.
2297         (Check_Mode_Restriction_In_Function): Enhance the error message with
2298         a reference.
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
2307         for Proof_In items.
2308         (Create_Or_Modify_Clause): Enchance
2309         the error message with a reference.
2310         (Find_Mode): Add
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
2345         check.
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
2357         -gnatet/-gnateT.
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
2371         maintained.
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
2405         function.
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
2414         Target_Short_Enums.
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
2418         Target_Short_Enums.
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
2433         stripped off.
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
2448         attached.
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
2485         the object itself.
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
2518         into account.
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
2526         of iteration.
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
2548         considered valid.
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
2581         generated)
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
2591         not default.
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
2599         to False
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
2603         default verbosity.
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
2679         projects.
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
2705         aggregate projects.
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
2722         the same source.
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
2735         prepend_attributes.
2736         <object>: Deal with a pragma Linker_Section on a constant
2737         or variable.  <E_Function>: Deal with a pragma Linker_Section
2738         on a subprogram.
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
2748         for junk operand.
2749         * sem_util.adb (Is_Refined_State): Add defense against junk
2750         tree from error.
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
2759         setting.
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
2766         message.
2767         (Analyze_Attribute, case 'Loop_Entry): Apply SPARK 2014 legality
2768         rule regarding potentially unevaluated expressions, to prefix
2769         of attribute.
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
2811         'e' reference.
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
2832         msg on VMS.
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
2852         names on windows.
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
2901         not performed.
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
2917         comes from source.
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
2923         source navigation.
2925 2014-01-22  Robert Dewar  <dewar@adacore.com>
2927         * lib.adb (In_Extended_Main_Code_Unit): Return False for
2928         Standard_Location.
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
2937         the same unit.
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
2992         errors.
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
3038         in Warnings table.
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
3071         GNATprove_Mode.
3072         * gnat1drv.adb (Adjust_Global_Switches): Do not suppress frontend
3073         warnings anymore.
3075 2014-01-22  Robert Dewar  <dewar@adacore.com>
3077         * sem_prag.adb (Analyze_Initializes_In_Decl_Part): Handle null
3078         initializes case.
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
3097         as expected.
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
3107         cascaded error.
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
3130         arm.
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
3168         libraries.
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
3197         not have one.
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
3218         include "others".
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):
3322         New routine.
3323         (Is_Unchecked_Conversion_Instance): New routine.
3324         (Is_Volatile_Object): Add support for entities that may denote
3325         a volatile object.
3326         * sem_util.ads (Add_Contract_Item): Update the
3327         comment on usage.
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
3354         spec.
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
3383         From_Extended
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):
3391         Removed.
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,
3426         invalid target).
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
3456         parameter.
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,
3487         remove from doc.
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
3542         declaration.
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
3571         from spec if needed
3572         * sem_ch7.adb (Analyze_Package_Body_Helper): Reset SPARK_Mode
3573         from spec if needed
3574         * sem_ch8.adb (Push_Scope): Save SPARK_Mode (Pop_Scope):
3575         Restore SPARK_Mode
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
3587         SPARK_Mode_Type
3589 2014-01-20  Ed Schonberg  <schonberg@adacore.com>
3591         * sem_ch13.adb: Add semantic information to rewritten type
3592         reference.
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 ]
3637         in error messages.
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
3646         messages.
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
3654         prefix of a slice.
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
3667         existing tests.
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
3682         GNATprove mode.
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
3687         aspects.
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
3698         on removed flag.
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
3709         aggregate form.
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
3716         compatibility.
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
3759         function.
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
3785         an exponentiation.
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
3821         followed by free.
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
3853         it makes no sense.
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
3889         switch set.
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
3918         takes place.
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
3998         have been removed.
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
4050         and code clean ups.
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
4069         discrete_range.
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
4109         is set.
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
4131         mode.
4133 2014-01-20  Pascal Obry  <obry@adacore.com>
4135         * g-arrspl.ads (Slice_Set): New definition (will use a copy on
4136         write scheme).
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
4146         Import style.
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
4161         entity of an item.
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
4186         abstract states.
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
4210         variables.
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
4225         Expander_Active.
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
4237         GNATprove_Mode.
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
4241         operations.
4242         * exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion
4243         in GNATprove mode.
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
4247         mode.
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
4252         GNATprove mode.
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
4260         GNATprove mode.
4261         * opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to
4262         Expander_Active.
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
4269         mode.
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
4299         aligned type.
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>
4309         PR ada/59772
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.