PR rtl-optimization/79386
[official-gcc.git] / gcc / ada / ChangeLog-2012
blob4949e047dbf0b102f398daeafb67c38189cc48db
1 2012-12-21  Ed Schonberg  <schonberg@adacore.com>
3         PR ada/53737
4         * sem_ch12.adb (Analyze_Associations): Do not check the legality of
5         actuals for RACW types if this is an internal instantiation for a formal
6         package with defaulted parameters.
8 2012-12-21  Eric Botcazou  <ebotcazou@adacore.com>
10         * adaint.c: Move directive around.
11         * argv.c: Likewise.
12         * cio.c: Likewise.
13         * cstreams.c: Likewise.
14         * env.c: Likewise.
15         * exit.c: Likewise.
16         * init.c: Likewise.
17         * initialize.c: Likewise.
18         * raise.c: Likewise.
19         * seh_init.c: Likewise.
20         * targext.c: Likewise.
22 2012-12-15  Eric Botcazou  <ebotcazou@adacore.com>
23             Martin Ettl  <ettl.martin@gmx.de>
25         PR ada/53996
26         * gcc-interface/utils.c (gnat_type_for_size): Use %u in lieu of %d.
28 2012-12-11  Eric Botcazou  <ebotcazou@adacore.com>
30         * gcc-interface/Make-lang.in (RTS_DIR): Define only if Ada is enabled.
32 2012-12-08  Eric Botcazou  <ebotcazou@adacore.com>
34         * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Assert
35         that the type of the prefix is ultimately an array.
37 2012-12-08  Eric Botcazou  <ebotcazou@adacore.com>
39         * gcc-interface/trans.c (Subprogram_Body_to_gnu): Be prepared for a
40         by-ref VAR_DECL in the case of an Out parameter passed by copy.
42 2012-12-05  Robert Dewar  <dewar@adacore.com>
44         * par_sco.adb, sem_prag.adb, put_scos.adb, get_scos.adb: Minor
45         reformatting.
47 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
49         * sem_ch3.adb: Code clean up.
51 2012-12-05  Arnaud Charlet  <charlet@adacore.com>
53         * gcc-interface/Make-lang.in: Update dependencies.
54         * gcc-interface/lang.opt: New language AdaSCIL.
55         * gcc-interface/lang-specs.h: Add specs for adascil language.
57 2012-12-05  Thomas Quinot  <quinot@adacore.com>
59         * par_sco.adb (Traverse_Aspects): Ensure we always have
60         an entry in the sloc -> SCO map for invariants, since
61         Set_SCO_Pragma_Enabled is called with that sloc when checks
62         are enabled.
64 2012-12-05  Thomas Quinot  <quinot@adacore.com>
66         * exp_ch4.adb: Minor reformatting.
68 2012-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
70         * par-prag.adb: Checks and processing of pragma Assume are
71         carried out by Sem_Prag.
72         * sem_prag.adb (Analyze_Pragma): Check the legality of pragma
73         Assume.
74         * snames.ads-tmpl: Add new name Assume. Add a pragma identifier
75         for Assume.
77 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
79         * aspects.ads, aspects.adb: Add aspect Relative_Deadline.
80         * sem_ch13.adb (Analyze_Aspect_Specifications): Process aspect
81         Relative_Deadline, and introduce the corresponding pragma within
82         the task definition of the task type to which it applies.
83         (Check_Aspect_At_Freeze_Point): Expression in a Relative_Deadline
84         aspect is of type Time_Span.
86 2012-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
88         * sem_prag.adb (Check_Loop_Invariant_Variant_Placement): When pragma
89         Loop_[In]variant does not appear immediately within the statements
90         of a loop, it must appear in a chain of nested blocks.
92 2012-12-05  Thomas Quinot  <quinot@adacore.com>
94         * sem_ch13.adb: Minor reformatting.
95          Remove redundant assertion.
97 2012-12-05  Thomas Quinot  <quinot@adacore.com>
99         * par_sco.adb, scos.ads, put_scos.adb, put_scos.ads,
100         get_scos.adb: Generation of SCOs for aspects.
102 2012-12-05  Thomas Quinot  <quinot@adacore.com>
104         * sem_prag.adb (Check_Precondition_Postcondition): Remove
105         redundant call to Set_SCO_Pragma_Enabled (the pragma will be
106         rewritten into a pragma Check later on, and the call will be
107         made when processing the rewritten pragma).
108         (Analyze_Pragma, case Pragma_Check): Omit call to
109         Set_SCO_Pragma_Enabled if Split_PPC is set.
111 2012-12-05  Olivier Hainque  <hainque@adacore.com>
113         * tracebak.c: Add partial support for Lynx178.
115 2012-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
117         * sem_attr.adb (Analyze_Attribute): Improve
118         the error message related to loop assertions.
120 2012-12-05  Gary Dismukes  <dismukes@adacore.com>
122         * atree.ads: Minor reformatting.
124 2012-12-05  Robert Dewar  <dewar@adacore.com>
126         * atree.ads, par-ch4.adb, sem_attr.adb, sem_ch13.adb: Minor
127         reformatting.
129 2012-12-05  Eric Botcazou  <ebotcazou@adacore.com>
131         * gnat_ugn.texi (Switches for gcc): Document -flto and reorder.
133 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
135         * par-ch5.adb (P_Condition): Handle properly Ada 2012
136         expressions that must be parenthesized before checking for
137         redundant parentheses when that check is enabled.
139 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
141         * par-ch4.adb (P_Allocator): In Ada 2012 (AI05-0104)  an
142         uninitialized allocator cannot carry an explicit not null
143         indicator.
144         * sem_ch4.adb (Analyze_Allocator): Remove code that implements
145         the check for AI05-0104, the check is syntactic and performed
146         in the parser.
148 2012-12-05  Geert Bosch  <bosch@adacore.com>
150         * sem_attr.adb (Analyze_Attribute): Use base type for floating
151         point attributes.
153 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
155         * sem_ch13.adb (Analyze_Aspect_Specifications,
156         Ahalyze_Aspect_Default_Value): For a scalar type attach default
157         value to base type as well, because it is a type-specific aspect
158         even though it can be specified on a first subtype.
160 2012-12-05  Yannick Moy  <moy@adacore.com>
162         * urealp.ads: Minor rewording.
164 2012-12-05  Yannick Moy  <moy@adacore.com>
166         * aspects.ads (No_Duplicates_Allowed): Forbid use of duplicate
167         Contract_Cases aspects.
168         * sem_prag.adb (Analyze_Pragma/Pragma_Contract_Case): Rename
169         POST_CASE into CONTRACT_CASE in both grammar and code, to be
170         consistent with current language definition.  Issue a more precise
171         error message when the pragma duplicates another pragma or aspect.
173 2012-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
175         * exp_attr.adb (Expand_N_Attribute_Reference): Add processing
176         for attribute Update.
177         (Expand_Update_Attribute): New routine.
178         * par-ch4.adb (P_Name): The sole expression of attribute Update
179         is an aggregate, parse it accordingly.
180         * sem_attr.adb (Analyze_Attribute): Verify the legality of
181         attribute Update.
182         (Eval_Attribute): Attribute Update does not
183         need evaluation because it is never static.
184         * snames.ads-tmpl: Add Name_Update to the list of special names
185         recognized by the compiler. Add an Attribute_Id for Update.
187 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
189         * exp_util.adb (Remove_Side_Effects): For purposes of removing
190         side effects, qualified expressions do not receive a special
191         treatment, even though in Ada 2012 they are defined  as object
192         references.
194 2012-12-05  Thomas Quinot  <quinot@adacore.com>
196         * par-ch3.adb: Minor reformatting.
198 2012-12-05  Thomas Quinot  <quinot@adacore.com>
200         * exp_dist.adb (Build_From_Any_Call, Build_To_Any_Call,
201         Build_TypeCode_Call): For a used-defined subtype, always go to
202         the first subtype of the base type.
204 2012-12-05  Thomas Quinot  <quinot@adacore.com>
206         * exp_dist.adb: Minor reformatting.
208 2012-12-05  Tristan Gingold  <gingold@adacore.com>
210         * Make-generated.in: Remove the VMS host specific part, as VMS
211         compilers aren't built anymore on VMS.
213 2012-12-05  Thomas Quinot  <quinot@adacore.com>
215         * sem.adb, errout.ads, atree.adb, atree.ads (Check_Error_Detected):
216         Only return quietly if a serious error of configurable run time
217         violation has been found.
219 2012-12-05  Yannick Moy  <moy@adacore.com>
221         * sem_res.adb (Resolve_Type_Conversion): In Alfa_Mode, do not apply
222         conversion checks.
224 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
226         * exp_ch5.adb (Expand_N_Assignment_Statement): Handle properly
227         the generation of discriminant checks when the left-hand side
228         has a type with hidden discriminants.
229         * sem_ch3.ads (Is_Visible_Component): Add defaulted parameter to
230         specify the node on which component visibility is being checked.
231         * sem_ch3.adb (Is_Visible_Component): Use new parameter to
232         determine whether the reference comes from a type conversion to
233         a full view of a private type with unknown discriminants.
234         * sem_ch4.adb (Analyze_Selected_Component): Call
235         Is_Visible_Component with added parameter.
237 2012-12-05  Arnaud Charlet  <charlet@adacore.com>
239         * make.adb: Minor comment update.
241 2012-12-05  Arnaud Charlet  <charlet@adacore.com>
243         * gnatlink.adb: Also use -x adascil in CodePeer mode when
244         calling gcc.
245         * exp_ch5.adb: Minor reformatting.
247 2012-12-05  Bob Duff  <duff@adacore.com>
249         * exp_ch4.adb: Minor comment.
251 2012-12-05  Bob Duff  <duff@adacore.com>
253         * par-ch4.adb: Set Paren_Count correctly for a parenthesized expression
254         containing a conditional expression or quantified expression.
255         * sprint.adb: Update comment.
257 2012-12-05  Bob Duff  <duff@adacore.com>
259         * style.adb, scans.ads, styleg.adb: Update comments.
261 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
263         * sem_ch8.adb (Find_Selected_Component): Handle properly an
264         expanded name whose prefix is the expanded name of an enclosing
265         entry,  that is to say a construct such as T.E.X, where T is an
266         enclosing concurrent type and E is an enclosing entry.
268 2012-12-05  Robert Dewar  <dewar@adacore.com>
270         * lib-writ.adb (Write_ALI): Output T lines.
271         * lib-writ.ads: Minor reformatting. Add documentation of T lines.
272         * opt.ads (Generate_Target_Dependent_Info): New flag.
273         * switch-c.adb (Scan_Switches): Recognize -gnatet switch
274         (target dependent info).
275         * ttypes.ads: Add four letter codes to declarations (for target
276         dependent info).
277         * usage.adb: Add line for -gnatet switch.
279 2012-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
281         * exp_prag.adb (Expand_N_Pragma): Add a call to expand
282         pragma Loop_Variant.
283         (Expand_Pragma_Loop_Assertion): Removed.
284         (Expand_Pragma_Loop_Variant): New routine.
285         * par-prag.adb: Remove Pragma_Loop_Assertion and add two new
286         Pragma_Loop_Invariant and Pragma_Loop_Variant entries.
287         * sem_attr.adb (Analyze_Attribute): Update the code which
288         locates the enclosing pragma.
289         * sem_prag.adb (Analyze_Pragma): Remove the code which analyzes
290         pragma Loop_Assertion as the pragma is now obsolete. Add the
291         machinery to checks the semantics of pragmas Loop_Invariant
292         and Loop_Variant.
293         (Check_Loop_Invariant_Variant_Placement): New routine.
294         * snames.ads-tmpl: Remove name Loop_Assertion. Add new names
295         Loop_Invariant and Loop_Variant.  Rename Name_Decreasing
296         to Name_Decreases and Name_Increasing to Name_Increases.
297         Remove the pragma Id for Loop_Assertion and add two new Ids for
298         Loop_Invariant and Loop_Variant.
300 2012-12-05  Robert Dewar  <dewar@adacore.com>
302         * gnatchop.adb, sem_attr.ads, sem_ch4.adb, sem_ch6.adb, exp_disp.adb,
303         atree.adb, sem_eval.adb: Minor reformatting.
305 2012-12-05  Yannick Moy  <moy@adacore.com>
307         * uintp.adb (UI_Div_Rem): Correct algorithm D to remove potential
308         overflow.
310 2012-12-05  Robert Dewar  <dewar@adacore.com>
312         * exp_ch4.adb (Expand_N_Op_Mod): Minor comment additions.
313         (Expand_N_Op_Rem): Ditto.
315 2012-12-05  Robert Dewar  <dewar@adacore.com>
317         * sem_attr.adb: Minor reformatting.
319 2012-12-05  Robert Dewar  <dewar@adacore.com>
321         * usage.adb: Update lines for -gnato? switch.
323 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
325         * par-ch6.adb (P_Return_Object_Declaration): Do not check for
326         legality of Aliased keyword.
327         * sem_ch6.adb (Analyze_Function_Return): The keyword aliased is
328         legal in an extended return statement only if the return type
329         is immutably limited.
331 2012-12-05  Javier Miranda  <miranda@adacore.com>
333         * exp_disp.adb (Expand_Interface_Thunk): Simplify
334         management of controlling formals.  Required to avoid problems
335         with primitives of internally generated base types associated
336         with constrained tagged types.
338 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
340         * sem_eval.adb: Remove spurious warnings.
342 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
344         * sem_util.adb (Build_Explicit_Dereference): Set properly
345         the type of the prefix prior to rewriting, because subsequent
346         legality checks examine the original node.
348 2012-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
350         * aspects.adb: Add Contract_Cases to the canonical aspects map.
351         * aspects.ads: Add aspect Contract_Cases in the various aspect
352         tables.
353         * par-prag.adb: The parser does not need to perform special
354         actions for pragma Contract_Cases.
355         * sem_ch6.adb (Expand_Contract_Cases): New routine.
356         (Process_Contract_Cases): Convert pragma Contract_Cases into pre-
357         and post- condition checks that verify the runtime state of all
358         case guards and their corresponding consequences.
359         * sem_ch13.adb (Analyze_Aspect_Specifications): Perform
360         various legality checks on aspect Contract_Cases. The aspect is
361         transformed into a pragma.
362         * sem_prag.adb: Add an entry in table Sig_Flags for pragma
363         Contract_Cases.
364         (Analyze_Pragma): Perform various legality
365         checks on pragma Contract_Cases.  The pragma is associated with
366         the contract of the related subprogram.
367         (Chain_CTC): Omit pragma
368         Contract_Cases because it does not introduce a unique case name
369         and does not follow the syntax of Contract_Case and Test_Case.
370         * snames.ads-tmpl: Add new name Name_Contract_Cases. Add a
371         Pragma_Id for Contract_Cases.
373 2012-12-05  Thomas Quinot  <quinot@adacore.com>
375         * sem_ch5.adb: Minor reformatting.
377 2012-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
379         * sem_attr.ads: Add an entry for attribute Loop_Entry in the
380         Attribute_Impl_Def table.
382 2012-12-05  Bob Duff  <duff@adacore.com>
384         * gnatchop.adb (Read_File): Avoid storage leak, and in most cases avoid
385         an extra copy of the string.
387 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
389         * sem_ch5.adb (Preanalyze_Range): If the expression, which
390         denotes some domain of iteration, has a type with implicit
391         dereference, and does not have any iterable aspects, insert
392         dereference to obtain proper container type.
394 2012-12-05  Bob Duff  <duff@adacore.com>
396         * par-ch8.adb (P_Use_Type_Clause): Fix the Sloc for "use all type ..."
397         to point to "use".
399 2012-12-05  Arnaud Charlet  <charlet@adacore.com>
401         * make.adb (Compile): Always pass -x adascil in CodePeer mode.
403 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
405         * s-rident.ads, restrict.ads: Remove discrepancies between the
406         documentation on implementation-defined restrictions, and
407         the internal data structure used for warnings and errors on
408         implementation-defined restriction violations.
410 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
412         * sem_prag.adb (Chain_PPC): Pre- and postcondition aspects
413         are legal on a subprogram body that acts as a spec.
415 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
417         * sem_ch8.adb (Find_Selected_Component): If the selector name is
418         an overloadable entity but the name is not overloaded, generate
419         reference to it rather than delaying this until resolution.
421 2012-12-05  Robert Dewar  <dewar@adacore.com>
423         * checks.ads, checks.adb (Activate_Overflow_Check): No effect for
424         MOD/REM/unary +
425         * exp_ch4.adb (Expand_N_Op_Mod): Remove call to set Do_Overflow_Check.
427 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
429         * sem_ch4.adb (Find_Non_Universal_Interpretation): Use the
430         types of the right operand if the left operand is null.
432 2012-12-05  Sergey Rybin  <rybin@adacore.com frybin>
434         * gnat_ugn.texi, vms_data.ads: document gnatpp -nn option.
436 2012-12-05  Jose Ruiz  <ruiz@adacore.com>
438         * init.c (__gnat_install_handler): For the LEON VxWorks kernel
439         run-time library we need to install a trap handler directly in the
440         trap table (no support by the OS) for the software trap 0.
442 2012-12-05  Eric Botcazou  <ebotcazou@adacore.com>
444         * gnat_rm.texi (Interfacing to C++): Document new restrictions.
446 2012-12-05  Ben Brosgol  <brosgol@adacore.com>
448         * gnat_ugn.texi: Fix typo.
450 2012-12-05  Robert Dewar  <dewar@adacore.com>
452         * gnatbind.adb: Minor reformatting.
454 2012-12-05  Arnaud Charlet  <charlet@adacore.com>
456         * gnat_ugn.texi: Fix typo.
458 2012-12-05  Tristan Gingold  <gingold@adacore.com>
460         * gnatbind.adb: Minor comment update.
462 2012-12-05  Yannick Moy  <moy@adacore.com>
464         * gnat1drv.adb (Adjust_Global_Switches): Set flags to indicate that
465         CodePeer backend deals with divide and overflow checks.
467 2012-12-05  Robert Dewar  <dewar@adacore.com>
469         * gnat_rm.texi: Update overflow description. Pragma Overflow_Checks
470         changed to Overflow_Mode.
472 2012-12-05  Robert Dewar  <dewar@adacore.com>
474         * checks.ads, exp_ch4.adb, gnat1drv.adb, par-prag.adb, sem_prag.adb,
475         snames.ads-tmpl, switch-c.adb, types.ads, checks.adb: Change pragma
476         Overflow_Checks to Overflow_Mode.
477         Separate overflow checking from overflow mode.
478         Several name changes to reflect this separation.
479         CHECKED mode is renamed STRICT mode.
481 2012-12-05  Yannick Moy  <moy@adacore.com>
483         * gnat1drv.adb (Adjust_Global_Switches): Move setting of flags for
484         Alfa mode before general treatment of flags, so that overflow checks
485         settings are set appropriately in Alfa mode. Also set the mode to
486         STRICT in Alfa mode if not already set by the user.
488 2012-12-05  Robert Dewar  <dewar@adacore.com>
490         * sem_ch3.adb: Minor reformatting.
492 2012-12-05  Steve Baird  <baird@adacore.com>
494         * sinfo.ads: Improve comments about SCIL-related node kinds and selector
495         functions.
497 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
499         * sem_ch10.adb (Build_Limited_Views): Even though the unit is
500         not analyzed, place its entity on the name in the with clause,
501         so that warnings on unused with-clause are properly supported
502         for limited withs.
504 2012-12-05  Robert Dewar  <dewar@adacore.com>
506         * gnat_ugn.texi: Update overflow description. Pragma
507         Overflow_Checks changed to Overflow_Mode.
509 2012-12-05  Ed Schonberg  <schonberg@adacore.com>
511         * sem_ch3.adb (Build_Derived_Private_Type): Handle properly a
512         completion in a grand-child unit when the parent type is itself
513         a private type in a child unit whose full view is itself a
514         derivation from a private type.
516 2012-12-05  Gary Dismukes  <dismukes@adacore.com>
518         * exp_attr.adb (Expand_N_Attribute_Reference, case
519         Attribute_Valid): Remove code for issuing warning on Valid within
520         a predicate. Moved to Sem_Attr.  Remove with and use of Errout.
521         * sem_attr.adb (Analyze_Attribute, case Attribute_Valid):
522         Test for prefix's subtype having a predicate and issue warning
523         about infinite recursion if Valid occurs within the subtype's
524         predicate. Warning moved here from Exp_Attr.
526 2012-12-05  Yannick Moy  <moy@adacore.com>
528         * debug.adb: Minor comment addition.
530 2012-12-05  Yannick Moy  <moy@adacore.com>
532         * gnat1drv.adb (Adjust_Global_Switches): In CodePeer mode, check
533         overflows by default, even when the user suppresses overflow checks.
535 2012-12-05  Thomas Quinot  <quinot@adacore.com>
537         * err_vars.ads: Fix minor typo in comment.
539 2012-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
541         * sem_attr.adb (Analyze_Attribute): Do not analyze the attribute
542         arguments when processing Loop_Entry. Rewrite the analysis of
543         attribute Loop_Entry to handle an optional loop name.
544         (Convert_To_Indexed_Component): New routine.
545         (Eval_Attribute): Remove ??? comment and explain
546         why Loop_Entry does not need to be evaluated.
548 2012-12-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
550         PR ada/52110
551         * s-osinte-hpux-dce.ads: Declare pthread_rwlockattr_t and
552         pthread_rwlock_t subtypes.  Delete duplicate declaration of clockid_t.
553         * s-taspri-hpux-dce.ads: Change "pragma Atomic (Thread)" to comment.
555 2012-11-28  Eric Botcazou  <ebotcazou@adacore.com>
557         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use
558         valid_constant_size_p to detect too large objects.
559         <E_Subprogram_Type>: Likewise for too large return types.
560         (allocatable_size_p): Call valid_constant_size_p in the fixed case.
561         (annotate_value) <INTEGER_CST>: Simplify.
562         <BIT_AND_EXPR>: Deal with negative values here.
563         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
564         valid_constant_size_p to detect too large objects on the LHS.
565         * gcc-interface/misc.c (default_pass_by_ref): Likewise for large types.
566         And use TYPE_SIZE_UNIT throughout.
567         (must_pass_by_ref): Likewise.
568         * gcc-interface/utils.c (max_size) <tcc_unary>: Split from common case.
569         <tcc_binary>: Likewise.  Call size_binop instead of fold_build2.
570         <tcc_expression>: Simplify.
571         * gcc-interface/utils2.c (build_allocator): Use valid_constant_size_p
572         to detect too large allocations.
574 2012-11-23  Eric Botcazou  <ebotcazou@adacore.com>
576         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Length>: Look through
577         a view conversion from constrained to unconstrained form.
579 2012-11-23  Eric Botcazou  <ebotcazou@adacore.com>
581         * gcc-interface/decl.c (components_need_strict_alignment): New.
582         (components_to_record): Do not pack the variants if one of the fields
583         needs strict alignment.  Likewise for the variant part as a whole.
584         Specify the position of the variants even if the size isn't specified,
585         but do not specify the size of the variant part in this case.
587 2012-11-20  Diego Novillo  <dnovillo@google.com>
588             Jakub Jelinek  <jakub@redhat.com>
590         * gcc-interface/decl.c: Replace all vec<T,A>() initializers with vNULL.
592 2012-11-18  Eric Botcazou  <ebotcazou@adacore.com>
594         * gcc-interface/decl.c: Remove trailing spaces.
595         * gcc-interface/trans.c: Remove trailing spaces.
597 2012-11-16  Diego Novillo  <dnovillo@google.com>
599         Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
601         * gcc-interface/decl.c: Use new vec API in vec.h.
602         * gcc-interface/gigi.h: Likewise.
603         * gcc-interface/trans.c: Likewise.
604         * gcc-interface/utils.c: Likewise.
605         * gcc-interface/utils2.c: Likewise.
607 2012-11-09  Eric Botcazou  <ebotcazou@adacore.com>
609         PR other/52438
610         * s-taspri-lynxos.ads: Delete.
611         * s-osinte-kfreebsd-gnu.ads: Change license to GPL V3+.
612         * s-tpopsp-rtems.adb: Likewise.
613         * s-osinte-rtems.adb: Likewise.
615 2012-11-09  Eric Botcazou  <ebotcazou@adacore.com>
617         * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Body_Stub>: Deal
618         with a missing library unit instead of calling gnat_to_gnu on Emtpy.
619         Remove last bits of support for SCIL nodes.  Add cases for nodes that
620         should only be present when annotating types.  Add default abort.
622 2012-11-06  Eric Botcazou  <ebotcazou@adacore.com>
624         * gcc-interface/Makefile.in: Revert most changes.
625         * gcc-interface/Make-lang.in (gnatlib): Remove ada/s-oscons.ads.
627 2012-11-06  Arnaud Charlet  <charlet@adacore.com>
629         * gcc-interface/Makefile.in (copy-s-oscons): New target.
631 2012-11-06  Robert Dewar  <dewar@adacore.com>
633         * err_vars.ads, atree.ads: Minor reformatting.
635 2012-11-06  Arnaud Charlet  <charlet@adacore.com>
637         * gcc-interface/Make-lang.in: Update dependencies.
638         * gcc-interface/Makefile.in: Add runtime pairs for Android.
639         Rework handling of s-oscons.ads.
640         * s-osinte-android.ads, s-osinte-android.adb: New files.
642 2012-11-06  Tristan Gingold  <gingold@adacore.com>
644         * gcc-interface/trans.c (gnat_to_gnu): For N_Real_Literal, create the
645         binary representation of vax floats.
647 2012-11-06  Tristan Gingold  <gingold@adacore.com>
649         * sem_ch9.adb (Analyze_Protected_Type_Declaration): Fix thinko
650         in previous commit.
652 2012-11-06  Jose Ruiz  <ruiz@adacore.com>
654         * ali.adb (Scan_ALI): Fix parsing mechanism for -fstack-check.
656 2012-11-06  Thomas Quinot  <quinot@adacore.com>
658         * atree.adb, atree.ads, einfo.adb, errout.adb, errout.ads, erroutc.adb,
659         erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, expander.adb,
660         exp_ch13.adb, exp_ch2.adb, exp_ch6.adb, exp_dist.adb, fe.h,
661         fmap.adb, fmap.ads, gprep.adb, makeutl.adb, osint.adb, osint.ads,
662         par_sco.adb, prepcomp.adb, prj-part.adb, prj-proc.adb, scng.adb,
663         sdefault.ads, sem_ch10.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb,
664         sem_ch4.adb, sem_ch5.adb, sem_dim.adb, sem_elab.adb, sem_eval.adb,
665         sem_intr.adb, sem_prag.adb, sem_type.adb, sem_warn.adb, stylesw.adb,
666         stylesw.ads, targparm.adb, targparm.ads (Cascaded_Error): Rename to
667         more descriptive name 'Check_Error_Detected'. Add calls to
668         Check_Error_Detected at places where semantic analysis is abandoned
669         assuming a previously detected error.
671 2012-11-06  Robert Dewar  <dewar@adacore.com>
673         * exp_ch4.adb: Minor comment change.
675 2012-11-06  Robert Dewar  <dewar@adacore.com>
677         * gnat_ugn.texi: Extensive revision of documentation of overflow
678         checking.
679         * vms_data.ads: Overflow check numbers must be in range 1-3,
680         not 0-3.
682 2012-11-06  Tristan Gingold  <gingold@adacore.com>
684         * sem_ch9.adb (Analyze_Protected_Type_Declaration): Emit a
685         warning if pragma Priority is used in presence of an interrupt
686         handler.
688 2012-11-06  Robert Dewar  <dewar@adacore.com>
690         * checks.ads, checks.adb, exp_ch4.adb: Minor changes throughout for
691         new overflow checking.
692         * exp_util.adb (Insert_Actions): Remove special casing of
693         Overflow_Check.
694         * gnat1drv.adb (Adjust_Global_Switches): Fixes for new handling
695         of overflow checks.
696         * sem.adb (Analyze): Remove special casing of Overflow_Check
697         (Analyze_List): ditto.
698         * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Remove
699         SUPPRESSED and change CHECKED to STRICT.
700         * sem_res.adb (Analyze_And_Resolve): No longer treat
701         Overflow_Check specially.
702         (Preanalyze_And_Resolve): ditto.
703         (Resolve): ditto.
704         * snames.ads-tmpl: Replace Name_Checked by Name_Strict.
705         * switch-c.adb (Get_Overflow_Mode): Eliminate 0 setting,
706         CHECKED => STRICT.
707         * types.ads (Overflow_Check_Type): Remove Suppressed, change
708         Checked to Strict (Suppress_Record): Overflow check controlled
709         by Suppress array.
711 2012-11-06  Ed Schonberg  <schonberg@adacore.com>
713         * sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not
714         disable checks, so that flags can be properly set on expressions
715         that are not further expanded.
717 2012-11-06  Robert Dewar  <dewar@adacore.com>
719         * exp_attr.adb, sem_attr.adb: Minor reformatting.
721 2012-11-06  Gary Dismukes  <dismukes@adacore.com>
723         * exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate
724         check when evaluating the attribute Valid, and issue a warning
725         about infinite recursion when the check occurs within the
726         predicate function of the prefix's subtype.
727         * exp_ch4.adb (Expand_N_In): Remove test for Is_Discrete_Type
728         when we're checking that there's no predicate check function as a
729         condition for substituting a Valid check for a scalar membership
730         test (substitution should be suppressed for any kind of scalar
731         subtype with a predicate check). Also, don't emit a predicate
732         check when the right operand is a range.
734 2012-11-06  Robert Dewar  <dewar@adacore.com>
736         * par_sco.adb, bindgen.adb, exp_vfpt.adb, exp_vfpt.ads, exp_ch2.adb,
737         errout.adb, sem_ch8.adb: Minor reformatting.
739 2012-11-06  Hristian Kirtchev  <kirtchev@adacore.com>
741         * einfo.adb: Include Loop_Entry_Attributes to the list of
742         Node/List/Elist10 usage.
743         (Loop_Entry_Attributes): New routine.
744         (Set_Loop_Entry_Attributes): New routine.
745         (Write_Field10_Name): Add an output string for Loop_Entry_Attributes.
746         * einfo.ads: Define new attribute Loop_Entry_Attributes along
747         with its usage in nodes.
748         (Loop_Entry_Attributes): New routine and dedicated pragma Inline.
749         (Set_Loop_Entry_Attributes): New routine and dedicated pragma Inline.
750         * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
751         Attribute_Loop_Entry here.
752         * exp_ch5.adb: Add with and use clause for Elists;
753         (Expand_Loop_Entry_Attributes): New routine.
754         (Expand_N_Loop_Statement): Add a call to Expand_Loop_Entry_Attributes.
755         * exp_prag.adb (Expand_Pragma_Loop_Assertion): Specialize the
756         search to include multiple nested loops produced by the expansion
757         of Ada 2012 array iterator.
758         * sem_attr.adb: Add with and use clause for Elists.
759         (Analyze_Attribute): Check the legality of attribute Loop_Entry.
760         (Resolve_Attribute): Nothing to do for Loop_Entry.
761         (S14_Attribute): New routine.
762         * snames.ads-tmpl: Add a comment on entries marked with
763         HiLite. Add new name Name_Loop_Entry. Add new attribute
764         Attribute_Loop_Entry.
766 2012-11-06  Geert Bosch  <bosch@adacore.com>
768         * eval_fat.adb (Machine, Succ): Fix front end to support static
769         evaluation of attributes on targets with both VAX and IEEE float.
770         * sem_util.ads, sem_util.adb (Has_Denormals, Has_Signed_Zeros):
771         New type-specific functions. Previously we used Denorm_On_Target
772         and Signed_Zeros_On_Target directly, but that doesn't work well
773         for OpenVMS where a single target supports both floating point
774         with and without signed zeros.
775         * sem_attr.adb (Attribute_Denorm, Attribute_Signed_Zeros): Use
776         new Has_Denormals and Has_Signed_Zeros functions to support both
777         IEEE and VAX floating point on a single target.
779 2012-11-06  Tristan Gingold  <gingold@adacore.com>
781         * bindgen.adb (System_Interrupts_Used): New variable.
782         (Gen_Adainit): Declare and call
783         Install_Restricted_Handlers_Sequential if System.Interrupts is
784         used when elaboration policy is sequential.
786 2012-11-06  Ed Schonberg  <schonberg@adacore.com>
788         * sem_ch8.adb: Complete previous change.
790 2012-11-06  Tristan Gingold  <gingold@adacore.com>
792         * fe.h (Get_Vax_Real_Literal_As_Signed): Declare.
793         * eval_fat.adb, eval_fat.ads (Decompose_Int): Move spec in package spec.
794         * exp_vfpt.adb, exp_vfpt.ads (Vax_Real_Literal_As_Signed): New function.
795         (Expand_Vax_Real_Literal): Remove.
796         * exp_ch2.adb (Expand_N_Real_Literal): Do nothing.
797         * sem_eval.adb (Expr_Value_R): Remove special Vax float case,
798         as this is not anymore a special case.
800 2012-11-06  Yannick Moy  <moy@adacore.com>
802         * uintp.ads: Minor correction of typo in comment.
804 2012-11-06  Ed Schonberg  <schonberg@adacore.com>
806         * sem_prag.adb (Analyze_Pragnma, case Unchecked_Union): remove
807         requirement that discriminants of an unchecked_union must have
808         defaults.
810 2012-11-06  Vasiliy Fofanov  <fofanov@adacore.com>
812         * projects.texi: Minor wordsmithing.
814 2012-11-06  Robert Dewar  <dewar@adacore.com>
816         * sem_ch9.adb, exp_vfpt.adb, xoscons.adb: Minor reformatting.
818 2012-11-06  Tristan Gingold  <gingold@adacore.com>
820         * exp_vfpt.adb: Document VAX float point layout.
822 2012-11-06  Geert Bosch  <bosch@adacore.com>
824         * eval_fat.adb (Machine): Don't return -0.0 on targets without
825         signed zeros.
827 2012-11-06  Ed Schonberg  <schonberg@adacore.com>
829         * sem_ch9.adb (Analyze_Entry_Call_Alternative,
830         Check_Triggering_Statement): Reject properly an indirect call.
832 2012-11-06  Pascal Obry  <obry@adacore.com>
834         * xoscons.adb, xutil.adb, xutil.ads: Add support for post-processing.
836 2012-11-06  Yannick Moy  <moy@adacore.com>
838         * s-bignum.adb (Div_Rem): Fix another bug in step D3.
840 2012-11-06  Tristan Gingold  <gingold@adacore.com>
842         * s-tarest.adb (Create_Restricted_Task): Call
843         Create_Restricted_Task_Sequential in sequential case.
845 2012-11-06  Hristian Kirtchev  <kirtchev@adacore.com>
847         * exp_prag.adb (Expand_Pragma_Loop_Assertion): Do not rewrite the
848         pragma into a null statement as its presence is desirable in -gnatG
849         output.
851 2012-11-06  Ed Schonberg  <schonberg@adacore.com>
853         * sem_ch8.adb (Check_Constrained_Object): Do nothing if the
854         renamed object is a limited record.
856 2012-11-06  Bernard Banner  <banner@adacore.com>
858         * sysdep.c (_getpagesize): New. Minor reformatting.
860 2012-11-06  Robert Dewar  <dewar@adacore.com>
862         * sem_prag.adb: Minor reformatting.
864 2012-11-06  Robert Dewar  <dewar@adacore.com>
866         * s-bignum.adb (Div_Rem): Fix bug in step D3.
867         * uintp.adb (UI_Div_Rem): Add comment on bug in step D3.
869 2012-11-06  Hristian Kirtchev  <kirtchev@adacore.com>
871         * exp_prag.adb (Expand_Pragma_Loop_Assertion): Update the comment
872         on intended expansion.  Reimplement the logic which expands the
873         termination variants.
874         (Process_Increase_Decrease): Update the parameter profile and the
875         comment related to it. Accommodate the new aggregate-like appearance of
876         the termination variants.
877         * sem_prag.adb (Analyze_Pragma): Update the syntax of pragma
878         Loop_Assertion. Reimplement the semantic analysis of the pragma
879         to accommodate the new aggregate-like variant.
880         (Check_Variant): New routine.
881         * snames.ads-tmpl: Change names Name_Decreases and Name_Increases
882         to Name_Decreasing and Name_Increasing respectively. Add name
883         Variant.
885 2012-11-06  Ed Schonberg  <schonberg@adacore.com>
887         * sem_eval.adb: Static evaluation of case expressions.
889 2012-11-06  Robert Dewar  <dewar@adacore.com>
891         * exp_prag.adb, impunit.adb, exp_ch9.adb, par-ch4.adb,
892         s-tarest.adb: Minor reformatting.
894 2012-11-06  Tristan Gingold  <gingold@adacore.com>
896         * s-tposen.ads: Minor comment update.
898 2012-11-06  Arnaud Charlet  <charlet@adacore.com>
900         * sysdep.c: Rename sig* wrappers to use unique names.
902 2012-11-06  Yannick Moy  <moy@adacore.com>
904         * exp_dbug.adb (Qualify_Entity_Name): Mark entity as having a qualified
905         name after being treated, in formal verification mode.
907 2012-11-06  Fedor Rybin  <frybin@adacore.com>
909         * gnat_ugn.texi: Updating gnattest section to reflect changes
910         in default behaviour of the tool.
912 2012-11-06  Thomas Quinot  <quinot@adacore.com>
914         * s-oscons-tmplt.c: Interfaces.C now needs to be WITH'd even
915         on platforms that do not support sockets (for the benefit of
916         subtype IOCTL_Req_T).
918 2012-11-06  Ed Schonberg  <schonberg@adacore.com>
920         * par-ch4.adb (P_Primary): if-expressions, case-expressions,
921         and quantified expressions are legal if surrounded by parentheses
922         from an enclosing context, such as a call or an instantiation.
924 2012-11-06  Yannick Moy  <moy@adacore.com>
926         * impunit.adb (Get_Kind_Of_Unit): Return appropriate kind for
927         predefined implementation files, instead of returning
928         Not_Predefined_Unit on all .adb files.
930 2012-11-06  Tristan Gingold  <gingold@adacore.com>
932         * exp_ch9.adb (Build_Activation_Chain_Entity): Return immediately if
933         partition elaboration policy is sequential.
934         (Build_Task_Activation_Call): Likewise. Use
935         Activate_Restricted_Tasks on restricted profile.
936         (Make_Task_Create_Call): Do not use the _Chain
937         parameter if elaboration policy is sequential. Call
938         Create_Restricted_Task_Sequential in that case.
939         * exp_ch3.adb (Build_Initialization_Call): Change condition to
940         support concurrent elaboration policy.
941         (Build_Record_Init_Proc): Likewise.
942         (Init_Formals): Likewise.
943         * bindgen.adb (Gen_Adainit): Declare Partition_Elaboration_Policy
944         and set it in generated code if the elaboration policy is
945         sequential. The procedure called to activate all tasks is now
946         named __gnat_activate_all_tasks.
947         * rtsfind.adb (RE_Activate_Restricted_Task,
948         RE_Create_Restricted_Task_Sequential): New RE_Id literals.
949         * s-tarest.adb (Create_Restricted_Task): Added to create a task without
950         adding it on an activation chain.
951         (Activate_Tasks): Has now a Chain parameter.
952         (Activate_All_Tasks_Sequential): Added. Called by the binder to
953         activate all tasks.
954         (Activate_Restricted_Tasks): Added. Called during elaboration to
955         activate tasks of the units.
956         * s-tarest.ads: Remove pragma Partition_Elaboration_Policy.
957         (Partition_Elaboration_Policy): New variable (set by the binder).
958         (Create_Restricted_Task): Revert removal of the chain parameter.
959         (Create_Restricted_Task_Sequential): New procedure.
960         (Activate_Restricted_Tasks): Revert removal.
961         (Activate_All_Tasks_Sequential): New procedure.
963 2012-11-06  Bernard Banner  <banner@adacore.com>
965         * adaint.c Add file macro definitions missing on Android.
966         * adaint.h Avoid definitions related to task affinity and CPU
967         sets since this functionality is missing on the Android
968         * errno.c (__set_errno): Android already contains such a named
969         procedure so do include again.
970         * gsocket.h: Sockets not supported on Android.
971         * init.c: Avoid linux related code not supported on Android.
972         * sysdep.c (sigismember, sigaddset, sigdelset, sigemptyset,
973         sigfillset): wrapper functions since sig routines are defined
974         as inline macros on Android.
975         * terminals.c: Add stubs for terminal related functions not
976         supported on Android.
978 2012-11-06  Hristian Kirtchev  <kirtchev@adacore.com>
980         * sem_prag.adb (Analyze_Pragma): Do not
981         output the characters of an illegal argument as it may not have
982         characters to begin with.
984 2012-11-06  Hristian Kirtchev  <kirtchev@adacore.com>
986         * exp_prag.adb (Expand_Pragma_Loop_Assertion):
987         Change the order of argument processing to avoid disappearing
988         increase / decrease expressions.
990 2012-11-06  Hristian Kirtchev  <kirtchev@adacore.com>
992         * exp_prag.adb: Add with and use clause for Sem_Ch8.
993         (Expand_N_Pragma): Add a new variant to expand pragma Loop_Assertion.
994         (Expand_Pragma_Loop_Assertion): New routine.
995         * par-prag.adb (Prag): The semantic analysis of pragma
996         Loop_Assertion is carried out by Analyze_Pragma. No need for
997         checks in the parser.
998         * sem_prag.adb: Add a reference position value for pragma
999         Loop_Assertion in Sig_Flags.
1000         (Analyze_Pragma): Add semantic analysis for pragma Loop_Assertion.
1001         * snames.ads-tmpl: Add the following new names:
1002         Name_Decreases Name_Increases Name_Loop_Assertion.
1003         Add new pragma id Pragma_Loop_Assertion.
1005 2012-11-06  Ed Schonberg  <schonberg@adacore.com>
1007         * exp_ch5.adb: Identifier in iterator must have debug
1008         information.
1010 2012-11-06  Arnaud Charlet  <charlet@adacore.com>
1012         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
1013         duplicate rules handled by Make-generated.in.
1015 2012-10-31  Lawrence Crowl  <crowl@google.com>
1017         * gcc-interface/utils.c (gnat_write_global_declarations):
1018         Rename varpool_node to varpool_node_for_decl.
1020 2012-10-30  Eric Botcazou  <ebotcazou@adacore.com>
1022         * gcc-interface/Make-lang.in: Fix and clean up rules for C files.
1024 2012-10-29  Arnaud Charlet  <charlet@adacore.com>
1026         * gcc-interface/Makefile.in (s-oscons.ads): Adjust call to xoscons.
1028 2012-10-29  Pascal Obry  <obry@adacore.com>
1030         * xoscons.adb, Make-generated.in; The template used by xoscons is now
1031         given as parameter.
1032         * gcc-interface/Make-lang.in: Update dependencies.
1034 2012-10-29  Yannick Moy  <moy@adacore.com>
1036         * exp_dbug.adb (Qualify_Entity_Name): Only do renaming in formal
1037         verification mode when there is a homonym.
1039 2012-10-29  Thomas Quinot  <quinot@adacore.com>
1041         * xoscons.adb: Minor reformatting.
1043 2012-10-29  Yannick Moy  <moy@adacore.com>
1045         * exp_alfa.adb (Expand_Alfa): Backtrack change that removed
1046         qualification of names in formal verification mode. Instead,
1047         the qualification should be modified.
1048         * exp_dbug.adb (Qualify_Entity_Name): Modify qualification in formal
1049         verification mode, so that only a suffix is added to distinguish
1050         homonyms from the same scope.
1052 2012-10-29  Robert Dewar  <dewar@adacore.com>
1054         * gnat_rm.texi: Document that pragma Optimize_Alignment (Space) is
1055         ignored with a warning for packed variable length records.
1057 2012-10-29  Thomas Quinot  <quinot@adacore.com>
1059         * socket.c, g-socthi-dummy.adb, g-socthi-dummy.ads, g-socthi-vms.adb,
1060         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
1061         s-oscons-tmplt.c, g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb,
1062         g-socthi.ads, xoscons.adb, g-socket.adb, g-sothco.ads: Introduce an
1063         appropriate subtype for IOCTL requests, since these may be signed or
1064         unsigned.
1066 2012-10-29  Gary Dismukes  <dismukes@adacore.com>
1068         * exp_alfa.adb: Minor reformatting.
1070 2012-10-29  Robert Dewar  <dewar@adacore.com>
1072         * gnat_rm.texi, gnat_ugn.texi: Clarify documentation on maximum
1073         line length style switch.
1075 2012-10-29  Robert Dewar  <dewar@adacore.com>
1077         * layout.adb (Set_Composite_Alignment): Ignore pragma
1078         Optimize_Alignment (Space) for packed variable length records.
1080 2012-10-29  Robert Dewar  <dewar@adacore.com>
1082         * s-bignum.adb: Minor comment change.
1084 2012-10-29  Thomas Quinot  <quinot@adacore.com>
1086         * s-oscons-tmplt.c: Fix signedness of ioctl request identifiers
1087         for x86_64-freebsd.
1089 2012-10-29  Yannick Moy  <moy@adacore.com>
1091         * exp_alfa.adb (Expand_Alfa): Remove qualification of names.
1093 2012-10-29  Robert Dewar  <dewar@adacore.com>
1095         * sem_prag.adb: Minor reformatting.
1097 2012-10-29  Robert Dewar  <dewar@adacore.com>
1099         * gnat_rm.texi: Minor rewording.
1101 2012-10-29  Javier Miranda  <miranda@adacore.com>
1103         * exp_disp.ads (Is_Expanded_Dispatching_Call): New subprogram.
1104         * exp_disp.adb (Expand_Dispatching_Call): No action needed if the
1105         call has been already expanded.
1106         (Is_Expanded_Dispatching_Call): New subprogram.
1107         * sem_disp.adb (Propagate_Tag): No action needed if the call
1108         has been already expanded.
1110 2012-10-29  Hristian Kirtchev  <kirtchev@adacore.com>
1112         * exp_ch9.adb (Create_Index_And_Data): Remove local
1113         variable Index_Typ and its uses. The type of the index is now
1114         System.Tasking.Entry_Index. Update all related comments.
1115         * rtsfind.ads: Add RE_Entry_Index in tables RE_Id and RE_Unit_Table.
1116         * s-taskin.adb (Number_Of_Entries): The return type is now Entry_Index.
1117         * s-taskin.ads: The index type of Task_Entry_Names_Array is now
1118         Entry_Index.
1119         (Number_Of_Entries): The return type is now Entry_Index.
1120         * s-tpoben.adb (Number_Of_Entries): The return type is now Entry_Index.
1121         * s-tpoben.ads: The index type of Protected_Entry_Names_Array
1122         is now Entry_Index.
1123         (Number_Of_Entries): The return type is now Entry_Index.
1125 2012-10-29  Pascal Obry  <obry@adacore.com>
1127         * gnat_ugn.texi: Add note about SEH setup on x86-windows.
1129 2012-10-29  Eric Botcazou  <ebotcazou@adacore.com>
1131         * s-bignum.adb (Allocate_Bignum): Use the exact layout of
1132         Bignum_Data for the overlay.
1134 2012-10-29  Thomas Quinot  <quinot@adacore.com>
1136         * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_util.ads,
1137         par-prag.adb, par-util.adb, snames.ads-tmpl (Sem_Prag.Analyze_Pragma):
1138         Handle new pragma Attribute_Definition.
1139         (Sem_Util.Bad_Attribute): New routine, moved here
1140         from par-util, so that it can be used by the above.
1141         (Par_Util.Signal_Bad_Attribute): Processing moved to
1142         Sem_Util.Bad_Attribute.
1144 2012-10-29  Robert Dewar  <dewar@adacore.com>
1146         * s-tpoben.ads, s-taskin.ads, exp_ch3.adb: Minor reformatting.
1148 2012-10-29  Yannick Moy  <moy@adacore.com>
1150         * sem_prag.adb, gnat1drv.adb, opt.ads: Rename S14_Extensions
1151         into Formal_Extensions.
1153 2012-10-29  Thomas Quinot  <quinot@adacore.com>
1155         * sem_attr.adb: Minor reformatting.
1157 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1159         * gnat_rm.texi: Document implementation advice for Pragma
1160         Partition_Elaboration_Policy.
1162 2012-10-29  Yannick Moy  <moy@adacore.com>
1164         * s-bignum.adb (Div_Rem): Reference that Algorithm_D is from
1165         the second edition of TAOCP from Knuth, since the algo changed
1166         in the third edition. Also correct the definition of 'd' which
1167         could overflow.
1169 2012-10-29  Hristian Kirtchev  <kirtchev@adacore.com>
1171         * exp_ch3.adb (Build_Initialization_Call): Create static strings
1172         which denote entry [family] names and associate them with the
1173         object's Protection_Entries or ATCB.
1174         (Build_Init_Statements):
1175         Remove local variable Names. Do not generate the entry [family]
1176         names inside the init proc because they are now static.
1177         * exp_ch9.adb (Build_Entry_Names): Reimplemented. The strings
1178         which denote entry [family] names are now generated statically
1179         and associated with the concurrent object's Protection_Entries
1180         or ATCB during initialization.
1181         * exp_ch9.ads (Build_Entry_Names): Change subprogram profile
1182         and associated comment on usage.
1183         * rtsfind.ads: Add the following entries to tables RE_Id and
1184         RE_Unit_Table:
1186         RE_Protected_Entry_Names_Array RE_Task_Entry_Names_Array
1187         RO_PE_Number_Of_Entries RO_PE_Set_Entry_Names
1188         RO_ST_Number_Of_Entries RO_ST_Set_Entry_Names
1190         Remove the following entries from tables RE_Id and RE_Unit_Table:
1192         RO_PE_Set_Entry_Name RO_TS_Set_Entry_Name
1194         * s-taskin.adb: Remove with clause for Ada.Unchecked_Deallocation.
1195         (Free_Entry_Names_Array): Removed.
1196         (Number_Of_Entries): New routine.
1197         (Set_Entry_Names): New routine.
1198         * s-taskin.ads: Rename type Entry_Names_Array to
1199         Task_Entry_Names_Array. Rename type Entry_Names_Array_Access
1200         to Task_Entry_Names_Access. Update the type of ACTB field
1201         Entry_Names and add a comment on its protection status.
1202         (Free_Entry_Names_Array): Removed.
1203         (Number_Of_Entries): New routine.
1204         (Set_Entry_Names): New routine.
1205         * s-tassta.adb (Create_Task): Remove formal parameter
1206         Build_Entry_Names. Do not allocate an array to hold the
1207         string names of entries and families.
1208         (Free_Entry_Names): Removed.
1209         (Free_Task): Remove the call to Free_Entry_Names.
1210         (Set_Entry_Name): Removed.
1211         (Vulnerable_Free_Task): Remove the call to Free_Entry_Names.
1212         * s-tassta.ads (Create_Task): Remove formal parameter
1213         Build_Entry_Names along with associated comment.
1214         (Set_Entry_Name): Removed.
1215         * s-tpoben.adb: Remove with clause for Ada.Unchecked_Deallocation.
1216         (Finalize): Remove the call to Free_Entry_Names.
1217         (Free_Entry_Names): Removed.
1218         (Initialize_Protection_Entries):
1219         Remove formal parameter Build_Entry_Names. Do not allocate
1220         an array to hold the string names of entries and families.
1221         (Number_Of_Entries): New routine.
1222         (Set_Entry_Name): Removed.
1223         (Set_Entry_Names): New routine.
1224         * s-tpoben.ads: Add types Protected_Entry_Names_Array and
1225         Protected_Entry_Names_Access. Update the type of Protection_Enties
1226         field Entry_Names.
1227         (Initialize_Protection_Entries): Remove
1228         formal parameter Build_Entry_Names along with associated comment.
1229         (Number_Of_Entries): New routine.
1230         (Set_Entry_Name): Removed.
1231         (Set_Entry_Names): New routine.
1233 2012-10-29  Arnaud Charlet  <charlet@adacore.com>
1235         * gnat_ugn.texi: Minor typo fix.
1236 2012-10-29  Yannick Moy  <moy@adacore.com>
1238         * debug.adb Associate debug switch -gnatd.V to extensions for
1239         formal verification.
1240         * gnat1drv.adb (Adjust_Global_Switches): Set flag S14_Extensions
1241         when -gnatd.V is set.
1242         * gnat_rm.texi: Remove doc for Assert_And_Cut.
1243         * opt.ads Declare new flag S14_Extensions, to be set when new
1244         aspects/pragmas/attributes for formal verification should be
1245         accepted.
1246         * sem_prag.adb (Analyze_Pragma): Check that S14_Extensions is
1247         set when treating pragma Assert_And_Cut.
1249 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1251         * s-tarest.ads, s-tassta.adb: Add a pragma Partition_Elaboration_Policy.
1253 2012-10-29  Robert Dewar  <dewar@adacore.com>
1255         * freeze.adb: Minor reformatting.
1257 2012-10-29  Robert Dewar  <dewar@adacore.com>
1259         * xr_tabls.adb, xr_tabls.ads, exp_ch9.adb, snames.adb-tmpl,
1260         snames.ads-tmpl, exp_ch3.adb: Minor reformatting.
1262 2012-10-29  Ed Schonberg  <schonberg@adacore.com>
1264         * sem_ch6.adb: Call Build_Subprogrm_Instance_Renamings only when
1265         generating code.
1267 2012-10-29  Robert Dewar  <dewar@adacore.com>
1269         * gnat_ugn.texi: Add documentation for -gnatw.k/-gnatw.K.
1270         * ug_words: Add entries for -gnatw.k/.K for [NO]STANDARD_REDEFINITION.
1271         * vms_data.ads: Add entries for [NO]STANDARD_REDEFINITION.
1273 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1275         * exp_ch9.adb, s-tarest.ads, exp_ch3.adb: Update comments.
1277 2012-10-29  Yannick Moy  <moy@adacore.com>
1279         * gnat_rm.texi: Minor documentation addition.
1281 2012-10-29  Emmanuel Briot  <briot@adacore.com>
1283         * xr_tabls.adb, xr_tabls.ads (Add_Declaration, Add_Reference): No
1284         longer assume that a parameter declaration is seen after the subprogram
1285         that uses it.
1287 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1289         * lib-writ.adb (Write_ALI): Emit partition elaboration policy
1290         in P line.
1291         * lib-writ.ads: Document partition elaboration policy indication.
1292         * sem_prag.adb (Check_Arg_Is_Partition_Elaboration_Policy): New
1293         procedure.
1294         (Analyze_Pragma): Handle Partition_Elaboration_Policy.
1295         (Sig_Flags): Add flag for Pragma_Partition_Elaboration_Policy
1296         * ali.adb (Initialize_ALI): Init Partition_Elaboration_Policy_Specified.
1297         (Scan_ALI): Read Ex indications.
1298         * ali.ads: ALIs_Record: Add Partition_Elaboration_Policy.
1299         * par-prag.adb (Prag): Add Partition_Elaboration_Policy.
1300         * snames.adb-tmpl (Is_Partition_Elaboration_Policy_Name): New function.
1301         * opt.ads (Partition_Elaboration_Policy): Declare.
1302         (Partition_Elaboration_Policy_Sloc): Declare.
1303         * bcheck.adb (Check_Consistent_Partition_Elaboration_Policy):
1304         New procedure.  (Check_Configuration_Consistency): Check partition
1305         elaboration policy consistency.
1306         * snames.ads-tmpl (Name_Partition_Elaboration_Policy): New name.
1307         (First_Partition_Elaboration_Policy_Name, Name_Concurrent,
1308         Name_Sequential, Last_Partition_Elaboration_Policy_Name): Likewise.
1309         (Pragma_Partition_Elaboration_Policy): New literal.
1310         (Is_Partition_Elaboration_Policy_Name): New function.
1312 2012-10-29  Ed Schonberg  <schonberg@adacore.com>
1314         * sem_ch6.adb (Is_Public_Subprogram_For): Handle properly
1315         expression functions, which are rewritten as subprogram
1316         declarations, when generating invariants for its return value
1317         and in-out parameters.
1319 2012-10-29  Arnaud Charlet  <charlet@adacore.com>
1321         * warnsw.adb (Set_GNAT_Mode_Warnings): Unset
1322         Warn_On_Standard_Redefinition.
1324 2012-10-29  Javier Miranda  <miranda@adacore.com>
1326         * sem_ch3.adb (Derive_Progenitor_Subprograms): Complete documentation.
1328 2012-10-29  Robert Dewar  <dewar@adacore.com>
1330         * par-ch11.adb (Warn_If_Standard_Redefinition): Add calls.
1331         * par-ch3.adb (P_Defining_Identifier): Call
1332         Warn_If_Standard_Redefinition if not inside record definition.
1333         * par-ch6.adb (Warn_If_Standard_Redefinition): Add calls.
1334         * par-util.adb (Warn_If_Standard_Redefinition): New procedure.
1335         * par.adb (Inside_Record_Definition): New flag.
1336         (Warn_If_Standard_Redefinition): New procedure.
1337         * sinfo-cn.adb (Change_Identifier_To_Defining_Identifier): Remove
1338         handling of warning for redefining standard name (moved to Par*).
1340 2012-10-29  Javier Miranda  <miranda@adacore.com>
1342         * sem_ch3.adb (Derive_Progenitor_Subprograms): Disable small
1343         optimization in generic formal types.
1345 2012-10-29  Robert Dewar  <dewar@adacore.com>
1347         * exp_ch9.adb, exp_ch3.adb: Add comments.
1348         * sem_prag.adb: Minor reformatting.
1350 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1352         * bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for
1353         Is_Elaborated if not referenced.
1355 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1357         * exp_ch9.adb (Build_Activation_Chain_Entity): Punt in restricted
1358         profile.
1359         * exp_ch3.adb (Build_Initialization_Call): Do no append _Chain
1360         parameter in restricted profile.
1361         (Build_Init_Call_Thru): Likewise.
1362         (Init_Formals): Likewise.
1363         * exp_ch3.adb: Minor reformatting.
1365 2012-10-29  Arnaud Charlet  <charlet@adacore.com>
1367         * usage.adb: Update usage line for -gnatw.k.
1369 2012-10-29  Yannick Moy  <moy@adacore.com>
1371         * sem_prag.adb: Code clean up.
1373 2012-10-29  Vincent Celier  <celier@adacore.com>
1375         * projects.texi: Clarify documentation of attribute
1376         Ignore_Source_Sub_Dirs.
1378 2012-10-29  Robert Dewar  <dewar@adacore.com>
1380         * g-sechas.adb, g-sechas.ads, exp_ch9.adb, bindgen.adb, exp_dbug.adb,
1381         exp_dbug.ads: Minor reformatting.
1383 2012-10-29  Pascal Obry  <obry@adacore.com>
1385         * g-sechas.adb, g-sechas.ads: (Binary_Message_Digest): New subtype.
1386         (Digest): New versions returning a Binary_Message_Digest.
1387         (Wide_Digest): Likewise.
1389 2012-10-29  Robert Dewar  <dewar@adacore.com>
1391         * warnsw.adb: Complete previous change.
1393 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1395         * bindgen.adb (Check_File_In_Partition, Check_System_Restrictions_Used):
1396         Removed.
1397         (Check_Dispatching_Domains_Used): Removed.
1398         (Gen_Adafinal): Remove call to above procedures.
1399         (Resolve_Binder_Options): Handle system restrictions and dispatching
1400         domains.
1402 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1404         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Remove
1405         Chain parameter.
1406         * exp_ch9.adb (Make_Task_Create_Call): Do not add Chain parameter
1407         on restricted runtime.
1409 2012-10-29  Pascal Obry  <obry@adacore.com>
1411         * g-sechas.adb, g-sechas.ads: Minor code clean-up.
1413 2012-10-29  Ed Schonberg  <schonberg@adacore.com>
1415         * sem_aux.adb (Get_Rep_Item): Treat Priority and Interrupt_Priority
1416         as equivalent, because only one of them can be specified for a
1417         task, protected definition, or subprogram body.
1418         * aspects.adb ((Same_Aspect): The canonical aspect of
1419         Interrupt_Priority is Priority.
1421 2012-10-29  Robert Dewar  <dewar@adacore.com>
1423         * sem_ch13.adb: Minor reformatting.
1425 2012-10-29  Robert Dewar  <dewar@adacore.com>
1427         * i-cstrea.ads: Avoid redefinition of standard symbol string.
1428         * prj-makr.adb: Add comment for OK redefinition of Stadard.
1429         * prj.ads: Add comment for OK redefinition of Stadard.
1430         * s-crtl.ads: Avoid redefinition of standard symbol string.
1431         * sinfo-cn.adb (Change_Identifier_To_Defining_Identifier):
1432         Generate warning for standard redefinition if
1433         Warn_On_Standard_Definition set.
1434         * usage.adb: Add lines for -gnatw.k and -gnatw.K
1435         * warnsw.adb: Set/reset Warn_On_Standard_Redefinition
1436         appropriately.
1437         * warnsw.ads (Warn_On_Standard_Redefinition): New flag.
1438         * s-stratt-xdr.adb: Avoid new warning.
1440 2012-10-29  Ed Schonberg  <schonberg@adacore.com>
1442         * exp_dbug.ads, exp_dbug.adb (Build_Subprogram_Instance_Renamings):
1443         in the body of a subpogram instance, introduce local renamings
1444         for actuals of an elementary type, so that GDB can recover the
1445         values of these actuals more directly.
1447 2012-10-29  Robert Dewar  <dewar@adacore.com>
1449         * sem_ch5.adb (Analyze_Loop_Statement): Add warning for identical
1450         inner/outer ranges.
1452 2012-10-29  Robert Dewar  <dewar@adacore.com>
1454         * einfo.ads: Change terminology "present" to "defined" in talking
1455         about whether a given field is defined for a given entity kind.
1457 2012-10-29  Bob Duff  <duff@adacore.com>
1459         * atree.ads: Minor comment fix.
1461 2012-10-29  Bob Duff  <duff@adacore.com>
1463         * sem_ch13.adb (Replace_Type_Reference): Set_Comes_From_Source.
1464         Otherwise, the node is ignored by ASIS.
1465         * sem_ch5.adb: Minor reformatting.
1467 2012-10-29  Thomas Quinot  <quinot@adacore.com>
1469         * exp_attr.adb, exp_dist.adb, exp_dist.ads (Build_To_Any_Call): Pass
1470         an explicit Loc parameter to set the source location of generated
1471         nodes.
1473 2012-10-29  Tristan Gingold  <gingold@adacore.com>
1475         * exp_ch9.adb (Build_Task_Activation_Call): Do nothing on
1476         restricted profile.
1477         * bindgen.adb (System_Tasking_Restricted_Stages_Used): New variable.
1478         (Gen_Adainit): Declare and call Activate_Tasks when the above variable
1479         is set.
1480         (Resolve_Binder_Options): Set the variable.
1481         * rtsfind.ads (RE_Activate_Restricted_Tasks): Removed (now unused).
1482         * s-tarest.adb (Tasks_Activation_Chain): New variable.
1483         (Activate_Restricted_Tasks): Removed, and replaced by ...
1484         (Activate_Tasks): New procedure, to activate all tasks at
1485         the end of elaboration.
1486         (Create_Restricted_Tasks): Chain parameter is now unreferenced. Put
1487         the created task on the Tasks_Activation_Chain list.
1488         * s-tarest.ads (Activate_Restricted_Tasks): Removed.
1489         (Activate_Tasks): Added.
1491 2012-10-29  Gary Dismukes  <dismukes@adacore.com>
1493         * sem_res.adb (Resolve_If_Expression): Compare subtype of the 'then'
1494         expression against the subtype of the expression rather than comparing
1495         base types, same as is already done for the 'else' expression.
1497 2012-10-29  Steve Baird  <baird@adacore.com>
1499         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If CodePeer_Mode
1500         = True and we detect that an Address specification is used to overlay
1501         another object, do not set that object's Treat_As_Volatile flag.
1503 2012-10-29  Ed Schonberg  <schonberg@adacore.com>
1505         * sem_ch3.adb (Constant_Redeclaration): If the type of a
1506         deferred constant has invariants, generate invariant call on
1507         the initial value.
1509 2012-10-29  Bob Duff  <duff@adacore.com>
1511         * sem_ch13.adb (Replace_Type_Reference): Use correct sloc for
1512         the new node.
1514 2012-10-29  Thomas Quinot  <quinot@adacore.com>
1516         * sem_elab.adb: Minor reformatting and code reorganization.
1518 2012-10-29  Robert Dewar  <dewar@adacore.com>
1520         * par-ch4.adb (P_Primary): Warn on bad use of unary minus.
1522 2012-10-29  Robert Dewar  <dewar@adacore.com>
1524         * s-valuti.ads, s-valuti.adb (Bad_Value): New procedure.
1525         * s-valllu.adb, s-valwch.adb, s-valcha.adb, s-valint.adb,
1526         s-valuns.adb, s-valrea.adb, s-valboo.adb, s-valenu.adb,
1527         s-vallli.adb: Use Bad_Value everywhere.
1529 2012-10-29  Yannick Moy  <moy@adacore.com>
1531         * gnat1drv.adb (Adjust_Global_Switches): Do not suppress checks
1532         in Alfa mode.
1534 2012-10-29  Yannick Moy  <moy@adacore.com>
1536         * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
1537         Add special case for case expression alternative.
1538         (Is_Signed_Integer_Arithmetic_Op): Remove special case for case
1539         expression alternative.
1540         * exp_ch4.adb Minor reformatting.
1542 2012-10-29  Thomas Quinot  <quinot@adacore.com>
1544         * sem_elab.adb: Minor reformatting.
1546 2012-10-29  Bob Duff  <duff@adacore.com>
1548         * sem_res.adb: Minor: Remove redundant test.
1550 2012-10-29  Arnaud Charlet  <charlet@adacore.com>
1552         * pprint.ads, pprint.adb, adabkend.ads, adabkend.adb,
1553         aa_util.ads, aa_util.adb: New.
1555 2012-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1557         * system-linux-mipsel.ads (Stack_Check_Probes): Set to True.
1558         * system-linux-mips.ads (Stack_Check_Probes): Likewise.
1559         * system-linux-mips64el.ads (Stack_Check_Probes): Likewise.
1561 2012-10-22  Eric Botcazou  <ebotcazou@adacore.com>
1563         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Force
1564         BLKmode on the type if it is passed by reference.
1565         <E_Array_Subtype>: Likewise.
1566         <E_Record_Type>: Guard the call to Is_By_Reference_Type predicate.
1567         <E_Record_Subtype>: Likewise.
1569         * gcc-interface/Makefile.in: Remove outdated comment and reference to
1570         non-existing file.
1572 2012-10-22  Eric Botcazou  <ebotcazou@adacore.com>
1574         * gcc-interface/utils.c (rest_of_record_type_compilation): Simplify and
1575         robustify pattern machine code for masking operations.
1577 2012-10-22  Eric Botcazou  <ebotcazou@adacore.com>
1579         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: In
1580         type annotation mode, break circularities introduced by AI05-0151.
1582 2012-10-22  Eric Botcazou  <ebotcazou@adacore.com>
1584         * gcc-interface/trans.c (Loop_Statement_to_gnu): Use gnat_type_for_size
1585         directly to obtain an unsigned version of the base type.
1587 2012-10-22  Eric Botcazou  <ebotcazou@adacore.com>
1589         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: Do not
1590         generate the special PARM_DECL for an Out parameter in LTO mode.
1592 2012-10-22  Eric Botcazou  <ebotcazou@adacore.com>
1594         PR bootstrap/54820
1595         * gcc-interface/Make-lang.in (GCC_LINK): Remove hardcoded options.
1597 2012-10-15  Matthias Klose  <doko@ubuntu.com>
1599         * gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for
1600         ARM Linux/GNU.
1602 2012-10-05  Robert Dewar  <dewar@adacore.com>
1604         * sem_ch7.adb: Minor reformatting.
1606 2012-10-05  Ed Schonberg  <schonberg@adacore.com>
1608         * sem_prag.adb (Analyze_Pragma, case Persistent_BSS): check for
1609         a duplicate pragma before Rep_Item_Too_Late to prevent spurious
1610         messages about duplicate pragmas.
1612 2012-10-05  Ed Schonberg  <schonberg@adacore.com>
1614         * exp_util.adb (Find_Init_Call): If the successor of the
1615         object declaration is a block, check whether it contains the
1616         initialization call, because it may have been created by actuals
1617         that use the secondary stack.
1619 2012-10-05  Thomas Quinot  <quinot@adacore.com>
1621         * sem_dim.adb, errout.adb, errout.ads (Analyze_Dimension_Call): Add
1622         guard against abnormal tree resulting from a previously diagnosed
1623         illegality.
1625 2012-10-05  Hristian Kirtchev  <kirtchev@adacore.com>
1627         * freeze.adb (Freeze_Expression): Rename local variable Cspc to Spec
1628         and update all refs to it. Do not freeze an entity outside a subprogram
1629         body when the original context is an expression function.
1631 2012-10-05  Robert Dewar  <dewar@adacore.com>
1633         * gnat1drv.adb (Adjust_Global_Switches): Default for overflow checking
1634         is suppressed, even if backend overflow/divide checks are enabled.
1636 2012-10-05  Ed Schonberg  <schonberg@adacore.com>
1638         * einfo.adb (Set_Invariant_Procedure, Set_Predicate_Function):
1639         chain properly subprograms on Subprograms_For_Type list.
1640         * sem_ch13.ads; (Build_Invariant_Procedure_Declaration): new
1641         procedure, to create declaration for invariant procedure
1642         independently of the construction of the body, so that it can
1643         be called within expression functions.
1644         * sem_ch13.adb (Build_Invariant_Procedure): code cleanup. The
1645         declaration may already have been generated at the point an
1646         explicit invariant aspect is encountered.
1647         * sem_prag.adb; (Analyze_Pragma, case Invariant): create declaration
1648         for invariant procedure.
1649         * sem_ch7.adb (Analyze_Package_Specification): clean up call to
1650         build invariant procedure.
1651         (Preserve_Full_Attributes): propagate information about invariants
1652         if they appear on a completion,
1654 2012-10-05  Pascal Obry  <obry@adacore.com>
1656         * gnat_ugn.texi: Update documentation to lift Microsoft C
1657         restriction.
1659 2012-10-05  Robert Dewar  <dewar@adacore.com>
1661         * sem_util.adb (Has_One_Matching_Field): Handle case of lone
1662         discriminant.
1664 2012-10-05  Yannick Moy  <moy@adacore.com>
1666         * checks.adb (Minimize_Eliminate_Overflow_Checks): Correct code
1667         for the division operation and exponent operation. Adjust bound
1668         for the mod and rem operations.
1670 2012-10-05  Robert Dewar  <dewar@adacore.com>
1672         * checks.adb, checks.ads, s-tassta.adb, s-stposu.adb, s-spsufi.adb,
1673         s-spsufi.ads, exp_ch4.adb: Minor reformatting.
1675 2012-10-05  Yannick Moy  <moy@adacore.com>
1677         * switch-c.adb, checks.adb, checks.ads, sem_prag.adb, exp_ch4.adb,
1678         osint.adb: Minor correction of typos, and special case for Alfa mode.
1680 2012-10-05  Hristian Kirtchev  <kirtchev@adacore.com>
1682         * s-spsufi.adb: Add with clause for Ada.Unchecked_Deallocation.
1683         Add with and use clauses for System.Finalization_Masters.
1684         (Finalize_And_Deallocate): Add an instance of
1685         Ada.Unchecked_Deallocation. Merge the code from the now obsolete
1686         Finalize_Subpool into this routine.
1687         * s-spsufi.ads: Add pragma Preelaborate.
1688         * s-stposu.adb: Remove with clause for
1689         Ada.Unchecked_Deallocation; Add with and use clauses for
1690         System.Storage_Pools.Subpools.Finalization; (Finalize_Pool):
1691         Update the comment on all actions takes with respect to a subpool
1692         finalization. Finalize and deallocate each individual subpool.
1693         (Finalize_Subpool): Removed.
1694         (Free): Removed;
1695         (Detach): Move from package body to spec.
1696         * s-stposu.ads (Detach): Move from package body to spec.
1697         (Finalize_Subpool): Removed.
1699 2012-10-05  Arnaud Charlet  <charlet@adacore.com>
1701         * s-tassta.adb: Update comments.
1702         (Vulnerable_Complete_Master): If Free_On_Termination is set, do
1703         nothing, and let the task free itself if not already done.
1705 2012-10-04  Robert Dewar  <dewar@adacore.com>
1707         * sem_res.adb (Resolve_Set_Membership): Warn on duplicates.
1709 2012-10-04  Emmanuel Briot  <briot@adacore.com>
1711         * g-comlin.adb (Getopt): Fix value of Full_Switch returned in case of
1712         invalid switch.
1714 2012-10-04  Arnaud Charlet  <charlet@adacore.com>
1716         * gcc-interface/Make-lang.in: Update dependencies.
1718 2012-10-04  Robert Dewar  <dewar@adacore.com>
1720         * sem_eval.adb (Fold_Str, Fold_Uint, Fold_Ureal): Reset static
1721         expression state after Resolve call.
1723 2012-10-04  Robert Dewar  <dewar@adacore.com>
1725         * sem_prag.adb (Analyze_Pragma. case Warnngs): Don't make entry
1726         in the table for Warnings Off pragmas if within an instance.
1728 2012-10-04  Ed Schonberg  <schonberg@adacore.com>
1730         * sem_ch9.adb (Analyze_Entry_Body): Transfer
1731         Has_Pragma_Unreferenced flag from entry formal to corresponding
1732         entity in body, to prevent spurious warnings when pragma is
1733         present.
1735 2012-10-04  Robert Dewar  <dewar@adacore.com>
1737         * s-bignum.adb (Big_Exp): Raise Storage_Error for ludicrously
1738         large results.
1740 2012-10-04  Ed Schonberg  <schonberg@adacore.com>
1742         * sem_ch3.adb (Check_Duplicate_Aspects): Diagnose properly
1743         aspects that appear in the partial and the full view of a type.
1745 2012-10-04  Robert Dewar  <dewar@adacore.com>
1747         * sinfo.ads (N_Return_Statement): Removed.
1749 2012-10-04  Tristan Gingold  <gingold@adacore.com>
1751         * init.c (__gl_zero_cost_exceptions): Comment it as not used
1752         anymore.
1753         * bindgen.adb (Gen_Adainit): Do not emit Zero_Cost_Exceptions
1754         anymore.
1756 2012-10-04  Thomas Quinot  <quinot@adacore.com>
1758         * prep.adb, prepcomp.adb, gprep.adb, opt.ads: New preprocessor switch
1759         -a (all source text preserved).
1761 2012-10-04  Vincent Celier  <celier@adacore.com>
1763         * prj-proc.adb (Recursive_Process): Use project directory
1764         display path name as the value of 'Project_Dir.
1766 2012-10-04  Robert Dewar  <dewar@adacore.com>
1768         * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow):
1769         Deal with case where we get a bignum operand and cannot do a
1770         range analysis.
1771         * sem_eval.adb (Why_Not_Static): Deal with bignum operands
1773 2012-10-04  Ed Schonberg  <schonberg@adacore.com>
1775         * sem_ch4.adb (Find_Unary_Types): Within an instance, an
1776         interpretation that involves a predefied arithmetic operator is
1777         not a candidate if the corresponding generic formal type is not
1778         a numeric type.
1779         * sem_util.ads, sem_util.adb (Corresonding_Generic_Type): If a
1780         type is a generic actual type within an instance, return the
1781         corresponding formal in the generic unit, otherwise return
1782         Any_Type.
1784 2012-10-04  Robert Dewar  <dewar@adacore.com>
1786         * checks.adb (Minimize_Eliminate_Overflow_Checks): Dont reanalyze
1787         if/case expression if nothing has changed (just reexpand). Stops
1788         case expression from generating incorrect temporary.
1789         * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow):
1790         Fix cut and paste typo for range analysis in NE (not equal) case.
1791         * sem_eval.adb (Compile_Time_Compare): Small optimization to
1792         catch some more cases.
1793         * types.ads (Suppressed_Or_Checked): New subtype of
1794         Overflow_Check_Type.
1796 2012-10-04  Javier Miranda  <miranda@adacore.com>
1798         * exp_disp.adb (Set_CPP_Constructors_Old): Removed.
1799         (Set_CPP_Constructors): Code cleanup.
1801 2012-10-04  Ed Schonberg  <schonberg@adacore.com>
1803         * sem_ch10.adb (Is_Ancestor_Unit): Make global, for use elsewhere.
1804         (Install_Private_with_Clauses): if clause is private and limited,
1805         do not install the limited view if the library unit is an ancestor
1806         of the unit being compiled.  This unusual configuration occurs
1807         when compiling a unit DDP, when an ancestor P of DDP has a
1808         private limited with clause on a descendant of P that is itself
1809         an ancestor of DDP.
1811 2012-10-04  Vincent Celier  <celier@adacore.com>
1813         * prj-proc.adb (Process_Package_Declaration): Use project
1814         directory display path name as the value of 'Project_Dir.
1816 2012-10-04  Gary Dismukes  <dismukes@adacore.com>
1818         * exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be
1819         given by an arbitrary name, so copy the tree to make the call's actual.
1821 2012-10-04  Robert Dewar  <dewar@adacore.com>
1823         * s-exnllf.adb, s-exnllf.ads: Minor reformatting.
1825 2012-10-04  Thomas Quinot  <quinot@adacore.com>
1827         * exp_ch6.adb: Minor reformatting.
1829 2012-10-04  Pascal Obry  <obry@adacore.com>
1831         * projects.texi: Use consistently @command{} when referencing
1832         commands. Fix typos.
1834 2012-10-03  Ed Schonberg  <schonberg@adacore.com>
1836         * sem_ch6.adb (New_Overloaded_Entity): call
1837         Append_Inherited_Subprogram when appropriate.
1838         * sem_dim.adb (Analyze_Dimension_Call): Do not perform dimensional
1839         analysis if call has previous semantic error.
1840         * sem_util.ads, sem_util.adb (Append_Inherited_Subprogram):
1841         new subprogram to handle properly the visibility of inherited
1842         operations that are primitives of a type extension, when the
1843         parent type and operations are declared in the same visible part.
1845 2012-10-03  Robert Dewar  <dewar@adacore.com>
1847         * checks.adb (Minimize_Eliminate_Overflow_Checks): Properly
1848         handle case of top level expression within type conversion
1849         * gnat1drv.adb (Adjust_Global_Switches): Set SUPPRESSED as
1850         default for overflow checking for -gnatg mode (includes run-time).
1851         * sem_res.adb (Resolve_Type_Conversion): Avoid bogus warnings
1852         about redundant conversions from MINIMIZED/EXTENDED mode checking
1854 2012-10-03  Javier Miranda  <miranda@adacore.com>
1856         * exp_ch4.adb (Expand_N_Allocator_Expression): Minor code
1857         reorganization and cleanup. Done to ensure proper management of
1858         the C++ constructor covering tagged and untagged types and also
1859         non-default constructors.
1860         * exp_ch6.ads, exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator):
1861         New subprogram.
1863 2012-10-03  Gary Dismukes  <dismukes@adacore.com>
1865         * sem_ch6.adb: Minor typo fix.
1867 2012-10-03  Robert Dewar  <dewar@adacore.com>
1869         * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
1870         Set Top_Level properly (to False) for operand of range of
1871         membership test.
1872         * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow):
1873         Fix crash with -gnato3 and membership operations.
1874         (Expand_Membership_Minimize_Eliminate_Overflow): Fix error message
1875         and wrong results for -gnato3 large expression and predicated
1876         subtype.
1877         (Expand_Membership_Minimize_Eliminate_Overflow): Use
1878         expression action node to avoid using insert actions (bombs in
1879         some cases).
1880         (Expand_Compare_Minimize_Eliminate_Overflow): Use expression action
1881         node to avoid using insert actions (bombs in some cases).
1883 2012-10-03  Javier Miranda  <miranda@adacore.com>
1885         * exp_disp.adb (Set_CPP_Constructors_Old): Handle constructor of
1886         untagged type that has all its parameters with defaults and hence it
1887         covers the default constructor.
1889 2012-10-03  Yannick Moy  <moy@adacore.com>
1891         * checks.adb, sem_prag.adb, s-bignum.ads: Minor typo fixes.
1893 2012-10-03  Thomas Quinot  <quinot@adacore.com>
1895         * g-socket.adb (Connect_Socket, version with timeout): When the
1896         newly-connected socket is reported as available for writing, check
1897         whether it has a pending asynchronous error prior to returning.
1899 2012-10-03  Ed Schonberg  <schonberg@adacore.com>
1901         * sem_ch6.adb (Check_Conformance): Additional info when subtype
1902         conformance fails, due to a missing null exclusion indicatar in
1903         a formal that must match a controlling access formal.
1905 2012-10-02  Ben Brosgol  <brosgol@adacore.com>
1907         * gnat_rm.texi: Minor editing.
1909 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
1911         * sem_ch6.adb (Analyze_Function_Return): Reject a return
1912         expression whose type is a local access to subprogram type.
1914 2012-10-02  Robert Dewar  <dewar@adacore.com>
1916         * sem_eval.adb: Minor improvement to Compile_Time_Compare.
1918 2012-10-02  Robert Dewar  <dewar@adacore.com>
1920         * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
1921         Fix base type problem that resulted in improper conversion.
1922         (Minimize_Eliminate_Overflow_Checks): Properly handle top
1923         level case to avoid unnecessary conversion to bignum or LLI.
1924         (Minimize_Eliminate_Overflow_Checks): Implement uniform two phase
1925         approach for arithmetic operators and for if/case expressions.
1926         * checks.ads: Minor comment fix.
1927         * exp_ch4.adb (Minimized_Eliminated_Overflow_Check): New function,
1928         implements a uniform way of treating minimized/eliminated checks in
1929         two phases.
1930         (Expand_Compare_Minimize_Eliminate_Overflow): Fix cut and
1931         paste error resulting in wrong results for less than in some
1932         cases.  (Expand_Membership_Minimize_Eliminate_Overflow):
1933         Fix error caused by incorrect capture of operand types.
1934         (Expand_Membership_Minimize_Eliminate_Overflow): Fix error in
1935         handling of bignum case.
1936         (Expand_N_Case_Expression): Implement
1937         proper two phase handling (Expand_N_If_Expression): Implement
1938         proper two phase handling (Expand_N_Op_Abs): Implement proper
1939         two phase handling ditto for all other arithmetic operators
1940         * sem_res.adb (Resolve_If_Expression): Avoid introducing
1941         unneeded conversions.
1943 2012-10-02  Robert Dewar  <dewar@adacore.com>
1945         * s-bignum.adb (Big_Exp): 0**0 should be 1, not 0.
1946         (Big_Exp): Fix possible error for (-1)**0.
1947         (Big_Exp): Fix error in computing 2**K for small K.
1948         (Big_Mod): Fix wrong sign for negative operands.
1949         (Div_Rem): Fix bad results for operands close to 2**63.
1950         * s-bignum.ads: Add documentation and an assertion to require
1951         LLI size to be 64 bits.
1952         * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Do not
1953         allow ELIMINATED if LLI'Size is other than 64 bits.
1954         * switch-c.adb (Scan_Switches): Do not allow -gnato3 if LLI'Size
1955         is not 64 bits.
1956         * switch.ads (Bad_Switch): Add missing pragma No_Return.
1957         * gnat_ugn.texi: Added appendix on Overflow Check Handling in GNAT.
1959 2012-10-02  Robert Dewar  <dewar@adacore.com>
1961         * sem_type.adb: Minor reformatting.
1963 2012-10-02  Robert Dewar  <dewar@adacore.com>
1965         * sem_ch8.adb: Minor reformatting.
1967 2012-10-02  Javier Miranda  <miranda@adacore.com>
1969         * exp_disp.adb (Set_CPP_Constructors): Handle constructor with default
1970         parameters that covers the default constructor.
1972 2012-10-02  Yannick Moy  <moy@adacore.com>
1974         * s-bignum.adb: Minor stylistic and comment corrections.
1976 2012-10-02  Pascal Obry  <obry@adacore.com>
1978         * prj-util.adb (For_Interface_Sources): Iterate over all sources in
1979         aggregate library projects.
1981 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
1983         * sem_ch8.adb (Find_Direct_Name): The left-hand side of an
1984         assignment may designate a generalized reference.
1986 2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>
1988         * types.h (N_Return_Statement): Delete.
1989         * gcc-interface/trans.c (gnat_to_gnu): Replace N_Return_Statement with
1990         N_Simple_Return_Statement.
1992 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
1994         * freeze.adb (Freeze_Entity): in a generic context, aspects must
1995         be analyzed because they may be queried subsequently within the
1996         generic unit, even if no other freezing actions are generated
1997         for an entity.
1998         * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): iterator
1999         aspects must be analyzed because they are delayed aspects and
2000         the corresponding attribute definition clause may not have been
2001         analyzed yet.
2003 2012-10-02  Yannick Moy  <moy@adacore.com>
2005         * gnat_rm.texi: Minor editing.
2007 2012-10-02  Robert Dewar  <dewar@adacore.com>
2009         * sinfo.adb, sinfo.ads, sem_util.adb, sem_util.ads, types.h,
2010         exp_ch4.adb, exp_ch6.adb: Get rid of internal use of N_Return_Statement.
2012 2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>
2014         * types.h: Minor cosmetic fix.
2016 2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>
2018         * gcc-interfaces/decl.c (elaborate_expression_1): Use the variable for
2019         bounds of loop iteraration scheme only for locally defined subtypes.
2021         * gcc-interface/trans.c (gigi): Fix formatting.
2022         (build_return_expr): Apply the NRV optimization only for BLKmode.
2024 2012-10-02  Robert Dewar  <dewar@adacore.com>
2026         * sinfo.ads: Remove refs of N_Conditional_Expression and
2027         N_Parameterized_Expression.
2029 2012-10-02  Thomas Quinot  <quinot@adacore.com>
2031         * exp_aggr.adb (Get_Component_Val): Rewrite code that computes
2032         justification of bits in enclosing word in an attempt to make
2033         it clearer.
2035 2012-10-02  Robert Dewar  <dewar@adacore.com>
2037         * par_sco.adb, sem_ch3.adb, layout.adb, exp_ch7.adb, exp_imgv.adb,
2038         exp_util.adb, exp_util.ads, exp_attr.adb, sinfo.adb, sinfo.ads,
2039         exp_ch9.adb, style.ads, scos.ads, debug.adb, einfo.ads, scng.adb,
2040         checks.adb, checks.ads, sem.adb, par-ch4.adb, sem_util.adb, types.h,
2041         sem_res.adb, expander.adb, scans.ads, par.adb, exp_ch2.adb,
2042         gnat1drv.adb, stylesw.ads, sem_elab.adb, exp_ch4.adb, exp_ch4.ads,
2043         exp_ch6.adb, sem_ch4.adb, sem_ch4.ads, sem_ch6.adb,
2044         opt.ads, sem_eval.adb, sem_eval.ads, exp_intr.adb, sprint.adb,
2045         sprint.ads, styleg.ads: Change name Conditional_Expression to
2046         If_Expression.
2047         * gcc-interface/trans.c (gnat_to_gnu): Replace
2048         N_Conditional_Expression by N_If_Expression.
2049         * gcc-interface/Make-lang.in: Update dependencies.
2051 2012-10-02  Robert Dewar  <dewar@adacore.com>
2053         * exp_ch4.adb (Expand_N_Op_Expon): Use expression with actions
2054         for x ** 4.
2056 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
2058         * sem_ch5.adb: (Analyze_Iterator_Specification): If container
2059         has a variable indexing aspect, the element is a variable and
2060         is modifiable in the loop. This check is also performed when the
2061         loop is expanded, but it must be done in semantic analysis when
2062         expansion is disabled, for example for ASIS usage.
2064 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
2066         * lib-xref.adb (Generate_Reference): If a child subprogram
2067         has no previous spec, treat a reference to its formals (such
2068         as a parameter association) as coming from source in order to
2069         generate the proper references and enable gps navigation between
2070         reference and declaration.
2072 2012-10-02  Robert Dewar  <dewar@adacore.com>
2074         * checks.adb (Apply_Arithmetic_Overflow_Checked_Suppressed):
2075         New name for Apply_Arithmetic_Overflow_Normal
2076         (Apply_Arithmetic_Overflow_Minimized_Eliminated):
2077         Add handling for conditional expressions
2078         (Is_Signed_Integer_Arithmetic_Op): Now includes conditional
2079         expressions (Minimize_Eliminate_Overflow_Checks): Handle
2080         conditional expressions.
2081         * checks.ads: Minor comment fixes.
2082         * exp_ch4.adb (Expand_N_Case_Expression): Call
2083         Apply_Arithmetic_Overflow_Check (Expand_N_Conditional_Expression):
2084         Call Apply_Arithmetic_Overflow_Check
2085         * s-bignum.adb (Normalize): Remove incorrect precondition.
2086         * sem_res.adb (Resolve_Case_Expression): Set Do_Overflow_Check
2087         flag (Resolve_Conditional_Expression): Set Do_Overflow_Check flag.
2088         * sinfo.adb: Add Do_Overflow_Check for conditional expressions.
2089         * sinfo.ads: Minor documentation updates.
2091 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
2093         * exp_ch4.adb (Expand_N_Case_Expression): Do not introduce
2094         indirections when the type of the alternatives is an access type:
2095         more efficient, and removes anomalies when an alternative is
2096         statically null.
2098 2012-10-02  Robert Dewar  <dewar@adacore.com>
2100         * aspects.ads: Minor comment addition (Invariant is a GNAT aspect).
2102 2012-10-02  Robert Dewar  <dewar@adacore.com>
2104         * exp_ch7.adb, sem_dim.adb, sem_dim.ads, prj-part.adb, checks.adb,
2105         freeze.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting.
2107 2012-10-02  Robert Dewar  <dewar@adacore.com>
2109         * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Fix
2110         typo preventing proper processing of Overflow_Checks pragmas
2111         for general case.
2113 2012-10-02  Robert Dewar  <dewar@adacore.com>
2115         * exp_ch4.adb (Expand_N_Op_Mod): Fix crash in ELIMINATED overflow
2116         checks mode when bignum mode is used.
2118 2012-10-02  Robert Dewar  <dewar@adacore.com>
2120         * stylesw.ads, gnat_ugn.texi: Document new style rule for NOT IN.
2121         * par-ch4.adb (P_Relational_Operator): Add style check for NOT IN.
2122         * style.ads, styleg.adb, styleg.ads (Check_Not_In): New procedure.
2124 2012-10-02  Vincent Pucci  <pucci@adacore.com>
2126         * sem_attr.adb (Analyze_Attribute): Check dimension for attribute
2127         Old before it gets expanded.
2128         * sem_dim.adb (Analyze_Dimension_Has_Etype): Correctly propagate
2129         dimensions for identifier.
2131 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
2133         * exp_ch5.adb (Expand_Iterator_Loop): Handle properly the case
2134         where the iterator type is derived locally from an instantiation
2135         of Ada.Iterators_Interface.
2136         * exp_ch7.adb (Establish_Transient_Scope): Do not create a
2137         transient scope if within the expansion of an iterator loop,
2138         because a transient block already exists.
2140 2012-10-02  Vincent Celier  <celier@adacore.com>
2142         * gnatcmd.adb: Use absolute path for configuration pragmas files
2143         * make.adb (Configuration_Pragmas_Switch.Absolute_Path): Moved
2144         to Makeutl.
2145         * makeutl.ads, makeutl.adb (Absolute_Path): New function, moved from
2146         make.adb.
2148 2012-10-02  Vincent Celier  <celier@adacore.com>
2150         * prj-part.adb (Post_Parse_Context_Clause): Resurrect Boolean
2151         parameter In_Limited.  Check for circularity also if In_Limited
2152         is True.
2153         (Parse_Single_Project): Call Post_Parse_Context_Clause with
2154         In_Limited parameter.
2156 2012-10-02  Bob Duff  <duff@adacore.com>
2158         * checks.adb (Apply_Predicate_Check): Disable check in -gnatc mode.
2160 2012-10-02  Vincent Pucci  <pucci@adacore.com>
2162         * sem_ch6.adb (Analyze_Function_Call): Dimension propagation
2163         for function calls moved to Analyze_Dimension_Call.
2164         * sem_dim.adb (Analyze_Dimension_Call): Properly propagate the
2165         dimensions from the returned type for function calls.
2167 2012-10-02  Vincent Celier  <celier@adacore.com>
2169         * gnatcmd.adb: Take into account any configuration pragma file
2170         in the project files for gnat pretty/stub/metric.
2172 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
2174         * sem_ch13.adb (Check_Indexing_Functions): Refine several tests
2175         on the legality of indexing aspects: Constant_Indexing functions
2176         do not have to return a reference type, and given an indexing
2177         aspect Func, not all overloadings of Func in the current scope
2178         need to be indexing functions.
2180 2012-10-02  Vasiliy Fofanov  <fofanov@adacore.com>
2182         * gnat_ugn.texi: Adjust docs for overflow checks to be VMS-friendly.
2184 2012-10-02  Vincent Celier  <celier@adacore.com>
2186         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
2187         -gnatox and -gnatoxx when x=0/1/2/3.
2189 2012-10-02  Vincent Pucci  <pucci@adacore.com>
2191         * sem_ch4.adb (Analyze_Indexed_Component_Form): Dimension
2192         analysis for indexed components added.
2193         * sem_ch6.adb (Analyze_Function_Call): Dimension propagation
2194         for function calls added.
2195         * sem_dim.adb (Analyze_Dimension): Call to
2196         Analyze_Dimension_Has_Etype when N is a function call.
2197         (Analyze_Dimension_Call): Don't propagate anymore the dimensions
2198         for function calls since this is now treated separately in
2199         Analyze_Dimension_Has_Etype.
2200         (Analyze_Dimension_Has_Etype): For
2201         attribute references, propagate the dimensions from the prefix.
2202         * sem_dim.ads (Copy_Dimensions): Fix comment.
2204 2012-10-02  Hristian Kirtchev  <kirtchev@adacore.com>
2206         * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine.
2207         (Apply_Parameter_Aliasing_And_Validity_Checks): This routine
2208         has been split into two.
2209         (Apply_Parameter_Validity_Checks): New routine.
2210         * exp_ch6.adb (Expand_Call): Add checks to verify that actuals
2211         do not overlap. The checks are made on the caller side to overcome
2212         issues of parameter passing mechanisms.
2213         * freeze.adb (Freeze_Entity): Update call to
2214         Apply_Parameter_Aliasing_And_Validity_Checks.
2216 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
2218         * sem_ch4.adb (Is_Empty_Range): Use bounds of index type
2219         to determine whether an array is empty when optimizing
2220         a quantified expression over a null range. Use of RM_Size
2221         was incorrect. Analyze condition before constant-folding the
2222         expression to catch potential errors. Modify the error message
2223         to avoid mathematical terminology.
2225 2012-10-02  Robert Dewar  <dewar@adacore.com>
2227         * usage.adb, gnat_rm.texi, vms_data.ads: Add entry for
2228         /OVERFLOW_CHECKS=?? generating -gnato?? for control
2229         of extended overflow checking.
2230         * ug_words: Add entry for -gnato?? for /OVERFLOW_CHECKS=??
2231         * gnat_ugn.texi: Add documentation for -gnato?? for control of overflow
2232         checking mode.
2234 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
2236         * sem_ch4.adb (Analyze_Quantified_Expression): If the iterator in
2237         a quantified expression is statically known to be null (e.g. a
2238         array with an empty index type) emit a warning.
2240 2012-10-02  Robert Dewar  <dewar@adacore.com>
2242         * sem_dim.adb: Minor code reorganization.
2243         * sem_dim.ads: Add comment.
2245 2012-10-02  Robert Dewar  <dewar@adacore.com>
2247         * checks.ads, exp_ch4.adb, checks.adb
2248         (Minimize_Eliminate_Overflow_Checks): Add Top_Level parameter to avoid
2249         unnecessary conversions to Bignum.
2250         Minor reformatting.
2252 2012-10-02  Ed Schonberg  <schonberg@adacore.com>
2254         * sem_ch6.adb (Process_PPCs): Generate invariant checks for a
2255         return value whose type is an access type and whose designated
2256         type has invariants. Ditto for in-out parameters and in-parameters
2257         of an access type.
2258         * exp_ch3.adb (Build_Component_Invariant_Call): Add invariant check
2259         for an access component whose designated type has invariants.
2261 2012-10-01  Vincent Pucci  <pucci@adacore.com>
2263         * sem_aggr.adb (New_Copy_Tree_And_Copy_Dimensions): New routine.
2264         (Resolve_Record_Aggregate): New_Copy_Tree calls replaced by
2265         New_Copy_Tree_And_Copy_Dimensions calls. Move_Dimensions call
2266         replaced by Copy_Dimensions call.
2267         * sem_dim.adb (Analyze_Dimension_Component_Declaration): Don't
2268         remove the dimensions of expression in component declaration anymore.
2269         (Copy_Dimensions): New routine.
2270         (Move_Dimensions): Add call to Copy_Dimensions.
2271         * sem_dim.ads (Copy_Dimensions): New routine.
2272         (Move_Dimensions): Spec moved to body of Sem_Dim.
2274 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2276         * checks.adb (Apply_Predicate_Check): If the predicate is a
2277         static one and the operand is static, evaluate the predicate at
2278         compile time.
2279         * sem_eval.ads, sem_eval.adb (Eval_Static_Predicate_Check): new
2280         procedure, to evaluate a static predicate check whenever possible.
2281         * sem_res.adb (Resolve_Type_Conversion): Apply predicate check
2282         on the conversion if the target type has predicates.
2284 2012-10-01  Vincent Pucci  <pucci@adacore.com>
2286         * sem_dim.adb (Has_Symbols): Complain if parameter Symbol has been
2287         provided by the user in the dimension output call.
2289 2012-10-01  Robert Dewar  <dewar@adacore.com>
2291         * checks.adb (Apply_Divide_Checks): New name for
2292         Apply_Divide_Check (Minimize_Eliminate_Overflow_Checks):
2293         Add code to handle division (and rem and mod) properly.
2294         (Apply_Division_Check): New procedure (Apply_Divide_Checks):
2295         Use Apply_Division_Check (Apply_Divide_Checks): Use
2296         Apply_Arithmetic_Overflow_Minimized_Eliminated.
2297         * checks.ads (Apply_Divide_Checks): New name for
2298         Apply_Divide_Check, also add clearer documentation for this
2299         routine and put in alfa order.
2300         * exp_ch4.adb (Apply_Divide_Checks): New name for
2301         Apply_Divide_Check.
2302         * s-bignum.adb (To_Bignum): Handle largest negative integer
2303         properly.
2304         * sem.adb (Analyze): Handle overflow suppression correctly
2305         (Analyze_List): Handle overflow suppression correctly
2306         * sem_res.adb (Analyze_And_Resolve): Handle overflow suppression
2307         correctly.
2309 2012-10-01  Vasiliy Fofanov  <fofanov@adacore.com>
2311         * s-oscons-tmplt.c, g-socket.ads: Revert previous change, breaks VMS.
2313 2012-10-01  Robert Dewar  <dewar@adacore.com>
2315         * checks.adb (Minimize_Eliminate_Overflow_Checks): Changes
2316         for exponentiation.
2317         * exp_ch4.adb (Expand_N_Op_Expon): Changes for Minimize/Eliminate
2318         overflow checks.
2319         * s-bignum.adb (Compare): Fix bad precondition.
2321 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2323         * sem_ch3.adb (Build_Derived_Record_Type): If the derived
2324         type has new discriminantss that constrain inherited ones, use
2325         the discriminant type in the original declaration to check for
2326         conformance, because in the presence of array components with a
2327         smaller range that are constrained by the origina discriminant,
2328         the compiler will have created a narrower subtype for that
2329         discriminant.
2331 2012-10-01  Robert Dewar  <dewar@adacore.com>
2333         * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
2334         Handle case of appearing in range in membership test.
2335         * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow):
2336         New procedure (Expand_N_In): Use
2337         Expand_Membership_Minimize_Eliminate_Overflow.
2338         * rtsfind.ads: Add RE_Bignum_In_LLI_Range.
2339         * s-bignum.ads, s-bignum.adb (Bignum_In_LLI_Range): New function.
2340         * sinfo.ads, sinfo.adb (No_Minimize_Eliminate): New flag.
2342 2012-10-01  Robert Dewar  <dewar@adacore.com>
2344         * uintp.ads: Minor reformatting.
2346 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2348         * checks.adb: Improve warning message.
2350 2012-10-01  Robert Dewar  <dewar@adacore.com>
2352         * checks.adb: Minor reformatting.
2354 2012-10-01  Javier Miranda  <miranda@adacore.com>
2356         * exp_ch3.adb (Expand_N_Object_Declaration): Suppress tag
2357         assignment for initializations that are aggregates.
2359 2012-10-01  Robert Dewar  <dewar@adacore.com>
2361         * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow):
2362         New procedure.
2364 2012-10-01  Robert Dewar  <dewar@adacore.com>
2366         * checks.adb (Minimize_Eliminate_Checks): Changes from testing.
2367         (Apply_Arithmetic_Overflow_Minimized_Eliminated): Changes
2368         from testing.
2369         * sinfo.ads: Remove note on not setting Entity field in overflow
2370         case since this is no longer true.
2371         * Makefile.rtl: Add s-bignum.o
2373 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2375         * Make-generated.in: Correction to previous change for s-oscons
2376         target.
2378 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2380         * s-bignum.adb (Allocate_Bignum): Reorganize to kill strict
2381         aliasing warning.
2383 2012-10-01  Robert Dewar  <dewar@adacore.com>
2385         * checks.adb (Overflow_Check_Mode): New function
2386         (Apply_Overflow_Check): New procedure (Is_Check_Suppressed):
2387         Moved here from Sem, Overflow_Check case now specially treated.
2388         * checks.ads (Overflow_Check_Mode): New function
2389         (Is_Check_Suppressed): Moved here from Sem (more logical)
2390         * exp_ch4.adb (Substitute_Valid_Check): Suppress warning about
2391         optimization if we are in MINIMIZED or ELIMINATED overflow
2392         checking mode and within an assertiom expression.
2393         * rtsfind.ads: Add entries for Bignum stuff.
2394         * s-bignum.ads, s-bignum.adb: New files.
2395         * sem.ads, sem.adb (Is_Check_Suppressed): Moved to Checks, more logical.
2396         * sem_prag.adb (Process_Suppress_Unsuppress): New behavior for
2397         Unsuppress of Overflow_Check (sets Checked instead of Minimized)
2398         * sem_res.adb: Update comments.
2399         * sinfo.ads (N_Op): Add documentation on overflow handling.
2400         * tbuild.ads, tbuild.adb (Convert_To_And_Rewrite): New procedure.
2401         * types.ads (Minimized_Or_Eliminated): New subtype.
2403 2012-10-01  Eric Botcazou  <ebotcazou@adacore.com>
2405         * layout.adb (Layout_Type): Do not set twice the address size
2406         on an access-to-unconstrained array if Debug_Flag_6 is set.
2408 2012-10-01  Hristian Kirtchev  <kirtchev@adacore.com>
2410         * sem_ch3.adb (Analyze_Declarations): Remove the specialized
2411         code which prevents freezing when the declarative list contains
2412         a _postconditions body. This is no longer needed because the
2413         body is now inserted at the end of the declarations.
2414         * sem_ch6.adb (Insert_After_Last_Declaration): New routine.
2415         (Insert_Before_First_Source_Declaration): Removed.
2416         (Process_PPCs): Insert the _postconditions body at the end of
2417         the declarative list to prevent premature freezing of types that
2418         appear in the declarations.
2420 2012-10-01  Robert Dewar  <dewar@adacore.com>
2422         * sem_aggr.adb, sem_dim.adb: Minor reformatting.
2424 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2426         * sem_prag.adb (Process_Convention, Process_Import_Or_Interface):
2427         Adjust test so that when the pragma comes from an aspect
2428         specification it only applies to the entity in the original
2429         declaration.
2431 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2433         * gnat_ugn.texi: Document new command line switch -fada-spec-parent.
2435 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2437         * s-oscons-tmplt.c, g-socket.ads: Minor code improvement: use gcc
2438         builtin __alignof__ to get the alignment of struct fd_set.
2440 2012-10-01  Vincent Pucci  <pucci@adacore.com>
2442         * exp_ch6.adb (Expand_Call): Remove call to
2443         Remove_Dimension_In_Call.
2444         * sem_aggr.adb (Resolve_Array_Aggregate): Analyze dimension of
2445         components in array aggregate.
2446         (Resolve_Aggr_Expr): Propagate dimensions from the original expression
2447         Expr to the new created expression New_Expr when resolving the
2448         expression of a component in record aggregates.
2449         (Resolve_Record_Aggregate): Analyze
2450         dimension of components in record (or extension) aggregate.
2451         * sem_ch6.adb (Analyze_Subprogram_Specification): Analyze
2452         dimension of formals with default expressions in subprogram
2453         specification.
2454         * sem_ch8.adb (Analyze_Expanded_Name): Analyze dimension of
2455         expanded names.
2456         (Find_Selected_Component): Analyze dimension of selected component.
2457         * sem_dim.adb: Several dimension error messages reformatting.
2458         (Dimensions_Msg_Of): New flag Description_Needed in order to
2459         differentiate two different sort of dimension error messages.
2460         (Dim_Warning_For_Numeric_Literal): New routine.
2461         (Exists): New routine.
2462         (Move_Dimensions): Routine spec moved to spec file.
2463         * sem_dim.ads (String_From_Numeric_Literal): New routine.
2464         (Analyze_Dimension): Analyze dimension only when the
2465         node comes from source.  Dimension analysis for expanded names added.
2466         (Analyze_Dimension_Array_Aggregate): New routine.
2467         (Analyze_Dimension_Call): New routine.
2468         (Analyze_Dimension_Component_Declaration): Warning if default
2469         expression is a numeric literal.
2470         (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine.
2471         (Analyze_Dimension_Formals): New routine.
2472         (Analyze_Dimension_Object_Declaration): Warning if default
2473         expression is a numeric literal.
2474         (Symbol_Of): Return either the dimension subtype symbol or the
2475         dimension symbol built by From_Dim_To_Str_Of_Unit_Symbols.
2476         * sem_dim.ads (Analyze_Dimension_Array_Aggregate): New routine.
2477         (Analyze_Dimension_Call): New routine.
2478         (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine.
2479         (Analyze_Dimension_Formals): New routine.
2480         (Move_Dimensions): Moved from sem_dim.adb.
2481         * s-dimmks.ads: Turn off the warnings for dimensioned object
2482         declaration.  Dimensioned subtypes sorted in alphabetical
2483         order. New subtypes Area, Speed, Volume.
2484         * s-dmotpr.ads: Turn off the warnings for dimensioned object
2485         declaration.
2486         * sem_res.adb (Resolve_Call): Analyze dimension for calls.
2488 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2490         * Make-generated.in: Minor cleanup of all targets: use
2491         MOVE_IF_CHANGE to put generated files in place, to avoid useless
2492         recompilations.
2494 2012-10-01  Javier Miranda  <miranda@adacore.com>
2496         * exp_disp.adb (Expand_Dispatching_Call): For functions returning
2497         interface types add an implicit conversion to the returned object
2498         to force the displacement of the pointer to the returned object
2499         to reference the corresponding secondary dispatch table. This
2500         is needed to handle well combined calls involving secondary
2501         dispatch tables (for example Obj.Prim1.Prim2).
2502         * exp_ch4.adb (Expand_Allocator_Expression): Declare internal
2503         access type as access to constant or access to variable depending
2504         on the context. Found working in this ticket.
2506 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2508         * checks.adb (Apply_Predicate_Check): Do not apply check to
2509         actual of predicate checking procedure, to prevent infinite
2510         recursion.
2512 2012-10-01  Arnaud Charlet  <charlet@adacore.com>
2514         * gcc-interface/Make-lang.in: Update dependencies.
2515         (GCC_LINK): Add -static-libstdc++.
2517 2012-10-01  Arnaud Charlet  <charlet@adacore.com>
2519         * a-catizo.adb, a-stwiun.adb, a-cdlili.adb, a-cihama.adb, a-direct.adb,
2520         a-coinve.adb, a-calend.adb, a-ciorse.adb, a-coorma.adb, a-cfdlli.adb,
2521         a-stzunb-shared.adb, a-cfhase.adb, bindgen.adb, ceinfo.adb, a-tags.adb,
2522         einfo.adb, checks.adb, eval_fat.adb, a-cborma.adb, a-stwifi.adb,
2523         a-tifiio.adb, a-textio.adb, a-cidlli.adb, a-strunb-shared.adb,
2524         a-cimutr.adb, a-calcon.adb, a-exexpr-gcc.adb, a-ciormu.adb,
2525         a-stzunb.adb, a-stzsea.adb, a-ngelfu.adb, a-stzfix.adb,
2526         a-cihase.adb, a-cohama.adb, a-exetim-posix.adb, a-dirval-vms.adb,
2527         a-caldel-vms.adb, a-coorse.adb, errout.adb,
2528         a-except.adb, butil.adb, a-dirval-mingw.adb, a-cforma.adb,
2529         a-except-2005.adb, a-wtedit.adb, cstand.adb, a-stwiun-shared.adb,
2530         a-cbhama.adb, a-direio.adb, clean.adb, a-cborse.adb, back_end.adb,
2531         binde.adb, a-exexda.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb,
2532         a-coormu.adb, a-teioed.adb, a-convec.adb, a-wtenau.adb, exp_aggr.adb,
2533         a-ztedit.adb, a-cohase.adb, a-exetim-mingw.adb, bcheck.adb,
2534         a-dynpri.adb, a-cfhama.adb, a-calfor.adb, a-cbdlli.adb,
2535         a-crdlli.adb, a-cbmutr.adb, a-sequio.adb, a-ngcoar.adb, a-cforse.adb,
2536         a-strunb.adb, a-calend-vms.adb, a-clrefi.adb, a-cofove.adb,
2537         a-ztenau.adb, a-strfix.adb, a-cbhase.adb, a-stzsup.adb: Minor
2538         reformatting.
2540 2012-10-01  Vincent Pucci  <pucci@adacore.com>
2542         PR ada/54614
2543         * s-gearop.adb (Vector_Matrix_Product): Fix dimension check and index
2544         of Left in S evaluation.
2546 2012-10-01  Javier Miranda  <miranda@adacore.com>
2548         * sem_ch3.adb (Analyze_Declarations): Avoid
2549         premature freezing caused by the internally generated subprogram
2550         _postconditions.
2551         * checks.adb (Expr_Known_Valid): Float literals are assumed to be valid
2552         in VM targets.
2554 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2556         * sinput.ads, sinput.adb, sinput-l.adb sinput-c.adb (Sinput): New
2557         Instances table, tracking all generic instantiations. Source file
2558         attribute Instance replaces previous Instantiation attribute with an
2559         index into the Instances table.
2560         (Iterate_On_Instances): New generic procedure.
2561         (Create_Instantiation_Source): Record instantiations in Instances.
2562         (Tree_Read, Tree_Write): Read/write the instance table.
2563         * scils.ads, scos.adb (SCO_Instance_Table): New table, contains
2564         information copied from Sinput.Instance_Table, but self-contained
2565         within the SCO data structures.
2566         * par_sco.ads, par_sco.adb (To_Source_Location): Move to library level.
2567         (Record_Instance): New subprogram, used by...
2568         (Populate_SCO_Instance_Table): New subprogram to fill
2569         the SCO instance table from the Sinput one (called by SCO_Output).
2570         * opt.ads (Generate_SCO_Instance_Table): New option.
2571         * put_scos.adb (Write_Instance_Table): New subprogram, used by...
2572         (Put_SCOs): Dump the instance table at the end of SCO information
2573         if requested.
2574         * get_scos.adb (Get_SCOs): Read SCO_Instance_Table.
2575         * types.h: Add declaration for Instance_Id.
2576         * back_end.adb (Call_Back_End): Pass instance ids in source file
2577         information table.
2578         (Scan_Back_End_Switches): -fdebug-instances sets
2579         Opt.Generate_SCO_Instance_Table.
2580         * gcc-interface/gigi.h: File_Info_Type includes instance id.
2581         * gcc-interface/trans.c: Under -fdebug-instances, set instance
2582         id in line map from same in file info.
2584 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2586         * sem_elab.adb: Minor reformatting
2587         (Check_Elab_Call): Minor fix to debugging code
2588         (add special circuit for the valid case where a 'Access attribute
2589         reference is passed to Check_Elab_Call).
2591 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2593         * exp_ch3.adb: Minor reformatting.
2595 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2597         * exp_ch3.ads (Build_Array_Invariant_Proc): moved to body.
2598         * exp_ch3.adb (Build_Array_Invariant_Proc,
2599         Build_Record_Invariant_Proc): transform into functions.
2600         (Insert_Component_Invariant_Checks): for composite types that have
2601         components with specified invariants, build a checking procedure,
2602         and make into the invariant procedure of the composite type,
2603         or incorporate it into the user- defined invariant procedure if
2604         one has been created.
2605         * sem_ch3.adb (Array_Type_Declaration): Checking for invariants
2606         on the component type is defered to the expander.
2608 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2610         * xsnamest.adb, namet.h, sem_ch10.adb, s-oscons-tmplt.c,
2611         xoscons.adb: Minor reformatting.
2613 2012-10-01  Hristian Kirtchev  <kirtchev@adacore.com>
2615         * checks.adb (Apply_Parameter_Aliasing_And_Validity_Checks):
2616         Do not process subprogram renaminds because a) those cannot
2617         have PPC pragmas b) the renamed entity already has the PPCs.
2618         (Build_PPC_Pragma): Prepend a PPC pragma for consistency with
2619         Process_PPCs.
2620         * sem_ch6.adb (Last_Implicit_Declaration): Removed.
2621         (Process_PPCs): Insert a post condition body at the start of the
2622         declarative region of the related subprogram. This way the body
2623         will not freeze anything it shouldn't.
2625 2012-10-01  Robert Dewar  <dewar@adacore.com>
2627         * freeze.adb, sem_ch6.adb, opt.ads, sem_ch13.adb,
2628         exp_ch3.adb: Minor reformatting.
2630 2012-10-01  Hristian Kirtchev  <kirtchev@adacore.com>
2632         * checks.adb (Build_PPC_Pragma): A PPC pragma can now be properly
2633         associated with a subprogram body.
2635 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2637         * aspects.ads: Type_Invariant'class is a valid aspect.
2638         * sem_ch6.adb (Is_Public_Subprogram_For): with the exception of
2639         initialization procedures, subprograms that do not come from
2640         source are not public for the purpose of invariant checking.
2641         * sem_ch13.adb (Build_Invariant_Procedure): Handle properly the
2642         case of a non-private type in a package without a private part,
2643         when the type inherits invariants from its ancestor.
2645 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2647         * exp_ch3.adb (Build_Record_Invariant_Proc): new procedure to
2648         generate a checking procedure for record types that may have
2649         components whose types have type invariants declared.
2651 2012-10-01  Vincent Pucci  <pucci@adacore.com>
2653         * system-solaris-sparcv9.ads, system-mingw.ads, system-vms_64.ads: Flag
2654         Support_Atomic_Primitives set to True.
2656 2012-10-01  Robert Dewar  <dewar@adacore.com>
2658         * impunit.adb: Ada.Locales is a language defined unit.
2660 2012-10-01  Hristian Kirtchev  <kirtchev@adacore.com>
2662         * checks.adb (Apply_Parameter_Aliasing_Checks): Removed.
2663         (Apply_Parameter_Aliasing_And_Validity_Checks): New routine.
2664         (Apply_Parameter_Validity_Checks): Removed.
2665         * checks.ads (Apply_Parameter_Aliasing_Checks): Removed.
2666         (Apply_Parameter_Aliasing_And_Validity_Checks): New routine.
2667         (Apply_Parameter_Validity_Checks): Removed.
2668         * exp_ch6.adb (Expand_Call): Remove the generation of parameter
2669         aliasing checks.
2670         * freeze.adb: Remove with and use clauses for Validsw.
2671         (Freeze_Entity): Update the guard and generation of aliasing
2672         and scalar initialization checks for subprogram parameters.
2673         * opt.ads: Add new flags Check_Aliasing_Of_Parameters and
2674         Check_Validity_Of_Parameters along with comments on usage.
2675         * sem_attr.adb (Analyze_Attribute): Pragma Overlaps_Storage is
2676         no longer an Ada 2012 feature.
2677         * sem_ch4.adb: Remove with and use clauses for Checks and Validsw.
2678         (Analyze_Call): Remove the generation of aliasing checks for
2679         subprogram parameters.
2680         * sem_ch13.adb: Remove with and use clauses for Validsw.
2681         (Analyze_Aspect_Specifications): Remove the generation of scalar
2682         initialization checks.
2683         * switch-c.adb (Scan_Front_End_Switches): Add processing for
2684         -gnateA and -gnateV.
2685         * usage.adb (Usage): Add information on switches -gnateA and
2686         -gnateV. Remove information on validity switches 'l', 'L',
2687         'v' and 'V'.
2688         * validsw.adb (Reset_Validity_Check_Options): Remove the
2689         reset of flags Validity_Check_Non_Overlapping_Params
2690         and Validity_Check_Valid_Scalars_On_Params.
2691         (Save_Validity_Check_Options): Remove the processing
2692         for flags Validity_Check_Non_Overlapping_Params
2693         and Validity_Check_Valid_Scalars_On_Params.
2694         (Set_Validity_Check_Options): Remove the processing
2695         for flags Validity_Check_Non_Overlapping_Params and
2696         Validity_Check_Valid_Scalars_On_Params.
2697         * validsw.ads: Remove flags Validity_Check_Non_Overlapping_Params
2698         and Validity_Check_Valid_Scalars_On_Params along with their
2699         comments on usage.
2701 2012-10-01  Yannick Moy  <moy@adacore.com>
2703         * sem_ch13.adb (Add_Invariants): Analyze the invariant expression
2704         as an assertion expression.
2705         * sem_ch3.adb / sem_ch3.ads (Preanalyze_Assert_Expression):
2706         New procedure that wraps a call to Preanalyze_Spec_Expression
2707         for assertion expressions, so that In_Assertion_Expr can be
2708         properly adjusted.
2709         * sem_prag.adb (Analyze_PPC_In_Decl_Part
2710         Check_Precondition_Postcondition Preanalyze_CTC_Args): Call the
2711         new Preanalyze_Assert_Expression.
2713 2012-10-01  Robert Dewar  <dewar@adacore.com>
2715         * checks.ads: Minor reformatting.
2717 2012-10-01  Yannick Moy  <moy@adacore.com>
2719         * types.ads, sem_prag.adb, sem.ads: Correct minor typos in comments.
2721 2012-10-01  Vincent Celier  <celier@adacore.com>
2723         * make.adb (Scan_Make_Arg): Only test for "vP" of the option
2724         includes at least 3 characters.
2725         * gnatcmd.adb (GNATCmd): Ditto.
2727 2012-10-01  Eric Botcazou  <ebotcazou@adacore.com>
2729         * exp_ch7.adb, sinfo.ads: Add comments.
2731 2012-10-01  Robert Dewar  <dewar@adacore.com>
2733         * checks.adb: Remove reference to Enable_Overflow_Checks Use
2734         Suppress_Options rather than Scope_Suppress.
2735         * gnat1drv.adb (Adjust_Global_Switches): Handle new overflow
2736         settings (Adjust_Global_Switches): Initialize Scope_Suppress
2737         from Suppress_Options.
2738         * opt.adb: Remove Enable_Overflow_Checks (use Suppress_Options
2739         instead).
2740         * opt.ads: Remove Overflow_Checks_Unsuppressed (not used)
2741         Remove Enable_Overflow_Checks (use Suppress_Options instead)
2742         Suppress_Options is now current setting (replaces Scope_Suppress).
2743         * osint.adb (Initialize): Deal with initializing overflow
2744         checking.
2745         * par-prag.adb: Add dummy entry for pragma Overflow_Checks.
2746         * sem.adb (Semantics): Save and restore In_Assertion_Expr Use
2747         Suppress_Options instead of Scope_Suppress.
2748         * sem.ads (In_Assertion_Expr): New flag (Scope_Suppress):
2749         Removed, use Suppress_Options instead.
2750         * sem_eval.adb (Compile_Time_Compare): Return Unknown in
2751         preanalysis mode.
2752         * sem_prag.adb (Process_Suppress_Unsuppress): Setting of
2753         Overflow_Checks_Unsuppressed removed (not used anywhere!)
2754         (Analyze_Pragma, case Check): Set In_Assertion_Expression
2755         (Analyze_Pragma, case Overflow_Checks): Implement new pragma
2756         * snames.ads-tmpl: Add names needed for handling pragma
2757         Overflow_Checks
2758         * switch-c.adb (Scan_Front_End_Switches) Handle -gnato? and
2759         -gnato?? where ? is 0-3
2760         * types.ads: Updates and fixes to comment on Suppress_Record.
2762 2012-10-01  Vincent Celier  <celier@adacore.com>
2764         * prj-part.adb (Parse): Remove incorrect comment about checking
2765         imported non extending projects from and "extending all"
2766         one. Minor correction.
2768 2012-10-01  Robert Dewar  <dewar@adacore.com>
2770         * make.adb, exp_ch3.adb: Minor reformatting.
2772 2012-10-01  Hristian Kirtchev  <kirtchev@adacore.com>
2774         * validsw.adb (Save_Validity_Check_Options): Do not set
2775         Validity_Check_Non_Overlapping_Params and
2776         Validity_Check_Valid_Scalars_On_Params when -gnatVa is present
2777         because the related checks are deemed too aggressive.
2779 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2781         * sem_util.ads sem_util.adb (Check_Internal_Protected_Use):
2782         reject use of protected procedure or entry within the body of
2783         a protected function of the same protected type, when usage is
2784         a call, an actual in an instantiation, a or prefix of 'Access.
2785         * sem_ch8.adb (Analyze_Subprogram_Renaming): Verify that target
2786         object in renaming of protected procedure is a variable, and
2787         apply Check_Internal_Protected_Use.
2788         * sem_res.adb (Analyze_Call, Analyze_Entry_Call): apply
2789         Check_Internal_Protected_Use rather than on-line code.
2790         * sem_attr.adb (Analyze_Access_Attribute): Verify that target
2791         object in accsss to protected procedure is a variable, and apply
2792         Check_Internal_Protected_Use.
2794 2012-10-01  Gary Dismukes  <dismukes@adacore.com>
2796         * sem_ch4.adb (Find_Equality_Types.Try_One_Interp): Exclude the
2797         predefined interpretation from consideration if it's for a "/="
2798         operator of a tagged type. This will allow Analyze_Equality_Op to
2799         rewrite the "/=" as a logical negation of a call to the appropriate
2800         dispatching equality function. This needs to be done during
2801         analysis rather than expansion for the benefit of ASIS, which
2802         otherwise gets the unresolved N_Op_Ne operator from Standard.
2804 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2806         * gnatcmd.adb, make.adb (Scan_Make_Arg, Inspect_Switches): Recognize
2807         and reject an invalid parameter passed to -vP.
2809 2012-10-01  Yannick Moy  <moy@adacore.com>
2811         * sem_warn.adb (Check_Infinite_Loop_Warning/Test_Ref): Improve
2812         the detection of modifications to the loop variable by noting
2813         that, if the type of variable is elementary and the condition
2814         does not contain a function call, then the condition cannot be
2815         modified by side-effects from a procedure call.
2817 2012-10-01  Robert Dewar  <dewar@adacore.com>
2819         * checks.adb: Add comments.
2821 2012-10-01  Javier Miranda  <miranda@adacore.com>
2823         * exp_ch3.adb (Expand_N_Object_Declaration): Improve condition catching
2824         never-ending recursion. The previous condition erroneously disabled
2825         silently the expansion of the class-wide interface object
2826         initialization in cases not involving the recursion.
2828 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2830         * make.adb: Minor documentation fix: error messages are sent to
2831         stderr, not stdout.
2833 2012-10-01  Hristian Kirtchev  <kirtchev@adacore.com>
2835         * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine.
2836         (Apply_Parameter_Validity_Checks): New routines.
2837         * exp_ch6.adb (Expand_Call): Add aliasing checks to detect
2838         overlapping objects.
2839         * freeze.adb: Add with and use clauses for Checks and Validsw.
2840         (Freeze_Entity): Add checks to detect proper initialization
2841         of scalars.
2842         * sem_ch4.adb: Add with and use clauses for Checks and Validsw.
2843         (Analyze_Call): Add aliasing checks to detect overlapping objects.
2844         * sem_ch13.adb: Add with and use clauses for Validsw.
2845         (Analyze_Aspect_Specifications): Add checks to detect proper
2846         initialization of scalars.
2847         * sem_prag.adb (Chain_PPC): Correct the extraction of the
2848         subprogram name.
2849         * sem_util.adb (Is_Object_Reference): Attribute 'Result now
2850         produces an object.
2851         * usage.adb (Usage): Add usage lines for validity switches 'l',
2852         'L', 'v' and 'V'.
2853         * validsw.adb (Reset_Validity_Check_Options): Include
2854         processing for flags Validity_Check_Non_Overlapping_Params and
2855         Validity_Check_Valid_Scalars_On_Params. Code reformatting.
2856         (Save_Validity_Check_Options): Include processing
2857         for flags Validity_Check_Non_Overlapping_Params
2858         and Validity_Check_Valid_Scalars_On_Params.
2859         (Set_Validity_Check_Options): Add processing for validity switches
2860         'a', 'l', 'L', 'n', 'v' and 'V'. Code reformatting.
2861         * validsw.ads: Add new flags Validity_Check_Non_Overlapping_Params
2862         and Validity_Check_Valid_Scalars_On_Params along with comments
2863         on usage.
2865 2012-10-01  Thomas Quinot  <quinot@adacore.com>
2867         * namet.ads, xsnamest.adb, prj-env.adb, sem_warn.adb,
2868         errout.ads: Minor reformatting.
2869         * prj-part.adb: Add comment.
2871 2012-10-01  Robert Dewar  <dewar@adacore.com>
2873         * sinfo.ads, exp_aggr.adb, sem_ch13.adb: Minor reformatting.
2875 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2877         * sem_aggr.adb (Resolve_Array_Aggregate): Handle properly
2878         component associations given by subtypes that have static
2879         predicates.  Improve error message for overlapping ranges in
2880         array aggregates.
2882 2012-10-01  Pascal Obry  <obry@adacore.com>
2884         * snames.ads-tmpl (Name_Link_Lib_Subdir): New constant.
2886 2012-10-01  Ed Schonberg  <schonberg@adacore.com>
2888         * sem_ch9.adb (Analyze_Requeue): The target of a requeue
2889         statement on a protected entry must be a variable. This is part
2890         of AI05-0225.
2892 2012-09-26  Ian Lance Taylor  <iant@google.com>
2894         * gcc-interface/Makefile.in (LIBBACKTRACE): New variable.
2895         (LIBS): Add $(LIBBACKTRACE).
2896         (LIBDEPS): Add $(LIBBACKTRACE).
2897         (TOOLS_LIBS): Add ../../../libbacktrace/.libs/libbacktrace.a.
2899 2012-09-10  Diego Novillo  <dnovillo@google.com>
2901         * gcc-interface/decl.c (build_subst_list): Adjust call to VEC_safe_push.
2902         (build_variant_list): Likewise.
2903         * gcc-interface/utils.c (convert): Adjust calls to VEC_quick_push.
2905 2012-09-07  Eric Botcazou  <ebotcazou@adacore.com>
2907         * gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to using
2908         size_type_node instead of sizetype.
2910 2012-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2912         * layout.adb (Set_Elem_Alignment): Cap the alignment of access types
2913         to that of a regular access type for non-strict-alignment platforms.
2914         * gcc-interface/utils.c (finish_fat_pointer_type): Do not set the
2915         alignment for non-strict-alignment platforms.
2917 2012-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2919         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use proper
2920         dummy type for the temporary COMPONENT_REF built for a derived tagged
2921         type with discriminant.
2923 2012-08-14   Diego Novillo  <dnovillo@google.com>
2925         Merge from cxx-conversion branch.  Re-implement VEC in C++.
2927         * gcc-interface/trans.c (finalize_nrv_unc_r): Adjust VEC_index usage.
2928         * gcc-interface/utils.c (convert): Likewise.
2929         (remove_conversions): Likewise.
2930         * gcc-interface/utils2.c (compare_fat_pointers): Likewise.
2931         (build_unary_op): Likewise.
2932         (gnat_stabilize_reference): Likewise.
2934 2012-08-06  Jose Ruiz  <ruiz@adacore.com>
2936         * gcc-interface/Makefile.in: Add support for 32-bit VxWorks for SPARC
2937         in kernel mode.
2939 2012-08-06  Arnaud Charlet  <charlet@adacore.com>
2941         * prj-attr.adb (Register_New_Package): Add missing blank.
2943 2012-08-06  Ed Schonberg  <schonberg@adacore.com>
2945         * exp_aggr.adb (Is_Two_Dim_Packed_Array): New predicate,
2946         used when computing maximum size allowable to construct static
2947         aggregate.
2949 2012-08-06  Vincent Pucci  <pucci@adacore.com>
2951         * freeze.adb (Freeze_Entity): Inherit_Aspects_At_Freeze_Point
2952         calls added for derived types and subtypes.
2953         * sem_aux.adb, sem_aux.ads (Get_Rep_Item, Get_Rep_Pragma,
2954         Has_Rep_Pragma): New routines.
2955         * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): New routine.
2956         * sem_ch13.adb (Analyze_Aspect_Specifications): Error message
2957         for aspect Lock_Free fixed.
2958         (Inherits_Aspects_At_Freeze_Point): New routine.
2959         * sem_ch3.adb: Several flag settings removed since inheritance
2960         of aspects must be performed at freeze point.
2962 2012-08-06  Thomas Quinot  <quinot@adacore.com>
2964         * s-oscons-tmplt.c: Fix s-oscons.ads formatting on VxWorks.
2966 2012-08-06  Vincent Pucci  <pucci@adacore.com>
2968         * sem_dim.adb (Analyze_Dimension_Binary_Op): Issue an error message
2969         for unknown exponent at compile-time.
2971 2012-08-06  Gary Dismukes  <dismukes@adacore.com>
2973         * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Enhance
2974         comment to make it clear that the aggregate's evaluation might
2975         still involve run-time checks even though the aggregate is
2976         considered known at compile time.
2977         * sinfo.ads (Compile_Time_Known_Aggregate): Correct comment to
2978         refer to Exp_Aggr instead of Sem_Aggr.
2980 2012-08-06  Robert Dewar  <dewar@adacore.com>
2982         * xoscons.adb: Minor code reorganization (remove unused variable
2983         E at line 331).
2984         * g-sercom.ads, exp_attr.adb: Minor reformatting.
2985         * sinfo.adb, sinfo.ads: Minor cleanup, remove unused flag
2986         Static_Processing_OK.
2988 2012-08-06  Ed Schonberg  <schonberg@adacore.com>
2990         * sem_ch3.adb (Build_Derived_Concurrent_Type): Copy discriminant
2991         constraint when building a constrained subtype, to prevent
2992         undesirable tree sharing betweeb geberated subtype and derived
2993         type definition.
2995 2012-08-06  Thomas Quinot  <quinot@adacore.com>
2997         * g-sercom-mingw.adb, s-oscons-tmplt.c: Add missing constants
2998         on Windows.
3000 2012-08-06  Sergey Rybin  <rybin@adacore.com frybin>
3002         * tree_io.ads: Update ASIS_Version_Number because of the tree fix
3003         for discriminant constraints for concurrent types.
3005 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3007         * sem_ch4.adb: Minor reformatting.
3009 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3011         * s-oscons-tmplt.c, xoscons.adb: Per the Single UNIX Specification,
3012         types cc_t, speed_t, and tcflag_t defined in <termios.h> all are
3013         unsigned types. Add required special handling to have their correct
3014         unsigned values in s-oscons.ads.
3016 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3018         * par-ch13.adb: Minor reformatting.
3020 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3022         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb
3023         (Set): Add Local and Flow_Control settings.
3025 2012-08-06  Ed Schonberg  <schonberg@adacore.com>
3027         * exp_attr.adb: Suppress saving of 'Old if assertions are not
3028         enabled.
3030 2012-08-06  Yannick Moy  <moy@adacore.com>
3032         * sem_ch4.adb (Analyze_Selected_Component): Issue an error in
3033         Alfa mode for component not present.
3035 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3037         * exp_ch7.adb (Insert_Actions_In_Scope_Around): Do not
3038         use a renaming of Scope_Stack.Table (Scope_Stack.Last), as
3039         Process_Transient_Object may introduce new scopes and cause
3040         Scope_Stack.Table to be reallocated.
3042 2012-08-06  Robert Dewar  <dewar@adacore.com>
3044         * exp_util.adb, switch-c.adb, inline.ads, sem_ch10.adb, types.ads,
3045         checks.adb, sem_prag.adb, sem.adb, sem.ads, sem_res.adb, sem_attr.adb,
3046         gnat1drv.adb, exp_ch4.adb, exp_ch6.adb, opt.ads, osint.adb: Implement
3047         extended overflow checks (step 1).
3048         (Overflow_Check_Type, Suppress_Record, Suppress_All): New types.
3049         (Suppress_Array): Extended to include switches to control extended
3050         overflow checking (and renamed to Suppress_Record).
3051         Update all uses of Suppress_Array.
3053 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3055         * makeutl.ads: Minor documentation fix.
3057 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3059         * exp_ch7.adb: Minor reformatting.
3061 2012-08-06  Geert Bosch  <bosch@adacore.com>
3063         * a-ngelfu.adb: Change obsolete comment that this is a non-strict
3064         implementation.
3066 2012-08-06  Steve Baird  <baird@adacore.com>
3068         * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): If
3069         CodePeer_Mode = True then omit exception handlers for finalization calls
3071 2012-08-06  Robert Dewar  <dewar@adacore.com>
3073         * exp_aggr.adb: Minor reformatting.
3075 2012-08-06  Robert Dewar  <dewar@adacore.com>
3077         * sem_ch6.adb: Remove useless flag Body_Deleted.
3079 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3081         * sinfo.ads (End_Span): Change default from No_Uint to Uint_0,
3082         as this is what all usage occurrences of this attribute are
3083         expecting.
3084         * uintp.adb (UI_To_Int): Add assertion to guard against calling
3085         with No_Uint.
3087 2012-08-06  Vincent Pucci  <pucci@adacore.com>
3089         PR ada/54125
3090         * exp_attr.adb (Expand_N_Attribute_Reference): Expand new
3091         Atomic_Always_Lock_Free attribute.
3092         * sem_attr.adb (Analyze_Attribute): Analyze new
3093         Atomic_Always_Lock_Free attribute.
3094         (Eval_Attribute): Nothing to do with new Atomic_Always_Lock_Free
3095         attribute.
3096         * sem_ch9.adb (Allows_Lock_Free_Implementation):
3097         Support_Atomic_Primitives check replaces previous erroneous
3098         size check.
3099         * sem_util.adb, sem_util.ads (Support_Atomic_Primitives):
3100         New routine.
3101         * snames.ads-tmpl: New name Name_Atomic_Always_Lock_Free and
3102         new attribute Attribute_Atomic_Always_Lock_Free defined.
3103         * s-atopri.adb: Support_Atomic_Primitives checks replaced by
3104         Atomic_Always_Lock_Free queries.
3105         * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
3106         system-hpux.ads, system-linux-alpha.ads, system-linux-hppa.ads,
3107         system-linux-ppc.ads, system-linux-s390.ads,
3108         system-linux-s390x.ads, system-linux-sh4.ads,
3109         system-linux-sparc.ads, system-lynxos178-ppc.ads,
3110         system-lynxos-ppc.ads, system-mingw.ads,
3111         system-vxworks-arm.ads, system-solaris-sparc.ads,
3112         system-solaris-sparcv9.ads, system-vms_64.ads,
3113         system-vxworks-m68k.ads, system-vxworks-mips.ads,
3114         system-vxworks-ppc.ads, system-vxworks-sparcv9.ads: Flag
3115         Support_Atomic_Primitives removed.
3117 2012-08-06  Hristian Kirtchev  <kirtchev@adacore.com>
3119         * sem_mech.adb (Set_Mechanisms): OUT and IN OUT parameters are
3120         now unconditionally passed by reference. IN parameters subject
3121         to convention C_Pass_By_Copy are passed by copy, otherwise they
3122         are passed by reference.
3124 2012-08-06  Ed Schonberg  <schonberg@adacore.com>
3126         * sem_ch3.adb (Analyze_Object_Declaration): According to
3127         AI95-0303, protected objects with interrupt handlers can be
3128         declared in nested scopes. This is a binding interpretation,
3129         and thus applies to all versions of the compiler.
3131 2012-08-06  Robert Dewar  <dewar@adacore.com>
3133         * frontend.adb, exp_aggr.adb: Minor reformatting.
3135 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3137         * par-endh.adb: Minor reformatting.
3139 2012-08-06  Hristian Kirtchev  <kirtchev@adacore.com>
3141         * exp_ch7.adb (Process_Transient_Objects): Remove obsolete loop
3142         processing related to array initialization. The expansion of
3143         loops already contains a mechanism to detect controlled objects
3144         generated by expansion and introduce a block around the loop
3145         statements for finalization purposes.
3147 2012-08-06  Vincent Pucci  <pucci@adacore.com>
3149         * sem_ch13.adb: Current scope must be within
3150         or same as the scope of the entity while analysing aspect
3151         specifications at freeze point.
3153 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3155         * par_sco.adb: Add note about dubious SCO for TERMINATE
3156         alternative.
3157         * sem_ch8.adb, exp_ch11.adb: Minor reformatting.
3159 2012-08-06  Ed Schonberg  <schonberg@adacore.com>
3161         * exp_aggr.adb (Two_Dim_Packed_Array_Handled): New procedure to
3162         transform an aggregate for a packed two-dimensional array into
3163         a one-dimensional array of constant values, in order to avoid
3164         the generation of component-by-component assignments.
3166 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3168         * frontend.adb: Do not attempt to process deferred configuration
3169         pragmas if the main unit failed to load, to avoid cascaded
3170         inconsistencies that can lead to a compiler crash.
3172 2012-08-06  Vincent Pucci  <pucci@adacore.com>
3174         * s-atopri.adb: Minor reformatting.
3176 2012-08-06  Arnaud Charlet  <charlet@adacore.com>
3178         * gnat-style.texi: Clarify that all subprograms should be
3179         documented. Minor rewording.
3181 2012-08-06  Robert Dewar  <dewar@adacore.com>
3183         * aspects.ads: Define Aspect_Id_Exclude_No_Aspect.
3184         * par-ch13.adb, restrict.adb: Use Aspect_Id_Exclude_No_Aspect to
3185         simplify code.
3187 2012-08-06  Yannick Moy  <moy@adacore.com>
3189         * gnat-style.texi: Update style guide for declarations.
3191 2012-08-06  Yannick Moy  <moy@adacore.com>
3193         * sem_attr.adb (Analyze_Attribute): In the case for 'Old,
3194         skip a special expansion which is not needed in Alfa mode.
3196 2012-08-06  Yannick Moy  <moy@adacore.com>
3198         * sem_ch5.adb (Analyze_Iterator_Specification): Do not perform
3199         an expansion of the iterator in Alfa mode.
3201 2012-08-06  Robert Dewar  <dewar@adacore.com>
3203         * s-oscons-tmplt.c, sem_ch9.adb, osint.adb: Minor reformatting.
3205 2012-08-06  Hristian Kirtchev  <kirtchev@adacore.com>
3207         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Remove obsolete
3208         Alfa-specific guard. The code is a leftover from an early
3209         implementation of iterators which is no longer in use.
3211 2012-08-06  Vincent Celier  <celier@adacore.com>
3213         * par-ch13.adb (Get_Aspect_Specifications): Do not consider
3214         No_Aspect when checking for a mispelled aspect.
3216 2012-08-06  Robert Dewar  <dewar@adacore.com>
3218         * s-htable.adb: Minor reformatting.
3220 2012-08-06  Thomas Quinot  <quinot@adacore.com>
3222         * s-oscons-tmplt.c, g-socket.adb (System.OS_Constants.Target_OS):
3223         Suppress warnings so that we don't have to do it at each usage.
3225 2012-08-06  Vincent Pucci  <pucci@adacore.com>
3227         * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
3228         Use of Known_Static_Esize instead of  Known_Esize and
3229         Known_Static_RM_Size instead of Known_RM_Size in order to
3230         properly call UI_To_Int. Don't check the size of the component
3231         type in case of generic.
3232         * sem_ch9.adb (Allows_Lock_Free_Implementation):
3233         Use of Known_Static_Esize instead of Known_Esize and
3234         Known_Static_RM_Size instead of Known_RM_Size in order to properly
3235         call UI_To_Int. Don't check the size of the component type in
3236         case of generic.
3238 2012-08-06  Hristian Kirtchev  <kirtchev@adacore.com>
3240         * checks.adb (Discrete_Range_Cond): Do not try to optimize on
3241         the assumption that the type of an expression can always fit in
3242         the target type of a conversion.
3244 2012-07-30  Robert Dewar  <dewar@adacore.com>
3246         * bindusg.adb: Clarify file in -A lines.
3248 2012-07-30  Robert Dewar  <dewar@adacore.com>
3250         * freeze.adb: Minor reformatting.
3252 2012-07-30  Robert Dewar  <dewar@adacore.com>
3254         * gnatcmd.adb, makeutl.adb, makeutl.ads: Minor code reorganization.
3256 2012-07-30  Vincent Pucci  <pucci@adacore.com>
3258         * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Minor
3259         reformatting.
3260         * sem_ch9.adb (Allows_Lock_Free_Implementation): Minor reformatting.
3261         Capture the correct error message in case of a quantified expression.
3263 2012-07-30  Thomas Quinot  <quinot@adacore.com>
3265         * g-socket.adb (Get_Socket_Option, Set_Socket_Option): On Windows, the
3266         value is a milliseconds count in a DWORD, not a struct timeval.
3268 2012-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
3270         * sem_ch12.adb (Earlier): Add local variables T1 and T2. Minor code
3271         refactoring.
3273 2012-07-30  Thomas Quinot  <quinot@adacore.com>
3275         * gnatcmd.adb, make.adb, makeutl.adb, makeutl.ads
3276         (Test_If_Relative_Path): Rename to Ensure_Absolute_Path to better
3277         reflect what this subprogram does. Rename argument Including_L_Switch
3278         to For_Gnatbind, and also exempt -A from rewriting.
3279         * bindusg.adb: Document optional =file argument to gnatbind -A.
3281 2012-07-30  Ed Schonberg  <schonberg@adacore.com>
3283         * freeze.adb (Freeze_Entity): Do no apply restriction check on
3284         storage pools to access to subprogram types.
3286 2012-07-30  Robert Dewar  <dewar@adacore.com>
3288         * par_sco.adb, a-cihama.adb, a-coinve.adb, exp_ch7.adb, a-ciorse.adb,
3289         exp_ch9.adb, sem_dim.adb, par-ch13.adb, sem_ch9.adb, a-cidlli.adb,
3290         a-cimutr.adb, freeze.adb, a-ciormu.adb, sem_res.adb, sem_attr.adb,
3291         a-cihase.adb, exp_ch4.adb, sem_ch4.adb, a-ciorma.adb,
3292         s-tasinf-linux.ads, sem_ch13.adb, a-coinho.adb: Minor reformatting.
3293         Add comments.
3295 2012-07-30  Vincent Pucci  <pucci@adacore.com>
3297         * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict implicit
3298         dereferences of access values.
3300 2012-07-27  Iain Sandoe  <iain@codesourcery.com>
3302         * system-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True.
3304 2012-07-25  Eric Botcazou  <ebotcazou@adacore.com>
3306         * gcc-interface/utils2.c (gnat_stabilize_reference) <BIT_FIELD_REF>: Do
3307         not stabilize operand #1 and #2.
3309 2012-07-23  Tristan Gingold  <gingold@adacore.com>
3311         * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Use
3312         End_Label sloc when possible for sloc of the TRY_CATCH_EXPR node.
3314 2012-07-23  Olivier Hainque  <hainque@adacore.com>
3316         * gcc-interface/Makefile.in: Adjust processing of Linker_Options for
3317         VxWorks.
3318         * gcc-interface/Make-lang.in: Update dependencies.
3320 2012-07-23  Arnaud Charlet  <charlet@adacore.com>
3322         * s-tasinf-linux.ads: Fix typo.
3324 2012-07-23  Thomas Quinot  <quinot@adacore.com>
3326         * exp_ch7.adb, switch-m.adb, exp_ch3.adb, freeze.adb: Minor reformatting
3328 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3330         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): If original
3331         loop carries an identifier, preserve it when rewriting it as a
3332         standard loop to validate exit statements that may reference
3333         that name in the body of the loop.
3335 2012-07-23  Thomas Quinot  <quinot@adacore.com>
3337         * exp_ch9.adb: Minor code cleanup.
3339 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3341         * sem_ch4.adb (Analyze_Selected_Component): When checking for
3342         potential ambiguities with class-wide operations on synchronized
3343         types, attach the copied node properly to the tree, to prevent
3344         errors during expansion.
3346 2012-07-23  Yannick Moy  <moy@adacore.com>
3348         * sem_ch5.adb (Analyze_Loop_Statement): Make sure the loop body
3349         is analyzed in Alfa mode.
3351 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3353         * sem_res.adb: Adjust previous change.
3355 2012-07-23  Vincent Pucci  <pucci@adacore.com>
3357         * sem_ch9.adb (Allows_Lock_Free_Implementation): Flag
3358         Lock_Free_Given renames previous flag Complain. Description
3359         updated. Henceforth, catch every error messages issued by this
3360         routine when Lock_Free_Given is True.  Declaration restriction
3361         updated: No non-elementary parameter instead (even in parameter)
3362         New subprogram body restrictions implemented: No allocator,
3363         no address, import or export rep items, no delay statement,
3364         no goto statement, no quantified expression and no dereference
3365         of access value.
3367 2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>
3369         * checks.adb (Determine_Range): Add local variable Btyp. Handle
3370         the case where the base type of an enumeration subtype is
3371         private. Replace all occurrences of Base_Type with Btyp.
3372         * exp_attr.adb (Attribute_Valid): Handle the case where the
3373         base type of an enumeration subtype is private. Replace all
3374         occurrences of Base_Type with Btyp.
3375         * sem_util.adb (Get_Enum_Lit_From_Pos): Add local variable
3376         Btyp. Handle the case where the base type of an enumeration
3377         subtype is private. Replace all occurrences of Base_Type with
3378         Btyp.
3380 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3382         * par-ch6.adb (P_Mode): in Ada 2005, a mode indicator can apply
3383         to a formal object of an anonymous access type.
3385 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3387         * sem_ch4.adb (Try_Container_Indexing): A user-defined indexing
3388         aspect can have more than one index, e.g. to describe indexing
3389         of a multidimensional object.
3391 2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>
3393         * exp_ch4.adb (Apply_Accessibility_Check): Reimplemented. The check is
3394         now more complex and contains optional finalization part and mandatory
3395         deallocation part.
3397 2012-07-23  Gary Dismukes  <dismukes@adacore.com>
3399         * a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, a-ciormu.adb,
3400         a-ciorse.adb, a-coinho.adb, a-coinve.adb, a-cidlli.adb: Unsuppress
3401         Accessibility_Check for Element_Type allocators.
3403 2012-07-23  Vasiliy Fofanov  <fofanov@adacore.com>
3405         * projects.texi: Fix typo.
3407 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3409         * sem_res.adb (Resolve_Explicit_Derenference): If prefix is
3410         overloaded, remove those interpretations whose designated type
3411         does not match the context, to avoid spurious ambiguities that
3412         may be caused by the Ada 2012 conversion rule for anonymous
3413         access types.
3415 2012-07-23  Vincent Celier  <celier@adacore.com>
3417         * g-spitbo.adb (Substr (String)): Return full string and do not
3418         raise exception when Start is 1 and Len is exactly the length
3419         of the string parameter.
3420         * g-spitbo.ads: Fix spelling error in the name of exception
3421         Index_Error.
3423 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3425         * par.adb: new subprogram Get_Aspect_Specifications.
3426         * par-ch6.adb (P_Subprogram): handle subprogram bodies with aspect
3427         specifications.
3428         * par-ch13.adb (Get_Aspect_Specifications): extracted from
3429         P_Aspect_Specifications. Collect aspect specifications in some
3430         legal context, but do not attach them to any declaration. Used
3431         when parsing subprogram declarations or bodies that include
3432         aspect specifications.
3433         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If aspects are
3434         present, analyze them, or reject them if the subprogram as a
3435         previous spec.
3437 2012-07-23  Vasiliy Fofanov  <fofanov@adacore.com>
3439         * gnat_ugn.texi: Omit section on other platforms/runtimes support
3440         in gnattest for vms version.
3442 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3444         * sem_ch13.adb (Analyze_Aspect_Specifications):
3445         Handle properly aspects that can be specified on a subprogram
3446         body: CPU, Priority, and Interrupt_Priority.
3448 2012-07-23  Claire Dross  <dross@adacore.com>
3450         * a-cfdlli.ads: Switch definition of Constant_Reference_Type
3451         and Empty_List.
3453 2012-07-23  Thomas Quinot  <quinot@adacore.com>
3455         * par_sco.adb (Process_Decisions.Output_Header): For the guard
3456         on an alternative in a SELECT statement, use the First_Sloc
3457         of the guard expression (not its topmost sloc) as the decision
3458         location, because this is what is referenced by dominance markers.
3460 2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>
3462         * exp_ch7.adb (Requires_Hooking): Examine the original expression
3463         of an object declaration node because a function call that
3464         returns on the secondary stack may have been rewritten into
3465         something else.
3467 2012-07-23  Vincent Pucci  <pucci@adacore.com>
3469         * sem_dim.adb (Analyze_Dimension_Has_Etype): For identifier, propagate
3470         dimension when entity is a non-dimensionless constant.
3471         (Analyze_Dimension_Object_Declaration): Propagate
3472         dimension from the expression to the entity when type is a
3473         dimensioned type and object is a constant.
3475 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3477         * sem_attr.adb (Analyze_Attribute, case 'Old): if the prefix
3478         is not an entity name, expand at once so that code generated by
3479         the expansion of the prefix is not generated before the constant
3480         that captures the old value is properly inserted and analyzed.
3482 2012-07-23  Thomas Quinot  <quinot@adacore.com>
3484         * exp_ch9.adb (Ensure_Statement_Present): Mark generated NULL
3485         statement as Comes_From_Source so that GIGI does not eliminate it.
3487 2012-07-23  Hristian Kirtchev  <kirtchev@adacore.com>
3489         * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now
3490         a local variable. Retrieve the related instance when processing
3491         a subprogram instantiation. Such instances appear as wrapper
3492         packages.
3494 2012-07-23  Vincent Pucci  <pucci@adacore.com>
3496         * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
3497         system-hpux.ads, system-linux-alpha.ads,
3498         system-linux-hppa.ads, system-linux-ppc.ads,
3499         system-linux-s390.ads, system-linux-s390x.ads,
3500         system-linux-sh4.ads, system-linux-sparc.ads,
3501         system-lynxos-ppc.ads, system-mingw.ads,
3502         system-solaris-sparc.ads, system-solaris-sparcv9.ads,
3503         system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads,
3504         system-vxworks-mips.ads, system-vxworks-ppc.ads,
3505         system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False.
3506         * system-darwin-x86.ads, system-darwin-x86_64.ads,
3507         system-freebsd-x86.ads, system-freebsd-x86_64.ads,
3508         system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads,
3509         system-linux-x86_64.ads, system-lynxos-x86.ads,
3510         system-mingw-x86_64.ads, system-solaris-x86.ads,
3511         system-solaris-x86_64.ads, system-vms-ia64.ads,
3512         system-vxworks-x86.ads: Support_Atomic_Primitives set to True.
3513         * s-atopri.adb (Lock_Free_Read_X): New body.
3514         (Lock_Free_Try_Write_X): Support_Atomic_Primitives check added.
3515         (Lock_Free_Try_Write_64): New body.
3516         * s-atopri.ads: New type uint.
3517         (Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic
3518         import.
3519         (Lock_Free_Read_X): Body moved to s-atopri.adb.
3520         (Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X
3521         routines.
3522         * targparm.adb: New enumeration literal SAP
3523         (Support_Atomic_Primitives) for type Targparm_Tags. New constant
3524         SAP_Str. New component SAP_Str'Access for array Targparm_Str.
3525         (Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target
3526         flag.
3527         * targparm.ads: New back-end code generation flag
3528         Support_Atomic_Primitives_On_Target
3530 2012-07-23  Vincent Pucci  <pucci@adacore.com>
3532         * gnat_ugn.texi: Dimensionality checking documentation updated.
3534 2012-07-23  Ed Schonberg  <schonberg@adacore.com>
3536         * sem_prag.adb (Make_Inline): If the pragma applies to a
3537         subprogram renaming, set inline flags on both the renamed entity
3538         and on the renaming, so that some ASIS queries can be handled
3539         consistently in the absence of expansion.
3541 2012-07-23  Fedor Rybin  <frybin@adacore.com>
3543         * gnat_ugn.texi: Removing obsolete limitation of gnattest
3544         to support only ada05.  Updating gnattest support for other
3545         platforms/run-times section to reflect the usage of taget
3546         prefix in gnattest calls.  Fixing missed obsolete --stub-default
3547         option name.
3549 2012-07-23  Robert Dewar  <dewar@adacore.com>
3551         * uintp.adb: Minor reformatting.
3553 2012-07-23  Olivier Hainque  <hainque@adacore.com>
3555         * system-vxworks-ppc.ads: Replace the default
3556         Linker_Options requesting crtbe by a commented out request for
3557         -nostartfiles.
3559 2012-07-23  Vincent Celier  <celier@adacore.com>
3561         * prj-nmsc.adb (Check_Naming): Do not get the exceptions names
3562         in a virtual project.
3564 2012-07-23  Robert Dewar  <dewar@adacore.com>
3566         * layout.adb, sem_prag.adb, sem.ads, freeze.adb,
3567         switch-m.adb, exp_disp.adb, system-vxworks-ppc.ads, exp_ch6.adb: Minor
3568         reformatting.
3570 2012-07-23  Tristan Gingold  <gingold@adacore.com>
3572         * gcc-interface/trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set
3573         location on TRY_CATCH_EXPR.
3575 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3577         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Try to ensure
3578         that an object of CW type initialized to a value is sufficiently
3579         aligned for this value.
3581 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3583         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Do not
3584         look up the REP part of the base type in advance.  Deal with that of
3585         the variant types.
3586         (get_rep_part): Be prepared for record types with fields.
3588 2012-07-18  Eric Botcazou  <ebotcazou@adacore.com>
3590         * gcc-interface/trans.c (stmt_group_may_fallthru): New function.
3591         (gnat_to_gnu) <N_Block_Statement>: Use it to find out whether the
3592         block needs to be translated.
3594 2012-07-17  Tristan Gingold  <gingold@adacore.com>
3596         * gnat_rm.texi: Adjust previous change.
3598 2012-07-17  Ed Schonberg  <schonberg@adacore.com>
3600         * sem_prag.adb (Process_Import_Or_Interface): If the pragma
3601         comes from an aspect, it applies to the corresponding entity
3602         without further check.
3604 2012-07-17  Olivier Hainque  <hainque@adacore.com>
3606         * initialize.c (__gnat_initialize for VxWorks): Remove section with
3607         call to __gnat_vxw_setup_for_eh.
3608         * system-vxworks-ppc.ads: Add -auto-register to -crtbe, relying
3609         on the VxWorks constructor mechanism for network loaded modules
3610         by default.
3612 2012-07-17  Tristan Gingold  <gingold@adacore.com>
3614         * adaint.c: Minor reformatting.
3616 2012-07-17  Pascal Obry  <obry@adacore.com>
3618         * s-regexp.adb (Adjust): Fix access violation in Adjust.
3620 2012-07-17  Ed Schonberg  <schonberg@adacore.com>
3622         * freeze.adb (Freeze_Entity): Warn if an imported subprogram
3623         has pre/post conditions, because these will not be enforced.
3625 2012-07-17  Eric Botcazou  <ebotcazou@adacore.com>
3627         * exp_ch7.adb (Process_Transient_Objects): Put all the
3628         finalization blocks and the final raise statement into a wrapper
3629         block.
3631 2012-07-17  Vincent Pucci  <pucci@adacore.com>
3633         * s-atopri.adb (Lock_Free_Try_Write_X): Atomic_Compare_Exchange_X
3634         replaced by Sync_Compare_And_Swap_X.
3635         (Lock_Free_Try_Write_64): Removed.
3636         * s-atopri.ads (Sync_Compare_And_Swap_X): Replaces previous
3637         routine Atomic_Compare_Exchange_X.
3638         (Lock_Free_Read_64): Renaming of Atomic_Load_64.
3639         (Lock_Free_Try_Write_64): Renaming of Sync_Compare_And_Swap_64.
3641 2012-07-17  Vincent Celier  <celier@adacore.com>
3643         * switch-m.adb (Normalize_Compiler_Switches): Recognize new
3644         switches -gnatn1 and -gnatn2.
3646 2012-07-17  Vincent Pucci  <pucci@adacore.com>
3648         * gnat_ugn.texi: GNAT dimensionality checking
3649         documentation updated with System.Dim.Mks modifications.
3651 2012-07-17  Ed Schonberg  <schonberg@adacore.com>
3653         * exp_ch3.adb: sloc of array init_proc is sloc of type declaration.
3655 2012-07-17  Tristan Gingold  <gingold@adacore.com>
3657         * raise-gcc.c (get_call_site_action_for): Remove useless init
3658         expression for p.
3659         (get_action_description_for): Do not overwrite action->kind.
3661 2012-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
3663         * exp_attr.adb (Expand_N_Attribute_Reference): Add local variables Attr
3664         and Conversion_Added.  Add local constant Typ.
3665         Retrieve the original attribute after the arithmetic check
3666         machinery has modified the node. Add a conversion to the target
3667         type when the prefix of attribute Max_Size_In_Storage_Elements
3668         is a controlled type.
3670 2012-07-17  Gary Dismukes  <dismukes@adacore.com>
3672         * exp_ch6.adb (Expand_Inlined_Call): For each actual parameter
3673         of mode 'out' or 'in out' that denotes an entity, reset
3674         Last_Assignment on the entity so that any assignments to the
3675         corresponding formal in the inlining will not trigger spurious
3676         warnings about overwriting assignments.
3678 2012-07-17  Robert Dewar  <dewar@adacore.com>
3680         * s-assert.ads: Fix comments to make it clear that this is used
3681         for all assertions, not just pragma Assert.
3683 2012-07-17  Jerome Guitton  <guitton@adacore.com>
3685         * par_sco.ads: Minor typo fix.
3687 2012-07-17  Gary Dismukes  <dismukes@adacore.com>
3689         * layout.adb (Layout_Type): In the case where the target is
3690         AAMP, use 32 bits (a single pointer) rather than 64 bits for an
3691         anonymous access-to-subprogram type if the type is library-level
3692         and Is_Local_Anonymous_Access is True.
3694 2012-07-17  Jose Ruiz  <ruiz@adacore.com>
3696         * s-tassta.adb, s-tarest.adb (Create_Task, Create_Restricted_Task,
3697         Initialize): Add comments explaining that the CPU affinity value that
3698         is passed to the run-time library can be either Unspecified_CPU, to
3699         indicate that the task inherits the affinity of its activating task,
3700         or a value in the range of CPU_Range but no greater than Number_Of_CPUs.
3702 2012-07-17  Javier Miranda  <miranda@adacore.com>
3704         * exp_disp.adb (Make_DT): Remove decoration of Ada.Tags entities.
3705         (Make_Tags): Add decoration of Ada.Tags entities.
3707 2012-07-17  Ed Schonberg  <schonberg@adacore.com>
3709         * sem_ch6.adb (Check_Statement_Sequence): When locating the
3710         last significant statement in a sequence, ignore iserted nodes
3711         that typically come from expansion of controlled operations.
3713 2012-07-17  Tristan Gingold  <gingold@adacore.com>
3715         * gnat_rm.texi: Document foreign exceptions.
3717 2012-07-17  Robert Dewar  <dewar@adacore.com>
3719         * sem_prag.adb, treepr.ads: Minor reformatting.
3721 2012-07-17  Robert Dewar  <dewar@adacore.com>
3723         * exp_ch9.adb: Minor code reorganization.
3724         * exp_ch3.adb: Minor code improvement.
3726 2012-07-17  Tristan Gingold  <gingold@adacore.com>
3728         * seh_init.c (__gnat_SEH_error_handler): Not compiled anymore
3729         on Windows 64 (+ SEH), as it is unused.
3731 2012-07-17  Javier Miranda  <miranda@adacore.com>
3733         * sem_prag.adb (CPP_Class): Transform obsolescent pragma CPP_Class into
3734         CPP convention automatically.
3736 2012-07-16  Tristan Gingold  <gingold@adacore.com>
3738         * gcc-interface/decl.c (intrin_return_compatible_p): Map Address to
3739         void *.
3741 2012-07-16  Thomas Quinot  <quinot@adacore.com>
3743         * exp_ch9.adb (Ensure_Statement_Present): New subprogram.
3744         (Expand_N_Asynchronous_Select,
3745         Expand_N_Selective_Accept.Process_Accept_Alternative,
3746         Expand_N_Selective_Accept.Process_Delay_Alternative,
3747         Expand_N_Timed_Entry_Call): For an alternative with no trailing
3748         statements, introduce a null statement to carry the sloc of
3749         the initial special statement (accept, delay, or entry call)
3750         in the alternative, for coverage analysis purposes.
3752 2012-07-16  Thomas Quinot  <quinot@adacore.com>
3754         * sem_eval.adb (In_Subrange_Of): Fix typo in test for scalar
3755         arguments.
3757 2012-07-16  Robert Dewar  <dewar@adacore.com>
3759         * a-exexpr.adb, freeze.adb, a-exexpr-gcc.adb, a-except-2005.adb,
3760         sem_eval.adb, s-fileio.adb: Minor reformatting.
3762 2012-07-16  Javier Miranda  <miranda@adacore.com>
3764         * sem_prag.adb (Analyze_Pragma): Remove support for obsolescent
3765         pragma CPP_Class.
3766         * sem_ch13.adb (Analyze_Freeze_Entity): Add missing error on Ada
3767         derivations of CPP types.  Found updating the tests affected by
3768         the removal of pragma CPP_Class.
3770 2012-07-16  Thomas Quinot  <quinot@adacore.com>
3772         * back_end.adb: Minor reformatting.
3774 2012-07-16  Thomas Quinot  <quinot@adacore.com>
3776         * exp_ch9.adb (Expand_N_Selective_Accept.Process_Accept_Alternative):
3777         Remove junk test that was always true. For the case of no statements
3778         following the ACCEPT, jump directly to End_Lab instead of
3779         introducing an intermediate jump.
3780         (Expand_N_Selective_Accept.Process_Delay_Alternative): Fix
3781         predicate testing for presence of statements following the DELAY.
3782         that was always true. For the case of no statements following
3783         the ACCEPT, jump directly to End_Lab instead of introducing an
3784         intermediate jump.
3785         (Expand_N_Selective_Accept): Fix incorrect insertion point for
3786         end label.
3788 2012-07-16  Thomas Quinot  <quinot@adacore.com>
3790         * gnat_rm.texi: Minor documentation improvements.
3792 2012-07-16  Yannick Moy  <moy@adacore.com>
3794         * sem_ch13.adb (Analyze_Aspect_Specifications): Allow Pre
3795         and Pre'Class aspects on the same declaration.
3796         * sem_prag.adb (Chain_PPC): Allow Pre and Pre'Class aspects on the
3797         same hierarchy of primitive operations.
3799 2012-07-16  Thomas Quinot  <quinot@adacore.com>
3801         * freeze.adb (Check_Component_Storage_Order): Do not reject a
3802         nested composite with different scalar storage order if it is
3803         byte aligned.
3805 2012-07-16  Thomas Quinot  <quinot@adacore.com>
3807         * gnat_rm.texi: Update documentation for Scalar_Storage_Order.
3809 2012-07-16  Tristan Gingold  <gingold@adacore.com>
3811         * a-exexpr.adb (Propagate_Exception): Adjust call to
3812         Exception_Traces procedures.
3813         * a-exexpr-gcc.adb (Setup_Current_Excep): Now a
3814         function that returns an access to the Ada occurrence.
3815         (Propagate_GCC_Exception): Adjust calls.
3816         * raise.h (struct Exception_Occurrence): Declare.
3817         * a-exextr.adb: Remove useless pragma.  (Notify_Handled_Exception,
3818         Notify_Unhandled_Exception) (Unhandled_Exception_Terminate):
3819         Add Excep parameter.
3820         * a-except.adb (Notify_Handled_Exception,
3821         Notify_Unhandled_Exception) (Unhandled_Exception_Terminate):
3822         Add Excep parameter.
3823         (Process_Raise_Exception): Adjust calls.
3824         * a-except-2005.adb (Notify_Handled_Exception,
3825         Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): Add
3826         Excep parameter.
3827         (Raise_Exception): Calls Raise_Exception_Always.
3828         * raise-gcc.c (__gnat_setup_current_excep,
3829         __gnat_notify_handled_exception)
3830         (__gnat_notify_unhandled_exception): Adjust declarations.
3831         (PERSONALITY_FUNCTION): Adjust calls.
3832         (__gnat_personality_seh0): Remove warning.
3834 2012-07-16  Javier Miranda  <miranda@adacore.com>
3836         * sem_eval.adb (Test_Expression_Is_Foldable): Adding documentation.
3837         (Eval_Relational_Op): Adding documentation.
3839 2012-07-16  Robert Dewar  <dewar@adacore.com>
3841         * freeze.adb, g-debpoo.adb, exp_ch3.adb: Minor reformatting.
3843 2012-07-16  Thomas Quinot  <quinot@adacore.com>
3845         * s-oscons-tmplt.c: Add definitions of E2BIG and EILSEQ.
3847 2012-07-16  Tristan Gingold  <gingold@adacore.com>
3849         * a-exexpr.adb (Propagate_Continue): New function replacing
3850         Raise_Current_Excep.
3851         (Allocate_Occurrence): New function.
3852         (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
3853         * a-exexpr-gcc.adb (GNAT_GCC_Exception): Occurrence component
3854         is now aliased.
3855         (To_GCC_Exception): Convert from Address.
3856         (Allocate_Occurrence): Allocate an Unwind exception occurrence.
3857         (Setup_Current_Excep): Fill the machine occurrence in case of
3858         foreign exception.
3859         (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
3860         * a-except.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
3861         Excep parameter.
3862         (Raise_Exception, Raise_Exception_Always,
3863         Raise_Exception_No_Defer): Adjust calls to the above procedures.
3864         (Raise_From_Signal_Handler, Raise_With_Location_And_Msg)
3865         (Rcheck_PE_Finalize_Raised_Exception): Likewise.
3866         * a-except-2005.adb (Set_Exception_C_Msg, Set_Exception_Msg):
3867         add Excep parameter.
3868         (Propagate_Exception): Likewise.
3869         (Allocate_Occurrence): New function.
3870         (Raise_Current_Excep): Removed.
3871         (Complete_Occurrence): New function to save the call chain.
3872         (Complete_And_Propagate_Occurrence): New procedure.
3873         (Create_Occurrence_From_Signal_Handler): New function to build an
3874         occurrence without propagating it.
3875         (Create_Machine_Occurrence_From_Signal_Handler): Likewise, but
3876         return the machine occurrence.
3877         (Raise_From_Signal_Handler): Use Create_Occurrence_From_Signal_Handler.
3878         (Raise_Exception, Raise_Exception_Always, Raise_Exception_No_Defer):
3879         Adjust calls to the above procedures. Allocate the occurrence at
3880         the beginning.
3881         (Raise_With_Location_And_Msg, Raise_With_Msg)
3882         (Rcheck_PE_Finalize_Raised_Exceptionm Reraise): Likewise.
3883         (Reraise_Occurrence): Use Reraise_Occurrence_Always.
3884         (Reraise_Occurrence_Always): Use Reraise_Occurrence_No_Defer.
3885         (Reraise_Occurrence_No_Defer): Preserve machine occurrence.
3886         (Save_Occurrence): Do not save machine occurrence.
3887         * a-except-2005.ads (Exception_Occurrence): Add Machine_Occurrence
3888         component.
3889         (Null_Occurrence): Consider it.
3890         * a-exexda.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
3891         Excep parameter.
3893 2012-07-16  Tristan Gingold  <gingold@adacore.com>
3895         * seh_init.c (__gnat_map_SEH): New function extracted from
3896         __gnat_SEH_error_handler.
3897         * raise-gcc.c: __gnat_personality_seh0: Directly transforms
3898         Windows system exception into GCC one when possible, in order
3899         to save stack room (particularly useful when Storage_Error will
3900         be propagated).
3902 2012-07-16  Robert Dewar  <dewar@adacore.com>
3904         * a-direct.adb, g-dirope.adb: Minor reformatting.
3906 2012-07-16  Tristan Gingold  <gingold@adacore.com>
3908         * a-except.ads, a-except-2005.ads: Remove outdated comment.
3910 2012-07-16  Robert Dewar  <dewar@adacore.com>
3912         * sem_ch6.adb (Subprogram_Name_Greater): Fix algorithm to
3913         conform to documentation.
3915 2012-07-16  Ed Schonberg  <schonberg@adacore.com>
3917         * gnat1drv.adb (Check_Library_Items): Removed, no longer used.
3919 2012-07-16  Ed Schonberg  <schonberg@adacore.com>
3921         * sem_ch3.adb (Array_Type_Declaration): if component type has
3922         invariants, the array type itself requires an invariant procedure.
3923         * exp_ch3.ads, exp_ch3.adb (Build_Array_Invariant_Proc): new
3924         procedure, to build a checking procedure that applies the
3925         invariant check on some type T to each component of an array
3926         of T's.  Code is similar to the construction of the init_proc
3927         for an array, and handles multidimensional arrays by recursing
3928         over successive dimensions.
3930 2012-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
3932         * g-debpoo.adb: Revert previous change.
3934 2012-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
3936         * freeze.adb (Freeze_Entity): Insert the itype reference to a
3937         library-level class-wide subtype after the freeze node of the
3938         equivalent record type.
3940 2012-07-16  Pascal Obry  <obry@adacore.com>
3942         * s-crtl.ads (mkdir): New routine, support encoding.
3943         * adaint.h (__gnat_mkdir): Update spec to pass encoding.
3944         * mkdir.c (__gnat_mkdir): Add encoding parameter.
3945         * a-direct.adb (Create_Directory): Use CRTL.mkdir, parse encoding
3946         in form parameter.
3947         * g-dirope.adb (Make_Dir): Update to pass encoding parameter.
3949 2012-07-16  Pascal Obry  <obry@adacore.com>
3951         * adaint.c: Minor reformatting.
3953 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
3955         * gcc-interface/utils.c: Include timevar.h.
3956         * Make-lang.in: Fix dependencies.
3958 2012-07-16  Vasiliy Fofanov  <fofanov@adacore.com>
3960         * ug_words, vms_data.ads: Document VMS qualifiers for -gnatn1/2
3961         switches.
3963 2012-07-16  Bob Duff  <duff@adacore.com>
3965         * sinfo.ads: Minor comment fix.
3967 2012-07-16  Bob Duff  <duff@adacore.com>
3969         * sem_elab.adb (Within_Elaborate_All): Walk the with clauses to
3970         find pragmas Elaborate_All that may be found in the transitive
3971         closure of the dependences.
3973 2012-07-16  Robert Dewar  <dewar@adacore.com>
3975         * exp_pakd.adb, freeze.adb, sem_util.adb, vms_data.ads: Minor
3976         reformatting.
3978 2012-07-12  Vasiliy Fofanov  <fofanov@adacore.com>
3980         * vms_data.ads: Add VMS qualifiers for -gnatn1/2 switches.
3982 2012-07-12  Thomas Quinot  <quinot@adacore.com>
3984         * exp_ch5.adb, exp_pakd.adb, rtsfind.ads, freeze.adb, sem_util.adb,
3985         sem_util.ads, exp_aggr.adb
3986         (Exp_Aggr.Packed_Array_Aggregate_Handled): Simplify processing
3987         for reverse storage order aggregate.
3988         (Exp_Pakd.Byte_Swap): New utility routine used by...
3989         (Exp_Pakd.Expand_Bit_Packed_Element_Set,
3990         Expand_Packed_Element_Reference): For the case of a free-standing
3991         packed array with reverse storage order, perform byte swapping.
3992         (Rtsfind): Make new entities RE_Bswap_{16,32,64} available.
3993         (Freeze.Check_Component_Storage_Order): New utility routine
3994         to enforce legality rules for nested composite types whose
3995         enclosing composite has an explicitly defined Scalar_Storage_Order
3996         attribute.
3997         (Sem_Util.In_Reverse_Storage_Order_Object): Renamed from
3998         Sem_Util.In_Reverse_Storage_Order_Record, as SSO now applies to
3999         array types as well.
4000         (Exp_Ch5.Expand_Assign_Array): Remove now unnecessary kludge
4001         for change of scalar storage order in assignments. The Lhs and
4002         Rhs now always have the same scalar storage order.
4004 2012-07-12  Hristian Kirtchev  <kirtchev@adacore.com>
4006         * g-debpoo.adb (Allocate): Add local constant
4007         No_Element. Initialize the allocated memory chunk to No_Element.
4009 2012-07-12  Ed Schonberg  <schonberg@adacore.com>
4011         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly
4012         the case of an instance of a child unit where a formal derived
4013         type DT is an extension of a type T declared in a parent unit,
4014         and the actual in the instance of the child is the type T declared
4015         in the parent instance, and that actual is not a derived type.
4017 2012-07-12  Eric Botcazou  <ebotcazou@adacore.com>
4018             Tristan Gingold  <gingold@adacore.com>
4020         * system-hpux-ia64.ads: Enable ZCX by default.
4021         * gcc-interface/Makefile.in: Use alternate stack on ia64-hpux.
4022         Change soext to .so.
4024 2012-07-12  Robert Dewar  <dewar@adacore.com>
4026         * s-atopri.adb, s-atopri.ads: Minor reformatting.
4028 2012-07-12  Robert Dewar  <dewar@adacore.com>
4030         * ali.adb: Add circuitry to read new named form of restrictions lines.
4031         * debug.adb: Add doc for new -gnatd.R switch (used positional
4032         notation for output of restrictions data in ali file).
4033         * lib-writ.adb: Implement new named format for restrictions lines.
4034         * lib-writ.ads: Add documentation for new named format for
4035         restrictions in ali files.
4036         * restrict.adb, restrict.ads, sem_prag.adb: Update comments.
4037         * rident.ads: Go back to withing System.Rident
4038         * s-rident.ads: Add extensive comment on dealing with consistency
4039         checking.
4041 2012-07-12  Thomas Quinot  <quinot@adacore.com>
4043         * par_sco.adb, scos.ads: Emit detailed SCOs for SELECT statements.
4045 2012-07-12  Robert Dewar  <dewar@adacore.com>
4047         * sem_disp.adb: Minor reformatting
4048         * s-bytswa.ads: Minor comment update.
4050 2012-07-12  Vincent Pucci  <pucci@adacore.com>
4052         * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
4053         Atomic_Load_N replaced by Lock_Free_Read_N. Atomic_Compare_Exchange_N
4054         replaced by Lock_Free_Try_Write_N.
4055         Renaming of several local variables. For
4056         procedure, Expected_Comp declaration moved to the declaration
4057         list of the procedure.
4058         * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
4059         RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
4060         RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
4061         RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64,
4062         RE_Atomic_Synchronize, RE_Relaxed removed.  RE_Lock_Free_Read_8,
4063         RE_Lock_Free_Read_16, RE_Lock_Free_Read_32, RE_Lock_Free_Read_64,
4064         RE_Lock_Free_Try_Write_8, RE_Lock_Free_Try_Write_16,
4065         RE_Lock_Free_Try_Write_32, RE_Lock_Free_Try_Write_64 added.
4066         * s-atopri.adb: New file.
4067         * s-atopri.ads (Atomic_Compare_Exchange_8): Renaming of
4068         parameters.  Import primitive __sync_val_compare_and_swap_1.
4069         (Atomic_Compare_Exchange_16): Renaming of parameters.
4070         Import primitive __sync_val_compare_and_swap_2.
4071         (Atomic_Compare_Exchange_32): Renaming of parameters.
4072         Import primitive __sync_val_compare_and_swap_4.
4073         (Atomic_Compare_Exchange_64): Renaming of parameters.  Import
4074         primitive __sync_val_compare_and_swap_8.
4075         (Atomic_Load_8): Ptr renames parameter X.
4076         (Atomic_Load_16): Ptr renames parameter X.
4077         (Atomic_Load_32): Ptr renames parameter X.
4078         (Atomic_Load_64): Ptr renames parameter X.
4079         (Lock_Free_Read_8): New routine.
4080         (Lock_Free_Read_16): New routine.
4081         (Lock_Free_Read_32): New routine.
4082         (Lock_Free_Read_64): New routine.
4083         (Lock_Free_Try_Write_8): New routine.
4084         (Lock_Free_Try_Write_16): New routine.
4085         (Lock_Free_Try_Write_32): New routine.
4086         (Lock_Free_Try_Write_64): New routine.
4088 2012-07-12  Robert Dewar  <dewar@adacore.com>
4090         * exp_attr.adb, exp_ch9.adb, sem_ch9.adb, exp_aggr.adb: Minor
4091         reformatting.
4093 2012-07-12  Vincent Pucci  <pucci@adacore.com>
4095         * sem_dim.adb (Analyze_Dimension_Function_Call): Reformatting of error
4096         msgs for elementary functions.
4098 2012-07-12  Vincent Pucci  <pucci@adacore.com>
4100         * sem_attr.adb (Eval_Attribute): Minor reformatting.
4102 2012-07-12  Pascal Obry  <obry@adacore.com>
4104         * prj-nmsc.adb (Check_Library_Attributes): Allow the same library
4105         project in different project tree (different aggregated projects).
4107 2012-07-12  Thomas Quinot  <quinot@adacore.com>
4109         * s-bytswa.adb, g-bytswa.adb, g-bytswa.ads, s-bytswa.ads: Further
4110         reorganization of byte swapping routines.
4112 2012-07-12  Ed Schonberg  <schonberg@adacore.com>
4114         * sem_disp.adb (Check_Dispatching_Context): Refine legality
4115         checks on tagg indeterminate calls to abstract operations,
4116         that appear in the context of other calls.
4118 2012-07-12  Thomas Quinot  <quinot@adacore.com>
4120         * s-bytswa.adb (Swapped2.Bswap16): Remove local function,
4121         no longer needed.
4123 2012-07-12  Javier Miranda  <miranda@adacore.com>
4125         * exp_attr.adb (Expand_N_Attribute_Reference): For
4126         attributes 'access, 'unchecked_access and 'unrestricted_access,
4127         iff the current instance reference is located in a protected
4128         subprogram or entry then rewrite the access attribute to be the
4129         name of the "_object" parameter.
4131 2012-07-12  Tristan Gingold  <gingold@adacore.com>
4133         * raise.h: Revert previous patch: structure is used in init.c
4134         by vms.
4136 2012-07-12  Vincent Celier  <celier@adacore.com>
4138         * make.adb (Binding_Phase): If --subdirs was used, but not
4139         -P, change the working directory to the specified subdirectory
4140         before invoking gnatbind.
4141         (Linking_Phase): If --subdirs was used, but not -P, change the working
4142         directory to the specified subdirectory before invoking gnatlink.
4144 2012-07-12  Vincent Pucci  <pucci@adacore.com>
4146         * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
4147         For a procedure, instead of replacing each Comp reference by a
4148         reference to Current_Comp, make a renaming Comp of Current_Comp
4149         that rewrites the original renaming generated by the compiler
4150         during the analysis. Move the declarations of the procedure
4151         inside the generated block.
4152         (Process_Stmts): Moved in the body
4153         of Build_Lock_Free_Unprotected_Subprogram_Body.
4154         (Process_Node):
4155         Moved in the body of Build_Lock_Free_Unprotected_Subprogram_Body.
4156         * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict any
4157         non-elementary out parameters in protected procedures.
4159 2012-07-12  Thomas Quinot  <quinot@adacore.com>
4161         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
4162         Scalar_Storage_Order): Attribute applies to base type only.
4164 2012-07-12  Ed Schonberg  <schonberg@adacore.com>
4166         * exp_aggr.adb (Convert_To_Positional): Increase acceptable size
4167         of static aggregate when Static_Elaboration_Desired is requested.
4168         Add a warning if the request cannot be satisfied either because
4169         some components or some array bounds are non-static.
4171 2012-07-12  Thomas Quinot  <quinot@adacore.com>
4173         * exp_pakd.adb: Minor reformatting.
4175 2012-07-12  Tristan Gingold  <gingold@adacore.com>
4177         * tracebak.c: Fix warnings.
4178         * raise-gcc.c (__gnat_adjust_context): New function
4179         (__gnat_personality_seh0): Call __gnat_adjust_context to adjust
4180         PC in machine frame for exceptions that occur in the current
4181         function.
4183 2012-07-12  Thomas Quinot  <quinot@adacore.com>
4185         * g-bytswa.adb, g-bytswa.ads, s-bytswa.adb, s-bytswa.ads, Makefile.rtl:
4186         Move GNAT.Byte_Swapping to System (with a renaming under GNAT)
4187         so that it is usable in expanded code.
4189 2012-07-12  Tristan Gingold  <gingold@adacore.com>
4191         * s-osinte-hpux.ads: Increase alternate stack size on hpux.
4193 2012-07-12  Javier Miranda  <miranda@adacore.com>
4195         * exp_ch3.adb (Make_Neq_Body): Fix typo in comment.
4197 2012-07-12  Eric Botcazou  <ebotcazou@adacore.com>
4199         * tb-gcc.c (trace_callback): On IA-64/HP-UX, use workaround only
4200         if USE_LIBUNWIND_EXCEPTIONS is defined.
4201         * init.c: Further tweaks for IA-64/HP-UX.
4203 2012-07-12  Tristan Gingold  <gingold@adacore.com>
4205         * raise-gcc.c: Do not include unwind-dw2-fde.h. Adjust comments.
4206         (db_region_for): Second argument is ip.  Do not recompute ip.
4207         (action_kind): Remove typedef, add unhandler enum const.
4208         (action_descriptor): Adjust type of kind field.
4209         (db_action_for): Second argument is ip, do not recompute it.
4210         (get_call_site_action_for): First argument is call_site, do not
4211         recompute it.  Remove useless return.
4212         (is_handled_by): Now return enum action_kind.
4213         Handle GNAT_ALL_OTHERS first.
4214         Return unhandler for GNAT_UNHANDLED_OTHERS.
4215         (get_action_description_for): First argument is now ip, do not
4216         recompute it.  Adjust code for call to is_handled_by.
4217         (__gnat_notify_unhandled_exception): Add prototype.
4218         (PERSONALITY_FUNCTION): Call get_ip_from_context.  Adjust calls.
4219         Handle unhandler case.
4220         (__gnat_cleanupunwind_handler): Add comments, add
4221         ATTRIBUTE_UNUSED on arguments.
4222         (__gnat_Unwind_RaiseException, __gnat_Unwind_ForcedUnwind): Define
4223         only once.
4224         * raise.h: Makes struct Exception_Data opaque.
4226 2012-07-12  Robert Dewar  <dewar@adacore.com>
4228         * make.adb, sem_ch9.adb, prj.adb, s-rident.ads, snames.ads-tmpl: Minor
4229         reformatting.
4231 2012-07-12  Javier Miranda  <miranda@adacore.com>
4233         * exp_ch3.adb (Is_User_Defined_Equality): New subprogram.
4234         (Make_Neq_Body): New subprogram.
4235         (Make_Predefined_Primitive_Specs): Adding local variable
4236         Has_Predef_Eq_ Renaming to ensure that we enable the machinery
4237         which handles renamings of predefined primitive operators.
4239 2012-07-09  Pascal Obry  <obry@adacore.com>
4241         * prj.adb (For_Every_Project_Imported_Context): Make sure we
4242         callback with the project having sources.
4243         Minor reformatting.
4245 2012-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4247         * make.adb: Fix typo.
4249 2012-07-09  Vincent Pucci  <pucci@adacore.com>
4251         * sem_ch9.adb (Check_Node): Allow attributes
4252         that denote static function for lock-free implementation.
4253         (Is_Static_Function): New routine.
4255 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4257         * tracebak.c: Adjust skip_frames on Win64.
4259 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4261         * init.c: Add __gnat_adjust_context_for_raise for ia64/hpux.
4262         * raise-gcc.c: __gnat_cleanupunwind_handler: Do not call
4263         _Unwind_GetGR on hpux when using libgcc unwinder.  Part of
4265 2012-07-09  Vincent Pucci  <pucci@adacore.com>
4267         * exp_attr.adb, sem_attr.adb: Minor reformatting.
4268         * par-ch13.adb, par-ch4.adb, par-util.adb: Reformatting
4269         considering that internal attribute names are not defined anymore
4270         in the main attribute names list.
4271         * snames.adb-tmpl (Get_Attribute_Id): Special processinf
4272         for names CPU, Dispatching_Domain and Interrupt_Priority.
4273         (Is_Internal_Attribute_Name): Minor reformatting.
4274         * snames.ads-tmpl: New list of internal attribute names. Internal
4275         attributes moved at the end of the attribute Id list.
4277 2012-07-09  Robert Dewar  <dewar@adacore.com>
4279         * freeze.adb: Minor code reorganization (use Ekind_In).
4280         * exp_attr.adb, sem_ch9.adb par-ch4.adb, s-taprop-mingw.adb,
4281         sem_attr.adb, exp_ch8.adb, snames.adb-tmpl, par-util.adb,
4282         sem_ch13.adb, snames.ads-tmpl: Minor reformatting.
4284 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4286         * raise-gcc.c: Adjust previous patch.
4288 2012-07-09  Vincent Celier  <celier@adacore.com>
4290         * make.adb (Compilation_Phase): Do not build libraries in
4291         Codepeer mode (do not call Library_Phase).
4293 2012-07-09  Ed Schonberg  <schonberg@adacore.com>
4295         * sem_ch13.adb: Extend previous change to elementary types.
4297 2012-07-09  Javier Miranda  <miranda@adacore.com>
4299         * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Reverse
4300         previous patch since unconditionally handling as renaming_as_body
4301         renamings of predefined dispatching equality and unequality operator
4302         cause visibility problems with private overridings of the equality
4303         operator (see ACATS C854001).
4305 2012-07-09  Vincent Pucci  <pucci@adacore.com>
4307         * exp_attr.adb (Signal_Bad_Attribute): Raise Program_Error in
4308         case of internal attribute names (already rejected by the parser).
4309         * par-ch13.adb (P_Representation_Clause): Complain if an internal
4310         attribute name that comes from source occurs.
4311         * par-ch4.adb (P_Name): Complain if an internal attribute name
4312         occurs in the context of an attribute reference.
4313         * par-util.adb (Signal_Bad_Attribute): Don't complain about
4314         mispelling attribute with internal attributes.
4315         * sem_attr.adb (Analyze_Attribute): Raise Program_Error in case
4316         of internal attribute names (already rejected by the parser).
4317         * snames.adb-tmpl (Is_Internal_Attribute_Name): New routine.
4318         * snames.ads-tmpl: Attributes CPU, Dispatching_Domain and
4319         Interrupt_Priority are marked as INT attributes since they
4320         don't denote real attribute and are only used internally in
4321         the compiler.
4322         (Is_Internal_Attribute_Name): New routine.
4324 2012-07-09  Thomas Quinot  <quinot@adacore.com>
4326         * einfo.adb (Set_Reverse_Storage_Order): Update assertion,
4327         flag is now valid for array types as well.
4329 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4331         * tracebak.c: Implement __gnat_backtrace for Win64 SEH.
4333 2012-07-09  Robert Dewar  <dewar@adacore.com>
4335         * einfo.ads: Minor reformatting.
4337 2012-07-09  Javier Miranda  <miranda@adacore.com>
4339         * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Handle as
4340         renaming_as_body renamings of predefined dispatching equality
4341         and unequality operators.
4343 2012-07-09  Robert Dewar  <dewar@adacore.com>
4345         * rident.ads: Do not instantiate r-ident.ads, this is now an
4346         independent unit.
4348 2012-07-09  Javier Miranda  <miranda@adacore.com>
4350         * exp_disp.adb (Write_DT): Avoid runtime crash of this debugging
4351         routine.
4352         * sem_disp.adb (Find_Dispatching_Time): Protect this routine
4353         against partially decorated entities.
4355 2012-07-09  Ed Schonberg  <schonberg@adacore.com>
4357         * sem_ch13.adb (Check_Size): Reject a size clause that specifies
4358         a value greater than Int'Last for a scalar type.
4360 2012-07-09  Vincent Pucci  <pucci@adacore.com>
4362         * sem_ch9.adb (Allows_Lock_Free_Implementation): type must support
4363         atomic operation moved to the protected body case. No non-elementary
4364         out parameter moved to the protected declaration case. Functions have
4365         only one lock-free restriction.
4366         (Analyze_Protected_Type_Declaration): Issue a warning when
4367         Priority given with Lock_Free.
4369 2012-07-09  Vincent Pucci  <pucci@adacore.com>
4371         * sem_dim.adb: Grammar of aspect Dimension fixed.
4373 2012-07-09  Vincent Pucci  <pucci@adacore.com>
4375         * freeze.adb (Freeze_Record_Type): Code reorg in order to avoid
4376         pushing and popping the scope stack whenever a delayed aspect occurs.
4378 2012-07-09  Gary Dismukes  <dismukes@adacore.com>
4380         * s-os_lib.ads: Remove pragma Elaborate_Body, as
4381         this is now unnecessary due to recently added pragma Preelaborate.
4383 2012-07-09  Jose Ruiz  <ruiz@adacore.com>
4385         * s-taprop-mingw.adb (Set_Priority): Remove the code that was
4386         previously in place to reorder the ready queue when a task drops
4387         its priority due to the loss of inherited priority.
4389 2012-07-09  Robert Dewar  <dewar@adacore.com>
4391         * layout.adb, i-cstrea.ads, a-ststio.ads, prj-util.ads, sem_cat.adb,
4392         s-commun.ads, s-ficobl.ads, s-os_lib.ads, s-fileio.ads: Minor
4393         reformatting.
4395 2012-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4397         * raise-gcc.c: Update comments. Fix typo.
4399 2012-07-09  Thomas Quinot  <quinot@adacore.com>
4401         * einfo.adb, einfo.ads, sem_attr.adb, sem_ch13.adb: Attribute
4402         Scalar_Storage_Order can be defined or queried for array types as well
4403         as record types.
4405 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4407         * a-exexpr-gcc.adb (CleanupUnwind_Handler): Now imported from
4408         raise-gcc.c
4409         * raise-gcc.c (__gnat_cleanupunwind_handler): Defined.
4410         Strictly follow the ABI convention on ia64.
4412 2012-07-09  Gary Dismukes  <dismukes@adacore.com>
4414         * a-ststio.ads: Add pragma Preelaborate, per AI05-0283.
4415         * i-cstrea.ads (max_path_len): Change from variable to deferred
4416         constant to allow it to be used as a bound in string component
4417         in type System.File_IO.Temp_File_Record.
4418         * s-os_lib.ads, s-commun.ads, s-ficobl.ads, s-fileio.ads: Add pragma
4419         Preelaborate.
4420         * s-fileio.adb (Get_Case_Sensitive): Move function inside
4421         procedure Open.
4422         (File_Names_Case_Sensitive): Move variable inside
4423         procedure Open, to avoid violation of Preelaborate restriction
4424         (due to call to Get_Case_Sensitive).
4426 2012-07-09  Ed Schonberg  <schonberg@adacore.com>
4428         * layout.adb (Set_Elem_Alignment): Protect against meaningless
4429         size clause, to prevent overflow in internal computation of
4430         alignment.
4432 2012-07-09  Robert Dewar  <dewar@adacore.com>
4434         * freeze.adb, prj-util.adb, prj-util.ads, sem_ch13.adb: Minor
4435         reformatting.
4437 2012-07-09  Gary Dismukes  <dismukes@adacore.com>
4439         * sem_cat.adb (Check_Categorization_Dependencies):
4440         Allow dependence of both Remote_Types and Remote_Call_Interface
4441         declarations (not just Remote_Types units) on preelaborated
4442         units, but require that the dependence be made via a private
4443         with_clause. Issue a specialized error message.
4445 2012-07-09  Pascal Obry  <obry@adacore.com>
4447         * prj-util.adb, prj-util.ads (For_Interface_Sources): New routine.
4449 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4451         * seh_init.c (__gnat_SEH_error_handler): On Win64 and SEH,
4452         return for unknown exceptions.
4453         * raise-gcc.c (__gnat_personality_seh0): Call __gnat_SEH_error_handler.
4455 2012-07-09  Joel Brobecker  <brobecker@adacore.com>
4457         * exp_dbug.ads (No_Dollar_In_Label): Delete.
4459 2012-07-09  Vincent Pucci  <pucci@adacore.com>
4461         * sem_ch13.adb (Check_Overloaded_Name): New routine.
4463 2012-07-09  Vincent Pucci  <pucci@adacore.com>
4465         * freeze.adb (Freeze_Record_Type): Analyze the delayed aspects of the
4466         components in a record type.
4468 2012-07-09  Pascal Obry  <obry@adacore.com>
4470         * prj-util.ads: Minor reformatting.
4472 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4474         * raise-gcc.c (db_indent): Simplify style, improve comments.
4475         Remove !IN_RTS part (dead).
4477 2012-07-09  Robert Dewar  <dewar@adacore.com>
4479         * usage.adb: Minor change to format of -gnatn line.
4481 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4483         * a-exexpr-gcc.adb: Reorder routine.
4485 2012-07-09  Vincent Celier  <celier@adacore.com>
4487         * lib-writ.ads: Add documentation for the Z lines (implicitly
4488         withed units) and Y lines (limited withed units).
4490 2012-07-09  Robert Dewar  <dewar@adacore.com>
4492         * lib.ads, exp_attr.adb, exp_ch9.adb, sem_dim.adb, sem_ch9.adb,
4493         sem_prag.adb, sem_ch12.adb, mlib-utl.adb, freeze.adb, sem_res.adb,
4494         sem_attr.adb, sem_case.adb, gnatlink.adb, exp_ch4.adb, sem_ch6.adb,
4495         sem_elim.adb, s-dimmks.ads, sem_ch13.adb: Minor code clean ups.
4497 2012-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4499         * gnat_ugn.texi (Switches for gcc): Document -gnatn[12] only
4500         lightly in the summary and more thoroughly in inlining section.
4501         (Performance Considerations): Document -gnatn[12] in inlining
4502         section.
4504 2012-07-09  Tristan Gingold  <gingold@adacore.com>
4506         * a-exexpr-gcc.adb (Unhandled_Except_Handler): New procedure.
4507         (Unhandled_Others_Value): New const.
4508         * raise-gcc.c (GNAT_UNHANDLED_OTHERS): Define.
4509         (action_descriptor): Remove ttype_entry.
4510         (get_action_description_for): Do not assign ttype_entry.
4511         (is_handled_by): Consider GNAT_UNHANDLED_OTHERS.
4513 2012-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4515         * gcc-interface/trans.c (Call_to_gnu): Robustify test for function case
4516         if the CICO mechanism is used.
4518 2012-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4520         * gcc-interface/utils2.c (build_simple_component_ref): Do not look
4521         through an extension if the type contains a placeholder.
4523 2012-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4525         * exp_disp.adb (Expand_Dispatching_Call): Propagate the convention on
4526         the designated subprogram type and also set Is_Dispatch_Table_Entity.
4527         (Expand_Interface_Thunk): Propagate the convention on the thunk.
4528         (Set_CPP_Constructors_Old): Set Is_Constructor and Convention_CPP on
4529         the internal view of the constructors.
4530         (Set_CPP_Constructors): Likewise.
4531         * sem_prag.adb (Analyze_Pragma) <Pragma_CPP_Constructor>: Set the
4532         convention on the function.
4533         * gcc-interface/gigi.h (is_cplusplus_method): Declare.
4534         * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
4535         (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the `thiscall'
4536         calling convention
4537         (get_minimal_subprog_decl): Likewise.
4538         (is_cplusplus_method): New predicate.
4539         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Issue an
4540         error on access to C++ constructor or member function.
4542 2012-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4544         * gcc-interface/utils.c (gnat_pushdecl): Set TYPE_CONTEXT for types
4545         attached to a TYPE_DECL.
4547 2012-06-26  Vincent Pucci  <pucci@adacore.com>
4549         * exp_ch3.adb (Build_Init_Statements): Don't check the parents
4550         in the Rep Item Chain of the task for aspects Interrupt_Priority,
4551         Priority, CPU and Dispatching_Domain.
4552         * exp_ch9.adb (Expand_N_Task_Type_Declaration): fields _Priority,
4553         _CPU and _Domain are present in the corresponding record type
4554         only if the task entity has a pragma, attribute definition
4555         clause or aspect specification.
4556         (Make_Initialize_Protection): Don't check the parents in the Rep Item
4557         Chain of the task for aspects Interrupt_Priority, Priority, CPU and
4558         Dispatching_Domain.
4559         * freeze.adb (Freeze_Entity): Use of Evaluate_Aspects_At_Freeze_Point
4560         call replaced by Analyze_Aspects_At_Freeze_Point.
4561         * sem_ch13.adb, sem_ch13.ads (Analyze_Aspects_At_Freeze_Point):
4562         Renaming of Evaluate_Aspects_At_Freeze_Point.
4564 2012-06-26  Yannick Moy  <moy@adacore.com>
4566         * sem_attr.adb (Analyze_Attribute): Detect if 'Old is used outside a
4567         postcondition, and issue an error in such a case.
4569 2012-06-26  Yannick Moy  <moy@adacore.com>
4571         * gnat_rm.texi: Minor editing.
4573 2012-06-26  Tristan Gingold  <gingold@adacore.com>
4575         * raise-gcc.c: Minor cleanup: remove unused prototype.
4576         * seh_init.c: Do not create an image wide unwind info to catch
4577         SEH when SEH unwind info are emitted by the compiler.
4579 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
4581         * gcc-interface/trans.c: Include target.h.
4582         (gigi): Try to put out .ident with targetm.asm_out.output_ident.
4583         Remove uses of ASM_OUTPUT_IDENT.
4584         * gcc-interface/Make-lang.in: Fix dependencies.
4586 2012-06-15  Eric Botcazou  <ebotcazou@adacore.com>
4588         PR ada/53592
4589         * gcc-interface/gigi.h (maybe_vector_array): Make static inline.
4590         * gcc-interface/utils.c (maybe_vector_array): Delete.
4591         * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the
4592         array object as addressable if it has vector type and is on the LHS.
4594 2012-06-15  Eric Botcazou  <ebotcazou@adacore.com>
4596         PR middle-end/53590
4597         * gcc-interface/misc.c (gnat_init_options_struct): Set
4598         opts->x_flag_delete_dead_exceptions to 1.
4600 2012-06-14  Jose Ruiz  <ruiz@adacore.com>
4602         * gcc-interface/Make-lang.in (ada.install-common, ada.uninstall):
4603         Use the prefix specified with the --program-prefix configure option
4604         to determine the install name of the Ada tools.
4605         (ada.all.cross): Use a for loop to iterate over the set of Ada tools
4606         instead of duplicate the same processing.
4607         Update dependencies.
4609 2012-06-14  Vincent Pucci  <pucci@adacore.com>
4611         * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_Symbol
4612         call replaced by Expand_Put_Call_With_Symbol call.
4613         * sem_dim.adb: New fields Unit_Names, Unit_Symbols
4614         and Dim_Symbols for record type System_Type.
4615         (From_Dimension_To_String_Of_Symbols): Removed.
4616         (From_Dim_To_Str_Of_Dim_Symbols): Renames previous
4617         routine From_Dimension_To_String_Of_Symbols.
4618         (From_Dim_To_Str_Of_Unit_Symbols): New routine.
4619         (Analyze_Aspect_Dimension): argument Symbol in aspect
4620         Dimension aggregate is optional. Named association implemented.
4621         (Has_Compile_Time_Known_Expressions): Removed.
4622         (Analyze_Aspect_Dimension_System): New
4623         component Dim_Symbol in each Dimension aggregate in
4624         aspect Dimension_System. Named associations implemented.
4625         (Add_Dimension_Vector_To_Buffer): Removed.
4626         (Add_Whole_To_Buffer): Removed.
4627         (Expand_Put_Call_With_Dimension_Symbol.): Removed.
4628         (Expand_Put_Call_With_Symbol): Renames previous routine
4629         Expand_Put_Call_With_Dimension_Symbol.
4630         (Has_Dimension_Symbols): Removed.
4631         (Has_Symbols): Renames previous routine
4632         Has_Dimension_Symbols.  (Store_String_Oexpon): New routine.
4633         * sem_dim.ads (Expand_Put_Call_With_Dimension_Symbol.): Removed.
4634         (Expand_Put_Call_With_Symbol): Renames previous routine
4635         Expand_Put_Call_With_Dimension_Symbol.
4636         * s-diflio.adb, s-diinio.adb (Put): Symbol renames Symbols.
4637         (Put_Dim_Of): New routines.
4638         * s-diflio.ads, s-diinio.ads: documentation updated.
4639         (Put): Symbol renames Symbols.
4640         (Put_Dim_Of): New routines.
4641         * s-dim.ads: documentation updated.
4642         * s-dimmks.ads: dimensioned type and subtypes updated.
4643         * snames.ads-tmpl: Name_Dim_Symbol, Name_Put_Dim_Of, Name_Symbol,
4644         and Name_Unit_Symbol added. Name_Symbols removed.
4646 2012-06-14  Vincent Pucci  <pucci@adacore.com>
4648         * freeze.adb (In_Exp_Body): Expression function case added.
4649         (Freeze_Expression): Insert the Freeze_Nodes
4650         list before the correct current scope in case of a quantified
4651         expression.
4653 2012-06-14  Pascal Obry  <obry@adacore.com>
4655         * projects.texi: Document the Install package for gprinstall.
4656 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
4658         * sem_elim.adb (Check_For_Eliminated_Subprogram): Do not check within
4659         a default expression.
4660         * sem_res.adb (Resolve_Call): simplify code.
4662 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
4664         * sem_case.adb (Check, Issue_Msg): within an instance, non-other
4665         values in a variant part or a case expression do not have to
4666         belong to the actual subtype.
4668 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
4670         * sem_ch12.adb (Validate_Derived_Type_Instance): If parent is
4671         an interface type, check whether it is itself a previous formal
4672         already instantiated in the current list of actuals.
4674 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
4676         * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): The
4677         expression for a stream attribute is a name that may be overloaded
4678         with other declarations. To determine whether it matches the
4679         aspect at the freeze point, it is necessary to verify that one
4680         of its interpretations matches.
4682 2012-06-14  Robert Dewar  <dewar@adacore.com>
4684         * exp_ch7.adb, exp_util.adb, sem_aux.ads, exp_ch9.adb,
4685         sem_ch10.adb, freeze.adb, sem_util.adb, exp_ch4.adb,
4686         s-taprop-dummy.adb: Minor reformatting.
4688 2012-06-14  Vincent Pucci  <pucci@adacore.com>
4690         * exp_attr.adb (Expand_N_Attribute_Reference): Lock_Free
4691         attribute case added.
4692         * par-prag.adb (Prag): Lock_Free pragma case added.
4693         * sem_attr.adb (Analyze_Attribute_Reference): Lock_Free attribute
4694         case added.
4695         * sem_ch13.adb (Analyze_Aspect_Specifications): Record_Rep_Item
4696         call added for Aspect_Lock_Free.
4697         * sem_ch9.adb (Allows_Lock_Free_Implementation): New Lock_Free
4698         error messages for subprogram bodies.
4699         (Lock_Free_Disabled): New routine.
4700         (Analyze_Protected_Body): Call to Lock_Free_Disabled added.
4701         * sem_prag.adb (Analyze_Pragma): Lock_Free pragma case added.
4702         * snames.adb-tmpl (Get_Pragma_Id): Name_Lock_Free case added.
4703         (Is_Pragma_Name): Name_Lock_Free case added.
4704         * snames.ads-tmpl: Attribute_Lock_Free and Pragma_Lock_Free added.
4706 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
4708         * a-coorma.adb, a-cborma.adb, a-cbhama.adb, a-ciorma.adb: Add missing
4709         aliased keyword.
4711 2012-06-14  Bob Duff  <duff@adacore.com>
4713         * lib.ads, lib.adb, sem.adb (Write_Unit_Info): Move this
4714         procedure from Sem body to Lib spec, so it can be used for
4715         debugging elsewhere.
4717 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
4719         * sem_ch6.adb (Check_Conformance): Add Ada 2012 check on mode
4720         conformance: "aliased" must apply to both or neither formal
4721         parameters.
4723 2012-06-14  Gary Dismukes  <dismukes@adacore.com>
4725         * exp_ch9.adb: Minor reformatting.
4727 2012-06-14  Thomas Quinot  <quinot@adacore.com>
4729         * freeze.adb (Freeze_Record_Type): Warn about useless bit order
4730         specification [when there's no component clause] regardless
4731         of whether the specified bit order is reversed or not.
4733 2012-06-14  Tristan Gingold  <gingold@adacore.com>
4735         * raise-gcc.c (__gnat_personality_seh0): New function.
4737 2012-06-14  Tristan Gingold  <gingold@adacore.com>
4739         * gnatname.adb (Gnatname): Make sure that dynamic table
4740         argument_data is initialized.
4742 2012-06-14  Robert Dewar  <dewar@adacore.com>
4744         * sem_aux.adb: Minor code reorganization.
4746 2012-06-14  Vincent Pucci  <pucci@adacore.com>
4748         * einfo.adb einfo.ads (Get_Rep_Item): Removed.
4749         (Get_Rep_Item_For_Entity): Removed.
4750         (Get_Rep_Pragma): Removed.
4751         (Get_Rep_Pragma_For_Entity): Removed.
4752         (Has_Rep_Item): Removed.
4753         (Has_Rep_Pragma): Removed.
4754         (Has_Rep_Pragma_For_Entity): Removed.
4755         * exp_ch9.adb (Expand_N_Task_Type_Declaration):
4756         Has_Rep_Pragma_For_Entity replaced by Has_Rep_Pragma
4757         and Get_Rep_Pragma_For_Entity replaced by Get_Rep_Pragma.
4758         (Make_Task_Create_Call): Has_Rep_Pragma_For_Entity replaced
4759         by Has_Rep_Pragma and Get_Rep_Pragma_For_Entity replaced by
4760         Get_Rep_Pragma.
4761         * exp_intr.adb: Dependency to Sem_Aux added for call to Get_Rep_Pragma.
4762         * sem_aux.adb (Get_Rep_Item): New routine.
4763         (Get_Rep_Pragma): New routine.
4764         (Has_Rep_Item): New routine.
4765         (Has_Rep_Pragma): New routine.
4766         (Nearest_Ancestor): Minor reformatting.
4767         * sem_aux.ads (Get_Rep_Item): New routine.
4768         (Get_Rep_Pragma): New routine.
4769         (Has_Rep_Item): New routine.
4770         (Has_Rep_Pragma): New routine.
4771         * sem_ch13.adb (Duplicate_Clause): Restore original error messages.
4772         * sem_eval.adb (Subtypes_Statically_Match): Get_Rep_Item_For_Entity
4773         replaced by Get_Rep_Item.
4774         * sem_prag.adb (Analyze_Pragma): Restore original error messages.
4775         (Check_Duplicate_Pragma): Restore original error messages.
4777 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
4779         * sem_util.adb (Is_Object_Reference): in Ada 2012, qualified
4780         expressions are valid names.
4782 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
4784         * sem_ch10.adb (Analyze_Compilation_Unit): If the unit is an
4785         instantiation do not emit warnings for obsolescent units. The
4786         warnings belong on the corresponding generic.
4788 2012-06-14  Hristian Kirtchev  <kirtchev@adacore.com>
4790         * einfo.adb: Update the usage of Node15.
4791         (Return_Flag_Or_Transient_Decl): Removed.
4792         (Set_Return_Flag_Or_Transient_Decl): Removed.
4793         (Set_Status_Flag_Or_Transient_Decl): New routine.
4794         (Status_Flag_Or_Transient_Decl): New routine.
4795         (Write_Field15_Name): Update the output for variables and constants.
4796         * einfo.ads: Remove attribute
4797         Return_Flag_Or_Transient_Decl along with occurrences in nodes.
4798         (Return_Flag_Or_Transient_Decl): Removed along with pragma Inline.
4799         (Set_Return_Flag_Or_Transient_Decl): Removed along with pragma Inline.
4800         (Set_Status_Flag_Or_Transient_Decl): New routine along with pragma
4801         Inline.
4802         (Status_Flag_Or_Transient_Decl): New routine along with pragma Inline.
4803         * exp_ch4.adb (Create_Alternative): New routine.
4804         (Expand_N_Conditional_Expression): Handle the case
4805         where at least one of the conditional expression
4806         alternatives prodices a controlled temporary by means of a function
4807         call.
4808         (Is_Controlled_Function_Call): New routine.
4809         (Process_Transient_Object): Update the call to
4810         Set_Return_Flag_Or_Transient_Decl.
4811         * exp_ch6.adb (Enclosing_Context): New routine.
4812         (Expand_N_Extended_Return_Statement): Update all calls to
4813         Set_Return_Flag_Or_Transient_Decl.
4814         (Expand_Ctrl_Function_Call): Prohibit the finalization of a controlled
4815         function result when the context is a conditional expression.
4816         * exp_ch7.adb (Process_Declarations): Update all calls to
4817         Return_Flag_Or_Transient_Decl. Add processing for intermediate
4818         results of conditional expressions where one of the alternatives
4819         uses a controlled function call.
4820         (Process_Object_Declaration): Update all calls to
4821         Return_Flag_Or_Transient_Decl and rearrange the logic to process
4822         "hook" objects first.
4823         (Process_Transient_Objects): Update the call to
4824         Set_Return_Flag_Or_Transient_Decl.
4825         * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean,
4826         Boolean)): Update all calls to Return_Flag_Or_Transient_Decl. Add
4827         detection for intermediate results of conditional expressions
4828         where one of the alternatives uses a controlled function call.
4830 2012-06-13  Eric Botcazou  <ebotcazou@adacore.com>
4832         Revert
4833         2012-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4835         * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
4836         (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
4837         calling convention
4838         (get_minimal_subprog_decl): Likewise.
4839         (gnat_first_param_is_class): New predicate.
4841 2012-06-12  Robert Dewar  <dewar@adacore.com>
4843         * gcc-interface/Make-lang.in: Update dependencies.
4844         * sem_ch9.ads, einfo.adb, einfo.ads, sem_prag.adb, freeze.adb,
4845         sem_util.adb, sem_ch13.adb, sem_ch13.ads, exp_ch3.adb: Add comments.
4846         Minor reformatting.
4848 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
4850         * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove code that
4851         implements AI05-0296, because the actual may be overloaded.
4852         * sem_ch8.adb (Analyze_Subprogram_Renaming): and move it here,
4853         to be applied once the actual subprogram is properly resolved.
4855 2012-06-12  Robert Dewar  <dewar@adacore.com>
4857         * switch-c.adb, a-exexpr-gcc.adb: Minor reformatting.
4859 2012-06-12  Vincent Pucci  <pucci@adacore.com>
4861         * checks.adb (Tag_Checks_Suppressed): Remove Kill_Tag_Checks check.
4862         * einfo.adb (Universal_Aliasing): Apply to the implementation
4863         base type instead of the base type.
4864         (Get_Rep_Item_For_Entity):
4865         Return a pragma if the pragma node is not present in the Rep
4866         Item chain of the parent.
4867         (Kill_Tag_Checks): Removed (unused flag).
4868         (Set_Kill_Tag_Checks): Removed.
4869         (Get_First_Rep_Item): New routine.
4870         (Get_Rep_Pragma_For_Entity): New routine.
4871         (Has_Rep_Item): New routine.
4872         (Has_Rep_Pragma_For_Entity): New routine.
4873         (Present_In_Rep_Item): New routine.
4874         * einfo.ads (Kill_Tag_Checks): Removed.
4875         (Set_Kill_Tag_Checks): Removed.
4876         (Get_First_Rep_Item): New routine.
4877         (Get_Rep_Pragma_For_Entity): New routine.
4878         (Has_Rep_Item): New routine.
4879         (Has_Rep_Pragma_For_Entity): New routine.
4880         (Present_In_Rep_Item): New routine.
4881         * exp_attr.adb, sem_attr.adb: Attribute_CPU,
4882         Attribute_Dispatching_Domain and Attribute_Interrupt_Priority
4883         case added.
4884         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause): For
4885         attribute Storage_Size, insert the new assignement statement
4886         after the Size variable declaration.
4887         * exp_ch3.adb (Build_Init_Statements): Fill the CPU,
4888         Dispatching_Domain, Priority and Size components with the Rep
4889         Item expression (if any).
4890         * exp_ch9.adb (Expand_N_Task_Type_Declaration): _CPU,
4891         _Priority, _Domain fields are always present in the
4892         corresponding record type.
4893         (Find_Task_Or_Protected_Pragma): Removed.
4894         (Get_Relative_Deadline_Pragma): New routine.
4895         (Make_Initialize_Protection): Find_Task_Or_Protected_Pragma removed.
4896         (Make_Task_Create_Call): Check CPU, Size or
4897         Dispatching_Domain Rep Item is present using new routine Has_Rep_Item.
4898         * freeze.adb (Freeze_All): Push_Scope_And_Install_Discriminants
4899         and Uninstall_Discriminants_And_Pop_Scope calls added.
4900         (Freeze_Entity): Evaluate_Aspects_At_Freeze_Point call added.
4901         * sem_aux.adb (Nearest_Ancestor): Retrieve the nearest ancestor
4902         for private derived types.
4903         * sem_ch13.adb (Analyze_Aspect_Specifications): Clean-up
4904         and reordering. Delay analysis for all aspects (except some
4905         peculiar cases).
4906         (Analyze_Attribute_Definition_Clause):
4907         Attribute_CPU, Attribute_Dispatching_Domain,
4908         Interrupt_Priority and Attribute_Priority cases added.
4909         (Analyze_Freeze_Entity): Push_Scope_And_Install_Discriminants
4910         and Uninstall_Discriminants_And_Pop_Scope calls added.
4911         (Check_Aspect_At_Freeze_Point): Reordering and clean-up.
4912         (Duplicate_Clause): Issue an explicit error msg when the current
4913         clause duplicates an aspect specification, an attribute definition
4914         clause or a pragma.
4915         (Evaluate_Aspects_At_Freeze_Point): New routine.
4916         * sem_ch13.ads (Evaluate_Aspects_At_Freeze_Point): New routine.
4917         * sem_ch9.adb, sem_ch9.ads (Install_Discriminants): New routine.
4918         (Push_Scope_And_Install_Discriminants): New routine.
4919         (Uninstall_Discriminants): New routine.
4920         (Uninstall_Discriminants_And_Pop_Scope): New routine.
4921         * sem_prag.adb (Check_Duplicate_Pragma): Issue an explicit error
4922         msg when the current pragma duplicates an aspect specification,
4923         an attribute definition clause or a pragma.
4924         (Analyze_Pragma): Remove use of flags Has_Pragma_CPU,
4925         Has_Pragma_Priority and Has_Pragma_Dispatching_Domain.
4926         * sem_util.adb (Compile_Time_Constraint_Error): Don't complain
4927         about the type if the corresponding concurrent type doesn't come
4928         from source.
4929         * sinfo.adb, sinfo.ads (Has_Pragma_CPU): Removed.
4930         (Has_Pragma_Dispatching_Domain): Removed.
4931         (Has_Pragma_Priority): Removed.
4932         (Has_Task_Info_Pragma): Removed.
4933         (Has_Task_Name_Pragma): Removed.
4934         (Set_Has_Pragma_CPU): Removed.
4935         (Set_Has_Pragma_Dispatching_Domain): Removed.
4936         (Set_Has_Pragma_Priority): Removed.
4937         (Set_Has_Task_Info_Pragma): Removed.
4938         (Set_Has_Task_Name_Pragma): Removed.
4939         * snames.adb-tmpl (Get_Pragma_Id): Pragma_CPU,
4940         Pragma_Dispatching_Domain and Pragma_Interrupt_Priority added.
4941         (Is_Pragma_Name): Name_CPU, Name_Dispatching_Domain and
4942         Name_Interrupt_Priority added.
4943         * snames.ads-tmpl: Name_Dispatching_Domain, Name_CPU
4944         and Name_Interrupt_Priority moved to the list of
4945         Attribute_Name. Attribute_CPU, Attribute_Dispatching_Domain and
4946         Attribute_Interrupt_Priority added.  Pragma_Dispatching_Domain,
4947         Pragma_CPU and Pragma_Interrupt_Priority moved to the end of
4948         the Pragma_Name list.
4950 2012-06-12  Arnaud Charlet  <charlet@adacore.com>
4952         * xref_lib.adb (Get_Full_Type): Add support for 'G'.
4954 2012-06-12  Tristan Gingold  <gingold@adacore.com>
4956         * a-exexpr-gcc.adb (Unwind_Exception): Add 4 more private fields.
4958 2012-06-12  Fedor Rybin  <frybin@adacore.com>
4960         * gnat_ugn.texi: Update doc on gnattest.
4962 2012-06-12  Robert Dewar  <dewar@adacore.com>
4964         * sem_ch12.adb: Add comments.
4966 2012-06-12  Robert Dewar  <dewar@adacore.com>
4968         * switch-c.adb, inline.adb, usage.adb, opt.ads: Minor reformatting.
4970 2012-06-12  Robert Dewar  <dewar@adacore.com>
4972         * sem_ch12.adb: Minor reformatting.
4974 2012-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4976         * opt.ads (Inline_Level): New variable.
4977         * gnat1drv.adb (Adjust_Global_Switches): Set it based on optimization
4978         level if it has not been set by the user.
4979         * switch-c.adb (Scan_Front_End_Switches): Accept -gnatn1 and -gnatn2
4980         and set Inline_Level accordingly.
4981         * inline.adb (Add_Inlined_Body): Declate new Inline_Level_Type type.
4982         (Must_Inline): Return Inline_Level_T instead of Boolean to indicate
4983         whether the package of the inlined subprogram must be compiled.
4984         If Inline_Level is set to 1, only compile packages of subprograms
4985         directly called from the main unit.
4986         * usage.adb (Usage): Adjust line for -gnatn switch.
4987         * gnat_ugn.texi (Switches for gcc): Document -gnatn1 and -gnatn2.
4989 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
4991         * sem_ch12.adb (Instantiate_Formal_Subprogram): Do not apply
4992         AI05-296 if the actual is overloaded. In this case The rule must
4993         be applied after resolution, in Analyze_Subprogram_Renaming.
4995 2012-06-12  Robert Dewar  <dewar@adacore.com>
4997         * stringt.adb: Minor reformatting.
4999 2012-06-12  Robert Dewar  <dewar@adacore.com>
5001         * ali-util.adb, stringt.ads: Minor reformatting.
5003 2012-06-12  Hristian Kirtchev  <kirtchev@adacore.com>
5005         * exp_ch7.adb (Process_Declarations): Handle the case where
5006         the original context has been wrapped in a block to avoid
5007         interference between exception handlers and At_End handlers.
5008         (Wrap_HSS_In_Block): Mark the block which contains the original
5009         statements of the context as being a finalization wrapper.
5010         * sinfo.adb (Is_Finalization_Wrapper): New routine.
5011         (Set_Is_Finalization_Wrapper): New routine.
5013         * sinfo.ads: Add new attribute Is_Finalization_Wrapper applicable
5014         to block statemnts.
5015         (Is_Finalization_Wrapper): New routine with corresponding pragma Inline.
5016         (Set_Is_Finalization_Wrapper): New routine with corresponding pragma
5017         Inline.
5019 2012-06-12  Steve Baird  <baird@adacore.com>
5021         * gnat1drv.adb (Adjust_Global_Switches): No longer need to set
5022         Exception_Extra_Info in CodePeer_Mode.
5024 2012-06-12  Robert Dewar  <dewar@adacore.com>
5026         * sem_dist.adb, exp_ch7.adb, sem_type.adb, exp_attr.adb,
5027         sinfo.ads, sem_ch7.adb, exp_alfa.adb, sem_scil.adb, sem_ch12.adb,
5028         sem_util.adb, sem_res.adb, sem_attr.adb, sem_elab.adb, exp_ch6.adb,
5029         sem_ch4.adb, sem_warn.adb, scil_ll.adb, exp_cg.adb: Minor code
5030         reorganization.
5032 2012-06-12  Eric Botcazou  <ebotcazou@adacore.com>
5034         * s-tasini.ads: Minor fix in comment.
5036 2012-06-12  Thomas Quinot  <quinot@adacore.com>
5038         * freeze.adb (Freeze_Record_Type): Warn on record with
5039         Scalar_Storage_Order if there is no placed component.
5041 2012-06-12  Thomas Quinot  <quinot@adacore.com>
5043         * sem_ch3.adb: Minor comment fix.
5045 2012-06-12  Vincent Celier  <celier@adacore.com>
5047         * ali-util.adb (Time_Stamp_Mismatch): In minimal recompilation
5048         mode, use Stringt Mark and Release to avoid growing the Stringt
5049         internal tables uselessly.
5050         * stringt.adb (Strings_Last): New global variable
5051         (String_Chars_Last): New global variable.
5052         (Mark, Release): New procedures.
5053         * stringt.ads (Mark, Release) New procedures.
5055 2012-06-12  Hristian Kirtchev  <kirtchev@adacore.com>
5057         * exp_ch7.adb (Process_Transient_Objects): Renamed constant
5058         Requires_Hooking to Must_Hook and replace all occurrences of the name.
5059         (Requires_Hooking): New routine. Detect all contexts that require
5060         transient variable export to the outer finalizer due to a potential
5061         exception.
5063 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
5065         * sem_ch12.adb: Small adjustment.
5067 2012-06-12  Vincent Celier  <celier@adacore.com>
5069         * vms_cmds.ads (Command_Type): New enumeration value Test
5070         * vms_conv.adb (Initialize): Add component at index Test in
5071         Command_List
5072         * vms_data.ads (Test_Switches): New global variable for the
5073         switches of gnattest, currently empty.
5075 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
5077         * sem_ch3.adb (Analyze_Subtype_Declaration): if an incomplete
5078         type is tagged, so is a subtype of it.
5079         * sem_ch12.adb (Validate_Actual_Subprogram): implement AI05-0296,
5080         concerning freeze rules in the presence of formal incomplete
5081         types: a formal abstract subprogram cannot have an incomplete
5082         controlling type, and the profile of the actual subprogram does
5083         not freeze if it includes an incomplete untagged type.
5085 2012-06-12  Robert Dewar  <dewar@adacore.com>
5087         * a-direct.adb: Minor reformatting.
5089 2012-06-12  Robert Dewar  <dewar@adacore.com>
5091         * gnat_ugn.texi: Add missing documentation for -gnatw.v and
5092         -gnatw.V.
5094 2012-06-12  Thomas Quinot  <quinot@adacore.com>
5096         * sem_ch7.adb, sem_prag.adb, sem_ch12.adb, sem_ch4.adb,
5097         sem_ch13.adb: Minor rewording of error messages for unchecked unions.
5099 2012-06-12  Robert Dewar  <dewar@adacore.com>
5101         * lib-xref.ads: Minor reformatting.
5103 2012-06-12  Pascal Obry  <obry@adacore.com>
5105         * a-direct.adb (Delete_File): Delete symbolic links silently
5106         instead of raising the Name_Error exception when the symbolic
5107         link is pointing to a non existent file.
5109 2012-06-12  Robert Dewar  <dewar@adacore.com>
5111         * xref_lib.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.
5113 2012-06-12  Javier Miranda  <miranda@adacore.com>
5115         * lib-xref.ads Adding missing documentation.
5117 2012-06-12  Hristian Kirtchev  <kirtchev@adacore.com>
5119         * exp_ch7.adb (Create_Finalizer): Add the
5120         exception reraise mechanism at the very end of the finalizer
5121         statements. This placement ensures that all objects are finalized,
5122         the secondary stack mark released and aborts undeferred before
5123         propagating an exception.
5125 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
5127         * sem_ch10.adb (Remove_Unit_From_Visibility): if the unit is a
5128         wrapper package. remove from visibility the original subprogram
5129         instance.
5131 2012-06-12  Javier Miranda  <miranda@adacore.com>
5133         * sem_prag.adb (Process_Convention): Generate reference to entity
5134         exported to foreign language. Needed for GPS navigation.
5135         * xref_lib.adb (Parse_Identifier_Info): Parse exported entities.
5136         * lib-xref (Output_References): Output exported entities.
5138 2012-06-12  Pascal Obry  <obry@adacore.com>
5140         * prj-attr.adb: Add install package and corresponding attributes.
5141         * snames.ads-tmpl (Name_Active): New constant.
5142         (Name_Exec_Subdir): Likewise.
5143         (Name_Install): Likewise.
5144         (Name_Lib_Subdir): Likewise.
5145         (Name_Project_Subdir): Likewise.
5146         (Name_Sources_Subdir): Likewise.
5148 2012-06-12  Bob Duff  <duff@adacore.com>
5150         * sem_res.adb (Check_Infinite_Recursion):
5151         Suppress spurious warning on recursion after "raise with ...".
5153 2012-06-12  Thomas Quinot  <quinot@adacore.com>
5155         * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Do
5156         not crash on illegal unchecked union that is a null record.
5158 2012-06-12  Thomas Quinot  <quinot@adacore.com>
5160         * exp_ch4.adb (Has_Inferable_Discriminants): Reorganize code to
5161         treat implicit dereferences with a constrained unchecked union
5162         nominal subtype as having inferable discriminants. 
5164 2012-06-12  Robert Dewar  <dewar@adacore.com>
5166         * sem_ch6.adb: Minor reformatting.
5168 2012-06-12  Eric Botcazou  <ebotcazou@adacore.com>
5170         * gnat_ugn.texi: Couple of minor corrections.
5172 2012-06-12  Thomas Quinot  <quinot@adacore.com>
5174         * sem_prag.adb (Check_Variant): An empty component list is not
5175         illegal in an unchecked union variant.
5177 2012-06-12  Gary Dismukes  <dismukes@adacore.com>
5179         * projects.texi: Remove comments.
5181 2012-06-12  Thomas Quinot  <quinot@adacore.com>
5183         * back_end.adb (Scan_Back_End_Switches): Treat -fdump-scos as
5184         synonym of -gnateS.
5185         (gnat_post_options): Disable gimple-based SCO generator.
5186         * gnat_ugn.texi: Document that -gnateS is an obsolete synonym
5187         of -fdump-scos.
5189 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
5191         * sem_ch6.adb (Different_Generic_Profile): new predicate for
5192         Find_Corresponding_Spec, to handle a rare case of accidental
5193         overloading in an instance, when the profile of a subprogram body
5194         that depends on a formal type becomes compatible with that of
5195         a homonym whose profile in the generic mentions the actual type.
5197 2012-06-12  Thomas Quinot  <quinot@adacore.com>
5199         * gnat1drv.adb: Minor reformatting.
5201 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
5203         * sem_util.adb (Build_Explicit_Dereference): If the expression
5204         is an entity, ensure that the type of the expression is the same
5205         as that of the entity.
5207 2012-06-12  Pat Rogers  <rogers@adacore.com>
5209         * projects.texi: Corrected instances of the word "build" that
5210         should be "built" instead. Other similar changes and minor
5211         punctuation changes.
5213 2012-06-12  Eric Botcazou  <ebotcazou@adacore.com>
5215         * sem_util.adb (Is_Atomic_Object): Return true for an atomic
5216         component as well as a prefix which is an atomic component.
5218 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
5220         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): revert previous
5221         patch. The processing of interfacing aspects now generates a
5222         proper Ada 2005 pragma.
5223         * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
5224         Pragma_Import): revert previous patch.  The processing of
5225         interfacing aspects now generates a proper Ada 2005 pragma.
5226         * sem_ch13.adb (Analyze_Aspect_Specifications): generate proper
5227         pragam for aspects Convention, Import and Export. Scan list
5228         of aspects to collect link name and external name if present,
5229         and verify that a complete pragma can be generated.
5231 2012-06-11  Olivier Hainque  <hainque@adacore.com>
5233         * gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Remove
5234         $(PIC_FLAG_FOR_TARGET).
5235         (gnatlib-shared-default): Add $(PIC_FLAG_FOR_TARGET) to
5236         GNATLIBCFLAGS_FOR_C passed to gnatlib.
5237         (gnatlib-shared-win32): Likewise.
5238         (gnatlib-shared-darwin): Likewise.
5239         (gnatlib-shared-dual-win32): Pass PIC_FLAG_FOR_TARGET to
5240         gnatlib-shared-win32.
5242 2012-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5244         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Convert GNU_SIZE
5245         to units before invoking allocatable_size_p on it.
5246         Remove orphaned comment.  Do not use ssize_int.
5247         <E_Record_Subtype>: Traverse list in original order.  Minor tweak.
5248         (allocatable_size_p): Adjust and simplify.
5249         (build_subst_list): Use consistent terminology throughout.
5250         (build_variant_list): Likewise.  Traverse list in original order.
5251         (create_field_decl_from): Likewise.
5252         (copy_and_substitute_in_size): Likewise.
5253         (create_variant_part_from): Add comment about field list order.
5254         * gcc-interface/utils.c (build_vms_descriptor): Do not use ssize_int.
5255         * gcc-interface/utils2.c (build_allocator): Likewise.
5257 2012-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5259         * gcc-interface/trans.c (Identifier_to_gnu): Test Is_Elementary_Type
5260         instead of Is_Scalar_Type for a constant with an address clause.
5261         Do not return the underlying constant for a constant used by reference
5262         if it holds the address of a constant and an lvalue is required.
5264 2012-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5266         * gcc-interface/decl.c (gnat_to_gnu_entity): Do not specifically deal
5267         with external constants wrt force_global here...
5268         <E_Constant>: ...but here instead.
5269         * gcc-interface/utils.c (gnat_pushdecl): Do not put external DECLs onto
5270         the list of global DECLs.
5272 2012-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5274         * gcc-interface/decl.c (gnat_to_gnu_entity): Translate the Esize on
5275         entry only for elementary types and abort if it is too large.
5276         <E_Record_Type>: Make sure the Esize is known before using it.
5278 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
5280         * gcc-interface/utils2.c: Do not include output.h.
5281         * gcc-interface/Make-lang.in: Fix dependencies.
5283 2012-05-29  Michael Matz  <matz@suse.de>
5285         * gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl.
5287 2012-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5289         * gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'.
5290         (build_variant_list): Adjust to above renaming.
5291         (gnat_to_gnu_entity) <E_Record_Subtype>: Likewise.  Give a unique name
5292         to the type of the variant containers.
5293         (create_variant_part_from): Likewise.  Give a unique name to the type
5294         of the variant part.
5296 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5298         PR ada/52362
5299         * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
5300         (__gnat_using_gnu_linker): Delete.
5301         * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
5302         Declare Object_File_Option string constant and Using_GNU_response_file
5303         boolean constant.
5304         (Process_Binder_File): ...instead of here.  Delete Using_GNU_Linker,
5305         Opening and Closing local variables.  Do not handle the GNU linker
5306         specially.
5307         (Write_RF): New procedure to write into the response file.  Escape some
5308         characters if a GNU response file is used.  Keep track of error status.
5309         Invoke Write_RF to write into the response file.  Delete the file only
5310         if the link was successful.
5311         * mlib-utl.adb: Do not `with' package System.
5312         (Gcc): Likewise.  Declare Object_File_Option string constant and
5313         Using_GNU_response_file boolean constant.
5314         (Write_RF): Take a string instead of address and length.  Escape some
5315         characters if a GNU response file is used.
5316         Invoke Write_RF to write into the response file.  Delete the file only
5317         if the link was successful.  Do not warn if it cannot be deleted.
5319 2012-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5321         * gcc-interface/utils.c (gnat_write_global_declarations): Put a name
5322         on the dummy global variable.
5324 2012-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5326         * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
5327         (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
5328         calling convention
5329         (get_minimal_subprog_decl): Likewise.
5330         (gnat_first_param_is_class): New predicate.
5332         * gcc-interface/misc.c (gnat_handle_option): Fix formatting.
5333         * gcc-interface/Makefile.in: Likewise.
5335 2012-05-18  Eric Botcazou  <ebotcazou@adacore.com>
5337         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at
5338         global level with unconstrained nominal subtype and a non-fixed size,
5339         make a variable for the size.
5341 2012-05-15  Andris Pavenis  <andris.pavenis@iki.fi>
5343         PR ada/52494
5344         * s-taprop-dummy.adb (Specific): New package.
5346 2012-05-15  Olivier Hainque  <hainque@adacore.com>
5348         * gcc-interface/Make-lang.in (COMMON_FLAGS_TO_PASS): Use WARN_CFLAGS
5349         instead of trying to mimic it.
5351 2012-05-15  Robert Dewar  <dewar@adacore.com>
5353         * sem_ch5.adb, sem_util.adb, s-stposu.adb, exp_ch4.adb: Minor
5354         reformatting.
5356 2012-05-15  Geert Bosch  <bosch@adacore.com>
5358         * uintp.adb (UI_Rem): Remove optimizations, as they are complex and are
5359         not needed.
5360         (Sum_Digits): Remove, no longer used.
5361         (Sum_Double_Digits): Likewise.
5363 2012-05-15  Yannick Moy  <moy@adacore.com>
5365         * aspects.ads: Minor typo.
5367 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5369         * gnat_rm.texi (Scalar_Storage_Order): Fix RM reference.
5370         * sem_ch13.adb: Minor comment fix: incorrect RM reference.
5372 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5374         * sem_prag.adb (Process_Atomic_Shared_Volatile): Propagate
5375         atomicity from an object to its underlying type only if it
5376         is composite.
5378 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5380         * sem_ch5.adb (Analyze_Iterator_Specification): Set kind of
5381         loop variable after pre-analysis of iterator name, to prevent
5382         premature usage of loop variable.
5384 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5386         * sem_util.adb (Is_Variable): In Ada 2012, an explicit
5387         dereference that is a rewriting of an expression whose type has
5388         a declared Implicit_Derenference aspect is a variable.
5390 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
5392         * exp_ch4.adb (Insert_Dereference_Action): Reimplemented. The
5393         routine performs address and size adjustments for dereferences
5394         of heap-allocated controlled objects. This manipulation is needed
5395         in order to restore the original state of the memory at the time
5396         it was allocated by the finalization machinery.
5397         * rtsfind.ads: Add RE_Adjust_Controlled_Dereference to tables
5398         RE_Id and RE_Unit_Table.
5399         * sinfo.adb (Has_Dereference_Action): New routine.
5400         (Set_Has_Dereference_Action): New routine.
5401         * sinfo.ads: Add new semantic flag Has_Dereference_Action along
5402         its association in nodes.
5403         (Has_Dereference_Action): New routine and pragma Inline.
5404         (Set_Has_Dereference_Action): New routine and pragma Inline.
5405         * s-stposu.ads, s-stposu.adb (Adjust_Controlled_Dereference): New
5406         routine.
5408 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5410         * uintp.adb (Image_Uint): Use UI_Div_Rem to get quotient and
5411         remainder of U / Base in a single operation.
5413 2012-05-15  Robert Dewar  <dewar@adacore.com>
5415         * exp_ch5.adb, inline.adb, sem_ch10.adb, prj.ads, sem_util.adb,
5416         a-ngelfu.ads, exp_ch4.adb, exp_ch6.adb, aspects.ads, sem_ch6.adb,
5417         vms_data.ads, exp_ch3.adb, prj-env.adb: Minor reformatting.
5419 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5421         * exp_ch4.adb (Has_Inferable_Discriminants): For a qualified
5422         expression, use correct node for test on the subtype denoted by
5423         the subtype mark.
5425 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5427         * inline.adb (Scope_In_Main_Unit): Rename into...
5428         (In_Main_Unit_Or_Subunit): ...this.  Also return
5429         true if the subprogram is within a subunit of the
5430         main unit.
5431         (Add_Inlined_Body): Adjust for above renaming.
5432         (Add_Inlined_Subprogram): Likewise.  Pass the subprogram directly.
5433         (Analyze_Inlined_Bodies): Really set aside inlined subprograms
5434         not handled by Add_Inlined_Body.
5436 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5438         * sem_ch10.adb (Expand_With_Clause): In the context of a generic
5439         package declaration, a private with-clause on a child unit implies
5440         that the implicit with clauses on its parents are private as well.
5442 2012-05-15  Javier Miranda  <miranda@adacore.com>
5444         * sem_ch6.adb (Is_Interface_Conformant): Add missing call to
5445         Base_Type to handle subtypes.
5446         * exp_ch6.adb (Expand_Call): For calls located in thunks handle
5447         unchecked conversions of access types found in actuals.
5448         * exp_disp.adb (Expand_Interface_Thunk): Add missing unchecked
5449         conversion to actuals whose type is an access type. Done to
5450         avoid reporting spurious errors.
5452 2012-05-15  Vincent Celier  <celier@adacore.com>
5454         * prj-env.adb (Create_Mapping): Ignore sources that are
5455         suppressed (Create_Mapping_File.Process): Ditto
5456         * prj-nmsc.adb (Add_Source): Update to take into
5457         account suppressed files that may hide inherited sources.
5458         (Mark_Excluded_Sources): Mark excluded sources of the current
5459         project as suppressed.
5460         * prj.ads (Source_Data): New Boolean component Suppressed,
5461         defaulted to False
5463 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5465         * exp_intr.adb: Minor reformatting.
5467 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5469         * gnat_rm.texi: Document attribute Scalar_Storage_Order.
5471 2012-05-15  Javier Miranda  <miranda@adacore.com>
5473         * exp_ch3.adb (Build_Offset_To_Top): Modify the
5474         expansion of the offset_to_top functions to ensure that their
5475         profile is conformant with the profile specified in Ada.Tags. No
5476         change in functionality.
5478 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5480         * inline.adb (Subp_Info): Remove Count and Next_Nopred
5481         components, add Processed component and move around Next component.
5482         (Add_Call): Reverse meaning of Successors table to the natural one.
5483         (Add_Inlined_Body): Do not inline a package if it is in the main unit.
5484         (Add_Inlined_Subprogram): Do not add the subprogram to the list if the
5485         package is in the main unit. Do not recurse on the successors.
5486         (Add_Subp): Adjust to new contents of Subp_Info.
5487         (Analyze_Inlined_Bodies): Do not attempt
5488         to compute a topological order on the list of inlined subprograms,
5489         but compute the transitive closure from the main unit instead.
5490         (Get_Code_Unit_Entity): Always return the spec for a package.
5492 2012-05-15  Yannick Moy  <moy@adacore.com>
5494         * aspects.ads: Minor addition of comments to provide info on
5495         how to add new aspects.
5497 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5499         * osint.ads: Minor reformatting.
5501 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5503         * exp_ch5.adb, exp_pakd.adb, sem_util.adb, sem_util.ads
5504         (Expand_Assign_Array): Handle the case of a packed bit array within a
5505         record with reverse storage order (assign element by element in that
5506         case).
5507         (In_Reverse_Storage_Order_Record): New subprogram,
5508         code extracted from Exp_Pakd.
5510 2012-05-15  Yannick Moy  <moy@adacore.com>
5512         * a-ngelfu.ads: Add postconditions using Ada 2012
5513         aspect syntax, reflecting some of the RM requirements for these
5514         functions, from Annex A.5.1 or G.2.4.
5516 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5518         * adaint.c: Minor fix: move misplaced comment.
5520 2012-05-15  Doug Rupp  <rupp@adacore.com>
5522         * vms_data.ads: Enhance help for /IMMEDIATE_ERRORS to discourage
5523         use by customers.
5525 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5527         * a-exextr.adb: Add comment.
5529 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5531         * sem_ch3.adb: Minor reformatting (remove long dead code).
5533 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5535         * aspects.adb, aspects.ads: Add aspects for Convention, Export,
5536         External_Name, Import, and Link_Name.
5537         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): if the
5538         pragma comes from an aspect specification, the entity is the
5539         first argument.
5540         * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
5541         Pragma_Import): if the pragma comes from an aspect specification,
5542         the entity is the first argument, and the second has the value
5543         True by default.
5544         * sem_ch13.adb (Analyze_Aspect_Specifications): generate pragam
5545         for aspect Convention. Add placeholders for Link_Name and
5546         External_Name.
5548 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
5550         * exp_ch9.adb (Expand_N_Asynchronous_Select): Extract the statements
5551         of the abortable part and triggering alternative after being processed
5552         for controlled objects.
5553         (Expand_N_Timed_Entry_Call): Code and comment reformatting.
5555 2012-05-15  Robert Dewar  <dewar@adacore.com>
5557         * sem_util.adb: Minor code reorganization.
5559 2012-05-15  Robert Dewar  <dewar@adacore.com>
5561         * exp_ch7.adb, exp_ch11.adb, exp_ch11.ads: Minor reformatting.
5563 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5565         * sem_res.adb (Resolve): Enforce E.2.2(11/2) and E.2.2(12) for
5566         'Unrestricted_Access and 'Unchecked_Access (not just 'Access):
5567         even in those cases, a remote access type may only designate a
5568         remote subprogram.
5570 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5572         * sem_util.adb, sem_util.ads, sem_cat.adb: Minor refactoring.
5573         (Enclosing_Lib_Unit_Node): Rename to Enclosing_Comp_Unit_Node.
5575 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5577         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove obsolete
5578         checks on nested inlined subprograms.
5580 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5582         * fe.h (Get_RT_Exception_Name): Declare.
5584 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5586         * raise-gcc.c (db_region_for): Use %p + cast to avoid warnings.
5587         (get_region_description_for): Likewise.
5588         (db_action_for): Likewise.
5589         (get_call_site_action_for): Likewise.
5590         (get_ttype_entry_for): Remove useless 'const'.
5591         (PERSONALITY_FUNCTION): Add ATTRIBUTE_UNUSED on uw_exception_class.
5593 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5595         * a-exextr.adb (Unhandled_Exception_Terminate): Save occurrence
5596         on the stack to avoid a dynamic memory allocation.
5598 2012-05-15  Bob Duff  <duff@adacore.com>
5600         * exp_ch9.adb (Expand_N_Timed_Entry_Call): Move initialization of
5601         E_Stats and D_Stats after Process_Statements_For_Controlled_Objects,
5602         because those calls can destroy the Statements list.
5604 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5606         * fe.h (Get_RT_Exception_Name): Define.
5607         * types.ads (RT_Exception_Code): Update comment.
5608         * exp_ch11.adb, exp_ch11.ads (Get_RT_Exception_Name): New
5609         procedure to get the name of the rcheck subprograms.
5610         * a-except-2005.adb (Rcheck_xx): Rename.
5611         * a-except.adb Likewise, but also keep the old Rcheck_nn routines
5612         for bootstrap.
5613         * arith64.c (__gnat_mulv64): Use __gnat_rcheck_CE_Overflow_Check
5614         instead of __gnat_rcheck_10.
5615         * gcc-interface/trans.c (build_raise_check): Use Get_RT_Exception_Name
5616         to create the __gnat_rcheck routines name.
5617         * gcc-interface/Make-lang.in: Update dependencies.
5619 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5621         * exp_ch7.adb (Build_Exception_Handler): Save current
5622         occurrence only if -gnateE.
5623         (Build_Object_Declaration): Declare E_Id only if -gnateE.
5624         (Build_Raise_Statement): Call Raise_From_Controlled_Operation only if
5625         -gnateE (else raise PE).
5626         * s-soflin.adb (Save_Library_Occurrence): Handle null occurrence
5627         access.
5628         * a-except-2005.adb (Reraise_Library_Exception_If_Any): Call
5629         Raise_From_Controlled_Operation only if the saved occurrence is
5630         not null, otherwise raise PE.
5632 2012-05-15  Yannick Moy  <moy@adacore.com>
5634         * exp_alfa.ads: Add comments describing the Alfa mode.
5636 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5638         * s-soflin.ads, s-soflin.adb (Save_Library_Occurrence): Parameter
5639         E is now of type Exception_Occurrence_Access.
5640         * exp_ch7.ads, exp_ch7.adb (Build_Exception_Handler): Adjust generated
5641         call to Save_Library_Occurrence.
5643 2012-05-15  Thomas Quinot  <quinot@adacore.com>
5645         * exp_ch4.adb (Rewrite_Coextension): Use Insert_Action to
5646         insert temporary variable decl at the proper place in the tree.
5648 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
5650         * g-calend.adb (Split_At_Locale): New routine.
5651         (Time_Of_At_Locale): New routine.
5652         * g-calend.ads (Split_At_Locale): New routine.
5653         (Time_Of_At_Locale): New routine.
5655 2012-05-15  Gary Dismukes  <dismukes@adacore.com>
5657         * a-except.ads: Minor reformatting.
5659 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5661         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the loop
5662         parameter specification is part of a quantified expression, and it
5663         already carries a type, do not repeat the analysis to preserve
5664         type information: a range attribute reference may have been
5665         rewritten as a range with static bounds, and its re-analysis may
5666         type it as Integer by default, instead of the original index type.
5668 2012-05-15  Robert Dewar  <dewar@adacore.com>
5670         * s-osprim-mingw.adb: Minor reformatting.
5672 2012-05-15  Arnaud Charlet  <charlet@adacore.com>
5674         * a-except.adb, a-except.ads (Reraise_Library_Exception_If_Any): New.
5675         Mark this unit preelaborate.
5676         * s-soflin.ads: Make package Preelaborate.
5678 2012-05-15  Robert Dewar  <dewar@adacore.com>
5680         * s-osprim-mingw.adb, sem_eval.adb, a-calend-vms.ads: Minor reformatting
5682 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5684         * sem_eval.adb (Subtypes_Statically_Match): In Ada 2012, static
5685         matching requires matching of static subtype predicates as well.
5687 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
5689         * sem_case.adb (Analyze_Choices): If the subtype of the
5690         expression has a non-static predicate, the case alternatives
5691         must cover the base type.
5693 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5695         * a-calend-vms.ads: Add pragma export to Split and Time_Of.
5696         Merge comments from a-calend.ads to minimize differences.
5698 2012-05-15  Sergey Rybin  <rybin@adacore.com frybin>
5700         * gnat_ugn.texi: gnatmetric: add a small example that demonstrates
5701         the difference between control coupling and unit coupling.
5703 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5705         * bindgen.adb (Gen_Header): Remove code to emit LE_Set.
5706         (Gen_Finalize_Library): Replace test with
5707         a call to __gnat_reraise_library_exception_if_any.
5708         * s-soflin.ads (Library_Exception): Do not export.
5709         (Library_Exception_Set): Likewise.
5710         * a-except-2005.ads, a-except-2005.adb
5711         (Reraise_Library_Exception_If_Any): New procedure.
5713 2012-05-15  Geert Bosch  <bosch@adacore.com>
5715         * sem_ch9.adb (Allows_Lock_Free_Implementation): out or in out
5716         parameters can be access types as well, not just scalar types,
5717         so relax the test to Is_Elementary_Type.
5719 2012-05-15  Bob Duff  <duff@adacore.com>
5721         * s-atacco.ads s-atacco.adb: Replace pragma Elaborate_Body
5722         with pragma No_Body.
5723         (Xyz): Remove Xyz, which is apparently unnecessary.
5725 2012-05-15  Tristan Gingold  <gingold@adacore.com>
5727         * a-calend-vms.adb: Complete previous change.
5729 2012-05-15  Bob Duff  <duff@adacore.com>
5731         * s-win32.ads: Minor comment fix.
5732         * s-osprim-mingw.adb: Minor editing.
5734 2012-05-15  Robert Dewar  <dewar@adacore.com>
5736         * exp_ch9.adb, sem_ch9.adb, sem_ch13.adb: Minor reformatting.
5738 2012-05-15  Robert Dewar  <dewar@adacore.com>
5740         * g-comlin.adb, g-comlin.ads: Minor reformatting.
5742 2012-05-15  Vincent Pucci  <pucci@adacore.com>
5744         * aspects.adb, aspects.adb: Reordering of the Aspect_Idi list. New
5745         aspect Aspect_Lock_Free.
5746         * einfo.adb, einfo.ads: New flag Uses_Lock_Free (flag 188).
5747         (Set_Uses_Lock_Free): New routine.
5748         (Uses_Lock_Free): New routine.
5749         * exp_ch7.adb (Is_Simple_Protected_Type): Return False for
5750         lock-free implementation.
5751         * exp_ch9.adb (Allows_Lock_Free_Implementation): Moved to Sem_Ch9.
5752         (Build_Lock_Free_Unprotected_Subprogram_Body): Protected
5753         procedure uses __sync_synchronise. Check both Object_Size
5754         and Value_Size.
5755         (Expand_N_Protected_Body): Lock_Free_Active
5756         renames Lock_Free_On.
5757         (Expand_N_Protected_Type_Declaration):
5758         _Object field removed for lock-free implementation.
5759         (Install_Private_Data_Declarations): Protection object removed
5760         for lock-free implementation.
5761         (Make_Initialize_Protection):
5762         Protection object initialization removed for lock-free implementation.
5763         * rtsfind.ads: RE_Atomic_Synchronize and RE_Relaxed added.
5764         * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect_Lock_Free
5765         analysis added.
5766         * sem_ch9.adb (Allows_Lock_Free_Implementation): New routine.
5767         (Analyze_Protected_Body): Allows_Lock_Free_Implementation call added.
5768         (Analyze_Protected_Type_Declaration):
5769         Allows_Lock_Free_Implementation call added.
5770         (Analyze_Single_Protected_Declaration): Second analysis of
5771         aspects removed.
5772         * s-atopri.ads: Header added.
5773         (Atomic_Synchronize): New routine.
5775 2012-05-15  Robert Dewar  <dewar@adacore.com>
5777         * exp_ch7.ads: Add comment.
5779 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
5781         * a-calend.adb (Day_Of_Week): The routine once again treats
5782         all dates as historic.  (Formatting_Operations.Split): All
5783         calls to UTC_Time_Offset are now controlled through formal
5784         parameter Is_Historic.  (Formatting_Operations.Time_Of):
5785         All calls to UTC_Time_Offset are now handled through
5786         formal parameter Is_Historic.
5787         (Split): Update the call to Formatting_Operations.Split.
5788         (Time_Of): Update the call to Formatting_Operations.Time_Of.
5789         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
5790         (To_Strict_Tm): Update the call to Formatting_Operations.Split.
5791         * a-calend.ads (Split): Add new formal Is_Historic along with
5792         comment on usage. This routine is now exported for the purposes
5793         of GNAT.Calendar.Locale.
5794         (Time_Of): Remove defaults. Add new
5795         formal Is_Historic along with comment on usage. This routine is
5796         now exported for the purposes of GNAT.Calendar.Locale.
5797         * a-calend-vms.adb (Split): Update the call to
5798         Formatting_Operations.Split.
5799         (Time_Of): Update the call to Formatting_Operations.Time_Of.
5800         * a-calend-vms.ads (Split): Add new formal Is_Historic along
5801         with comment on usage.  (Time_Of): Remove defaults. Add new
5802         formal Is_Historic along with comment on usage.
5803         * a-calfor.adb (Split): Update the call to
5804         Formatting_Operations.Split.
5805         (Time_Of): Update the call to Formatting_Operations.Time_Of.
5807 2012-05-15  Vincent Celier  <celier@adacore.com>
5809         * prj-nmsc.adb (Add_Source): Always add the source if it is
5810         excluded, to avoid incorrect duplicate checks.
5812 2012-05-15  Yannick Moy  <moy@adacore.com>
5814         * sem_aux.ads: Correct typo.
5815         * sem_eval.adb (Compile_Time_Known_Value): Return False in Alfa
5816         mode for a deferred constant when outside of the scope of its
5817         full view.
5819 2012-05-15  Emmanuel Briot  <briot@adacore.com>
5821         * g-comlin.adb, g-comlin.ads (Define_Switch): Allow specifying the name
5822         of the argument, for the automatic help message.
5823         (Getopt): do not systematically initialize switches with string values
5824         to the empty string, when the user has already specified a default.
5826 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
5828         * gcc-interface/utils.c (DEF_ATTR_STRING): New.
5830 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5832         PR 53063
5833         * gcc-interface/misc.c: Include opts.h and options.h before tm.h.
5834         (gnat_handle_option): Call lang-specific generated function.
5836 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5838         * gcc-interface/lang.opt (I): Comment out help text with no effect.
5839         (nostdinc): Comment out help text with no effect.
5841 2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>
5843         * gcc-interface/Makefile.in (TOOLS_LIBS): Add ../../ggc-none.o.
5845 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5847         PR 53063
5848         * gcc-interface/misc.c (gnat_parse_file): Move before ...
5849         (gnat_handle_option): ... this. Use handle_generated_option.
5851 2012-05-10  Richard Guenther  <rguenther@suse.de>
5853         * gcc-interface/cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use.
5855 2012-05-06  Tristan Gingold  <gingold@adacore.com>
5857         * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
5859 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5861         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
5862         case, use the padded type if the renamed object has an unconstrained
5863         type with default discriminant.
5865 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5867         * gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant
5868         conditions with only one bound.
5869         (Raise_Error_to_gnu): Likewise.  New function extracted from...
5870         (gnat_to_gnu) <N_Raise_Constraint_Error>: ...here.  Call above function
5871         in regular mode only.
5873 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5875         * gcc-interface/misc.c (gnat_post_options): Disable caret by default.
5877 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5879         * gcc-interface/gigi.h (make_packable_type): Declare.
5880         (make_type_from_size): Likewise.
5881         (relate_alias_sets): Likewise.
5882         (maybe_pad_type): Adjust.
5883         (init_gnat_to_gnu): Delete.
5884         (destroy_gnat_to_gnu): Likewise.
5885         (init_dummy_type): Likewise.
5886         (destroy_dummy_type): Likewise.
5887         (init_gnat_utils): Declare.
5888         (destroy_gnat_utils): Likewise.
5889         (ceil_pow2): New inline function.
5890         * gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2.
5891         <object>: Pass True for the final processing of alignment and size.
5892         <E_Subprogram_Type>: Only create the TYPE_DECL for a padded return
5893         type if necessary.
5894         (round_up_to_align): Delete.
5895         (ceil_alignment): Likewise.
5896         (relate_alias_sets): Move to...
5897         (make_aligning_type): Likewise.
5898         (make_packable_type): Likewise.
5899         (maybe_pad_type): Likewise.
5900         (make_type_from_size): Likewise.
5901         * gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete.
5902         (struct pad_type_hash): New type.
5903         (pad_type_hash_table): New static variable.
5904         (init_gnat_to_gnu): Merge into...
5905         (init_dummy_type): Likewise.
5906         (init_gnat_utils): ...this.  New function.
5907         (destroy_gnat_to_gnu): Merge into...
5908         (destroy_dummy_type): Likewise.
5909         (destroy_gnat_utils): ...this.  New function.
5910         (pad_type_hash_marked_p): New function.
5911         (pad_type_hash_hash): Likewise.
5912         (pad_type_hash_eq): Likewise.
5913         (relate_alias_sets): ...here.
5914         (make_aligning_type): Likewise.
5915         (make_packable_type): Likewise.
5916         (maybe_pad_type): Likewise.  Change same_rm_size parameter into
5917         set_rm_size; do not set TYPE_ADA_SIZE if it is false.  Do not set
5918         null as Ada size.  Do not set TYPE_VOLATILE on the padded type.  If it
5919         is complete and has constant size, canonicalize it.  Bail out earlier
5920         if a warning need not be issued.
5921         (make_type_from_size): Likewise.
5922         <INTEGER_TYPE>: Bail out if size is too large
5923         (gnat_types_compatible_p): Do not deal with padded types.
5924         (convert): Compare main variants for padded types.
5925         * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils.
5926         (gnat_to_gnu): Do not convert at the end for a call to a function that
5927         returns an unconstrained type with default discriminant.
5928         (Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects.
5929         * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise.
5930         Do not use the padded type if it is BLKmode and the inner type is
5931         non-BLKmode.
5933 2012-05-02  Pascal Obry  <obry@adacore.com>
5935         Revert
5936         2012-02-24  Dave Korn  <dave.korn.cygwin@gmail.com>
5938         * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
5939         Windows-specific make variable.
5940         (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
5941         (install-gnatlib): Respect the above during installation when set,
5942         and also install any windows import library that has been built.
5943         (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
5944         build a corresponding import library.
5946 2012-04-30  Jan Hubicka  <jh@suse.cz>
5948         * gcc-interface/utils.c (rest_of_subprog_body_compilation): Update
5949         comment.
5950         (gnat_write_global_declarations): Use finalize_compilation_unit.
5952 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
5954         * gcc-interface/decl.c (gnat_to_gnu_entity): In type annotation mode,
5955         do not adjust the size of a tagged type if there is a representation
5956         clause on it.  Otherwise, round the adjustment up to the alignment
5957         of the first field and use the appropriate helper routine.
5958         (maybe_pad_type): Do not warn in type annotation mode on a tagged type.
5959         (gnat_to_gnu_field): Do not error out under the same circumstances.
5960         (annotate_rep): In type annotation mode, do not adjust the offset of
5961         components of a tagged type with representation clause.  Otherwise,
5962         round the adjustment up to the alignment of the first field.
5964 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
5966         * gcc-interface/utils.c (finish_record_type): Force the traditional GCC
5967         layout for bitfields on the type if it is packed or has a representation
5968         clause and an alternate layout is available.
5970 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
5972         * gcc-interface/gigi.h (mark_out_of_scope): Delete.
5973         (destroy_gnat_to_gnu): Declare.
5974         (destroy_dummy_type): Likewise.
5975         * gcc-interface/decl.c (mark_out_of_scope): Delete.
5976         * gcc-interface/utils.c (destroy_gnat_to_gnu): New function.
5977         (destroy_dummy_type): Likewise.
5978         * gcc-interface/trans.c (gnat_validate_uc_list): New variable.
5979         (gigi): Call validate_unchecked_conversion on gnat_validate_uc_list
5980         after the translation is completed.  Call destroy_gnat_to_gnu and
5981         destroy_dummy_type at the end.
5982         (Subprogram_Body_to_gnu): Do not call mark_out_of_scope.
5983         (gnat_to_gnu) <N_Block_Statement>: Likewise.
5984         <N_Validate_Unchecked_Conversion>: Do not process the node, only push
5985         it onto gnat_validate_uc_list.
5986         (validate_unchecked_conversion): New function.
5988 2012-04-26  Tristan Gingold  <gingold@adacore.com>
5990         * gcc-interface/Make-lang.in: Update dependencies.
5991         Remove s-traceb and tracebak objects from gnat1 and gnatbind (not used).
5992         Remove s-tasdeb and s-vaflop rules (not used).
5994 2012-04-26  Olivier Hainque  <hainque@adacore.com>
5996         * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Default to
5997         DOUBLE_TYPE_SIZE instead of LONG_DOUBLE_TYPE_SIZE.
5999 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
6001         * a-calend.adb (Day_Of_Week): Keep the internal
6002         usage of UTC_Time_Offset consistent with Time_Of and Split.
6004 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
6006         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Do not freeze
6007         the loop variable while preanalyzing a quantified expression.
6009 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
6011         * a-calend.adb (Split, Time_Of): Rename parameter Is_Ada_05
6012         to Use_TZ to better illustrate its function. Update all
6013         references to the parameter.
6014         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
6015         * a-calend.ads (Split, Time_Of): Rename parameter Is_Ada_05
6016         to Use_TZ to better illustrate its function. Update the related
6017         comment on usage.
6018         * a-calend-vms.adb (Split, Time_Of): Rename parameter
6019         Is_Ada_05 to Use_TZ to better illustrate its function. Update
6020         all references to the parameter.
6021         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
6022         * a-calend-vms.ads (Split, Time_Of): Rename parameter Is_Ada_05
6023         to Use_TZ to better illustrate its function. Update the related
6024         comment on usage.
6025         * a-calfor.adb (Split, Time_Of): Update the call to
6026         Formatting_Operations.Time_Of.
6027         * sysdep.c (__gnat_localtime_tzoff): Dereference pointer
6028         "is_historic" and rewrite the check as a comparison. Add a
6029         comment on flag values.
6031 2012-04-26  Robert Dewar  <dewar@adacore.com>
6033         * exp_ch2.adb, sem_ch8.adb: Minor reformatting.
6035 2012-04-26  Vasiliy Fofanov  <fofanov@adacore.com>
6037         * a-stzunb-shared.adb, gnat_ugn.texi, a-strunb-shared.adb,
6038         a-strunb-shared.ads, uintp.adb, a-stwiun-shared.adb,
6039         a-stwiun-shared.ads, a-cbhama.ads, vms_data.ads, a-cobove.adb,
6040         a-convec.adb, sem_ch13.adb, a-cbhase.ads: Fix common misuses of the
6041         word "then" where "than" should be used in English.
6043 2012-04-26  Robert Dewar  <dewar@adacore.com>
6045         * sem_ch5.adb (Check_Unreachable_Code): Skip past pragmas.
6047 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
6049         * s-finroo.ads: Remove with clause for
6050         Ada.Streams. Type Root_Controlled is now abstract tagged null
6051         record. Remove internal package Stream_Attributes. Root_Controlled
6052         doesn't need stream attribute redeclaration and avoids the
6053         dependency on streams.
6055 2012-04-26  Tristan Gingold  <gingold@adacore.com>
6057         * adaint.c (to_host_path_spec): Removed (unused).
6058         Minor reformatting.
6060 2012-04-26  Steve Baird  <baird@adacore.com>
6062         * gnat_rm.texi Improve description of Valid_Scalars attribute.
6064 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
6066         * sem_ch6.adb (Can_Override_Operator): If the formal is a
6067         generic type the operator cannot be overriding.
6069 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
6071         * sem_ch8.adb (Spec_Reloaded_For_Body): Check whether the type
6072         is declared in a package specification, and current unit is the
6073         corresponding package body. The use clauses themselves may be
6074         within a nested package.
6076 2012-04-26  Bob Duff  <duff@adacore.com>
6078         * exp_ch2.adb (Param_Entity): Take into account the case where
6079         the type of the entry parameter has a representation clause.
6081 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
6083         * gnat_ugn.texi: Tweak dimensionality doc.
6085 2012-04-26  Robert Dewar  <dewar@adacore.com>
6087         * sem_eval.adb: Minor reformatting.
6089 2012-04-26  Robert Dewar  <dewar@adacore.com>
6091         * einfo.adb, einfo.ads, sem_res.adb, sem_ch4.adb,
6092         sem_eval.adb: Minor reformatting.
6094 2012-04-26  Thomas Quinot  <quinot@adacore.com>
6096         * freeze.adb: Minor change in error wording.
6098 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
6100         * gnat_ugn.texi: Documentation on dimensional analysis.
6102 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
6104         * einfo.adb, einfo.ads: Remove synthesized attribute
6105         Proper_First_Index along with its associations in various nodes.
6106         (Proper_First_Index): Removed.
6107         * sem_ch4.adb (Analyze_Slice): Alphabetize constants. Add new
6108         local variable Index_Type. The index type of a string literal
6109         subtype is that of the stored low bound.
6110         * sem_eval (Get_Static_Length): Remove the use of Proper_First_Index.
6111         * sem_res.adb (Resolve_Slice): Alphabetize constants. Add
6112         new local variable Index_Type. The index type of a
6113         string literal subtype is that of the stored low bound.
6114         (Set_String_Literal_Subtype): Code reformatting.
6116 2012-04-26  Robert Dewar  <dewar@adacore.com>
6118         * exp_aggr.adb: Minor reformatting.
6120 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
6122         * exp_ch7.adb (Expand_Cleanup_Actions): Update the call to
6123         Requires_Cleanup_Actions.
6124         * exp_util.adb (Requires_Cleanup_Actions (List_Id; Boolean;
6125         Boolean)): Rename formal parameter For_Package to Lib_Level to
6126         better reflect its purpose. Update the related comment and all
6127         occurrences of For_Package in the body.
6128         (Requires_Cleanup_Actions
6129         (Node_Id; Boolean)): Add new formal parameter Lib_Level. Add
6130         local constant At_Lib_Level to keep monitor whether the path
6131         taken from the top-most context to the current construct involves
6132         package constructs. Update all calls to Requires_Cleanup_Actions.
6133         * exp_util.ads (Requires_Cleanup_Actions): Add new formal
6134         parameter Lib_Level and associated comment.
6136 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
6138         * sem_ch6.adb (Process_Formals): If the type of the formal is
6139         a non null access type, mark the generated subtype as having a
6140         delayed freeze only if the designated type is not frozen yet.
6142 2012-04-26  Vincent Celier  <celier@adacore.com>
6144         * prj-attr.adb: New package Clean with attributes
6145         Object_Artifact_Extensions and Source_Artifact_Extensions.
6146         * prj-nmsc.adb (Process_Clean): Process new package Clean
6147         * prj.ads (Language_Config): New components
6148         Clean_Object_Artifacts and Clean_Source_Artifacts.
6149         * snames.ads-tmpl: New standard names Clean,
6150         Object_Artifact_Extensions and Source_Artifact_Extensions.
6152 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
6154         * einfo.adb (Proper_First_Index): Moved from Sem_Util.
6155         * einfo.ads: Add new synthesized attribute Proper_First_Index
6156         along with usage in nodes.
6157         (Proper_First_Index): Moved from Sem_Util.
6158         * sem_util.ads, sem_util.adb (Proper_First_Index): Moved to Einfo.
6160 2012-04-26  Gary Dismukes  <dismukes@adacore.com>
6162         * layout.adb (Layout_Component_List): Test for the case of a
6163         single variant and the size of its component list was computed
6164         as an integer literal, and use that size (which is in bits)
6165         as is rather than converting to storage units.
6167 2012-04-26  Robert Dewar  <dewar@adacore.com>
6169         * exp_aggr.adb: Minor reformatting.
6171 2012-04-26  Robert Dewar  <dewar@adacore.com>
6173         * sem_util.adb: Minor reformatting.
6175 2012-04-26  Thomas Quinot  <quinot@adacore.com>
6177         * exp_aggr.adb, exp_pakd.adb (Setup_Inline_Packed_Array_Reference,
6178         Packed_Array_Aggregate_Handled.Get_Component_Val):
6179         Reverse bit numbering within PAT when Reverse_Storage_Order
6180         applies to the enclosing record.
6182 2012-04-26  Thomas Quinot  <quinot@adacore.com>
6184         * freeze.adb (Freeze_Record_Type): Improve error message for
6185         Scalar_Storage_Order inconsistent with Bit_Order.
6187 2012-04-25  Gary Dismukes  <dismukes@adacore.com>
6189         * exp_ch9.adb: Add comments on the usage of the
6190         lock-free data structures.
6192 2012-04-25  Vincent Pucci  <pucci@adacore.com>
6194         * exp_intr.adb (Expand_Shift): Convert the left
6195         operand and the operator when the type of the call differs from
6196         the type of the operator.
6198 2012-04-25  Geert Bosch  <bosch@adacore.com>
6200         * stand.ads: Minor comment fix.
6202 2012-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
6204         * sem_ch4.adb (Analyze_Slice): Handle the case where the prefix
6205         is a string literal. Retrieve the first index from the base type
6206         when slicing a string literal.
6207         * sem_ch12.adb (Check_Private_View): Move the initialization
6208         of the type inside the loop to reflect the changing index.
6209         * sem_eval.adb (Eval_Relational_Op): Retrieve the first index
6210         from the base type when dealing with a string literal.
6211         * sem_res.adb (Resolve_Slice): Retrieve the first index from
6212         the base type when slicing a string literal.
6213         * sem_util.adb (Is_Internally_Generated_Renaming): New routine.
6214         (Is_Object_Reference): String literals may act
6215         as object references only when they are renamed internally.
6216         (Proper_First_Index): New routine.
6217         * sem_util.ads (Proper_First_Index): New routine.
6219 2012-04-25  Robert Dewar  <dewar@adacore.com>
6221         * sem_ch3.adb, csinfo.adb, lib-writ.adb, sem_ch12.adb,
6222         lib-xref.adb: Minor reformatting.
6224 2012-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
6226         * exp_ch9.adb: Rename Lock_Free_Sub_Type
6227         to Lock_Free_Subprogram. Remove type Subprogram_Id.
6228         Rename LF_Sub_Table to Lock_Free_Subprogram_Table.
6229         (Allow_Lock_Free_Implementation): Renamed to
6230         Allows_Lock_Free_Implementation.  Update the comment on
6231         lock-free restrictions. Code clean up and restructuring.
6232         (Build_Lock_Free_Protected_Subprogram_Body): Update the
6233         profile and related comments. Code clean up and restructuring.
6234         (Build_Lock_Free_Unprotected_Subprogram_Body): Update the
6235         profile and related comments. Code clean up and restructuring.
6236         (Comp_Of): Removed.
6238 2012-04-25  Vincent Celier  <celier@adacore.com>
6240         * sem_ch12.adb (Inherit_Context): Compare library units, not
6241         names of units, when checking if a unit is already in the context.
6243 2012-04-25  Thomas Quinot  <quinot@adacore.com>
6245         * sem_ch3.adb: Reverse_Storage_Order must be propagated to
6246         untagged derived record types.
6248 2012-04-25  Ed Schonberg  <schonberg@adacore.com>
6250         * lib-xref.adb: Adjust position of end label.
6252 2012-04-22  Jan Hubicka  <jh@suse.cz>
6254         * gcc-interface/utils.c (gnat_write_global_declarations): Do not mark
6255         needed node.
6257 2012-04-20  Jan Hubicka  <jh@suse.cz>
6259         * gcc-interface/utils.c (gnat_write_global_declarations): Update for new
6260         force_output placement.
6262 2012-04-14  Jan Hubicka  <jh@suse.cz>
6264         * gcc-interface/trans.c (finalize_nrv): Update field referenced for new
6265         cgraph/varpool layout.
6267 2012-04-09  Mike Stump  <mikestump@comcast.net>
6269         * a-assert.ads: Remove execute permission.
6270         * a-chacon.ads: Likewise.
6271         * a-coteio.ads: Likewise.
6272         * a-envvar.ads: Likewise.
6273         * a-exetim-mingw.ads: Likewise.
6274         * a-fzteio.ads: Likewise.
6275         * a-izteio.ads: Likewise.
6276         * a-lcteio.ads: Likewise.
6277         * a-llctio.ads: Likewise.
6278         * a-scteio.ads: Likewise.
6279         * a-suenco.ads: Likewise.
6280         * a-suenst.ads: Likewise.
6281         * a-suewst.ads: Likewise.
6282         * a-suezst.ads: Likewise.
6283         * a-tirsfi.ads: Likewise.
6284         * a-wichha.ads: Likewise.
6285         * a-zchara.ads: Likewise.
6286         * a-zchhan.ads: Likewise.
6287         * a-zchuni.ads: Likewise.
6288         * a-zrstfi.ads: Likewise.
6289         * aspects.ads: Likewise.
6290         * g-byorma.ads: Likewise.
6291         * g-decstr.ads: Likewise.
6292         * g-encstr.ads: Likewise.
6293         * g-spchge.ads: Likewise.
6294         * g-u3spch.ads: Likewise.
6295         * g-wispch.ads: Likewise.
6296         * g-zspche.ads: Likewise.
6297         * namet-sp.ads: Likewise.
6298         * s-os_lib.ads: Likewise.
6299         * s-regexp.ads: Likewise.
6300         * s-regpat.ads: Likewise.
6301         * s-string.ads: Likewise.
6302         * s-tasloc.ads: Likewise.
6303         * s-utf_32.ads: Likewise.
6304         * sem_aux.ads: Likewise.
6305         * a-assert.adb: Likewise.
6306         * a-chacon.adb: Likewise.
6307         * a-envvar.adb: Likewise.
6308         * a-exetim-mingw.adb: Likewise.
6309         * a-suenco.adb: Likewise.
6310         * a-suenst.adb: Likewise.
6311         * a-suewst.adb: Likewise.
6312         * a-suezst.adb: Likewise.
6313         * a-tirsfi.adb: Likewise.
6314         * a-wichha.adb: Likewise.
6315         * a-zchhan.adb: Likewise.
6316         * a-zchuni.adb: Likewise.
6317         * a-zrstfi.adb: Likewise.
6318         * aspects.adb: Likewise.
6319         * g-byorma.adb: Likewise.
6320         * g-decstr.adb: Likewise.
6321         * g-encstr.adb: Likewise.
6322         * g-spchge.adb: Likewise.
6323         * g-u3spch.adb: Likewise.
6324         * g-wispch.adb: Likewise.
6325         * g-zspche.adb: Likewise.
6326         * namet-sp.adb: Likewise.
6327         * s-except.adb: Likewise.
6328         * s-inmaop-vxworks.adb: Likewise.
6329         * s-os_lib.adb: Likewise.
6330         * s-regexp.adb: Likewise.
6331         * s-regpat.adb: Likewise.
6332         * s-string.adb: Likewise.
6333         * s-tasloc.adb: Likewise.
6334         * s-utf_32.adb: Likewise.
6335         * s-wchcon.adb: Likewise.
6336         * sem_aux.adb: Likewise.
6338 2012-04-02  Robert Dewar  <dewar@adacore.com>
6340         * s-atopri.ads: Minor reformatting.
6342 2012-04-02  Thomas Quinot  <quinot@adacore.com>
6344         * sem_util.adb: Minor reformatting, minor code cleanup.
6346 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
6348         * lib-xref.adb (Generate_Reference): For a reference to an
6349         operator symbol, set the sloc to point to the first character
6350         of the operator name, and not to the initial quaote.
6351         (Output_References): Ditto for the definition of an operator
6352         symbol.
6354 2012-04-02  Vincent Celier  <celier@adacore.com>
6356         * ali.adb (Scan_Ali): Recognize Z lines. Set
6357         Implicit_With_From_Instantiation to True in the With_Record for
6358         Z lines.
6359         * ali.ads (With_Record): New Boolean component
6360         Implicit_With_From_Instantiation, defaulted to False.
6361         * csinfo.adb: Indicate that Implicit_With_From_Instantiation
6362         is special
6363         * lib-writ.adb (Write_ALI): New array Implicit_With.
6364         (Collect_Withs): Set Implicit_With for the unit is it is not Yes.
6365         (Write_With_Lines): Write a Z line instead of a W line if
6366         Implicit_With is Yes for the unit.
6367         * sem_ch12.adb (Inherit_Context): Only add a unit in the context
6368         if it is not there yet.
6369         * sinfo.ads: New flag Implicit_With_From_Instantiation (Flag12)
6370         added.
6372 2012-04-02  Yannick Moy  <moy@adacore.com>
6374         * osint.adb, osint.ads (Add_Default_Search_Dirs): Add library
6375         search dirs in file specified with option -gnateO.
6377 2012-04-02  Robert Dewar  <dewar@adacore.com>
6379         * sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb: Minor
6380         reformatting.
6382 2012-04-02  Olivier Hainque  <hainque@adacore.com>
6384         * g-sse.ads: Add x86-solaris and x86_64-darwin to the set of
6385         platforms where the use of this spec is supported. Add current
6386         year to the copyright notice.
6387         * gcc-interfaces/Makefile.in: Add g-sse.o and g-ssvety.o to
6388         EXTRA_GNATRTL_NONTASKING_OBJS on x86 32/64 targets that support
6389         it and where they were missing (x86-solaris, x86-freebsd,
6390         x86_64-freebsd, and x86-darwin).
6392 2012-04-02  Gary Dismukes  <dismukes@adacore.com>
6394         * bindgen.adb (Gen_Ada_Init): When compiling for the AAMP small
6395         library, where we no longer suppress the Standard_Library,
6396         generate an empty body rather than the usual generation of
6397         assignments to imported globals, since those aren't present in
6398         the small library.
6400 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
6402         * sinfo.ads: Minor documentation fix.
6404 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
6406         * sem_res.adb (Resolve_Conditional_Expression): Add local variables
6407         Else_Typ and Then_Typ. Add missing type conversions to the "then" and
6408         "else" expressions when their respective types are scalar.
6410 2012-04-02  Vincent Pucci  <pucci@adacore.com>
6412         * exp_ch9.adb: Reordering of the local subprograms. New Table
6413         for the lock free implementation that maps each protected
6414         subprograms with the protected component it references.
6415         (Allow_Lock_Free_Implementation): New routine. Check if
6416         the protected body enables the lock free implementation.
6417         (Build_Lock_Free_Protected_Subprogram_Body): New routine.
6418         (Build_Lock_Free_Unprotected_Subprogram_Body): New routine.
6419         (Comp_Of): New routine.
6420         * Makefile.rtl: Add s-atopri.o
6421         * debug.adb: New compiler debug flag -gnatd9 for lock free
6422         implementation.
6423         * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
6424         RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
6425         RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
6426         RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, RE_Uint8,
6427         RE_Uint16, RE_Uint32, RE_Uint64 added.
6428         * s-atropi.ads: New file. Defines atomic primitives used
6429         by the lock free implementation.
6431 2012-04-02  Emmanuel Briot  <briot@adacore.com>
6433         * g-expect.adb (Expect_Internal): Fix leak of the input file descriptor.
6435 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
6437         * exp_ch4.adb (Expand_N_Quantified_Expression): Reimplemented.
6438         The expansion no longer uses the copy of the original QE created
6439         during analysis.
6440         * sem.adb (Analyze): Add processing for loop parameter specifications.
6441         * sem_ch4.adb (Analyze_Quantified_Expression): Reimplemented. The
6442         routine no longer creates a copy of the original QE. All
6443         constituents of a QE are now preanalyzed and resolved.
6444         * sem_ch5.adb (Analyze_Iteration_Scheme): Remove the guard which
6445         bypasses all processing when the iteration scheme is related to a
6446         QE. Relovate the code which analyzes loop parameter specifications
6447         to a separate routine.  (Analyze_Iterator_Specification):
6448         Preanalyze the iterator name. This action was originally
6449         done in Analyze_Iteration_Scheme. Update the check which
6450         detects an iterator specification in the context of a QE.
6451         (Analyze_Loop_Parameter_Specification): New routine. This
6452         procedure allows for a stand-alone analysis of a loop parameter
6453         specification without the need of a parent iteration scheme. Add
6454         code to update the type of the loop variable when the range
6455         generates an itype and the context is a QE.
6456         (Pre_Analyze_Range): Renamed to Preanalyze_Range. Update all references
6457         to the routine.
6458         * sem_ch5.ads: Code reformatting.
6459         (Analyze_Loop_Parameter_Specification): New routine.
6460         * sem_ch6.adb (Fully_Conformant_Expressions): Detect a case
6461         when establishing conformance between two QEs utilizing different
6462         specifications.
6463         * sem_res.adb (Proper_Current_Scope): New routine.
6464         (Resolve): Do not resolve a QE as there is nothing to be done now.
6465         Ignore any loop scopes generated for QEs when detecting an expression
6466         function as the scopes are cosmetic and do not appear in the tree.
6467         (Resolve_Quantified_Expression): Removed. All resolution of
6468         QE constituents is now performed during analysis. This ensures
6469         that loop variables appearing in array aggregates are properly
6470         resolved.
6472 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
6474         * sem_util.adb (Build_Default_Subtype): If the base type is
6475         private and its full view is available, use the full view in
6476         the subtype declaration.
6478 2012-04-02  Jose Ruiz  <ruiz@adacore.com>
6480         * gnat_ugn.texi: Add some minimal documentation about how to
6481         use GNATtest for cross platforms.
6483 2012-04-02  Vincent Celier  <celier@adacore.com>
6485         * opt.ads (Object_Path_File_Name): New variable.
6486         * prj-attr.adb: New Compiler attribute Object_Path_Switches.
6487         * prj-nmsc.adb (Process_Compiler): Recognize new attribute
6488         Object_Path_Switches.
6489         * snames.ads-tmpl: New standard name Object_Path_Switches.
6490         * switch-c.adb (Scan_Front_End_Switches): Recognize new switch
6491         -gnateO= and put its value in Opt.Object_Path_File_Name.
6493 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
6495         * exp_ch7.adb (Process_Declarations): Detect a case where
6496         a source object was initialized by another source object,
6497         but the expression was rewritten as a class-wide conversion
6498         of Ada.Tags.Displace.
6499         * exp_util.adb (Initialized_By_Ctrl_Function): Removed.
6500         (Is_Controlled_Function_Call): New routine.
6501         (Is_Displacement_Of_Ctrl_Function_Result): Removed.
6502         (Is_Displacement_Of_Object_Or_Function_Result): New routine.
6503         (Is_Source_Object): New routine.
6504         (Requires_Cleanup_Actions): Detect a case where a source object was
6505         initialized by another source object, but the expression was rewritten
6506         as a class-wide conversion of Ada.Tags.Displace.
6507         * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed.
6508         (Is_Displacement_Of_Object_Or_Function_Result): New routine.
6510 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
6512         * sem_res.adb (Resolve_Call): A call to an expression function
6513         does not freeze if it appears in a different scope from the
6514         expression function itself. Such calls appear in the generated
6515         bodies of other expression functions, or in pre/postconditions
6516         of subsequent subprograms.
6518 2012-04-02  Yannick Moy  <moy@adacore.com>
6520         * lib-xref-alfa.adb: Code clean up.
6522 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
6524         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Do not suppress
6525         style checks, because the subprogram instance itself may contain
6526         violations of syle rules.
6527         * style.adb (Missing_Overriding): Check for missing overriding
6528         indicator on a subprogram instance.
6530 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
6532         * sem_ch6.adb (Last_Implicit_Declaration): New routine.
6533         (Process_PPCs): Insert the body of _postconditions after the
6534         last internally generated declaration. This ensures that actual
6535         subtypes created for formal parameters are visible and properly
6536         frozen as _postconditions may reference them.
6538 2012-04-02  Robert Dewar  <dewar@adacore.com>
6540         * einfo.adb (First_Component_Or_Discriminant) Now applies to
6541         all types with discriminants, not just records.
6542         * exp_attr.adb (Expand_N_Attribute): Add Scalar_Values handling
6543         for arrays, scalars and non-variant records.
6544         * sem_attr.adb (Analyze_Attribute): Handle Valid_Scalars
6545         * sem_attr.ads (Valid_Scalars): Update description
6546         * sem_util.ads, sem_util.adb (No_Scalar_Parts): New function.
6548 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6550         Revert
6551         2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
6553         * gcc-interface/decl.c (SS_MARK_NAME): New define.
6554         (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
6555         whose name is SS_MARK_NAME.
6557 2012-03-30  Robert Dewar  <dewar@adacore.com>
6559         * exp_ch5.adb, sem_util.adb, exp_ch4.adb: Minor comment updates.
6561 2012-03-30  Yannick Moy  <moy@adacore.com>
6563         * lib-xref-alfa.adb (Add_Alfa_File): Treat possibly 2 units at the same
6564         time, putting all scopes in the same Alfa file.
6565         (Add_Alfa_Xrefs): Correct errors in comparison function. Correct value
6566         of Def component.
6567         (Collect_Alfa): Possibly pass 2 units to Add_Alfa_File.
6569 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
6571         * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Handle a case where
6572         a build-in-place call appears as Prefix'Reference'Reference.
6574 2012-03-30  Yannick Moy  <moy@adacore.com>
6576         * lib-xref-alfa.adb: Minor refactoring to remove internal package.
6578 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
6580         * sem_ch5.adb (Analyze_Iteration_Scheme): Preanalyze the subtype
6581         definition of a loop when the context is a quantified expression.
6583 2012-03-30  Vincent Celier  <celier@adacore.com>
6585         * prj.ads: Minor comment update.
6587 2012-03-30  Yannick Moy  <moy@adacore.com>
6589         * lib-xref-alfa.adb, alloc.ads, lib-xref.ads: Minor addition of
6590         comments and refactoring.
6592 2012-03-30  Robert Dewar  <dewar@adacore.com>
6594         * lib-xref.adb, lib-xref-alfa.adb: Minor reformatting & code
6595         reorganization.
6597 2012-03-30  Yannick Moy  <moy@adacore.com>
6599         * lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit
6600         instead of Get_Source_Unit to get file for reference.
6601         (Traverse_Compilation_Unit): Do not add scopes for generic units.
6602         * lib-xref.adb (Generate_Reference): Use Get_Code_Unit instead
6603         of Get_Source_Unit to get file for reference.
6604         * sem_ch12.adb (Analyze_Package_Instantiation): Enable
6605         instantiation in Alfa mode.
6607 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
6609         * exp_ch7.adb (Process_Declarations): Replace
6610         the call to Is_Null_Access_BIP_Func_Call with
6611         Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
6612         * exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed.
6613         (Is_Secondary_Stack_BIP_Func_Call): New routine.
6614         (Requires_Cleanup_Actions): Replace
6615         the call to Is_Null_Access_BIP_Func_Call with
6616         Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
6617         * exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed.
6618         (Is_Secondary_Stack_BIP_Func_Call): New routine.
6620 2012-03-30  Yannick Moy  <moy@adacore.com>
6622         * lib-xref-alfa.adb, lib-xref.adb: Code clean ups.
6624 2012-03-30  Gary Dismukes  <dismukes@adacore.com>
6626         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a
6627         loop entity which is rewritten as a renaming
6628         of the indexed array, explicitly mark the entity as needing
6629         debug info so that Materialize entity will be set later by
6630         Debug_Renaming_Declaration when the renaming is expanded.
6632 2012-03-30  Robert Dewar  <dewar@adacore.com>
6634         * sem_attr.ads: Update comment.
6636 2012-03-30  Vincent Celier  <celier@adacore.com>
6638         * prj.ads: New Dependency_Kind: ALI_Closure.
6640 2012-03-30  Thomas Quinot  <quinot@adacore.com>
6642         * exp_pakd.adb: Minor reformatting.
6644 2012-03-30  Yannick Moy  <moy@adacore.com>
6646         * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence
6647         of compilation unit for unit in Sdep_Table.
6649 2012-03-30  Thomas Quinot  <quinot@adacore.com>
6651         * freeze.adb (Freeze_Record_Type): For a type with reversed bit
6652         order and reversed storage order, disable front-end relayout.
6654 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
6656         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Copy
6657         the TYPE_PACKED flag from the base type.
6659 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
6661         * gcc-interface/decl.c (SS_MARK_NAME): New define.
6662         (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
6663         whose name is SS_MARK_NAME.
6665 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
6667         * gcc-interface/utils.c (add_parallel_type): Take a TYPE instead of a
6668         DECL and adjust.  Move around.
6669         (has_parallel_type): New predicate.
6670         (rest_of_record_type_compilation): Return early if the type already
6671         has a parallel type.
6672         * gcc-interface/gigi.h (add_parallel_type): Adjust.
6673         * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes.
6675 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
6677         * gcc-interface/utils.c (finish_record_type): Return early for padded
6678         types and tidy up.
6680 2012-03-20  Arnaud Charlet  <charlet@adacore.com>
6682         * hlo.ads, hlo.adb: Removed, no longer used.
6683         * gcc-interface/Make-lang.in: Remove hlo.o. Update dependencies.
6684         * gcc-interface/Makefile.in: Remove EXTRA_LIBGNAT_SRCS (temporarly)
6685         and compute it from EXTRA_LIBGNAT_OBJS.
6686         Clean up comments, reorder LIBGNAT_SRCS and LIBGNAT_OBJS.
6688 2012-03-20  Yannick Moy  <moy@adacore.com>
6690         * gnat_rm.texi, sem_attr.ads: Update documentation.
6692 2012-03-19  Yannick Moy  <moy@adacore.com>
6694         * sem_ch6.adb: Minor code clean up.
6696 2012-03-19  Vincent Celier  <celier@adacore.com>
6698         * make.adb (Scan_Make_Arg): Make sure all significant -m switches
6699         on the command line are counted.
6701 2012-03-19  Robert Dewar  <dewar@adacore.com>
6703         * sem_elab.adb (Generate_Elab_Warnings): Fix spec, fix attribute
6704         reference case
6706 2012-03-19  Robert Dewar  <dewar@adacore.com>
6708         * par-ch4.adb (Check_Bad_Exp): New procedure
6710 2012-03-19  Robert Dewar  <dewar@adacore.com>
6712         * exp_attr.adb, sem_attr.adb, sem_attr.ads, snames.ads-tmpl: Add
6713         initial framework for Valid_Scalars attribute.
6715 2012-03-19  Robert Dewar  <dewar@adacore.com>
6717         * scng.adb (Scan): Recognize incorrect preprocessor directive
6719 2012-03-19  Robert Dewar  <dewar@adacore.com>
6721         * atree.adb (Allocate_Initialize_Node): Use Num_Extension_Nodes
6722         * atree.ads (Num_Extension_Nodes): New variable
6723         * debug.adb: New debug flag -gnatd.N
6724         * gnat1drv.adb (Adjust_Global_Switches): Adjust
6725         Num_Extension_Nodes if -gnatd.N set
6727 2012-03-19  Eric Botcazou  <ebotcazou@adacore.com>
6729         * einfo.ads: Minor update to First_Rep_Item and Has_Gigi_Rep_Item
6730         descriptions.
6732 2012-03-19  Robert Dewar  <dewar@adacore.com>
6734         * opt.ads: Remove HLO_Active flag.
6735         * sem.adb: Remove call of high level optimizer.
6736         * sem.ads (New_Nodes_OK): Removed.
6737         * sem_ch10.adb: Remove references to New_Nodes_OK.
6738         * switch-c.adb: Remove handling of -gnatH switch.
6740 2012-03-19  Yannick Moy  <moy@adacore.com>
6742         * sem_ch6.adb (Check_Subprogram_Contract): Do not emit warnings
6743         on trivially True or False postconditions and Ensures components
6744         of contract-cases.
6746 2012-03-19  Robert Dewar  <dewar@adacore.com>
6748         * gnat_ugn.texi: Fix index entry for -gnatei (now we have
6749         ug_words entry).
6751 2012-03-19  Hristian Kirtchev  <kirtchev@adacore.com>
6753         * sem_ch3.adb (Get_Discriminant_Value): Instead of looking
6754         at the immediate correcponsing discriminant, traverse a
6755         potential chain of discriminants produced by type derivations.
6756         (Root_Corresponding_Discriminant): Traverse a chain of inherited
6757         discriminants and return the topmost discriminant.
6759 2012-03-19  Bob Duff  <duff@adacore.com>
6761         * debug.adb: Minor comment change.
6762         * gnat_ugn.texi: Update documentation for elaboration regarding
6763         indirect calls.
6765 2012-03-19  Gary Dismukes  <dismukes@adacore.com>
6767         * exp_ch3.adb (Expand_N_Object_Declaration): In
6768         the case of an object of a class-wide interface type, where the
6769         declaration is rewritten as a renaming, call Set_Debug_Info_Needed
6770         on the renaming entity so that Materialize_Entity will be
6771         set. Also, change existing call (for other than interface cases)
6772         to call Set_Debug_Info_Needed rather than Set_Needs_Debug_Info
6773         (as specified for that flag).
6775 2012-03-19  Hristian Kirtchev  <kirtchev@adacore.com>
6777         * sem_ch4.adb (Analyze_Allocator): Detect an allocator generated
6778         by the build-in-place machinery where the designated type is
6779         indefinite, but the underlying type is not. Do not emit errors
6780         related to missing initialization in this case.
6782 2012-03-19  Robert Dewar  <dewar@adacore.com>
6784         * gnat_ugn.texi: Add documentation for -gnateinnn switch.
6785         * sem_elab.adb, put_alfa.adb, lib-xref-alfa.adb: Minor reformatting.
6786         * sem_prag.adb: Minor comment update.
6788 2012-03-15  Robert Dewar  <dewar@adacore.com>
6790         * errout.ads: Add entry for translating -gnateinn to
6791         /MAX_INSTANTIATIONS for VMS.
6792         * hostparm.ads (Max_Instantiations): Moved to Opt.
6793         * opt.ads (Maximum_Instantiations): Moved from Hostparm, and renamed.
6794         * sem_ch12.adb (Maximum_Instantiations): New name of
6795         Max_Instantiations (Analyze_Package_Instantiation): Change error
6796         msg for too many instantiations (mention -gnateinn switch).
6797         * switch-c.adb (Scan_Front_End_Switches): Implement -gnateinn switch.
6798         * switch.ads: Minor comment update.
6799         * usage.adb (Usage): Output line for -maxeinn switch.
6800         * vms_data.ads: Add entry for MAX_INSTANTIATIONS (-gnateinn).
6802 2012-03-15  Yannick Moy  <moy@adacore.com>
6804         * alfa.ads Update the decription of ALI sections.
6805         (Alfa_File_Record): Add a component Unit_File_Name to store the
6806         unit file name for subunits.
6807         * get_alfa.adb, put_alfa.adb Adapt to the possible presence of
6808         a unit file name.
6809         * lib-xref-alfa.adb (Add_Alfa_File): For subunits, retrieve the
6810         file name of the unit.
6812 2012-03-15  Yannick Moy  <moy@adacore.com>
6814         * sem_ch6.adb (Check_Subprogram_Contract): Do
6815         not issue warning on missing 'Result in postcondition if all
6816         postconditions and contract-cases already get a warning for only
6817         referring to pre-state.
6819 2012-03-15  Bob Duff  <duff@adacore.com>
6821         * debug.adb: Add new debug switch -gnatd.U, which disables the
6822         support added below, in case someone trips over a cycle, and needs
6823         to disable this.
6824         * sem_attr.adb (Analyze_Access_Attribute):
6825         Treat Subp'Access as a call for elaboration purposes.
6826         * sem_elab.ads, sem_elab.adb (Check_Elab_Call): Add support
6827         for Subp'Access.
6829 2012-03-15  Vincent Pucci  <pucci@adacore.com>
6831         * sem.ads, sem.adb (Preanalyze): New routine.
6832         * sem_ch4.adb (Analyze_Quantified_Expression): Call to the
6833         Preanalyze routine in Sem added.  Renaming of Needs_Expansion
6834         into Need_Preanalysis.
6835         * sem_ch6.adb (Preanalyze): Removed.
6837 2012-03-15  Robert Dewar  <dewar@adacore.com>
6839         * sem_ch4.adb (Analyze_Quantified_Expression): Add comment.
6840         * sem_prag.adb: Minor comment additions.
6841         * sem_attr.adb (Check_First_Last_Valid): Make sure prefix type
6842         is frozen.
6844 2012-03-15  Vincent Pucci  <pucci@adacore.com>
6846         * sem_ch4.adb (Analyze_Quantified_Expression):
6847         Preanalyze the condition when the quantified expression will be
6848         further expanded.
6850 2012-03-15  Yannick Moy  <moy@adacore.com>
6852         * sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, sem_ch6.adb,
6853         sem_warn.adb: Minor refactoring, renaming Case_Pragma in CTC_Pragma,
6854         to refer to both Test_Case pragma and Contract_Case pragma (same
6855         acronym as in Spec_CTC_List).
6857 2012-03-15  Robert Dewar  <dewar@adacore.com>
6859         * sem_prag.adb, sem_prag.ads, sem_util.ads, sem_attr.adb, sem_ch6.adb,
6860         sem_warn.adb: Minor reformatting.
6862 2012-03-15  Hristian Kirtchev  <kirtchev@adacore.com>
6864         * exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over
6865         selector names as the function call always appears at the top selected
6866         component.
6868 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
6870         * sem_ch12.adb (Validate_Access_Subprogram_Instance): keep
6871         Mode_Conformance check for older versions of the language.
6873 2012-03-15  Yannick Moy  <moy@adacore.com>
6875         * gnat_ugn.texi Document the extension of option -gnatw.t.
6876         * sem_ch3.adb (Analyze_Declaration): Check for suspicious
6877         contracts only after contract cases have been semantically
6878         analyzed.
6879         * sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures
6880         components of contract cases for detecting suspicious contracts.
6882 2012-03-15  Yannick Moy  <moy@adacore.com>
6884         * aspects.adb, aspects.ads (Aspect_Id): New GNAT aspect
6885         Aspect_Contract_Case.
6886         * gnat_rm.texi Document the new pragma/aspect
6887         Contract_Case. Correct the documentation of the existing
6888         pragma/aspect Test_Case with the new semantics.
6889         * sem_attr.adb (Analyze_Attribute): Allow use of 'Result in the
6890         Ensures component of a Contract_Case pragma.
6891         * sem_ch13.adb (Analyze_Aspect_Specifications): Check new aspect
6892         and translate it into a pragma.
6893         (Check_Aspect_At_Freeze_Point): Take into account the new aspect.
6894         * sem_ch3.adb, sinfo.adb, sinfo.ads Renaming of TC (for test case)
6895         into CTC (for contract and test case).
6896         * sem_ch6.adb (Process_PPCs): Generate Check pragmas from
6897         Contract_Case pragmas, similarly to what is done already for
6898         postconditions.
6899         * sem_prag.adb, sem_prag.ads (Check_Contract_Or_Test_Case):
6900         Renaming of Check_Test_Case.
6901         (Analyze_Pragma, Sig_Flags): Take into account the new pragma.
6902         * sem_util.adb, sem_util.ads Renaming to take into account the
6903         new pragma, so that functions which applied only to Test_Case
6904         now apply to both Test_Case and Contract_Case.
6905         * par-prag.adb, sem_warn.adb, snames.ads-tmpl Take into account
6906         the new pragma.
6908 2012-03-15  Robert Dewar  <dewar@adacore.com>
6910         * sem_ch6.ads: Minor comment updates.
6911         * sem_ch12.adb: Minor comment clarification.
6913 2012-03-15  Robert Dewar  <dewar@adacore.com>
6915         * sem_ch5.adb: Minor reformatting.
6917 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
6919         * exp_ch3.adb (Expand_N_Object_Declaration): When rewriting the
6920         declaration of a class-wide object, retain the Ekind to prevent
6921         subsequent misuse of constants.
6923 2012-03-15  Yannick Moy  <moy@adacore.com>
6925         * gnat_rm.texi, gnat_ugn.texi: Minor correction of invariant
6926         terminology.
6928 2012-03-15  Hristian Kirtchev  <kirtchev@adacore.com>
6930         * exp_util.adb (Initialized_By_Ctrl_Function): Add code to
6931         process the case when a function call appears in object.operation
6932         format.
6934 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
6936         * sem_ch6.ads, sem_ch6.adb (Check_Subtype_Conformant): add
6937         Get_Inst formal, so that conformance within an instantiation
6938         follows renamings of formals. This is similar to what is already
6939         done in Check_Mode_conformant.
6940         * sem_ch12.adb (Vailidate_Access_Subprogram_Instance): check that
6941         formal and actual are subtype conformant. Previously only mode
6942         conformance was required.
6944 2012-03-15  Robert Dewar  <dewar@adacore.com>
6946         * par-ch6.adb, einfo.ads, sem_eval.adb, sem_eval.ads,
6947         sem_case.adb: Minor reformatting.
6949 2012-03-15  Robert Dewar  <dewar@adacore.com>
6951         * exp_attr.adb (Expand_N_Attribute_Reference): Add handling
6952         of First_Valid/Last_Valid.
6953         * sem_attr.adb (Check_First_Last_Valid): New procedure
6954         (Analyze_Attribute): Add handling of First_Valid and Last_Valid
6955         (Eval_Attribute): ditto.
6956         * snames.ads-tmpl: Add entries for First_Valid and Last_Valid.
6958 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
6960         * exp_ch5.adb (Expand_Predicated_Loop): Suppress warnings on
6961         loop variable, for the unusual case where the range has a single
6962         element and the loop variable has no visible assignment to it.
6964 2012-03-15  Vincent Pucci  <pucci@adacore.com>
6966         * exp_ch4.adb (Expand_N_Quantified_Expression): Expand the
6967         original quantified expression node.
6968         * sem_ch4.adb (Analyze_Quantified_Expression): Properly analyze
6969         the quantified expression and preserve the original non-analyzed
6970         quantified expression when an expansion is needed.
6971         * sem_ch5.adb (Analyze_Iteration_Scheme): Special treatment
6972         for quantified expressions.
6973         (Analyze_Iterator_Specification): Special treatment for quantified
6974         expressions.
6976 2012-03-15  Ed Falis  <falis@adacore.com>
6978         * s-vxwork-ppc.ads: Update FP_CONTEXT so name of former pad
6979         field matches VxWorks headers.
6981 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6983         * gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
6985         * a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
6986         s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
6987         s-osinte-irix.ads, s-proinf-irix-athread.adb,
6988         s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
6989         system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
6990         Remove.
6992         * adaint.c [__mips && __sgi]: Remove.
6993         (__gnat_number_of_cpus) [__mips && __sgi]: Remove.
6994         [IS_CROSS && !(__mips && __sgi)]: Remove.
6995         * adaint.h [sgi && _LFAPI]: Remove.
6996         * cstreams.c (__gnat_full_name) [sgi]: Remove.
6997         * env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
6998         (__gnat_clearenv) [__mips && __sgi]: Remove.
6999         * errno.c (_SGI_MP_SOURCE): Remove.
7000         * gsocket.h [sgi]: Remove.
7001         * init.c: Remove IRIX reference.
7002         [sgi]: Remove.
7003         * link.c [sgi]: Remove.
7004         * s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
7005         (main) [__mips && __sgi] (MAX_tv_sec): Don't define.
7006         (CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
7007         * sysdep.c [sgi]: Remove.
7008         (getc_immediate_common) [sgi]: Remove.
7009         (__gnat_localtime_tzoff) [sgi]: Remove.
7010         * terminals.c [__mips && __sgi] (IRIX): Don't define.
7011         [IRIX] (USE_GETPTY): Don't define.
7012         (allocate_pty_desc) [USE_GETPTY]: Remove.
7014         * g-traceb.ads: Remove IRIX reference.
7015         * g-trasym.ads: Likewise.
7016         * memtrack.adb: Likewise.
7017         * s-interr-sigaction.adb: Likewise.
7019         * gnat_rm.texi (Implementation Advice): Remove SGI info.
7020         (Implementation Defined Characteristics): Likewise.
7021         * gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
7022         Remove.
7023         (Irix-Specific Considerations): Remove.
7025 2012-03-13  Tristan Gingold  <gingold@adacore.com>
7027         * gcc-interface/gigi.h (flag_vms_malloc64): Refine condition.
7029 2012-03-13  Tristan Gingold  <gingold@adacore.com>
7031         * sysdep.c: Adjust condition after removal of __osf__.
7033 2012-03-12  Eric Botcazou  <ebotcazou@adacore.com>
7035         * gcc-interface/gigi.h (shift_unc_components_for_thin_pointers): Kill.
7036         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove call
7037         to above function.
7038         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Adjust
7039         handling of thin pointers.
7040         <Attr_Descriptor_Size>: Likewise.
7041         (gnat_to_gnu) <N_Free_Statement>: Likewise.
7042         * gcc-interface/utils.c (shift_unc_components_for_thin_pointers): Kill.
7043         (convert_to_fat_pointer): Adjust handling of thin pointers.
7044         (convert) <POINTER_TYPE>: Likewise.
7045         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.
7047 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7049         * gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
7050         * a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
7051         s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
7052         s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
7053         system-tru64.ads: Remove.
7055         * adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
7056         Remove.
7057         [IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
7058         * env.c [__alpha__ && __osf__]: Remove.
7059         * gsocket.h (_OSF_SOURCE): Remove.
7060         (HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
7061         * init.c [__alpha__ && __osf__]: Remove.
7062         * link.c [__osf__]: Remove.
7063         * s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
7064         [__osf__ && !_SS_MAXSIZE]: Remove.
7065         * sysdep.c [__osf__]: Remove.
7066         * terminals.c [__alpha__ && __osf__]: Remove.
7067         [OSF1]: Remove.
7069         * g-traceb.ads: Remove Tru64 reference.
7070         * g-trasym.ads: Likewise.
7071         * gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
7072         (Summary of Run-Time Configurations): Likewise.
7073         * memtrack.adb: Likewise.
7075 2012-03-12  Tristan Gingold  <gingold@adacore.com>
7077         * gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64
7078         instead of TARGET_MALLOC64.
7079         * gcc-interface/gigi.h (flag_vms_malloc64): Define instead
7080         of TARGET_MALLOC64.
7082 2012-03-09  Robert Dewar  <dewar@adacore.com>
7084         * a-direct.adb, comperr.adb, freeze.adb: Minor reformatting.
7086 2012-03-09  Arnaud Charlet  <charlet@adacore.com>
7088         * s-taskin.adb (Initialize_ATCB): Set Task_Image_Len to
7089         0 so that we never access this field uninitialized (e.g. in
7090         Task_Primitives.Operations.Enter_Task for the environment task).
7092 2012-03-09  Vincent Pucci  <pucci@adacore.com>
7094         * exp_ch5.adb (Expand_Iterator_Loop):
7095         Call to Expand_Iterator_Loop_Over_Array added.
7096         (Expand_Iterator_Loop_Over_Array): New routine. Expansion of
7097         "of" iterator loop over arrays. Multidimensional array case added.
7099 2012-03-09  Eric Botcazou  <ebotcazou@adacore.com>
7101         * uintp.ads: Fix minor pasto in comment.
7103 2012-03-09  Vasiliy Fofanov  <fofanov@adacore.com>
7105         * a-direct.adb: Do not strip the trailing directory separator
7106         from path, as this is already done inside Normalize_Pathname;
7107         doing it again produces the wrong result on Windows for the
7108         drive's root dir (i.e. "X:\" becomes "X:").
7110 2012-03-09  Thomas Quinot  <quinot@adacore.com>
7112         * exp_attr.adb, freeze.adb, sem_attr.adb, aspects.adb, aspects.ads,
7113         sem_ch13.adb, snames.ads-tmpl (Exp_Attr.Expand_N_Attribute_Reference):
7114         Add Attribute_Scalar_Storage_Order.
7115         (Sem_Attr.Analyze_Attribute, Eval_Attribute): Ditto.
7116         (Aspects): Add Aspect_Scalar_Storage_Order (Snames): Add
7117         Name_Scalar_Storage_Order and Attribute_Scalar_Storage_Order.
7118         (Sem_Ch13.Analyze_Attribute_Definition_Clause): Add processing
7119         for Scalar_Storage_Order.
7120         (Freeze): If Scalar_Storage_Order is specified, check that it
7121         is compatible with Bit_Order.
7123 2012-03-09  Robert Dewar  <dewar@adacore.com>
7125         * s-osinte-linux.ads, sem_util.adb, s-taprop-linux.adb, exp_ch4.adb,
7126         a-strsup.ads, sem_ch6.adb, a-stwisu.ads, exp_ch3.adb,
7127         a-stzsup.ads: Minor reformatting.
7129 2012-03-09  Thomas Quinot  <quinot@adacore.com>
7131         * s-ransee-vms.adb: Minor reformatting.
7133 2012-03-09  Arnaud Charlet  <charlet@adacore.com>
7135         * comperr.adb (Delete_SCIL_Files): Fix handling of
7136         N_Package_Renaming_Declaration and N_Generic_Package_Declaration.
7138 2012-03-09  Javier Miranda  <miranda@adacore.com>
7140         * sem_ch6.adb (Check_Body_To_Inline): In AAMP and VM targets
7141         use frontend inlining at all optimization levels.
7142         * sem_util.adb (Must_Inline): In AAMP and VM targets, given that
7143         there is no inlining support in the backend, use also frontend
7144         inlining when compiling with optimizations enabled.
7145         * exp_ch6.adb (Expand_Call): Minor code reorganization.
7147 2012-03-09  Eric Botcazou  <ebotcazou@adacore.com>
7149         * gcc-interface/ada-tree.h (TYPE_VAX_FLOATING_POINT_P): Move around.
7150         (TYPE_UNCONSTRAINED_ARRAY): Adjust comment.
7151         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Tidy
7152         up.  Add comment and use canonical predicate for thin pointers.
7153         (gnat_to_gnu) <N_Free_Statement>: Tidy up and reorder.  Add comment
7154         and use canonical predicate for thin pointers.
7155         * gcc-interface/utils.c (convert_to_fat_pointer): Remove superfluous
7156         'else' and use standard name.
7157         (convert_to_thin_pointer): Delete.
7158         (convert) <POINTER_TYPE>: Do the difference in sizetype directly and
7159         change obsolete idioms.  Do not call above function.
7160         (unchecked_convert): Fix formatting.
7161         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: In the thin
7162         pointer case, use byte_position to get the field position.
7164 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7166         * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the
7167         DECL node built for a type which has a non-trivial equivalent type.
7169 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7171         * gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete.
7172         * gcc-interface/decl.c (defer_finalize_level): Likewise.
7173         (defer_finalize_list): Likewise.
7174         (gnat_to_gnu_entity): Delete references to above variables and do not
7175         call rest_of_type_decl_compilation.
7176         (rest_of_type_decl_compilation): Delete.
7177         (rest_of_type_decl_compilation_no_defer): Likewise.
7178         * gcc-interface/utils.c (rest_of_record_type_compilation): Do not call
7179         rest_of_type_decl_compilation.
7180         (create_type_decl): Likewise.
7181         (update_pointer_to): Likewise.
7183 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7185         * gcc-interface/trans.c (Identifier_to_gnu): Don't unshare initializer.
7186         (add_decl_expr): Mark external DECLs as used.
7187         * gcc-interface/utils.c (convert) <CONSTRUCTOR>: Copy the vector.
7189 2012-03-07  Tristan Gingold  <gingold@adacore.com>
7191         * s-ransee-vms.adb: New file.
7192         * gcc-interface/Makefile.in: Use s-ransee-vms.adb on VMS.
7193         * gcc-interface/Make-lang.in: Update dependencies.
7195 2012-03-07  Bob Duff  <duff@adacore.com>
7197         * rtsfind.ads: Add support for finding Super_String types.
7198         * sem_util.ads, sem_util.adb (Is_Bounded_String): New function
7199         to determine whether a given type is a bounded string type.
7200         (Is_Fully_Initialized_Type): Return True for bounded
7201         string types, to suppress bogus warnings.
7202         * exp_ch4.adb (Expand_Composite_Equality): Special case for bounded
7203         strings: equality composes. This allows us to remove default values in
7204         super strings.
7205         * a-strsup.ads, a-stwisu.ads, a-stzsup.ads: Update comments.
7206         * exp_ch3.adb (Expand_Freeze_Record_Type): Comment.
7208 2012-03-07  Robert Dewar  <dewar@adacore.com>
7210         * sem_util.adb, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb: Minor
7211         reformatting.
7213 2012-03-07  Sergey Rybin  <rybin@adacore.com frybin>
7215         * gnat_ugn.texi: gnatpp: fix paragraph about sources with
7216         preprocessor directives.
7218 2012-03-07  Arnaud Charlet  <charlet@adacore.com>
7220         * s-osinte-linux.ads, s-taprop-linux.adb (prctl): New function.
7221         (Enter_Task): Call prctl when relevant.
7223 2012-03-07  Tristan Gingold  <gingold@adacore.com>
7225         * s-osinte-vms.ads: pthread_mutex_setname_np: new function.
7227 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
7229         * sem_ch6.adb (Process_Formals): a generic subprogram with
7230         a formal incomplete type does not require a freeze node.
7232 2012-03-07  Bob Duff  <duff@adacore.com>
7234         * sem_util.ads: Minor reformatting.
7236 2012-03-07  Geert Bosch  <bosch@adacore.com>
7238         * targparm.ads: New target parameter Atomic_Sync_Default,
7239         defaulting to True.
7240         * targparm.adb (Get_Target_Parameters): Add processing for
7241         Atomic_Sync_Default.
7242         * gnat1drv.adb (Adjust_Global_Switches): Adjust Supress_Options
7243         based on ASD.
7245 2012-03-07  Javier Miranda  <miranda@adacore.com>
7247         * sem_ch3.adb (Analyze_Object_Declaration): If the object
7248         declaration has an init expression then stop the analysis of the
7249         object declaration if the expression which initializes the object
7250         is a call to an inlined function which returns an unconstrained
7251         and has been expanded into a procedure call.
7252         * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Add missing
7253         support to handle selected components.
7254         * sem_ch6.ads (Cannot_Inline): Adding parameter Is_Serious plus
7255         documentation.
7256         * sem_ch6.adb (Check_And_Build_Body_To_Inline): New
7257         subprogram which implements the checks required by the
7258         new rules for frontend inlining and builds the body to inline.
7259         (Analyze_Subprogram_Body_Helper): Move code that
7260         checks inlining of subprogram that has nested subprogram
7261         to Check_And_Build_Body_To_Inline.  Replace call to
7262         Build_Body_To_Inline by call to the new subprogram
7263         Check_And_Build_Body_To_Inline.
7264         (Cannot_Inline): New implementation.
7265         * sem_ch12.adb (Analyze_Package_Instantiation.Must_Inline_Subp):
7266         New subprogram.
7267         * sem_util.ad[sb] (Must_Inline): New subprogram.
7268         (Returns_Unconstrained_Type): New subprogram.
7269         * sem_res.adb (Resolve_Call): Do not create a transient scope
7270         for inlined calls.
7271         * inline.ads (Analyzing_Inlined_Bodies): Remove unreferenced variable.
7272         * inline.adb (Analyze_Inlined_Bodies, Initialize): Remove setting
7273         to false the variable Analyzing_Inlined_Bodies.  Fix comments.
7274         * exp_ch4.adb (Expand_N_Allocator): Fix handling of finalization master.
7275         * exp_ch6.ads (List_Inlining_Info): New subprogram.
7276         * exp_ch6.adb (Expand_Call.Do_Inline): New subprogram.
7277         (Expand_Call.Do_Inline_Always): New subprogram.
7278         (In_Unfrozen_Instance): Move the declaration of this subprogram.
7279         (Expand_Inlined_Call.Reset_Dispatching_Calls): New subprogram.
7280         (Expand_Inlined_Call): Adding new support for inlining functions
7281         that return unconstrained types.
7282         (List_Inlining_Info): New subprogram.
7283         * debug.adb Document flags -gnatd.j and -gnatd.k
7284         * gnat1drv.adb Add call to generate the new listing of inlined
7285         calls and calls passed to the backend.
7287 2012-03-07  Robert Dewar  <dewar@adacore.com>
7289         * sem_ch5.adb, s-vaflop.adb, s-taprop-vms.adb, exp_ch6.adb,
7290         s-gearop.adb, sem_ch6.adb, g-trasym.adb: Minor reformatting.
7292 2012-03-07  Javier Miranda  <miranda@adacore.com>
7294         * a-ngrear.ads: Add documentation.
7296 2012-03-07  Tristan Gingold  <gingold@adacore.com>
7298         * s-taprop-vms.adb (Create_Task): set thread name.
7299         * s-osinte-vms.ads (pthread_attr_setname_np): Declare.
7301 2012-03-07  Arnaud Charlet  <charlet@adacore.com>
7303         * g-trasym.adb: Minor reformatting.
7305 2012-03-07  Robert Dewar  <dewar@adacore.com>
7307         * a-ngrear.ads: Minor addition of ??? comment.
7309 2012-03-07  Gary Dismukes  <dismukes@adacore.com>
7311         * exp_ch4.adb (Apply_Accessibility_Check): Call
7312         Remove_Side_Effects in the build-in-place case, to ensure that
7313         we capture the call and don't end up with two calls.
7315 2012-03-07  Javier Miranda  <miranda@adacore.com>
7317         * exp_ch6.adb (Expand_Inlined_Call): Skip inlining of functions
7318         that return unconstrained types using an extended return statement
7319         since the support for inlining these functions has not been yet
7320         added to the frontend.
7321         * s-vaflop.adb, s-vaflop-vms-alpha.adb: Code reorganization.
7322         * a-ngrear.ads: Replace all the Inline_Always pragmas by pragma
7323         Inline.
7324         * a-ngrear.adb (Eigenvalues, Transpose): Restructured to use
7325         extended return statement.
7326         * a-strsup.adb, a-stzsup.adb, a-stwisu.adb (Concat, Super_Slice,
7327         Super_To_String): Restructured to use extended return statement.
7328         * a-chahan.adb (To_Basic, To_Lower, To_Upper): Restructured to
7329         use extended return statement.
7330         * s-gearop.adb (Diagonal, Matrix_Elementwise_Operation,
7331         Vector_Elementwise_Operation, Matrix_Elementwise_Operation,
7332         Matrix_Matrix_Scalar_Elementwise_Operation,
7333         Vector_Vector_Elementwise_Operation,
7334         Vector_Vector_Scalar_Elementwise_Operation,
7335         Matrix_Scalar_Elementwise_Operation,
7336         Vector_Scalar_Elementwise_Operation,
7337         Scalar_Matrix_Elementwise_Operation,
7338         Scalar_Vector_Elementwise_Operation, Matrix_Matrix_Product,
7339         Matrix_Vector_Product, Outer_Product, Unit_Matrix, Unit_Vector,
7340         Vector_Matrix_Product): Restructured to use extended return
7341         statement.
7343 2012-03-07  Vincent Pucci  <pucci@adacore.com>
7345         * sem_ch5.adb (One_Bound): Minor reformatting.
7347 2012-03-07  Tristan Gingold  <gingold@adacore.com>
7349         * s-osinte-vms-ia64.adb, s-osinte-vms-ia64.ads, s-osinte-vms.adb,
7350         s-osinte-vms.ads, gcc-interface/Makefile.in: Merge s-osinte-vms and
7351         s-osinte-vms-ia64.
7353 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
7355         * checks.adb (Apply_Predicate_Check): Do not generate a predicate
7356         check is the context is an internally generated type-specific
7357         function.
7358         * sem_ch6.adb (Process_PPCs); the formals of internally generated
7359         type-specific functions do not get assertion checks.
7361 2012-03-07  Yannick Moy  <moy@adacore.com>
7363         * gnat_rm.texi: Minor renaming of title.
7364         * gnat_ugn.texi: Minor correction.
7366 2012-03-07  Vincent Pucci  <pucci@adacore.com>
7368         * exp_ch4.adb (Expand_N_Quantified_Expression): Minor
7369         reformating.
7370         * sem_ch4.adb (Analyze_Quantified_Expression): Creation and
7371         analysis of the iteration scheme added in all cases.
7372         * sem_ch5.adb (Analyze_Iteration_Scheme): Minor reformating.
7373         (Analyze_Iterator_Specification): Minor reformating.
7374         * sem_res.adb (Resolve_Quantified_Expression): Resolution of
7375         the condition added in all cases.
7377 2012-03-07  Thomas Quinot  <quinot@adacore.com>
7379         * einfo.adb, einfo.ads: Add flag Reverse_Storage_Order.
7381 2012-03-07  Yannick Moy  <moy@adacore.com>
7383         * gnat_rm.texi, gnat_ugn.texi: Rewording of GNAT UG and GNAT RM to
7384         account for Ada 2012 assertions, and their pragma counterparts in GNAT.
7386 2012-03-07  Thomas Quinot  <quinot@adacore.com>
7388         * exp_attr.adb, sem_attr.adb: Minor reformatting.
7390 2012-03-07  Bob Duff  <duff@adacore.com>
7392         * hostparm.ads (Max_Instantiations): Increase parameter.
7394 2012-03-07  Bob Duff  <duff@adacore.com>
7396         * par-prag.adb: Minor code rearrangement.
7398 2012-03-07  Bob Duff  <duff@adacore.com>
7400         * a-strsup.ads, a-stwisu.ads, a-stzsup.ads (Super_String):
7401         Remove default initial value for Data. It is no longer needed
7402         because "=" now composes properly for untagged records. This
7403         default has caused efficiency problems.
7405 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
7407         * sem_res.adb (Resolve_Actuals): If the actual is a selected
7408         component of an anonymous access type, whose prefix is a variable,
7409         treat the variable as if it may be modified by the call, to
7410         suppress spurious warnings that a variable might be declared as
7411         a constant.
7413 2012-03-07  Thomas Quinot  <quinot@adacore.com>
7415         * einfo.adb, einfo.ads: Remove unused entity flags.
7417 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7419         * gnat_ugn.texi (Inline Assembler): Fix swapping of Input and
7420         Output operands throughout.
7422 2012-03-07  Hristian Kirtchev  <kirtchev@adacore.com>
7424         * sem_ch12.adb (Earlier): When two nodes come from the same
7425         generic instantiation, compare their locations. Otherwise always
7426         use the top level locations of the nodes.
7428 2012-03-07  Thomas Quinot  <quinot@adacore.com>
7430         * einfo.ads, sem_prag.adb: Minor reformatting.
7432 2012-03-05  Jason Merrill  <jason@redhat.com>
7434         * gcc-interface/Make-lang.in (doc/gnat_ugn.texi): Build xgnatugn
7435         before using it.
7437 2012-03-04  Eric Botcazou  <ebotcazou@adacore.com>
7439         * gnatvsn.ads (Library_Version): Bump to 4.8.
7441 2012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
7443         * init.c (__gnat_adjust_context_for_raise): Also check
7444         "orq $0x0,(%esp)" for x32.
7446         * link.c (__gnat_default_libgcc_subdir): Set to libx32 for x32.
7448         * gcc-interface/Makefile.in (arch): Set to x32 if MULTISUBDIR
7449         is /x32 and add support for x32.
7451 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7453         * gcc-interface/decl.c (components_to_record): Add ARTIFICIAL parameter
7454         and set TYPE_ARTIFICIAL according to it.  Adjust recursive call.
7455         (gnat_to_gnu_entity) <E_Record_Type>: Adjust call to above function.
7456         * gcc-interface/utils.c (rest_of_record_type_compilation): Do not
7457         invoke rest_of_type_decl_compilation on the parallel type, if any.
7459 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7461         * gcc-interface/utils.c (gnat_write_global_declarations): Make sure the
7462         dummy global built for global types is preserved.
7464 2012-02-27  Tristan Gingold  <gingold@adacore.com>
7466         * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
7467         E_Array_Type]: Reuse dummy fat type for gnu_ptr_template and
7468         gnu_template_type.
7470 2012-02-27  Eric Botcazou  <ebotcazou@adacore.com>
7472         * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.
7473         (TYPE_BY_REFERENCE_P): New flag.
7474         (TYPE_IS_BY_REFERENCE_P): New macro.
7475         (TYPE_DUMMY_P): Add checking and remove VOID_TYPE.
7476         (TYPE_IS_DUMMY_P): Adjust for above change.
7477         * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P
7478         and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE.
7479         (gnat_to_gnu_param): Likewise.
7480         (maybe_pad_type): Likewise.
7481         (make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P.
7482         * gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P
7483         instead of TREE_ADDRESSABLE.
7484         * gcc-interface/trans.c (finalize_nrv): Likewise.
7485         (call_to_gnu): Likewise.  Do not create a temporary for return values
7486         with by-reference type here.
7487         (gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P.
7488         (gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant
7489         CONSTRUCTORs and calls.
7490         * gcc-interface/utils.c (make_dummy_type): Get the equivalent type of
7491         the underlying type and use it throughout.  Use TYPE_IS_BY_REFERENCE_P
7492         instead of TREE_ADDRESSABLE.
7493         * gcc-interface/utils2.c (build_cond_expr): Deal with by-reference
7494         types explicitly.
7496 2012-02-27  Eric Botcazou  <ebotcazou@adacore.com>
7498         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Revert previous
7499         change that creates a special VAR_DECL for debugging purposes.  For an
7500         aliased object with an unconstrained nominal subtype, make its type a
7501         thin reference to the underlying object.
7502         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Deal with
7503         expressions built for the initialization of above objects.
7505 2012-02-24  Dave Korn  <dave.korn.cygwin@gmail.com>
7507         * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
7508         Windows-specific make variable.
7509         (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
7510         (install-gnatlib): Respect the above during installation when set,
7511         and also install any windows import library that has been built.
7512         (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
7513         build a corresponding import library.
7515 2012-02-22  Robert Dewar  <dewar@adacore.com>
7517         * exp_util.adb, make.adb, sem_dim.adb, sem_ch4.adb, exp_disp.adb: Minor
7518         reformatting.
7520 2012-02-22  Geert Bosch  <bosch@adacore.com>
7522         * g-bytswa-x86.adb, g-bytswa.adb, gcc-interface/Makefile.in: Remove
7523         x86-specific version of byteswap and use GCC builtins instead.
7525 2012-02-22  Tristan Gingold  <gingold@adacore.com>
7527         * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
7528         E_Array_Type]: Translate component ealier.
7530 2012-02-22  Robert Dewar  <dewar@adacore.com>
7532         * par-ch3.adb (P_Signed_Integer_Type_Definition): Specialize
7533         error message for 'Range.
7535 2012-02-22  Pascal Obry  <obry@adacore.com>
7537         * s-taprop-mingw.adb (Finalize_TCB): Do not wait on thread handle as
7538         this is our own thread.
7540 2012-02-22  Sergey Rybin  <rybin@adacore.com frybin>
7542         * tree_io.ads: Update ASIS_Version_Number because of the changes
7543         in Snames.
7545 2012-02-22  Hristian Kirtchev  <kirtchev@adacore.com>
7547         * exp_ch7.adb (Create_Finalizer): Suppress elaboration checks on
7548         stack-related finalizers.
7550 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
7552         * sem_ch6.adb (Analyze_Expression_Function): If the construct
7553         is a completion, indicate that its formals are the formals of
7554         a completion, and as such do not get a cross- reference entry.
7555         (Analyze_Subprogram_Specification): Do not generate a definition
7556         for the entity of an expression function, because it may be a
7557         completion. Definition will be generated if needed when analyzing
7558         the generated subprogram declaration.
7560 2012-02-22  Vincent Celier  <celier@adacore.com>
7562         * make.adb (Check): When checking if an object file is in the
7563         correct object directory, get the unit name from a previous call
7564         to Check_Source_Info_In_ALI.
7565         * makeutl.adb (Check_Source_Info_In_ALI): Return the name of
7566         the unit when everything is OK, otherwise return No_Name.
7567         * makeutl.ads (Check_Source_Info_In_ALI): Return Name_Id instead
7568         of Boolean
7570 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
7572         * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): In an
7573         instance, the operator is visible if an operand is of some
7574         numeric type which is not in use or directly visible, and the
7575         other operand is a numeric literal.
7577 2012-02-22  Tristan Gingold  <gingold@adacore.com>
7579         * init.c: Minor code clean up.
7580         * gcc-interface/Make-lang.in: Update dependencies.
7582 2012-02-22  Arnaud Charlet  <charlet@adacore.com>
7584         * gnatlink.adb (Gnatlink): Use -gnatcC in CodePeer_Node,
7585         otherwise GCC will generate an object file.
7587 2012-02-22  Vincent Celier  <celier@adacore.com>
7589         * projects.texi: Correct typo related to "**" in Source_Dirs.
7591 2012-02-22  Steve Baird  <baird@adacore.com>
7593         * sem_prag.adb (Analyze_PPC_In_Decl_Part): Clean up generation of
7594         error message text.
7596 2012-02-22  Vincent Pucci  <pucci@adacore.com>
7598         * rtsfind.adb (Get_Unit_Name): Ada_Numerics_Child and
7599         System_Dim_Child cases added.
7600         * rtsfind.ads: Ada_Numerics,
7601         Ada_Numerics_Generic_Elementary_Functions, System_Dim,
7602         System_Dim_Float_IO and System_Dim_Integer_IO added to the list
7603         of RTU_Id.  Ada_Numerics_Child and System_Dim_Child added as
7604         new RTU_Id subtypes.
7605         * sem_dim.adb (Is_Dim_IO_Package_Entity): Use of
7606         Rtsfind to verify the package entity is located either
7607         in System.Dim.Integer_IO or in System.Dim.Float_IO.
7608         (Is_Dim_IO_Package_Instantiation): Minor
7609         changes.  (Is_Elementary_Function_Call): Removed.
7610         (Is_Elementary_Function_Entity): New routine.
7611         (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity call added.
7612         * snames.ads-tmpl: Name_Dim and Name_Generic_Elementary_Functions
7613         removed.
7615 2012-02-22  Vincent Pucci  <pucci@adacore.com>
7617         * sem_prag.adb: Minor reformatting.
7619 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
7621         * sem_ch3.adb (Find_Type_Name): When analyzing a private type
7622         declaration that is the completion of a tagged incomplete type, do
7623         not associate the class-wide type already created with the private
7624         type to prevent order-of-elaboration issues in the back-end.
7625         * exp_disp.adb (Find_Specific_Type): Find specific type of
7626         a class-wide type, and handle the case of an incomplete type
7627         coming  either from a limited_with clause or from an incomplete
7628         type declaration. Used when expanding a dispatchin call and
7629         generating tag checks (minor refactoring).
7631 2012-02-22  Robert Dewar  <dewar@adacore.com>
7633         * exp_ch5.adb: Add comment.
7634         * sem_ch12.adb, exp_ch6.adb: minor reformatting
7636 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
7638         * freeze.adb (Freeze_Entity): Do not perform type layout within
7639         a generic unit.
7641 2012-02-22  Eric Botcazou  <ebotcazou@adacore.com>
7643         * init.c (__gnat_error_handler) [Linux]: Map SIGBUS to
7644         Storage_Error.
7646 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
7648         * exp_ch5.adb (Expand_N_Assignment_Statement): Reject an
7649         assignment to a classwide type whose type is limited, as
7650         can happen in an instantiation in programs that run afoul or
7651         AI05-0087.
7653 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
7655         * exp_ch6.adb (Legal_Copy): If layout is not
7656         determined in the front-end, do not emit error message when
7657         by-reference actual is potentially unaligned.
7658         * gcc-interface/decl.c (gnat_to_gnu_field): Better error message for
7659         illegal representation clause on tagged or aliased component, or on
7660         by-reference type with forced alignment.
7662 2012-02-17  Nicolas Roche  <roche@adacore.com>
7664         * gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is
7665         propagated by gnatlib-sjlj and gnatlib-zcx targets.
7666         * gcc-interface/Make-lang.in: Update dependencies.
7668 2012-02-17  Thomas Quinot  <quinot@adacore.com>
7670         * sem_ch12.adb (Analyze_Package_Instantiation): For an
7671         instantiation in an RCI library unit, omit the instance body
7672         if the RCI library unit is the instance itself (E.2.3(18)),
7673         but include the body if the instantiation is within the RCI
7674         declaration (12.3(12)).
7676 2012-02-17  Steve Baird  <baird@adacore.com>
7678         * sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and
7679         Post'Class aspects can only be specified for a primitive operation
7680         of a tagged type.
7682 2012-02-17  Yannick Moy  <moy@adacore.com>
7684         * gnat_rm.texi: Minor shuffling.
7686 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
7688         * aspects.adb: Expression functions can carry pre/postconditions.
7689         * par-ch6.adb (P_Subprogram): look for optional pre/postconditions
7690         in an expression function.
7691         * sem_prag (Check_Precondition_Postcondition): legal on expression
7692         functions.
7694 2012-02-17  Vincent Pucci  <pucci@adacore.com>
7696         * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb,
7697         * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb,
7698         * a-convec.adb, a-coorma.adb (Adjust): New routine.
7699         (Constant_Reference): Increment Busy and Lock counters.
7700         (Reference): Increase Busy and Lock counters.
7701         (Finalize): New routine.
7702         * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb:
7703         (Adjust): New routine.  (Constant_Reference): Increment Busy
7704         and Lock counters.
7705         (Finalize): New routine.
7706         * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads,
7707         * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads,
7708         * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads,
7709         * a-coorma.ads, a-coorse: Controlled component added to the
7710         reference types.
7712 2012-02-17  Robert Dewar  <dewar@adacore.com>
7714         * restrict.adb (Check_Restriction): Add special handling for
7715         No_Obsolescent_Features.
7717 2012-02-17  Hristian Kirtchev  <kirtchev@adacore.com>
7719         * exp_util.adb (Find_Finalize_Address): When dealing with an
7720         internally built full view for a type with unknown discriminants,
7721         use the original record type.
7723 2012-02-17  Robert Dewar  <dewar@adacore.com>
7725         * sem_dim.adb: Minor reformatting.
7727 2012-02-17  Yannick Moy  <moy@adacore.com>
7729         * gnat_rm.texi: Minor rewording.
7731 2012-02-17  Thomas Quinot  <quinot@adacore.com>
7733         * sem_aggr.adb: Minor reformatting.
7735 2012-02-17  Robert Dewar  <dewar@adacore.com>
7737         * gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case.
7739 2012-02-17  Vincent Pucci  <pucci@adacore.com>
7741         * sem_dim.adb (Is_Dim_IO_Package_Entity): New routine.
7742         (Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity
7743         call added.
7744         (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity
7745         call added.
7746         * s-dim.ads: Make package Pure.
7748 2012-02-17  Gary Dismukes  <dismukes@adacore.com>
7750         * prj-nmsc.adb: Minor reformatting.
7752 2012-02-17  Yannick Moy  <moy@adacore.com>
7754         * gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions.
7756 2012-02-17  Yannick Moy  <moy@adacore.com>
7758         * gnat_ugn.texi: Fix typos.
7760 2012-02-17  Pascal Obry  <obry@adacore.com>
7762         * prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an
7763         aggregate is not Externally_Built.
7765 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
7767         * sem_aggr.adb (Resolve_Record_Aggregate): If a composite
7768         component has a box association, copy the default value using
7769         the current scope as the scope of internal types, to prevent
7770         scoping anomalies in gigi.
7772 2012-02-17  Robert Dewar  <dewar@adacore.com>
7774         * sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb,
7775         sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb,
7776         exp_intr.adb, s-os_lib.adb: Minor reformatting.
7778 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
7780         * sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the
7781         old operation is abstract, the relevant type is not abstract,
7782         and the new subprogram fails to override.
7784 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
7786         * gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the
7787         type of the result to the end and execute it for a deferred constant of
7788         a discriminated type whose full view can be elaborated statically.
7790 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
7792         * gcc-interface/trans.c (gnat_to_gnu) <N_Qualified_Expression>: If the
7793         type is tagged, mark it as used for debugging purposes.
7794         <N_Allocator>: Likewise for a qualified expression.
7796 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
7798         * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
7799         return value in the by-reference return type case if this isn't the
7800         expression of an object declaration.  Tidy up.
7802 2012-02-09  Tristan Gingold  <gingold@adacore.com>
7804         * gcc-interface/Makefile.in: Remove .sym rule (not used).
7805         Remove adamsg.o object (requires native message compiler).
7806         * init.c (CMA$_EXIT_THREAD, MTH$_FLOOVEMAT, SS$_INTDIV): Define as a
7807         macro instead of as extern int.
7808         (ADA$_ALREADY_OPEN, ADA$_CONSTRAINT_ERRO, ADA$_DATA_ERROR)
7809         (ADA$_DEVICE_ERROR, ADA$_END_ERROR, ADA$_FAC_MODE_MISMAT)
7810         (ADA$_IOSYSFAILED, ADA$_KEYSIZERR, ADA$_KEY_MISMATCH)
7811         (ADA$_LAYOUT_ERROR, ADA$_LINEXCMRS, ADA$_MAXLINEXC)
7812         (ADA$_MODE_ERROR, ADA$_MRN_MISMATCH, ADA$_MRS_MISMATCH)
7813         (ADA$_NAME_ERROR, ADA$_NOT_OPEN, ADA$_ORG_MISMATCH)
7814         (ADA$_PROGRAM_ERROR, ADA$_RAT_MISMATCH, ADA$_RFM_MISMATCH)
7815         (ADA$_STAOVF, ADA$_STATUS_ERROR, ADA$_STORAGE_ERROR)
7816         (ADA$_UNSUPPORTED, ADA$_USE_ERROR): Likewise.
7817         (struct cond_except): Field cond is now an unsigned int.
7818         (dec_ada_cond_except_table): Adjust.
7819         (cond_except_table): Likewise.
7820         (cond_resignal_table): Likewise.
7821         (__gnat_default_resignal_p): Fix style.
7823 2012-02-08  Vincent Celier  <celier@adacore.com>
7825         * gcc-interface/Make-lang.in: Add g-byorma.o to gnatbind objects
7826         (g-buorma is now imported by sinput).
7827         Update dependencies.
7828         * scn.adb (Initialize_Scanner): Call Check_For_BOM
7829         * sinput-p.adb (Source_File_Is_Subunit): Call Check_For_BOM
7830         * sinput.adb: New procedure Check_For_BOM
7831         * sinput.ads: New procedure Check_For_BOM
7833 2012-02-08  Vincent Pucci  <pucci@adacore.com>
7835         * impunit.adb: Dimension package names updated
7836         * Makefile.rtl: s-dim added
7837         * sem_dim.adb (Is_Procedure_Put_Call): minor changes
7838         (Is_Dim_IO_Package_Instantiation): minor changes
7839         * sem_dim.ads: minor changes in comments
7840         * snames.ads-tmpl: Name_Dim added Name_Dim_Float_IO and
7841         Name_Dim_Integer_IO removed
7842         * s-dim.ads: New package. Define the dimension terminology.
7843         * s-diflio.adb, s-diinio.adb, s-dimkio.ads, s-dimmks.ads,
7844         * s-dmotpr.ads: Package names updated.
7845         * s-diflio.ads, s-diinio.ads: Documentation added and package
7846         names updated.
7848 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
7850         * gcc-interface/utils2.c (build_call_alloc_dealloc_proc): Revise test
7851         for storage pools to test for an underlying record type rather than
7852         testing Is_Tagged_Type, so that simple storage pools will be handled
7853         the same as normal Ada storage pools.
7855 2012-02-08  Yannick Moy  <moy@adacore.com>
7857         * gnat_rm.texi: Minor reshuffling to place restriction at
7858         appropriate place.
7860 2012-02-08  Bob Duff  <duff@adacore.com>
7862         * warnsw.adb (Set_Warning_Switch): Set Warn_On_Suspicious_Modulus_Value
7863         False for '-gnatwA', to suppress these warnings.
7865 2012-02-08  Vincent Celier  <celier@adacore.com>
7867         * sinput-p.adb (Source_File_Is_Subunit): Check for BOM before
7868         starting to scan, so that UTF8 encoding is taken into account.
7870 2012-02-08  Arnaud Charlet  <charlet@adacore.com>
7872         * s-tasren.adb, s-tasren.ads (Internal_Complete_Rendezvous): New
7873         function.
7874         (Complete_Rendezvous): Now call Internal_Complete_Rendezvous.
7875         (Exceptional_Complete_Rendezvous): Mark No_Return.
7877 2012-02-08  Eric Botcazou  <ebotcazou@adacore.com>
7879         * exp_aggr.adb (Compile_Time_Known_Composite_Value):
7880         New predicate to compute whether a composite value can be
7881         evaluated at compile time.
7882         (Component_Not_OK_For_Backend): Use Compile_Time_Known_Value for all
7883         expressions of elementary type and Compile_Time_Known_Composite_Value
7884         for all other expressions.
7885         (Expand_Record_Aggregate): Convert to assignments in the case
7886         of a type with mutable components if the aggregate cannot be
7887         built statically.
7889 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
7891         * aspects.ads (type Aspect_Id): Add Simple_Storage_Pool_Type.
7892         (Impl_Defined_Aspects): Add association for
7893         Aspect_Simple_Storage_Pool_Type.
7894         (Aspect_Names): Add
7895         association for Aspect_Simple_Storage_Pool_Type.
7896         * aspects.adb:
7897         (Canonical_Aspect): Add association for Simple_Storage_Pool_Type.
7898         * exp_attr.adb (Expand_N_Attribute_Reference):
7899         Change name to Name_Simple_Storage_Pool_Type.
7900         * exp_ch4.adb (Expand_N_Allocator): Change
7901         name to Name_Simple_Storage_Pool_Type.
7902         * exp_intr.adb (Expand_Unc_Deallocation): Change name to
7903         Name_Simple_Storage_Pool_Type.  * freeze.adb (Freeze_Entity):
7904         Change names to Name_Simple_Storage_Pool_Type.  * par-prag.adb:
7905         Change names to Name_Simple_Storage_Pool_Type.  * sem_attr.adb:
7906         (Analyze_Attribute): Change name to Name_Simple_Storage_Pool_Type.
7907         * sem_ch13.adb (Analyze_Attribute_Definition_Clause):
7908         Change name to Name_Simple_Storage_Pool_Type.
7909         * sem_prag.adb:
7910         (Analyze_Pragma): Change name to Name_Simple_Storage_Pool_Type.
7911         (Sig_Flags): Change name to Name_Simple_Storage_Pool_Type.
7912         * sem_res.adb (Resolve_Allocator): Change name to
7913         Name_Simple_Storage_Pool_Type.  * snames.ads-tmpl:
7914         (Name_Simple_Storage_Pool_Type): New name constant.
7915         (type Pragma_Id): Change name to Name_Simple_Storage_Pool_Type and
7916         move to main pragma section because it no longer matches the
7917         attribute name.
7918         * snames.adb-tmpl (Get_Pragma_Id): Remove test for
7919         Name_Simple_Storage_Pool.
7920         (Is_Pragma_Name): Remove test for Name_Simple_Storage_Pool.
7922 2012-02-08  Robert Dewar  <dewar@adacore.com>
7924         * gnat_ugn.texi: Add some clarification to -gnatwA and -gnatws.
7926 2012-02-08  Pascal Obry  <obry@adacore.com>
7928         * prj.adb (Compute_All_Imported_Projects): Use new
7929         For_Project_And_Aggregated_Context to ensure proper context is
7930         used for encapsulated aggregate libraries.
7931         * prj-proc.adb (Recursive_Process): Call
7932         Process_Aggregated_Projects earlier to ensure that all dependent
7933         projects are set with the proper encapsulated status.
7935 2012-02-08  Pascal Obry  <obry@adacore.com>
7937         * s-os_lib.adb (Normalize_Arguments): Properly escape last \ in null
7938         terminated string.
7940 2012-02-08  Pascal Obry  <obry@adacore.com>
7942         * prj.ads, prj.adb (For_Project_And_Aggregated_Context): New
7943         generic routine with a context parameter.
7945 2012-02-08  Robert Dewar  <dewar@adacore.com>
7947         * a-coinve.adb, sem_util.adb, sem_ch8.adb, a-cobove.adb,
7948         a-convec.adb: Minor reformatting and code reorganization.
7950 2012-02-08  Steve Baird  <baird@adacore.com>
7952         * sem_cat.adb (In_Preelaborated_Unit): A child
7953         unit instantiation does not inherit preelaboration requirements
7954         from its parent.
7956 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
7958         * aspects.ads (type Aspect_Id): Add Aspect_Simple_Storage_Pool.
7959         (Impl_Defined_Aspects): Add entry for Aspect_Simple_Storage_Pool.
7960         (Aspect_Argument): Add Name entry for Aspect_Simple_Storage_Pool.
7961         (Aspect_Names): Add entry for Aspect_Simple_Storage_Pool.
7962         * aspects.adb (Canonical_Aspect): Add entry for
7963         Aspect_Simple_Storage_Pool.
7964         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of
7965         Attribute_Simple_Storage_Pool in the same way as Storage_Pool
7966         (add conversion, analyze/resolve). For the Storage_Size attribute,
7967         for the simple pool case, locate and use the simple pool type's
7968         Storage_Size function (if any), otherwise evaluate to zero.
7969         * exp_ch4.adb (Expand_N_Allocator): In the case of an allocator
7970         for an access type with an associated simple storage pool,
7971         locate and use the pool type's Allocate.
7972         * exp_intr.adb (Expand_Unc_Deallocation): In the case where the
7973         access type has a simple storage pool, locate the pool type's
7974         Deallocate procedure (if present) and use it as the procedure
7975         to call on the Free operation.
7976         * freeze.adb (Freeze_Entity): In the case of a full type for
7977         a private type defined with pragma Simple_Storage_Pool, check
7978         that the full type is also appropriate for the pragma. For
7979         a simple storage pool type, validate that the operations
7980         Allocate, Deallocate (if present), and Storage_Size
7981         (if present) are defined with appropriate expected profiles.
7982         (Validate_Simple_Pool_Op_Formal): New procedure
7983         (Validate_Simple_Pool_Operation): New procedure Add with and
7984         use of Rtsfind.
7985         * par-prag.adb: Add Pragma_Simple_Storage_Pool to case statement
7986         (no action required).
7987         * sem_attr.adb (Analyze_Attribute): For the case of the
7988         Storage_Pool attribute, give a warning if the prefix type has an
7989         associated simple storage pool, and rewrite the attribute as a
7990         raise of Program_Error. In the case of the Simple_Storage_Pool
7991         attribute, check that the prefix type has an associated simple
7992         storage pool, and set the attribute type to the pool's type.
7993         * sem_ch13.adb (Analyze_Aspect_Specifications): Add
7994         Aspect_Simple_Storage_Pool case choice.
7995         (Analyze_Attribute_Definition_Clause): Add
7996         Aspect_Simple_Storage_Pool to case for Ignore_Rep_Clauses
7997         (no action). Add handling for Simple_Storage_Pool attribute
7998         definition, requiring the name to denote a simple storage pool
7999         object.
8000         (Check_Aspect_At_Freeze_Point): For a simple storage pool
8001         aspect, set the type to that of the name specified for the aspect.
8002         * sem_prag.adb (Analyze_Pragma): Add handling for pragma
8003         Simple_Storage_Pool, requiring that it applies to a library-level
8004         type declared in a package declaration that is a limited private
8005         or limited record type.
8006         * sem_res.adb (Resolve_Allocator): Flag an attempt to call a
8007         build-in-place function in an allocator for an access type with
8008         a simple storage pool as unsupported.
8009         * snames.ads-tmpl: Add Name_Simple_Storage_Pool.
8010         (type Attribute_Id): Add Attribute_Simple_Storage_Pool.
8011         (type Pragma_Id): Add Pragma_Simple_Storage_Pool.
8012         * snames.adb-tmpl (Get_Pragma_Id): Handle case of
8013         Name_Simple_Storage_Pool.
8014         (Is_Pragma_Name): Return True for Name_Simple_Storage_Pool.
8016 2012-02-08  Cyrille Comar  <comar@adacore.com>
8018         * projects.texi: Clarify doc for interfaces.
8020 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
8022         * gcc-interface/Make-lang.in (GCC_LINKERFLAGS): New variable.
8023         (GCC_LINK): Use it.
8025 2012-02-01  Tristan Gingold  <gingold@adacore.com>
8027         * gcc-interface/trans.c (Loop_Statement_to_gnu): Use sizetype
8028         instead of size_type_node.
8030 2012-01-30  Nicolas Roche  <roche@adacore.com>
8032         * gcc-interface/Make-lang.in: Update dependencies.
8033         * gcc-interface/Makefile.in: Use system-vxworks-system-ppc-mils.ads
8034         when needed.
8035         Remove Linker_Options -crtbe when building sjlj run-time.
8037 2012-01-30  Robert Dewar  <dewar@adacore.com>
8039         * sem.adb (Analyze): Call Analyze_Mod for N_Op_Mod mode.
8040         * sem_ch3.adb (Modular_Type_Declaration): Warn on mod value of
8041         form 2 * small-literal.
8042         * sem_ch4.adb (Analyze_Mod): New procedure (warn on suspicious
8043         mod value).
8044         * sem_ch4.ads (Analyze_Mod): New procedure.
8046 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
8048         * sem_ch6.adb: sem_ch6.adb (Analyze_Expression_Function): Copy
8049         types and return expression when building spec for implicit
8050         body, to preserve global references that may be present in an
8051         instantiation.
8053 2012-01-30  Matthew Heaney  <heaney@adacore.com>
8055         * a-convec.adb, a-coinve.adb, a-cobove.adb (Sort,
8056         Reverse_Elements): Check for cursor tampering.
8058 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
8060         * sem_util.adb (Is_Fully_Initialized_Type): In Ada 2012, a
8061         type with aspect Default_Value or Default_Component_Value is
8062         fully initialized, and use of variables of such types do not
8063         generate warnings.
8065 2012-01-30  Javier Miranda  <miranda@adacore.com>
8067 PR ada/15846
8068         * sem_ch8.adb (Analyze_Subprogram_Renaming):
8069         Handle self-renaming when the renamed entity is referenced using
8070         its expanded name.
8072 2012-01-30  Vincent Celier  <celier@adacore.com>
8074         * projects.texi: Add documentation for attribute Interfaces.
8076 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
8078         * exp_ch7.adb (Build_Finalizer_Call): Set loc again.
8079         * exp_ch11.adb (Expand_At_End_Handler): Do not provide a source
8080         location for the wrapped call to the original AT_END routine
8081         and the subsequent return statement.
8083 2012-01-30  Pascal Obry  <obry@adacore.com>
8085         * s-rannum.adb: Minor reformatting.
8087 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
8089         * a-calend-vms.adb, a-calend.adb: Increment the number of leap seconds
8090         to 25 and add the hard time value for 2012-06-30.
8092 2012-01-30  Robert Dewar  <dewar@adacore.com>
8094         * a-strhas.ads, einfo.adb, einfo.ads, exp_ch7.adb, exp_ch9.adb,
8095         freeze.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-proc.adb, s-llflex.ads,
8096         s-ransee.adb, s-ransee.ads, sem_ch13.adb, sem_dim.adb, sem_prag.adb:
8097         Minor reformatting/code reorganization.
8099 2012-01-30  Thomas Quinot  <quinot@adacore.com>
8101         * s-rannum.adb, s-ransee.adb, s-ransee.ads (Get_Seed): Return
8102         Unsigned_64 rather than Duration.
8103         (System.Random_Numbers.Reset): Use full value of seed
8104         (do not truncate sub-second bits).
8106 2012-01-30  Thomas Quinot  <quinot@adacore.com>
8108         * sem_cat.adb, sem_ch12.adb: Minor reformatting.
8110 2012-01-30  Yannick Moy  <moy@adacore.com>
8112         * gnat_ugn.texi: Minor correction of GNAT UG, to take into
8113         account changes to -gnatwa and more recent warnings.
8115 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
8117         * exp_ch7.adb (Build_Finalizer_Call): Do not provide a source
8118         location when creating a call to a finalizer.
8119         * exp_ch11.adb (Expand_Exception_Handlers): Do not provide
8120         a source location for the first actual of Save_Occurrence for
8121         consistency sake.
8123 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
8125         * einfo.ads, einfo,adb: New attribute on scalar types:
8126         Default_Aspect_Value New attribute on  array types:
8127         Default_Aspect_Component_Value Move attribute Related_Array_Object
8128         to a different position to accomodate new aspect attributes.
8129         * freeze.adb (Freeze_Entity): Use new attributes to retrieve value
8130         of defaults set with an aspect specification, rather than using
8131         the list of aspects attached to the type, to prevent issues with
8132         partial views.
8133         * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
8134         Default_Value and Default_Component _Value, store corresponding
8135         expression in type entity.
8136         (Check_Aspect_At_End_Of_Declaration): If the default aspects
8137         are declared on the full view, use the full view to resolve the
8138         correseponding expression.
8139         * exp_ch3.adb (Init_Component): Use attribute
8140         Default_Aspect_Component_Value to perform default initialization,
8141         rather than relying on the rep item list for the type.
8142         (Get_Simple_Init_Val): Ditto.
8144 2012-01-30  Thomas Quinot  <quinot@adacore.com>
8146         * a-strhas.ads: Document risk of collision attack.
8148 2012-01-30  Yannick Moy  <moy@adacore.com>
8150         * gnat_ugn.texi: Minor update wrt warning switches.
8152 2012-01-30  Vincent Celier  <celier@adacore.com>
8154         * prj-nmsc.adb (Check_Interfaces): Report an error when a
8155         unit from Library_Interface is not a unit of the project.
8157 2012-01-30  Vincent Pucci  <pucci@adacore.com>
8159         * sem_prag.adb (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Parent
8160         links fixed inside PPC pragmas.
8161         * sem_ch12.adb: Move call to Make_Aspect_For_PPC_In_Gen_Sub_Decl.
8163 2012-01-30  Thomas Quinot  <quinot@adacore.com>
8165         * s-ransee.ads: Minor reformatting.
8167 2012-01-30  Pascal Obry  <obry@adacore.com>
8169         * prj.ads, prj.adb (For_Each_Source): Add support for skipping
8170         sources coming from an encapsulated library.
8172 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
8174         * sem_ch3.adb (Process-Full_View): fix typo.
8175         * sem_ch13.adb (Aalyze_Aspect_Specifications): if predicates
8176         appear on a private type and the full view is available, ensure
8177         existence of freeze node for full view.
8178         (Build_Predicate_Function): Attach predicate function to both
8179         views of a private type.
8181 2012-01-30  Vincent Celier  <celier@adacore.com>
8183         * prj-nmsc.adb (Check_Interfaces): Compute the Lib_Interface_ALIs
8184         for the project if either attribute Library_Interface or
8185         Interfaces is declared.
8186         (Check_Stand_Alone_Library): Use Lib_Interface_ALIs computed in
8187         Check_Interfaces.
8189 2012-01-30  Pascal Obry  <obry@adacore.com>
8191         * prj-proc.adb (Recursive_Process): Set From_Encapsulated_Lib
8192         boolean value to true in the process list created by this routine.
8193         * prj.ads (Project_List_Element): New field From_Encapsulated_Lib.
8194         Continued work for KA06-021.
8195         * prj.adb (Compute_All_Imported_Projects): Set
8196         From_Encapsulated_Lib boolean flag.
8198 2012-01-30  Vincent Pucci  <pucci@adacore.com>
8200         * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Minor
8201         code clean up.
8202         * s-diflio.ads: Minor change.
8204 2012-01-30  Javier Miranda  <miranda@adacore.com>
8206         * exp_ch9.adb (Build_Dispatching_Requeue): Add missing call
8207         to Get_Entry_Index.  Required to generate code which provides
8208         the correct value of Entry_Index in the target entry.
8210 2012-01-30  Nicolas Roche  <roche@adacore.com>
8212         * system-vxworks-ppc.ads: Add pragma Linker_Options -crtbe to
8213         fix issue with zcx on VxWorks5.
8215 2012-01-30  Pascal Obry  <obry@adacore.com>
8217         * prj.ads, prj.adb (For_Every_Project_Imported): Remove
8218         In_Aggregate_Lib.
8219         (For_Every_Project_Imported_Context): New generic routine with
8220         a context parameter.
8221         * prj-nmsc.adb: Revert to use For_Every_Project_Imported Avoid
8222         distributed complexity.
8223         * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: Ditto.
8225 2012-01-30  Thomas Quinot  <quinot@adacore.com>
8227         * exp_aggr.adb (Expand_Record_Aggregate): After creating the
8228         _parent aggregate for an extension aggregate, check whether it
8229         requires delayed (top-down) expansion.
8231 2012-01-30  Vincent Pucci  <pucci@adacore.com>
8233         * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Rewritten.
8234         * snames.ads-tmpl: Name_Item and Name_Symbols added.
8235         * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads: Rename
8236         and change the position of parameter Symbols in every Put routine.
8237         * s-dimmks.ads: Convert long float type Mks_Type into long
8238         long float.
8239         * s-llflex.ads: Modifications in comments.
8241 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
8243         * sem_ch12.adb (Earlier): Do not use the
8244         top level source locations of the two input nodes.
8246 2012-01-30  Robert Dewar  <dewar@adacore.com>
8248         * einfo.ads, sem_prag.adb, sem_attr.adb, aspects.ads,
8249         sem_cat.adb, sem_aggr.adb, exp_aggr.adb: Minor reformatting.
8251 2012-01-30  Robert Dewar  <dewar@adacore.com>
8253         * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting.
8255 2012-01-30  Olivier Hainque  <hainque@adacore.com>
8257         * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Add rule for r1 back +
8258         comments.
8260 2012-01-30  Thomas Quinot  <quinot@adacore.com>
8262         * gnat_rm.texi, sem_dist.adb, sem_dist.ads, einfo.ads, sem_prag.adb,
8263         sem_ch12.adb, sem_attr.adb, aspects.adb, aspects.ads, par-prag.adb,
8264         sem_cat.adb, snames.ads-tmpl (Sem_Dist.Is_Valid_Remote_Object_Type):
8265         New subprogram (extracted from
8266         Sem_Cat.Validate_Remote_Access_Object_Type_Declaration).
8267         (Einfo.Is_Remote_Types): Now applies to generic types. Update
8268         documentation accordingly.
8269         (Sem_Ch12.Analyze_Associations): A RACW type is acceptable as
8270         actual for a formal type to which a pragma Remote_Access_Type
8271         applies.
8272         (Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect
8273         Remote_Access_Type.
8274         (Sem_Attr.Analyze_Attribute, case Stub_Type): Attribute can
8275         be applied to a generic type if pragma Remote_Access_Type
8276         applies, in which case the type of the attribute is
8277         System.Partition_Interface.RACW_Stub_Type.
8279 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
8281         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set
8282         an alignment on fields of the RETURN type built for the CICO mechanism.
8284 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
8286         * gcc-interface/trans.c (gnat_to_gnu): Avoid making a SAVE_EXPR for
8287         a call to a function that returns an unconstrained type with default
8288         discriminant.  Similarly, avoid doing the conversion to the nominal
8289         result type in this case.
8291 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
8293         * gcc-interface/ada-tree.h (DECL_ALIASED_P): New flag.
8294         * gcc-interface/decl.c (is_variable_size): Rename to...
8295         (type_has_variable_size): ...this.
8296         (adjust_packed): Adjust to above renaming.
8297         (gnat_to_gnu_field): Set DECL_ALIASED_P on the field.
8298         (field_is_artificial): New predicate.
8299         (field_is_aliased): Likewise.
8300         (field_has_self_size): Likewise.
8301         (field_has_variable_size): Likewise.
8302         (components_to_record): Record information for the final layout during
8303         the first pass on fields.
8304         If there is an aliased field placed after a field whose length depends
8305         on discriminants, put all the fields of the latter sort, last.
8307 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
8309         * gcc-interface/gigi.h (get_minimal_subprog_decl): Declare.
8310         * gcc-interface/decl.c (get_minimal_subprog_decl): New function.
8311         * gcc-interface/trans.c (Attribute_to_gnu): Use it for the prefix of an
8312         Access-like attribute in a dispatch table if the subprogram is public.
8314 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
8316         * gcc-interface/gigi.h (create_label_decl): Adjust.
8317         * gcc-interface/utils.c (create_label_decl): Add GNAT_NODE parameter
8318         and invoke gnat_pushdecl on it.  Remove obsolete settings.
8319         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Label>: Adjust call to
8320         create_label_decl.
8321         * gcc-interface/trans.c (gnat_to_gnu) <N_Null): Likewise.  Ignore the
8322         label for debugging purposes.
8324 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
8326         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an aliased
8327         object with an unconstrained nominal subtype and if optimization isn't
8328         enabled, create a special VAR_DECL for debugging purposes.
8330 2012-01-23  Robert Dewar  <dewar@adacore.com>
8332         * sem_prag.ads, sem_prag.adb: Minor reformatting.
8334 2012-01-23  Robert Dewar  <dewar@adacore.com>
8336         * sem_ch13.adb (Analyze_Aspect_Specifications): Check for
8337         language defined aspect applied to renaming or formal type
8338         declaration (not permitted)
8340 2012-01-23  Matthew Heaney  <heaney@adacore.com>
8342         * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Vet): Replaced
8343         comment with pragma Assert.
8345 2012-01-23  Vincent Pucci  <pucci@adacore.com>
8347         * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
8348         to Make_Aspect_For_PPC_In_Gen_Sub_Decl added in ASIS mode.
8349         * sem_prag.adb, sem_prag.ads (Make_Aspect_For_PPC_In_Gen_Sub_Decl): New
8350         routine. In ASIS mode, convert any PPC pragmas into aspects in generic
8351         subprogram declaration in order to enable the analysis of PPC boolean
8352         expressions.
8354 2012-01-23  Robert Dewar  <dewar@adacore.com>
8356         * sem_ch3.adb (Analyze_Object_Declaration): Properly
8357         handle Current_Value for volatile variables (also propagate
8358         Treat_As_Volatile from type to object).
8360 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
8362         * sem_ch12.adb (Install_Body): Detect the case
8363         where the enclosing context is a package with a stub body that
8364         has already been replaced by the actual body. In such cases,
8365         the freeze node for the enclosing context must be inserted after
8366         the real body.
8368 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
8370         * sem_prag.adb (Analyze_Pragma, case Debug): Freeze the called
8371         subprogram before expanding the pragma into an if-statement with
8372         a block, to ensure that when the subprogram is null its body is
8373         properly generated before expansion.
8375 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
8377         * sem_ch12.adb (Analyze_Associations): Alphabetize local variables and
8378         constants. Rename Actual_Types to Actuals_To_Freeze. Rename Next_Formal
8379         to Saved_Formal.
8380         Freeze all eligible subprograms which appear as actuals in
8381         the instantiation.
8382         (Has_Fully_Defined_Profile): New routine.
8383         (Renames_Standard_Subprogram): New routine.
8384         (Earlier): Add local variable N. Comment update. Do not use source
8385         locations when trying to determine whether one node precedes another.
8387 2012-01-23  Gary Dismukes  <dismukes@adacore.com>
8389         * exp_ch4.adb (Expand_Concatenate): In the case
8390         where the result of a concatentation can be null, set the to
8391         result have both the low and high bounds of the right operand (not
8392         just the high bound, as was the case prior to this fix). Also,
8393         fix the saved high bound setting (Last_Opnd_High_Bound) in the
8394         empty string literal case (should have been low bound minus one,
8395         rather than plus one).
8397 2012-01-23  Thomas Quinot  <quinot@adacore.com>
8399         * scos.ads, put_scos.adb, get_scos.adb (Get_SCOs, Put_SCOs): Do not
8400         omit statement SCOs for disabled pragmas.
8402 2012-01-23  Matthew Heaney  <heaney@adacore.com>
8404         * a-cohase.ads, a-cihase.ads, a-cbhase.ads, a-coorse.ads,
8405         a-ciorse.ads, a-cborse.ads, a-cohama.ads, a-cihama.ads, a-cbhama.ads,
8406         a-coorma.ads, a-ciorma.ads, a-cborma.ads, a-cdlili.ads, a-cidlli.ads,
8407         a-cbdlli.ads, a-convec.ads, a-coinve.ads, a-cobove.ads (Cursor'Read,
8408         Cursor'Write): Declare in private part.
8409         (Reference_Type'Read, Reference_Type'Write): Ditto.
8410         (Constant_Reference_Type'Read, Constant_Reference_Type'Write): Ditto.
8412 2012-01-23  Robert Dewar  <dewar@adacore.com>
8414         * a-catizo.ads, a-calend.adb, a-calend.ads, par-ch13.adb: Minor
8415         reformatting.
8417 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
8419         * sem_ch6.adb (Analyze_Subprogram_Declaration): Do not set the
8420         Corresponding_Body on a defaulted null formal subprogram.
8421         * sem_ch12.adb (Check_Formal_Package_Instance): No check needed
8422         on a defaulted formal subprogram that is a null procedure.
8424 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
8426         * exp_ch9.adb: Update the comments involving pragma Implemented.
8427         * sem_ch3.adb (Check_Pragma_Implemented (Entity_Id)): Add local
8428         constant Subp_Alias and local variable Impl_Subp. Properly
8429         handle aliases of synchronized wrappers. Code cleanup.
8430         (Check_Pragma_Implemented (Entity_Id; Entity_Id)): Add
8431         Name_Optional as part of the condition.
8432         * sem_prag.adb (Analyze_Pragma): Add "Optional" as one of the
8433         valid choices of implementation kind.
8434         (Check_Arg_Is_One_Of): New routine.
8435         * snames.ads-tmlp: Add Name_Optional.
8437 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
8439         * par-ch13.adb: Better error recovery in illegal aspect
8440         specification.
8442 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
8444         * a-calend.adb: Add with clause for Interfaces.C. Add constant
8445         Unix_Max.
8446         (Day_Of_Week): Call the internal UTC_Time_Offset.
8447         (Split): Call the internal UTC_Time_Offset.
8448         (Time_Of): Call the internal UTC_Time_Offset.
8449         (Time_Zone_Operations.UTC_Time_Offset): Call internal UTC_Time_Offset.
8450         (UTC_Time_Offset): New library-level routine.
8451         * a-calend.ads (UTC_Time_Offset): Remove parameter
8452         Is_Historic. Update related comment on usage.
8453         * a-catizo.adb (UTC_Time_Offset): Removed.
8454         (UTC_Time_Offset (Time)): Call Time_Zone_Operations.UTC_Time_Offset.
8455         * a-caltizo.ads (UTC_Time_Offset): Removed.
8456         (UTC_Time_Offset (Time)): Add back the default expression of parameter
8457         Date.
8459 2012-01-23  Robert Dewar  <dewar@adacore.com>
8461         * sprint.ads, sprint.adb (Sprint_Node_List): Add New_Lines parameter
8462         (pg,po,ps): Make sure each entry starts on new line.
8464 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
8466         * a-calend.ads, a-calend.adb: Define types int and int_Pointer. Update
8467         the parameter profile of procedure localtime_tzoff and its associated
8468         comment.
8469         (Day_Of_Week): Do not treat the input date as historical
8470         with respect to time zones.
8471         (Split): Do not treat the input
8472         date as historical with respect to time zones.  (Time_Of): Do
8473         not treat the input constituents as forming a historical date
8474         with respect to time zones.
8475         (UTC_Time_Offset): Add new formal
8476         parameter Is_Historic. Add local variable Flag. Update the call
8477         to localtime_tzoff.
8478         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): New routine.
8479         (UTC_Time_Offset (Time)): Update the call to
8480         Time_Zone_Operations.UTC_Time_Offset.
8481         * sysdep.c (__gnat_localtime_tzoff): Update parameter
8482         profile. Split the processing of offsets on Windows into two - one
8483         part of historic time stamps and the other for the current time.
8485 2012-01-23  Robert Dewar  <dewar@adacore.com>
8487         * a-calend.adb: Minor reformatting.
8489 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
8491         * exp_ch9.adb, sem_ch9.adb: Handle array of access to synchronized
8492         interface in requeue statement.
8494 2012-01-23  Cyrille Comar  <comar@adacore.com>
8496         * projects.texi: Remove references to main units and replace
8497         with references to main programs to be coherent with the
8498         documentation.
8500 2012-01-23  Robert Dewar  <dewar@adacore.com>
8502         * s-utf_32.adb: Minor reformatting.
8504 2012-01-23  Vincent Celier  <celier@adacore.com>
8506         * snames.ads-tmpl: Minor comment addition Indicate that
8507         Name_Library_Encapsulated_Options is only used in gprbuild.
8509 2012-01-23  Robert Dewar  <dewar@adacore.com>
8511         * sem_ch10.adb (Analyze_Subunit): Properly save/restore cunit
8512         restrictions.
8514 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
8516         * snames.ads-tmpl: Add Name_Synchronization.
8517         * aspects.ads, aspects.adb: Add Aspect_Synchronization to
8518         enumeration type and related maps.
8519         * sem_ch13.adb (Analyze_Aspect_Specifications): Handle Aspect
8520         Synchronization, build corresponding pragma Implemented.
8521         * sem_util.adb (Implementation_Kind): Handle both explicit and
8522         implicit pragma_argument association to retrieve the given
8523         synchronization mode.
8525 2012-01-23  Robert Dewar  <dewar@adacore.com>
8527         * sem_ch10.adb, errout.adb: Minor reformatting.
8529 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
8531         * sem_res.adb (Resolve_Actuals): An actual in a call to an
8532         Ada 2012 Reference function does not lead to a dangerous order
8533         dependence.
8535 2012-01-23  Gary Dismukes  <dismukes@adacore.com>
8537         * exp_util.adb (Is_Iterated_Container): Test
8538         Is_Entity_Name when searching for calls to the default iterator,
8539         to avoid blowing up on indirect calls which have an explicit
8540         dereference as the call name.
8542 2012-01-23  Thomas Quinot  <quinot@adacore.com>
8544         * errout.adb (Set_Msg_Node): For an N_Expanded_Name, output
8545         the complete expanded name, rather than just its Selector_Name.
8547 2012-01-23  Thomas Quinot  <quinot@adacore.com>
8549         * a-textio.adb (Put): Rewrite one-parameter Character version to
8550         just call the two-parameter one with Current_Out.
8552 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
8554         * freeze.adb (Check_Current_Instance): Issue an
8555         error when the prefix of 'Unchecked_Access or 'Access does not
8556         denote a legal aliased view of a type.
8557         (Freeze_Record_Type): Do not halt the processing of record components
8558         once the Has_Controlled_Component is set as this bypasses the remaining
8559         checks.
8560         (Is_Aliased_View_Of_Type): New routine.
8562 2012-01-23  Thomas Quinot  <quinot@adacore.com>
8564         * errout.ads, freeze.adb: Minor reformatting.
8566 2012-01-23  Thomas Quinot  <quinot@adacore.com>
8568         * sem_ch10.adb, sem_prag.adb: Remove redundant apostrophes in error
8569         messages.
8571 2012-01-23  Olivier Hainque  <hainque@adacore.com>
8573         * adadecode.c (__gnat_decode): Deal with empty input early,
8574         preventing potential erroneous memory access later on.
8576 2012-01-21  Eric Botcazou  <ebotcazou@adacore.com>
8578         PR ada/46192
8579         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the case of a
8580         renaming, preserve the volatileness through the indirection, if any.
8582 2012-01-14  Andreas Schwab  <schwab@linux-m68k.org>
8584         * gcc-interface/Makefile.in (OSCONS_EXTRACT): Add
8585         $(GNATLIBCFLAGS).
8587 2012-01-10  Pascal Obry  <obry@adacore.com>
8589         * prj-nmsc.adb (Check_Library_Attributes):
8590         Kill check for object/source directories for aggregate libraries.
8592 2012-01-10  Matthew Heaney  <heaney@adacore.com>
8594         * a-cdlili.adb, a-cdlili.ads, a-cihama.adb, a-cihama.ads, a-coinve.adb,
8595         a-coinve.ads, a-ciorse.adb, a-ciorse.ads, a-coorma.adb, a-coorma.ads,
8596         a-cborma.adb, a-cborma.ads, a-cidlli.adb, a-cidlli.ads, a-cimutr.adb,
8597         a-cimutr.ads, a-cihase.adb, a-cihase.ads, a-cohama.adb, a-cohama.ads,
8598         a-coorse.adb, a-coorse.ads, a-cbhama.adb, a-cbhama.ads, a-cborse.adb,
8599         a-cborse.ads, a-comutr.adb, a-comutr.ads, a-ciorma.adb, a-cobove.adb,
8600         a-ciorma.ads, a-cobove.ads, a-convec.adb, a-convec.ads, a-cohase.adb,
8601         a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbmutr.adb, a-cbmutr.ads,
8602         a-cbhase.adb, a-cbhase.ads (Reference, Constant_Reference): Declare
8603         container parameter as aliased in/in out.
8604         Code clean ups.
8606 2012-01-10  Bob Duff  <duff@adacore.com>
8608         * s-os_lib.ads: Improve comment.
8610 2012-01-10  Geert Bosch  <bosch@adacore.com>
8612         * s-gearop.adb (Forward_Eliminate): Avoid improper aliasing
8613         for complex Scalar.
8615 2012-01-10  Bob Duff  <duff@adacore.com>
8617         * sem_intr.adb (Check_Shift): Use RM_Size instead of Esize, when
8618         checking that the 'Size is correct. If the type is "mod 2**12",
8619         for example, it's illegal, but Esize is the 'Object_Size, which
8620         will be something like 16 or 32, so the error ('Size = 12) was
8621         not detected.
8622         * gnat_rm.texi: Improve documentation of shift
8623         and rotate intrinsics.
8625 2012-01-10  Pascal Obry  <obry@adacore.com>
8627         * prj.adb (For_Every_Project_Imported): Fix
8628         implementation to make sure we return each project only once
8629         for aggragte libraries. It is fine to return a project twice for
8630         aggregate projects, this was the case as a Project_Id is different
8631         in each project tree. The new implementation use a table based on
8632         the project name to ensure proper detection of duplicate project
8633         in aggregate library. A new context is then created to continue
8634         retrurning duplicate project for aggregate libraries.
8636 2012-01-09  Eric Botcazou  <ebotcazou@adacore.com>
8638         * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
8639         return value in the variable-sized return type case if the target is
8640         an array with fixed size.  However, do not create it if this is the
8641         expression of an object declaration.
8643 2012-01-09  Eric Botcazou  <ebotcazou@adacore.com>
8645         * gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko.
8647 2012-01-06  Robert Dewar  <dewar@adacore.com>
8649         * a-wichha.ads, a-wichun.ads, a-zchhan.ads, a-zchuni.ads,
8650         s-utf_32.ads: Add pragma Pure
8651         * s-utf_32.adb: Suppress warnings on non-static constants (now
8652         that this is Pure).
8654 2012-01-06  Bob Duff  <duff@adacore.com>
8656         * s-rpc.ads (Read, Write): Add overriding indicators.
8658 2012-01-06  Robert Dewar  <dewar@adacore.com>
8660         * gnat_rm.texi: Add documentation for conventions
8661         Ada_Pass_By_Copy and Ada_Pass_By_Reference.
8663 2012-01-06  Gary Dismukes  <dismukes@adacore.com>
8665         * a-tienio.adb (Put): Add exception message on
8666         raise statements. Remove unneeded blocks and object declarations.
8668 2012-01-06  Robert Dewar  <dewar@adacore.com>
8670         * sem_prag.adb: Minor reformatting.
8672 2012-01-06  Ed Schonberg  <schonberg@adacore.com>
8674         * sinfo.ads, sinfo.adb (Has_Prefixed_Call): New flag to indicate
8675         that a selected component within a generic unit has been resolved
8676         as a prefixed call with local references.
8677         * sem_ch3.adb (Is_Visible_Component): In an instance body a selected
8678         component is always visible.
8679         * sem_ch4.adb (Analyze_Selected_Component): If the node is a
8680         prefixed call in an instance, do not look for visible components
8681         of the type.
8682         * sem_ch12.adb (Reset_Entity): If a selected component has resolved
8683         to a prefixed call, mark the node accordingly when prefix and
8684         selector are local references.
8686 2012-01-02  Eric Botcazou  <ebotcazou@adacore.com>
8688         * gnatvsn.ads (Current_Year): Bump to 2012.
8690 Copyright (C) 2012 Free Software Foundation, Inc.
8692 Copying and distribution of this file, with or without modification,
8693 are permitted in any medium without royalty provided the copyright
8694 notice and this notice are preserved.