1 2012-12-21 Ed Schonberg <schonberg@adacore.com>
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.
13 * cstreams.c: Likewise.
17 * initialize.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>
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
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
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
74 * snames.ads-tmpl: Add new name Assume. Add a pragma identifier
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
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
144 * sem_ch4.adb (Analyze_Allocator): Remove code that implements
145 the check for AI05-0104, the check is syntactic and performed
148 2012-12-05 Geert Bosch <bosch@adacore.com>
150 * sem_attr.adb (Analyze_Attribute): Use base type for floating
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
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
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
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
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
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
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
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
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
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
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 ..."
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
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
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
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>
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>
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
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
679 * vms_data.ads: Overflow check numbers must be in range 1-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
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
694 * gnat1drv.adb (Adjust_Global_Switches): Fixes for new handling
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.
704 * snames.ads-tmpl: Replace Name_Checked by Name_Strict.
705 * switch-c.adb (Get_Overflow_Mode): Eliminate 0 setting,
707 * types.ads (Overflow_Check_Type): Remove Suppressed, change
708 Checked to Strict (Suppress_Record): Overflow check controlled
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
1287 2012-10-29 Tristan Gingold <gingold@adacore.com>
1289 * lib-writ.adb (Write_ALI): Emit partition elaboration policy
1291 * lib-writ.ads: Document partition elaboration policy indication.
1292 * sem_prag.adb (Check_Arg_Is_Partition_Elaboration_Policy): New
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
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):
1397 (Check_Dispatching_Domains_Used): Removed.
1398 (Gen_Adafinal): Remove call to above procedures.
1399 (Resolve_Binder_Options): Handle system restrictions and dispatching
1402 2012-10-29 Tristan Gingold <gingold@adacore.com>
1404 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Remove
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
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
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
1473 2012-10-29 Tristan Gingold <gingold@adacore.com>
1475 * exp_ch9.adb (Build_Task_Activation_Call): Do nothing on
1477 * bindgen.adb (System_Tasking_Restricted_Stages_Used): New variable.
1478 (Gen_Adainit): Declare and call Activate_Tasks when the above variable
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
1509 2012-10-29 Bob Duff <duff@adacore.com>
1511 * sem_ch13.adb (Replace_Type_Reference): Use correct sloc for
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
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
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>
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
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
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
1659 2012-10-05 Robert Dewar <dewar@adacore.com>
1661 * sem_util.adb (Has_One_Matching_Field): Handle case of lone
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.
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
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
1735 2012-10-04 Robert Dewar <dewar@adacore.com>
1737 * s-bignum.adb (Big_Exp): Raise Storage_Error for ludicrously
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
1753 * bindgen.adb (Gen_Adainit): Do not emit Zero_Cost_Exceptions
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
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
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
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
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):
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
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
1877 (Expand_Membership_Minimize_Eliminate_Overflow): Use
1878 expression action node to avoid using insert actions (bombs in
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
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
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
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
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
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
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
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
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
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
2145 * makeutl.ads, makeutl.adb (Absolute_Path): New function, moved from
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
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
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.
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
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
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
2302 * s-bignum.adb (To_Bignum): Handle largest negative integer
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
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
2317 * exp_ch4.adb (Expand_N_Op_Expon): Changes for Minimize/Eliminate
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
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):
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
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
2378 2012-10-01 Thomas Quinot <quinot@adacore.com>
2380 * s-bignum.adb (Allocate_Bignum): Reorganize to kill strict
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
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
2454 * sem_ch8.adb (Analyze_Expanded_Name): Analyze dimension of
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
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
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
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
2540 2012-10-01 Vincent Pucci <pucci@adacore.com>
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
2551 * checks.adb (Expr_Known_Valid): Float literals are assumed to be valid
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
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
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
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
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',
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
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
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
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
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
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
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
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
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
2849 * sem_util.adb (Is_Object_Reference): Attribute 'Result now
2851 * usage.adb (Usage): Add usage lines for validity switches 'l',
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
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
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
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
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
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
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
2995 2012-08-06 Thomas Quinot <quinot@adacore.com>
2997 * g-sercom-mingw.adb, s-oscons-tmplt.c: Add missing constants
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
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
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
3084 * uintp.adb (UI_To_Int): Add assertion to guard against calling
3087 2012-08-06 Vincent Pucci <pucci@adacore.com>
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
3096 * sem_ch9.adb (Allows_Lock_Free_Implementation):
3097 Support_Atomic_Primitives check replaces previous erroneous
3099 * sem_util.adb, sem_util.ads (Support_Atomic_Primitives):
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
3785 (Expand_N_Selective_Accept): Fix incorrect insertion point for
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
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
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
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
3859 (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
3860 * a-except.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
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
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
3889 (Null_Occurrence): Consider it.
3890 * a-exexda.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
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
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
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
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
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
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
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
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,
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
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.
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
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
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
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.
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
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
4348 2012-07-09 Javier Miranda <miranda@adacore.com>
4350 * exp_disp.adb (Write_DT): Avoid runtime crash of this debugging
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
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
4405 2012-07-09 Tristan Gingold <gingold@adacore.com>
4407 * a-exexpr-gcc.adb (CleanupUnwind_Handler): Now imported from
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
4420 * s-fileio.adb (Get_Case_Sensitive): Move function inside
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
4432 2012-07-09 Robert Dewar <dewar@adacore.com>
4434 * freeze.adb, prj-util.adb, prj-util.ads, sem_ch13.adb: Minor
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
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'
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
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>
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>
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
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
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
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
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
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
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
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>
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
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.
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
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
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
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
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
5015 (Is_Finalization_Wrapper): New routine with corresponding pragma Inline.
5016 (Set_Is_Finalization_Wrapper): New routine with corresponding pragma
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
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
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
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
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
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
5185 (gnat_post_options): Disable gimple-based SCO generator.
5186 * gnat_ugn.texi: Document that -gnateS is an obsolete synonym
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>
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
5304 (Process_Binder_File): ...instead of here. Delete Using_GNU_Linker,
5305 Opening and Closing local variables. Do not handle the GNU linker
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
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>
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
5356 2012-05-15 Geert Bosch <bosch@adacore.com>
5358 * uintp.adb (UI_Rem): Remove optimizations, as they are complex and are
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
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
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
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
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,
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
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
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
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
5544 * sem_ch13.adb (Analyze_Aspect_Specifications): generate pragam
5545 for aspect Convention. Add placeholders for Link_Name and
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
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
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
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
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
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
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
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>
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>
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
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
5933 2012-05-02 Pascal Obry <obry@adacore.com>
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
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
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
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).
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.
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
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
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
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
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)
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
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
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
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
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
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
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
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>
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
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
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
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
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
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
6746 2012-03-19 Robert Dewar <dewar@adacore.com>
6748 * gnat_ugn.texi: Fix index entry for -gnatei (now we have
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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.
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):
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
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__]:
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.
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
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
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
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,
7240 * targparm.adb (Get_Target_Parameters): Add processing for
7241 Atomic_Sync_Default.
7242 * gnat1drv.adb (Adjust_Global_Switches): Adjust Supress_Options
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
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):
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
7641 2012-02-22 Eric Botcazou <ebotcazou@adacore.com>
7643 * init.c (__gnat_error_handler) [Linux]: Map SIGBUS to
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
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
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
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
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
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
7744 (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity
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
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
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
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
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.
7895 association for Aspect_Simple_Storage_Pool_Type.
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.
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
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
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
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
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
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.
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
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
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
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
8065 2012-01-30 Javier Miranda <miranda@adacore.com>
8068 * sem_ch8.adb (Analyze_Subprogram_Renaming):
8069 Handle self-renaming when the renamed entity is referenced using
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
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
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
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
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
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
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 +
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
8272 (Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect
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
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
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
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
8380 Freeze all eligible subprograms which appear as actuals in
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
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
8442 2012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
8444 * a-calend.adb: Add with clause for Interfaces.C. Add constant
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
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
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
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
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
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
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
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
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>
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
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.
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
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
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
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
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.