1 2011-11-12 Iain Sandoe <iains@gcc.gnu.org>
3 * gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link
5 (OSCONS_CPP, OSCONS_EXTRACT): New.
6 (./bldtools/oscons/xoscons): New Target.
7 ($(RTSDIR)/s-oscons.ads): New Target.
8 (gnatlib): Depend on $(RTSDIR)/s-oscons.ads.
9 * gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency.
10 * Make-generated.in: Remove machinery to generate xoscons and
13 2011-11-10 Eric Botcazou <ebotcazou@adacore.com>
15 * fe.h (Serious_Errors_Detected): New macro.
16 * gcc-interface/gigi.h (build_atomic_load): Declare.
17 (build_atomic_store): Likewise.
18 * gcc-interface/trans.c (atomic_sync_required_p): New predicate.
19 (call_to_gnu): Add ATOMIC_SYNC parameter. Use local variable.
20 Build an atomic load for an In or In Out parameter if needed.
21 Build an atomic store for the assignment of an Out parameter if needed.
22 Build an atomic store to the target if ATOMIC_SYNC is true.
23 (present_in_lhs_or_actual_p): New predicate.
24 (gnat_to_gnu) <N_Identifier>: Build an atomic load if needed.
25 <N_Explicit_Dereference>: Likewise.
26 <N_Indexed_Component>: Likewise.
27 <N_Selected_Component>: Likewise.
28 <N_Assignment_Statement>: Adjust call to call_to_gnu.
29 Build an atomic store to the LHS if needed.
30 <N_Function_Call>: Adjust call to call_to_gnu.
31 * gcc-interface/utils2.c: Include toplev.h.
32 (resolve_atomic_size): New static function.
33 (build_atomic_load): New function.
34 (build_atomic_store): Likewise.
35 * gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h.
37 2011-11-07 Olivier Hainque <hainque@adacore.com>
39 * sigtramp-ppcvxw.c: Add general comments.
40 (CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add
41 rules for r2 to r13, plus CTR and XER.
42 (CFA_REG): New, register number used to hold the local CFA.
43 (CFI_DEF_CFA, SIGTRAMP_BODY): Use it.
44 Make that 15, not 14, with documentation.
45 (TCR): Undef before definition, preventing conflict with reg number in
48 2011-11-07 Robert Dewar <dewar@adacore.com>
50 * exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb,
51 aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting.
52 * gcc-interface/Make-lang.in: Update dependencies.
54 2011-11-07 Ed Schonberg <schonberg@adacore.com>
56 * exp_ch6.adb: A tagged type is a legal actual for an aliased
59 2011-11-07 Pascal Obry <obry@adacore.com>
61 * g-socket.adb, g-socket.ads: Minor reformatting.
63 2011-11-07 Robert Dewar <dewar@adacore.com>
65 * sem_res.adb (Resolve_Actuals): Minor error message improvement.
67 2011-11-07 Robert Dewar <dewar@adacore.com>
69 * gnat_ugn.texi: Add discussion of default mode handling of
70 source representation with no -gnatW option given, in particular
71 noting that NEL (next line) is not recognized in this context.
73 2011-11-07 Yannick Moy <moy@adacore.com>
75 * sem_util.adb (Note_Possible_Modification): In Alfa mode,
76 generate a reference for a modification even when the modification
77 does not come from source.
79 2011-11-07 Ed Schonberg <schonberg@adacore.com>
81 * exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form,
82 use the indexing attributes rather than the Element function,
83 to obtain variable references.
84 * sem_ch4.adb (Try_Container_Indexing): Code cleanup. Use
85 Find_Aspect rather than iterating over representation
86 items. Improve error message.
87 * a-cohama.adb, a-cohama.ads Update to latest RM, with two versions
88 of Reference functions.
90 2011-11-07 Yannick Moy <moy@adacore.com>
92 * sem_util.adb (Unique_Entity): For a parameter on a subprogram
93 body that has a corresponding parameter on the subprogram
94 declaration, define the unique entity as being the declaration
97 2011-11-07 Ed Schonberg <schonberg@adacore.com>
99 * sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the
100 return type of a function is the class-wide type of an incomplete
101 type T, T can be a Taft-amendment type and does not have to be
102 completed in the current private part.
104 2011-11-07 Ed Schonberg <schonberg@adacore.com>
106 * aspects.ads (Inherited_Aspect): Map that indicates type aspects
107 that are inherited by default, and apply to the class-wide type
109 * aspects.adb (Find_Aspect): If the entity is class-wide and the
110 aspect is inherited, use the aspect of the specific type.
112 2011-11-07 Hristian Kirtchev <kirtchev@adacore.com>
114 * exp_alfa.adb: Remove with and use clause for
115 Exp_Ch8. Add with and use clause for Exp_Util.
116 Remove local constant Disable_Processing_Of_Renamings.
117 (Expand_Alfa_N_Object_Renaming_Declaration): The expansion of
118 object renamings has been reenabled.
119 (Expand_Possible_Renaming):
120 The expansion of identifier and expanded names has been
121 reenabled. Perform the substitutions only for entities that
123 * exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util.
124 * exp_util.adb (Evaluate_Name): Moved from Exp_Ch8.
125 (Remove_Side_Effects): Alphabetize local variables. Add a guard
126 to avoid the infinite expansion of an expression in Alfa mode. Add
127 processing for function calls in Alfa mode.
128 * exp_util.ads (Evaliate_Name): Moved from Exp_Ch8.
130 2011-11-07 Ed Schonberg <schonberg@adacore.com>
132 * freeze.adb (Freeze_Entity): If the entity is an access to
133 subprogram whose designated type is itself a subprogram type,
134 its own return type must be decorated with size information.
136 2011-11-04 Arnaud Charlet <charlet@adacore.com>
138 * gcc-interface/Make-lang.in: Update dependencies.
140 2011-11-04 Robert Dewar <dewar@adacore.com>
142 * sprint.adb (Sprint_Node_Actual, case Qualified_Expression):
143 Avoid junk semicolon after argument of machine code Asm operand.
145 2011-11-04 Robert Dewar <dewar@adacore.com>
147 * exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes in
148 CodePeer mode or if restriction No_Exception_Handlers is present.
149 * exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/pop
150 nodes in CodePeer mode or if restriction No_Exception_Handlers
153 2011-11-04 Robert Dewar <dewar@adacore.com>
155 * s-tassta.adb, atree.ads, errout.adb, sinput.adb: Minor reformatting.
157 2011-11-04 Ed Schonberg <schonberg@adacore.com>
159 * sem_ch6.adb (Analyze_Subprogram_Specification): The
160 specification is legal if it is a function that returns an
161 abstract type, if it comes from an attribute renaming of a stream
162 attribute of an abstract type.
164 2011-11-04 Gary Dismukes <dismukes@adacore.com>
166 * exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexed
167 components, check whether recursively check whether the prefix
168 denotes an unaligned object.
170 2011-11-04 Ed Schonberg <schonberg@adacore.com>
172 * sem_prag.adb (Analyze_Pragma, case Debug): The argument of
173 the pragma is legal if it is an expanded name that denotes a
174 procedure that be can called without parameters.
176 2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
178 * gnat_ugn.texi (Performance Considerations) <Vectorization
179 of loops>: New sub-section. <Other Optimization Switches>:
182 2011-11-04 Robert Dewar <dewar@adacore.com>
184 * gnat_rm.texi: Minor reformatting.
186 2011-11-04 Matthew Heaney <heaney@adacore.com>
188 * a-convec.adb, a-coinve.adb, a-cobove.adb (Merge): Raise PE
189 when Target and Source denote same non-empty object
190 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Merge): Ditto
192 2011-11-04 Robert Dewar <dewar@adacore.com>
194 * exp_attr.adb: Minor reformatting.
196 2011-11-04 Ed Schonberg <schonberg@adacore.com>
198 * exp_ch5.adb (Expand_Assign_Record): Do not generate a
199 discriminant assignment within an initialization proc if the
200 record is an unchecked union, as it can only come from the
201 initialization of an unchecked union component.
203 2011-11-04 Robert Dewar <dewar@adacore.com>
205 * gnat_ugn.texi: Minor reformatting.
207 2011-11-04 Robert Dewar <dewar@adacore.com>
209 * par-labl.adb (Rewrite_As_Loop): Generate info msg rather than
212 2011-11-04 Robert Dewar <dewar@adacore.com>
214 * exp_ch4.adb: Minor code reorganization (remove junk obsolete
217 2011-11-04 Hristian Kirtchev <kirtchev@adacore.com>
219 * exp_alfa.adb: Add local constant
220 Disable_Processing_Of_Renamings;
221 (Expand_Alfa_N_Object_Renaming_Declaration): Disable
222 the name evaluation of object renamings for now.
223 (Expand_Potential_Renaming): Do not perform the substitution
225 * exp_util.adb (Remove_Side_Effects): Remove processing for
226 functions with side effects in Alfa mode.
228 2011-11-04 Gary Dismukes <dismukes@adacore.com>
230 * bindgen.adb (Gen_Elab_Calls): In the case
231 of the AAMP target, set elaboration entities to 1 rather than
234 2011-11-04 Ed Schonberg <schonberg@adacore.com>
236 * sem_ch10.adb (Install_Limited_With_Unit): To establish the
237 proper entities on the ancestors of a child unit that appear
238 in a limited_with clause, follow the unit links because the
239 units are not analyzed and scope information is incomplete.
241 2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
243 * exp_ch4.adb (Expand_N_Selected_Component): Refine code
244 setting the Atomic_Sync_Required flag to detect one more case.
245 * exp_util.adb (Activate_Atomic_Synchronization): Refine code
246 setting the Atomic_Sync_Required flag to exclude more cases,
247 depending on the parent of the node to be examined.
249 2011-11-04 Bob Duff <duff@adacore.com>
251 * g-excact.adb: Minor: use named notation.
253 2011-11-04 Ed Schonberg <schonberg@adacore.com>
255 * sem_ch5.adb: Improve error messages for illegal iterators.
257 2011-11-04 Hristian Kirtchev <kirtchev@adacore.com>
259 * exp_alfa.adb: Add with and use clauses for Exp_Ch8 and
261 (Expand_Alfa): Alphabetize cases on first choice. Add
262 processing for object renaming declarations, identifiers and
264 (Expand_Alfa_N_In): Remove useless return.
265 (Expand_Alfa_N_Object_Renaming_Declaration): New routine.
266 (Expand_Potential_Renaming): New routine.
267 * exp_ch8.adb (Evaluate_Name): Moved to the top level.
268 (Expand_N_Object_Declaration): Alphabetize local variables. Move
269 Evaluate_Name out to the top level.
270 * exp_ch8.ads (Evaluate_Name): Moved from body to package spec.
271 * exp_util.adb (Remove_Side_Effects): Add processing for
272 functions with side effects in Alfa mode.
274 2011-11-04 Hristian Kirtchev <kirtchev@adacore.com>
276 * gnat_rm.texi: Add entries for
277 restrictions No_Relative_Delay, No_Requeue_Statements and
278 No_Stream_Optimizations.
280 2011-11-04 Ed Schonberg <schonberg@adacore.com>
282 * sem_ch4.adb: Set type of entity in prefixed call, for
283 completeness in a generic context.
285 2011-11-04 Yannick Moy <moy@adacore.com>
287 * sem_prag.adb: Minor refactoring (renaming of a parameter).
289 2011-11-04 Robert Dewar <dewar@adacore.com>
291 * atree.ads: Minor reformatting.
293 2011-11-04 Robert Dewar <dewar@adacore.com>
295 * checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.d
297 * exp_ch2.adb (Expand_Entity_Reference): Use
298 Activate_Atomic_Synchronization
299 * exp_ch4.adb (Expand_N_Explicit_Dereference): Use
300 Activate_Atomic_Synchronization (Expand_N_Indexed_Compoonent):
301 Activate_Atomic_Synchronization (Expand_N_Selected_Component):
302 Use Activate_Atomic_Synchronization
303 * exp_util.ads, exp_util.adb (Activate_Atomic_Synchronization): New
305 * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now apply to
306 N_Selected_Component node
308 2011-11-04 Robert Dewar <dewar@adacore.com>
310 * sem_prag.adb, atree.ads, prj-env.adb, prj-env.ads: Minor reformatting.
312 2011-11-04 Yannick Moy <moy@adacore.com>
314 * atree.adb, atree.ads (Set_Original_Node): New set procedure.
315 * sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects):
316 In ASIS mode, no splitting of aspects between conjuncts.
317 (Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragma
318 expressions refer to the original aspect expressions through
319 the Original_Node link. This is used in semantic analysis for
320 ASIS mode, so that the original expression also gets analyzed.
321 * sem_prag.adb (Preanalyze_TC_Args,
322 Check_Precondition_Postcondition,
323 Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma
324 generated from a source aspect, also analyze the original aspect
326 (Check_Expr_Is_Static_Expression): New procedure
327 similar to existing procedure Check_Arg_Is_Static_Expression,
328 except called on expression inside pragma.
330 2011-11-04 Tristan Gingold <gingold@adacore.com>
332 * prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, from
333 Find_Project.Try_Path_Name.
334 (Find_Project): Use Find_Name_In_Path to implement Try_Path_Name.
336 2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
338 * s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile.
340 2011-11-04 Pascal Obry <obry@adacore.com>
342 * projects.texi: Add short description for qualifiers aggregate
343 and aggregate library.
345 2011-11-04 Matthew Heaney <heaney@adacore.com>
347 * Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb]
348 * a-cgaaso.adb: Replaced implementation with instantiation
350 * a-cogeso.ad[sb] This is the new Ada 2012 unit
351 Ada.Containers.Generic_Sort
353 2011-11-04 Robert Dewar <dewar@adacore.com>
355 * exp_ch2.adb (Expand_Entity_Reference): Do not set
356 Atomic_Sync_Required for the case of a prefix of an attribute.
357 * exp_ch4.adb (Expand_N_Explicit_Dereference): May require
358 atomic synchronization
359 (Expand_N_Indexed_Component): Ditto.
360 (Expand_B_Selected_Component): Ditto.
361 * sem_prag.adb (Process_Suppress_Unsuppress):
362 Disable/Enable_Atomic_Synchronization can now occur for array
363 types with pragma Atomic_Components.
364 * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now occur on
365 N_Explicit_Dereference nodes and on N_Indexed_Component nodes.
367 2011-11-04 Gary Dismukes <dismukes@adacore.com>
369 * gnat_ugn.texi: Editorial corrections for gnattest section.
371 2011-11-04 Robert Dewar <dewar@adacore.com>
373 * sem_prag.adb: Minor reformatting.
374 * gnat_rm.texi: Update documentation for pragma Warnings (Off,
376 * exp_ch2.adb (Expand_Entity_Reference): Only set
377 Atomic_Sync_Required on entities that are variables. Doesn't
378 make any sense on anything else.
380 2011-11-04 Robert Dewar <dewar@adacore.com>
382 * exp_ch2.adb (Expand_Entity_Reference): Extend handling of
383 atomic sync to type case.
384 * sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can
387 2011-11-04 Robert Dewar <dewar@adacore.com>
389 * sem_warn.adb (Warn_On_Useless_Assignment): More accurate test
391 * gcc-interface/Make-lang.in: Update dependencies.
393 2011-11-04 Robert Dewar <dewar@adacore.com>
395 * sem_prag.adb: Detect more cases of Long_Float inconsistencies at
398 2011-11-04 Matthew Heaney <heaney@adacore.com>
400 * Makefile.rtl, impunit.adb: Added a-sfecin.ads,
401 * a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb],
402 a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb]
403 * a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb],
404 a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb],
405 a-sulcin.ad[sb]: New files.
407 2011-11-04 Geert Bosch <bosch@adacore.com>
409 * i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads,
410 s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads,
411 i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads,
412 s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK.
413 * gcc-interface/Makefile.in: Remove libgnala and related objects.
415 2011-11-04 Matthew Heaney <heaney@adacore.com>
417 * a-cdlili.ad[sb], a-cidlli.ad[sb], a-coorse.ad[sb], a-ciorse.ad[sb],
418 a-coorma.ad[sb], a-ciorma.ad[sb], a-coormu.ad[sb], a-ciormu.ad[sb],
419 a-cohama.ad[sb], a-cihama.ad[sb], a-cohase.ad[sb], a-cihase.ad[sb],
420 a-convec.ad[sb], a-coinve.ad[sb] (Assign, Copy): New operations
423 2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
425 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert
426 that the type of the parameters isn't dummy in type_annotate_only mode.
428 2011-11-04 Robert Dewar <dewar@adacore.com>
430 * sem_ch12.adb: Minor reformatting
432 2011-11-04 Gary Dismukes <dismukes@adacore.com>
434 * bindgen.adb (Gen_Elab_Calls): In the case of the AAMP target,
435 initialize elaboration entities to zero when specs are processed.
437 2011-10-28 Iain Sandoe <iains@gcc.gnu.org>
438 Eric Botcazou <ebotcazou@adacore.com>
441 * init.c (__gnat_error_handler) [Darwin]: Apply a work-around to the
442 bug filed as radar #10302855 (inconsistent unwind data for sigtramp).
444 2011-10-28 Eric Botcazou <ebotcazou@adacore.com>
447 * gcc-interface/Makefile.in (SYMDEPS): Delete.
448 (LIBICONV): New variable.
449 (LIBICONV_DEP): Likewise.
450 (LIBS): Add $(LIBICONV).
451 (LIBDEPS): Add $(LIBICONV_DEP).
452 (EXTRA_GNATTOOLS_OBJS): Merge into...
453 (TOOLS_LIBS): ...this. Add $(LIBICONV).
455 2011-10-26 Eric Botcazou <ebotcazou@adacore.com>
457 * gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local
458 variable. Always create the elaboration variable, if any, as constant.
460 2011-10-26 Eric Botcazou <ebotcazou@adacore.com>
462 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Try to
463 make a packable type for fields of union types as well.
464 <is_type>: Use RECORD_OR_UNION_TYPE_P predicate.
465 (gnat_to_gnu_component_type): Try to make a packable type for fields
466 of union types as well.
467 (make_packable_type): Use RECORD_OR_UNION_TYPE_P predicate.
468 (maybe_pad_type): Try to make a packable type for fields of union types
470 (gnat_to_gnu_field): Likewise.
471 (is_variable_size): Use RECORD_OR_UNION_TYPE_P predicate.
472 (set_rm_size): Likewise.
474 * gcc-interface/misc.c (gnat_type_max_size): Likewise.
475 * gcc-interface/trans.c (add_decl_expr): Likewise.
476 * gcc-interface/utils.c (finish_record_type): Likewise.
477 * gcc-interface/utils2.c (build_simple_component_ref): Likewise.
479 2011-10-26 Eric Botcazou <ebotcazou@adacore.com>
481 * gcc-interface/decl.c (gnat_to_gnu_field): Always check components
482 declared as atomic. Move around conditionally executed code.
484 2011-10-24 Robert Dewar <dewar@adacore.com>
486 * sem.adb (Initialize): Fix bug that blew up if called a second time.
488 2011-10-24 Robert Dewar <dewar@adacore.com>
490 * tb-alvxw.c, tracebak.c, expect.c, initflt.c, tb-alvms.c,
491 tb-ivms.c, tb-gcc.c: Update headers to GPL 3.
493 2011-10-24 Robert Dewar <dewar@adacore.com>
495 * sem_prag.adb (Analyze_Pragma, case Debug): Give proper pragma
498 2011-10-24 Hristian Kirtchev <kirtchev@adacore.com>
500 * gnat_rm.texi: Add an entry for restriction No_Finalization.
502 2011-10-24 Ed Schonberg <schonberg@adacore.com>
504 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): If the
505 current instance is within the one that contains the generic,
506 the freeze node for the current one must appear in the current
507 declarative part. Ditto if the current instance is within another
508 package instance. In both of these cases the freeze node of the
509 previous instance is not relevant.
511 2011-10-24 Gary Dismukes <dismukes@adacore.com>
513 * switch-m.adb (Normalize_Compiler_Switches): Add recognition
514 of AAMP-specific switches -univ and -aamp_target.
516 2011-10-24 Robert Dewar <dewar@adacore.com>
518 * a-tienau.adb (Put): Deal properly with limited line length.
520 2011-10-24 Robert Dewar <dewar@adacore.com>
522 * sem_warn.adb, sem_ch12.adb: Minor reformatting.
524 2011-10-24 Tristan Gingold <gingold@adacore.com>
526 * gcc-interface/Makefile.in: Use GNU ld switches to generate map files
529 2011-10-24 Ed Schonberg <schonberg@adacore.com>
531 * sem_ch12.adb (Earlier): make available globally. If both
532 nodes have the same sloc, the freeze node that does not come
533 from source is the later one.
534 (True_Parent): Make available globally.
535 (Previous_Instance): Subsidiary of
536 Insert_Freeze_Node_For_Instance, to check whether the generic
537 parent of the current instance is declared within a previous
538 instance in the same unit or declarative part, in which case the
539 freeze nodes of both instances must appear in order to prevent
540 elaboration problems in gigi.
541 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): A stub is a
542 freeze point, and the freeze node of a preceding instantiation
543 must be inserted before it.
545 2011-10-24 Robert Dewar <dewar@adacore.com>
547 * checks.ads, checks.adb: Add handling of Synchronization_Check
548 * debug.adb: Add doc for -gnatd.d and -gnatd.e (disable/enable
550 * exp_ch2.adb (Expand_Entity_Reference): Set Atomic_Sync_Required
551 flag Minor code reorganization.
552 * opt.ads (Warn_On_Atomic_Synchronization): New switch.
553 * par-prag.adb: Add dummy entries for pragma
554 Disable/Enable_Atomic_Synchronization.
555 * sem_prag.adb (Process_Suppress_Unsuppress): Handle
556 case of Atomic_Synchronization specially (not suppressed
557 by All_Checks, cannot be set from Source).
558 (Pragma Disable/Enable_Atomic_Synchronization): Add processing.
559 * sinfo.ads, sinfo.adb: Add Atomic_Sync_Required flag
560 * snames.ads-tmpl: Add entry for Atomic_Synchronization Add
561 entry for pragma Disable/Enable_Atomic_Synchronization
562 * switch-c.adb: The -gnatp switch does not disable
563 Atomic_Synchronization Add -gnatep switch to disable
564 Atomic_Synchronization.
565 * types.ads: Add entry for Synchronization_Check
566 * usage.adb: Add line for -gnated switch
567 * warnsw.adb: Settings for Warn_On_Atomic_Synchronization
569 2011-10-24 Geert Bosch <bosch@adacore.com>
571 * s-gearop.adb (Back_Substitute): Avoid overflow if matrix bounds start
574 2011-10-24 Robert Dewar <dewar@adacore.com>
576 * sem_ch12.adb, s-gearop.adb: Minor reformatting.
578 2011-10-24 Robert Dewar <dewar@adacore.com>
580 * warnsw.adb: Add some missing warnings to Set_GNAT_Mode_Warnings.
581 * warnsw.ads: Add comments to Set_GNAT_Mode_Warnings.
583 2011-10-24 Emmanuel Briot <briot@adacore.com>
585 * prj-proc.adb (Process_Expression_Variable_Decl): No special
586 handling for Project_Path unless it is an attribute.
588 2011-10-24 Javier Miranda <miranda@adacore.com>
590 * sem_ch12.adb (Check_Hidden_Primitives): New subprogram.
591 (Install_Hidden_Primitives): New subprogram.
592 (Restore_Hidden_Primitives): New subprogram.
593 (Analyze_Formal_Package_Declaration,
594 Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
595 Invoke Check_Hidden_Primitives after every call to
596 Analyze_Associations, and invoke Restore_Hidden_Primitives to
597 restore their visibility after processing the instantiation.
598 (Instantiate_Package_Body): Install visible primitives before
599 analyzing the instantiation and uninstall them to restore their
600 visibility when the instantiation has been analyzed.
601 * sem_util.ads, sem_util.adb (Add_Suffix): New subprogram
602 (Remove_Suffix): New subprogram
603 * sem_ch3.adb (Derive_Subprogram): When handling
604 a derived subprogram for the instantiation of a formal derived
605 tagged type, inherit the dispatching attributes from the actual
606 subprogram (not from the parent type).
608 2011-10-24 Vasiliy Fofanov <fofanov@adacore.com>
610 * gnat_ugn.texi: Document explicit use of XDECGNAT library.
612 2011-10-24 Hristian Kirtchev <kirtchev@adacore.com>
614 * exp_ch3.adb (Build_Assignment): Add local constant N_Loc and
616 (Build_Discriminant_Assignments): Add local variable D_Loc and update
618 (Build_Init_Statements): Add local variables Comp_Loc, Decl_Loc and
619 Var_Loc and update their uses.
620 (Build_Record_Init_Proc): Code reformatting.
621 (Increment_Counter): Add formal parameter Loc.
622 (Make_Counter): Add formal parameter Loc.
624 2011-10-24 Eric Botcazou <ebotcazou@adacore.com>
626 * sem_disp.adb (Covers_Some_Interface): Fix typo.
628 2011-10-24 Matthew Heaney <heaney@adacore.com>
630 * a-cuprqu.adb, a-cbprqu.adb (Dequeue_Only_High_Priority): Fix sense
633 2011-10-24 Yannick Moy <moy@adacore.com>
635 * sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Test_Case):
636 Translate arguments in positional notation into pragma argument
637 association arguments for the generated pragma.
639 2011-10-24 Arnaud Charlet <charlet@adacore.com>
641 * exp_ch5.adb: Fix minor typo.
643 2011-10-24 Ed Schonberg <schonberg@adacore.com>
645 * sem_ch3.adb (Is_Visible_Component): Refine predicate for
646 the case of a component reference in an instance body, when the
647 enclosing type is private.
649 2011-10-24 Sergey Rybin <rybin@adacore.com frybin>
651 * gnat_ugn.texi: For gnatelim, move the note about using the GNAT
652 driver for getting the project support into gnatelim section.
654 2011-10-24 Robert Dewar <dewar@adacore.com>
656 * gnat_rm.texi: Minor correction to documentation on address clause.
658 2011-10-24 Hristian Kirtchev <kirtchev@adacore.com>
660 * s-finmas.adb (Attach): Synchronize and call the unprotected version.
661 (Attach_Unprotected): New routine.
662 (Delete_Finalize_Address): Removed.
663 (Delete_Finalize_Address_Unprotected): New routine.
664 (Detach): Synchronize and call the unprotected version.
665 (Detach_Unprotected): Remove locking.
666 (Finalize): Add various comment on synchronization. Lock the critical
667 region and call the unprotected versions of routines.
668 (Finalize_Address): Removed.
669 (Finalize_Address_Unprotected): New routine.
670 (Set_Finalize_Address): Synchronize and call
671 the unprotected version.
672 (Set_Finalize_Address_Unprotected): New routine.
673 (Set_Heterogeneous_Finalize_Address): Removed.
674 (Set_Heterogeneous_Finalize_Address_Unprotected): New routine.
675 (Set_Is_Heterogeneous): Add comment on synchronization and
677 * s-finmas.ads: Flag Finalization_Started is no longer atomic
678 because synchronization uses task locking / unlocking.
679 (Attach): Add comment on usage.
680 (Attach_Unprotected): New routine.
681 (Delete_Finalize_Address): Renamed to
682 Delete_Finalize_Address_Unprotected.
683 (Detach): Add comment on usage.
684 (Detach_Unprotected): New routine.
685 (Finalize_Address): Renamed to Finalize_Address_Unprotected.
686 (Set_Finalize_Address): Add comment on usage.
687 (Set_Finalize_Address_Unprotected): New routine.
688 (Set_Heterogeneous_Finalize_Address): Renamed to
689 Set_Heterogeneous_Finalize_Address_Unprotected.
690 * s-stposu.adb (Allocate_Any_Controlled): Add local variable
691 Allocation_Locked. Add various comments on synchronization. Lock
692 the critical region and call the unprotected version of
694 (Deallocate_Any_Controlled): Add various comments on
695 synchronization. Lock the critical region and call the unprotected
698 2011-10-24 Ed Schonberg <schonberg@adacore.com>
700 * sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type
701 are universal and must carry the corresponding type.
702 * sem_eval.adb (Check_Non_Static_Context): If the type of the
703 expression is universal real, as may be the case for a fixed point
704 expression with constant operands in the context of a conversion,
705 there is nothing to check.
706 * s-finmas.adb: Minor reformatting
708 2011-10-23 Eric Botcazou <ebotcazou@adacore.com>
710 * gcc-interface/decl.c (create_concat_name): Add explicit cast.
712 2011-10-20 Eric Botcazou <ebotcazou@adacore.com>
714 * gcc-interface/Make-lang.in (GNATLIBFLAGS, GNATLIBCFLAGS, THREAD_KIND,
716 (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o,
717 ada/initialize.o, ada/raise.o): Reintroduce explicit compilation rules.
719 2011-10-20 Eric Botcazou <ebotcazou@adacore.com>
721 * gcc-interface/trans.c (lhs_or_actual_p): New predicate.
722 (unchecked_conversion_nop): Use it.
723 (gnat_to_gnu): Likewise.
725 2011-10-20 Eric Botcazou <ebotcazou@adacore.com>
727 * back_end.adb (Call_Back_End): Pass the maximum logical line number
728 instead of the maximum physical line number to gigi.
729 * gcc-interface/trans.c (Sloc_to_locus): Cope with line zero.
731 2011-10-16 Tom Tromey <tromey@redhat.com>
732 Dodji Seketeli <dodji@redhat.com>
734 * gcc-interface/trans.c (gigi, Sloc_to_locus): Adjust to use the new
735 public ordinary map interface.
737 2011-10-16 Tristan Gingold <gingold@adacore.com>
739 * link.c (_AIX): Add support for GNU ld.
741 2011-10-16 Fedor Rybin <frybin@adacore.com>
743 * gnat_ugn.texi: Fixing gnattest example names in the doc.
744 Adding explanation to additional tests usage.
746 2011-10-16 Robert Dewar <dewar@adacore.com>
748 * exp_ch6.adb, sem_ch6.adb: Minor reformatting.
750 2011-10-16 Eric Botcazou <ebotcazou@adacore.com>
752 * a-convec.adb: Fix minor inconsistencies.
754 2011-10-16 Matthew Heaney <heaney@adacore.com>
756 * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (package
757 Implementation): Specify pragma Implementation_Defined.
759 2011-10-15 Nicolas Roche <roche@adacore.com>
761 * gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using
762 either rtp-smp or ravenscar-cert-rtp runtimes.
764 2011-10-15 Bob Duff <duff@adacore.com>
766 * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
767 Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr
769 (Expand_N_Extended_Return_Statement): Do not create a renaming of the
770 build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is
772 (Make_Build_In_Place_Call_In_Allocator): Add the user-defined
773 pool only if RE_Root_Storage_Pool_Ptr is available.
774 (Make_Build_In_Place_Call_In_Object_Declaration): Do not add a
775 pool actual unless RE_Root_Storage_Pool_Ptr is available.
776 * sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool
777 formal only if RE_Root_Storage_Pool_Ptr is available.
779 2011-10-15 Matthew Heaney <heaney@adacore.com>
781 * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue
782 type): Specify Priority aspect for protected type.
784 2011-10-14 Ed Schonberg <schonberg@adacore.com>
786 * exp_disp.adb (Check_Premature_Freezing): If an untagged type
787 is a generic actual, it is a subtype of a type that was frozen
788 by the instantiation, and even if not marked frozen it does not
789 affect the construction of the dispatch table.
791 2011-10-14 Robert Dewar <dewar@adacore.com>
793 * make.adb, mlib-utl.adb, sem_util.adb, sem_ch4.adb: Minor code
795 * s-rident.ads: Add missing Compiler_Unit pragma.
797 2011-10-14 Gary Dismukes <dismukes@adacore.com>
799 * sem_res.adb: Minor reformatting.
801 2011-10-14 Hristian Kirtchev <kirtchev@adacore.com>
803 * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
804 Code and comment reformatting. Use BIP_Task_Master
805 when creating a _master.
806 (BIP_Formal_Suffix): Code reformatting. Correct the case for
808 (Make_Build_In_Place_Call_In_Object_Declaration): Use
809 BIP_Task_Master when creating a reference to the enclosing
810 function's _master formal.
811 (Move_Activation_Chain): Use BIP_Task_Master when creating a reference
813 * exp_ch6.ads: Change BIP_Master to BIP_Task_Master.
814 (Needs_BIP_Finalization_Master): Alphabetized.
815 * sem_ch6.adb (Create_Extra_Formals): Update the usage of
818 2011-10-14 Ed Schonberg <schonberg@adacore.com>
820 * par-ch6.adb (P_Return_Object_Declaration): In Ada 2012 mode,
821 reject an aliased keyword on the object declaration of an extended
822 return statement. In older versions of the language indicate
823 that this is illegal in the standard.
825 2011-10-14 Pascal Obry <obry@adacore.com>
827 * sem_util.adb, sem_ch4.adb: Minor reformatting.
829 2011-10-14 Ed Schonberg <schonberg@adacore.com>
831 * sem_ch13.adb: Recognize properly procedure calls that are
832 transformed into code statements.
834 2011-10-14 Vincent Celier <celier@adacore.com>
836 * projects.texi: Minor fix in project example.
838 2011-10-14 Ed Schonberg <schonberg@adacore.com>
840 * sem_util.adb: Return objects are aliased if their type is
841 immutably limited as per AI05-0053.
843 2011-10-14 Gary Dismukes <dismukes@adacore.com>
845 * exp_ch4.adb (Expand_N_Op_And): Remove Short_Circuit_And_Or
846 expansion code (moved to sem_res) (Expand_N_Op_Or): Remove
847 Short_Circuit_And_Or expansion code (moved to sem_res).
848 * sem_res.adb (Resolve_Logical_Op): Add code to rewrite Boolean
849 "and" and "or" operators as short-circuit "and then" and "or
850 else", when pragma Short_Circuit_And_Or is active.
852 2011-10-13 Robert Dewar <dewar@adacore.com>
854 * sem_ch9.adb, sem_util.adb, sem_util.ads, exp_ch6.adb, sem_ch4.adb,
855 sem_ch6.adb, exp_ch3.adb: Minor reformatting.
857 2011-10-13 Arnaud Charlet <charlet@adacore.com>
859 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-ngcoar.o.
861 2011-10-13 Jerome Guitton <guitton@adacore.com>
863 * sysdep.c (__gnat_get_task_options): Re-enable VX_SPE_TASK on vThreads
865 2011-10-13 Eric Botcazou <ebotcazou@adacore.com>
867 * a-convec.ads (Cursor): Minor reformatting.
868 * a-convec.adb (Next): Fix minor inconsistencies.
869 (Previous): Likewise.
871 2011-10-13 Ed Schonberg <schonberg@adacore.com>
873 * sem_util.ads, sem_util.adb (Available_Full_View_Of_Component):
874 New predicate to determine whether some operations on an array
875 type are available when the full view of its component may differ
876 from the view of the point of the array declaration.
877 * sem_ch4.adb (Find_Equality_Types): Use
878 Available_Full_View_Of_Component.
879 * sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto
881 2011-10-13 Ed Schonberg <schonberg@adacore.com>
883 * sem_ch9.adb: Analyze aspects while discriminants of protected
886 2011-10-13 Geert Bosch <bosch@adacore.com>
888 * Makefile.rtl (GNATRTL_TASKING_OBJECTS): Add
889 a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these no
890 longer depend on an external library.
891 * gcc-interface/Makefile.in (GNATRTL_LINEARALGEBRA_OBJS): Remove
892 a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o.
894 * gcc-interface/Make-lang.in: Update dependencies.
896 2011-10-13 Cyrille Comar <comar@adacore.com>
898 * gnat_ugn.texi: Minor editing.
900 2011-10-13 Vincent Celier <celier@adacore.com>
902 * projects.texi: Add documentation on packages and attributes
903 that are inherited from a project being extended into the
906 2011-10-13 Hristian Kirtchev <kirtchev@adacore.com>
908 * exp_ch3.adb (Build_Master): Rewritten.
909 (Expand_N_Full_Type_Declaration): Reformat the declarative
910 region. Update the call to Build_Master_Renaming.
911 (Expand_Previous_Access_Type): Rewritten.
912 * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
913 Add local constant Result_Subt and update related usage.
914 (Expand_N_Extended_Return_Statement): Add local constant
915 Result_Subt and update related usage.
916 * exp_ch9.adb (Build_Activation_Chain): Rewritten to use the
917 new context detection mechanism.
918 (Build_Class_Wide_Master):
919 Use Insert_Action to add the renaming into the tree.
920 (Build_Master_Entity): Rewritten to use the new context detection
922 (Build_Master_Renaming): Add formal parameter Ins_Nod
923 and related usage. Use Insert_Action to add the renaming into the
925 (Find_Enclosing_Context): New subsidiary routine. Rather
926 than relying on enclosing scopes, this routine looks at the
927 tree structure to figure out the proper context for a _master
928 or a _chain. This approach eliminates the issues with transient
929 scopes which have not been converted into blocks.
930 * exp_ch9.ads (Build_Master_Entity): Change parameter profile
931 to better reflect the new usage. Update the related comment.
932 (Build_Master_Renaming): Add formal parameter Ins_Nod. Update
933 the comment on usage.
934 * sem_ch3.adb (Access_Definition): Update the calls to
935 Build_Master_Entity and Build_Master_Renaming.
936 * sem_ch6.adb (Create_Extra_Formals): Add local variable
937 Full_Subt. Code reformatting.
938 * sem_util.adb (Is_Iterator): Alphabetized.
939 (Is_LHS): Alphabetized.
940 (Is_Limited_Class_Wide_Type): New routine.
941 * sem_util.ads (Is_Limited_Class_Wide_Type): New routine.
943 2011-10-13 Geert Bosch <bosch@adacore.com>
945 * a-ngrear.adb (Solve): Make generic and move to
946 System.Generic_Array_Operations.
947 * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution):
948 New generic solvers to compute a vector resp. matrix Y such
949 that A * Y = X, approximately.
950 * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution):
951 Implement using Forward_Eliminate and Back_Substitute
952 * a-ngcoar.adb: Reimplement in pure Ada to remove dependencies
954 * a-ngcoar.ads ("abs"): Fix return type to be real.
956 2011-10-13 Eric Botcazou <ebotcazou@adacore.com>
959 * s-linux-alpha.ads: Do not "with" Interfaces.C.
960 * s-linux-sparc.ads: Likewise.
962 2011-10-13 Geert Bosch <bosch@adacore.com>
964 * s-gearop.ads (Forward_Eliminate): Add "abs" formal function
966 * s-gearop.adb (Forward_Eliminate): Remove local "abs" function
968 * a-ngrear.adb (Forward_Eliminate): Adjust instantiation for
971 2011-10-13 Geert Bosch <bosch@adacore.com>
973 * a-ngrear.adb, s-gearop.adb, s-gearop.ads (Sqrt): Make generic and
974 move to System.Generic_Array_Operations.
976 2011-10-13 Geert Bosch <bosch@adacore.com>
978 * a-ngrear.adb ("abs"): Adjust for modified L2_Norm generic
979 * s-gearop.ads (L2_Norm): Change profile to be suitable for
981 * s-gearop.adb (L2_Norm): Reimplement using direct definition,
984 2011-10-13 Robert Dewar <dewar@adacore.com>
986 * exp_ch5.adb, sem_ch3.adb, impunit.adb, impunit.ads, sem_type.adb,
987 prj-proc.adb, exp_ch9.adb, s-regpat.adb, sem_ch10.adb, sem_prag.adb,
988 sem_ch12.adb, freeze.adb, sem_attr.adb, sem_attr.ads, gnatlink.adb,
989 par-ch6.adb, exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, sem_ch8.adb,
990 par-util.adb, sem_ch13.adb, lib-xref.adb, g-trasym.adb, g-trasym.ads,
991 exp_aggr.adb, s-taprop-posix.adb: Minor reformatting.
993 2011-10-13 Geert Bosch <bosch@adacore.com>
995 * s-gearop.adb: Minor comment additions.
997 2011-10-13 Fedor Rybin <frybin@adacore.com>
999 * gnat_ugn.texi: Add gnattest section.
1001 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1003 * freeze.adb: Do not create body of renaming if declaration has
1006 2011-10-13 Olivier Hainque <hainque@adacore.com>
1008 * init.c (__gnat_error_handler - vxworks case): Restrict sigtramp calls
1009 further, to the ppc+kernel case only.
1011 2011-10-13 Hristian Kirtchev <kirtchev@adacore.com>
1013 * exp_ch4.adb (Expand_N_Allocator): Comment reformatting.
1014 * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
1015 Do not create a pool formal on .NET/JVM.
1016 (Expand_N_Extended_Return_Statement): Alphabetize local
1017 variables. Do not create a renaming of the build-in-place pool
1018 parameter on .NET/JVM. (Make_Build_In_Place_Call_In_Allocator):
1019 Add the user-defined pool only on non-VM targets.
1020 (Make_Build_In_Place_Call_In_Object_Declaration): Alphabetize
1021 local variables. Do not add a pool actual on .NET/JVM.
1022 * sem_ch6.adb: Add with and use clause for Targparm.
1023 (Create_Extra_Formals): Add build-in-place pool formal only on
1025 * rtsfind.ads: Alphabetize entries.
1027 2011-10-13 Sergey Rybin <rybin@adacore.com>
1029 * gnat_ugn.texi: Minor correction.
1031 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1033 * sem_ch8.adb: Minor error message improvement.
1035 2011-10-13 Robert Dewar <dewar@adacore.com>
1037 * a-cbprqu.adb, a-ciorma.adb, exp_ch3.adb: Minor reformatting.
1039 2011-10-13 Gary Dismukes <dismukes@adacore.com>
1041 * exp_ch5.adb (Expand_N_Loop_Statement): For the transformation
1042 of a for loop for an enumeration type with an enumeration rep
1043 clause, which involves moving the original loop parameter into
1044 a nested block, the loop parameter's entity must be removed from
1045 the entity list of the loop scope.
1047 2011-10-13 Bob Duff <duff@adacore.com>
1049 * exp_ch6.ads (BIP_Storage_Pool): New "extra implicit parameter"
1050 that gets passed in the same cases where BIP_Alloc_Form is passed
1051 (caller-unknown-size results). BIP_Storage_Pool is used when
1052 BIP_Alloc_Form = User_Storage_Pool. In that case, a pointer
1053 to the user-defined storage pool is passed at the call site,
1054 and this pool is used in callee to allocate the result.
1055 * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): New
1056 version of Add_Alloc_Form_Actual_To_Build_In_Place_Call. Passes
1057 the additional BIP_Storage_Pool actual.
1058 (Expand_N_Extended_Return_Statement): Allocate the function
1059 result using the user-defined storage pool, if BIP_Alloc_Form =
1061 * sem_ch6.adb: Add the "extra formal" for BIP_Storage_Pool.
1062 * exp_ch4.adb: Don't overwrite storage pool set by
1063 Expand_N_Extended_Return_Statement.
1064 * s-stopoo.ads, rtsfind.ads (Root_Storage_Pool_Ptr): New type,
1065 for use in build-in-place function calls within allocators
1066 where the access type has a user-defined storage pool.
1068 2011-10-13 Sergey Rybin <rybin@adacore.com>
1070 * gnat_ugn.texi, vms_data.ads: Add an option to control enumeration
1073 2011-10-13 Nicolas Roche <roche@adacore.com>
1075 * gnatlink.adb: Ensure that -mrtp is passed when runtime name ends
1078 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1080 * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Take into
1081 account that an unchecked union type can be limited.
1083 2011-10-13 Olivier Hainque <hainque@adacore.com>
1085 * init.c (__gnat_error_handler) <VxWorks version>: Add comments on
1086 the use of the signal trampoline for PPC in the sjlj case as well.
1087 Add legitimate casts, preventing compile time warnings on the
1088 (sighandler *) profile.
1090 2011-10-13 Yannick Moy <moy@adacore.com>
1092 * sem_aggr.adb (Resolve_Aggr_Expr): Always perform semantic analysis
1095 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1097 * sem_ch3.adb (OK_For_Limited_Init_In_05): Conditional and case
1098 expressions are legal limited return values if each one of their
1099 dependent expressions are legal.
1101 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1103 * sem_ch6.adb (Analyze_Procedure_Call_Statement): In Ada 2012 mode,
1104 if the prefix of the call is a qualified expression, rewrite as
1106 * sem_ch13.adb (Analyze_Code_Statement): In Ada 2012 mode, the
1107 code statement is legal if it is a rewriting of a procedure call.
1109 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1111 * exp_aggr.adb (Flatten): If a component association has a box,
1112 assume that aggregate is not static.
1113 (Safe_Aggregate): If a component association in a non-limited
1114 aggregate has a box, assume that it cannot be expanded in place.
1116 2011-10-13 Vincent Celier <celier@adacore.com>
1118 * prj-conf.adb (Get_Or_Create_Configuration_File): Call
1119 Process_Project_Tree_Phase_1 with Packages_To_Check.
1120 (Process_Project_And_Apply_Config): Ditto
1121 * prj-part.ads, prj-part.adb, prj-pars.ads, prj-pars.adb (Parse):
1122 Remove default for argument Packages_To_Check.
1123 * prj-proc.adb (Recursive_Process): New argument
1126 (Process_Project_Tree_Phase_1): Ditto.
1127 (Recursive_Project.Process_Aggregated_Projects): Call
1128 Prj.Part.Parse and Process_Project_Tree_Phase_1 with
1130 * prj-proc.ads (Process): New argument Packages_To_Check
1131 (Process_Project_Tree_Phase_1): Ditto
1133 2011-10-13 Arnaud Charlet <charlet@adacore.com>
1135 * gcc-interface/Makefile.in: Fix typo.
1137 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1139 * sem_ch12.adb (Analyze_Formal_{Floating_Type,
1140 Signed_Integer_Type, Decimal_Fixed_Point_Type, Discrete_Type}):
1141 Use sloc of defining identifier of farmal type declaration,
1142 as sloc of generated internal entity, to prevent misplaced
1145 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1147 * sem_intr.adb (Check_Intrinsic_Operator): Check that type
1148 is fully defined before checking that it is a numeric type.
1150 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1152 * sem_aggr.adb (Resolve_Record_Aggregate): If a component
1153 association for component X has a box, then X is covered in the
1154 aggregate even if there is not default value for X in the type
1155 declaration, and X has to be default-initialized.
1157 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1159 * sem_attr.adb (Check_Enum_Image, Analyze_Attribute case 'Value): Mark
1160 literals as referenced only if reference is in current source unit.
1162 2011-10-13 Matthew Heaney <heaney@adacore.com>
1164 * a-csquin.ads (Enque, Dequeue): Mark interface operations as entries.
1166 2011-10-13 Olivier Hainque <hainque@adacore.com>
1168 * sigtramp.h: New file. Prototype and spec of the signal
1169 trampoline to be called by an established handler to provide
1170 dwarf call frame info before the real signal processing code.
1171 * sigtramp-ppcvxw.c: New file. Implementation of the signal
1172 trampoline for ppc-vxworks.
1173 * init.c (vxworks section): Use it for ppc.
1175 2011-10-13 Thomas Quinot <quinot@adacore.com>
1177 * par-ch2.adb, par.adb, par-util.adb, par-ch3.adb
1178 (Check_Future_Identifier): New subprogram,
1179 factors duplicated code from Par.Ch2.P_Identifier and
1180 Par.Ch3.P_Defining_Identifier.
1182 2011-10-13 Thomas Quinot <quinot@adacore.com>
1184 * s-taprop-posix.adb (Initialize): Always raise Storage_Error
1185 if we fail to initialize CV attributes or CV.
1187 2011-10-13 Thomas Quinot <quinot@adacore.com>
1189 * s-tasren.adb (Timed_Selective_Wait, case
1190 Accept_Alternative_Selected): Use Defer_Abort_Nestable, since
1191 we know abortion is already deferred.
1193 2011-10-13 Hristian Kirtchev <kirtchev@adacore.com>
1195 * exp_ch3.adb (Build_Class_Wide_Master): Moved to exp_ch9.
1196 (Build_Master_Renaming (function)): Removed.
1197 (Build_Master_Renaming (procedure)): Moved to exp_ch9.
1198 (Expand_Full_Type_Declaration): Alphabetize
1199 variables. Reformatting of code and comments. Rewrite the
1200 section on processing of anonymous access-to-task types in
1202 * exp_ch3.ads (Build_Class_Wide_Master): Moved to exp_ch9.
1203 (Build_Master_Renaming): Moved to exp_ch9.
1204 * exp_ch9.adb (Build_Class_Wide_Master): Moved from exp_ch3.
1205 (Build_Master_Entity): Add formal parameter
1206 Use_Current. Reformatting of code and comments.
1207 (Build_Master_Renaming): Moved from exp_ch3.
1208 * exp_ch9.ads (Build_Class_Wide_Master): Moved from
1209 exp_ch3. Update comment on usage.
1210 (Build_Master_Entity):
1211 Add formal parameter Use_Current. Update comment on usage.
1212 (Build_Master_Renaming): Moved from exp_ch3.
1213 * sem_ch3.adb (Access_Definition): Remove redundant code to
1214 create a _master and a renaming.
1216 2011-10-13 Ed Schonberg <schonberg@adacore.com>
1218 * lib-xref.adb: Do no emit reference to overridden operation,
1219 if it is internally generated.
1221 2011-10-13 Vincent Celier <celier@adacore.com>
1223 * bindgen.adb: Remove any processing related to g-trasym
1224 * Makefile.rtl: Add g-trasym.o to GNATRTL_NONTASKING_OBJS
1225 * mlib-prj.adb: Remove any processing related to g-trasym.
1227 2011-10-12 Eric Botcazou <ebotcazou@adacore.com>
1229 * sem_util.adb (Denotes_Same_Prefix): Fix fatal warning.
1230 * gcc-interface/Make-lang.in (WARN_ADAFLAGS): New.
1231 (ALL_ADAFLAGS): Include WARN_ADAFLAGS.
1232 (ADA_FLAGS_TO_PASS): Likewise.
1233 (COMMON_FLAGS_TO_PASS): New.
1234 (ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS. In the regular
1235 native case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS.
1236 (gnatlib): Use COMMON_FLAGS_TO_PASS.
1237 (ada.install-common): Likewise.
1238 (install-gnatlib): Likewise.
1239 (install-gnatlib-obj): Likewise.
1240 (gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well.
1241 (gnat-cross): Delete.
1242 (gnatboot): Likewise.
1243 (gnatboot2): Likewise.
1244 (gnatboot3): Likewise.
1245 (gnatstage1): Likewise.
1246 (gnatstage2): Likewise.
1247 * gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise.
1248 (MOST_ADAFLAGS): Likewise.
1249 (LOOSE_CFLAGS): Likewise.
1250 (gnat-cross): Likewise.
1251 (GNATLIBFLAGS): Add -W -Wall.
1252 (GNATLIBCFLAGS_FOR_C): Likewise.
1253 * gcc-interface/lang.opt: Remove C-specific warnings. Add doc lines.
1254 * gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases.
1256 2011-10-12 Eric Botcazou <ebotcazou@adacore.com>
1258 * gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions.
1259 (push_range_check_info): Likewise.
1260 (gnat_to_gnu) <N_Code_Statement>: Likewise.
1261 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.
1262 (gnat_invariant_expr): Likewise.
1263 * gcc-interface/utils.c (compute_related_constant): Likewise.
1264 (max_size): Fix handling of SAVE_EXPR.
1265 (remove_conversions): Fix formatting.
1267 2011-10-12 Eric Botcazou <ebotcazou@adacore.com>
1269 * gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag.
1270 (DECL_INDUCTION_VAR): New macro.
1271 (SET_DECL_INDUCTION_VAR): Likewise.
1272 * gcc-interface/gigi.h (convert_to_index_type): Declare.
1273 (gnat_invariant_expr): Likewise.
1274 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If this is a loop
1275 parameter, set DECL_LOOP_PARM_P on it.
1276 * gcc-interface/misc.c (gnat_print_decl) <VAR_DECL>: If DECL_LOOP_PARM_P
1277 is set, print DECL_INDUCTION_VAR instead of DECL_RENAMED_OBJECT.
1278 * gcc-interface/trans.c (gnu_loop_label_stack): Delete.
1279 (struct range_check_info_d): New type.
1280 (struct loop_info_d): Likewise.
1281 (gnu_loop_stack): New stack.
1282 (Identifier_to_gnu): Set TREE_READONLY flag on the first dereference
1283 built for a by-double-ref read-only parameter. If DECL_LOOP_PARM_P
1284 is set, do not test DECL_RENAMED_OBJECT.
1285 (push_range_check_info): New function.
1286 (Loop_Statement_to_gnu): Push a new struct loop_info_d instead of just
1287 the label. Reference the label and the iteration variable from it.
1288 Build the special induction variable in the unsigned version of the
1289 size type, if it is larger than the base type. And attach it to the
1290 iteration variable if the latter isn't by-ref. In the iteration scheme
1291 case, initialize the invariant conditions in front of the loop if
1292 deemed profitable. Use gnu_loop_stack.
1293 (gnat_to_gnu) <N_Exit_Statement>: Use gnu_loop_stack.
1294 <N_Raise_Constraint_Error>: Always process the reason. In the range
1295 check and related cases, and if loop unswitching is enabled, compute
1296 invariant conditions and push this information onto the stack.
1297 Do not translate again the condition if it has been already translated.
1298 * gcc-interface/utils.c (record_global_renaming_pointer): Assert that
1299 DECL_LOOP_PARM_P isn't set.
1300 (convert_to_index_type): New function.
1301 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Use it in order
1302 to convert the index from the base index type to sizetype.
1303 (gnat_invariant_expr): New function.
1305 2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1307 * gcc-interface/utils.c (def_builtin_1): Delete old interface with
1308 two parallel arrays to hold standard builtin declarations, and
1309 replace it with a function based interface that can support
1310 creating builtins on the fly in the future.
1311 * gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Ditto.
1312 (gnat_to_gnu): Ditto.
1314 2011-10-07 Eric Botcazou <ebotcazou@adacore.com>
1317 * gcc-interface/gigi.h (gnat_pushdecl): Adjust comment.
1318 * gcc-interface/utils.c (global_context): New variable.
1319 (gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs
1320 that are either public external or at top level. Use "No" macro.
1321 (end_subprog_body): Call decl_function_context.
1322 (rest_of_subprog_body_compilation): Likewise.
1324 2011-10-07 Eric Botcazou <ebotcazou@adacore.com>
1326 * gcc-interface/gigi.h (gnat_useless_type_conversion): Declare.
1327 (rest_of_subprog_body_compilation): Likewise.
1328 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: For renaming,
1329 test for useless conversions by means of gnat_useless_type_conversion.
1330 * gcc-interface/trans.c: Include bitmap.h and cgraph.h.
1331 (language_function): Add named_ret_val and other_ret_val.
1332 (f_named_ret_val): New macro.
1333 (f_other_ret_val): Likewise.
1334 (gigi): Call rest_of_subprog_body_compilation.
1335 (struct nrv_data): New structure.
1336 (is_nrv_p): New predicate.
1337 (prune_nrv_r): New helper function.
1338 (prune_nrv_in_block): New function.
1339 (finalize_nrv_r): New helper function.
1340 (finalize_nrv): New function.
1341 (return_value_ok_for_nrv_p): New predicate.
1342 (build_return_expr): If optimization is enabled, record candidates for
1343 the Named Return Value optimization.
1344 (build_function_stub): Call rest_of_subprog_body_compilation.
1345 (Subprogram_Body_to_gnu): If optimization is enabled and there are
1346 candidates, finalize the Named Return Value optimization.
1347 Call rest_of_subprog_body_compilation.
1348 (call_to_gnu): At the end, if a return value is needed, simplify the
1349 result before wrapping it up in a COMPOUND_EXPR.
1350 * gcc-interface/utils.c (end_subprog_body): Split into...
1351 (rest_of_subprog_body_compilation): ...this. New function.
1352 (gnat_useless_type_conversion): Likewise.
1354 2011-10-06 Thomas Quinot <quinot@adacore.com>
1356 * einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
1357 exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb,
1358 g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb,
1359 par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
1360 sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
1361 sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb,
1362 s-regpat.adb, s-tpopde-vms.ads: Minor reformatting.
1363 * s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD.
1365 2011-10-06 Ed Schonberg <schonberg@adacore.com>
1367 * a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container
1370 2011-10-06 Matthew Heaney <heaney@adacore.com>
1372 * a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb
1373 (Dequeue_Only_High_Priority): Protected procedure now implemented.
1375 2011-10-06 Vincent Celier <celier@adacore.com>
1377 * g-trasym.adb: Replace old implementation with the default
1378 implementation that returns list of addresses as "0x...".
1379 * g-trasym.ads: Update the list of platforms with the full
1380 capability. Indicate that there is a default implementation
1381 for other platforms.
1382 * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove.
1383 * gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there
1384 is now a default implementation for all platforms without the full
1387 2011-10-06 Robert Dewar <dewar@adacore.com>
1389 * a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb,
1390 a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb,
1391 a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and code
1392 reorganization (use conditional expressions).
1394 2011-10-06 Robert Dewar <dewar@adacore.com>
1396 * sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for
1397 floating divide by zero.
1399 2011-10-06 Ed Schonberg <schonberg@adacore.com>
1401 * sem_ch6.adb: Limited interfaces that are not immutably limited
1402 are OK in return statements.
1404 2011-09-30 Iain Sandoe <iains@gcc.gnu.org>
1406 * gcc-interface/Makefile.in (Darwin): Partial reversion of previous
1407 change to powerpc section.
1409 2011-09-29 Iain Sandoe <iains@gcc.gnu.org>
1411 * gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS
1414 2011-09-27 Ed Schonberg <schonberg@adacore.com>
1416 * a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads,
1417 a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads,
1418 a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and
1420 * a-coorma.ads: Minor reformmating.
1421 * einfo.ads: Improve the comment describing the
1422 Directly_Designated_Type function.
1423 * a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite
1425 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
1428 2011-09-27 Robert Dewar <dewar@adacore.com>
1430 * a-comutr.ads: Minor reformatting.
1432 2011-09-27 Ed Schonberg <schonberg@adacore.com>
1434 * a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add children
1435 iterators to multiway trees.
1437 2011-09-27 Yannick Moy <moy@adacore.com>
1439 * debug.adb (d.D): New option for strict Alfa mode.
1440 * opt.ads (Strict_Alfa_Mode): New flag to interpret compiler
1441 permissions as strictly as possible.
1442 * sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict
1443 Alfa mode, now, interpret ranges of base types like GNAT does; in
1444 strict mode, simply change the range of the implicit base Itype.
1445 * gnat1drv.adb: Update comments. Set Strict_Alfa_Mode.
1447 2011-09-27 Robert Dewar <dewar@adacore.com>
1449 * exp_ch9.adb: Minor comment fixes.
1451 2011-09-27 Ed Schonberg <schonberg@adacore.com>
1453 * a-comutr.adb, a-comutr.ads: Add children iterators on multiway
1456 2011-09-27 Eric Botcazou <ebotcazou@adacore.com>
1458 * checks.adb (Apply_Scalar_Range_Check): Use Designated_Type
1459 instead of Directly_Designated_Type in the indirect array case.
1461 2011-09-27 Robert Dewar <dewar@adacore.com>
1463 * exp_util.adb, exp_aggr.adb: Minor reformatting.
1465 2011-09-27 Ed Schonberg <schonberg@adacore.com>
1467 * sinfo.ads, par-ch3.adb: Minor comment update: aspect specification
1468 on subtype declarations.
1469 * exp_aggr.adb: Minor comment update.
1471 2011-09-27 Eric Botcazou <ebotcazou@adacore.com>
1473 * exp_util.adb (Safe_Prefixed_Reference): Remove always-false
1474 test in the N_Explicit_Dereference case. Fold double logical
1475 negation in the special loop case and conditionalize it on
1476 Variable_Ref being true.
1478 2011-09-27 Ed Schonberg <schonberg@adacore.com>
1480 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is a
1481 single protected object and the selector is a discriminant or an
1482 entry family, this is a non-overloaded candidate interpretation,
1483 and possible primitive operations of the type must not be
1486 2011-09-27 Arnaud Charlet <charlet@adacore.com>
1488 * s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased.
1490 2011-09-27 Pascal Obry <obry@adacore.com>
1492 * s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
1493 s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads:
1494 Add dummy definitions for pthread_rwlock_t
1495 and pthread_rwlockattr_t on all POSIX platforms.
1496 * s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock
1498 (Finalize_Lock): Likewise.
1499 (Write_Lock): Likewise.
1502 2011-09-27 Tristan Gingold <gingold@adacore.com>
1504 * s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for
1507 2011-09-27 Pascal Obry <obry@adacore.com>
1509 * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads,
1510 s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads,
1511 s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads,
1512 s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads,
1513 s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
1514 s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads,
1515 s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads,
1516 s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb,
1517 s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb,
1518 s-taprop-posix.adb: Revert previous changes.
1519 (Lock): Now a record containing the two possible lock
1520 (mutex and read/write) defined in OS_Interface.
1521 * s-taprop-linux.adb (Finalize_Protection): Use r/w lock for
1523 (Initialize_Protection): Likewise.
1525 (Lock_Read_Only): Likewise.
1528 2011-09-27 Pascal Obry <obry@adacore.com>
1530 * s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined as
1531 OS_Interface.pthread_rwlock_t.
1533 2011-09-27 Robert Dewar <dewar@adacore.com>
1535 * exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb,
1536 a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads,
1537 sem_ch5.adb, sem_util.adb: Minor reformatting.
1539 2011-09-27 Pascal Obry <obry@adacore.com>
1541 * s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock.
1542 (Finalize_Lock)[RW_Lock]: Likewise.
1543 (Write_Lock)[RW_Lock]: Likewise.
1544 (Unlock)[RW_Lock]: Likewise.
1545 (Read_Lock): Define L as RW_Lock (instead of Lock).
1546 * s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: New
1547 routine for r/w lock.
1548 (Finalize_Lock)[RW_Lock]: Likewise.
1549 (Write_Lock)[RW_Lock]: Likewise.
1550 (Unlock)[RW_Lock]: Likewise.
1551 (Read_Lock): Define L as RW_Lock (instead of Lock).
1553 * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
1554 s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb,
1555 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
1556 (Initialize_Lock)[RW_Lock]: Same implementation as corresponding
1557 routine for standard lock.
1558 (Finalize_Lock)[RW_Lock]: Likewise.
1559 (Write_Lock)[RW_Lock]: Likewise.
1560 (Unlock)[RW_Lock]: Likewise.
1561 (Read_Lock): Define L as RW_Lock (instead of Lock).
1562 * s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock)
1563 in the record definition.
1564 * s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w
1565 lock for 'R' locking policy.
1566 (Initialize_Protection): Likewise.
1568 (Lock_Read_Only): Likewise.
1570 * s-taspri-posix.ads (RW_Lock): New type defined as
1571 OS_Interface.pthread_rwlock_t.
1573 * s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads,
1574 s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads,
1575 s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads,
1576 s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock.
1578 2011-09-27 Pascal Obry <obry@adacore.com>
1580 * exp_ch9.adb, s-taspri-posix.ads: Minor reformatting.
1582 2011-09-27 Pascal Obry <obry@adacore.com>
1584 * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,
1585 s-osinte-hpux.ads, s-osinte-irix.ads,
1586 s-osinte-solaris-posix.ads (pthread_rwlock_t): New definition alias of
1588 (pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t.
1589 * s-osinte-linux.ads (pthread_rwlock_t, pthread_rwlockattr_t,
1590 pthread_rwlockattr_init, pthread_rwlockattr_destroy,
1591 pthread_rwlockattr_setkind_np, pthread_rwlock_init,
1592 pthread_rwlock_destroy, pthread_rwlock_rdlock,
1593 pthread_rwlock_wrlock, pthread_rwlock_unlock): New.
1595 2011-09-27 Pascal Obry <obry@adacore.com>
1597 * rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry.
1598 (RE_Id): Add RE_Lock_Read_Only.
1599 (RE_Unit_Table): Likewise.
1600 * sem_prag.adb (Process_Convention): Change Pragma_Locking_Policy
1601 to lift restriction on first character. Handle now the
1602 Name_Concurrent_Readers_Locking where policy character is set to
1604 * snames.ads-tmpl (Name_Concurrent_Readers_Locking): New
1606 * exp_ch9.adb (Build_Protected_Subprogram_Body): Generate a
1607 read only lock for function in protected object.
1608 * s-taprob.ads (Lock_Read_Only): Remove obsolete comment as
1609 this routine is now used.
1611 2011-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1613 * s-atocou-x86.adb (Decrement): Use %;.
1614 (Increment): Likewise.
1616 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1618 * gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the
1619 dereference of the pointer to the storage area. Remove useless type
1620 conversions and factor out common code.
1622 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1624 * gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE local
1625 variable and use it throughout.
1626 <UNCONSTRAINED_ARRAY_TYPE>: Add 'break' at the end.
1627 <RECORD_TYPE>: Do not unconditionally convert to the unpadded type as a
1628 first step. Also convert to the unpadded type as a last step.
1630 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1632 * gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN with
1633 DECL_CHAIN in comment.
1634 * gcc-interface/trans.c (gigi): Likewise.
1635 (Attribute_to_gnu): Likewise.
1636 (build_function_stub): Likewise.
1637 (gnat_to_gnu): Likewise.
1638 * gcc-interface/utils.c (create_subprog_decl): Likewise.
1639 (convert_vms_descriptor64): Likewise.
1640 (convert_vms_descriptor32): Likewise.
1642 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1644 * gcc-interface/trans.c (assoc_to_constructor): Minor tweaks.
1645 * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting
1646 issues. Use COMPLETE_TYPE_P in assertion. Also set TREE_READONLY if
1647 the type of the record is TYPE_READONLY.
1649 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1650 Robert Dewar <dewar@adacore.com>
1652 * sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or IN
1653 OUT formal parameter which is of an null-exclusion access subtype.
1655 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1657 * gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro.
1658 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Set the flag.
1659 (gnat_to_gnu_param): Likewise.
1660 * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Invoke
1661 maybe_unconstrained_array instead of doing the work manually.
1662 (maybe_unconstrained_array): Propagate the TREE_THIS_NOTRAP flag.
1663 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: If operand
1664 is a DECL with the flag, set TREE_THIS_NOTRAP on the reference.
1665 (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.
1666 (gnat_stabilize_reference): Likewise.
1668 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1670 * gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro.
1671 (SET_TYPE_NULL_BOUNDS): Likewise.
1672 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set again
1673 TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
1674 * gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fat
1676 * gcc-interface/utils.c (create_var_decl_1): If the object is external,
1677 check that the initializer is a valid constant expression for use in
1678 initializing a static variable. Add missing guard.
1679 (update_pointer_to): Adjust TYPE_NULL_BOUNDS if set.
1680 (convert_to_fat_pointer): In the null fat pointer case, build a valid
1681 pointer for the bounds.
1682 * gcc-interface/utils2.c (compare_fat_pointers): New function.
1683 (build_binary_op) <EQ_EXPR>: Call it to compare fat pointers.
1685 2011-09-25 Eric Botcazou <ebotcazou@adacore.com>
1687 * gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine.
1688 * gcc-interface/trans.c (Identifier_to_gnu): Factor out common code in
1689 the by-ref case. Do not set TREE_READONLY on a renamed object. Set
1690 TREE_THIS_NOTRAP on UNCONSTRAINED_ARRAY_REF nodes.
1691 (Attribute_to_gnu) <Attr_Length>: Expand the use of the parameter cache
1692 to the indirect case.
1693 * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Preserve
1694 the TREE_THIS_NOTRAP flag.
1696 2011-09-25 Eric Botcazou <ebotcazou@adacore.com>
1698 * gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of an
1699 iteration scheme, always generate the do-while form if optimization
1700 is enabled. Use more straightforward test at the end.
1702 2011-09-25 Eric Botcazou <ebotcazou@adacore.com>
1704 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Subtype>: Use
1705 XNEW instead of xmalloc. Do not build useless pointer type.
1706 <E_Anonymous_Access_Subprogram_Type>: Use XNEW instead of xmalloc.
1707 * gcc-interface/trans.c (gnat_to_gnu) <N_Raise_Constraint_Error>: Tidy.
1708 * gcc-interface/utils2.c (build_unary_op): Remove local variable.
1710 2011-09-25 Eric Botcazou <ebotcazou@adacore.com>
1712 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promote
1713 the alignment if this doesn't prevent BLKmode access to the object.
1715 2011-09-24 Iain Sandoe <iains@gcc.gnu.org>
1717 * gcc-interface/Makefile.in (darwin): Do not issue the
1718 '-flat_namespace' linker flag during Ada build.
1719 * mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from the
1720 default shared library options.
1722 2011-09-19 Alexandre Oliva <aoliva@redhat.com>
1724 * gcc-interface/decl.c (annotate_value): Look up expression for
1725 insertion in the cache at the end.
1727 2011-09-19 Arnaud Charlet <charlet@adacore.com>
1729 * gcc-interface/Make-lang.in: Update dependencies.
1731 2011-09-19 Steve Baird <baird@adacore.com>
1733 * snames.ads-tmpl: Move declaration of Name_Annotate into range of
1734 configuration pragma names so that Is_Configuration_Pragma_Name
1735 will return True for Name_Annotate. Make corresponding change in
1736 Pragma_Id enumeration type. This is needed to allow an Annotate
1737 pragma to occur in a configuration pragma file (typically,
1739 * gnat_ugn.texi: Add Annotate to the list of configuration pragmas.
1740 * gnat_rm.texi: Note that pragma Annotate may be used as a
1741 configuration pragma.
1743 2011-09-19 Ed Schonberg <schonberg@adacore.com>
1745 * a-cbmutr.adb, a-cbmutr.ads, a-cimutr.adb, a-cimutr.ads,
1746 a-comutr.adb, a-comutr.ads: Add iterator machinery for multiway trees.
1748 2011-09-19 Yannick Moy <moy@adacore.com>
1750 * exp_alfa.adb, exp_alfa.ads (Expand_Alfa_N_In): New function
1751 for expansion of set membership.
1752 (Expand_Alfa): Call expansion for N_In and N_Not_In nodes.
1753 * exp_ch4.adb, exp_ch4.ads (Expand_Set_Membership): Make procedure
1754 visible for use in Alfa expansion.
1755 * sem_ch5.adb (Analyze_Iterator_Specification): Introduce loop
1756 variable in Alfa mode.
1758 2011-09-19 Thomas Quinot <quinot@adacore.com>
1760 * s-osinte-darwin.ads: Change SIGADAABRT on Darwin to SIGABRT.
1762 2011-09-19 Thomas Quinot <quinot@adacore.com>
1764 * exp_ch9.adb: Minor reformatting.
1766 2011-09-19 Hristian Kirtchev <kirtchev@adacore.com>
1768 * freeze.adb (Build_Renamed_Body): Generic subprograms
1769 instantiations cannot be poperly inlined by the compiler, do
1770 not set the Body_To_Inline attribute in such cases.
1771 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit all
1772 inlining-related flags from the generic subprogram declaration.
1774 2011-09-19 Thomas Quinot <quinot@adacore.com>
1776 * exp_dist.adb, rtsfind.ads, sem_util.adb, sem_util.ads
1777 (Build_Stub_Type): Remove, instead copy components from
1778 System.Partition_Interface.RACW_Stub_Type.
1779 (RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine.
1780 (Copy_Component_List): New subprogram.
1782 2011-09-19 Yannick Moy <moy@adacore.com>
1784 * lib-xref.adb (Generate_Reference): Ignore references to
1785 constants in Standard.
1787 2011-09-19 Robert Dewar <dewar@adacore.com>
1789 * err_vars.ads, errout.ads: Minor reformatting.
1791 2011-09-19 Robert Dewar <dewar@adacore.com>
1793 * aspects.ads (Impl_Defined_Aspects): New array
1794 * lib-writ.adb (No_Dependences): New name for No_Dependence
1795 * restrict.adb (No_Dependences): New name for No_Dependence
1796 (Check_Restriction_No_Specification_Of_Aspect): New
1798 (Set_Restriction_No_Specification_Of_Aspect): New procedure
1799 (Restricted_Profile_Result): New variable
1800 (No_Specification_Of_Aspects): New variable
1801 (No_Specification_Of_Aspect_Warning): New variable
1802 * restrict.ads (No_Dependences): New name for No_Dependence
1803 (Check_Restriction_No_Specification_Of_Aspect): New procedure
1804 (Set_Restriction_No_Specification_Of_Aspect): New procedure
1805 * s-rident.ads: Add restriction
1806 No_Implementation_Aspect_Specifications, this is also added to
1807 the No_Implementation_Extensions profile.
1808 * sem_ch13.adb (Analyze_Aspect_Specifications): Check
1809 No_Implementation_Defined_Aspects
1810 (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
1811 * sem_prag.adb (Analyze_Aspect_Specifications): Check
1812 No_Implementation_Aspects
1813 (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
1814 * snames.ads-tmpl (Name_No_Specification_Of_Aspect): New name
1816 2011-09-19 Yannick Moy <moy@adacore.com>
1818 * lib-xref.adb (Generate_Reference): Take into account multiple
1819 renamings for Alfa refs.
1821 2011-09-19 Thomas Quinot <quinot@adacore.com>
1823 * g-socthi-mingw.adb: Minor reformatting.
1825 2011-09-19 Yannick Moy <moy@adacore.com>
1827 * gnat1drv.adb (Adjust_Global_Switches): Set tagged type
1828 expansion to False in mode Alfa
1830 2011-09-19 Pascal Obry <obry@adacore.com>
1832 * mingw32.h: Remove obsolete code needed for old versions
1835 2011-09-19 Robert Dewar <dewar@adacore.com>
1837 * errout.ads: Minor reformatting.
1839 2011-09-19 Ed Schonberg <schonberg@adacore.com>
1841 * sem_ch6.adb (Analyze_Expression_Function): When the expression
1842 function is transformed into a declaration and a body, insert
1843 body at the end of the declarative part, to prevent premature
1844 freeze actions, and preserve original specification in the
1845 subprogram declaration.
1847 2011-09-19 Vincent Celier <celier@adacore.com>
1849 * projects.texi: Minor editing.
1851 2011-09-19 Robert Dewar <dewar@adacore.com>
1853 * sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb,
1854 exp_aggr.adb: Minor reformatting.
1856 2011-09-19 Yannick Moy <moy@adacore.com>
1858 * lib-xref.adb (Generate_Reference): Change entity referenced
1859 to underlying object if any, or else reference to the HEAP.
1861 2011-09-15 Arnaud Charlet <charlet@adacore.com>
1863 * gcc-interface/Make-lang.in: Update dependencies.
1865 2011-09-15 Robert Dewar <dewar@adacore.com>
1867 * tree_io.ads: Minor reformatting.
1868 * a-intnam.ads: Fix bad header.
1870 2011-09-15 Thomas Quinot <quinot@adacore.com>
1872 * a-exexpr-gcc.adb: Minor reformatting.
1874 2011-09-15 Yannick Moy <moy@adacore.com>
1876 * sem_ch6.adb: Propagate information that an expression function comes
1877 from source (otherwise references to this entity are not stored).
1879 2011-09-15 Robert Dewar <dewar@adacore.com>
1881 * a-cdlili.adb, a-coinve.adb, a-stzunb-shared.ads, a-suezst.adb,
1882 a-suenco.adb, a-stwiun-shared.ads, a-cobove.adb, a-convec.adb,
1883 a-btgbso.adb, a-cbdlli.adb, a-suewst.adb: Minor reformatting.
1885 2011-09-15 Ed Schonberg <schonberg@adacore.com>
1887 * sem_ch6.adb (Analyze_Expression_Function): Code cleanup:
1888 if the expression function is not a completion, create a
1889 new specification for the generated declaration, and keep the
1890 original specification in the generated body. Shorter code also
1891 ensures that proper warnings are generated for unused formals
1894 2011-09-15 Sergey Rybin <rybin@adacore.com>
1896 * tree_io.ads: Update ASIS_Version_Number because of the changes
1897 in the tree structures for expression functions.
1899 2011-09-15 Arnaud Charlet <charlet@adacore.com>
1901 * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,
1902 s-osinte-hpux.ads, s-osinte-lynxos.ads, s-osinte-solaris-posix.ads,
1903 s-taprop-posix.adb (CLOCK_MONOTONIC): New constant.
1904 (CLOCK_REALTIME): Fix wrong value on some OSes.
1905 * s-taprop-posix.adb (Monotonic_Clock): Use CLOCK_MONOTONIC.
1907 2011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1909 * gcc-interface/utils.c (maybe_unconstrained_array): In the reference
1910 to unconstrained array case, deal with each branch of a COND_EXPR.
1911 * gcc-interface/utils2.c (build_allocator): Deal with each branch of
1912 a COND_EXPR in the initializer, if present.
1914 2011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1916 * gcc-interface/decl.c (maybe_pad_type): Do not try to change the form
1917 of an addressable type.
1918 * gcc-interface/trans.c (gnat_gimplify_expr) <VIEW_CONVERT_EXPR>: New.
1919 Deal with those cases for which creating a temporary is mandatory.
1921 2011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1923 * gcc-interface/trans.c (call_to_gnu): Use local variable. Make sure
1924 this is a real formal parameter before testing whether it is by ref.
1926 2011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1928 * gcc-interface/gigi.h (build_call_0_expr): Delete.
1929 (build_call_1_expr): Likewise.
1930 (build_call_2_expr): Likewise.
1931 (build_call_n_expr): New prototype.
1932 * gcc-interface/decl.c (gnat_to_gnu_entity): Use build_call_n_expr.
1933 * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Ditto.
1934 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
1935 (Exception_Handler_to_gnu_zcx): Likewise.
1936 (gnat_to_gnu): Likewise.
1937 (build_binary_op_trapv): Likewise.
1938 * gcc-interface/utils2.c (build_call_0_expr): Delete.
1939 (build_call_1_expr): Likewise.
1940 (build_call_2_expr): Likewise.
1941 (build_call_n_expr): New function.
1942 (build_call_raise): Use build_call_n_expr.
1943 (build_call_raise_range): Likewise.
1944 (build_call_raise_column): Likewise.
1945 (build_call_alloc_dealloc_proc): Likewise.
1946 (maybe_wrap_malloc): Likewise.
1947 (maybe_wrap_free): Likewise.
1949 2011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1951 * gcc-interface/trans.c (build_return_expr): Use void_type_node for
1953 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Assert that
1954 the result type is null if ENABLE_CHECKING. Set operation_type at the
1955 end unconditionally if not set in the previous cases.
1956 Use build2 and void_type_node for MODIFY_EXPR.
1957 (build_allocator): Use NULL_TREE for MODIFY_EXPR.
1959 2011-09-08 Eric Botcazou <ebotcazou@adacore.com>
1961 * gcc-interface/utils.c (unchecked_convert): Use a field of the right
1962 precision when converting to or from an integral type whose precision
1963 is not equal to its size.
1965 2011-09-08 Iain Sandoe <iains@gcc.gnu.org>
1967 * traceback.c (Darwin) USE_GCC_UNWINDER for Darwin versions >= 8.
1969 2011-09-07 Iain Sandoe <iains@gcc.gnu.org>
1971 * gcc-interface/Makefile.in (darwin): Provide powerpc64 system
1973 * system-darwin-ppc64.ads: New file.
1975 2011-09-06 Iain Sandoe <iains@gcc.gnu.org>
1977 * gcc-interface/Makefile.in (gnatlib-shared-darwin): Remove
1980 2011-09-06 Iain Sandoe <iains@gcc.gnu.org>
1982 * gcc-interface/Makefile.in (darwin, SO_OPTS): Provide architecture
1983 size switches to the link phase for shared libs.
1985 2011-09-06 Iain Sandoe <iains@gcc.gnu.org>
1987 * gcc-interface/Makefile.in (x86_64 darwin arch): Adjust
1988 LIBGNAT_TARGET_PAIRS for x86 and x86_64 variants.
1990 2011-09-06 Arnaud Charlet <charlet@adacore.com>
1992 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in
1993 (gnattools, regnattools, cross-gnattools, canadian-gnattools,
1994 gnatlib, gnatlib-sjlj, gnatlib-zcx, gnatlib-shared, gnatlib_and_tools):
1996 (TOOLS_FLAGS_TO_PASS): New.
1997 (../stamp-tools): Reintroduce, to avoid merge conflicts.
1999 2011-09-06 Robert Dewar <dewar@adacore.com>
2001 * sem_ch10.adb, impunit.ads, impunit.adb (Not_Impl_Defined_Unit): New
2002 name for Is_RM_Defined_Unit. Also several fixes to this unit.
2004 2011-09-06 Robert Dewar <dewar@adacore.com>
2006 * impunit.ads, impunit.adb (Is_RM_Defined_Unit): New function.
2007 * s-rident.ads: New restriction No_Implementation_Units
2008 (this restriction is also part of the profile
2009 No_Implementation_Extensions)
2010 * sem_ch10.adb (Analyze_With_Clause): Add check for
2011 No_Implementation_Units restriction.
2013 2011-09-06 Jerome Guitton <guitton@adacore.com>
2015 * sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK
2018 2011-09-06 Thomas Quinot <quinot@adacore.com>
2020 * s-solita.adb: Minor reformatting.
2022 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2024 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that
2025 is a rewriting of an expression function does not freeze previous
2028 2011-09-06 Robert Dewar <dewar@adacore.com>
2030 * impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case
2032 2011-09-06 Tristan Gingold <gingold@adacore.com>
2034 * gcc-interface/Makefile.in: Handle e500v2-wrs-vxworksae like
2035 powerpc-wrs-vxworksae.
2037 2011-09-06 Thomas Quinot <quinot@adacore.com>
2039 * s-os_lib.ads (Spawn): Minor documentation clarification,
2040 Success is True for a zero exit status.
2042 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2044 * sem_ch5.adb: Add message for common iterator error.
2046 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2048 * exp_ch3.adb (Build_Initialization_Call): If the target is a
2049 selected component discriminated by a current instance, replace
2050 the constraint with a reference to the target object, regardless
2051 of whether the context is an init_proc.
2053 2011-09-06 Robert Dewar <dewar@adacore.com>
2055 * exp_attr.adb: Descriptor_Size is never static.
2057 2011-09-06 Robert Dewar <dewar@adacore.com>
2059 * gnat_ugn.texi: Add documentation for LSLOC metric in gnatmetric
2061 2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2063 * gnat_rm.texi: Clarify that attribute Descriptor_Size is
2066 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2068 * sem_res.adb (Resolve): An expression that is the body of an
2069 expression function does not freeze.
2071 2011-09-06 Matthew Heaney <heaney@adacore.com>
2073 * a-csquin.ads, a-cusyqu.adb, a-cbprqu.adb, a-cbsyqu.adb,
2074 a-cuprqu.adb: Changed copyright notice to indicate current
2077 2011-09-06 Vincent Celier <celier@adacore.com>
2079 * prj.adb: Minor spelling error fix in comment
2080 * sem_res.adb: Minor reformatting
2082 2011-09-06 Pascal Obry <obry@adacore.com>
2084 * sysdep.c (winflush_nt): Removed as not needed anymore.
2085 (winflush_95): Likewise.
2086 (winflush_init): Likewise.
2087 (winflush_function): Likewise.
2088 (getc_immediate_common): Remove call to winflush_function.
2090 2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2092 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the
2093 processing for Descriptor_Size.
2094 * gnat_rm.texi: Rephrase the wording for attribute Descriptor_Size
2095 to account for its broader usage.
2096 * sem_attr.adb (Analyze_Attribute): Change the error detection
2097 circuitry for Descriptor_Size as the attribute is now applicable
2100 2011-09-06 Robert Dewar <dewar@adacore.com>
2102 * sem_attr.adb, prj-nmsc.adb, exp_aggr.adb: Minor reformatting.
2104 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2106 * lib-xref.adb (OK_To_Set_Referenced): A reference to a formal
2107 in a parameter association must not set the Referenced flag on
2109 * prj-nmsc.adb (Check_File_Naming_Schemes): Remove useless formal
2111 2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2113 * gnat_rm.texi: Add a section on attribute Descriptor_Size
2115 2011-09-06 Arnaud Charlet <charlet@adacore.com>
2117 * gcc-interface/Makefile.in (common-tools, gnatmake-re,
2118 gnatlink-re): Speed up by using -j0.
2120 2011-09-06 Yannick Moy <moy@adacore.com>
2122 * sem_ch13.adb (Analyze_Aspect_Specifications): Call
2123 Set_Corresponding_Aspect when creating pragma from aspect.
2124 (Add_Predicates): Use new field Corresponding_Aspect.
2125 * sem_prag.adb (Analyze_Pragma): Make Pname hold source aspect
2126 name when present, for the purpose of issuing error messages;
2127 remove local procedure Error_Pragma_Arg_Alternate_Name.
2128 * sinfo.adb, sinfo.ads (Corresponding_Aspect): New field in
2130 (From_Dynamic_Predicate, From_Static_Predicate): Remove fields from
2133 2011-09-06 Robert Dewar <dewar@adacore.com>
2135 * checks.adb, s-except.ads, g-socket.adb: Minor reformatting.
2137 2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2139 * exp_ch6.adb (Build_Heap_Allocator): Add new
2140 local variable Desig_Typ. Code and comment reformatting. Add
2141 machinery to ensure that the allocation uses a fat pointer when
2142 the type of the return object is a constrained array and the
2143 function return type is an unconstrained array.
2145 2011-09-06 Vincent Celier <celier@adacore.com>
2147 * make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formal
2148 parameters in subprograms.
2150 2011-09-06 Arnaud Charlet <charlet@adacore.com>
2152 * s-taprop-mingw.adb (Finalize_TCB): Fix typo.
2154 2011-09-06 Thomas Quinot <quinot@adacore.com>
2156 * s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb
2157 (System.Tasking.Primitive_Operations.Specific.Delete): Remove
2159 (System.Tasking.Primitive_Operations.Specific.Set): If argument
2160 is null, destroy task specific data, to make API consistent with
2161 other platforms, and thus compatible with the shared version
2163 (System.Tasking.Primitive_Operations.ATCB_Allocation.Free_ATCB):
2164 Document the above assumption.
2166 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2168 * exp_ch6.adb (Expand_Inlined_Call): Fix use of uninitialized
2169 variable for type of return value when return type is
2170 unconstrained and context is an assignment.
2172 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2174 * sem_ch8.adb (Check_Class_Wide_Actual): Do not generate body of
2175 class-wide operation if expansion is not enabled.
2177 2011-09-06 Eric Botcazou <ebotcazou@adacore.com>
2179 * checks.adb (Apply_Scalar_Range_Check): Deal with access
2182 2011-09-06 Yannick Moy <moy@adacore.com>
2184 * sem_ch13.adb (Analyze_Aspect_Specifications, case
2185 Aspect_Invariant): Do not issue error at this point on illegal
2186 pragma placement, as this is checked later on when analyzing
2187 the corresponding pragma.
2188 * sem_prag.adb (Error_Pragma_Arg_Alternate_Name): New procedure
2189 similar to Error_Pragma_Arg, except the source name of the
2190 aspect/pragma to use in warnings may be equal to parameter
2191 Alt_Name (Analyze_Pragma, case Pragma_Invariant): refine error
2192 message to distinguish source name of pragma/aspect, and whether
2193 the illegality resides in the type being public, or being private
2194 without a public declaration
2196 2011-09-06 Thomas Quinot <quinot@adacore.com>
2198 * g-socket.adb (Check_For_Fd_Set): On Windows, no need for bitmap
2199 size check (fd_set is implemented differently on that platform).
2201 2011-09-06 Thomas Quinot <quinot@adacore.com>
2203 * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
2204 s-tpoaal.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
2205 s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop.ads,
2206 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
2207 (ATCB_Allocation): New subpackage of
2208 System.Tasking.Primitive_Operations, shared across all targets
2209 with full tasking runtime.
2210 (ATCB_Allocation.New_ATCB): Moved there (from target specific
2212 (ATCB_Allocation.Free_ATCB): New subprogram. Deallocate an ATCB,
2213 taking care of establishing a local temporary ATCB if the one
2214 being deallocated is Self, to avoid a reference to the freed
2215 ATCB in Abort_Undefer.
2217 2011-09-06 Thomas Quinot <quinot@adacore.com>
2219 * s-tassta.adb, s-taskin.ads (Free_Task): If the task is not
2220 terminated, mark it for deallocation upon termination.
2221 (Terminate_Task): Call Free_Task again if the task is marked
2222 for automatic deallocation upon termination.
2224 2011-09-06 Robert Dewar <dewar@adacore.com>
2226 * a-cbprqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cusyqu.ads,
2227 a-intnam-aix.ads, a-intnam-darwin.ads, a-intnam-dummy.ads,
2228 a-intnam-freebsd.ads, a-intnam-hpux.ads, a-intnam-irix.ads,
2229 a-intnam-linux.ads, a-intnam-lynxos.ads, a-intnam-mingw.ads,
2230 a-intnam-solaris.ads, a-intnam-tru64.ads,
2231 a-intnam-vms.ads, a-intnam-vxworks.ads, a-intnam.ads, interfac.ads,
2232 cstand.adb, s-maccod.ads: Mark all entities as Implementation_Defined
2233 * einfo.ads, einfo.adb (Is_Implementation_Defined): New flag
2234 * par-prag.adb: Add dummy entry for pragma Implementation_Defined
2235 * s-rident.ads: Add new restriction No_Implementation_Identifiers
2236 Add new profile No_Implementation_Extensions
2237 * sem_prag.adb: Implement pragma Implementation_Defined Implement
2238 profile No_Implementation_Extensions
2239 * sem_util.adb: Minor reformatting (Set_Entity_With_Style_Check):
2240 Check violation of restriction No_Implementation_Identifiers
2241 * snames.ads-tmpl: Add entries for pragma Implementation_Defined
2242 Add entry for Name_No_Implementation_Extensions
2244 2011-09-06 Robert Dewar <dewar@adacore.com>
2246 * impunit.ads: Minor reformatting.
2248 2011-09-06 Robert Dewar <dewar@adacore.com>
2250 * ali.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.
2252 2011-09-06 Pascal Obry <obry@adacore.com>
2254 * s-osinte-linux.ads, s-oscons-tmplt.c: Use oscons to define sigset_t
2257 2011-09-06 Robert Dewar <dewar@adacore.com>
2259 * g-socket.adb: Minor reformatting
2261 2011-09-06 Javier Miranda <miranda@adacore.com>
2263 * ali.adb (Scan_ALI): Add missing support to load references of
2264 entities imported from other languages.
2265 * ali.ads (Xref_Record): Adding new fields to store the language and
2266 name of an imported entity.
2267 * lib-xref.adb (Output_Import_Export_Info): Fix typo
2270 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2272 * sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariant
2273 is allowed on a full type declaration if it is the completion of
2274 a private declarations.
2275 * sem_ch13.adb (Analyze_Aspect_Specifications): An invariant
2276 aspect is allowed on a full type declaration in the private part
2279 2011-09-06 Robert Dewar <dewar@adacore.com>
2281 * sem_ch8.ads: Minor reformatting
2283 2011-09-06 Thomas Quinot <quinot@adacore.com>
2285 * s-oscons-tmplt.c, g-socket.adb (GNAT.Sockets.Clear,Set,Is_Set):
2286 Guard against socket values that are not in [0;FD_SETSIZE[
2288 2011-09-06 Robert Dewar <dewar@adacore.com>
2290 * s-osinte-linux.ads, a-iteint.ads, exp_ch6.adb, s-solita.adb: Minor
2293 2011-09-06 Arnaud Charlet <charlet@adacore.com>
2295 * s-linux-alpha.ads: Minor reformatting
2296 * s-oscons-tmplt.c: Fix generated comments in s-oscons template.
2297 Use sizeof instead of corresponding C defines in s-oscons template.
2299 2011-09-06 Vadim Godunko <godunko@adacore.com>
2301 * a-convec.ads, a-iteint.ads: Minor reformatting.
2303 2011-09-06 Vincent Celier <celier@adacore.com>
2305 * projects.texi: Add menus and @node lines.
2307 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2309 * exp_ch6.adb (Expand_Inlined_Call): Handle properly the case
2310 where the return type is an unconstrained array and the context
2311 is an assignment. Optimize the case when the target of the
2312 assignment is a selected component.
2314 2011-09-06 Arnaud Charlet <charlet@adacore.com>
2316 * s-solita.adb: Update comments.
2318 2011-09-06 Pascal Obry <obry@adacore.com>
2320 * s-linux.ads, s-linux-alpha.ads, s-linux-hppa.ads, s-linux-mipsel.ads,
2321 s-linux-sparc.ads: Remove hard coded and now wrong definitions.
2322 * s-oscons-tmplt.c: Add support for generating pthread related
2323 types size on GNU/Linux as done for Darwin.
2324 * s-osinte-linux.ads: Use s-oscons to define the pthread types.
2326 2011-09-06 Robert Dewar <dewar@adacore.com>
2328 * exp_ch6.adb: Fix minor typo.
2330 2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2332 * exp_ch7.adb: Remove with and use clauses for Get_Targ.
2333 (Alignment_Of): Moved to the body of Nearest_Multiple_Rounded_Up.
2334 (Double_Size_Of): Alphabetized. Update the comment on usage.
2335 (Make_Finalize_Address_Stmts): Update comments and reformat code.
2336 (Nearest_Multiple_Rounded_Up): New routine.
2337 (Size_Of): Update comment on usage. The generated expression now
2338 accounts for alignment gaps by rounding the size of the type to the
2339 nearest multiple rounded up of the type's alignment.
2341 2011-09-06 Robert Dewar <dewar@adacore.com>
2343 * exp_ch7.adb, g-comlin.adb: Minor reformatting.
2345 2011-09-06 Steve Baird <baird@adacore.com>
2347 * exp_ch4.adb (Expand_Allocator_Expression): Look through
2348 derived subprograms in checking for presence of an
2349 Extra_Accessibility_Of_Result formal parameter.
2350 * exp_ch6.adb (Expand_Call): Look through derived subprograms in
2351 checking for presence of an Extra_Accessibility_Of_Result formal
2353 (Expand_Call.Add_Actual_Parameter): Fix a bug in the
2354 case where the Parameter_Associatiations attribute is already set,
2355 but set to an empty list.
2356 (Needs_Result_Accessibility_Level):
2357 Unconditionally return False. This is a temporary
2358 change, disabling the Extra_Accessibility_Of_Result
2360 (Expand_Simple_Function_Return): Check for
2361 Extra_Accessibility_Of_Result parameter's presence instead of
2362 testing Ada_Version when generating a runtime accessibility
2363 check which makes use of the parameter.
2365 2011-09-06 Ed Schonberg <schonberg@adacore.com>
2367 * exp_ch4.adb (Expand_N_Case_Expression): Actions created for the
2368 expression in a given case alternative must be attached to the
2369 statement list of the ccrresponding case statement alternative
2370 They cannot be propagated ahead of the case statement, because
2371 the validity of the expression that generated the action may
2372 hold only for that alternative.
2374 2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2376 * exp_ch7.adb: Remove with and use clauses for Get_Targ.
2377 (Alignment_Of): Remove the code for strict alignment targets.
2378 (Double_Alignment_Of): Removed.
2379 (Double_Size_Of): New routine.
2380 (Make_Finalize_Address_Stmts): Change the
2381 calculation of the dope's size. Update relevant comments.
2382 (Size_Of): New routine.
2384 2011-09-06 Steve Baird <baird@adacore.com>
2386 * einfo.ads (Extra_Accessibility): Update associated comment to use
2387 the term "present" correctly ("present" just means that it is not
2388 an error to query the value of the attribute - it does not imply
2389 that the value must be non-null).
2390 (Extra_Constrained): Ditto.
2391 (Is_Visible_Formal): Ditto.
2392 (Extra_Accessibility_Of_Result) Ditto; also add Inline pragma.
2393 (Set_Extra_Accessibility_Of_Result): Add Inline pragma.
2394 * exp_ch4.adb (Expand_Allocator_Expression): Improve a comment.
2395 * exp_ch6.adb (Expand_Call): The callee may require an
2396 Extra_Accessibility_Of_Result actual parameter even if Ada_Version
2397 < Ada_2012. This can occur if the callee is exported from a Gnat
2398 runtimes unit. Also improve a comment.
2400 2011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2402 * exp_ch7.adb: Add with and use clauses for Get_Targ.
2403 (Alignment_Of): Rename formal parameter Some_Typ
2404 to Typ, update related comment. Use the allocator alignment on
2405 strict alignment targets such as SPARC.
2406 (Double_Alignment_Of): Rename formal parameter Some_Typ to Typ, update
2409 2011-09-06 Gary Dismukes <dismukes@adacore.com>
2411 * sem_ch9.adb (Check_Interfaces): Test
2412 Is_Limited_Type rather than Is_Limited_Record when checking that
2413 the partial view of a synchronized full view must be limited.
2415 2011-09-06 Emmanuel Briot <briot@adacore.com>
2417 * g-comlin.adb (Free): Fix memory leak.
2419 2011-09-06 Robert Dewar <dewar@adacore.com>
2421 * sem_util.adb, exp_ch6.adb: Minor reformatting and code reorganization.
2423 2011-09-06 Steve Baird <baird@adacore.com>
2425 * einfo.ads (Extra_Accessibility_Of_Result): New function; in the
2426 (Ada2012) cases described in AI05-0234 where the accessibility
2427 level of a function result is "determined by the point of
2428 call", an implicit parameter representing that accessibility
2429 level is passed in. Extra_Accessibilty_Of_Result yields this
2430 additional formal parameter. Extra_Accessibility_Of_Result
2431 is analogous to the existing Extra_Accessibility
2432 function used in the implementation of access parameters.
2433 (Set_Extra_Accessibility_Of_Result): New procedure; sets
2434 Extra_Accessibility_Of_Result attribute.
2435 * einfo.adb (Extra_Accessibility_Of_Result): New function.
2436 (Set_Extra_Accessibility_Of_Result): New procedure.
2437 (Write_Field19_Name): Display Extra_Accessibilty_Of_Result attribute.
2438 * sem_util.adb (Dynamic_Accessibility_Level): Set Etype of
2439 an accessibility level literal to Natural; introduce a nested
2440 function, Make_Level_Literal, to do this.
2441 * exp_ch6.ads (Needs_Result_Accessibility_Level): New function;
2442 determines whether a given function (or access-to-function
2443 type) needs to have an implicitly-declared accessibility-level
2444 parameter added to its profile.
2445 (Add_Extra_Actual_To_Call): Export an existing procedure which was
2446 previously declared in the body of Exp_Ch6.
2447 * exp_ch6.adb (Add_Extra_Actual_To_Call): Export declaration by moving
2449 (Has_Unconstrained_Access_Discriminants): New Function; a
2450 predicate on subtype entities which returns True if the given
2451 subtype is unconstrained and has one or more access discriminants.
2452 (Expand_Call): When expanding a call to a function which takes an
2453 Extra_Accessibility_Of_Result parameter, pass in the appropriate
2454 actual parameter value. In the case of a function call which is
2455 used to initialize an allocator, this may not be possible because
2456 the Etype of the allocator may not have been set yet. In this
2457 case, we defer passing in the parameter and handle it later in
2458 Expand_Allocator_Expression.
2459 (Expand_Simple_Function_Return): When returning from a function which
2460 returns an unconstrained subtype having at least one access
2461 discriminant, generate the accessibility check needed to ensure that
2462 the function result will not outlive any objects designated by its
2464 (Needs_Result_Accessibility_Level): New function; see exp_ch6.ads
2466 * exp_ch4.adb (Expand_Allocator_Expression): When a function call
2467 is used to initialize an allocator, we may need to pass in "the
2468 accessibility level determined by the point of call" (AI05-0234)
2469 to the function. Expand_Call, where such actual parameters are
2470 usually generated, is too early in this case because the Etype of
2471 the allocator (which is used in determining the level to be passed
2472 in) may not have been set yet when Expand_Call executes. Instead,
2473 we generate code to pass in the appropriate actual parameter
2474 in Expand_Allocator_Expression.
2475 * sem_ch6.adb (Create_Extra_Formals): Create
2476 the new Extra_Accessibility_Of_Result formal if
2477 Needs_Result_Accessibility_Level returns True. This includes the
2478 introduction of a nested procedure, Check_Against_Result_Level.
2480 2011-09-06 Arnaud Charlet <charlet@adacore.com>
2482 * gcc-interface/Makefile.in (X86_TARGET_PAIRS): Remove duplicate
2485 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2487 * s-finmas.adb (Set_Finalize_Address): Explain the reason
2488 for the synchronization. Move the test for null from
2489 s-stposu.Allocate_Any_Controlled to this routine since the check
2490 needs to be protected too.
2491 (Set_Heterogeneous_Finalize_Address): Explain the reason for the
2492 synchronization code.
2493 * s-finmas.ads (Set_Heterogeneous_Finalize_Address): Add comment
2494 explaining the context in which this routine is used.
2495 * s-stposu.adb (Allocate_Any_Controlled): Move the test for null
2496 to s-finmas.Set_Finalize_Address.
2498 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2500 * einfo.ads: Document that itypes have no parent field.
2502 2011-09-05 Robert Dewar <dewar@adacore.com>
2504 * rtsfind.adb (Check_CRT): Check for overloaded entity
2505 * rtsfind.ads: Document that entities to be found by rtsfind
2506 cannot be overloaded
2507 * s-taenca.adb, s-tasren.adb, s-tpobop.adb, s-tpoben.ads, s-tpoben.adb
2508 (Lock_Entries_With_Status): New name for Lock_Entries with two
2509 arguments (changed to meet rtsfind no overloading rule).
2511 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2513 * s-finmas.adb (Set_Finalize_Address (Address,
2514 Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
2515 (Set_Finalize_Address (in out Finalization_Master,
2516 Finalize_Address_Ptr): Add synchronization code.
2517 * s-finmas.ads (Set_Finalize_Address (Address,
2518 Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
2519 * s-stposu.adb (Allocate_Any_Controlled): Update the call to
2520 Set_Finalize_Address for the heterogeneous case.
2522 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2524 * sem_ch3.adb: Undo previous change, not suitable after all.
2526 2011-09-05 Robert Dewar <dewar@adacore.com>
2528 * einfo.ads: Minor comment clarification.
2530 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2532 * exp_ch6.adb (Move_Activation_Chain): Rewritten. The routine
2533 no longer needs to search through the entities of the return
2534 statement scope to find the _chain.
2535 * sem_ch5.adb: Add with and use clauses for Exp_Ch6 and Sem_Ch6.
2536 (Analyze_Block_Statement): Add local variable
2537 Is_BIP_Return_Statement. Add machinery to install all entities
2538 produced by the expansion of the return object declaration.
2539 (Install_Return_Entities): New routine.
2540 * sem_ch6.ads, sem_ch6.adb (Install_Entity): Moved from body to spec.
2542 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2544 * sem_ch10.adb (Analyze_Context): Apply simple fixup if context
2545 of subunit is incomplete.
2546 (Analyze_Proper_Body): If parent spec is not available, do not
2549 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2551 * sem_disp.adb (Find_Controlling_Arg): Add checks for
2552 interface type conversions, that are expanded into dereferences.
2554 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2556 * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
2557 Examine the parameter and return profile of a subprogram and swap
2558 any incomplete types coming from a limited context with their
2559 corresponding non-limited views.
2560 (Exchange_Limited_Views): New routine.
2562 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2564 * sem_ch3.adb (Prepare_Private_Subtype_Completion): Set parent
2565 of internal entity to the subtype declaration, so that when
2566 entities are subsequently exchanged in a package body, the tree
2567 remains properly formatted for ASIS.
2569 2011-09-05 Johannes Kanig <kanig@adacore.com>
2571 * g-comlin.adb (Set_Usage): Additional optional argument to set help
2573 (Display_Help): display the user given help message, if available.
2575 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2577 * sem_ch3.adb (OK_For_Limited_Init_In_05): The expression
2578 is legal if the original node is an identifier that is a
2579 parameterless function call.
2581 2011-09-05 Pascal Obry <obry@adacore.com>
2583 * prj-nmsc.adb: Minor reformatting.
2584 Add support for standalone aggregate library.
2585 (Check_Stand_Alone_Library): Handle standalone aggregate library.
2586 * projects.texi: Fix documentation for aggregate library projects.
2588 2011-09-05 Robert Dewar <dewar@adacore.com>
2590 * sem_ch6.adb: Minor reformatting.
2592 2011-09-05 Matthew Gingell <gingell@adacore.com>
2594 * s-tassta.adb (Task_Wrapper): Ensure that we don't try to write the
2595 stack guard page on PPC Linux. This patch ensures the 64K guard page at
2596 the bottom of the stack is not overwritten.
2598 2011-09-05 Thomas Quinot <quinot@adacore.com>
2600 * exp_intr.adb, s-tasini.adb: Minor reformatting.
2602 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2604 * sem_ch3.adb (Access_Definition): If an access type declaration
2605 appears in a child unit, the scope of whatever anonymous type
2606 may be generated is the child unit itself.
2608 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2610 * sem_ch6.adb (Analyze_Expression_Function): Do not set
2611 Comes_From_Source on rewritten body.
2612 (Analyze_Subprogram_Body_Helper): Check that the original node for
2613 the body comes from source, when determining whether expansion
2614 of a protected operation is needed.
2616 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2618 * exp_aggr.adb (Replace_Type): If the target of the assignment is
2619 a selected component and the right-hand side is a self-referential
2620 access, the proper prefix of the rewritten attribute is a copy
2621 of the left-hand side, not of its prefix.
2623 2011-09-05 Robert Dewar <dewar@adacore.com>
2625 * sem_ch5.adb: Minor reformatting.
2626 * sem_ch3.adb: Minor code clean up.
2628 2011-09-05 Jose Ruiz <ruiz@adacore.com>
2630 * exp_ch9.adb (Make_Initialize_Protection): The fact that
2631 restriction No_Dynamic_Attachment is in effect or not should
2632 not influence the default priority associated to a protected
2633 object. With this change, when the restriction is in effect (as
2634 is the case for the Ravenscar profile) the default priority of
2635 a protected object with an interrupt handler is in the range of
2636 interrupt priorities (Default_Interrupt_Priority) as required
2639 2011-09-05 Arnaud Charlet <charlet@adacore.com>
2641 * a-iteint.ads: Fix header.
2643 2011-09-05 Vincent Celier <celier@adacore.com>
2645 * prj-conf.adb (Do_Autoconf): Make sure Obj_Dir always ends
2646 with a directory separator to avoid output such as:
2647 "/path/to/objauto.cgpr" has been deleted.
2649 2011-09-05 Robert Dewar <dewar@adacore.com>
2651 * sem_ch3.adb: Minor reformatting.
2653 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2655 * sem_ch5.adb: Better error message.
2657 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2659 * exp_aggr.adb: Add with and use clause for Exp_Ch6.
2660 (Expand_Array_Aggregate): Detect a special case of an aggregate
2661 which contains tasks in the context of an unexpanded return
2662 statement of a build-in-place function.
2663 * exp_ch6.adb: Add with and use clause for Exp_Aggr.
2664 (Expand_N_Extended_Return_Statement): Detect a delayed aggregate
2665 which contains tasks and expand it now that the original simple
2666 return statement has been rewritten.
2667 * exp_ch9.adb (Build_Activation_Chain_Entity): Code
2668 reformatting. Do not create a chain for an extended return
2669 statement if one is already available.
2670 (Has_Activation_Chain): New routine.
2672 2011-09-05 Marc Sango <sango@adacore.com>
2674 * sem_ch3.adb (Analyze_Object_Declaration): Remove
2675 the wrong test and add the correct test to detect the violation
2676 of illegal use of unconstrained string type in SPARK mode.
2678 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2680 * sem_ch5.adb (Analyze_Iteration_Specification): Improve error
2681 message on an iterator over an array.
2683 2011-09-05 Robert Dewar <dewar@adacore.com>
2685 * lib-xref-alfa.adb: Minor reformatting.
2687 2011-09-05 Robert Dewar <dewar@adacore.com>
2689 * sem_ch3.adb, sem_res.adb, par.adb, par-ch6.adb, g-comlin.adb,
2690 exp_ch6.adb, lib-xref-alfa.adb: Minor reformatting.
2692 2011-09-05 Gary Dismukes <dismukes@adacore.com>
2694 * exp_ch7.adb, exp_ch6.adb: Minor reformatting.
2696 2011-09-05 Johannes Kanig <kanig@adacore.com>
2698 * lib-xref-alfa.adb: Update comments.
2700 2011-09-05 Thomas Quinot <quinot@adacore.com>
2702 * sem_res.adb: Minor reformatting
2704 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2706 * exp_ch6.adb (Build_In_Place_Formal): If extra formals are not
2707 present, create them now. Needed in case the return type was
2708 a limited view in the function declaration.
2709 (Make_Build_In_Place_Call_In_Allocator): If return type contains
2710 tasks, build the activation chain for it. Pass a reference to
2711 the Master_Id in call to Add_Task_Actuals_To_Build_In_Place call.
2712 * exp_ch7.adb (Make_Set_Finalize_Address_Call): Clean up interface
2713 with build_in_place calls.
2714 * sem_ch9.adb (Analyze_Task_Type_Declaration): If partial view was
2715 incomplete, inatialize its Corresponding_Record_Type component.
2716 * sem_ch10.adb (Build_Chain): Initialize Private_Dependents field
2719 2011-09-05 Johannes Kanig <kanig@adacore.com>
2721 * lib-xref-alfa.adb (Is_Alfa_Reference): Filter constants from effect
2724 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2726 * par-ch6.adb (P_Subprogram): In Ada2012 mode, if the subprogram
2727 appears within a package specification and the token after "IS"
2728 is not a parenthesis, assume that this is an unparenthesized
2729 expression function, even if the token appears in a line by
2731 * par.adb: Clarify use of Labl field of scope stack in error
2734 2011-09-05 Bob Duff <duff@adacore.com>
2736 * sem_res.adb (Resolve_Intrinsic_Operator): Use unchecked
2737 conversions instead of normal type conversions in all cases where a
2738 type conversion would be illegal. In particular, use unchecked
2739 conversions when the operand types are private.
2741 2011-09-05 Johannes Kanig <kanig@adacore.com>
2743 * lib-xref-alfa.adb (Is_Alfa_Reference): Never declare effects on
2744 objects of task type or protected type.
2746 2011-09-05 Ed Schonberg <schonberg@adacore.com>
2748 * sem_ch6.adb (Analyze_Expression_Function): If the expression
2749 function comes from source, indicate that so does its rewriting,
2750 so it is compatible with any subsequent expansion of the
2751 subprogram body (e.g. when it is a protected operation).
2752 * sem_ch4.adb: minor reformatting
2754 2011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2756 * lib.adb (Check_Same_Extended_Unit): Comment rewriting. Use
2757 Get_Source_Unit rather than Get_Code_Unit as instantiation unfolding
2758 may lead to wrong ancestor package in the case of instantiated subunit
2759 bodies. If a subunit is instantiated, follow the chain of instantiations
2760 rather than the stub structure.
2762 2011-09-02 Robert Dewar <dewar@adacore.com>
2764 * sem_ch4.adb, sem_ch6.adb: Minor reformatting.
2765 * gcc-interface/Make-lang.in: Update dependencies.
2767 2011-09-02 Marc Sango <sango@adacore.com>
2769 * sem_ch3.adb (Analyze_Object_Declaration): Change
2770 comment and add additional check to differentiate constant of
2771 type string from others unconstrained type.
2773 2011-09-02 Ed Schonberg <schonberg@adacore.com>
2775 * sinfo.ads, sinfo.adb: New semantic attribute Premature_Use,
2776 present in incomplete type declarations to refine the error
2777 message the full declaration is in the same unit.
2778 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of
2779 an incomplete type, set the Premature_Use for additional message.
2780 * sem_ch3.adb (Find_Type_Name): If partial view is incomplete
2781 and Premature_Use is set, place additional information at the
2782 point of premature use.
2784 2011-09-02 Bob Duff <duff@adacore.com>
2786 * sem_ch6.adb: (Check_Post_State): Suppress warning
2787 "postcondition refers only to pre-state" when the expression has not
2788 yet been analyzed, because it causes false alarms. This can happen when
2789 the postcondition contains a quantified expression, because those are
2790 analyzed later. This is a temporary/partial fix.
2791 (Process_Post_Conditions): Minor: change wording of warning.
2793 2011-09-02 Marc Sango <sango@adacore.com>
2795 * sem_ch3.adb (Analyze_Object_Declaration): Detect the violation of
2796 illegal use of unconstrained string type in SPARK mode.
2797 * sem_res.adb (Analyze_Operator_Symbol): Set the
2798 right place where the string operand of concatenation should be
2799 violate in SPARK mode.
2801 2011-09-02 Robert Dewar <dewar@adacore.com>
2803 * sem_prag.adb, sem_util.adb, sem_ch6.adb, prj-nmsc.adb,
2804 exp_ch3.adb: Minor reformatting.
2806 2011-09-02 Vincent Celier <celier@adacore.com>
2808 * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Declare "gcc"
2809 as the compiler driver so Is_Compilable returns True for sources.
2810 * prj-nmsc.adb (Override_Kind): When Kind is Sep, set the source
2813 2011-09-02 Ed Schonberg <schonberg@adacore.com>
2815 * sem_prag.adb (Analyze_PPC_In_Decl_Part): for a class-wide
2816 condition, a reference to a controlling formal must be interpreted
2817 as having the class-wide type (or an access to such) so that the
2818 inherited condition can be properly applied to any overriding
2819 operation (see ARM12 6.6.1 (7)).
2821 2011-09-02 Tristan Gingold <gingold@adacore.com>
2823 * init.c (__gnat_is_vms_v7): Fix case and add prototype
2826 2011-09-02 Javier Miranda <miranda@adacore.com>
2828 * exp_ch3.adb (Expand_N_Object_Declaration): Do not copy the
2829 initializing expression of a class-wide interface object declaration
2830 if its type is limited.
2832 2011-09-02 Johannes Kanig <kanig@adacore.com>
2834 * sem_util.adb (Unique_Name): To obtain a unique name for enumeration
2835 literals, take into account the type name; the type is *not*
2836 the scope for an enumeration literal.
2838 2011-09-02 Ed Schonberg <schonberg@adacore.com>
2840 * sem_ch6.adb (Check_Overriding_Indicator): add special check
2841 to reject an overriding indicator on a user-defined Adjust
2842 subprogram for a limited controlled type.
2844 2011-09-02 Ed Schonberg <schonberg@adacore.com>
2846 * sem_res.adb (Resolve_Actuals): add missing call to Resolve
2847 for an actual that is a function call returning an unconstrained
2848 limited controlled type.
2850 2011-09-02 Tristan Gingold <gingold@adacore.com>
2852 * g-socthi-vms.adb (c_sendmsg, c_recvmsg): Use unpacked msg if on vms 7
2854 2011-09-02 Johannes Kanig <kanig@adacore.com>
2856 * alfa.ads (Name_Of_Heap_Variable): Change value of the HEAP variable
2857 from "HEAP" to __HEAP Change comment that refers to that variable
2858 * put_alfa.adb: Change comment that refers to that variable
2860 2011-09-02 Robert Dewar <dewar@adacore.com>
2862 * exp_ch4.adb, exp_ch6.adb, prj-nmsc.adb: Minor reformatting.
2864 2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
2866 * exp_util.adb (Extract_Renamed_Object): Renamed to
2867 Find_Renamed_Object. This routine has been reimplemented and now uses
2868 tree traversal to locate a renamed object.
2869 (Is_Aliased): Replace call to Extract_Renamed_Object with
2870 Find_Renamed_Object.
2872 2011-09-02 Tristan Gingold <gingold@adacore.com>
2874 * init.c: (__gnat_is_vms_v7): New function.
2876 2011-09-02 Olivier Hainque <hainque@adacore.com>
2878 * tracebak.c (STOP_FRAME, ppc elf/vxworks case): Stop on frames
2879 that have a misaligned backchain, necessarily bogus.
2881 2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
2883 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not create
2884 TSS routine Finalize_Address when compiling in Alfa mode.
2885 (Expand_Freeze_Record_Type): Do not create TSS routine
2886 Finalize_Address when compiling in Alfa mode.
2887 * exp_ch4.adb (Expand_Allocator_Expression): Do not produce a
2888 call to Set_Finalize_Address in Alfa mode because Finalize_Address is
2890 (Expand_N_Allocator): Do not produce a call to
2891 Set_Finalize_Address in Alfa mode because Finalize_Address is not built.
2892 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Do not
2893 produce a call to primitive Set_Finalize_Address in Alfa mode because
2894 Finalize_Address is not built.
2895 * exp_ch7.adb (Build_Finalization_Master): Do not create
2896 finalization masters in Afa mode since they are not needed.
2897 (Build_Finalizer): Do not create scope and library-level
2898 finalizers in Alfa mode since they are not needed.
2899 * exp_util.adb (Build_Allocate_Deallocate_Proc): Do not expand
2900 "new" and "free" when applied to controlled objects in Alfa mode since
2903 2011-09-02 Vincent Celier <celier@adacore.com>
2905 * prj-nmsc.db: (Check_Stand_Alone_Library): For SALs, allow
2906 only library names with the syntax of Ada identifiers, to avoid errors
2907 when compiling the binder generated files.
2908 * projects.texi: Document restriction on SAL library names
2910 2011-09-02 Thomas Quinot <quinot@adacore.com>
2912 * a-chtgbo.adb: Minor comment fix.
2914 2011-09-02 Robert Dewar <dewar@adacore.com>
2916 * lib-xref.adb: Minor reformatting
2918 2011-09-02 Vincent Celier <celier@adacore.com>
2920 * bindusg.adb, clean.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
2921 gnatls.adb, gnatname.adb, gnatxref.adb, gprep.adb, makeusg.adb: Add
2922 --version and --help in usage.
2923 * switch.ads, switch.adb (Display_Usage_Version_And_Help): New procedure
2925 2011-09-02 Bob Duff <duff@adacore.com>
2927 * lib-xref.adb: (Hash): Avoid use of 'Mod attribute, because old
2928 compilers don't understand it.
2930 2011-09-02 Gary Dismukes <dismukes@adacore.com>
2932 * exp_attr.adb (Expand_N_Attribute_Reference): Pass the
2933 underlying subtype rather than its base type on the call to
2934 Build_Record_Or_Elementary_Input_Function, so that any
2935 constraints on a discriminated subtype will be available for
2936 doing the check required by AI05-0192.
2937 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
2938 If the prefix subtype of the 'Input attribute is a constrained
2939 discriminated subtype, then check each constrained discriminant value
2940 against the corresponding value read from the stream.
2942 2011-09-02 Yannick Moy <moy@adacore.com>
2944 * usage.adb, warnsw.adb, sem_ch6.adb, opt.ads: Disable by default
2945 warnings on suspicious contracts, and enable them with -gnatwa.
2947 2011-09-02 Robert Dewar <dewar@adacore.com>
2949 * exp_util.adb, exp_ch9.adb, sem_attr.adb, sem_ch6.adb: Minor
2952 2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
2954 * exp_ch9.adb (Install_Private_Data_Declarations): Add guards
2955 which ensure that restriction No_Dynamic_Attachment has not been
2957 (Make_Initialize_Protection): Protected types with attach or
2958 interrupt handlers must not violate restriction No_Dynamic_Attachment.
2959 * exp_util.adb (Corresponding_Runtime_Package): Add a guard
2960 which ensures that restriction No_Dynamic_Attachment has not been
2962 * sem_attr.adb: (Eval_Attribute): Transform
2963 VAX_Float_Type'First and 'Last into references to
2964 the temporaries which store the corresponding bounds. The
2965 transformation is needed since the back end cannot evaluate
2966 'First and 'Last on VAX.
2967 (Is_VAX_Float): New routine.
2969 2011-09-02 Ed Schonberg <schonberg@adacore.com>
2971 * sem_ch12.adb (Analyze_Subprogram_Instantiation): If the
2972 generic unit is not intrinsic and has an explicit convention,
2973 the instance inherits it.
2975 2011-09-02 Robert Dewar <dewar@adacore.com>
2977 * prj-dect.adb, prj-env.adb, prj-nmsc.adb, prj-proc.adb, prj-tree.adb,
2978 prj.adb, prj.ads, sem_ch5.adb: Minor reformatting.
2980 2011-09-02 Thomas Quinot <quinot@adacore.com>
2982 * sem_attr.adb (Analyze_Attribute, case Unrestriced_Access):
2983 Guard against a prefix that is an N_Has_Entity but has no
2986 2011-09-02 Yannick Moy <moy@adacore.com>
2988 * lib-xref-alfa.adb (Is_Alfa_Reference): Ignore IN parameters in Alfa
2991 2011-09-02 Yannick Moy <moy@adacore.com>
2993 * opt.ads (Warn_On_Suspicious_Contract): New warning flag.
2994 * sem_ch3.adb (Analyze_Declarations): Call checker for suspicious
2996 * sem_ch6.adb, sem_ch6.ads (Check_Subprogram_Contract): New
2997 procedure looking for suspicious postconditions.
2998 * usage.adb (Usage): New options -gnatw.t and -gnatw.T.
2999 * warnsw.adb (Set_Dot_Warning_Switch): Take into account new
3000 options -gnatw.t and -gnatw.T.
3002 2011-09-02 Pascal Obry <obry@adacore.com>
3004 * prj.adb: Minor code refactoring. Move check for null project in
3006 * projects.texi: Fix minor typos.
3008 2011-09-02 Ed Schonberg <schonberg@adacore.com>
3010 * sem_ch5.adb (Analyze_Iterator_Specification): If the domain
3011 of iteration is an expression, its value must be captured in a
3012 renaming declaration, so that modification of the elements is
3013 propagated to the original container.
3015 2011-09-02 Pascal Obry <obry@adacore.com>
3017 * prj-proc.adb, prj.adb, makeutl.adb, makeutl.ads, prj-dect.adb,
3018 prj-nmsc.adb, prj-util.adb, prj-conf.adb, prj-env.adb,
3019 prj-tree.adb: Minor reformatting and style fixes.
3021 2011-09-02 Robert Dewar <dewar@adacore.com>
3023 * s-rident.ads: Add new restriction No_Implicit_Aliasing
3024 * sem_attr.adb: (Analyze_Access_Attribute): Deal with
3025 No_Implicit_Aliasing
3026 (Analyze_Attribute, case Address): ditto
3027 (Analyze_Attribute, case Unrestricted_Access): ditto
3028 * sem_util.ads, sem_util.adb: (Is_Aliased_View): Handle
3029 No_Implicit_Aliasing restriction.
3030 * gnat_rm.texi: Add documentation for No_Implicit_Aliasing
3032 2011-09-02 Ed Schonberg <schonberg@adacore.com>
3034 * exp_util.adb: (Possible_Bit_Aligned_Object): If the object
3035 is an unchecked conversion, apply test to its expression.
3037 2011-09-02 Javier Miranda <miranda@adacore.com>
3039 * sem_ch3.adb (Check_Abstract_Overriding): When
3040 traversing the chain of aliased subprograms avoid reporting a
3041 redundant error on the current entity.
3043 2011-09-02 Sergey Rybin <rybin@adacore.com>
3045 * gnat_ugn.texi: Minor clean up.
3047 2011-09-02 Bob Duff <duff@adacore.com>
3049 * s-htable.adb (Set_If_Not_Present): Use renaming
3050 instead of ":=", because the type Key is limited in the generic (even
3051 if not in the instances).
3053 2011-09-02 Robert Dewar <dewar@adacore.com>
3055 * exp_util.adb, sem_ch10.adb, sem_attr.adb, s-htable.adb,
3056 g-comlin.adb, g-comlin.ads, lib-xref-alfa.adb, lib-xref.adb: Minor
3059 2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
3061 * sem_ch3.adb: (Set_Anonymous_Type): Associate the itype of an
3062 inherited component with the enclosing derived type. Code reformatting.
3064 2011-09-02 Gary Dismukes <dismukes@adacore.com>
3066 * checks.adb: (Determine_Range): Add test of OK1 to prevent the early
3067 return done when overflow checks are enabled, since comparisons against
3068 Lor and Hir should not be done when OK1 is False.
3070 2011-09-02 Gary Dismukes <dismukes@adacore.com>
3072 * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
3073 Add new formal Master_Exp. When present, add that expression to the
3074 call as an extra actual.
3075 (Make_Build_In_Place_Call_In_Object_Declaration): Add variable
3076 Fmaster_Actual and in the case of a BIP call initializing a return
3077 object of an enclosing BIP function set it to a
3078 new reference to the implicit finalization master
3079 formal of the enclosing function. Fmaster_Actual is
3080 then passed to the new formal Master_Exp on the call to
3081 Add_Finalization_Master_Actual_To_Build_ In_Place_Call. Move
3082 initializations of Enclosing_Func to its declaration.
3084 2011-09-02 Thomas Quinot <quinot@adacore.com>
3086 * csets.ads: Minor reformatting
3088 2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
3090 * exp_aggr.adb: (Get_Constraint_Association): Add code to retrieve
3091 the full view of a private type coming from an instantiation.
3092 * exp_ch4.adb: (Current_Anonymous_Master): Reimplement the search
3093 loop to iterate over the declarations rather than use the
3094 First_Entity / Next_Entity scheme.
3096 2011-09-02 Ed Schonberg <schonberg@adacore.com>
3098 * sem_attr.adb: (Analyze_Attribute, case 'Range): when expanding
3099 X'range (N) into X'First (N) .. X'Last (N), do not share the
3100 dimension indicator N, if present. Even though it is a static
3101 constant, its source location may be modified when printing
3102 expanded code under -gnatDL, and node sharing will lead to chaos
3103 in Sprint on large files, by generating a sloc value that does
3104 not correspond to any source file.
3106 2011-09-02 Bob Duff <duff@adacore.com>
3108 * einfo.adb: (Has_Xref_Entry): Do not call
3109 Implementation_Base_Type. Lib.Xref has been
3110 rewritten to avoid the need for it, and it was costly.
3111 * s-htable.ads,s-htable.adb: (Present,Set_If_Not_Present): New
3112 functions in support of efficient xref.
3113 * lib-xref-alfa.adb: Misc changes related to Key component of
3115 * lib-xref.adb: (Add_Entry,etc): Speed improvement.
3116 (New_Entry): Call Implementation_Base_Type, because Has_Xref_Entry
3117 no longer does. This is the one place where it is needed.
3119 2011-09-02 Johannes Kanig <kanig@adacore.com>
3121 * g-comlin.adb (Getopt): New optional argument Concatenate to have
3122 similar interface as the other Getopt function.
3124 2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
3126 * exp_ch4.adb: (Expand_Allocator_Expression): Do not generate
3127 a call to Set_Finalize_Address if there is no allocator available.
3128 * exp_util.adb: (Build_Allocate_Deallocate_Proc): Account for
3129 a case of allocator expansion where the allocator is not expanded but
3130 needs a custom allocate routine. Code reformatting.
3131 (Is_Finalizable_Transient): Remove local variables Has_Rens and
3132 Ren_Obj. Code reformatting.
3133 (Is_Renamed): Renamed to Is_Aliased. Add code to detect aliasing
3134 through the use of 'reference.
3135 * sem_ch4.adb: (Analyze_Allocator): Detect allocators generated
3136 as part of build-in-place expansion. They are intentionally marked as
3137 coming from source, but their parents are not.
3139 2011-09-02 Ed Schonberg <schonberg@adacore.com>
3141 * sem_ch10.adb (Analyze_With_Clause): If the library unit
3142 is the generated subprogram declaration for a child unit body
3143 that acts as spec, use the original body in the with_clause,
3144 to prevent binding errors.
3146 2011-09-02 Vincent Celier <celier@adacore.com>
3148 * gnat_ugn.texi: Adapt documentation of -gnateInnn to new VMS
3149 qualifier /MULTI_UNIT_INDEX=
3151 2011-09-02 Johannes Kanig <kanig@adacore.com>
3153 * g-comlin.adb (Getopt): Return when switch is dealt with automatically,
3154 instead of calling the callback function
3156 2011-09-02 Robert Dewar <dewar@adacore.com>
3158 * prj-proc.adb, prj.ads, sem_util.adb, s-taprop-linux.adb,
3159 prj-nmsc.adb, prj-util.ads, prj-env.adb: Minor reformatting.
3161 2011-09-02 Vincent Celier <celier@adacore.com>
3163 * prj-nmsc.adb: (Find_Sources): When the list of sources is
3164 explicitly declared in an extending project, do not warn if a source
3165 for an inherited naming exception is not found.
3167 2011-09-02 Gary Dismukes <dismukes@adacore.com>
3169 * exp_ch6.adb: (Is_Build_In_Place_Function_Call): Return False if
3170 expansion is inactive.
3172 2011-09-02 Ed Schonberg <schonberg@adacore.com>
3174 * sem_util.adb (Note_Possible_Modification): If the entity
3175 being modified is the renaming generated for an Ada2012 iterator
3176 element, the enclosing container or array is modified as well.
3178 2011-09-02 Jose Ruiz <ruiz@adacore.com>
3180 * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB,
3181 Initialize): Define and initialize the
3182 mutex attributes and condition variable attributes locally.
3184 2011-09-02 Vincent Celier <celier@adacore.com>
3186 * prj-nmsc.adb (Check_File): Mark as Locally_Removed a naming
3187 exception replaced in an extending project.
3188 (Check_Object): No error when the other source is locally removed.
3190 2011-09-02 Yannick Moy <moy@adacore.com>
3192 * exp_ch6.adb (Is_Build_In_Place_Function_Call): in Alfa mode, allow
3195 2011-08-31 Arnaud Charlet <charlet@adacore.com>
3197 * gcc-interface/Makefile.in: Clean up handling of x86 and x86-64
3199 * gcc-interface/Make-lang.in: Update dependencies.
3201 2011-09-01 Robert Dewar <dewar@adacore.com>
3203 * sem_ch3.adb, s-taprop-linux.adb, gnatls.adb: Minor reformatting.
3205 2011-09-01 Jose Ruiz <ruiz@adacore.com>
3207 * adaint.h (__gnat_cpu_free): Fix the name of this profile.
3208 * adaint.c (__gnat_cpu_alloc, __gnat_cpu_alloc_size, __gnat_cpu_free,
3209 __gnat_cpu_zero, __gnat_cpu_set): Create version of these subprograms
3210 specific for systems where their glibc version does not define the
3211 routines to handle dynamically allocated CPU sets.
3213 2011-09-01 Vincent Celier <celier@adacore.com>
3215 * prj-proc.adb, prj.ads, prj-nmsc.adb, prj-util.adb, prj-util.ads,
3216 prj-env.adb: Implement inheritance of naming exceptions in extending
3219 2011-09-01 Romain Berrendonner <berrendo@adacore.com>
3221 * gnatls.adb: Display simple message instead of content of
3224 2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3226 * sem_ch3.adb: (Build_Derived_Record_Type) Remove the kludgy update of
3227 access discriminant and anonymous access component scopes.
3228 (Inherit_Component): Reuse the itype of an access discriminant
3229 or anonymous access component by copying it in order to set the proper
3230 scope. This is done only when the parent and the derived type
3231 are in different scopes.
3232 (Set_Anonymous_Etype): New routine.
3234 2011-09-01 Robert Dewar <dewar@adacore.com>
3236 * a-convec.adb: Minor reformatting throughout.
3238 2011-09-01 Jose Ruiz <ruiz@adacore.com>
3240 * adaint.c, adaint.h (__gnat_cpu_alloc, __gnat_cpu_alloc_size,
3241 __gnat_cpu_set_free): Create these wrappers around the CPU_ALLOC,
3242 CPU_ALLOC_SIZE and CPU_FREE linux macros.
3243 (__gnat_cpu_zero, __gnat_cpu_set): Use the CPU_ZERO_S and
3244 CPU_SET_S respectively because we are now using dynamically allocated
3245 CPU sets which are more portable across different glibc versions.
3246 * s-osinte-linux.ads (cpu_set_t_ptr, CPU_ALLOC, CPU_ALLOC_SIZE,
3247 CPU_FREE): Add this type and subprograms to be able to create cpu_set_t
3248 masks dynamically according to the number of processors in the target
3250 (CPU_ZERO, CPU_SET): They are now mapped to the CPU_ZERO_S and CPU_SET_S
3251 respectively, so we need to pass the size of the masks as
3253 * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use dynamically
3254 created cpu_set_t masks
3255 with the number of processors available in the target platform,
3256 instead of static bit arrays. It enhances portability because
3257 it uses the information from the target platform.
3258 * sem_ch8.adb: (Attribute_Renaming): When checking whether we
3259 are using a restricted run-time library, use the flag
3260 Configurable_Run_Time_Mode instead of Restricted_Profile.
3262 2011-09-01 Vincent Celier <celier@adacore.com>
3264 * ug_words: Add /MULTI_UNIT_INDEX= -> -gnateI
3265 * vms_data.ads: Add new VMS qualifier equivalent for -gnateInnn
3267 2011-09-01 Nicolas Roche <roche@adacore.com>
3269 * adaint.c (__gnat_tmp_name): Don't use tmpnam function from the system
3270 on VxWorks in kernel mode.
3272 2011-09-01 Jose Ruiz <ruiz@adacore.com>
3274 * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use the linux
3275 macros for handling CPU sets (CPU_ZERO, CPU_SET) instead of modifying
3276 directly the bit array.
3277 * s-osinte-linux.ads (CPU_ZERO, CPU_SET): Import these wrappers around
3278 the linux macros with the same name.
3279 * adaint.h, adaint.c (__gnat_cpu_zero, __gnat_cpu_set): Create these
3280 wrappers around the CPU_ZERO and CPU_SET linux macros.
3282 2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3284 * exp_ch7.adb (Find_Insertion_List): Removed.
3285 (Process_Transient_Objects): Insert the declarations of the hook
3286 access type and the hook object before the associated transient object.
3288 2011-09-01 Jose Ruiz <ruiz@adacore.com>
3290 * sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading
3291 package System.Aux_Dec when using restricted run-time libraries which
3292 do not have this package.
3294 2011-09-01 Tristan Gingold <gingold@adacore.com>
3296 * s-vaflop-vms-alpha.adb: Remove pragma optimize, useless.
3298 2011-09-01 Bob Duff <duff@adacore.com>
3300 * sem_attr.adb (Analyze_Access_Attribute): Do not call
3301 Kill_Current_Values for P'Unrestricted_Access, where P is library level
3303 2011-09-01 Thomas Quinot <quinot@adacore.com>
3305 * exp_ch5.adb: Minor reformatting
3306 * gnat_ugn.texi: Fix minor typos.
3307 * gcc-interface/Make-lang.in: Update dependencies.
3309 2011-09-01 Robert Dewar <dewar@adacore.com>
3311 * inline.adb, sem_aggr.adb: Minor reformatting.
3313 2011-09-01 Ed Schonberg <schonberg@adacore.com>
3315 * a-convec.adb: Proper handling of cursors for Ada2012 iterators.
3317 2011-09-01 Robert Dewar <dewar@adacore.com>
3319 * prj-proc.adb, exp_ch6.adb, prj-env.adb: Minor reformatting.
3321 2011-09-01 Bob Duff <duff@adacore.com>
3323 * sem_aggr.adb (Resolve_Aggregate): Need to treat "in instance
3324 body" the same as "in inlined body", because visibility shouldn't
3327 2011-09-01 Eric Botcazou <ebotcazou@adacore.com>
3329 * inline.adb (Add_Inlined_Body): Refine previous change.
3331 2011-09-01 Gary Dismukes <dismukes@adacore.com>
3333 * exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function.
3334 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
3335 Test for case where call
3336 initializes an object of a return statement before testing for
3337 a constrained call, to ensure that all such cases get handled
3338 by simply passing on the caller's parameters. Also, in that
3339 case call Needs_BIP_Alloc_Form to determine whether to pass on
3340 the BIP_Alloc_Form parameter of the enclosing function rather
3341 than testing Is_Constrained. Add similar tests for the return
3342 of a BIP call to later processing to ensure consistent handling.
3343 (Needs_BIP_Alloc_Form): New utility function.
3344 * sem_ch6.adb: (Create_Extra_Formals): Replace test for adding
3345 a BIP_Alloc_Form formal with call to new utility function
3346 Needs_BIP_Alloc_Form.
3348 2011-09-01 Pascal Obry <obry@adacore.com>
3350 * prj-part.adb: Minor reformatting.
3352 2011-09-01 Vincent Celier <celier@adacore.com>
3354 * prj-env.adb (Create_Mapping_File.Process): Encode the upper
3355 half character in the unit name.
3357 2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3359 * exp_ch4.adb: Minor code and comment reformatting.
3361 2011-09-01 Thomas Quinot <quinot@adacore.com>
3363 * exp_ch6.adb (Expand_Inlined_Call): Remove redundant tests
3364 for Is_Limited_Type and Is_Tagged_Type in condition checking
3365 for by-reference type.
3366 * inline.adb (Add_Inlined_Body): Only exclude init_procs. Other
3367 subprograms may have a completion because of a previous
3368 Inline_Always clause, but the enclosing package must be marked
3369 inlined for the subprogram body to become visible to the backend.
3371 2011-09-01 Thomas Quinot <quinot@adacore.com>
3373 * sem_aux.adb, exp_ch4.adb: Minor reformatting
3375 2011-09-01 Pascal Obry <obry@adacore.com>
3377 * prj-proc.adb, prj.ads, sinput-p.adb: Minor reformatting.
3379 2011-09-01 Ed Schonberg <schonberg@adacore.com>
3381 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate references to
3382 the formals of a subprogram stub that acts as a spec.
3384 2011-09-01 Ed Schonberg <schonberg@adacore.com>
3386 * exp_ch6.adb (Expand_Inlined_Call): If an actual is a by_reference
3387 type, declare a renaming for it, not an object declaration.
3389 2011-09-01 Yannick Moy <moy@adacore.com>
3391 * ali-util.adb, ali-util.ads (Read_Withed_ALIs): Add parameter
3392 Ignore_Errors to ignore failures to read ALI files when True.
3394 2011-09-01 Javier Miranda <miranda@adacore.com>
3396 * exp_ch3.adb (Expand_N_Object_Declaration): Handle non-default
3397 constructor calls associated with non-tagged record types.
3399 2011-09-01 Robert Dewar <dewar@adacore.com>
3401 * g-socthi-vms.adb: Minor reformatting.
3403 2011-09-01 Nicolas Roche <roche@adacore.com>
3405 * sysdep.c: Don't use macro functions for stdio functions on VxWorks
3406 in order to avoid impact of imcompatible changes.
3407 * cstreams.c: Likewise
3409 * aux-io.c: Likewise
3411 2011-09-01 Yannick Moy <moy@adacore.com>
3413 * lib-writ.adb (Write_With_Lines): Always output complete information
3414 on "with" line in Alfa mode, as this is required by formal verification
3417 2011-09-01 Tristan Gingold <gingold@adacore.com>
3419 * g-socthi-vms.adb: Add comments.
3421 2011-09-01 Pascal Obry <obry@adacore.com>
3423 * prj.ads: Minor reformatting.
3425 2011-09-01 Vincent Celier <celier@adacore.com>
3427 * prj-env.adb (Create_Config_Pragmas_File.Check): Put all naming
3428 exceptions in the config pragmas file.
3430 2011-09-01 Tristan Gingold <gingold@adacore.com>
3432 * gnat_ugn.texi: Document GNAT_STACK_SIZE on IVMS.
3434 2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3436 * exp_ch7.adb (Find_Insertion_List): New routine.
3437 (Process_Transient_Objects): Add code to handle the abnormal
3438 finalization of a controlled transient associated with a subprogram
3439 call. Since transients are cleaned up right after the associated
3440 context, an exception raised during a subprogram call may bypass the
3443 2011-09-01 Robert Dewar <dewar@adacore.com>
3445 * exp_ch6.adb (Expand_Call): Check actual for aliased parameter is
3448 2011-09-01 Robert Dewar <dewar@adacore.com>
3450 * exp_ch4.adb, a-exexda.adb: Minor reformatting.
3452 2011-09-01 Robert Dewar <dewar@adacore.com>
3454 * s-taskin.ads, s-tassta.adb, sem_ch13.adb: Minor reformatting.
3456 2011-09-01 Thomas Quinot <quinot@adacore.com>
3458 * Makefile.rtl: Move s-oscons.o from GNATRTL_TASKING_OBJS to
3459 GNATRTL_NONTASKING_OBJS.
3461 2011-09-01 Robert Dewar <dewar@adacore.com>
3463 * einfo.ads (Is_Aliased): Fix existing documentation and add note on
3464 possibility of this flag being set for formals in Ada 2012 mode.
3465 * par-ch6.adb (P_Formal_Part): Handle aliased for parameters for Ada
3467 * sem_ch6.adb (Process_Formals): Handle aliased parameters in Ada 2012
3469 * sinfo.adb (Aliased_Present): Allowed in N_Parameter_Specification for
3471 * sinfo.ads (Aliased_Present): Allowed in N_Parameter_Specification for
3474 2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3476 * exp_ch4.adb (Find_Insertion_Node): New routine. Determines the proper
3477 insertion node in a tree of nested Expression_With_Actions nodes.
3478 (Process_Transient_Object): In the case where a complex if statement
3479 has been converted into nested Expression_With_Actions nodes, the
3480 "hook" object and the associated access type must be inserted before
3481 the top most Expression_With_Actions.
3483 2011-09-01 Robert Dewar <dewar@adacore.com>
3485 * a-cbprqu.adb, a-cbprqu.ads, a-cuprqu.adb, a-cuprqu.ads,
3486 a-cbsyqu.adb, a-cbsyqu.ads: Minor reformatting.
3488 2011-09-01 Ed Schonberg <schonberg@adacore.com>
3490 * sem_attr.adb: Conditionalize aliasing predicates to Ada2012.
3492 2011-09-01 Jose Ruiz <ruiz@adacore.com>
3494 * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the CPU
3496 * aspects.adb (Canonical_Aspect): Add entry for the CPU aspect.
3497 * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the CPU aspect
3498 in a similar way as we do for the Priority or Dispatching_Domain aspect.
3499 * s-mudido-affinity.adb (Dispatching_Domain_Tasks,
3500 Dispatching_Domains_Frozen): Move this local data to package
3501 System.Tasking because with the CPU aspect we need to have access
3502 to this data when creating the task in System.Tasking.Stages.Create_Task
3503 * s-taskin.ads (Dispatching_Domain_Tasks, Dispatching_Domains_Frozen):
3504 Move these variables from the body of
3505 System.Multiprocessors.Dispatching_Domains because with the CPU aspect
3506 we need to have access to this data when creating the task in
3507 System.Tasking.Stages.Create_Task.
3508 * s-taskin.adb (Initialize): Signal the allocation of the environment
3509 task to a CPU, if any, so that we know whether the CPU can be
3510 transferred to a different dispatching domain.
3511 * s-tassta.adb (Create_Task): Check whether the CPU to which this task
3512 is being allocated belongs to the dispatching domain where the task
3513 lives. Signal the allocation of the task to a CPU, if any, so that we
3514 know whether the CPU can be transferred to a different dispatching
3517 2011-09-01 Ed Schonberg <schonberg@adacore.com>
3519 * exp_attr.adb, sem_attr.adb, snames.ads-tmpl: Implementation of
3520 attributes Same_Storage and Overlaps_Storage.
3522 2011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3524 * exp_strm.adb: Remove with and use clause for Opt.
3525 (Build_Array_Input_Function): Remove the version-dependent generation
3526 of the return statement. The Ada 2005 tree is now the default.
3528 2011-09-01 Yannick Moy <moy@adacore.com>
3530 * put_alfa.adb: Unconditionnally write files in Alfa section, so that
3531 it is never empty when compiling in Alfa mode.
3533 2011-09-01 Robert Dewar <dewar@adacore.com>
3535 * sem_aggr.adb, sem_ch3.adb, a-direct.adb, s-taprop-vxworks.adb,
3536 comperr.adb, exp_ch9.adb, exp_pakd.adb, sem_ch12.adb, freeze.adb,
3537 s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb,
3538 gnat1drv.adb, a-rbtgbo.adb, exp_dist.adb: Minor reformatting
3540 2011-09-01 Matthew Heaney <heaney@adacore.com>
3542 * Makefile.rtl, impunit.adb: Add a-csquin.ads, a-cusyqu.ad[sb],
3543 a-cuprqu.ad[sb], a-cbsyqu.ad[sb], a-cbprqu.ad[sb]
3544 * a-csquin.ads: New Ada 2012 unit that specifies the queue interface
3545 * a-cusyqu.ads, a-cusyqu.adb: New Ada 2012 unit that specifies the
3546 unbounded queue container.
3547 * a-cbsyqu.ads, a-cbsyqu.adb: New Ada 2012 unit that specifies the
3548 bounded queue container.
3549 * a-cuprqu.ads, a-cuprqu.adb: New Ada 2012 unit that specifies the
3550 unbounded priority queue container.
3551 * a-cbprqu.ads, a-cbprqu.adb: New Ada 2012 unit that specifies the
3552 bounded priority queue container.
3554 2011-08-31 Pascal Obry <obry@adacore.com>
3556 * a-direct.adb: Do not try to create an UNC path on Windows.
3557 (Create_Path): Skip leading computer name in UNC path if any.
3559 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3561 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Remove the
3562 version-dependent generation of the return statement. The Ada 2005 tree
3565 2011-08-31 Thomas Quinot <quinot@adacore.com>
3567 * rtsfind.ads, exp_dist.adb (Find_Numeric_Representation): Predefined
3568 types Stream_Element_Offset and Storage_Offset have a different native
3569 type depending on whether the platform is 32 or 64 bits. When
3570 exchanging them, always convert to 64 bits.
3572 2011-08-31 Yannick Moy <moy@adacore.com>
3574 * debug.adb: Reserve debug option -gnatd.E for passing gnatprove option
3575 --force-alfa to gnat2why.
3577 2011-08-31 Ed Schonberg <schonberg@adacore.com>
3579 * sem_ch12.adb (Save_References): If the node has aspects, save
3580 references within the corresponding expressions in a separate step,
3581 because the aspects are not directly in the tree for the declaration
3582 to which they belong.
3584 2011-08-31 Arnaud Charlet <charlet@adacore.com>
3586 * freeze.adb (Freeze_Record_Type): Omit test on variable size component
3587 in CodePeer mode, since representation clauses are partially ignored.
3588 * gcc-interface/Make-lang.in: Update dependencies.
3590 2011-08-31 Jose Ruiz <ruiz@adacore.com>
3592 * s-taprop-vxworks.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
3593 s-taprop-solaris.adb (Create_Task): Not_A_Specific_CPU can be assigned
3594 to any dispatching domain.
3596 2011-08-31 Thomas Quinot <quinot@adacore.com>
3598 * exp_ch4.adb: Minor reformatting.
3600 2011-08-31 Bob Duff <duff@adacore.com>
3602 * sem_ch6.adb (Get_Generic_Parent_Type): Don't query Subtype_Indication
3603 on nodes for which it is not defined.
3604 (Is_Non_Overriding_Operation): Exit the loop when we find a generic
3607 2011-08-31 Bob Duff <duff@adacore.com>
3609 * sem_ch3.adb (Process_Full_View): Disable legality check if
3610 In_Instance, to avoid spurious errors.
3611 * sem_ch12.adb (Validate_Derived_Type_Instance): Disable legality check
3612 if In_Instance, to avoid spurious errors.
3614 2011-08-31 Pascal Obry <obry@adacore.com>
3616 * a-direct.adb: Use Dir_Seps everywhere to properly handle all
3617 directory speparators.
3618 (Compose): Use Dir_Seps to handle both forms.
3619 (Create_Path): Use Dir_Seps instead of explicit check, no semantic
3621 (Extension): Use Dir_Seps to handle both forms.
3623 2011-08-31 Pascal Obry <obry@adacore.com>
3625 * prj-conf.adb: Minor reformatting.
3627 2011-08-31 Jose Ruiz <ruiz@adacore.com>
3629 * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the
3630 dispatching domain aspect.
3631 * aspects.adb (Canonical_Aspect): Add entry for the dispatching domain
3633 * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the
3634 Dispatching_Domain aspect in a similar way as we do for the Priority
3636 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add the
3637 Dispatching_Domain component if a Dispatching_Domain pragma or aspect
3639 (Make_Task_Create_Call): Add the Dispatching_Domain when creating a task
3640 * par-prag.adb (Prag): Add Pragma_Dispatching_Domain as a known pragma.
3641 * sem_prag.adb (Analyze_Pragma): Check the correctness of a pragma
3642 Dispatching_Domain and add it to the task definition.
3643 (Sig_Flags): Add Pragma_Dispatching_Domain.
3644 * rtsfind.ads, rtsfind.adb (RTU_Id, RE_Id, Get_Unit_Name): Add the
3645 support to find the types Dispatching_Domain and
3646 Dispatching_Domain_Access.
3647 * sinfo.ads, sinfo.adb (Has_Pragma_Dispatching_Domain,
3648 Set_Has_Pragma_Dispatching_Domain): Add these subprograms to set and
3649 query the availability of a pragma Dispatching_Domain.
3650 * snames.ads-tmpl (Name_uDispatching_Domain): Add this name required by
3651 the expander to pass the Dispatching_Domain when creating a task.
3652 (Name_Dispatching_Domain): Add this new name for a pragma.
3653 (Pragma_Id): Add the new Pragma_Dispatching_Domain.
3654 * s-tassta.ads, s-tassta.adb (Create_Task): Set the domain to which the
3655 task has been allocated at creation time.
3656 * s-tarest.adb (Create_Restricted_Task): The dispatching domain using
3657 Ravenscar is always null.
3658 * s-taskin.ads, s-taskin.adb (Initialize_ATCB): Set the domain to which
3659 the task has been allocated at creation time.
3660 * s-tporft.adb (Register_Foreign_Thread): A foreign task will not have
3661 a specific dispatching domain.
3662 * s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-vxworks.adb,
3663 s-taprop-mingw.adb (Create_Task): Check whether both Dispatching_Domain
3664 and CPU are specified for the task, and the CPU value is not contained
3665 within the range of processors for the domain.
3667 2011-08-31 Vincent Celier <celier@adacore.com>
3669 * make.adb (Original_Gcc) : New constant String_Access.
3670 (Gnatmake): For VM targets, do not use VM version of the compiler if
3671 --GCC= has been specified.
3673 2011-08-31 Thomas Quinot <quinot@adacore.com>
3675 * sem_ch5.adb: Minor reformatting.
3677 2011-08-31 Ed Schonberg <schonberg@adacore.com>
3679 * exp_pakd.adb (Convert_To_PAT_Type): If prefix is a function call, do
3682 2011-08-31 Bob Duff <duff@adacore.com>
3684 * exp_ch4.adb (Expand_N_Selected_Component): Use the full type, in case
3685 the access type is private; we don't care about privacy in expansion.
3687 2011-08-31 Ed Schonberg <schonberg@adacore.com>
3689 * sem_aggr.adb (Resolve_Aggregate): In an instance, ignore aggregate
3690 subcomponents tnat may be limited, because they originate in view
3691 conflicts. If the original aggregate is legal and the actuals are
3692 legal, the aggregate itself is legal.
3694 2011-08-31 Matthew Heaney <heaney@adacore.com>
3696 * a-rbtgbo.adb (Clear_Tree): Assert representation invariant for lock
3699 2011-08-31 Ed Schonberg <schonberg@adacore.com>
3701 * sem_ch5.adb: Set kind of loop parameter properly, to preserve all
3704 2011-08-31 Jose Ruiz <ruiz@adacore.com>
3706 * sem_ch13.adb (Analyze_Aspect_Specifications): For the Priority and
3707 Interrupt_Priority aspects, force the analysis of the aspect expression
3708 (when building the equivalent pragma). Otherwise, its analysis is done
3709 too late, after the task or protected object has been created.
3710 * sem_ch9.adb (Analyze_Single_Protected_Declaration,
3711 Analyze_Single_Task_Declaration): Remove the code to move the aspects
3712 to the object declaration because they are needed in the type
3715 2011-08-31 Robert Dewar <dewar@adacore.com>
3717 * exp_ch5.adb, exp_ch7.ads, sem_ch5.adb, put_scos.adb, s-rannum.adb,
3718 a-rbtgbo.adb, exp_intr.adb, a-cbdlli.adb, a-cbdlli.ads: Minor
3721 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3723 * exp_util.adb (Find_Protection_Type): Do not look for fields _object
3724 if the corresponding type is malformed due to restriction violations.
3726 2011-08-31 Robert Dewar <dewar@adacore.com>
3728 * s-ransee.ads, s-ransee.adb: Minor reformatting.
3730 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3732 * exp_ch4.adb (Expand_N_Allocator): Correct faulty condition which
3733 would cause the generation of Set_Finalize_Address if the target is a
3734 VM and the designated type is not derived from [Limited_]Controlled.
3736 2011-08-31 Arnaud Charlet <charlet@adacore.com>
3738 * comperr.adb, comperr.ads, gnat1drv.adb (Delete_SCIL_Files): New
3740 (Compiler_Abort, Gnat1drv): Call Delete_SCIL_Files in codepeer mode in
3741 case of a compilation error.
3743 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3745 * init.c (__gnat_error_handler): Standardize the stack overflow or
3746 erroneous memory access message.
3747 * seh_init.c (__gnat_SEH_error_handler): Standardize the stack overflow
3748 or erroneous memory access message.
3750 2011-08-31 Robert Dewar <dewar@adacore.com>
3752 * sem_ch4.adb: Minor reformatting.
3753 * sem_ch6.adb: Minor code reorganization (use Ekind_In).
3755 2011-08-31 Thomas Quinot <quinot@adacore.com>
3757 * scos.ads: Minor documentation clarification.
3758 * put_scos.adb: Do not generate SCO unit header line for a unit that
3761 2011-08-31 Robert Dewar <dewar@adacore.com>
3763 * a-rbtgbo.adb, alfa_test.adb: Minor reformatting.
3765 2011-08-31 Tristan Gingold <gingold@adacore.com>
3767 * exp_ch7.ads, exp_ch7.adb (Finalization_Exception_Data): New type to
3768 hold variables between these following subprograms.
3769 (Build_Exception_Handler, Build_Object_Declarations,
3770 Build_Raise_Statement): Use the above type as parameter.
3771 Make the above adjustments.
3772 * exp_intr.adb (Expand_Unc_Deallocation): Adjust.
3774 2011-08-31 Pascal Obry <obry@adacore.com>
3776 * projects.texi: Minor reformatting.
3778 2011-08-31 Tristan Gingold <gingold@adacore.com>
3780 * s-ransee.ads, s-ransee.adb: Add system.random_seed unit.
3781 * s-rannum.adb (Reset): Use Get_Seed from s-ransee.
3783 2011-08-31 Ed Schonberg <schonberg@adacore.com>
3785 * exp_ch5.adb: Minor code cleanup.
3786 * sem_ch5.adb (Analyze_Iteration_Scheme): Set ekind of loop variable to
3787 prevent cascaded errors.
3788 (Analyze_Loop_Statement): In semantics-only mode, introduce loop
3789 variable of an iterator specification in current scope.
3790 * sem_ch6.adb (Analyze_Return_Statement, Find_what_It_Apples_To): Skip
3791 postconditions on the stack, as they contain no return statements.
3793 2011-08-31 Yannick Moy <moy@adacore.com>
3795 * exp_alfa.adb (Expand_Alfa_N_Package_Declaration,
3796 Expand_Alfa_N_Subprogram_Body): Remove useless procedures which simply
3797 call Qualify_Entity_Names.
3798 (Expand_Alfa): call Qualify_Entity_Names in more cases
3799 * lib-xref-alfa.adb: Take into account system package.
3800 * sem_prag.adb Take into account restrictions in Alfa mode, contrary to
3801 CodePeer mode in which we are interested in finding bugs even if
3802 compiler cannot compile source.
3803 * sem_util.adb, sem_util.ads (Unique_Entity): Take into account case of
3806 2011-08-31 Gary Dismukes <dismukes@adacore.com>
3808 * sem_ch3.adb (Constrain_Concurrent): Retrieve Base_Type of the subtype
3809 denoted by the subtype mark to ensure getting the concurrent type in
3810 the case where the subtype mark denotes a private subtype of a
3811 concurrent type (needed when using -gnatc).
3812 (Process_Subtype): For the processing specific to type kinds, case on
3813 the Base_Type kind of the Subtype_Mark_Id, to handle cases where the
3814 subtype denotes a private subtype whose base type is nonprivate (needed
3815 for subtypes of private fulfilled by task types when compiling with
3818 2011-08-31 Gary Dismukes <dismukes@adacore.com>
3820 * sem_disp.adb (Check_Dispatching_Operation): Bypass registration of
3821 late primitives that override interface operations when the full
3822 expander is not active, to avoid blowups in Register_Primitive when
3823 types don't have associated secondary dispatch tables.
3825 2011-08-31 Yannick Moy <moy@adacore.com>
3827 * alfa_test.adb: Code clean up.
3829 2011-08-31 Marc Sango <sango@adacore.com>
3831 * restrict.adb (Check_SPARK_Restriction): Change Comes_From_Source (N)
3832 by Comes_From_Source (Original_Node (N)) in order to treat also the
3833 nodes which have been rewritten.
3834 * sem_ch4.adb (Analyze_Explicit_Dereference, Analyze_Slice): Guard the
3835 explicit dereference and slice violation in spark mode on the nodes
3836 coming only from the source code.
3838 2011-08-31 Robert Dewar <dewar@adacore.com>
3840 * exp_ch5.adb, exp_alfa.ads, prj.ads, sem_attr.adb,
3841 lib-xref-alfa.adb: Minor reformatting.
3843 2011-08-31 Matthew Heaney <heaney@adacore.com>
3845 * a-crbltr.ads (Tree_Type): Default-initialize the Nodes component.
3847 2011-08-31 Javier Miranda <miranda@adacore.com>
3849 * sem_ch4.adb (Try_Object_Operation): Addition of one formal to search
3850 only for class-wide subprograms conflicting with entities of concurrent
3853 2011-08-31 Matthew Heaney <heaney@adacore.com>
3855 * a-rbtgbo.adb (Generic_Allocate): Initialize pointer components of
3858 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3860 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Provide a more
3861 general description of the routine.
3863 2011-08-31 Ed Schonberg <schonberg@adacore.com>
3865 * a-cbdlli.adb, a-cbdlli.ads: Add iterator machinery to bounded
3866 doubly-linked lists.
3868 2011-08-31 Gary Dismukes <dismukes@adacore.com>
3870 * exp_ch5.adb (Expand_N_Assignment_Statement): When a discriminant
3871 check is needed for a left-hand side that is a dereference, and the
3872 base type is private without discriminants (whereas the full type does
3873 have discriminants), an extra retrieval of the underlying type may be
3874 needed in the case where the subtype is a record subtype whose base
3875 type is private. Update comments.
3877 2011-08-31 Javier Miranda <miranda@adacore.com>
3879 * sem_ch4.adb (Try_Object_Operation): When a dispatching primitive is
3880 found check if there is a class-wide subprogram covering the primitive.
3882 2011-08-31 Yannick Moy <moy@adacore.com>
3884 * sem_res.adb: Further cases where full expansion test is needed,
3885 rather than expansion test.
3887 2011-08-31 Pascal Obry <obry@adacore.com>
3889 * prj-attr.adb: Fix Source_File_Switches attribute kind (must be a list)
3891 2011-08-31 Ed Schonberg <schonberg@adacore.com>
3893 * exp_ch5.adb: Handle iterators over derived container types.
3895 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3897 * einfo.ads, einfo.adb: Add new flag Has_Anonymous_Master.
3898 (Has_Anonymous_Master): New routine.
3899 (Set_Has_Anonymous_Master): New routine.
3900 (Write_Entity_Flags): Add an entry for Has_Anonymous_Master.
3901 * exp_ch4.adb: Add with and use clause for Sem_Ch8.
3902 (Current_Anonymous_Master): New routine.
3903 (Current_Unit_First_Declaration): Removed.
3904 (Current_Unit_Scope): Removed.
3905 (Expand_N_Allocator): Anonymous access-to-controlled types now chain
3906 their objects on a per-unit heterogeneous finalization master.
3908 2011-08-31 Matthew Heaney <heaney@adacore.com>
3910 * a-cbhama.adb, a-cbhase.adb (Insert): Check for zero-length buckets
3913 2011-08-31 Jose Ruiz <ruiz@adacore.com>
3915 * s-taprop-linux.adb (Create_Task): Avoid changing the affinity mask
3918 2011-08-31 Gary Dismukes <dismukes@adacore.com>
3920 * sem_disp.adb (Propagate_Tag): Return without propagating in the case
3921 where the actual is an unexpanded call to 'Input.
3923 2011-08-31 Yannick Moy <moy@adacore.com>
3925 * sem_ch4.adb: Code clean up.
3927 2011-08-31 Yannick Moy <moy@adacore.com>
3929 * exp_alfa.adb, exp_alfa.ads: Minor correction of copyright notice.
3931 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3933 * exp_ch7.adb (Build_Array_Deep_Procs): Do not generate Deep_Finalize
3934 and TSS primitive Finalize_Address if finalization is suppressed.
3935 (Build_Record_Deep_Procs): Do not generate Deep_Finalize and TSS
3936 primitive Finalize_Address if finalization is suppressed.
3938 2011-08-31 Jose Ruiz <ruiz@adacore.com>
3940 * s-mudido-affinity.adb, s-taprop-linux.adb, s-taprop-mingw.adb,
3941 s-taprop-solaris.adb, s-taprop-vxworks.adb (Set_Task_Affinity): Make
3942 sure that the underlying task has already been created before trying
3943 to change its affinity.
3944 (Set_CPU): Use the term processor instead of CPU, as we do in
3947 2011-08-31 Vincent Celier <celier@adacore.com>
3949 * prj-attr.adb: New Compiler attribute Source_File_Switches.
3950 * prj-nmsc.adb (Process_Compiler): Process attribute
3951 Source_File_Switches.
3952 * prj.ads (Language_Config): New name list component
3953 Name_Source_File_Switches.
3954 * snames.ads-tmpl (Name_Source_File_Switches): New standard name.
3956 2011-08-31 Ed Schonberg <schonberg@adacore.com>
3958 * sem_attr.adb (Analyze_Attribute, case 'Old): If prefix may be a
3959 discriminated component of an actual, expand at once to prevent
3960 ouf-of-order references with generated subtypes.
3962 2011-08-31 Yannick Moy <moy@adacore.com>
3964 * lib-xref-alfa.adb (Add_Alfa_Xrefs): Do not take into account read
3965 reference to operator in Alfa xrefs.
3967 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3969 * sem_ch12.adb (Freeze_Subprogram_Body): Add code to handle the case
3970 where the parent instance was frozen before the current instance due to
3971 the presence of a source body. Update calls to Insert_After_Last_Decl.
3972 (Insert_After_Last_Decl): Renamed to Insert_Freeze_Node_For_Instance.
3973 Update the comment which illustrates the purpose of the routine.
3974 Package instances are now frozen by source bodies which appear after
3975 the instance. This ensures that entities coming from within the
3976 instance are available for use in the said bodies.
3977 (Install_Body): Add code to handle the case where the parent instance
3978 was frozen before the current instance due to the presence of a source
3979 body. Update calls to Insert_After_Last_Decl.
3981 2011-08-31 Jose Ruiz <ruiz@adacore.com>
3983 * s-taprop-linux.adb (Set_Task_Affinity): Avoid the use of anonymous
3985 * affinity.c (__gnat_set_affinity_mask): Declare index variable.
3987 2011-08-31 Yannick Moy <moy@adacore.com>
3989 * sem_ch8.adb (Analyze_Subprogram_Renaming): Refine expander test in
3991 * alfa.adb, alfa.ads, alfa_test.adb, ali.adb, debug.adb, errout.adb,
3992 errout.ads, erroutc.adb, expander.adb, exp_ch4.adb, exp_ch7.adb,
3993 freeze.adb, get_alfa.adb, get_alfa.ads, gnat1drv.adb, lib-writ.adb,
3994 lib-writ.ads, lib-xref.adb, lib-xref.ads, lib-xref-alfa.adb, opt.adb,
3995 opt.ads, put_alfa.adb, put_alfa.ads, restrict.adb, sem_ch12.adb,
3996 sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
3997 sem_prag.adb, sem_res.adb, sem_util.adb: Minor reformatting, renaming
3998 ALFA in Alfa (we dropped acronym).
3999 * einfo.adb (Primitive_Operations): Correctly return list of primitive
4000 operations in a case where it returned previously No_Elist.
4002 2011-08-31 Robert Dewar <dewar@adacore.com>
4004 * s-taprop-vxworks.adb, sem_ch5.adb, s-taprop-tru64.adb, exp_alfa.adb,
4005 s-taprop-vms.adb, bindgen.adb, s-mudido.adb, s-mudido.ads,
4006 sem_res.adb, expander.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
4007 s-taprop-solaris.adb, s-mudido-affinity.adb, vms_conv.adb,
4008 s-taprop-irix.adb, s-taprop.ads, s-taskin.adb, s-taskin.ads,
4009 s-taprop-hpux-dce.adb, a-chtgbo.adb, s-taprop-posix.adb: Minor
4012 2011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
4014 * sem_ch12 (Check_Private_View): Revert previous change.
4015 * sem_res.adb (Conversion_Check): Do not emit the error message if the
4016 conversion is in a generic instance.
4018 2011-08-31 Matthew Heaney <heaney@adacore.com>
4020 * a-cbhase.adb (Symmetric_Difference): Dereference correct node array.
4021 * a-chtgbo.adb (Free): Allow 0 as index value.
4023 2011-08-31 Matthew Heaney <heaney@adacore.com>
4025 * a-cborma.adb (Insert): Add comment to explain why no element
4028 2011-08-31 Gary Dismukes <dismukes@adacore.com>
4030 * sem_util.adb (Find_Body_Discriminal): Test whether the scope of the
4031 spec discriminant is already a concurrent type, in which case just use
4032 it, otherwise fetch the Corresponding_Concurrent_Type as before.
4034 2011-08-30 Eric Botcazou <ebotcazou@adacore.com>
4036 * system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads,
4037 system-linux-mips.ads, system-linux-mipsel.ads,
4038 system-linux-mips64el.ads, system-linux-ppc64.ads,
4039 system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support.
4041 2011-08-30 Eric Botcazou <ebotcazou@adacore.com>
4043 * gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
4044 * gcc-interface/utils2.c (build_binary_op): Tighten condition.
4045 (build_unary_op): Likewise.
4047 2011-08-30 Eric Botcazou <ebotcazou@adacore.com>
4049 * raise-gcc.c: Do not include coretypes.h and tm.h.
4050 (setup_to_install): Remove test for compiler macro.
4051 * targext.c: Document use for the library.
4052 * gcc-interface/Makefile.in: Fix comment on the use of IN_GCC.
4054 2011-08-30 Eric Botcazou <ebotcazou@adacore.com>
4056 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not convert
4057 the expression to the nominal type if the latter is a record type with
4058 a variant part and the type of the former is a record type without one.
4060 2011-08-30 Yannick Moy <moy@adacore.com>
4062 * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
4063 expansion in Alfa mode.
4064 * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public
4065 * exp_alfa.adb, exp_alfa.ads: New package defining light expansion for
4067 * gnat1drv.adb (Adjust_Global_Switches): Update Comment.
4068 * sem_res.adb: Ditto.
4069 * gcc-interface/Make-lang.in: Update dependencies.
4071 2011-08-30 Thomas Quinot <quinot@adacore.com>
4073 * g-socket.ads: Minor documentation adjustment.
4075 2011-08-30 Robert Dewar <dewar@adacore.com>
4077 * exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting.
4079 2011-08-30 Yannick Moy <moy@adacore.com>
4081 * exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb,
4082 exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads,
4083 exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb,
4084 gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb:
4085 Revert change which introduced files for "light"
4086 expansion, to be replaced by a single file for Alfa expansion.
4088 2011-08-30 Robert Dewar <dewar@adacore.com>
4090 * opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment.
4091 Minor code reorg/reformatting.
4093 2011-08-30 Yannick Moy <moy@adacore.com>
4095 * opt.adb, opt.ads (Full_Expander_Active): New function defines a
4096 common shorthand for (Expander_Active and not ALFA_Mode) that can be
4097 used for testing full expansion, that is active expansion not in the
4098 reduced mode for Alfa
4099 * exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb,
4100 sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead
4101 of the verbose (Expander_Active and not ALFA_Mode)
4103 2011-08-30 Tristan Gingold <gingold@adacore.com>
4105 * s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb,
4106 s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb,
4107 s-secsta.ads, s-parame.ads, s-parame-vxworks.ads, s-parame-ae653.ads:
4108 Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage
4110 2011-08-30 Gary Dismukes <dismukes@adacore.com>
4112 * sem_res.adb (Valid_Conversion): Revise test for implicit anonymous
4113 access conversions to check that the conversion is a rewritten node,
4114 rather than just having Comes_From_Source set to False, which wasn't
4117 2011-08-30 Robert Dewar <dewar@adacore.com>
4119 * exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb,
4120 g-socket.ads: Minor reformatting.
4122 2011-08-30 Thomas Quinot <quinot@adacore.com>
4124 * sem_util.adb: Minor reformatting.
4126 2011-08-30 Tristan Gingold <gingold@adacore.com>
4128 * raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set,
4129 to be compliant with the ABI.
4131 2011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
4133 * sem_ch12.adb (Check_Private_View): Exchange the private and full view
4134 of a designated type when the related access type is an actual in an
4135 instance. This ensures that the full view of designated type is
4136 available when inside the body of the instance.
4138 2011-08-30 Ed Schonberg <schonberg@adacore.com>
4140 * sem_util.adb (May_Be_Lvalue): To determine whether a reference may be
4141 in a position to be modified, a slice is treated like an indexed
4144 2011-08-30 Thomas Quinot <quinot@adacore.com>
4146 * s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for
4147 field tv_sec in struct timeval.
4149 2011-08-30 Yannick Moy <moy@adacore.com>
4151 * exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several
4152 blocks of code doing full expansion, previously only guarded by
4153 Expander_Active, by anding the test that ALFA_Mode is not set
4155 2011-08-30 Ed Schonberg <schonberg@adacore.com>
4157 * sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,
4158 add the function to the list of private dependents, for subsequent
4159 legality check on Taft amendment types.
4160 * sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize
4161 Private_Dependents, as for other incomplete types.
4162 * sem_util.adb (Wrong_Type): Avoid cascaded errors when a
4163 Taft-amendment type is used as the return type of a function.
4165 2011-08-30 Javier Miranda <miranda@adacore.com>
4167 * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code
4168 which emits an error by a call to a new routine which report the error.
4169 * exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the
4170 entity does not cover an existing interface.
4171 * errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize
4173 * sem_ch6.adb (Check_Conformance): Add specific error for wrappers of
4174 protected procedures or entries whose mode is not conformant.
4175 (Check_Synchronized_Overriding): Code cleanup: replace code which emits
4176 an error by a call to a new routine which report the error.
4178 2011-08-30 Robert Dewar <dewar@adacore.com>
4180 * gnat_rm.texi: Minor change.
4181 * exp_attr_light.adb: Minor reformatting.
4183 2011-08-30 Ed Schonberg <schonberg@adacore.com>
4185 * sem_ch3.adb: Patch inheritance of aspects in
4186 Complete_Private_Subtype, to avoid infinite loop.
4188 2011-08-30 Javier Miranda <miranda@adacore.com>
4190 * sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
4191 been reported and a subprogram covering an interface primitive is not
4192 found then skip generating the internal entity. Done to avoid crashing
4194 (Check_Abstract_Overriding): Change text of error of wrong formal of
4195 protected subprogram or entry. Done for consistency to emit exactly the
4196 same error reported by Check_Synchronized_Overriding. In addition, the
4197 error is restricted to protected types (bug found working on AI05-0090)
4199 2011-08-30 Yannick Moy <moy@adacore.com>
4201 * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
4202 expansion in Alfa mode.
4203 * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
4204 * exp_light.adb, exp_light.ads: New package defining light expansion.
4205 * expander.adb (Expand): Call light expansion in Alfa mode
4206 * exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
4208 * exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
4210 * exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
4211 * gnat1drv.adb (Adjust_Global_Switches): Comment
4213 2011-08-30 Yannick Moy <moy@adacore.com>
4215 * lib-xref-alfa.adb: Minor refactoring.
4217 2011-08-30 Yannick Moy <moy@adacore.com>
4219 * exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
4221 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
4222 expansion in Alfa mode.
4223 * sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
4226 2011-08-30 Robert Dewar <dewar@adacore.com>
4228 * debug_a.adb: Update comment.
4230 2011-08-30 Robert Dewar <dewar@adacore.com>
4232 * exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,
4233 sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,
4234 exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb,
4235 sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting
4237 2011-08-30 Robert Dewar <dewar@adacore.com>
4239 * gnat_rm.texi: Add section on C.6(16) implementation advice for pragma
4242 2011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
4244 * exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to
4245 Build_Finalization_Master by supplying an insertion node and enclosing
4246 scope. In its old version, the call did not generate a finalization
4248 (Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to
4249 recognize anonymous access-to-controlled components. Rewrite the
4250 machinery which creates finalization masters to service anonymous
4251 access-to-controlled components of a record type. In its current state,
4252 only one heterogeneous master is necessary to handle multiple anonymous
4254 (Freeze_Type): Comment reformatting.
4255 * rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and
4257 * s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which
4258 associates TSS primitive Finalize_Address with either the master itself
4259 or with the internal hash table depending on the mode of operation of
4262 2011-08-30 Javier Miranda <miranda@adacore.com>
4264 * exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an
4265 interface type then do not generate code to compare this component.
4266 Required since they have no components and their equality operator is
4269 2011-08-30 Steve Baird <baird@adacore.com>
4271 * sem_util.ads (Deepest_Type_Access_Level): New function; for the type
4272 of a saooaaat (i.e, a stand-alone object of an anonymous access type),
4273 returns the (static) accessibility level of the object. Otherwise, the
4274 same as Type_Access_Level.
4275 (Dynamic_Accessibility_Level): New function; given an expression which
4276 could occur as the rhs of an assignment to a saooaaat (i.e., an
4277 expression of an access-to-object type), return the new value for the
4278 saooaaat's associated Extra_Accessibility object.
4279 (Effective_Extra_Accessibility): New function; same as
4280 Einfo.Extra_Accessibility except that object renames are looked through.
4282 (Deepest_Type_Access_Level): New function; see sem_util.ads description.
4283 (Dynamic_Accessibility_Level): New function; see sem_util.ads
4285 (Effective_Extra_Accessibility): New function; see sem_util.ads
4287 * einfo.ads (Is_Local_Anonymous_Access): Update comments.
4288 (Extra_Accessibility): Update comments.
4289 (Init_Object_Size_Align): New procedure; same as Init_Size_Align
4290 except RM_Size field (which is only for types) is unaffected.
4292 (Extra_Accessibility): Expand domain to allow objects, not just formals.
4293 (Set_Extra_Accessibility): Expand domain to allow objects, not just
4295 (Init_Size): Add assertion that we are not trashing the
4296 Extra_Accessibility attribute of an object.
4297 (Init_Size_Align): Add assertion that we are not trashing the
4298 Extra_Accessibility attribute of an object.
4299 (Init_Object_Size_Align): New procedure; see einfo.ads description.
4300 * sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access
4301 differently for the type of a (non-library-level) saooaaat depending
4302 whether Ada_Version < Ada_2012. This is the only point where Ada_Version
4303 is queried in this set of changes - everything else (in particular,
4304 setting of the Extra_Accessibility attribute in exp_ch3.adb) is
4305 driven off of the setting of the Is_Local_Anonymous_Access attribute.
4306 The special treatment of library-level saooaaats is an optimization,
4307 not required for correctnesss. This is based on the observation that the
4308 Ada2012 rules (static and dynamic) for saooaaats turn out to be
4309 equivalent to the Ada2005 rules in the case of a library-level saooaaat.
4311 (Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is
4312 false for the type of a saooaaat, declare and initialize its
4313 accessibility level object and set the Extra_Accessibility attribute
4314 of the saooaaat to refer to this object.
4315 * checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.
4316 * exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with
4317 calls to Effective_Extra_Accessibility in order to support
4318 renames of saooaaats.
4319 (Expand_N_Type_Conversion): Add new local function,
4320 Has_Extra_Accessibility, and call it when determining whether an
4321 accessibility check is needed.
4322 It returns True iff Present (Effective_Extra_Accessibility (Id)) would
4323 evaluate to True (without raising an exception).
4325 (Expand_N_Assignment_Statement): When assigning to an Ada2012
4326 saooaaat, update its associated Extra_Accessibility object (if
4327 it has one). This includes an accessibility check.
4328 * exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates
4329 a saooaaat, update its Extra_Accessibility object too (if it
4331 (Expand_Call): Replace a couple of calls to Type_Access_Level
4332 with calls to Dynamic_Access_Level to handle cases where
4333 passing a literal (any literal) is incorrect.
4334 * sem_attr.adb (Resolve_Attribute): Handle the static accessibility
4335 checks associated with "Saooaat := Some_Object'Access;"; this must
4336 be rejected if Some_Object is declared in a more nested scope
4338 * sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an
4339 assignment to a saooaaat even if Is_Local_Anonymous_Access
4340 returns False for its type (indicating a 2012-style saooaaat).
4342 (Analyze_Object_Renaming): Replace a call to Init_Size_Align
4343 (which is only appropriate for objects, not types) with a call
4344 of Init_Object_Size_Align in order to avoid trashing the
4345 Extra_Accessibility attribute of a rename (the two attributes
4348 (Valid_Conversion) Replace six calls to Type_Access_Level with
4349 calls to Deepest_Type_Access_Level. This is a bit tricky. For an
4350 Ada2012 non-library-level saooaaat, the former returns library level
4351 while the latter returns the (static) accessibility level of the
4352 saooaaat. A type conversion to the anonymous type of a saooaaat
4353 can only occur as part of an assignment to the saooaaat, so we
4354 know that such a conversion must be in a lhs context, so Deepest
4355 yields the result that we need. If such a conversion could occur,
4356 say, as the operand of an equality operator, then this might not
4357 be right. Also add a test so that static accessibilty checks are
4358 performed for converting to a saooaaat's type even if
4359 Is_Local_Anonymous_Access yields False for the type.
4361 2011-08-30 Javier Miranda <miranda@adacore.com>
4363 * sem_disp.adb (Check_Dispatching_Operation): Complete condition that
4364 controls generation of a warning associated with late declaration of
4365 dispatching functions. Required to avoid generating spurious
4368 2011-08-30 Gary Dismukes <dismukes@adacore.com>
4370 * sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the
4371 return object has an anonymous access type and the function's type is
4372 a named access type.
4373 * sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming
4374 conversions on implicit conversions, since such conversions can occur
4375 for anonymous access cases due to expansion. Issue error for attempt
4376 to rename an anonymous expression as an object of a named access type.
4377 * sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,
4378 to indicate whether this function should report errors on invalid
4380 * sem_res.adb (Resolve): For Ada 2012, in the case where the type of
4381 the expression is of an anonymous access type and the expected type is
4382 a named general access type, rewrite the expression as a type
4383 conversion, unless this is an expression of a membership test.
4384 (Valid_Conversion.Error_Msg_N): New procedure that conditions the
4385 calling of Error_Msg_N on new formal Report_Errs.
4386 (Valid_Conversion.Error_Msg_NE): New procedure that conditions the
4387 calling of Error_Msg_NE on new formal Report_Errs.
4388 (Valid_Conversion): Move declaration of this function to the package
4389 spec, to allow calls from membership test processing. For Ada 2012,
4390 enforce legality restrictions on implicit conversions of anonymous
4391 access values to general access types, disallowing such conversions in
4392 cases where the expression has a dynamic accessibility level (access
4393 parameters, stand-alone anonymous access objects, or a component of a
4394 dereference of one of the first two cases).
4395 * sem_type.adb (Covers): For Ada 2012, allow an anonymous access type
4396 in the context of a named general access expected type.
4397 * exp_ch4.adb Add with and use of Exp_Ch2.
4398 (Expand_N_In): Add processing for membership tests applied to
4399 expressions of an anonymous access type. First, Valid_Conversion is
4400 called to check whether the test is statically False, and then the
4401 conversion is expanded to test that the expression's accessibility
4402 level is no deeper than that of the tested type. In the case of
4403 anonymous access-to-tagged types, a tagged membership test is applied
4405 (Tagged_Membership): Extend to handle access type cases, applying the
4406 test to the designated types.
4407 * exp_ch6.adb (Expand_Call): When creating an extra actual for an
4408 accessibility level, and the actual is a 'Access applied to a current
4409 instance, pass the accessibility level of the type of the current
4410 instance rather than applying Object_Access_Level to the prefix. Add a
4411 ??? comment, since this level isn't quite right either (will eventually
4412 need to pass an implicit level parameter to init procs).
4414 2011-08-30 Bob Duff <duff@adacore.com>
4416 * s-taskin.ads: Minor comment fix.
4418 2011-08-30 Ed Schonberg <schonberg@adacore.com>
4420 * sem_res.adb (Check_Parameterless_Call): If the node is a selected
4421 component and the selector is a dispatching operation, check if it is
4422 a prefixed call before rewriting as a parameterless function call.
4424 2011-08-29 Jakub Jelinek <jakub@redhat.com>
4426 * gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy
4427 tsystem.h into $(RTSDIR) instead of rts.
4429 2011-08-29 Robert Dewar <dewar@adacore.com>
4431 * sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
4433 * gcc-interface/Make-lang.in: Update dependencies.
4435 2011-08-29 Yannick Moy <moy@adacore.com>
4437 * alfa.ads (Name_Of_Heap_Variable): New constant name.
4438 * lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
4439 table to hold dereferences.
4440 (Add_ALFA_Xrefs): Take into account dereferences as special
4441 reads/writes to the variable "HEAP".
4442 (Enclosing_Subprogram_Or_Package): Move subprogram here.
4443 (Generate_Dereference): New procedure to store a read/write dereferencew
4445 * put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
4446 the special "HEAP" var.
4447 * sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
4449 * sem_util.adb (Note_Possible_Modification): Store write dereference
4452 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
4454 * exp_ch3.adb (Freeze_Type): Generate an accessibility check which
4455 ensures that the level of the subpool access type is not deeper than
4456 that of the pool object.
4457 * sem_util.adb (Object_Access_Level): Expand to handle defining
4459 * sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
4460 subpool handle name of a rewritten allocator.
4462 2011-08-29 Robert Dewar <dewar@adacore.com>
4464 * impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.
4466 2011-08-29 Thomas Quinot <quinot@adacore.com>
4468 * exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
4469 values, we generate multiple triples of parameters in the TypeCode.
4470 Bump Choice_Index for each such triple so that a subsequent default
4471 choice is associated with the correct index in the typecode.
4473 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4475 * a-cdlili.adb (Iterate): Initialize properly an iterator over a null
4477 (First, Last): Handle properly an iterator over a null container.
4479 2011-08-29 Bob Duff <duff@adacore.com>
4481 * sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
4482 processing if we run across a node with no Scope. This can happen if
4483 we're with-ing an library-level instance, and that instance got errors
4484 that caused "instantiation abandoned".
4485 * sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
4486 an exception instead of using Assert, so it won't go into an infinite
4487 loop, even when assertions are turned off.
4489 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4491 * a-coorse.adb: Proper handling of empty ordered sets.
4493 2011-08-29 Johannes Kanig <kanig@adacore.com>
4495 * debug.adb: Add comments.
4497 2011-08-29 Thomas Quinot <quinot@adacore.com>
4499 * a-except.adb, a-except-2005.adb: Minor comment rewording and
4502 2011-08-29 Yannick Moy <moy@adacore.com>
4504 * sem_ch3.adb (Array_Type_Declaration): Remove insertion of
4505 declaration for Itypes in Alfa mode.
4507 2011-08-29 Robert Dewar <dewar@adacore.com>
4509 * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
4510 a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
4511 a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
4514 2011-08-29 Tristan Gingold <gingold@adacore.com>
4516 * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
4518 * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
4519 * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
4522 2011-08-29 Robert Dewar <dewar@adacore.com>
4524 * a-cbhama.adb, a-cbhama.ads: Minor reformatting.
4526 2011-08-29 Javier Miranda <miranda@adacore.com>
4528 * sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
4529 renamings of formal subprograms when the actual for a formal type is
4532 2011-08-29 Matthew Heaney <heaney@adacore.com>
4534 * a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
4537 2011-08-29 Matthew Heaney <heaney@adacore.com>
4539 * a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
4540 components of record type.
4541 * a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
4544 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4546 * a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,
4547 a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to
4550 2011-08-29 Robert Dewar <dewar@adacore.com>
4552 * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
4555 2011-08-29 Matthew Heaney <heaney@adacore.com>
4557 * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
4558 components of record type.
4560 2011-08-29 Bob Duff <duff@adacore.com>
4562 * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
4563 by the termination handler.
4565 2011-08-29 Yannick Moy <moy@adacore.com>
4567 * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
4568 created in Alfa mode, instead of inserting artificial declarations of
4569 non-Itypes in the tree.
4570 * sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
4571 know if an Itype has a corresponding declaration, as defined in
4574 2011-08-29 Yannick Moy <moy@adacore.com>
4576 * gnat1drv.adb: Minor rewrite.
4578 2011-08-29 Bob Duff <duff@adacore.com>
4580 * s-tasuti.adb (Make_Passive): Work around race condition in
4581 Make_Independent, which can cause Wait_Count to be zero. So instead of
4582 asserting that Wait_Count > 0, and then decrementing it, decrement it
4583 only if Wait_Count > 0.
4584 * s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
4585 should be nonnegative, so declare them Natural instead of Integer.
4587 2011-08-29 Robert Dewar <dewar@adacore.com>
4589 * exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
4590 sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
4591 a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
4592 a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
4593 exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.
4595 2011-08-29 Tristan Gingold <gingold@adacore.com>
4597 * s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.
4599 2011-08-29 Vadim Godunko <godunko@adacore.com>
4601 * s-parint.ads: Minor comment clarification.
4603 2011-08-29 Vincent Celier <celier@adacore.com>
4605 * prj.adb (Initialize): Make sure that new reserved words after Ada 95
4606 may be used as identifiers.
4608 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4610 * a-coinho.ads: Minor reformating.
4612 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4614 * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a
4615 container of a derived type.
4617 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4619 * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
4620 a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers.
4622 2011-08-29 Pascal Obry <obry@adacore.com>
4624 * exp_disp.adb: Minor comment fix.
4625 (Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
4626 to avoid warnings when compiling with -Wall.
4627 (Make_Disp_Conditional_Select_Body): Likewise.
4628 (Make_Disp_Timed_Select_Body): Likewise.
4630 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4632 * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
4633 an entity name, generate reference for it.
4635 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4637 * exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
4639 * sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
4640 the class-wide type.
4641 * sem_ch5.adb: Move some rewriting to the expander, where it belongs.
4643 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4645 * sem_ch8.adb (Check_Constrained_Object): Do not create an actual
4646 subtype for an object whose type is an unconstrained union.
4648 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4650 * par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
4651 is allowed in a component definition, by AI95-406.
4653 2011-08-29 Matthew Heaney <heaney@adacore.com>
4655 * a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.
4657 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
4659 * a-except-2005.adb: Alphabetize all routines.
4660 (Triggered_By_Abort): New routine.
4661 * a-except-2005.ads (Triggered_By_Abort): New routine.
4662 * a-except.adb Alphabetize all routines.
4663 (Triggered_By_Abort): New routine.
4664 * a-except.ads (Triggered_By_Abort): New routine.
4665 * exp_ch7.adb: Update all comments involving the detection of aborts in
4667 (Build_Object_Declarations): Do not generate code to detect the
4668 presence of an abort at the start of finalization code, use a runtime
4670 * rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
4672 * sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
4673 allocate a task on a subpool.
4674 * s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
4675 The flag disables all actions related to the maintenance of
4676 Finalize_Address_Table when subpools are not in use.
4677 (Allocate_Any_Controlled): Signal the machinery that subpools are in
4679 (Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
4680 performs costly task locking when subpools are not in use.
4682 2011-08-29 Yannick Moy <moy@adacore.com>
4684 * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged
4685 types and dispatching calls in Alfa mode.
4686 * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of
4687 correspondance between body and spec scopes, to reuse utility functions
4688 (Traverse_Declarations_Or_Statements): Protect access to body for stub
4689 by testing the presence of the library unit for the body
4690 * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa
4691 mode the expansion of accept statements is skipped
4692 * sem_util.adb, sem_util.ads (Unique_Entity): New function returning
4693 the unique entity corresponding to the one returned by
4694 Unique_Defining_Entity applied to the enclosing declaration of the
4697 2011-08-29 Bob Duff <duff@adacore.com>
4699 * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in
4700 gdb when x is not a node (it can be a node list, name_id, etc). pp is
4701 an alias for pn. ppp is an alias for pt.
4703 2011-08-29 Javier Miranda <miranda@adacore.com>
4705 * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing
4706 aggregate to take a consistent decision on the need to convert into
4707 assignments aggregates that initialize constant objects.
4709 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
4711 * exp_ch4.adb (Expand_Allocator_Expression): Add a call to
4712 Build_Allocate_Deallocate_Proc in order to handle allocation of
4713 non-controlled objects on subpools.
4714 * impunit.adb: Remove s-finmas and s-spsufi since they were never meant
4715 to be end-user visible.
4716 * s-finmas.adb: Add with and use clause for System.HTable.
4717 Add an instantiation of Simple_HTable which provides a mapping between
4718 the address of a controlled object and the corresponding
4719 Finalize_Address used to clean up the object. The table is used when a
4720 master is operating in heterogeneous mode.
4721 (Attach): Explain why the input node is not verified on being already
4723 (Delete_Finalize_Address): New routine.
4724 (Detach): Add pragma Assert which ensures that a node is already
4726 (Finalize): Add local variable Cleanup. Rewrite the iteration scheme
4727 since nodes are no longer removed on traversal. Explain why node
4728 detachment is undesirable in this case.
4729 (Get_Finalize_Address): New routine.
4730 (Hash): New routine.
4731 (Is_Empty_List): Removed.
4732 (pm): Renamed to Print_Master. Add output for discriminant
4734 Comment reformatting.
4735 (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
4736 * s-finmas.ads: Various comments additions / improvements.
4737 Type Finalization_Master has a discriminant which determines the mode of
4739 (Delete_Finalize_Address): New routine.
4740 (Get_Finalize_Address): New routine.
4741 (pm): Renamed to Print_Master.
4742 (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
4743 * s-stposu.adb: Add with clause for System.Address_Image; Add with and
4744 use clause for System.IO.
4745 (Allocate_Any_Controlled): Add machinery to set TSS primitive
4746 Finalize_Address depending on the mode of allocation and the mode of
4748 (Deallocate_Any_Controlled): Remove the relation pair object -
4749 Finalize_Address regardless of the master mode. Add comment explaining
4751 (Detach): Ensure that fields Prev and Next are null after detachment.
4752 (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration
4753 scheme to check whether the list of subpools is empty. There is no
4754 longer need to store the next subpool or advance the current pointer.
4755 (Is_Empty_List): New routine.
4756 (Print_Pool): New routine.
4757 (Print_Subpool): New routine.
4758 * s-stposu.ads: Various comments additions / improvements.
4759 Field Master of type Root_Subpool is now a heterogeneous collection.
4760 (Print_Pool): New routine.
4761 (Print_Subpool): New routine.
4763 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4765 * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator
4766 forms, using aspects of container types.
4767 * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and
4768 Has_Implicit_Dereference flags, that may be set on the partial view.
4769 * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a
4770 container type with an indexing aspect.
4771 (Analyze_Quantified_Expression): Analyze construct with expansion
4772 disabled, because it will be rewritten as a loop during expansion.
4773 (Try_Container_Indexing): The prefix itself may be a container type
4774 with an indexing aspect, as with a vector of vectors.
4775 * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze
4776 the original doamin of iteration, for name capture.
4777 (Analyze_Iterator_Specification): If the domain is an expression that
4778 needs finalization, create a separate declaration for it.
4779 For an iterator with "of" retrieve default iterator info from aspect of
4780 container type. For "in" iterator, retrieve type of Iterate function.
4781 * sem_ch13.adb (Check_Iterator_Function): Fix typo.
4782 (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before
4783 analysis, to prevent spurious errors about late attributes.
4784 * sprint.adb: Handle quantified expression with either loop or iterator
4786 * a-convec.ads, a-convec.adb: Iterate function returns a reversible
4789 2011-08-29 Vincent Celier <celier@adacore.com>
4791 * make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
4792 Binder or Linker of the main project file.
4794 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4796 * inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
4799 2011-08-29 Yannick Moy <moy@adacore.com>
4801 * exp_ch9.adb: Partial revert of previous change for Alfa mode
4803 2011-08-29 Yannick Moy <moy@adacore.com>
4805 * exp_ch11.adb: Minor expansion of comment.
4807 2011-08-29 Yannick Moy <moy@adacore.com>
4809 * lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.
4811 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4813 * sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
4814 interpretation, set the type before resolving the operands, because
4815 legality checks on an exponention operand need to know the type of the
4818 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4820 * sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
4821 cleanups on a master if the instance is within a generic unit.
4822 Complement to the corresponding fix to inline.adb for K520-030.
4824 2011-08-29 Tristan Gingold <gingold@adacore.com>
4826 * exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
4828 * exp_intr.adb: Minor comment fix.
4830 2011-08-29 Bob Duff <duff@adacore.com>
4832 * sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
4833 Delay_Required was used as an uninitialized variable.
4835 2011-08-29 Robert Dewar <dewar@adacore.com>
4837 * a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,
4838 sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,
4839 a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.
4841 2011-08-29 Thomas Quinot <quinot@adacore.com>
4843 * system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
4844 Remove unused variables.
4846 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4848 * sem_res.adb: Remove Build_Explicit_Dereference.
4849 * sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
4850 from sem_res.adb, used in analysis of additional constructs.
4851 (Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012
4852 expansion of iterators.
4853 (Is_Object_Reference): Recognize variables rewritten as explicit
4854 dereferences in Ada2012.
4855 * snames.ads-tmpl: Add Has_Element, Forward_Iterator,
4856 Reversible_Iterator names, for expansion of Ada2012 iterators.
4857 * aspects.ads, aspects.adb (Find_Aspect): Utility.
4858 * a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
4859 linked list container.
4860 * a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
4861 * a-coorse.ads, a-coorse.adb: Ditto for ordered sets.
4863 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4865 * a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
4868 2011-08-29 Vincent Celier <celier@adacore.com>
4870 * make.adb (Gnatmake): Get the maximum number of simultaneous
4871 compilation processes after the Builder switches has been scanned, as
4872 there may include -jnn.
4874 2011-08-29 Matthew Heaney <heaney@adacore.com>
4876 * a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.
4878 2011-08-29 Tristan Gingold <gingold@adacore.com>
4880 * gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
4881 GNAT_DRIVER_COMMAND_LINE to 255.
4883 2011-08-29 Pascal Obry <obry@adacore.com>
4885 * freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
4886 reformatting and style fix (class attribute casing).
4888 2011-08-29 Yannick Moy <moy@adacore.com>
4890 * exp_ch11.adb: Yet another case where expansion should be common
4891 between CodePeer and Alfa.
4893 2011-08-29 Yannick Moy <moy@adacore.com>
4895 * exp_ch9.adb: Partial revert of previous change for Alfa mode.
4897 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4899 * sem_ch6.adb (Matches_Limited_With_View): The limited views of an
4900 incomplete type and its completion match.
4902 2011-08-29 Yannick Moy <moy@adacore.com>
4904 * exp_ch13.adb: Adjust previous change.
4906 2011-08-29 Robert Dewar <dewar@adacore.com>
4908 * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
4909 exp_ch4.adb, sem_ch8.adb: Minor code reorganization
4912 2011-08-29 Emmanuel Briot <briot@adacore.com>
4914 * make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
4915 initialize aggregated projects.
4917 2011-08-29 Ed Schonberg <schonberg@adacore.com>
4919 * sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
4920 depth of candidates to resolve a potentially spurious ambiguity between
4921 two visible subprograms.
4923 2011-08-29 Yannick Moy <moy@adacore.com>
4925 * sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without
4927 * sem_util.adb (Get_Ensures_From_Test_Case_Pragma,
4928 Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without
4931 2011-08-29 Arnaud Charlet <charlet@adacore.com>
4933 * gnat1drv.adb (Adjust_Global_Switches): Improve previous change.
4936 2011-08-29 Thomas Quinot <quinot@adacore.com>
4938 * sem_res.adb: Minor reformatting.
4940 2011-08-29 Johannes Kanig <kanig@adacore.com>
4942 * exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
4944 * gnat1drv.adb (Adjust_Global_Switches): Set
4945 Use_Expressions_With_Actions to False in ALFA mode.
4946 * sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
4949 2011-08-29 Yannick Moy <moy@adacore.com>
4951 * exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
4952 * exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
4953 * gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
4954 tagged types and dispatching calls in Alfa mode.
4956 2011-08-29 Javier Miranda <miranda@adacore.com>
4958 * sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
4959 we do not report an error on an Empty node.
4961 2011-08-29 Geert Bosch <bosch@adacore.com>
4963 * Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
4964 a-nlrear.o and a-nurear.o.
4966 2011-08-29 Robert Dewar <dewar@adacore.com>
4968 * freeze.adb: Minor code reorganization.
4970 * sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
4971 sem_ch6.adb: Minor reformatting
4973 2011-08-29 Tristan Gingold <gingold@adacore.com>
4975 * s-except.ads, s-except.adb: Provide dummy body.
4977 2011-08-29 Yannick Moy <moy@adacore.com>
4979 * sem_warn.adb (Within_Postcondition): Take into account the case of
4980 an Ensures component in a Test_Case.
4982 2011-08-29 Tristan Gingold <gingold@adacore.com>
4984 * s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
4985 * rtsfind.ads (RTU_Id): Replaces System_Exceptions by
4986 System_Exceptions_Debug
4987 (RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
4988 * a-except.adb: With and use System.Exceptions_Debug instead of
4990 * a-except-2005.adb: Likewise.
4991 * s-assert.adb: Likewise.
4992 * s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
4993 * Makefile.rtl: Add s-excdeb. Adjust compilation rule.
4994 * gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
4995 s-excdeb. Update dependencies.
4996 (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
4997 as these no longer need external libraries.
4999 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5001 * sem_res.adb (Resolve_Op_Expon): Additional check to reject an
5002 exponentiation operator on universal values in a context that requires
5005 2011-08-29 Tristan Gingold <gingold@adacore.com>
5007 * raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence
5008 before calling notify_handled_exception.
5009 * a-exextr.adb: Fix comment.
5011 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5013 * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute
5014 Finalize_Address of the access type's finalization master.
5015 (Expand_N_Allocator): Add code to set attribute Finalize_Address of the
5016 access type's finalization master. Add a guard to prevent
5017 Associated_Storage_Pool from being set on .NET/JVM.
5018 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set
5019 attribute Finalize_Address of the access type's finalization master.
5020 * exp_ch7.adb (Make_Finalize_Address_Call): New routine.
5021 * exp_ch7.ads (Make_Finalize_Address_Call): New routine.
5022 * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and
5024 * s-finmas.adb: Add with clause for System.Address_Image. Add with and
5025 use clause for System.IO
5026 (Detach): Relax the assertion, to be reinstated later.
5027 (Finalize): Rewrite the iteration loop to avoid pointer comparison.
5028 Relax the assertion on Finalize_Address, to be reinstated later.
5029 (Is_Empty_List): New routine.
5030 (pm): New debug routine.
5031 (Set_Finalize_Address): New routine.
5032 * s-finmas.ads (pm): New debug routine.
5033 (Set_Finalize_Address): New routine.
5034 * s-stposu.adb (Allocate_Any_Controlled): Code reformatting.
5036 2011-08-29 Tristan Gingold <gingold@adacore.com>
5038 * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):
5039 Remove convention C.
5041 2011-08-29 Tristan Gingold <gingold@adacore.com>
5043 * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.
5044 (Initialize_TCB): Remove Exc_Stack_Ptr initialization.
5045 (Finalize_TCB): Remove its finalization.
5046 (Initialize): Remove assignment of GET_Exc_Stack_Addr
5047 * s-soflin.adb (NT_Exc_Stack): Remove
5048 (Get_Exc_Stack_Addr_NT): Likewise.
5049 (Get_Exc_Stack_Addr_Soft): Likewise.
5050 * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.
5051 (Get_Exc_Stack_Addr): Likewise.
5052 (Get_Exc_Stack_Addr_Soft): Likewise
5053 * s-taspri-vms.ads (Exc_Stack_T): Remove.
5054 (Exc_Stack_Ptr_T): Likewise.
5055 (Private_Data): Remove Exc_Stack_Ptr component.
5057 2011-08-29 Tristan Gingold <gingold@adacore.com>
5059 * raise-gcc.c (get_ip_from_context): New function. Factorize code.
5061 2011-08-29 Tristan Gingold <gingold@adacore.com>
5063 * gnat_ugn.texi: Fix aix and x86-solaris info for run-time.
5065 2011-08-29 Geert Bosch <bosch@adacore.com>
5067 * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,
5068 L2_Norm, Swap_Column): New generic subprograms
5069 * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,
5070 L2_Norm, Swap_Column): Implement new subprograms in order to
5071 eliminate dependency on BLAS and LAPACK libraries in
5072 Ada.Numerics.Generic_Real_Arrays and eventually also the complex
5073 version. Forward_Eliminate/Back_Substitute can be used to put a
5074 matrix in row echelon or reduced row echelon form using partial
5076 * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,
5077 Swap_Column): Instantiate from System.Generic_Array_Operations.
5078 ("*", "abs"): Implement by instantiation from Generic_Array_Operations.
5079 (Sqrt): Local function for simple computation of square root without
5080 adding dependencies on Generic_Elementary_Functions.
5081 (Swap): New subprogram to exchange floating point numbers.
5082 (Inverse): Reimplement using Jordan-Gauss elimination.
5083 (Jacobi): New procedure implementing Jacobi's method for computation
5084 of eigensystems, based on Rutishauser's implementation.
5085 (L2_Norm): Implement directly using the inner product.
5086 (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of
5087 decreasing eigenvalue as required by the Ada RM.
5088 (Swap_Column): New helper procedure for Sort_Eigensystem.
5089 Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.
5090 Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for
5093 2011-08-29 Thomas Quinot <quinot@adacore.com>
5095 * put_scos.adb (Put_SCOs): Do not emit a newline for an empty
5098 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5100 * s-finmas.adb (Finalize): Check Finalize_Address of the master rather
5101 than the current node.
5102 * s-finmas.ads: Move field Finalize_Address from type FM_Node to
5103 Finalization_Master. The list headers have two fields instead of three.
5104 This should fix alignment issue but subpool allocations are now
5105 unusable. Alphabetize subprograms.
5106 * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than
5107 the size of the header when converting the beginning of the object to
5108 a FM_Node. Set the master's Finalize_Address attribute if not already
5110 (Deallocate_Any_Controlled): Use the offset rather than the size of the
5111 header when converting the beginning of the object to a FM_Node.
5113 2011-08-29 Gary Dismukes <dismukes@adacore.com>
5115 * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of
5116 reraise when compiling for CodePeer.
5118 2011-08-29 Arnaud Charlet <charlet@adacore.com>
5120 * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,
5121 now needed by a-convec.adb. Fix warning.
5123 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5125 * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the
5126 processing of TSS routine Finalize_Address when compiling in
5129 2011-08-29 Thomas Quinot <quinot@adacore.com>
5131 * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,
5132 sem_warn.adb: Minor reformatting.
5134 2011-08-29 Emmanuel Briot <briot@adacore.com>
5136 * prj-conf.adb (Get_Config_Switches): Also collect the list of
5137 languages from aggregated projects.
5139 2011-08-29 Yannick Moy <moy@adacore.com>
5141 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,
5142 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
5143 Traverse_Package_Declaration, Traverse_Subprogram_Body,
5144 Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies
5145 for stubs are traversed too when parameter is set
5146 (Traverse_All_Compilation_Units): Traverse without going inside stubs
5147 (Traverse_Declarations_Or_Statements): Do the special traversing for
5148 stubs when required.
5149 * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to
5150 return subprogram or package body from stub.
5151 (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect
5152 stubs without prior subprogram decl.
5154 2011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
5156 * gnat_ugn.texi: Fix typo.
5158 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5160 * s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
5161 which accounts for size vs alignment issues and calculates the size of
5163 (Deallocate_Any_Controlled): Ditto.
5164 (Nearest_Multiple_Rounded_Up): New routine.
5166 2011-08-29 Tristan Gingold <gingold@adacore.com>
5168 * a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
5169 * a-exexda.adb (Set_Exception_C_Msg): Ditto.
5170 (Set_Exception_Msg): Ditto.
5171 * a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set
5173 * a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
5174 Use Save_Occurrence instead of Save_Occurrence_No_Private.
5175 (Raise_With_Msg): Remove Cleanup_Flag.
5176 * a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
5177 Clean_Flag and Private_Data components.
5179 2011-08-29 Yannick Moy <moy@adacore.com>
5181 * freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
5183 * sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
5184 of an explicitly declared type, so that the base types of the original
5185 type and this generated type are the same, and a "type" (not a subtype
5187 * errout.adb (Special_Msg_Delete): Do not issue messages "Size too
5188 small" in Alfa mode, like in CodePeer mode.
5189 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
5190 clauses in Alfa mode.
5192 2011-08-29 Javier Miranda <miranda@adacore.com>
5194 * exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
5195 function to the package spec.
5196 * sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
5197 internally generated bodies of null procedures locate the internally
5198 generated spec enforcing mode conformance.
5199 (Is_Interface_Conformant): Ensure that the controlling formal of the
5202 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5204 * sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
5205 reject the pragma if it appears to apply to a formal subprogram.
5207 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5209 * exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
5210 inner expression, to prevent double evaluation.
5212 2011-08-29 Tristan Gingold <gingold@adacore.com>
5214 * a-exexpr.adb (Propagate_Exception): Remove all the parameters as
5216 * a-exexpr-gcc.adb (Propagate_Exception): Ditto.
5217 * a-except-2005.adb (Propagate_Exception): Adjust spec.
5218 (Raise_Current_Excep): Adjust call.
5219 (Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.
5221 2011-08-29 Thomas Quinot <quinot@adacore.com>
5223 * exp_disp.adb: Minor reformatting.
5225 2011-08-29 Tristan Gingold <gingold@adacore.com>
5227 * a-exexpr.adb (Setup_Exception): Removed.
5228 * a-exexpr-gcc.adb (Setup_Exception): Removed.
5229 * a-except.adb (Exception_Propagation): Removed.
5230 * a-except-2005.adb (Setup_Exception): Removed.
5231 (Reraise): Remove call to Setup_Exception.
5232 (Reraise_Occurrence): Ditto.
5233 (Reraise_Occurrence_Always): Ditto.
5234 (Reraise_Occurrence_No_Defer): Ditto.
5235 (Transfer_Occurrence): Ditto.
5236 * a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.
5237 (Set_Exception_Msg): Ditto.
5239 2011-08-29 Robert Dewar <dewar@adacore.com>
5241 * a-convec.adb, exp_disp.adb: Minor reformatting.
5243 2011-08-29 Tristan Gingold <gingold@adacore.com>
5245 * a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.
5247 2011-08-29 Gary Dismukes <dismukes@adacore.com>
5249 * exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
5250 Exception_Handlers to No_List instead of Empty_List in the case where
5251 there are no handlers.
5253 2011-08-29 Tristan Gingold <gingold@adacore.com>
5255 * gcc-interface/gigi.h (enum standard_datatypes): Add
5256 ADT_reraise_zcx_decl
5257 (reraise_zcx_decl): New macro.
5258 * gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
5259 (gigi): Set reraise_zcx_decl.
5260 (Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
5261 (gnat_to_gnu): Handle N_Raise_Statement.
5263 2011-08-29 Robert Dewar <dewar@adacore.com>
5265 * sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,
5266 a-undesu.adb: Minor reformatting.
5268 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5270 * exp_disp.adb (Check_Premature_Freezing): When building a dispatch
5271 table, accept an unfrozen untagged component if it is an actual for a
5272 formal incomplete type.
5273 * a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to
5274 provide new iterator forms over vectors.
5275 Introduce type Iterator in package body to implement operations of
5276 Reversible_Iterator interface.
5277 * a-iteint.ads: Make package pure so it is usable with new container
5278 packages, that are categorized Remote_Types.
5280 2011-08-29 Robert Dewar <dewar@adacore.com>
5282 * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting.
5284 2011-08-29 Bob Duff <duff@adacore.com>
5286 * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case
5287 of <>, because this is the routine that checks for dimensionality
5288 errors (for example, for a two-dimensional array, (others => <>) should
5289 be (others => (others => <>)).
5291 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5293 * impunit.adb: Add new run-time units.
5294 * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb,
5295 s-stposu.ads, s-stposu.adb: Code clean up.
5296 Handle protected class-wide or task class-wide types
5297 Handle C/C++/CIL/Java types.
5298 * s-spsufi.adb, s-spsufi.ads: New files.
5300 2011-08-29 Yannick Moy <moy@adacore.com>
5302 * sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on
5303 library-level subprogram.
5304 * sem_prag.adb (Check_Test_Case): Stricter rules for test-case
5306 (Analyze_Pragma): Change name "Normal" for "Nominal" in test-case
5308 * snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case
5310 * gnat_rm.texi: Update doc for Test_Case pragma.
5312 2011-08-29 Tristan Gingold <gingold@adacore.com>
5314 * a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it
5316 (GCC_Exception_Access): New type.
5317 (Unwind_DeleteException): New imported procedure
5318 (Foreign_Exception): Import it.
5319 (GNAT_GCC_Exception): Simply have the occurrence inside.
5320 (To_GCC_Exception): New function.
5321 (To_GNAT_GCC_Exception): New function.
5322 (GNAT_GCC_Exception_Cleanup): New procedure..
5323 (Propagate_GCC_Exception): New procedure.
5324 (Reraise_GCC_Exception): New procedure.
5325 (Setup_Current_Excep): New procedure.
5326 (CleanupUnwind_Handler): Change type of UW_Exception parameter.
5327 (Unwind_RaiseException): Ditto.
5328 (Unwind_ForcedUnwind): Ditto.
5330 (Begin_Handler): Change type of parameter.
5331 (End_Handler): Ditto. Now delete the exception if still present.
5332 (Setup_Key): Removed.
5333 (Is_Setup_And_Not_Propagated): Removed.
5334 (Set_Setup_And_Not_Propagated): Ditto.
5335 (Clear_Setup_And_Not_Propagated): Ditto.
5336 (Save_Occurrence_And_Private): Ditto.
5337 (EID_For): Add 'not null' constraint on parameter.
5338 (Setup_Exception): Does nothing.
5339 (Propagate_Exception): Simplified.
5340 * exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,
5341 re-raise is not expanded anymore.
5342 * s-except.ads (Foreign_Exception): New exception - placeholder for
5344 * raise-gcc.c (__gnat_setup_current_excep): Declare
5345 (CXX_EXCEPTION_CLASS): Define (not yet used)
5346 (GNAT_EXCEPTION_CLASS): Define.
5347 (is_handled_by): Handle foreign exceptions.
5348 (PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.
5350 2011-08-29 Jose Ruiz <ruiz@adacore.com>
5352 * a-synbar.adb (Synchronous_Barrier): Some additional clarification.
5354 2011-08-29 Thomas Quinot <quinot@adacore.com>
5356 * a-synbar-posix.adb: Minor reformatting.
5358 2011-08-29 Jose Ruiz <ruiz@adacore.com>
5360 * a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,
5361 a-exetim-default.ads (Interrupt_Clocks_Supported,
5362 Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
5363 definitions to be compliant with AI-0171. The target systems do not
5364 support separate account for the execution time of interrupt handlers.
5366 2011-08-29 Jose Ruiz <ruiz@adacore.com>
5368 * a-synbar.adb (Wait): Change the order of evaluation of the conditions
5369 in the barrier to put first the easiest to evaluate (and the one which
5370 will be True more often). More efficient.
5372 2011-08-29 Eric Botcazou <ebotcazou@adacore.com>
5374 * s-atocou-x86.adb: Fix constraint in machine code insertion.
5376 2011-08-29 Bob Duff <duff@adacore.com>
5378 * aspects.ads, aspects.adb: Add new aspects for various pragmas and
5379 attributes that are now aspects, as specified by AI05-0229-1.
5380 * sem_ch13.adb (Analyze_Aspect_Specifications,
5381 Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into
5382 pragmas or attribute references, as appropriate.
5384 2011-08-29 Robert Dewar <dewar@adacore.com>
5386 * a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,
5387 a-synbar-posix.ads: Minor reformatting.
5389 2011-08-29 Yannick Moy <moy@adacore.com>
5391 * snames.ads-tmpl: Add name Force.
5393 2011-08-29 Pascal Obry <obry@adacore.com>
5395 * prj-nmsc.adb: Minor reformatting.
5397 2011-08-29 Jose Ruiz <ruiz@adacore.com>
5399 * a-exetim.ads (Interrupt_Clocks_Supported,
5400 Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
5401 definitions to be compliant with AI-0171.
5403 2011-08-29 Robert Dewar <dewar@adacore.com>
5405 * a-ngelfu.adb: Add comments.
5407 2011-08-29 Geert Bosch <bosch@adacore.com>
5409 * a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is
5410 the closest machine number to Pi / 2.0.
5412 2011-08-29 Jose Ruiz <ruiz@adacore.com>
5414 * impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012
5415 package Ada.Synchronous_Barriers.
5416 * a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:
5417 Add new specs and bodies for Ada.Synchronous_Barriers. There is a
5418 default implementation using protected objects and another one
5419 a-synbar-posix using POSIX barriers as the underlying support.
5420 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,
5421 x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of
5422 Ada.Synchronous_Barriers which uses POSIX barriers (more efficient).
5423 Clean up dependencies.
5424 * Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o
5426 2011-08-29 Robert Dewar <dewar@adacore.com>
5428 * sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,
5429 exp_dist.adb: Minor code reorganization.
5432 2011-08-29 Thomas Quinot <quinot@adacore.com>
5434 * sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW
5435 primitive operation must support external streaming if it is not a
5436 controlling access result.
5438 2011-08-29 Thomas Quinot <quinot@adacore.com>
5440 * sinfo.ads, sem_ch7.adb: Minor reformatting.
5442 2011-08-29 Bob Duff <duff@adacore.com>
5444 * sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
5445 restriction on allocators, as required by AI05-0013-1.
5446 * restrict.ads: Minor comment fix.
5448 2011-08-29 Tristan Gingold <gingold@adacore.com>
5450 * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb
5451 (To_Jmpbuf_Address): Ditto
5452 (builtin_longjmp): Ditto
5454 2011-08-29 Thomas Quinot <quinot@adacore.com>
5456 * sem_res.adb: Minor reformatting.
5458 2011-08-29 Vincent Celier <celier@adacore.com>
5460 * make.adb (Gnatmake): Move special processing for VM targets after the
5461 call to Get_Target_Parameters.
5463 2011-08-29 Thomas Quinot <quinot@adacore.com>
5465 * sem_ch12.adb, par-ch12.adb: Minor reformatting.
5467 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5469 * sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases
5470 where an anonymous access discriminant of a limited designated type
5471 appears in a non-immutably limited discriminated type and issue an
5472 error message. Add local variable Desig_T and replace all occurrences
5475 2011-08-29 Jose Ruiz <ruiz@adacore.com>
5477 * a-rttiev.adb (Set_Handler): Update comment to indicate that our
5478 implementation is compliant to RM D.15(15/2) after the modification
5479 imposed by AI05-0094-1 (binding interpretation).
5481 2011-08-29 Robert Dewar <dewar@adacore.com>
5483 * exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb,
5484 s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting.
5486 2011-08-29 Thomas Quinot <quinot@adacore.com>
5488 * par-endh.adb (Check_End): For an END where it is mandatory to repeat
5489 the scope name, do not report a missing label as a style violation (it
5490 will be diagnosed as an illegality).
5491 * exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of
5492 variant records: Get_Enum_Lit_From_Pos already returns a usage
5493 occurrence of the literal, no need to use New_Occurrence_Of. Set Etype
5494 on Expr in Integer_Literal case so that it can be used by
5497 2011-08-29 Tristan Gingold <gingold@adacore.com>
5499 * exp_sel.ads (Build_Abort_BLock_Handler): New function spec.
5501 * exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler.
5502 (Build_Abort_Block_Handler): New function to build an Abort_Signal
5504 * exp_ch9.adb (Expand_N_Asynchronous_Select): Call
5505 Build_Abort_Block_Handler to build the exception handler. Do not
5506 undefer aborts for the Abort_Signal exception handler if back-end
5507 exception mechanism.
5508 * exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if
5509 back_end exceptions for all others and abort_signal.
5510 * s-except.ads (ZCX_By_Default): New constant.
5511 * a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX.
5512 (Raise_Exception_Always): Ditto.
5513 (Raise_From_Signal_Handler): Ditto.
5514 (Raise_With_Location_And_Msg): Ditto.
5515 (Raise_With_Msg): Ditto.
5517 (Reraise_Occurence): Ditto.
5518 (Reraise_Occurrence_Always): Ditto.
5519 * s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX.
5520 * s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX.
5522 2011-08-29 Thomas Quinot <quinot@adacore.com>
5524 * sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation.
5526 2011-08-29 Robert Dewar <dewar@adacore.com>
5528 * snames.adb-tmpl, sem_ch13.adb: Minor reformatting
5529 Minor code reorganization.
5531 2011-08-29 Bob Duff <duff@adacore.com>
5533 * usage.adb (-gnatwy): Fix documentation: this switch applies to Ada
5534 2012, not just Ada 2005.
5536 2011-08-29 Vincent Celier <celier@adacore.com>
5538 * gnat_ugn.texi: Indicate that when the compiler is called by gnatmake
5539 with a project file or with gprbuid, if -gnatep= is specified, the
5540 builder may need to be invoked with -x.
5542 2011-08-29 Tristan Gingold <gingold@adacore.com>
5544 * a-exexpr-gcc.adb: Minor comment fix.
5546 2011-08-29 Robert Dewar <dewar@adacore.com>
5548 * sem_ch8.adb: Minor reformatting.
5550 2011-08-29 Bob Duff <duff@adacore.com>
5552 * par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012.
5553 * par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for
5554 treating "some" as unreserved in earlier Ada versions. This is now
5555 handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some,
5556 rather than Name_Some, since Tok_Some is now recognized as reserved.
5557 * scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other
5559 * scans.ads: Minor comment fixes.
5560 * snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as
5561 for other language versions.
5562 * scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for
5563 treating "some" as unreserved in earlier Ada versions. This is now
5564 handled in Snames.Is_Keyword_Name.
5565 * par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in
5567 (P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as
5568 unreserved in earlier Ada versions. This is now handled in
5569 Snames.Is_Keyword_Name.
5570 * snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved
5571 words as for other language versions.
5572 * gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to
5573 Ada 2012, not just Ada 2005.
5575 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5577 * sem_ch13.adb: Additional semantic checks for aspects involved in
5580 2011-08-29 Matthew Heaney <heaney@adacore.com>
5582 * a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb,
5583 a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous
5584 Container parameter.
5585 (Ancestor_Find): ditto.
5587 2011-08-29 Thomas Quinot <quinot@adacore.com>
5589 * par-endh.adb: Minor reformatting.
5591 2011-08-29 Tristan Gingold <gingold@adacore.com>
5593 * a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants.
5594 (GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component.
5595 (Adjust_N_CLeanups_For): Remove.
5596 (CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of
5598 (Propgate_Exception): Adjust.
5599 * raise-gcc.c: Add a few static/const.
5600 (Adjust_N_Cleanups_For): Remove declaration.
5601 (PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger.
5603 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5605 * sem_ch8.adb: Use type of function return when rewriting as object
5608 2011-08-29 Gary Dismukes <dismukes@adacore.com>
5610 * sem_type.adb: Minor reformatting.
5612 2011-08-29 Robert Dewar <dewar@adacore.com>
5614 * makeutl.adb: Minor reformatting.
5616 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5618 * sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a
5619 function call of a limited type, the expansion of the renaming is
5620 complicated by the presence of various temporaries and subtypes that
5621 capture constraints of the renamed object.
5622 Rewrite node as an object declaration, whose expansion is simpler.
5623 Given that the object is limited there is no copy involved and no
5626 2011-08-29 Robert Dewar <dewar@adacore.com>
5628 * exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb,
5629 freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting.
5631 2011-08-29 Tristan Gingold <gingold@adacore.com>
5633 * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
5634 system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads,
5635 system-linux-hppa.ads, system-linux-s390.ads,
5636 system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
5637 system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads,
5638 system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads,
5639 system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads,
5640 system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads,
5641 system-solaris-sparc.ads, system-lynxos-x86.ads,
5642 system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads,
5643 system-solaris-x86_64.ads, system-mingw-x86_64.ads,
5644 system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads,
5645 system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads,
5646 system-vxworks-x86.ads: Remove GCC_ZCX_Support.
5647 * s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb,
5648 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto.
5649 * opt.ads: Adjust comment.
5650 * targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target.
5651 * gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target.
5652 * system.ads: Move GCC_ZCX_Support to obsolete entries.
5654 2011-08-29 Emmanuel Briot <briot@adacore.com>
5656 * makeutl.adb (Do_Complete): Resolve symbolic links when a relative
5657 file name is specified on the gnatmake or gprbuild command line, and
5658 before we search for that file in the project.
5660 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5662 * sem_type.adb (Within_Instance): New predicate in Collect_Interps,
5663 used to determine whether a possible interpretation for an overloadable
5664 entity is declared within the current instantiation and should be
5665 included in the candidate set.
5667 2011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
5669 * gnat_rm.texi, gnat_ugn.texi: Clean ups.
5671 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5673 * sem_res.adb (Resolve_Actuals): Use base type to determine whether an
5674 access subtype is access_to_subprogram, when applying checks for
5677 2011-08-29 Matthew Heaney <heaney@adacore.com>
5679 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check
5680 for sibling when common parent.
5682 2011-08-29 Thomas Quinot <quinot@adacore.com>
5684 * get_scos.adb: Literals of Pragma_Id are pragma names prefixed with
5687 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5689 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions
5690 for the return type when in ASIS mode.
5692 2011-08-29 Vincent Celier <celier@adacore.com>
5694 * make.adb (Gnatmake): Get the default search dirs, then the target
5695 parameters after getting the Builder switches, as the Builder switches
5696 may include --RTS= and that could change the default search dirs.
5698 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5700 * exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of
5701 Make_Final_Call. Move the processing for class-wide types before the
5702 processing for derivations from [Limited_]Controlled.
5703 (Make_Final_Call): Move the processing for class-wide types before the
5704 processing for derivations from [Limited_]Controlled.
5705 * s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.
5706 Add code to account for alignments larger than the list header. Add a
5707 comment illustrating the structure of the allocated object + padding +
5709 (Deallocate_Any_Controlled): Add code to account for alignments larger
5710 than the list header.
5712 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5714 * sinfo.ads, sinfo.adb: New node kind
5715 N_Formal_Incomplete_Type_Definition, related flags.
5716 par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):
5717 Parse formal incomplete types.
5718 * sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in
5720 * sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):
5721 Formal incomplete types do not need completion.
5722 * sem_ch12.adb (Analyze_Formal_Incomplete_Type,
5723 Validate_Incomplete_Type_Instance): New procedures to handle formal
5725 * freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual
5726 that corresponds to a formal incomplete type.
5727 * sprint.adb: Handle formal incomplete type declarations.
5728 * exp_util.adb (Insert_Actions): An incomplete_type_definition is not
5731 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5733 * a-fihema.ads, a-fihema.adb: Unit removed.
5734 * a-undesu.ads, a-undesu.adb: New unit implementing
5735 Ada.Unchecked_Deallocate_Subpool.
5736 * einfo.adb: Remove Associated_Collection from the node usage.
5737 Add Finalization_Master to the node usage.
5738 (Associated_Collection): Removed.
5739 (Finalization_Master): New routine.
5740 (Set_Associated_Collection): Removed.
5741 (Set_Finalization_Master): New routine.
5742 (Write_Field23_Name): Remove Associated_Collection from the output. Add
5743 Finalization_Master to the output.
5744 * einfo.ads: Remove attribute Associated_Collection and its uses in
5746 Add new attribute Finalization_Master along with its uses in entitites.
5747 (Associated_Collection): Removed along with its pragma import.
5748 (Finalization_Master): New routine along with a pragma import.
5749 (Set_Associated_Collection): Removed along with its pragma import.
5750 (Set_Finalization_Master): New routine along with a pragma import.
5751 * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to
5752 Build_Finalization_Collection with Build_Finalization_Master.
5753 (Expand_Freeze_Record_Type): Move the generation of Finalize_Address
5754 before the bodies of the predefined routines. Add comment explaining
5755 this. Replace call to Build_Finalization_Collection with
5756 Build_Finalization_Master.
5757 (Freeze_Type): Replace call to Build_Finalization_Collection with
5758 Build_Finalization_Master.
5759 (Make_Finalize_Address_Body): Comment reformatting.
5760 (Make_Predefined_Primitive_Specs): Code reformatting.
5761 (Stream_Operation_OK): Update comment mentioning finalization
5762 collections. Replace RE_Finalization_Collection with
5763 RE_Finalization_Master.
5764 * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to
5765 Associated_Collection with Finalization_Master. Replace call to
5766 Build_Finalization_Collection with Build_Finalization_Master.
5767 (Expand_Allocator_Expression): Replace call to Associated_Collection
5768 with Finalization_Master. Replace call to Set_Associated_Collection with
5769 Set_Finalization_Master. Remove the generation of
5770 Set_Finalize_Address_Ptr.
5771 (Expand_N_Allocator): Replace call to Associated_Collection with
5772 Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr.
5773 * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to
5774 Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the
5775 comment on usage. Replace call to Needs_BIP_Collection with
5776 Needs_BIP_Finalization_Master Remplace BIP_Collection with
5777 BIP_Finalization_Master. Update all comments which mention finalization
5778 collections. Replace Associated_Collection with
5779 Finalization_Master. Replace Build_Finalization_Collection with
5780 Build_Finalization_Master.
5781 (BIP_Formal_Suffix): Update BIP_Collection's case.
5782 (Build_Heap_Allocator): Update the related comment. Rename local
5783 variable Collect to Fin_Mas_Id and update its occurrences. Update
5784 comments which mention finalization collections. Replace
5785 Set_Associated_Collection with Set_Finalization_Master.
5786 (Expand_Call): Update the code which detects a special piece of library
5788 (Make_Build_In_Place_Call_In_Allocator): Replace the call to
5789 Add_Collection_Actual_To_Build_In_Place_Call with
5790 Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code
5791 which generates a call to Make_Set_Finalize_Address_Ptr_Call.
5792 (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to
5793 Add_Collection_Actual_To_Build_In_Place_Call with
5794 Add_Finalization_Master_Actual_To_Build_In_Place_Call.
5795 (Make_Build_In_Place_Call_In_Assignment): Replace call to
5796 Add_Collection_Actual_To_Build_In_Place_Call with
5797 Add_Finalization_Master_Actual_To_Build_In_Place_Call.
5798 (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
5799 * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master.
5800 (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
5801 * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage.
5802 Rename local variable Collect to Fin_Mas_Id and update its occurrences.
5803 Replace call to Set_Associated_Collection with Set_Finalization_Master.
5804 (Build_Finalization_Collection): Renamed to Build_Finalization_Master.
5805 Replace the call to Associated_Collection with Finalization_Master.
5806 Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences.
5807 Update the way finalization master names are generated. Update the
5808 retrieval of the correct access type which will carry the pool and
5810 (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved.
5811 (Make_Finalize_Address_Body): Abstract types do not need
5812 Finalize_Address. Code reformatting.
5813 (Make_Finalize_Address_Stmts): Update comment on usage.
5814 (Make_Set_Finalize_Address_Ptr_Call): Removed.
5815 (Process_Declarations): Update comments.
5816 * exp_ch7.ads (Build_Finalization_Collection): Renamed to
5817 Build_Finalization_Master. Update associated comment.
5818 (Make_Set_Finalize_Address_Ptr_Call): Removed.
5819 * exp_ch13.adb: Update comments which mention finalization collections.
5820 (Expand_N_Free_Statement): Replace the call to Associated_Collection
5821 with Finalization_Master.
5822 * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to
5823 create calls to routines Allocate_Any_Controlled and
5824 Deallocate_Any_Controlled.
5825 (Find_Finalize_Address): New routine.
5826 (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the
5828 (Requires_Cleanup_Actions): Update the comment on freeze node
5830 * exp_util.ads: Remove comment on generated code for
5831 Build_Allocate_Deallocate_Proc. The code is now quite complex and it
5832 is better to simply look in the body.
5833 * freeze.adb (Freeze_All): Update the comment of finalization
5834 collections. Replace the call to Associated_Collection with
5835 Finalization_Master. Replace the call to Build_Finalization_Collection
5836 with Build_Finalization_Master.
5837 * impunit.adb: Add a-undesu and s-stposu to the list of units.
5838 * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file
5840 * rtsfind.adb (Get_Unit_Name): Remove the processing for children of
5841 Ada.Finalization. Add processing for children of System.Storage_Pools.
5842 * rtsfind.ads: Remove the naming of second level children of
5844 Remove Ada_Finalization_Heap_Management from the list of units.
5845 Remove subtype Ada_Finalization_Child.
5846 Remove the following subprogram entities:
5850 RE_Finalization_Collection
5851 RE_Finalization_Collection_Ptr
5852 RE_Set_Finalize_Address_Ptr
5854 Add the naming of second level children of System.Storage_Pools.
5855 Add System_Finalization_Masters and System_Storage_Pools_Subpools to
5857 Add subtype System_Storage_Pools_Child.
5858 Add the following subprogram entities to System.Finalization_Masters:
5860 RE_Finalization_Master
5861 RE_Finalization_Master_Ptr
5863 Add the following subprogram entities to System.Storage_Pools.Subpools:
5865 RE_Allocate_Any_Controlled
5866 RE_Deallocate_Any_Controlled
5867 RE_Root_Storage_Pool_With_Subpools
5871 Move the following subprogram entities from
5872 Ada.Finalization.Heap_Management to System.Finalization_Masters:
5874 RE_Add_Offset_To_Address
5879 * sem_ch3.adb (Access_Type_Declaration): Replace the call to
5880 Set_Associated_Collection with Set_Finalization_Master.
5881 * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal
5882 BIP_Finalization_Master is created.
5883 * s-finmas.adb: New unit System.Finalization_Masters.
5884 * s-finmas.ads: New unit System.Finalization_Masters.
5885 * s-stopoo.ads, s-stopoo.adb: Minor code reformatting.
5886 * s-stposu.ads, s-stposu.adb: New unit implementing
5887 System.Storage_Pools.Subpools.
5889 2011-08-29 Bob Duff <duff@adacore.com>
5891 * tbuild.adb: Add assertion.
5893 2011-08-29 Thomas Quinot <quinot@adacore.com>
5895 * s-pooglo.adb: Minor reformatting.
5897 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5899 * exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is
5900 an indexed component of a packed array whose element type is a record
5901 with a representation clause different from that of the right-hand
5902 side, generate a temporary to minimuze the number of bit-field
5903 operations generated.
5905 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5907 * exp_util.adb (Insert_Actions): Use clauses can be part of lists of
5908 declarations, and thus are likely insertion points for actions.
5910 2011-08-29 Bob Duff <duff@adacore.com>
5912 * einfo.ads: Minor comment fix.
5914 2011-08-29 Robert Dewar <dewar@adacore.com>
5916 * frontend.adb, gnat1drv.adb: Minor reformatting.
5918 2011-08-29 Tristan Gingold <gingold@adacore.com>
5920 * s-pooglo.adb (Allocate, Deallocate): Take into account the alignment.
5921 * a-fihema.adb (Allocate, Deallocate): Ditto. Possibly add padding
5922 space in front of the header.
5924 2011-08-29 Johannes Kanig <kanig@adacore.com>
5926 * frontend.adb (Frontend): Exit after creating Standard package when
5927 -gnatd.H is present.
5928 * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is
5931 2011-08-29 Robert Dewar <dewar@adacore.com>
5933 * exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,
5934 makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl,
5935 snames.ads-tmpl: Minor reformatting.
5937 2011-08-29 Philippe Gil <gil@adacore.com>
5939 * prj.adb (Reset_Units_In_Table): New procedure.
5940 Reset units to avoid access to freed memory.
5942 2011-08-29 Thomas Quinot <quinot@adacore.com>
5944 * get_scos.adb: When reading a P statement SCO without a pragma name
5945 (from an older ALI file), ensure that the Pragma_Name component is set
5946 to Unknown_Pragma (not left uninitialized).
5948 2011-08-29 Vincent Celier <celier@adacore.com>
5950 * makeutl.adb (Get_Directories): New procedure moved from Buildgpr and
5951 modified to compute correctly the object path of a SAL project that is
5952 extending another library project.
5953 (Write_Path_File): New procedure.
5954 * makeutl.ads (Directories): New table moved from Buildgpr
5955 (Get_Directories): New procedure moved from Buildgpr
5956 (Write_Path_File): New procedure
5957 * mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the
5958 paths before binding SALs, instead of Set_Ada_Paths.
5959 * prj-env.adb (Set_Path_File_Var): Procedure has been moved to package
5961 * prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env
5962 (Current_Source_Path_File_Of): New function
5963 (Set_Current_Object_Path_File_Of): New procedure
5964 (Current_Source_Object_File_Of): New function
5965 (Set_Current_Object_Path_File_Of): New procedure
5966 * prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env
5967 (Current_Source_Path_File_Of): New function
5968 (Set_Current_Object_Path_File_Of): New procedure
5969 (Current_Source_Object_File_Of): New function
5970 (Set_Current_Object_Path_File_Of): New procedure
5972 2011-08-29 Ed Schonberg <schonberg@adacore.com>
5974 * exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a
5975 packed entity, use a bit-field assignment only if there is no change of
5978 2011-08-29 Thomas Quinot <quinot@adacore.com>
5980 * rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, use
5981 Is_RTU instead of using Chars comparisons.
5983 2011-08-29 Thomas Quinot <quinot@adacore.com>
5985 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create a
5986 temporary object if the actual is constrained, and the discriminants
5987 read from the stream don't match.
5989 2011-08-29 Tristan Gingold <gingold@adacore.com>
5991 * sem_attr.adb, exp_attr.adb: Add handling of
5992 Attribute_System_Allocator_Alignment
5993 * snames.ads-tmpl: Add Name_System_Allocator_Alignment and
5994 Attribute_System_Allocator_Alignment.
5995 * ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment.
5996 * gcc-interface/targtyps.c, gcc-interface/utils2.c,
5997 gcc-interface/gigi.h: Renames get_target_default_allocator_alignment to
5998 get_target_system_allocator_alignment.
6000 2011-08-29 Arnaud Charlet <charlet@adacore.com>
6002 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
6005 2011-08-29 Arnaud Charlet <charlet@adacore.com>
6007 * exp_ch3.adb (In_Runtime): Fix typo.
6009 2011-08-29 Bob Duff <duff@adacore.com>
6011 * sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification.
6013 2011-08-29 Ed Schonberg <schonberg@adacore.com>
6015 * exp_ch3.adb (Expand_N_Object_Declaration): If the entity is tagged
6016 and a separate tag assignment is generated, ensure that the tag
6017 assignment is analyzed.
6019 2011-08-29 Ed Schonberg <schonberg@adacore.com>
6021 * atree.ads, atree.adb (Copy_Separate_List): New function that applies
6022 Copy_Separate_Tree to a list of nodes. Used to create disjoint copies
6023 of statement lists that may contain local declarations.
6024 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use Copy_Separate_List to
6025 duplicate the triggering statements needed for the expansion of this
6026 construct, when the trigger is a dispatching call to a synchronized
6029 2011-08-29 Arnaud Charlet <charlet@adacore.com>
6031 * gnat_rm.texi: Add doc for 'Elab_Subp_Body.
6032 * bindgen.adb: Add comments.
6033 * snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Body
6036 2011-08-29 Robert Dewar <dewar@adacore.com>
6038 * exp_attr.adb: Minor reformatting.
6039 Minor code reorganization and commenting.
6040 * par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minor
6043 2011-08-29 Thomas Quinot <quinot@adacore.com>
6045 * get_scos.adb: Ignore chaining indicators not currently supported
6048 2011-08-29 Arnaud Charlet <charlet@adacore.com>
6050 * system.ads: Minor editing.
6052 2011-08-29 Arnaud Charlet <charlet@adacore.com>
6054 * bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in
6056 * sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of
6057 Attribute_Elab_Subp_Body.
6058 * snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New.
6059 * sem_util.adb: Update comments.
6061 2011-08-29 Thomas Quinot <quinot@adacore.com>
6063 * par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record
6064 pragma name for each SCO statement corresponding to a pragma.
6066 2011-08-29 Arnaud Charlet <charlet@adacore.com>
6068 * opt.ads: Minor editing.
6070 2011-08-29 Yannick Moy <moy@adacore.com>
6072 * gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode
6073 that only made sense for CodePeer mode.
6075 2011-08-29 Jose Ruiz <ruiz@adacore.com>
6077 * targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag
6078 which is no longer used.
6079 * targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the
6080 handling of the 64-bit division check.
6081 * exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit
6083 * system*.ads (Support_64_Bit_Divides): Remove this flag which is no
6086 2011-08-29 Thomas Quinot <quinot@adacore.com>
6088 * get_scos.adb: Minor reformatting.
6090 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
6092 * exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a
6093 statement list is wrapped in a block, the block is explicitly analyzed
6094 in order to properly redecorate the entities and create a servicing
6097 2011-08-29 Tristan Gingold <gingold@adacore.com>
6099 * sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove.
6100 (Set_Zero_Cost_Handling): Remove.
6102 2011-08-29 Thomas Quinot <quinot@adacore.com>
6104 * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting
6106 2011-08-29 Geert Bosch <bosch@adacore.com>
6108 * s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation
6109 instruction, as the latter may produce -0.0, which is not a valid VAX
6111 (Neg_G): Likewise for VAX F float.
6113 2011-08-29 Robert Dewar <dewar@adacore.com>
6115 * exp_util.adb: Minor reformatting.
6117 2011-08-29 Yannick Moy <moy@adacore.com>
6119 * sem_ch3.adb: Minor comment update.
6121 2011-08-29 Thomas Quinot <quinot@adacore.com>
6123 * checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of
6126 2011-08-29 Thomas Quinot <quinot@adacore.com>
6128 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush
6129 current statement sequence on a generic instantiation or a subprogram
6132 2011-08-29 Robert Dewar <dewar@adacore.com>
6134 * sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:
6137 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
6139 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
6140 Correct the check which involves the freeze node of a controlled or
6141 access-to-controlled type.
6143 2011-08-29 Geert Bosch <bosch@adacore.com>
6145 * sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm
6147 * s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from
6150 2011-08-29 Yannick Moy <moy@adacore.com>
6152 * sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration
6153 for every index type and component type that is not a subtype_mark.
6154 (Process_Subtype): Set Etype of subtype.
6156 2011-08-29 Robert Dewar <dewar@adacore.com>
6158 * a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code
6159 reorganization. Minor reformatting.
6161 2011-08-29 Steve Baird <baird@adacore.com>
6163 * exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion
6164 for CodePeer and ALFA modes.
6166 2011-08-29 Ed Schonberg <schonberg@adacore.com>
6168 * sem_type.adb (Collect_Interps): Within an instance, collect a homonym
6169 that comes from an enclosing scope if it is not the renaming of an
6170 actual, to handle properly a spurious ambiguity in an instance.
6172 2011-08-29 Eric Botcazou <ebotcazou@adacore.com>
6174 * sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to...
6175 (Alignment_Check_For_Size_Change): ...this. Add SIZE parameter and
6176 use it instead of the Esize of the first parameter.
6177 (Analyze_Attribute_Definition_Clause) <Object_Size>: Adjust call to
6179 <Size>: Likewise. Call it for composite types on the RM size.
6181 2011-08-29 Yannick Moy <moy@adacore.com>
6183 * exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array.
6184 * sem_util.adb (Unique_Name): Correct behaviour for names of
6187 2011-08-29 Yannick Moy <moy@adacore.com>
6189 * sem_prag.adb (Check_Precondition_Postcondition): In formal
6190 verification mode, analyze pragma expression for correctness, for
6191 pre/post on library-level subprogram, as it is not expanded later.
6193 2011-08-29 Yannick Moy <moy@adacore.com>
6195 * exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates
6196 in formal verification.
6198 2011-08-29 Thomas Quinot <quinot@adacore.com>
6200 * sem_util.adb: Minor reformatting.
6201 * freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute,
6203 * par_sco.ads, par_sco.adb: Update comments.
6205 2011-08-29 Yannick Moy <moy@adacore.com>
6207 * einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and
6208 associated getter/setter.
6209 * sem_ch6.adb: Remove reference to Is_Postcondition_Proc.
6211 2011-08-29 Vincent Celier <celier@adacore.com>
6213 * prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind
6214 * prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler
6215 with declarations for Language_Kind and Dependency_Kind for Ada.
6216 * prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name
6217 (Process_Compiler): Take into account the new attributes Dependency_Kind
6219 (Check_Configuration): Check if language kind is unit based, not if the
6220 language name is Ada.
6221 (Process_Exceptions_Unit_Based): Ditto
6222 (Add_Language): Remove default additions of language and dependency kind
6223 * prj.ads: Minor comment change
6224 * snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind
6226 2011-08-29 Johannes Kanig <kanig@adacore.com>
6228 * debug.adb: Update comments.
6230 2011-08-24 Joseph Myers <joseph@codesourcery.com>
6232 * gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)
6233 (CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)
6234 (CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.
6235 (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)
6236 (ada/initialize.o, ada/raise.o): Remove explicit compilation rules.
6238 2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6240 * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
6241 (GNATLIBCFLAGS_FOR_C): Replace
6242 TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
6243 (gnatlib-shared-default, gnatlib-shared-dual-win32)
6244 (gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
6245 (gnatlib-sjlj, gnatlib-zcx): Likewise.
6247 2011-08-07 Eric Botcazou <ebotcazou@adacore.com>
6249 * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.
6251 * gcc-interface/gigi.h (enumerate_modes): Fix formatting.
6253 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change.
6255 2011-08-05 Nicolas Roche <roche@adacore.com>
6257 * gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared
6258 libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with
6260 * gcc-interface/Make-lang.in: Add support for canadian cross setting.
6262 2011-08-05 Matthew Heaney <heaney@adacore.com>
6264 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth):
6265 subprogram bodies declared out-of-order.
6267 2011-08-05 Yannick Moy <moy@adacore.com>
6269 * sem_util.adb (Unique_Name): only prefix with "standard" the names of
6270 entities directly in package Standard, otherwise skip the standard
6273 2011-08-05 Robert Dewar <dewar@adacore.com>
6275 * a-cbmutr.adb: Minor reformatting
6276 (Allocate_Node): refactor node allocation algorithm
6278 2011-08-05 Robert Dewar <dewar@adacore.com>
6280 * opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch.
6281 * sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable
6283 (Analyze_Pragma, case Check_Policy): Ditto.
6284 * sem_prag.ads (Check_Disabled): New function
6285 * snames.ads-tmpl: Add Name_Disable.
6287 2011-08-05 Robert Dewar <dewar@adacore.com>
6289 * gnat_rm.texi: Document implementation-defined policy DISABLE for
6290 pragmas Assertion_Policy, Check_Policy, Debug_Policy.
6292 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6294 * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
6295 that appears in a generic formal part and applies to a formal
6298 2011-08-05 Robert Dewar <dewar@adacore.com>
6300 * a-cbmutr.ads: Minor reformatting.
6302 2011-08-05 Matthew Heaney <heaney@adacore.com>
6304 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
6305 to check count, check sign of value instead.
6306 * a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty
6307 (Copy_Subtree): allocate copy of source element
6308 (Equal_Subtree): compare elements, not access objects
6310 2011-08-05 Vincent Celier <celier@adacore.com>
6312 * gnat_ugn.texi: Fix VMS alternative.
6314 2011-08-05 Thomas Quinot <quinot@adacore.com>
6316 * sem_ch11.adb: Add comment.
6318 2011-08-05 Robert Dewar <dewar@adacore.com>
6320 * exp_util.adb: Minor comment fix.
6322 2011-08-05 Robert Dewar <dewar@adacore.com>
6324 * scng.adb (Error_Unterminated_String): Improve flag position when
6327 2011-08-05 Matthew Heaney <heaney@adacore.com>
6329 * Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway
6331 * a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded
6332 multiway tree containers.
6334 2011-08-05 Robert Dewar <dewar@adacore.com>
6336 * styleg.adb (Check_Comment): Implement comment spacing of 1 or 2
6337 * stylesw.adb: Implement -gnatyC to control comment spacing
6338 * stylesw.ads (Style_Check_Comments_Spacing): New switch (set by
6340 * usage.adb: Add line for -gnatyC.
6342 2011-08-05 Robert Dewar <dewar@adacore.com>
6344 * gnat_ugn.texi: Document -gnatyC.
6345 * vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a
6346 synonym for COMMENTS2).
6348 2011-08-05 Robert Dewar <dewar@adacore.com>
6350 * par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb,
6351 a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb,
6352 sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb,
6353 a-comutr.ads, lib-xref.adb: Minor reformatting.
6355 2011-08-05 Robert Dewar <dewar@adacore.com>
6357 * sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal
6358 warning if there is an exception handler present.
6360 2011-08-05 Pascal Obry <obry@adacore.com>
6362 * a-iteint.ads: Fix copyright year.
6364 2011-08-05 Thomas Quinot <quinot@adacore.com>
6366 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a
6367 statement SCO for a USE clause or a representation clause.
6369 2011-08-05 Yannick Moy <moy@adacore.com>
6371 * lib-xref-alfa.adb (Collect_ALFA): generate the proper relation
6372 between body and spec for stub.
6373 (Detect_And_Add_ALFA_Scope): take into account subprogram stub
6374 * lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a
6375 pragma precondition or postcondition, for which the enclosing
6376 subprogram or package in the AST is not the desired one, return empty.
6378 2011-08-05 Thomas Quinot <quinot@adacore.com>
6380 * g-expect.adb: Minor reformatting.
6382 2011-08-05 Bob Duff <duff@adacore.com>
6384 * a-fihema.adb: Comment out OS_Lib.
6386 2011-08-05 Matthew Heaney <heaney@adacore.com>
6388 * Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb]
6389 (unbounded multiway tree containers) and a-iteint.ads.
6390 * a-comutr.ads, a-comutr.adb:
6391 This is the new Ada 2012 unit for unbounded multiway tree containers
6392 * a-cimutr.ads, a-cimutr.adb
6393 This is the new Ada 2012 unit for indefinite multiway tree containers
6394 * a-iteint.ads: New file.
6396 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6398 * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc.
6400 2011-08-05 Bob Duff <duff@adacore.com>
6402 * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for
6404 * par-ch4.adb (P_Allocator): Parse new subpool specification syntax.
6406 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6408 * sem_ch4.adb (Try_Container_Indexing): New procedure to implement the
6409 general indexing aspects of Ada2012. Called when analyzing indexed
6410 components when other interpretations fail.
6411 * sem_ch8.adb (Find_Direct_Name): check for implicit dereference only
6412 in an expression context where overloading is meaningful. This excludes
6413 the occurrence in an aspect specification (efficiency only).
6414 * sem_attr.adb (Analyze_Attribute): indicate that the attributes
6415 related to iterators can be set by an attribute specification, but
6417 * sem_ch13.adb (Analyze_Aspect_Specifications): handle
6418 Constant_Indexing and Variable_Indexing.
6419 (Check_Indexing_Functions): New procedure to perform legality checks.
6420 Additional semantic checks at end of declarations.
6422 2011-08-05 Sergey Rybin <rybin@adacore.com>
6424 * tree_io.ads: Update ASIS_Version_Number because of the change of the
6425 order of calling Tree_Write/Tree_Read routines made for aspects.
6427 2011-08-05 Bob Duff <duff@adacore.com>
6429 * a-fihema.adb (Finalize): Fix race condition.
6431 2011-08-05 Yannick Moy <moy@adacore.com>
6433 * sem_ch12.adb (Analyze_Package_Instantiation,
6434 Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
6437 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6439 * sem_type.adb (Specific_Type): in an instance, the type-specific
6440 operand of an equality check that involves null may have a private
6441 type. Use full view to determine legality of construct.
6443 2011-08-05 Vincent Celier <celier@adacore.com>
6445 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
6446 delete or close the file when the call to gnatmake was successful.
6448 2011-08-05 Yannick Moy <moy@adacore.com>
6450 * gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set
6451 Global_Discard_Names.
6453 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6455 * sinfo.ads: comments on use of entity field for aspect specifications.
6457 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6459 * sem_ch12.adb (Reset_Entity): If the entity field of the associated
6460 node is not itself an entity but a selected component, it is a
6461 rewritten parameterless call to an en enclosing synchronized operation,
6462 and this expansion will be performed again in the instance, so there is
6463 no global information to preserve.
6465 2011-08-05 Javier Miranda <miranda@adacore.com>
6467 * exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support
6468 for renamings of predefined primitives.
6469 (In_Predef_Prims_DT): New subprogram.
6471 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6473 * sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a
6474 possible interpretation of name is a reference type, add an
6475 interpretation that is the designated type of the reference
6476 discriminant of that type.
6477 * sem_res.adb (resolve): If the interpretation imposed by context is an
6478 implicit dereference, rewrite the node as the deference of the
6479 reference discriminant.
6480 * sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,
6481 Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from
6482 parent type or base type.
6483 * sem_ch4.adb (Process_Indexed_Component,
6484 Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,
6485 Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):
6486 Check for implicit dereference.
6487 (List_Operand_Interps): Indicate when an implicit dereference is
6489 * sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.
6491 2011-08-05 Thomas Quinot <quinot@adacore.com>
6493 * scos.ads: Update documentation of SCO table. Pragma statements can now
6494 be marked as disabled (using 'p' instead of 'P' as the statement kind).
6495 * par_sco.ads, par_sco.adb: Implement the above change.
6496 (Process_Decisions_Defer): Generate a P decision for the first parameter
6497 of a dyadic pragma Debug.
6498 * sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if
6500 * put_scos.adb: Code simplification based on above change.
6502 2011-08-05 Robert Dewar <dewar@adacore.com>
6504 * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb,
6505 bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb,
6506 a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads,
6507 prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting
6509 2011-08-05 Bob Duff <duff@adacore.com>
6511 * a-stunau.ads, g-spipat.adb: Update comments.
6513 2011-08-05 Bob Duff <duff@adacore.com>
6515 * a-fihema.ads: Minor comment fix.
6516 * a-fihema.adb (Allocate, Deallocate): Assert that the alignment is
6518 (Attach, Detach): Remove some unnecessary code.
6519 (Finalize): Remove Node_Ptr_To_Address, replace with a constant.
6521 2011-08-05 Bob Duff <duff@adacore.com>
6523 * a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap
6524 allocation for Objects component. This simplifies the code somewhat. It
6525 is also a little more efficient in the not-so-unusual case where there
6526 are no controlled objects allocated.
6527 Make Finalization_Started flag atomic.
6528 (Finalize): Avoid unnecessary detachment of items from the list.
6529 (pcol): Minor cleanup.
6531 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6533 * sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal
6534 package whose name is the same as that of the generic unit, or its
6537 2011-08-05 Bob Duff <duff@adacore.com>
6539 * a-fihema.adb, a-fihema.ads: Minor comment improvements.
6540 * sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:
6541 Minor comment fixes.
6543 2011-08-05 Arnaud Charlet <charlet@adacore.com>
6545 * make.adb (Linking_Phase): No longer need to set source search path
6546 before calling gnatlink in CodePeer mode.
6547 * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to
6548 gcc in CodePeer mode, since the binder generated file no longer has a
6550 * switch.ads, switch.adb (Is_Language_Switch): Removed.
6551 * switch-c.adb: Update comment.
6553 2011-08-05 Thomas Quinot <quinot@adacore.com>
6555 * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.
6557 2011-08-05 Nicolas Roche <roche@adacore.com>
6559 * gnat_ugn.texi: Fix minor syntax error issue.
6561 2011-08-05 Vincent Celier <celier@adacore.com>
6563 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
6564 delete or close the file when the call to gnatmake returns a non
6565 successful return code.
6567 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6569 * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate
6570 check, indicate that the copy of the original node does not come from
6571 source, to prevent an infinite recursion of the expansion.
6573 2011-08-05 Johannes Kanig <kanig@adacore.com>
6575 * debug.adb: document switch -gnatd.G for gnat2why, which deactivates
6576 VC generation for subprogram bodies.
6578 2011-08-05 Yannick Moy <moy@adacore.com>
6581 * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define
6582 the base type with the smallest allowed base type.
6584 2011-08-05 Sergey Rybin <rybin@adacore.com>
6586 * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for
6589 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6591 * sem_ch12.ads: minor comment updates.
6593 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6595 * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an
6596 instantiation and a formal package the compiler generates a package
6597 renaming declaration so that the generic name within the declaration
6598 is interpreted as a renaming of the instance. At the end of a formal
6599 package declaration, this renaming must become invisible.
6601 2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
6603 * exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character
6604 comparison and rely on concrete entities instead.
6606 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6608 * einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types
6609 and discriminants, to indicate that the type has an access discriminant
6610 that supports implicit dereference.
6611 * snames.ads-tmpl: Add names of aspects and attributes related to
6612 Ada2012 iterators: constant_indexing, default_iterator,
6613 iterator_element, implicit_dereference, variable_indexing.
6614 * aspects.ads, aspects.adb: entries for iterator-related aspects.
6615 * sem_ch13.adb (Analyze_aspect_specifications): dummy entries for
6616 iterator-related aspects.
6617 * sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.
6619 2011-08-05 Sergey Rybin <rybin@adacore.com>
6621 * gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling
6622 metrics in gnatmetric to cover new kinds of coupling mentrics.
6624 2011-08-05 Steve Baird <baird@adacore.com>
6626 * bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead
6627 of calling the user-defined main subprogram.
6628 (Gen_Main): Declare Ada_Main_Program and (if CodePeer_Mode
6629 is set) Call_Main_Subprogram ahead of, as opposed to
6631 (Gen_Output_File_Ada): Remove CodePeer_Mode-conditional
6632 generation of a "with" of the user-defined main subprogram.
6633 Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper
6634 (which is now called from Gen_Main instead).
6636 2011-08-05 Emmanuel Briot <briot@adacore.com>
6638 * projects.texi: Added reference to the Makefile package.
6640 2011-08-05 Thomas Quinot <quinot@adacore.com>
6642 * exp_ch7.adb: Minor comment rewording.
6644 2011-08-05 Ed Falis <falis@adacore.com>
6646 * env.c: Fix comment.
6648 2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
6650 * sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid
6651 character comparison and rely on concrete entities instead.
6653 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6655 * sem_ch3.adb: (Check_Private_Overriding): better error message,
6656 suggested by AI95-0068.
6658 2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
6660 * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve
6661 the two potential initialization calls. This accounts for any
6662 access-before-elaboration checks which may precede the initialization
6664 (Next_Suitable_Statement): New routine. Returns the next real statement
6665 after the input node while skipping generated checks.
6666 * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along
6667 with comment on usage.
6668 Do not generate Elaborate_All when the trigger is a finalization call
6669 coming from a type init proc.
6670 (Check_Elab_Call): Propagate the initialization procedure context to
6671 subsequent calls to Check_A_Call.
6672 (Check_Internal_Call_Continue): Propagate the initialization procedure
6673 context to subsequent calls to Check_Elab_Call.
6674 (Is_Finalization_Procedure): New routine. Returns True if the input
6675 entity denotes a [Deep_]Finalize routine.
6676 * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc
6677 along with comment on usage.
6679 2011-08-05 Vadim Godunko <godunko@adacore.com>
6681 * s-atocou.ads: Add list of supported platforms.
6683 2011-08-05 Yannick Moy <moy@adacore.com>
6685 * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables
6687 * opt.ads (Disable_ALI_File): new Boolean flag
6688 * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing
6690 2011-08-05 Ed Falis <falis@adacore.com>
6692 * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that
6693 environ is properly defined.
6695 2011-08-05 Vincent Celier <celier@adacore.com>
6697 * make.adb (Compilation_Phase): Exit immediately when all objects have
6698 been found up to date, to avoid multiple exit messages.
6699 * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the
6700 same project for languages with no compiler.
6701 * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch
6703 2011-08-05 Robert Dewar <dewar@adacore.com>
6705 * exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb,
6706 sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb,
6707 prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb,
6708 s-atocou-builtin.adb: Minor reformatting.
6710 2011-08-05 Yannick Moy <moy@adacore.com>
6712 * exp_ch7.adb (Establish_Transient_Scope): in formal verification mode,
6713 if the node to wrap is a pragma check, this node and enclosed
6714 expression are not expanded, so do not apply any transformations here.
6715 * exp_prag.adb (Expand_Pragma_Check): document the need to avoid
6716 introducing transient scopes.
6718 2011-08-05 Jose Ruiz <ruiz@adacore.com>
6720 * adaint.c (__gnat_set_writable, __gnat_set_readable,
6721 __gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable,
6722 __gnat_copy_attribs): On VxWorks 6.x and later, the required chmod
6723 routine is available, so we use the default implementation of these
6725 * s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is
6726 support for copying attributes on VxWorks 6.
6728 2011-08-05 Yannick Moy <moy@adacore.com>
6730 * debug.adb: Remove use of -gnatd.D.
6731 * gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode
6732 * opt.ads: Simplify variables for ALFA mode, to keep one only
6733 * restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode
6736 2011-08-05 Vincent Celier <celier@adacore.com>
6738 * prj-conf.adb (Do_Autoconf): Look also for --RTS in
6739 Builder'Default_Switches.
6741 2011-08-05 Vincent Celier <celier@adacore.com>
6743 * makeusg.adb: Add lines for --create-map-file switches.
6745 2011-08-05 Ed Schonberg <schonberg@adacore.com>
6747 * freeze.adb (Freeze_Entity): For a subprogram, if a type in the
6748 profile is incomplete and the full view is available, replace it with
6750 * sem_ch6.adb (Possible_Freeze): if a type in the profile is
6751 incomplete, freezing the subprogram is delayed until the full view is
6753 * sem_type.adb (Disambiguate): an ambiguity between a user-defined
6754 fixed-point multiplication operator and the predefined operator is
6755 resolved in favor of the user-defined one.
6757 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6759 * init.c [__alpha__ && __osf__] (__gnat_error_handler): Use
6762 2011-08-04 Ed Schonberg <schonberg@adacore.com>
6764 * sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine
6765 whether a type lacks user-defined Read or Write operations, or has a
6766 component that lacks them.
6767 * sem_attr.adb (Check_Stream_Attribute): if restriction
6768 No_Default_Stream_Attributes is active, verify that all subcomponent
6769 types of the target have user-defined stream operations, and report
6771 * exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation.
6772 * exp_strm.adb: Build_Elementary_Input_Call,
6773 Build_Elementary_Write_Call): remove checks for restriction
6774 No_Default_Stream_Attributes, now checked in semantics.
6776 2011-08-04 Vincent Celier <celier@adacore.com>
6778 * prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS
6779 switches on the command line, look for all valid --RTS switches in the
6780 Builder switches and for each language use the first runtime name found
6781 to invoke gprconfig.
6782 (Get_Or_Create_Configuration_File): Warn if --RTS is specified on the
6783 command line and there is no auto-configuration.
6784 (Runtime_Name_Set_For): New function.
6786 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
6788 * exp_ch7.adb (Build_Object_Declarations): Do not generate the
6789 elaborate initialization expression for variable Abort when processing
6790 a package body or a declaration.
6791 (Create_Finalizer): Propagate the package context when creating the
6792 exception-related variables.
6793 * exp_ch7.ads (Build_Object_Declarations): New formal parameter
6794 For_Package along with usage comment.
6796 2011-08-04 Arnaud Charlet <charlet@adacore.com>
6798 * gcc-interface/Makefile.in: Clean up targets.
6799 Enable new package for atomic counters and copy-on-write implementation
6800 of unbounded strings on x86 platforms.
6801 * gcc-interface/Make-lang.in: Update dependencies.
6803 2011-08-04 Robert Dewar <dewar@adacore.com>
6805 * exp_ch7.adb: Minor reformatting.
6807 2011-08-04 Robert Dewar <dewar@adacore.com>
6809 * exp_strm.adb: Minor reformatting.
6811 2011-08-04 Vadim Godunko <godunko@adacore.com>
6813 * s-atocou.adb: Replace by dummy version and use on targets where atomic
6814 operations are not supported.
6815 * s-atocou-builtin.adb: Renamed from s-atocou.adb.
6816 * s-atocou-x86.adb: New file.
6817 * Makefile.rtl: Add s-atocou.o file
6819 2011-08-04 Arnaud Charlet <charlet@adacore.com>
6821 * make.adb (Compile): Move setting of CodePeer_Mode to ...
6822 (Compilation_Phase): ... here.
6823 (Scan_Make_Arg): Now bind and link by default in CodePeer mode.
6825 2011-08-04 Thomas Quinot <quinot@adacore.com>
6827 * Make-generated.in: Fix minor typo in comment.
6829 2011-08-04 Thomas Quinot <quinot@adacore.com>
6831 * gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve
6834 2011-08-04 Robert Dewar <dewar@adacore.com>
6836 * a-coinho.adb: Minor reformatting.
6838 2011-08-04 Robert Dewar <dewar@adacore.com>
6840 * a-coinho.ads: Minor reformatting.
6842 2011-08-04 Vadim Godunko <godunko@adacore.com>
6844 * s-atocou.ads, s-atocou.adb: New files.
6845 * a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads,
6846 a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove
6847 direct use of GCC's atomic builtins and replace them by use of new
6848 atomic counter package.
6850 2011-08-04 Ed Schonberg <schonberg@adacore.com>
6852 * exp_strm.adb: better error message for No_Default_Stream_Attributes.
6854 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
6856 * a-tags.adb (Unregister_Tag): Replace the complex address arithmetic
6857 with a call to Get_External_Tag.
6858 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on
6859 subprogram usage. Remove the guard against package declarations and
6860 bodies since Build_Cleanup_Statements is no longer invoked in that
6862 (Build_Components): Initialize Tagged_Type_Stmts when the context
6863 contains at least one library-level tagged type.
6864 (Build_Finalizer): New local variables Has_Tagged_Types and
6865 Tagged_Type_Stmts along with associated comments on usage. Update the
6866 logic to include tagged type processing.
6867 (Create_Finalizer): Insert all library-level tagged type unregistration
6868 code before the jump block circuitry.
6869 (Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements.
6870 (Expand_N_Package_Declaration): Remove the call to
6871 Build_Cleanup_Statements.
6872 (Process_Tagged_Type_Declaration): New routine. Generate a call to
6873 unregister the external tag of a tagged type.
6874 (Processing_Actions): Reimplemented to handle tagged types.
6875 (Process_Declarations): Detect the declaration of a library-level
6876 tagged type and carry out the appropriate actions.
6877 (Unregister_Tagged_Types): Removed. The machinery has been directly
6878 merged with Build_Finalizer.
6880 2011-08-04 Robert Dewar <dewar@adacore.com>
6882 * bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb,
6883 gnatls.adb, exp_ch3.adb: Minor reformatting.
6885 2011-08-04 Marc Sango <sango@adacore.com>
6887 * sem_attr.adb (Analyze_Attribute): Replace the message
6888 "invisible attribute of}" of the spark restriction violation in
6889 attribute reference by the simple message "invisible attribute of type".
6890 Indeed, the node value Error_Msg_Node_1 used is in conflit with the
6891 two insertion characters: '&' and '}'.
6893 2011-08-04 Vadim Godunko <godunko@adacore.com>
6895 * impunit.adb (Non_Imp_File_Names_12): Add "a-coinho".
6896 * a-coinho.ads, a-coinho.adb: New file.
6897 * Makefile.rtl: Add Ada.Containers.Indefinite_Holders.
6899 2011-08-04 Nicolas Roche <roche@adacore.com>
6901 * alfa_test.adb: Not all ali files are containing alfa information even
6902 if compiled with -gnatd.F. So suppress warning about missing ALFA
6905 2011-08-04 Yannick Moy <moy@adacore.com>
6907 * lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for
6909 * put_alfa.adb: Check that scope name is not empty.
6911 2011-08-04 Ed Schonberg <schonberg@adacore.com>
6913 * exp_ch3.adb (Stream_Operation_Ok): new predicate
6914 Needs_Elementary_Stream_Operation, to determine whether user-defined
6915 Read and Write attributes are available for the elementary components
6916 of the given type. If only the predefined attributes are available,
6917 then when restriction No_Default_Stream_Attributes is active the
6918 predefined stream attributes for the composite type cannot be created.
6920 2011-08-04 Robert Dewar <dewar@adacore.com>
6922 * bindgen.adb: Fix obsolete comments and names from Ada/C days.
6923 Put routines in alpha order
6925 2011-08-04 Jose Ruiz <ruiz@adacore.com>
6927 * gcc-interface/Makefile.in: Remove xenomai specific versions of system.
6928 * gcc-interface/Make-lang.in: Update dependencies.
6930 2011-08-04 Arnaud Charlet <charlet@adacore.com>
6932 * gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada.
6933 * gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls
6936 2011-08-04 Robert Dewar <dewar@adacore.com>
6938 * sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb,
6939 lib-xref-alfa.adb: Minor reformatting.
6941 2011-08-04 Marc Sango <sango@adacore.com>
6943 * sem_ch12.adb (Analyze_Generic_Package_Declaration,
6944 Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,
6945 Analyze_Subprogram_Instantiation): Check absence of generic in SPARK
6948 2011-08-04 Tristan Gingold <gingold@adacore.com>
6950 * bindgen.adb (Gen_Adainit_C): Remove.
6951 (Gen_Adafinal_C): Ditto.
6952 (Gen_Elab_Externals_C): Ditto.
6953 (Gen_Elab_Calls_C): Ditto.
6954 (Gen_Elab_Order_C): Ditto.
6955 (Gen_Elab_Defs_C): Ditto.
6956 (Gen_Finalize_Library_C): Ditto.
6957 (Gen_Finalize_Library_Defs_C): Ditto.
6958 (Gen_Main_C): Ditto.
6959 (Gen_Output_File_C): Ditto.
6960 (Gen_Restrictions_C): Ditto.
6961 (Gen_Versions_C): Ditto.
6962 (Write_Info_Ada_C): Ditto.
6963 (Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C
6964 (Gen_Output_File): Do not force Ada_Bind_File anymore.
6965 Always call Gen_Output_File_Ada.
6966 * gnatlink.adb (Begin_Info): Now a constant.
6968 (Ada_Bind_File): Remove
6969 (Process_Args): Do not handle -A/-C. Remove not Ada_Bind_File cases.
6970 * switch-b.adb (Scan_Binder_Switches): Do not handle -C.
6971 * gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases.
6972 * opt.ads (Ada_Bind_File): Remove.
6974 2011-08-04 Thomas Quinot <quinot@adacore.com>
6976 * projects.texi: Document target-specific directory in default project
6979 2011-08-04 Thomas Quinot <quinot@adacore.com>
6981 * gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project
6984 2011-08-04 Yannick Moy <moy@adacore.com>
6986 * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
6987 opt.ads, lib-xref.ads: Code clean up.
6989 2011-08-04 Yannick Moy <moy@adacore.com>
6991 * gnat_rm.texi: Update description of Test_Case
6992 * gnat_ugn.texi: Typo.
6994 2011-08-04 Ed Falis <falis@adacore.com>
6996 * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.
6998 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7000 * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
7001 it is of type Root_Controlled. This action eliminates fields Prev and
7002 Next from type equality.
7004 2011-08-04 Yannick Moy <moy@adacore.com>
7006 * lib-xref-alfa.adb: Correct typo.
7008 2011-08-04 Matthew Heaney <heaney@adacore.com>
7010 * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
7013 2011-08-04 Yannick Moy <moy@adacore.com>
7015 * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure
7016 (Analyze_Pragma): allow static string expression for name of Test_Case,
7017 instead of simply string literals.
7018 * sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string
7021 2011-08-04 Vincent Celier <celier@adacore.com>
7023 * makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical
7024 case suffixes to find truncated main sources.
7026 2011-08-04 Tristan Gingold <gingold@adacore.com>
7028 * impunit.adb (Non_Imp_File_Names_95): Add g-tastus.
7029 s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put.
7030 (Compute_Current_Task): Ditto.
7032 2011-08-04 Tristan Gingold <gingold@adacore.com>
7034 * gnat_ugn.texi: Mention GNAT.Task_Stack_Usage.
7036 2011-08-04 Yannick Moy <moy@adacore.com>
7038 * lib-xref-alfa.adb (Is_Global_Constant): new function that detects
7039 library-level constant.
7040 (Add_ALFA_Xrefs): ignore global constants in ALFA xref.
7041 * sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal
7042 used as selector of parameter association, in ALFA mode.
7044 2011-08-04 Robert Dewar <dewar@adacore.com>
7046 * exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb,
7047 s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor
7050 2011-08-04 Arnaud Charlet <charlet@adacore.com>
7052 * make.adb (Linking_Phase): Set source search path before calling
7053 gnatlink in CodePeer mode.
7055 2011-08-04 Javier Miranda <miranda@adacore.com>
7057 * exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration):
7058 Remove code which takes care of building TSDs.
7059 * rtsfind.ads (RE_Check_Interface_Conversion): New entity.
7060 * exp_ch4.adb (Apply_Accessibility_Check): Add support for generating
7061 the accessibility check in VM targets.
7062 * exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads
7063 (Building_Static_DT): Now returns false for VM targets.
7064 (Build_VM_TSDs): Removed.
7065 (Expand_Interface_Conversion): Generate missing runtime check for
7066 conversions to interface types whose target type is unknown at compile
7068 (Make_VM_TSD): Add missing code to disable the generation of calls to
7069 Check_TSD if the tagged type is not defined at library level, or not
7070 has a representation clause specifying its external tag, or -gnatdQ is
7072 * exp_disp.ads (Build_VM_TSDs): Removed.
7073 (Make_VM_TSDs): Spec relocated from exp_disp.adb
7074 * sem_disp.adb (Check_Dispatching_Operation): No code required to
7075 register primitives in the dispatch tables in VM targets.
7076 * exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of
7077 initialization of class-wide interface objects in VM targets.
7078 (Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead
7081 2011-08-04 Jerome Lambourg <lambourg@adacore.com>
7083 * gnatlink.adb (Gnatlink): Correct missleading error message displayed
7084 when dotnet-ld cannot be found.
7086 2011-08-04 Arnaud Charlet <charlet@adacore.com>
7088 * bindgen.adb: Simplify significantly generation of binder body file in
7090 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure
7091 when compiling binder generated file in CodePeer mode (xxx'Elab_Spec
7094 2011-08-04 Yannick Moy <moy@adacore.com>
7096 * sem_prag.adb, sem.ads: Code cleanup.
7098 2011-08-04 Tristan Gingold <gingold@adacore.com>
7100 * s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part.
7101 * s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate
7102 results if possible.
7103 * s-stusta.adb (Print): Adjust after changes in s-stausa.
7104 * gnat_ugn.texi: Update dynamic stack usage section.
7106 2011-08-04 Steve Baird <baird@adacore.com>
7108 * bindgen.adb (Gen_CodePeer_Wrapper): new procedure.
7109 Generate (if CodePeer_Mode is set) a "wrapper" subprogram which
7110 contains only a call to the user-defined main subprogram.
7111 (Gen_Main_Ada) - If CodePeer_Mode is set, then
7112 call the "wrapper" subprogram instead of directly
7113 calling the user-defined main subprogram.
7115 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7117 * exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all
7118 alternatives of a case statement for controlled objects. Rename local
7119 variable A to Dead_Alt.
7120 (Expand_N_If_Statement): Check the then and else statements of an if
7121 statement for controlled objects. Check the then statements of all
7122 elsif parts of an if statement for controlled objects.
7123 (Expand_N_Loop_Statement): Check the statements of a loop for controlled
7125 * exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which
7126 detects a loop associated with the expansion of an array object.
7127 Augment the processing of the loop statements to account for a possible
7128 wrap done by Process_Statements_For_Controlled_Objects.
7129 * exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering
7130 statements and abortable part of an asynchronous select for controlled
7132 (Expand_N_Conditional_Entry_Call): Check the else statements of a
7133 conditional entry call for controlled objects.
7134 (Expand_N_Selective_Accept): Check the alternatives of a selective
7135 accept for controlled objects.
7136 (Expand_N_Timed_Entry_Call): Check the entry call and delay
7137 alternatives of a timed entry call for controlled objects.
7138 * exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an
7139 exception handler for controlled objects.
7140 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
7141 Add formal parameter Nested_Constructs along with its associated
7143 (Requires_Cleanup_Actions (Node_Id)): Update all calls to
7144 Requires_Cleanup_Actions.
7145 (Process_Statements_For_Controlled_Objects): New routine.
7146 * exp_util.ads (Process_Statements_For_Controlled_Objects): New
7147 routine. Inspect a node which contains a non-handled sequence of
7148 statements for controlled objects. If such an object is found, the
7149 statements are wrapped in a block.
7151 2011-08-04 Bob Duff <duff@adacore.com>
7153 * sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we
7154 need to compare with Class_Wide_Type (T2), in order to get at the
7155 original class-wide type node.
7156 * sem_type.ads (Covers): Improve the comment.
7157 * einfo.ads (Class_Wide_Type): Improve the comment.
7158 * exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of
7159 the type of the Deref.
7161 2011-08-04 Yannick Moy <moy@adacore.com>
7163 * gnat_rm.texi: Document that Test_Case pragma can only appear on
7164 separate declarations.
7165 * sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to
7166 check identifier of pragma argument.
7167 (Chain_TC): check that no other test case associated to the same entity
7168 share the same name.
7169 (Check_Test_Case): disallow test case inside subprogram body
7170 (Analyze_Pragma): correct call to check identifier and not argument
7171 * sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new
7172 function gets name from test case pragma.
7174 2011-08-04 Yannick Moy <moy@adacore.com>
7176 * gnat_rm.texi: Document new pragma and aspect.
7177 * aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case
7178 (No_Duplicates_Allowed): new constant array defining whether duplicates
7179 aspects of each kind can appear on the same declaration.
7180 * einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract
7181 field, which points to a node holding the previous Spec_PPC_List.
7182 * exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List
7183 through the indirection with Contract.
7184 * exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node
7185 * par-prag.adb (Prag): do nothing on Test_Case pragma
7186 * sem.adb (Analyze): abort on N_Contract, on which Analyze should not
7188 * sem_attr.adb (Analyze_Attribute): allow attribute 'Result in
7189 component Ensures of Test_Case.
7190 * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb
7191 (Analyze_Generic_Subprogram_Declaration,
7192 Analyze_Subprogram_Instantiation,
7193 Analyze_Abstract_Subprogram_Declaration,
7194 Analyze_Subprogram_Body_Helper,
7195 Analyze_Subprogram_Specification, Analyze_Entry_Declaration):
7196 insert contract in subprogram node at point of definition
7198 (Aspect_Loop): do not raise error on duplicate Test_Case aspect
7199 (Analyze_Aspect_Specifications): analyze Test_Case aspect and create
7200 corresponding pragma
7201 (Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect
7202 * sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases,
7203 similar to the analysis of pre/post
7204 (Derive_Subprogram): insert contract in subprogram node at point of
7206 * sem_prag.adb, sem_prag.ads
7207 (Check_Arg_Is_String_Literal, Check_Identifier):
7208 new checking procedures to be called in treatment of pragmas
7209 (Check_Test_Case): new procedure to check that a Test_Case aspect or
7210 pragma is well-formed. This does not check currently that 'Result is
7211 used only in the Ensures component of a Test_Case.
7212 (Analyze_Pragma): add case for Test_Case
7213 (Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures
7214 components of a Test_Case.
7215 (Preanalyze_TC_Args): new procedure to preanalyze the boolean
7216 expressions in the 3rd (and 4th if present) arguments of a Test_Case
7217 pragma, treated as spec expressions.
7218 (Sig_Flags): add value -1 for Test_Case.
7219 * sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma,
7220 Get_Requires_From_Test_Case_Pragma): getters for both expression
7221 components of a Test_Case.
7222 * sinfo.adb, sinfo.ads (N_Contract): new kind of node used as
7223 indirection between an entry or [generic] subprogram entity and its
7224 pre/post + test-cases.
7225 (Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List):
7226 get/set for fields of an N_Contract node.
7227 * snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode,
7228 Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new
7229 names and pragma for Test_Case.
7230 * sprint.adb (Sprint_Node): raise Program_Error on N_Contract node
7232 2011-08-04 Vincent Celier <celier@adacore.com>
7234 * gnat_ugn.texi: Improve documentation of gnatmake switch
7235 --source-info-file=.
7237 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7239 * exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion
7240 type). Initialize Atyp to the appropriate type which is later checked
7241 for completion. Rewrite the assertion associated with private type
7244 2011-08-04 Ed Falis <falis@adacore.com>
7246 * adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to
7247 initialize the number of CPUs.
7249 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7251 * sem_type.adb (Disambiguate): New subsidiary routine
7252 In_Same_Declaration_List, to implement AI05-0020: a user-defined
7253 equality on an anonymous access type whose designated type is private
7254 does not lead to an ambiguity with the universal access equality
7255 operator in the body or child units of the defining package. The same
7256 is true for a multiplication operator on a private type completed with
7259 2011-08-04 Javier Miranda <miranda@adacore.com>
7261 * opt.ads (Init_Or_Norm_Scalars_Config): Removed.
7262 (Normalize_Scalars_Config): Removed.
7264 (Register_Opt_Config_Switches): Remove registering config values of
7265 Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config.
7266 (Restore_Opt_Config_Switches): Remove code which restores the values of
7267 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
7268 Init_Or_Norm_Scalars.
7269 (Save_Opt_Config_Switches): Remove code which saves values of
7270 Init_Or_Norm_Scalars and Normalize_Scalars.
7271 (Set_Opt_Config_Switches): Remove code which restores config values of
7272 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
7273 Init_Or_Norm_Scalars.
7275 2011-08-04 Yannick Moy <moy@adacore.com>
7277 * frontend.adb (Frontend): remove previous patch to avoid full
7278 qualification in ALFA mode.
7279 * lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables.
7280 * sem_util.adb, sem_util.ads (Unique_Name): new function to define a
7281 unique name for an entity, which could be used to identify the entity
7282 across compilation units.
7284 2011-08-04 Thomas Quinot <quinot@adacore.com>
7287 (Initialize_Default_Project_Path): Add target specific directory
7288 ($prefix/$target/lib/gnat) in front of project path in all cases
7289 (making gnatmake's behaviour consistent with gprbuild).
7290 * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb:
7291 Pass target name from Sdefault to project subsystem.
7292 * gnatls.adb: Show new target specific default project directory.
7294 2011-08-04 Johannes Kanig <kanig@adacore.com>
7296 * cstand.adb: Add Information to Identifier in Standard
7297 (Identifer_For): Set Entity to the corresponding entity
7299 2011-08-04 Sergey Rybin <rybin@adacore.com>
7301 * gnat_ugn.texi: Update doc on gnatcheck.
7303 2011-08-04 Yannick Moy <moy@adacore.com>
7305 * lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of
7308 2011-08-04 Yannick Moy <moy@adacore.com>
7310 * exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without
7311 performing expansion.
7312 * sem_ch6.adb (Analyze_Subprogram_Body_Helper,
7313 Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that
7314 it is not called in ALFA mode.
7316 2011-08-04 Emmanuel Briot <briot@adacore.com>
7318 * make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used
7319 after all, so removed.
7321 2011-08-04 Sergey Rybin <rybin@adacore.com>
7323 * vms_data.ads: Add missing VMS qualifiers.
7325 2011-08-04 Emmanuel Briot <briot@adacore.com>
7327 * make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild
7328 the list of files on the command line after processing it through
7331 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7333 * exp_ch7.adb (Build_Raise_Statement): Remove the specialized
7334 processing for .NET/JVM. These targets can now benefit from
7335 Raise_From_Controlled_Operation and they share the same processing with
7337 (Establish_Transient_Scope): Remove the restriction for .NET/JVM.
7338 These targets need transient scopes in order to properly finalize short
7339 lived controlled objects.
7340 (Make_Handler_For_Ctrl_Operation): Remove the specialized processing for
7341 NET/JVM. These targets can now benefit from
7342 Raise_From_Controlled_Operation and they share the same processing with
7345 2011-08-04 Geert Bosch <bosch@adacore.com>
7347 * tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack
7349 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7351 * exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to
7352 Expand_Record_Aggregate, to determine whether aggregate must be
7353 expanded into assignments. This is the case if the ancestor part is
7354 private, regarless of the setting of the flag Has_Private_Ancestor.
7356 2011-08-04 Ed Falis <falis@adacore.com>
7358 * vxaddr2line.adb: Add support for e500v2 and for Linux hosts
7360 2011-08-04 Bob Duff <duff@adacore.com>
7362 * sinfo.ads: Fix comment.
7364 2011-08-04 Steve Baird <baird@adacore.com>
7366 * bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then
7367 choose a package name in much the same way as is
7368 done for JGNAT when VM_Target /= No_VM, except that
7369 a slightly more distinctive prefix string is used.
7371 2011-08-04 Emmanuel Briot <briot@adacore.com>
7373 * makeutl.adb (Complete_Mains): no longer accept unit names on the
7374 gnatmake command line.
7375 This behavior was never documented (and was supported only because of
7376 an early bug in the code). This case might lead to ambiguous cases
7377 (between unit names and truncated base names without suffixes).
7379 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7381 * a-tags.ads, a-tags.adb (Unregister_Tag): New routine.
7382 Remove the external tag of a tagged type from the internal hash table.
7383 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the
7384 expanded usage of the routine. Strenghten the check for Is_Master. Add
7385 processing for tagged types.
7386 (Build_Finalizer): Create all the necessary lists used in finalizer
7387 creation when the processed context is a package that may contain
7389 (Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to
7390 Requires_Cleanup_Actions.
7391 (Expand_N_Package_Body): Package bodies may need clean up code
7392 depending on whether they contain tagged types.
7393 (Expand_N_Package_Declaration): Package declarations may need clean up
7394 code depending on whether they contain tagged types.
7395 (Unregister_Tagged_Types): New routine. Search through a list of
7396 declarations or statements, looking for non-abstract Ada tagged types.
7397 For each such type, generate code to unregister the external tag.
7398 * exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to
7399 Requires_Cleanup_Actions.
7400 (Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search
7401 through a list of declarations or statements looking for non-abstract
7402 Ada tagged types or controlled objects.
7403 * exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to
7404 Requires_Cleanup_Actions.
7405 (Has_Controlled_Objects (List_Id, Boolean)): Removed.
7406 * rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and
7409 2011-08-04 Vincent Celier <celier@adacore.com>
7411 * prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj
7412 has Ada sources, not project Project, because if the root project
7413 Project has no sources of its own, all projects will be deemed without
7416 2011-08-04 Gary Dismukes <dismukes@adacore.com>
7418 * bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration
7419 of the No_Param_Proc acc-to-subp type used for initialization of
7420 __gnat_finalize_library_objects so that it's declared at library level
7421 rather than nested inside of the adainit routine.
7423 2011-08-04 Javier Miranda <miranda@adacore.com>
7425 * exp_disp.adb (Make_DT): Generate code to check the external tag ONLY
7426 if the tagged type has a representation clause which specifies its
7429 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7431 * einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types.
7432 Remove previous procedure with that name.
7433 * sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor
7435 * sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a
7436 subtype mark, the ancestor cannot have unknown discriminants.
7437 (Resolve_Record_Aggregate): if the type has invisible components
7438 because of a private ancestor, the aggregate is illegal.
7440 2011-08-04 Vincent Celier <celier@adacore.com>
7442 * switch-m.adb (Normalize_Compiler_Switches): Recognize and take into
7443 account switches -gnat2005, -gnat12 and -gnat2012.
7445 2011-08-04 Bob Duff <duff@adacore.com>
7447 * s-tasdeb.ads: Minor comment fix.
7449 2011-08-04 Arnaud Charlet <charlet@adacore.com>
7451 * gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in
7453 * switch.ads, switch.adb (Is_Language_Switch): New function.
7455 2011-08-04 Vincent Celier <celier@adacore.com>
7457 * switch-c.adb: Minor comment addition.
7459 2011-08-04 Vincent Celier <celier@adacore.com>
7461 * vms_conv.adb (Process_Argument): Fail graciously when qualifier
7462 ending with '=' is followed by a space (missing file name).
7464 2011-08-04 Pascal Obry <obry@adacore.com>
7466 * g-regist.ads: Fix size of HKEY on x86_64-windows.
7468 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7470 * sem_ch12.adb (Analyze_Associations): New routine
7471 Check_Overloaded_Formal_Subprogram to reject a formal package when
7472 there is a named association or a box initialisation for an overloaded
7473 formal subprogram of the corresponding generic.
7475 2011-08-04 Yannick Moy <moy@adacore.com>
7477 * alfa.ads (ALFA_Xref_Record): add component for type of entity
7478 * get_alfa.adb, put_alfa.adb: Read and write new component of
7480 * lib-xref-alfa.adb (Collect_ALFA): generate new component.
7482 2011-08-04 Pascal Obry <obry@adacore.com>
7484 * urealp.adb: Minor reformatting.
7486 2011-08-04 Tristan Gingold <gingold@adacore.com>
7488 * exp_ch7.adb (build_finalizer.process_declarations.processing_actions):
7489 Handle the case when Cleanup_Protected_Object returns Empty.
7491 2011-08-04 Yannick Moy <moy@adacore.com>
7493 * frontend.adb (Frontend): only qualify names in non-ALFA mode
7495 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7497 * sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure
7498 call, ignore functions.
7500 2011-08-04 Geert Bosch <bosch@adacore.com>
7502 * urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating
7505 2011-08-04 Emmanuel Briot <briot@adacore.com>
7507 * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name
7508 as an index for Builder'Switches. This conforms to the documentation.
7509 * make.adb (Insert_Project_Sources): avoid duplicate code
7511 2011-08-04 Emmanuel Briot <briot@adacore.com>
7513 * makeutl.adb (Complete_Mains): if the user has passed a relative file
7514 name on the command line (for instance "../dummy"), never assume it can
7517 2011-08-04 Tristan Gingold <gingold@adacore.com>
7519 * bindgen.adb: Remove code the reference or create the
7520 Break_Start/__gnat_break_start procedure.
7521 * s-stalib.adb (Break_Start): Removed.
7523 2011-08-04 Emmanuel Briot <briot@adacore.com>
7525 * make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now
7526 shared with gprbuild.
7528 2011-08-04 Yannick Moy <moy@adacore.com>
7530 * par-ch4.adb (P_Primary): preferentially issue an error message about
7531 a missing parenthesis arount a conditional or case expression in Ada
7532 2012 mode, if we detect that the alignment is not correct for a
7535 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7537 * exp_ch7.adb (Process_Declarations): Do not consider the result of a
7538 tag-to-class-wide conversion as needing finalization actions.
7539 * exp_util.adb (Has_Controlled_Objects): Do not consider the result of
7540 a tag-to-class-wide conversion as needing finalization actions.
7541 (Is_Finalizable_Transient): The result of a tag-to-class-wide
7542 conversion does not need finalization actions.
7543 (Is_Tag_To_CW_Conversion): New routine.
7544 * exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines
7545 whether an object is the result of a tag-to-class-wide conversion.
7547 2011-08-04 Yannick Moy <moy@adacore.com>
7549 * sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which
7550 the left-hand-side and right-hand-side of a conjunct are inserted when
7551 translating a pre- or postcondition
7552 * sem_ch6.adb: Correct typo in comment
7554 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7556 * gnat_rm.texi: Ravenscar does not prohibit dependence on
7557 Unchecked_Conversion and Unchecked_Deallocation.
7559 2011-08-04 Thomas Quinot <quinot@adacore.com>
7561 * make.adb: Minor reformatting.
7563 2011-08-04 Emmanuel Briot <briot@adacore.com>
7565 * prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the
7566 sources in the project and its imported projects, but not in the whole
7569 2011-08-04 Emmanuel Briot <briot@adacore.com>
7571 * make.adb: Remove debug trace.
7573 2011-08-04 Vincent Celier <celier@adacore.com>
7575 * makeutl.adb (Do_Complete): Get the absolute path name of a relative
7576 path in canonical form, to be able to compare path names on platforms
7577 such as Windows or Darwin.
7579 2011-08-04 Thomas Quinot <quinot@adacore.com>
7581 * par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry):
7582 For a pragma (statement with C1 = 'P'), record the sloc of the pragma.
7583 * scos.ads: Update documentation accordingly.
7584 * put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled
7587 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7589 * sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of
7590 attribute only if prefix type is scalar.
7592 2011-08-04 Emmanuel Briot <briot@adacore.com>
7594 * make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support
7595 in gnatmake for specifying mains on the command line that do not belong
7596 to the main project. These mains must currently all belong to the same
7598 (Ultimate_Extension_Of): removed, since duplicated
7599 Ultimate_Extending_Project.
7601 2011-08-04 Arnaud Charlet <charlet@adacore.com>
7603 * make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode
7605 (CodePeer_Mode_String): New.
7606 (Linking_Phase, Binding_Phase): Call gnatlink with -P switch in
7608 (Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode.
7609 * bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer
7610 mode, since no useful elaboration subprogram is needed by CodePeer.
7611 * gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode).
7612 In this mode, compile binder file with -gnatC and do stop after this
7615 2011-08-04 Vincent Celier <celier@adacore.com>
7617 * exp_ch7.adb: Minor comment fix.
7619 2011-08-04 Robert Dewar <dewar@adacore.com>
7621 * exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb,
7622 exp_ch4.adb, makeutl.adb: Minor reformatting.
7624 2011-08-04 Emmanuel Briot <briot@adacore.com>
7626 * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.
7627 Create several new subprograms to move code out of Make. This makes the
7628 code more readable, removes code duplication, and is a preparation work
7629 for adding support for aggregate projects.
7631 2011-08-04 Tristan Gingold <gingold@adacore.com>
7633 * s-po32gl.ads, s-po32gl.adb: New files.
7634 * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.
7635 * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.
7636 (Build_Finalization_Collection): Use it.
7637 * exp_ch4.adb (Complete_Controlled_Allocation): Ditto.
7638 * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New
7640 * gcc-interface/Makefile.in: Use s-po32gl.o on VMS.
7641 * gcc-interface/Make-lang.in: Update dependencies.
7643 2011-08-04 Emmanuel Briot <briot@adacore.com>
7645 * makeutl.adb (Complete_Mains): add support for specs with no suffix on
7648 2011-08-04 Emmanuel Briot <briot@adacore.com>
7650 * make.adb, makeutl.adb (Complete_Mains): if a main specified on the
7651 command line is not a file name, also check whether it could be a unit
7654 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
7656 * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate
7657 the header of the finalization routine.
7658 If the unit has no finalizer but is a body whose spec has one, then
7659 generate the decrement of the elaboration entity only.
7660 If the unit has a finalizer and is a spec, then do not generate the
7661 decrement of the elaboration entity.
7662 (Gen_Finalize_Library_C): Likewise.
7664 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7666 * exp_ch7.adb (Alignment_Of): New subsidiary routine.
7667 (Bounds_Size_Expression): Removed.
7668 (Double_Alignment_Of): New subsidiary routine.
7669 (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account
7670 for a hole in the dope vector of unconstrained arrays due to different
7671 index and element alignments.
7673 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7675 * sem_res.adb (Resolve_Allocator): diagnose task allocator that will
7676 raise program_error because body has not been seen yet.
7678 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7680 * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with
7683 2011-08-04 Vincent Celier <celier@adacore.com>
7685 * makeutl.adb (Do_Complete): Check absolute paths in canonical forms
7687 2011-08-04 Yannick Moy <moy@adacore.com>
7689 * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here
7690 * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here
7692 2011-08-04 Thomas Quinot <quinot@adacore.com>
7694 * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for
7695 instantiation in RCI.
7697 2011-08-04 Emmanuel Briot <briot@adacore.com>
7699 * make.adb: Share more code with gprbuild
7701 2011-08-04 Emmanuel Briot <briot@adacore.com>
7703 * projects.texi: Added documentation for the IDE'Gnat project file
7706 2011-08-04 Nicolas Roche <roche@adacore.com>
7708 * gnat_rm.texi: Minor editing.
7710 2011-08-04 Javier Miranda <miranda@adacore.com>
7712 * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case
7713 and the library case for VM targets.
7714 (Gen_Adainit_Ada): Likewise.
7716 2011-08-04 Robert Dewar <dewar@adacore.com>
7718 * g-altive.ads: Minor comment updates.
7719 * prj-nmsc.adb: Minor reformatting.
7721 2011-08-04 Javier Miranda <miranda@adacore.com>
7724 (Normalize_Scalars_Config): Value of the configuration switch set by
7725 pragma Normalize_Scalars when it appears in the gnat.adc file.
7726 (Normalize_Scalars): New field for record Config_Switches_Type. Used
7727 to save and restore settings of this pragma.
7729 (Register_Opt_Config_Switches, Save_Opt_Config_Switches,
7730 Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.
7732 2011-08-04 Vincent Celier <celier@adacore.com>
7734 * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile
7736 2011-08-04 Arnaud Charlet <charlet@adacore.com>
7738 * makeutl.adb: Minor reformatting.
7740 2011-08-04 Olivier Hainque <hainque@adacore.com>
7742 * g-altive.ads: Update comments to reflect that only the soft
7743 binding is available today.
7745 2011-08-04 Robert Dewar <dewar@adacore.com>
7747 * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,
7748 makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting
7749 * gcc-interface/Make-lang.in: Update dependencies.
7751 2011-08-04 Arnaud Charlet <charlet@adacore.com>
7753 * prj-env.adb: Remove local debug traces.
7755 2011-08-04 Yannick Moy <moy@adacore.com>
7757 * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK
7758 was used instead of Hi_OK, which could cause a read of an uninitialized
7759 value later on. Detected while working on the new warning.
7760 * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment
7762 * sem_ch5.adb (Analyze_Assignment): set the last assignment component
7763 in more cases, in order to detect more unreferenced values.
7764 * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing
7765 object for expression, if any.
7767 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
7769 * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of
7770 the operand types instead of the Esize.
7772 2011-08-04 Steve Baird <baird@adacore.com>
7774 * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to
7775 enable CodePeer_Mode.
7776 * bindusg.adb (Display): Add help message describing -P binder switch.
7777 * gnat_ugn.texi: Document -P binder switch.
7778 * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the
7779 user-defined main program directly.
7780 (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the
7781 user-defined main program in the context clause of the package body.
7783 2011-08-04 Yannick Moy <moy@adacore.com>
7785 * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial
7786 duplicate of Defining_Entity
7787 (Get_Unique_Entity_For_Decl): rename function into
7788 Unique_Defining_Entity
7789 * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags
7790 (Formal_Proof_On): remove synthesized flag
7791 * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
7792 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,
7793 sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA
7794 * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma
7795 Annotate (Formal_Proof)
7797 2011-08-04 Emmanuel Briot <briot@adacore.com>
7799 * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit
7800 source files with non-standard naming schemes, in imported projects
7802 2011-08-04 Emmanuel Briot <briot@adacore.com>
7804 * makeutl.adb (Complete_Mains): when a multi-unit source file is
7805 specified on the gprbuild command line, we need to compile all units
7806 within that file, not just the first one we find
7807 Fix error message for mains that are not found.
7809 2011-08-04 Thomas Quinot <quinot@adacore.com>
7811 * sem_ch6.adb: Update comment.
7812 * sem_ch12.adb: Minor reformatting.
7814 2011-08-04 Bob Duff <duff@adacore.com>
7816 * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading
7817 Acceptor.Terminate_Alternative without locking Acceptor, which causes a
7818 race condition whose symptom is to fail to lock Parent. That, in turn,
7819 causes Parent.Awake_Count to be accessed without locking Parent, which
7820 causes another race condition whose symptom is that Parent.Awake_Count
7821 can be off by 1 (either too high or too low). The solution is to lock
7822 Parent unconditionally, and then lock Acceptor, before reading
7823 Acceptor.Terminate_Alternative.
7825 2011-08-04 Arnaud Charlet <charlet@adacore.com>
7827 * debug.adb: Update comment.
7829 2011-08-04 Robert Dewar <dewar@adacore.com>
7831 * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,
7832 sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,
7833 exp_ch6.adb: Minor reformatting.
7835 2011-08-04 Gary Dismukes <dismukes@adacore.com>
7837 * gnat_ugn.texi: Add sentence about the case of compile-time-detected
7840 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7842 * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.
7844 2011-08-04 Thomas Quinot <quinot@adacore.com>
7846 * sinfo.ads: Minor reformatting.
7848 2011-08-04 Emmanuel Briot <briot@adacore.com>
7850 * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error
7851 even if there is no location.
7853 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7855 * sem_res.adb, sem_ch4.adb: move check for restriction
7856 No_Task_Hierarchy to resolve_allocator.
7858 2011-08-04 Thomas Quinot <quinot@adacore.com>
7860 * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):
7861 This flag of N_Pragma nodes is not used, remove it as well as all of
7862 the associated circuitry.
7864 2011-08-04 Javier Miranda <miranda@adacore.com>
7866 * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the
7867 runtime check on duplicated externa tags
7868 * debug.adb Document switch -gnatdQ.
7870 2011-08-04 Gary Dismukes <dismukes@adacore.com>
7872 * a-fihema.ads: Minor typo fix.
7874 2011-08-04 Yannick Moy <moy@adacore.com>
7876 * sem_ch10.adb: Minor comment update.
7878 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7880 * einfo.adb: Update the node field usage to reflect the renaming of
7881 Return_Flag to Return_ Flag_Or_Transient_Decl.
7882 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.
7883 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.
7884 (Write_Field15_Name): Change Return_Flag to
7885 Return_Flag_Or_Transient_Decl.
7886 * einfo.ads: Rename node field Return_Flag to
7887 Return_Flag_Or_Transient_Decl. Update the associated comment and all
7888 occurrences in entities.
7889 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update
7890 associated Inline pragma.
7891 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update
7892 associated Inline pragma.
7893 * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New
7895 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to
7896 Return_Flag and Set_Return_Flag.
7897 * exp_ch7.adb (Process_Declarations): Add code to recognize hook
7898 objects generated for controlled transients declared inside an
7899 Exception_With_Actions. Update the calls to Return_Flag.
7900 (Process_Object_Declaration): Add code to add a null guard for hook
7901 objects generated for controlled transients declared inside an
7902 Exception_With_Actions. Update related comment.
7903 * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook
7904 objects generated for controlled transients declared inside an
7905 Exception_With_Actions. Update the calls to Return_Flag.
7906 * expander.adb (Expand): Add new case for N_Expression_With_Actions.
7908 2011-08-04 Ed Schonberg <schonberg@adacore.com>
7910 * sem_util.adb:(Wrong_Type): Improve error message on a one-element
7911 positional aggregate.
7913 2011-08-04 Vincent Celier <celier@adacore.com>
7915 * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma
7916 SLOC only for pragmas.
7918 2011-08-04 Emmanuel Briot <briot@adacore.com>
7920 * projects.texi: Minor typo fix.
7922 2011-08-04 Emmanuel Briot <briot@adacore.com>
7924 * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging
7925 on case-sensitive file systems.
7927 2011-08-04 Thomas Quinot <quinot@adacore.com>
7929 * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision
7930 nested in a disabled pragma.
7931 * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of
7932 enclosing pragma, if any, for X decisions.
7934 2011-08-04 Thomas Quinot <quinot@adacore.com>
7936 * sem_prag.adb: Minor reformatting.
7938 2011-08-04 Vincent Celier <celier@adacore.com>
7940 * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not
7941 allowed in no run time mode.
7943 2011-08-04 Vincent Celier <celier@adacore.com>
7945 * make.adb (Check): When -gnatc is used, check for the source file
7946 inside the ALI file with a canonical case file name.
7948 2011-08-04 Emmanuel Briot <briot@adacore.com>
7950 * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for
7951 overriding the separator.
7953 2011-08-04 Robert Dewar <dewar@adacore.com>
7955 * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,
7956 prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.
7958 2011-08-04 Robert Dewar <dewar@adacore.com>
7960 * gnat_rm.texi: Minor documentation fix for pragma Annotate.
7962 2011-08-04 Yannick Moy <moy@adacore.com>
7964 * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that
7965 'Result only appears in postcondition of function.
7967 2011-08-04 Thomas Quinot <quinot@adacore.com>
7969 * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated
7970 external tag, include the value of the external tag in the exception
7973 2011-08-04 Yannick Moy <moy@adacore.com>
7975 * sem_attr.adb (Result): modify error message for misplaced 'Result
7977 2011-08-04 Sergey Rybin <rybin@adacore.com>
7979 * gnat_rm.texi (pragma Annotate): Fix syntax description to make it
7980 clear that the second argument must be an identifier.
7982 2011-08-04 Thomas Quinot <quinot@adacore.com>
7984 * exp_ch9.adb (Build_Barrier_Function): When compiling with
7985 -fpreserve-control-flow, insert an IF statement on the barrier
7986 condition to ensure that a conditional branch instruction is generated.
7988 2011-08-04 Emmanuel Briot <briot@adacore.com>
7990 * prj-part.adb, prj.adb, prj.ads, prj-tree.ads
7991 (Processing_Flags.Ignore_Missing_With): new flag.
7993 2011-08-04 Emmanuel Briot <briot@adacore.com>
7995 * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of
7996 Source_List_File on case-insensitive systems where the file is actually
7997 on a case-sensitive file system (NFS,...).
7999 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8001 * sem_ch6.adb (Analyze_Function_Return): In a rare case where a
8002 function return contains a controlled [extension] aggregate and the
8003 return statement is not part of a handled sequence of statements, wrap
8004 the return in a block. This ensures that all controlled temporaries
8005 generated during aggregate resolution will be picked up by the
8006 finalization machinery.
8008 2011-08-04 Ed Schonberg <schonberg@adacore.com>
8010 * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized
8011 components, freeze type before resolution, to ensure that default
8012 initializations are present for all components.
8013 * sem_res.adb (Resolve_Actuals): the designated object of an
8014 accces-to-constant type is a legal actual in a call to an
8015 initialization procedure.
8017 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8019 * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and
8020 N_Unchecked_Type_Conversion to the possible containers of a renamed
8023 2011-08-04 Yannick Moy <moy@adacore.com>
8025 * par-ch13.adb (Aspect_Specifications_Present): recognize
8026 "with Identifier'Class =>" as an aspect, so that a meaningful warning
8027 is issued in Strict mode.
8028 * par.adb: Fix typos in comments.
8030 2011-08-04 Yannick Moy <moy@adacore.com>
8032 * sem_attr.adb (Result): modify error message to take into account Post
8033 aspect when compiling Ada 2012 (or newer) code.
8035 2011-08-04 Nicolas Roche <roche@adacore.com>
8037 * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to
8038 remove need for GCC exceptions.
8040 2011-08-04 Vincent Celier <celier@adacore.com>
8042 * makeutl.adb (Do_Complete): Call Debug_Output with the name of the
8043 project, not the source file name.
8044 * prj.adb (Find_Sources.Look_For_Sources): If the source has been
8045 excluded, continue looking. This excluded source will only be returned
8046 if there is no other source with the same base name that is not locally
8049 2011-08-04 Ed Schonberg <schonberg@adacore.com>
8051 * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is
8052 private and one of the operands is a real literal, use a qualified
8053 expression rather than a conversion which is not meaningful to the
8056 2011-08-04 Yannick Moy <moy@adacore.com>
8058 * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise
8059 corresponding aspect X'Class are allowed, proceed with analysis of the
8060 aspect instead of skipping it.
8062 2011-08-04 Tristan Gingold <gingold@adacore.com>
8064 * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads
8065 This will allow to have an Ada implementation for the subprogram.
8067 2011-08-04 Ed Schonberg <schonberg@adacore.com>
8069 * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a
8070 completion and aspects are present, apply them to the entity for the
8071 type which is currently the partial view, but which is the one that
8073 * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate
8074 applies to a partial view, indicate that the full view has predicates
8075 and delayed aspects.
8076 (Replace_Type_Reference): Handle properly predicates that apply to the
8077 full view of a private completion.
8079 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8081 * layout.adb (Layout_Type): For composite types, do not set Esize.
8082 * freeze.adb (Set_Small_Size): Remove test on alignment and do not
8084 (Size_Known): Look at the RM size of components instead of the Esize.
8085 (Freeze_Record_Type): Look at the RM size instead of the Esize to
8086 issue warning and activate Implicit_Packing.
8087 (Freeze_Entity): Likewise. Do not issue a warning for alias/atomic
8088 if the Esize is not known.
8089 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esize
8090 for elementary types only.
8091 (Analyze_Record_Representation_Clause): Look at the RM size instead
8092 of the Esize to issue errors.
8093 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it
8095 <E_Record_Type>: Look at the RM size instead of the Esize. Remove
8097 Look at the RM size instead of the Esize for types if the latter is
8099 (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.
8101 2011-08-04 Ed Schonberg <schonberg@adacore.com>
8103 * sem_type.adb: proper handling of equality not involving anonymous
8106 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8108 * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and
8109 Vis_Decls. When creating a library-level finalizer for a package spec,
8110 both the declaration and body of the finalizer are inserted either in
8111 the visible or private declarations of the package spec.
8113 2011-08-04 Javier Miranda <miranda@adacore.com>
8115 * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the
8116 use of the full-view of a type when invoking Is_Ancestor.
8117 * sem_type.adb (Is_Ancestor): For consistency, when the traversal of
8118 the full-view of private parents is requested, then use also the
8119 full-view of the parent of the first derivation.
8121 2011-08-04 Tristan Gingold <gingold@adacore.com>
8123 * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset
8124 instead of the locally imported procedure.
8125 * s-taprop-mingw.adb (Enter_Task): Ditto.
8126 * s-valrea.adb (Scan_Real): Ditto.
8127 * s-imgrea.adb (Set_Image_Real): Ditto.
8128 * s-flocon.ads: Make the package pure.
8130 2011-08-04 Thomas Quinot <quinot@adacore.com>
8132 * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.
8133 * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.
8134 * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):
8135 New subprogram, moved here from...
8136 * par.adb, par-ch5.adb (P_Statement_Name): ... here.
8137 * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any
8138 rewriting of the last argument into a procedure call statement here...
8139 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there
8142 2011-08-04 Thomas Quinot <quinot@adacore.com>
8144 * par_sco.adb: Minor reformatting.
8146 2011-08-04 Robert Dewar <dewar@adacore.com>
8148 * erroutc.adb: Minor reformatting.
8150 2011-08-04 Thomas Quinot <quinot@adacore.com>
8152 * par_sco.adb: Comment update.
8154 2011-08-04 Tristan Gingold <gingold@adacore.com>
8156 * s-flocon.ads: New file.
8157 * g-flocon.ads: Now a renaming of s-flocon.
8158 * Makefile.rtl: Add s-flocon.o
8160 2011-08-04 Javier Miranda <miranda@adacore.com>
8162 * exp_strm.adb (Build_Array_Input_Function): if the array type is
8163 constrained, do not attempt to build a subtype of it.
8165 2011-08-04 Yannick Moy <moy@adacore.com>
8167 * errout.ads Change comments: remove 'R'M as an example where quotes
8168 are needed; add ALFA as another case where quotes are not needed
8169 * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
8170 case where quotes are not needed.
8171 * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
8172 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
8173 Remove all occurrences of 'A'L'F'A
8175 2011-08-04 Ed Schonberg <schonberg@adacore.com>
8177 * sem_ch13.adb: check legality of invariant pragma.
8179 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8181 * bindgen.adb: Add comments.
8183 2011-08-04 Yannick Moy <moy@adacore.com>
8185 * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a
8187 * sem_prag.adb (Analyze_Pragma): record the pragma Annotate
8188 (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.
8190 2011-08-04 Robert Dewar <dewar@adacore.com>
8192 * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,
8193 osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,
8194 sem_ch13.adb, s-pooloc.adb: Minor reformatting.
8196 2011-08-04 Thomas Quinot <quinot@adacore.com>
8198 * s-pooloc.ads, s-pooglo.ads: Minor reformatting
8200 2011-08-04 Thomas Quinot <quinot@adacore.com>
8203 * s-pooloc.adb (Deallocate): Fix the case of deallocating the only
8206 2011-08-04 Robert Dewar <dewar@adacore.com>
8208 * einfo.ads, exp_ch4.adb: Minor reformatting.
8210 2011-08-04 Jerome Lambourg <lambourg@adacore.com>
8212 * back_end.ads (Gen_Or_Update_Object_File): Add more comments.
8214 2011-08-04 Ed Schonberg <schonberg@adacore.com>
8216 * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component
8217 type in all cases to compute list of primitive operations, because full
8218 view may be an itype that is not attached to the list of declarations.
8220 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8222 * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the
8223 library has already been finalized.
8224 (Gen_Adafinal_C): Likewise.
8225 (Gen_Adainit_Ada): Generate an early return if the library has
8226 already been elaborated.
8227 (Gen_Adainit_C): Likewise.
8228 (Gen_Output_File_Ada): Generate an elaboration flag.
8229 (Gen_Output_File_C): Likewise.
8231 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8233 * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of
8234 Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not
8235 built in the first place.
8236 (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr
8237 for CodePeer because Finalize_Address was not built to begin with.
8238 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.
8240 2011-08-04 Pascal Obry <obry@adacore.com>
8242 * adaint.c (__gnat_tmp_name): Use current process id to create temp
8243 filenames, this ensures unicity of filenames across processes.
8245 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8247 * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine
8248 Raise_Controlled to Raise_From_Controlled_Operation. Update the
8249 signature of Raise_From_Controlled_Operation by adding flag From_Abort.
8250 Add False as the actual to From_Abort in the generated call to
8251 Raise_From_Controlled_Operation.
8253 2011-08-04 Jerome Lambourg <lambourg@adacore.com>
8255 * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration
8256 so that the ali file name can be retrieved from outside of this package.
8257 * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method
8258 doing nothing in the general case, but used to update the object file
8259 timestamp if directly generated by the backend.
8260 * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set
8261 to a later time than the ali file one.
8263 2011-08-04 Yannick Moy <moy@adacore.com>
8265 * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram
8266 entities whose body contains an Annotate pragma which forces formal
8268 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
8269 sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to
8270 Mark_Non_ALFA_Subprogram to pass in a message and node.
8271 * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate
8272 (Forma_Proof, On) which sets the flag Formal_Proof_On in the
8273 surrounding subprogram.
8274 * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,
8275 Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked
8276 as not in ALFA is annotated with Formal_Proof being On, then an error
8277 is issued based on the additional parameters for message and node.
8278 * snames.ads-tmpl (Name_Formal_Proof): new name for annotation.
8279 * gcc-interface/Make-lang.in: Update dependencies.
8281 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8283 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate
8284 Finalize_Address when CodePeer is enabled.
8286 2011-08-04 Pascal Obry <obry@adacore.com>
8288 * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as
8289 the latter returns a pointer to a static buffer which is deallocated
8290 at the end of the routine.
8292 2011-08-04 Yannick Moy <moy@adacore.com>
8294 * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA
8295 after index creation; mark unconstrained base array type generated as
8296 being in/not in ALFA as well
8297 (Make_Index): mark subtype created as in/not in ALFA
8298 * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating
8299 over a loop as in/not in ALFA, depending on its type and form of loop
8302 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8304 * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort
8305 directly to False on .NET and JVM.
8307 2011-08-04 Yannick Moy <moy@adacore.com>
8309 * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove
8310 constraint that subtype must come from source code to be in ALFA, so
8311 that anonymous subtypes can be in ALFA too.
8313 2011-08-04 Yannick Moy <moy@adacore.com>
8315 * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of
8316 reference for ALFA mode.
8317 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make
8318 procedure public so as to use it from formal verification back-end.
8320 2011-08-04 Jerome Lambourg <lambourg@adacore.com>
8322 * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the
8323 invalid checks of the Parameter, making Remove_Switch not working
8326 2011-08-04 Arnaud Charlet <charlet@adacore.com>
8328 * targparm.ads: Update header: no run-time exception is needed on this
8331 2011-08-04 Vincent Celier <celier@adacore.com>
8333 * a-fihema.adb: Use System.IO instead of GNAT.IO
8335 2011-08-04 Thomas Quinot <quinot@adacore.com>
8337 * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types
8338 are forbidden in Compiler_Unit mode.
8340 2011-08-04 Robert Dewar <dewar@adacore.com>
8342 * sem_util.adb: Minor reformatting.
8344 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8346 * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for
8347 library-level finalizers.
8348 (Gen_Finalize_Library_C): Update the import string for library-level
8350 (Gen_Finalize_Library_Defs_C): Update the definition name of a
8351 library-level finalizer.
8352 * exp_ch7.adb: Remove with and use clauses for Stringt.
8353 (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,
8354 Spec_Decl. Add local variable Body_Id. The names of library-level
8355 finalizers are now manually fully qualified and are no longer external.
8356 A single name is now capable of servicing .NET, JVM and non-VM targets.
8357 Pragma Export is no longer required to provide visibility for the name.
8358 (Create_Finalizer_String): Removed.
8359 (New_Finalizer_Name): New routine which mimics New_..._Name.
8361 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8363 * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the
8364 elaboration counter to Standard_Short_Integer.
8365 * sem_util.adb (Build_Elaboration_Entity): Likewise.
8366 * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.
8367 (Gen_Elab_Externals_C): Likewise.
8369 2011-08-04 Ed Falis <falis@adacore.com>
8371 * system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
8372 system-vxworks-ppc.ads, system-vxworks-m68k.ads,
8373 system-vxworks-mips.ads, system-vxworks-x86.ads
8374 (Always_Compatible_Rep): set to False for all VxWorks targets.
8376 2011-08-04 Robert Dewar <dewar@adacore.com>
8378 * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,
8379 makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,
8380 exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,
8381 exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,
8382 exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,
8383 sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,
8384 sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:
8385 Minor reformatting and code reorganization.
8387 2011-08-04 Emmanuel Briot <briot@adacore.com>
8389 * projects.texi: Added doc for aggregate projects.
8391 2011-08-04 Emmanuel Briot <briot@adacore.com>
8393 * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):
8394 Add support for overriding the Project_Path in aggregate projects.
8396 2011-08-04 Robert Dewar <dewar@adacore.com>
8398 * a-cofove.ads: Minor reformatting.
8400 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8402 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment
8403 on the generated code.
8404 (Build_Finalize_Statements): Update the comment on the generated code.
8405 (Build_Initialize_Statements): Update the comment on the generated code.
8406 (Build_Object_Declarations): Add local variable Result. The object
8407 declarations are now built in sequence.
8408 * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and
8411 2011-08-04 Robert Dewar <dewar@adacore.com>
8413 * checks.adb, alfa.adb, alfa.ads: Minor reformatting.
8415 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8417 * einfo.ads (Elaboration_Entity): Document new definition and use.
8418 (Elaboration_Entity_Required): Adjust to above change.
8419 * exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
8420 * exp_ch12.adb: And with and use for Snames.
8421 (Expand_N_Generic_Instantiation): Test 'Elaborated attribute.
8422 * exp_util.adb (Set_Elaboration_Flag): Likewise.
8423 * sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.
8424 <Check_Unit_Name>: Deal with N_Expanded_Name.
8425 <Attribute_Elaborated>: Extend to all unit names.
8426 * sem_elab.adb: And with and use for Uintp.
8427 (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.
8428 * sem_util.ads (Build_Elaboration_Entity): Adjust comment.
8429 * sem_util.adb (Build_Elaboration_Entity): Change type to Integer.
8430 * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken
8431 from Gen_Adainit_Ada.
8432 (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.
8433 (Gen_Adafinal_Ada): Remove redundant test. In the non-main program
8434 case, do not call System.Standard_Library.Adafinal; instead call
8435 finalize_library if needed.
8436 (Gen_Adafinal_C): Likewise.
8437 (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the
8438 non-main program case.
8439 (Gen_Adainit_C): Generate a couple of external declarations here.
8440 In the main program case, set SSL.Finalize_Library_Objects.
8441 (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.
8442 (Gen_Elab_Calls_C): Likewise.
8443 (Gen_Finalize_Library_Ada): Likewise. Skip SAL interface units.
8444 (Gen_Finalize_Library_C): Likewise. Generate a full function.
8445 (Gen_Main_C): Put back call to Ada_Final and don't finalize library
8447 (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final
8448 if -a is specified. Call Gen_Elab_Externals_Ada. Move around call to
8450 (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final
8451 if -a is specified. Call Gen_Elab_Externals_C. Remove useless couple
8452 of external declarations. Call Gen_Finalize_Library_C.
8454 2011-08-04 Emmanuel Briot <briot@adacore.com>
8456 * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,
8457 Compute_Compilation_Phases): new subprogram.
8458 (Builder_Data, Builder_Project_Tree_Data): new subprogram and type
8459 The number of mains as well as the various compilation phases that
8460 need to be run are now project tree specific, since various
8461 aggregated trees might have different requirements. In particular,
8462 they do not all require bind or link phases.
8464 2011-08-04 Emmanuel Briot <briot@adacore.com>
8466 * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb
8467 (Project_Tree_Appdata): New type.
8468 It is now possible to associate application-specific data to a project
8469 tree. In particular, this is used in the gprbuild builder to avoid a
8470 number of global tables and htables, especially now that there can be
8471 several project trees loaded at once because of aggregate projects.
8472 (Debug_Name): new procedure.
8473 * projects.texi: Clarify syntax of "**" for Source_Dirs
8475 2011-08-03 Emmanuel Briot <briot@adacore.com>
8477 * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts
8478 the "roots" for a main.
8479 (Fill_From_Project): add support for aggregate projects. Main units
8480 in aggregated projects are now automatically added in the list of
8481 files to build (although this fails later on in gprbuild, because
8482 these files are not using the root proejct tree, so this needs
8484 * gcc-interface/Make-lang.in: Update dependencies.
8486 2011-08-03 Yannick Moy <moy@adacore.com>
8488 * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean
8489 conditional expression in ALFA.
8490 * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean
8491 expressions as not in ALFA.
8493 2011-08-03 Robert Dewar <dewar@adacore.com>
8495 * a-cofove.adb: Minor reformatting.
8497 2011-08-03 Emmanuel Briot <briot@adacore.com>
8499 * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads
8500 (Insert_Project_Sources, Insert_withed_Sources_For): moved from the
8502 These packages are more logically placed in the Queue package, since
8503 they manipulate the queue. It is also likely that they can be adapted
8504 for gnatmake, thus sharing more code.
8505 (Finish_Program, Fail_Program): moved from the gprbuild sources, so
8506 that we could move the above.
8508 2011-08-03 Emmanuel Briot <briot@adacore.com>
8510 * errutil.adb (Finalize): clean up the list of error messages on exit.
8511 Calling this subprogram multiple times will no longer show duplicate
8512 error messages on stderr.
8514 2011-08-03 Emmanuel Briot <briot@adacore.com>
8516 * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter
8517 Getopt_Switches when we have already define a command line
8520 2011-08-03 Yannick Moy <moy@adacore.com>
8522 * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not
8523 in ALFA. Instead, they are considered as assertions to prove.
8524 * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such
8525 nodes as not in ALFA. Instead, include conditional expressions in ALFA
8526 if they have no ELSE part, or if they occur in pre- and postconditions,
8527 where the Condition cannot have side-effects in ALFA
8528 (Analyze_Membership_Op): do not mark such nodes as not in ALFA
8529 (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.
8530 Instead, include type conversion between scalar types in ALFA.
8531 * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA
8532 if-and-only-if its type is in ALFA.
8534 2011-08-03 Thomas Quinot <quinot@adacore.com>
8536 * scos.adb, get_scos.adb, put_scos.adb
8537 New code letter for decisions: G (entry guard)
8539 (Traverse_Subprogram_Body): Rename to...
8540 (Traverse_Subprogram_Or_Task_Body): New subrpogram.
8541 (Traverse_Protected_Body): New subprogram
8542 (Traverse_Declarations_Or_Statements): Add traversal of task bodies,
8543 protected bodies and entry bodies.
8545 2011-08-03 Yannick Moy <moy@adacore.com>
8547 * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure
8548 entities with get/set subprograms, which is set on procedure entities
8549 generated by the compiler for a postcondition.
8550 * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures
8551 * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the
8552 entity for a declaration
8553 (Get_Unique_Entity_For_Decl): new function returning an entity which
8554 represents a declaration, so that matching spec and body have the same
8557 2011-08-03 Robert Dewar <dewar@adacore.com>
8559 * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,
8560 a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting
8562 2011-08-03 Yannick Moy <moy@adacore.com>
8564 * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram
8565 library-level because retriction No_Implicit_Dynamic_Code in the
8566 front-end prevents its definition as a local subprogram
8567 (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,
8568 for reuse in other contexts
8569 (Traverse_Declarations_Or_Statements,
8570 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
8571 Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these
8572 procedures take a callback parameter to be called on all declarations
8574 (Traverse_All_Compilation_Units): new generic function to traverse a
8575 compilation unit and call a callback parameter on all declarations
8577 2011-08-03 Javier Miranda <miranda@adacore.com>
8579 * sem_prag.adb (Process_Interface_Name): Allow duplicated export names
8580 in Java since they are always enclosed in a namespace that
8581 differentiates them, and overloaded entities are supported by the VM.
8583 2011-08-03 Ed Schonberg <schonberg@adacore.com>
8585 * checks.adb (Determine_Range): If a computed bound of an operation is
8586 outside the range of the base type of the expression, and overflow
8587 checks are enabled, the result is unknown and cannot be used for any
8588 subsequent constant folding.
8589 * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are
8590 unknown, so is the result of the comparison.
8592 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8594 * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal
8595 From_Abort. When finalization was triggered by an abort, propagate
8596 Standard'Abort_Signal rather than Program_Error.
8597 * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal
8599 * a-except.adb (Raise_From_Controlled_Operation): Add new formal
8600 From_Abort. When finalization was triggered by an abort, propagate
8601 Standard'Abort_Signal rather than Program_Error.
8602 * a-except.ads:(Raise_From_Controlled_Operation): Add new formal
8604 * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable
8605 Abort_Id. Update the calls to Build_Object_Declarations and
8606 Build_Raise_Statement to include Abort_Id.
8607 (Build_Adjust_Statements): New local variable Abort_Id. Update the
8608 calls to Build_Object_Declarations and Build_Raise_Statement to include
8610 (Build_Finalize_Statements): New local variable Abort_Id. Update the
8611 calls to Build_Object_Declarations and Build_Raise_Statement to include
8613 (Build_Components): Create an entity for Abort_Id when exceptions are
8614 allowed on the target.
8615 (Build_Finalizer): New local variable Abort_Id.
8616 (Build_Initialize_Statements): New local variable Abort_Id. Update the
8617 calls to Build_Object_Declarations and Build_Raise_Statement to include
8619 (Build_Object_Declarations): Add new formal Abort_Id. Create the
8620 declaration of flag Abort_Id to preserve the original abort status
8621 before finalization code is executed.
8622 (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to
8623 runtime routine Raise_From_Controlled_Operation.
8624 (Create_Finalizer): Update the call to Build_Raise_Statement to include
8625 Abort_Id. Update the call to Build_Object_Declarations to include
8626 Abort_Id. Update the layout of the finalizer body.
8627 (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.
8628 (Process_Transient_Objects): New local variable Abort_Id. Remove the
8629 clunky code to create all flags and objects related to
8630 exception propagation and replace it with a call to
8631 Build_Object_Declarations. Update the call to Build_Raise_Statement to
8633 * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.
8634 Add new formal Abort_Id and associated comment on its use.
8635 (Build_Raise_Statement): Add new formal Abort_Id and associated comment
8637 * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.
8638 Remove the clunky code to create all flags and objects related to
8639 exception propagation and replace it with a call to
8640 Build_Object_Declarations. Update the call to Build_Raise_Statement.
8642 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
8644 * s-tassta.adb: Fix minor typos.
8646 2011-08-03 Robert Dewar <dewar@adacore.com>
8648 * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,
8649 lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.
8651 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8653 * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion
8654 to packages. This ensures that the finalizer body will not end up
8655 inside the freeze node.
8656 (Process_Declarations): Add code to detect whether a freeze node has a
8657 nested finalization collection.
8659 2011-08-03 Pascal Obry <obry@adacore.com>
8661 * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.
8662 (Current_Session): Return a not null access to Session_Type.
8663 (Default_Session): Likewise.
8665 2011-08-03 Robert Dewar <dewar@adacore.com>
8667 * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,
8668 exp_ch3.adb, exp_ch3.ads: Minor reformatting.
8670 2011-08-03 Pascal Obry <obry@adacore.com>
8672 * g-awk.ads: Minor comment fix.
8674 2011-08-03 Sergey Rybin <rybin@adacore.com>
8676 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
8677 the tree structure related to discriminant constraints.
8678 Original_Discriminant cannot be used any more for computing the
8679 defining name for the reference to a discriminant.
8681 2011-08-03 Ed Schonberg <schonberg@adacore.com>
8683 * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the
8684 function is not visibly tagged, this is not a dispatching call and
8685 therfore is not Tag_Indeterminate, even if the function is marked as
8686 dispatching on result.
8688 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8690 * exp_ch13.adb: Add with and use clauses for Restrict and Rident.
8691 (Expand_N_Free_Statement): Add a guard to protect against run-times
8692 which do not support controlled types.
8693 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
8694 against run-times which do not support controlled types.
8695 * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
8696 against run-times which do not support controlled types.
8697 * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
8698 against run-times which do not support controlled types.
8699 * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
8700 protect against run-times which do not support controlled types.
8702 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
8704 * exp_intr.adb: Put back with and use clauses for Exp_Ch11.
8705 (Expand_Unc_Deallocation): Expand the AT_END handler at the very end.
8707 2011-08-03 Ed Schonberg <schonberg@adacore.com>
8709 * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
8710 modified in the source, to prevent spurious warnings when compiling
8713 2011-08-03 Thomas Quinot <quinot@adacore.com>
8715 * a-except-2005.adb: Minor reformatting.
8717 2011-08-03 Ed Schonberg <schonberg@adacore.com>
8719 * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
8720 is a renaming declaration in the private part of a package, do not emit
8721 a warning that the with_clause could be moved because the renaming may
8722 be used in the body or in a child unit.
8724 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8726 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
8727 Propagate the Comes_From_Source attribute from the original return
8728 object to the renaming.
8730 2011-08-03 Jose Ruiz <ruiz@adacore.com>
8732 * exp_ch7.adb (Build_Raise_Statement): Do not call
8733 Raise_From_Controlled_Operation when this routine is not present in
8734 the run-time library.
8735 (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
8736 libraries (Ravenscar), tasks are non-terminating, and protected objects
8737 and tasks can only appear at library level, so we do not want
8738 finalization of protected objects nor tasks.
8739 * exp_intr.adb: Minor clarification in comment.
8740 bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
8741 Gen_Output_File_C): Remove references to finalization of library-level
8742 objects when using restricted run-time libraries.
8744 2011-08-03 Ed Schonberg <schonberg@adacore.com>
8746 * sem_ch3.adb (Build_Discriminant_Constraints): Set
8747 Original_Discriminant only if the parent type is a generic formal.
8749 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8751 * exp_ch13.adb: Add with and use clause for Targparm;
8752 (Expand_N_Free_Statement): Prevent the generation of a custom
8753 Deallocate on .NET/JVM targets since this requires pools and address
8755 * exp_ch4.adb (Expand_Allocator_Expression): When compiling for
8756 .NET/JVM targets, attach the newly allocated object to the access
8757 type's finalization collection. Do not generate a call to
8758 Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
8759 exist in the runtime.
8760 (Expand_N_Allocator): When compiling for .NET/JVM targets, do not
8761 create a custom Allocate for object that do not require initialization.
8762 Attach a newly allocated object to the access type's finalization
8763 collection on .NET/JVM.
8764 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
8765 assignment of controlled types on .NET/JVM. The two hidden pointers
8766 Prev and Next and stored and later restored after the assignment takes
8768 * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
8769 kludge for .NET/JVM to recognize a particular piece of code coming from
8770 Heap_Management and change the call to Finalize into Deep_Finalize.
8771 * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
8772 finalization collections on .NET/JVM only for types derived from
8773 Controlled. Separate the association of storage pools with a collection
8774 and only allow it on non-.NET/JVM targets.
8775 (Make_Attach_Call): New routine.
8776 (Make_Detach_Call): New routine.
8777 (Process_Object_Declarations): Suppress the generation of
8778 build-in-place return object clean up code on .NET/JVM since it uses
8780 * exp_ch7.ads (Make_Attach_Call): New routine.
8781 (Make_Detach_Call): New routine.
8782 * exp_intr.adb Add with and use clause for Targparm.
8783 (Expand_Unc_Deallocation): Detach a controlled object from a collection
8784 on .NET/JVM targets.
8785 * rtsfind.ads: Add entries RE_Attach, RE_Detach and
8786 RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
8787 * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
8788 names used in finalization.
8790 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8792 * a-fihema.adb: Add with and use clauses for System.Soft_Links.
8793 (Attach, Detach): Lock the current task when chaining an object onto a
8796 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8798 * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
8799 Rewritten to create the message strings when the exception is not
8800 raised by an abort during finalization.
8801 * a-except.ads, a-except-2005.ads: Add pragma Export for procedure
8802 Raise_From_Controlled_Operation and update its associated comment.
8803 * a-fihema.ads, a-fihema.adb: New GNAT unit.
8804 Ada.Finalization.Heap_Management provides key functionality
8805 associated with controlled objects on the heap, their creation,
8806 finalization and reclamation. Type Finalization_Collection is
8807 effectively a wrapper which sits ontop of a storage pool and performs
8808 all necessary bookkeeping for all the objects it contains. Each
8809 access-to-controlled or access-to-class-wide type receives a collection
8810 as part of its expansion. The compiler generates buffer code and
8811 invokes Allocate / Deallocate to create and destroy allocated
8813 * a-finali.adb ("="): Removed.
8814 * a-finali.ads ("="): Removed. Controlled types no longer carry hidden
8815 fields Prev and Next.
8816 * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
8817 A library unit with at least one controlled object on the library level
8818 has a special finalizer which is invoked by the binder. To signal this,
8819 ali files carry field PF.
8820 * ali.ads: New field in type Unit_Record called Has_Finalizer. Add
8821 associated comment on field usage.
8822 * a-tags.adb (Get_RC_Offset): Removed.
8823 (Needs_Finalization): New routine.
8824 * a-tags.ads: Update the structure of the GNAT dispatch tables.
8825 Dispatch tables now carry field Needs_Finalization which provides
8826 runtime indication whether a type is controlled or has controlled
8827 components or both. Remove field RC_Offset.
8828 (Get_RC_Offset): Removed along with its associated pragma Export.
8829 Since tagged types with controlled components no longer carry hidden
8830 field _controller, the special mechanism to retrieve its location is no
8832 (Needs_Finalization): New routine.
8833 * atree.ads, atree.adb (Elist24): New routine.
8834 (Set_Elist24): New routine.
8835 * atree.h: Add a define clause for Elist24.
8836 * bindgen.adb New library-level variable Lib_Final_Built.
8837 (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
8838 presence of a VM target, the routine generates calls to the proper
8839 library finalization routine.
8840 (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
8841 targets. Set the correct library finalization routine depending on
8842 whether the library has controlled objects or this is a VM compilation.
8843 (Gen_Finalize_Library_Ada): New routine. This procedure generates calls
8844 to library-level finalizers of compiled units in reverse order of
8845 elaboration. It also produces exception management code and reraises a
8846 potential exception after all units have been finalized.
8847 (Gen_Finalize_Library_C): New routine. This procedure generates calls to
8848 library-level finalizers of compiled units in reverse order of
8850 (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
8851 definitions of all library-level finalizers available to the compilation
8852 (Gen_Main_Ada): Directly call Adafinal which now contails all target
8854 (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
8855 System.Standard_Library.Adafinal directly. If the library needs
8856 finalization actions, create the sequence of finalization calls.
8857 (Gen_Output_File_Ada): Alphabetize local variables and constants.
8858 Generate a with clause for System.Soft_Links when compiling for a VM.
8859 Remove the code which imports System.Standard_Library.Adafinal as
8860 Do_Finalize. Generate the library finalization routine.
8861 (Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
8862 If the library needs finalization actions, create all the definitions
8863 of library- level finalizers.
8864 (Has_Finalizer): New routine. Determines whether at least one compiled
8865 unit has a library-level finalizer.
8866 Add type Qualification_Mode.
8867 (Set_Unit_Name): Add a formal which controls the replacement of a dot.
8868 * einfo.adb: New usage of field 15 as Return_Flag.
8869 Remove Finalization_Chain_Entity from the usages of field 19.
8870 Remove Associated_Final_Chain from the usages of field 23.
8871 New usage of field 23 as Associated_Collection.
8872 New usage of field 24 as Finalizer.
8873 New usage of flag 252 as Is_Processed_Transient.
8874 (Associated_Final_Chain): Removed.
8875 (Associated_Collection): New routine.
8876 (Finalization_Chain_Entity): Removed.
8877 (Finalizer): New routine.
8878 (Is_Finalizer): New routine.
8879 (Is_Processed_Transient): New routine.
8880 (Return_Flag): New routine.
8881 (Set_Associated_Final_Chain): Removed.
8882 (Set_Associated_Collection): New routine.
8883 (Set_Finalization_Chain_Entity): Removed.
8884 (Set_Finalizer): New routine.
8885 (Set_Is_Processed_Transient): New routine.
8886 (Set_Return_Flag): New routine.
8887 (Write_Entity_Flags): Include Is_Processed_Transient to the list of
8889 (Write_Field8_Name): Alphabetize the output.
8890 (Write_Field11_Name): Alphabetize the output.
8891 (Write_Field12_Name): Alphabetize the output.
8892 (Write_Field13_Name): Alphabetize the output.
8893 (Write_Field14_Name): Alphabetize the output.
8894 (Write_Field15_Name): Alphabetize the output.
8895 (Write_Field16_Name): Alphabetize the output.
8896 (Write_Field17_Name): Alphabetize the output.
8897 (Write_Field18_Name): Alphabetize the output.
8898 (Write_Field19_Name): Alphabetize the output. Remove the output of
8899 Finalization_Chain_Entity.
8900 (Write_Field20_Name): Alphabetize the output.
8901 (Write_Field21_Name): Alphabetize the output.
8902 (Write_Field22_Name): Alphabetize the output.
8903 (Write_Field23_Name): Alphabetize the output. Remove the output of
8904 Associated_Final_Chain. Add output for Associated_Collection.
8905 (Write_Field24_Name): Alphabetize the output.
8906 (Write_Field25_Name): Add output for Finalizer.
8907 (Write_Field26_Name): Alphabetize the output.
8908 (Write_Field27_Name): Alphabetize the output.
8909 (Write_Field28_Name): Alphabetize the output.
8910 * einfo.ads: Add new field description for Associated_Collection and
8912 Remove Associated_Final_Chain and its uses in nodes.
8913 Remove Finalization_Chain_Entity and its uses in nodes.
8914 Add new field description for Finalizer and its uses in nodes.
8915 Add new synthesized attribute Is_Finalizer.
8916 Add new flag description for Is_Processed_Transient and its uses in
8918 Add new field description for Return_Flag and its uses in nodes.
8919 (Associated_Final_Chain): Removed along with its pragma Inline.
8920 (Associated_Collection): New routine and pragma Inline.
8921 (Finalization_Chain_Entity): Removed along with its pragma Inline.
8922 (Finalizer): New routine and pragma Inline.
8923 (Is_Finalizer): New routine and pragma Inline.
8924 (Is_Processed_Transient): New routine and pragma Inline.
8925 (Return_Flag): New routine and pragma Inline.
8926 (Set_Associated_Final_Chain): Removed along with its pragma Inline.
8927 (Set_Associated_Collection): New routine and pragma Inline.
8928 (Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
8929 (Set_Finalizer): New routine and pragma Inline.
8930 (Set_Is_Processed_Transient): New routine and pragma Inline.
8931 (Set_Return_Flag): New routine and pragma Inline.
8932 * exp_aggr.adb: Alphabetize subprograms.
8933 (Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
8934 (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
8935 associated comments. Remove local variables External_Final_List and
8937 Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
8938 Ancestor. Remove the retrieval of finalization lists. Update the call to
8940 (Convert_Aggr_In_Allocator): Remove the retrieval of finalization
8941 lists. Update the call to Late_Expansion.
8942 (Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
8943 (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
8944 (Gen_Assign): Remove the retrieval of the finalization list used to
8945 build the assignment. Update the calls to Make_Init_Call and
8947 (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
8948 Remove the mechanism to determine attachment levels and finalization
8949 list retrieval. Remove the processing for coextensions.
8950 (Init_Controller): Removed. Controllers no longer exist.
8951 (Late_Expansion): Remove formals Flist and Obj along with their
8952 associated comments. Update the calls to Build_Record_Aggr_Code and
8953 Build_Array_Aggr_Code.
8954 * exp_ch13.adb (Expand_N_Free_Statement): New routine.
8955 (Expand_N_Freeze_Entity): Add special processing for finalizers which
8956 appear in entry bodies, protected subprograms and task bodies.
8957 * exp_ch13.ads (Expand_N_Free_Statement): New routine.
8958 * exp_ch3.adb (Add_Final_Chain): Removed.
8959 (Build_Array_Init_Proc): Alphabetize local variables.
8960 (Build_Assignment): Alphabetize local variables. Update the call to
8962 (Build_Class_Wide_Master): Rename local variables to better reflect
8964 (Build_Discriminant_Assignments): Code reformatting.
8965 (Build_Init_Call_Thru): Code reformatting.
8966 (Build_Init_Procedure): Code reformatting. Generate a special version
8967 of Deep_Finalize which is capable of finalizing all initialized
8968 components and ignore the rest.
8969 (Build_Init_Statements): Rename local variables to better reflect their
8971 Reimplement the mechanism to include the creation and update of an index
8972 variable called a "counter". It is used as a bookmark for tracing
8973 initialized and non-initialized components.
8974 (Build_Initialization_Call): Remove local variable Controller_Typ.
8975 Alphabetize all local variables. Remove the initialization of the
8976 record controller and update the call to Make_Init_Call.
8977 (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
8978 New local variable Counter.
8979 (Constrain_Array): Alphabetize.
8980 (Expand_Freeze_Array_Type): Create a collection instead of a
8982 (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
8983 Finalize_Address which is used in conjunction with allocated controlled
8985 (Expand_N_Object_Declaration): Remove the creation of a finalization
8986 list for anonymous access types. Update the calls to Make_Init_Call and
8988 (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
8989 retrieval of finalization lists. Remove the expansion of the record
8990 controller. Create TSS primitive Finalize_Address used in conjunction
8991 with controlled objects on the heap. Create finalization collections
8992 for access-to-controlled record components.
8993 (Expand_Record_Controller): Removed.
8994 (Freeze_Type): Remove the freezing of record controllers. Freezing of
8995 class-wide types now requires additional processing. Create
8996 finalization collections for access-to-controlled types.
8997 (Increment_Counter): New routine.
8998 (Make_Counter): New routine.
8999 (Make_Eq_If): Remove the mention of Name_uController.
9000 (Make_Predefined_Primitive_Specs): There is no longer need to skip
9001 types coming from System.Finalization_Root.
9002 (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
9003 (Predefined_Primitive_Bodies): There is no longer need to skip types
9004 coming from System.Finalization_Root.
9005 (Stream_Operation_OK): Do not generate stream routines for
9006 type Ada.Finalization.Heap_Management.Finalization_Collection.
9007 * exp_ch3.ads: Alphabetize subprograms.
9008 * exp_ch4.adb: Remove with and use clause for Sem_Ch8.
9009 Add with and use clause for Lib.
9010 (Complete_Coextension_Finalization): Removed.
9011 (Complete_Controlled_Allocation): New routine. Create a finalization
9012 collection for anonymous access-to-controlled types. Create a custom
9013 Allocate which interfaces with the back end and the machinery in
9015 (Expand_Allocator_Expression): Add necessary calls to
9016 Complete_Controlled_Allocation. Remove the retrieval of finalization
9017 lists. Update the calls to Make_Adjust_Call. Generate a call to
9018 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
9019 the associated collection.
9020 (Expand_N_Allocator): Remove the processing for dynamic coextensions.
9021 Code clean up. Remove the retrieval of finalization lists and
9023 Update the call to Make_Init_Call. Generate a call to
9024 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
9025 the associated collection.
9026 (Get_Allocator_Final_List): Removed. Finalization lists are not
9028 (Suitable_Element): Remove the mention of Name_uController.
9029 * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
9030 (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
9031 the left hand side, carry out the assignment and adjust the left hand
9033 * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
9034 (Add_Collection_Actual_To_Build_In_Place_Call): New routine.
9035 (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
9036 BIP_Collection and BIPcollection.
9037 (Build_Heap_Allocator): New routine used to allocate the return object
9038 of a build-in-place function onto a collection.
9039 (Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
9040 (Expand_Call): Do not replace direct calls to Deep routines with their
9042 (Expand_N_Extended_Return_Statement): Give all variables shorter names
9043 and update their occurrences. Add a special return flag to monitor the
9044 [ab]normal execution of the function. The flag is set right before the
9046 Rewrite the mechanism used to allocate a build-in-place return object
9047 on the heap or on a storage pool.
9048 (Is_Direct_Deep_Call): New routine.
9049 (Make_Build_In_Place_Call_In_Allocator): Add a collection to a
9050 build-in-place function call instead of a final list. Build a call to
9051 Set_Finalize_Address_Ptr to decorate the associated collection.
9052 (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
9053 order to name the build-in-place function call's result for later
9054 finalization. Add a collection to a build-in-place function call
9055 instead of a final list.
9056 (Make_Build_In_Place_Call_In_Assignment): Add a collection to a
9057 build-in-place function call instead of a final list. Remove the code
9058 which moves one final list and transforms it into the actual in a
9059 nested build-in-place call.
9060 (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
9061 build-in-place function call instead of a final list.
9062 (Move_Final_List): Removed.
9063 (Needs_BIP_Collection): New routine.
9064 (Needs_BIP_Final_List): Removed.
9065 * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
9066 enumeration type BIP_Formal_Kind.
9067 Update the related comment.
9068 (Needs_BIP_Collection): New routine.
9069 (Needs_BIP_Final_List): Removed.
9070 * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
9071 and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
9072 majority of subprograms in this unit. Add Name_Finalize_Address to
9073 array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
9074 (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
9075 statements for an array type.
9076 (Build_Adjust_Statements): Create the adjust statements for a record
9078 (Build_Cleanup_Statements): New routine. A procedure which given any
9079 construct containing asynchronous calls, references to _master, or is a
9080 task body, a task allocation or a protected body produces the necessary
9081 runtime calls to clean up these constructs.
9082 (Build_Exception_Handler): New routine.
9083 (Build_Final_List): Removed.
9084 (Build_Finalization_Collection): New routine. A core procedure which
9085 creates a collection to service heap allocated controlled objects
9086 associated with an access-to-controlled type.
9087 (Build_Finalize_Statements): Create the finalization statements for a
9089 (Build_Finalizer): New routine. A core procedure which given any
9090 construct with declarations and/or statements detects all objects which
9091 need any type of clean up (controlled objects, protected objects) and
9092 generates all necessary code to clean up the said objects in the proper
9094 (Build_Finalizer_Call): New routine.
9095 (Build_Initialize_Statements): Create the initialization statements for
9096 an array type. The generated routine contains code to finalize partially
9098 (Build_Object_Declarations): New routine.
9099 (Build_Raise_Statement): New routine.
9100 (Clean_Simple_Protected_Objects): Removed.
9101 (Controller_Component): Removed.
9102 (Enclosing_Function): New routine.
9103 (Expand_Cleanup_Actions): Create a finalizer for a construct which has
9104 either declarations or statements or both.
9105 (Expand_N_Package_Body): Create a finalizer for a non-generic package.
9106 (Expand_N_Package_Declaration): Create a finalizer for a non-generic
9108 (Find_Final_List): Removed.
9109 (Global_Flist_Ref): Removed.
9110 (In_Finalization_Root): Removed.
9111 (Insert_Actions_In_Scope_Around): Determine the range of the transient
9112 scope in terms of tree nodes. Process all transient variables within
9114 (Make_Adjust_Call): Rewritten. There is no longer an attach call
9115 generated after the adjust.
9116 (Make_Attach_Call): Removed.
9117 (Make_Call): New routine.
9118 (Make_Clean): Removed.
9119 (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
9121 (Make_Deep_Proc): Rewritten to generate the new profile signature used
9123 (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
9125 (Make_Final_Call): Modified to simply create a call to either
9126 Deep_Finalize or Finalize.
9127 (Make_Finalize_Address_Body): New routine.
9128 (Make_Finalize_Address_Stmts): New routine. A function which produces
9129 TSS primitive Finalize_Address used in conjunction with heap allocated
9131 (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
9132 (Make_Init_Call): Rewritten. There is no longer an attach call
9133 generated after initialization.
9134 (Make_Local_Deep_Finalize): New routine.
9135 (Make_Set_Finalize_Address_Ptr_Call): New routine.
9136 (Make_Transient_Block): Remove the finalization list retrieval and
9138 (Needs_Finalization): Moved to Exp_Util.
9139 (Parent_Field_Type): New routine.
9140 (Preprocess_Components): New routine.
9141 (Process_Transient_Objects): New routine.
9142 (Wrap_HSS_In_Block): New routine.
9143 (Wrap_Transient_Declaration): Remove finalization list management and
9144 controller insertion.
9145 (Wrap_Transient_Expression): Code reformatting.
9146 (Wrap_Transient_Statement): Code reformatting.
9147 * exp_ch7.ads (Build_Final_List): Removed.
9148 (Build_Finalization_Collection): New routine.
9149 (Build_Raise_Statement): New routine.
9150 (Controller_Component): Removed.
9151 (Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
9152 (Find_Final_List): Removed.
9153 (In_Finalization_Root): Removed.
9154 (Is_Simple_Protected_Type): Update related comment.
9155 (Make_Adjust_Call): New parameter profile and associated comments.
9156 (Make_Attach_Call): Removed.
9157 (Make_Final_Call): New parameter profile and associated comments.
9158 (Make_Finalize_Address_Body): New routine.
9159 (Make_Init_Call): New parameter profile and associated comments.
9160 (Make_Local_Deep_Finalize): New routine.
9161 (Make_Set_Finalize_Address_Ptr_Call): New routine.
9162 (Needs_Finalization): Moved to Exp_Util.
9163 * exp_ch9.adb (Add_Object_Pointer): Code reformatting.
9164 (Expand_N_Protected_Body): Remove the handling of finalization lists.
9165 (Find_Protection_Type): Moved to Exp_Util.
9166 * exp_disp.adb: Remove with and use clauses for Exp_Ch7.
9167 (Make_DT): Update sequence of dispatch table initialization. Remove the
9168 initialization of field RC_Offset. Add initialization of field Needs_
9170 * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
9171 Reimplement how an object is first finalized, then deallocated.
9172 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
9174 * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
9175 Register TSS_Finalize_Address with type TSS_Names.
9176 * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
9177 procedure provides the interface between an allocation / deallocation
9178 and the support machinery in Ada.Finalization.Heap_Management.
9179 (Find_Init_Call): Code reformatting.
9180 (Find_Init_Call_In_List): Code reformatting.
9181 (Find_Protection_Type): Moved from Exp_Ch9.
9182 (Find_Prim_Op): Reimplement to add preference of recovered primitive.
9183 (Has_Controlled_Coextensions): Removed.
9184 (Has_Controlled_Objects): New routine.
9185 (In_Library_Level_Package_Body): New routine.
9186 (Insert_Action_After): New routine.
9187 (Is_Finalizable_Transient): New routine. This predicate determines
9188 whether an object declaration is one of the many variants of controlled
9190 (Is_Null_Access_BIP_Func_Call): New routine.
9191 (Is_Non_BIP_Func_Call): New routine.
9192 (Is_Related_To_Func_Return): New routine.
9193 (Needs_Finalization): Moved from Exp_Ch7.
9194 * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
9195 (Find_Protection_Type): Moved from Exp_Ch9.
9196 (Has_Controlled_Coextensions): Removed.
9197 (Has_Controlled_Objects): New routine.
9198 (In_Library_Level_Package_Body): New routine.
9199 (Insert_Action_After): New routine.
9200 (Is_Finalizable_Transient): New routine.
9201 (Is_Null_Access_BIP_Func_Call): New routine.
9202 (Is_Non_BIP_Func_Call): New routine.
9203 (Is_Related_To_Func_Return): New routine.
9204 (Needs_Finalization): Moved from Exp_ch7.
9205 * expander.adb (Expand): Add a case for N_Free_Statement.
9206 * freeze.adb (Freeze_All): Replace the generation of a finalization
9207 list with a collection for access-to-controlled types.
9208 (Freeze_Entity): Code reformatting.
9209 (Freeze_Record_Type): Remove the freezing of a record controller
9211 (Freeze_Subprogram): Code reformatting.
9212 * inline.adb (Cleanup_Scopes): Remove the reset of the scope
9214 * lib-writ.adb (Write_Unit_Information): Output "PF" when a package
9215 has a library-level finalizer.
9216 * lib-writ.ads: Add "PF" to the sequence of unit attributes.
9217 * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
9218 * Makefile.rtl: Remove a-filico and s-finimp from the list of object
9219 files. Add a-fihema to the list of object files.
9221 Alphabetize the associations in type Is_Parameterless_Attribute.
9222 * rtsfind.ads: Ada.Finalization_List.Controller and
9223 System.Finalization_Implementation are no longer a GNAT unit.
9224 Update the range of type Ada_Finalization_Child. Remove the following
9225 recoverable entities:
9227 RE_Attach_To_Final_List
9231 RE_Finalizable_Ptr_Ptr
9232 RE_Global_Final_List
9233 RE_Limited_Record_Controller
9236 RE_Record_Controller
9237 RE_Simple_List_Controller
9239 Add the following recoverable entities:
9241 RE_Add_Offset_To_Address
9245 RE_Exception_Identity
9246 RE_Finalization_Collection
9247 RE_Finalization_Collection_Ptr
9248 RE_Needs_Finalization
9249 RE_Save_Library_Occurrence
9250 RE_Set_Finalize_Address_Ptr
9251 RE_Set_Storage_Pool_Ptr
9253 * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
9255 * sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
9256 (First_Stored_Discriminant): Remove the mention of Name_uController.
9257 * sem_aux.ads: Comment reformatting.
9258 * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
9259 to redecorate an already existing class-wide type.
9260 (Decorate_Tagged_Type): New parameter profile and associated comment.
9261 Create a "shadow class-wide type" for a shadow entity.
9262 * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
9263 of the final chain along with the associated comment.
9264 * sem_ch3.adb (Access_Type_Declaration): Add new local variable
9265 Full_Desig and set it to the full view of the designated type.
9266 Initialize the finalization collection to empty.
9267 (Build_Derived_Record_Type): Alphabetize local variables. Code
9269 (Collect_Fixed_Components): Remove the mention of Name_uController.
9270 (Create_Constrained_Components): Remove the mention of Name_uController.
9271 (Make_Class_Wide_Type): Add specialized code to redecorate an existing
9272 class-wide type of a shadow entity.
9273 (Process_Full_View): Update the machinery which marks type
9274 Limited_Controlled's entity as limited.
9275 * sem_ch4.adb (Analyze_One_Call): Code reformatting.
9276 * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
9277 list, instead make a collection build-in-place formal.
9278 * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
9279 a designated type in order to establish a match between the renaming
9280 and the renamed entity.
9281 (Find_Selected_Component): Add guard to prevent spurious exceptions
9282 from being raised on .NET/JVM.
9283 * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
9284 to the list of primitive that need special processing. Update arrays
9285 C_Names and D_Names.
9286 (Replace_Types): Handle class-wide types.
9287 * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
9288 different parameter profile, look at the first formal.
9289 * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
9290 use clauses for Exp_Util.
9291 * sem_res.adb: Remove with and use clauses for Elists.
9292 (Propagate_Coextensions): Removed.
9293 (Resolve_Allocator): Do not propagate the list of coextensions from one
9294 allocator to another.
9295 * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
9296 Deaccessed_T to Desig_Typ.
9297 (Enter_Name): Remove the mention of Name_uController.
9298 (Gather_Components): Remove the mention of Name_uController.
9299 (Incomplete_Or_Private_View): New routine.
9300 (Is_Coextension_Root): Removed.
9301 (Is_Fully_Initialized_Type): Remove the mention of Name_uController.
9302 * sem_util.ads (Incomplete_Or_Private_View): New routine.
9303 (Is_Coextension_Root): Removed.
9304 * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
9305 Controlled types are now derived from a null tagged record. Remove
9306 types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
9307 * sinfo.adb (Coextensions): Removed.
9308 (Set_Coextensions): Removed.
9309 * sinfo.ads: Remove Coextensions from the explanation of node fields
9310 and its uses in nodes.
9311 Update the field usage of N_Allocator.
9312 (Coextensions): Removed along with its pragma Inline.
9313 (Set_Coextensions): Removed along with its pragma Inline.
9314 * snames.ads-tmpl: Remove names
9319 Name_uLocal_Final_List
9320 Name_Finalization_Root
9327 Name_Finalize_Address
9328 * s-pooglo.adb (Allocate): Add overriding indicator.
9329 (Deallocate): Add overriding indicator.
9330 (Storage_Size): Add overriding indicator.
9331 * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
9332 than Finalize_Global_List.
9333 (Null_Finalize_Global_List): Removed.
9334 (Save_Library_Occurrence): New routine.
9335 * s-soflin.ads: Remove variable Finalize_Global_List along with its
9336 initialization. Add variable Finalize_Library_Objects along with its
9337 pragma Export. Add variables Library_Exception and
9338 Library_Exception_Set along with their pragma Export.
9339 (Null_Finalize_Global_List): Removed.
9340 (Save_Library_Occurrence): New routine.
9341 * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
9342 rather than Finalize_Global_List.
9343 * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
9344 of the constructed node.
9346 2011-08-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9348 * link.c: Include "auto-host.h" before system headers.
9350 2011-08-03 Vincent Celier <celier@adacore.com>
9352 * make.adb (Gnatmake): Add to table Library_Projs only library projects
9353 that are not extended. Do not check if a library project that is
9354 extended should be regenerated. Do not add to table Library_Paths the
9355 libraries that are in extended projects. Link only with libraries that
9356 are in libray projects that are not extended.
9357 * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
9358 for a library project that is extended.
9360 2011-08-03 Gary Dismukes <dismukes@adacore.com>
9362 * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
9363 conforming subprogram renamings that appear to be completions if they
9364 are not fully conformant.
9365 Such renamings are homographs but not completions.
9366 * sem_type.adb (Disambiguate): Handle disambiguation of overloaded
9367 names in a subprogram renaming that appears in an instance.
9369 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9371 * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
9372 not immutably limited, build actual subtype from expression to provide
9373 proper bounds to caller.
9375 2011-08-03 Gary Dismukes <dismukes@adacore.com>
9377 * sem_ch8.adb: Minor comment correction.
9379 2011-08-03 Thomas Quinot <quinot@adacore.com>
9381 * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
9382 returning a limited array, use an extended return statement.
9384 2011-08-03 Vincent Celier <celier@adacore.com>
9386 * make.adb (Initialize): If --subdirs= is used, but no project file is
9387 specified, attempt to create the specify subdir if it does not already
9388 exist and use it as the object directory as if -D had been specified.
9390 2011-08-03 Arnaud Charlet <charlet@adacore.com>
9392 * s-tpopsp-vms.adb: New file.
9393 * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
9394 * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.
9396 2011-08-03 Emmanuel Briot <briot@adacore.com>
9398 * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
9401 2011-08-03 Yannick Moy <moy@adacore.com>
9403 * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
9404 * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
9405 * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
9406 detect that an array has static bounds.
9408 2011-08-03 Thomas Quinot <quinot@adacore.com>
9410 * exp_dist.adb: Minor reformatting.
9412 2011-08-03 Arnaud Charlet <charlet@adacore.com>
9414 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
9415 (ATCB_Key): Removed, not always used.
9417 2011-08-03 Emmanuel Briot <briot@adacore.com>
9419 * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
9420 clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
9421 most remaining global variables.
9423 2011-08-03 Robert Dewar <dewar@adacore.com>
9425 * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
9426 prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
9429 2011-08-03 Javier Miranda <miranda@adacore.com>
9431 * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
9432 that must be passed by copy in VM targets.
9434 2011-08-03 Emmanuel Briot <briot@adacore.com>
9436 * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
9437 duplicates a similar htable now in the project tree.
9439 2011-08-03 Claire Dross <dross@adacore.com>
9441 * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
9442 a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
9443 Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
9444 Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
9445 Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
9446 Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
9447 Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
9450 2011-08-03 Arnaud Charlet <charlet@adacore.com>
9452 * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
9453 (ATCB_Key): Removed, not always used.
9454 * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
9456 * s-tpopsp-tls.adb: New file.
9457 * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
9458 x86/x64/ia64/powerpc/sparc Linux.
9460 2011-08-03 Arnaud Charlet <charlet@adacore.com>
9462 * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
9463 * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.
9465 2011-08-03 Thomas Quinot <quinot@adacore.com>
9467 * rtsfind.ads, exp_dist.adb, exp_dist.ads
9468 (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
9469 Fix type selection for mapping integer types to PolyORB types.
9471 2011-08-03 Bob Duff <duff@adacore.com>
9473 * sem_ch7.adb: Minor comment clarification.
9475 2011-08-03 Bob Duff <duff@adacore.com>
9477 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
9478 an error analyzing a choice, skip further processing. Further
9479 processing could cause a crash or cascade errors.
9481 2011-08-03 Emmanuel Briot <briot@adacore.com>
9483 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
9484 prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
9485 prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
9486 prj-env.ads (Shared_Project_Tree_Data): new type
9487 An aggregate project and its aggregated trees need to share the common
9488 data structures used for lists of strings, packages,... This makes the
9489 code simpler since otherwise we have to pass the root tree (also used
9490 for the configuration file data) in addition to the current project
9491 tree. This also avoids ambiguities as to which tree should be used.
9492 And finally this saves a bit of memory.
9493 (For_Every_Project_Imported): new parameter Tree.
9494 Since aggregated projects are using a different tree, we need to let
9495 the caller know which tree to use to manipulate the returned project.
9497 2011-08-03 Robert Dewar <dewar@adacore.com>
9499 * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
9500 prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
9501 lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
9502 prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.
9504 2011-08-03 Javier Miranda <miranda@adacore.com>
9506 * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
9507 Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
9509 2011-08-03 Bob Duff <duff@adacore.com>
9511 * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
9514 2011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>
9516 * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
9517 g-sehash.ads: Fix typo. Update header.
9519 2011-08-03 Thomas Quinot <quinot@adacore.com>
9521 * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
9524 2011-08-03 Gary Dismukes <dismukes@adacore.com>
9526 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
9527 prefixes of private types along with records, since the selector may be
9529 * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
9530 private types along with records, since the selector may be a
9533 2011-08-03 Emmanuel Briot <briot@adacore.com>
9535 * prj-pp.adb (Pretty_Print): Remove trailing blank line.
9537 2011-08-03 Javier Miranda <miranda@adacore.com>
9539 * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
9540 Tagged_Type_Expansion.
9542 2011-08-03 Yannick Moy <moy@adacore.com>
9544 * sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARK
9545 violation when the argument of concatenation is the name of a
9548 2011-08-03 Emmanuel Briot <briot@adacore.com>
9550 * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
9551 prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
9552 (Process_Declarative_Items): new parameter Child_Env.
9554 2011-08-03 Yannick Moy <moy@adacore.com>
9556 * alfa.ads: Update format of ALFA section in ALI file in order to
9557 add a mapping from bodies to specs when both are present.
9558 (ALFA_Scope_Record): Add components for spec file/scope.
9559 * get_alfa.adb (Get_ALFA): Read the new file/scope for spec when
9561 * lib-xref-alfa.adb (Collect_ALFA): After all scopes have been
9562 collected, fill in the spec information when relevant.
9563 * put_alfa.adb (Put_ALFA): Write the new file/scope for spec when
9566 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
9568 * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
9569 code unit to decide whether to add internally generated subprograms.
9571 2011-08-03 Javier Miranda <miranda@adacore.com>
9573 * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
9574 * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must
9575 be handled by copy in VM targets.
9577 2011-08-03 Emmanuel Briot <briot@adacore.com>
9579 * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Share
9580 code with Makeutl.Get_Switches.
9581 * prj-tree.adb: Update comment.
9583 2011-08-03 Thomas Quinot <quinot@adacore.com>
9585 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
9586 subprogram with a limited formal that does not support external
9589 2011-08-03 Yannick Moy <moy@adacore.com>
9591 * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
9593 * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
9594 not from current unit in two phases, because it is not possible to
9595 change the table while iterating over its content.
9596 * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity
9598 2011-08-03 Sergey Rybin <rybin@adacore.com>
9600 * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
9601 * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)
9603 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9605 * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
9606 and the component type is composite, this is ambiguous for predefined
9607 concatenation, but if the node is not overloaded and the entity is a use
9608 -defined function its profile can be used to resolve that aggregate.
9610 2011-08-03 Robert Dewar <dewar@adacore.com>
9612 * exp_ch4.adb: Minor code cleanup.
9614 2011-08-03 Thomas Quinot <quinot@adacore.com>
9616 * exp_dist.adb: Do not generate distribution stubs if serious errors
9617 have been diagnosed.
9619 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9621 * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
9622 the first formal of a primitive operation, go to the base type to
9623 handle properly an access to a derived type with constrained
9625 * sem_type.adb (Disambiguate): an immediately visible operator hides a
9626 user-defined function that is only use-visible.
9628 2011-08-03 Robert Dewar <dewar@adacore.com>
9630 * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
9631 make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
9632 fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
9633 prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
9634 sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
9635 prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
9636 prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
9637 alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting
9639 2011-08-03 Robert Dewar <dewar@adacore.com>
9641 * repinfo.adb (List_Mechanism): Add handling of
9642 Convention_Ada_Pass_By_XXX.
9643 * sem_mech.adb (Set_Mechanism): Ditto.
9644 * sem_prag.adb (Process_Convention): Add entries for
9645 Convention_Ada_Pass_By_XXX.
9646 * snames.adb-tmpl, snames.ads-tmpl: Ditto.
9648 2011-08-03 Pascal Obry <obry@adacore.com>
9650 * makeutl.adb: Minor reformatting.
9652 2011-08-03 Vincent Celier <celier@adacore.com>
9655 (Get_File_Name) If the file cannot be found when there are no config
9656 pragmas file and May_Fail is True, return No_File instead of the file
9657 name, to be consistent.
9659 2011-08-03 Pascal Obry <obry@adacore.com>
9661 * adaint.c (__gnat_is_executable_file_attr): Avoid access
9664 2011-08-03 Javier Miranda <miranda@adacore.com>
9667 (Same_Representation): In VM targets the representation of arrays with
9668 aliased components differs from arrays with non-aliased components.
9670 2011-08-03 Emmanuel Briot <briot@adacore.com>
9672 * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
9673 not systematically lower case attribute indexes that contain no "."
9674 Fix definition of several Naming attributes, which take
9675 a unit name as index and therefore should be case insensitive.
9676 Minor refactoring (reduce length of variable names).
9678 2011-08-03 Emmanuel Briot <briot@adacore.com>
9680 * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.
9682 2011-08-03 Emmanuel Briot <briot@adacore.com>
9684 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
9685 prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
9686 prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
9687 prj-tree.ads (Prj.Tree.Environment): new type.
9689 2011-08-03 Emmanuel Briot <briot@adacore.com>
9691 * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
9692 prj-tree.adb, prj-tree.ads (Environment): new type.
9694 2011-08-03 Emmanuel Briot <briot@adacore.com>
9696 * prj-tree.ads: Remove unused variable.
9698 2011-08-03 Yannick Moy <moy@adacore.com>
9700 * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
9701 issuing messages related to SPARK restriction violation.
9703 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9705 * sem_ch6.adb: guard against error nodes in return statements.
9707 2011-08-03 Arnaud Charlet <charlet@adacore.com>
9709 * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
9710 a warning can only appear on a configuration file, so emit warning
9711 without further checks.
9713 2011-08-03 Arnaud Charlet <charlet@adacore.com>
9715 * s-interr.ads: add overriding keyword.
9717 2011-08-03 Geert Bosch <bosch@adacore.com>
9719 * exp_attr.adb: Fix minor typo.
9721 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9723 * par-ch4.adb: improve error recovery.
9725 2011-08-03 Emmanuel Briot <briot@adacore.com>
9727 * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
9728 prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
9731 2011-08-03 Emmanuel Briot <briot@adacore.com>
9733 * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
9734 "external" as an attribute name in aggregate projects.
9736 2011-08-03 Jose Ruiz <ruiz@adacore.com>
9738 * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
9739 uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
9740 from 0, so we need to adjust.
9742 2011-08-03 Emmanuel Briot <briot@adacore.com>
9744 * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
9745 prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.
9747 2011-08-03 Yannick Moy <moy@adacore.com>
9749 * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
9750 restriction on overloaded entity if the entity is not an operator.
9752 2011-08-03 Yannick Moy <moy@adacore.com>
9754 * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
9755 restrict.ads: Rename remaining Check_Formal_Restriction* into
9756 Check_SPARK_Restriction*.
9758 2011-08-03 Emmanuel Briot <briot@adacore.com>
9760 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
9761 prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
9763 (Project_Empty): removed
9764 (Empty_Project): new parameter Qualifier
9765 This is used to have fields specific to aggregate projects, cleaner
9766 New field to store the list of aggregated projects.
9767 (Check_Aggregate_Project): removed
9768 (Process_Aggregated_Projects, Free): new subprograms.
9770 2011-08-03 Olivier Hainque <hainque@adacore.com>
9772 * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.
9774 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9776 * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
9777 explicit dereference of an unconstrained type, create a constrained
9778 subtype for it, as is done for function calls that return an
9781 2011-08-03 Thomas Quinot <quinot@adacore.com>
9783 * g-pehage.adb (Finalize): Avoid possible double-free.
9785 2011-08-03 Steve Baird <baird@adacore.com>
9787 * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
9788 Elab_Spec/Body attrs in CodePeer_Mode.
9790 2011-08-03 Javier Miranda <miranda@adacore.com>
9792 * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
9793 low bound is not known at compile time but they have no others choice.
9794 Done because in this case the bounds can be obtained directly from the
9797 2011-08-03 Ed Falis <falis@adacore.com>
9799 * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
9800 on VxWorks SMP. Remove unusable constant ANY_CPU.
9802 2011-08-03 Emmanuel Briot <briot@adacore.com>
9804 * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
9805 clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
9806 prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
9807 Prj.Env.Initialize_Empty): new subprograms
9808 (Get_Env, Find_Project): remove parameter Target_Name.
9810 2011-08-03 Gary Dismukes <dismukes@adacore.com>
9812 * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
9813 as a condition for the delayed call to Derived_Subprograms done for the
9814 case of the rewriting of a derived type that constrains the
9815 discriminants of its parent type.
9816 Avoids redundant subprogram derivations for private subtype derivations.
9818 2011-08-03 Javier Miranda <miranda@adacore.com>
9820 * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
9821 Build_Record_Aggr_Code.
9822 (Build_Record_Aggr_Code): Add missing support to initialize hidden
9823 discriminants in extension aggregates.
9825 2011-08-03 Emmanuel Briot <briot@adacore.com>
9827 * prj-pp.adb (Print): also output project qualifiers, since in
9828 particular "aggregate" is mandatory in an aggregate project.
9830 2011-08-03 Emmanuel Briot <briot@adacore.com>
9832 * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
9833 (Debug_Output): new function.
9835 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
9837 * gnat_ugn.texi: Document -Wstack-usage.
9838 * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
9840 2011-08-03 Thomas Quinot <quinot@adacore.com>
9842 * sem_prag.adb Issue an error (not a warning) when a C++ type does not
9843 have keyword LIMITED.
9845 2011-08-03 Yannick Moy <moy@adacore.com>
9847 * alfa.adb, alfa.ads, alfa_test.adb: New files.
9848 * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
9849 (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
9850 section (does not happen in compiler, only if code directly calls
9852 * get_alfa.adb, get_alfa.ads: New files.
9853 * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
9855 * lib-xref-alfa.adb: New file.
9856 * lib-xref.adb, lib-xref.ads
9857 (Xref_Entry): redefine information needed in cross-references for ALFA.
9858 Push ALFA treatments in separated local package.
9859 (Enclosing_Subpragram_Or_Package): treat specially subprogram
9860 identifiers. Return entity of package body instead of spec. Return
9861 Empty for a scope with no location.
9862 (Generate_Reference): adapt to new components for ALFA information.
9863 Remove the need for D references on definitions.
9864 (Is_Local_Reference): moved to ALFA local package
9865 (Output_References): extract subfunction as Extract_Source_Name
9866 (Output_Local_References): remove procedure, replaced by filtering of
9867 cross-references in package ALFA and printing in Put_ALFA.
9868 (Write_Entity_Name): remove procedure
9869 * lib.adb, lib.ads (Extract_Source_Name): extract here function to
9870 print exact name of entity as it appears in source file
9871 (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
9872 * put_alfa.adb, put_alfa.ads: New files.
9873 * xref_lib.adb (Search_Xref): protect read of cross-references against
9874 reading other sections of the ALI file, in gnatxref
9875 (Search): protect read of cross-references against reading other
9876 sections of the ALI file, in gnatfind.
9877 * gcc-interface/Make-lang.in: Update dependencies.
9879 2011-08-03 Thomas Quinot <quinot@adacore.com>
9881 * sem_ch3.adb: Minor reformatting.
9883 2011-08-03 Jose Ruiz <ruiz@adacore.com>
9885 * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
9886 raising an exception.
9888 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9890 * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
9891 type, always use 1 as the lower bound or string, even if lower bound of
9892 context is not static, to handle properly null strings in a non-static
9895 2011-08-03 Bob Duff <duff@adacore.com>
9897 * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
9898 always legal on the right-hand side of an assignment statement; there
9899 is always an applicable index constraint in this case. Therefore, the
9900 check for Pkind = N_Assignment_Statement is now unconditional -- it
9901 doesn't depend on whether Is_Constrained (Typ).
9903 2011-08-03 Robert Dewar <dewar@adacore.com>
9905 * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.
9907 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9909 * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
9910 for an itype created within a generic unit.
9912 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
9914 * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
9915 suppresses all inlining.
9917 2011-08-03 Robert Dewar <dewar@adacore.com>
9919 * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
9920 exp_aggr.adb: Minor reformatting.
9922 2011-08-03 Thomas Quinot <quinot@adacore.com>
9924 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
9925 tagged assignment when discriminant checks are suppressed. This is
9926 useless and extremely costly in terms of static stack usage.
9928 2011-08-03 Bob Duff <duff@adacore.com>
9930 * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
9931 of generics, because this leads to the wrong entity in the wrong scope,
9932 causing (e.g.) pragma Export_Procedure to get an error if the entity is
9934 (Process_Interface_Name): Follow Alias for instances of generics, to
9935 correct for the above change.
9937 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9939 * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
9940 is an integer literal it is always safe to replace the reference. In
9941 addition, if the reference appears in the generated code for an object
9942 declaration it is necessary to copy because otherwise the reference
9943 might be to the uninitilized value of the discriminant of the object
9946 2011-08-03 Pascal Obry <obry@adacore.com>
9948 * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
9949 ACL used, in this case we want to check for ending .exe, not .exe
9950 anywhere in the path.
9952 2011-08-03 Sergey Rybin <rybin@adacore.com>
9954 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
9955 the tree structure (semantic decoration of references to record
9958 2011-08-03 Gary Dismukes <dismukes@adacore.com>
9960 * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
9961 choices of a named array aggregate, bail out when any choices are
9962 marked as Errors_Posted.
9964 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9966 * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
9967 in which entity is frozen, to handle properly loop variables in
9970 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9972 * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
9973 subtype is not static, compute the upper bound using attributes, to
9974 handle properly index types that are not integer types.
9976 2011-08-03 Bob Duff <duff@adacore.com>
9978 * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
9979 Update copyright notice.
9981 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9983 * sem_ch3.adb (Build_Discriminant_Constraints): Only use
9984 Original_Discriminant if within an instance.
9985 * sem_ch4.adb (Analyze_Selected_Component): Ditto.
9987 2011-08-03 Thomas Quinot <quinot@adacore.com>
9989 * einfo.ads: Minor reformatting.
9991 2011-08-03 Ed Schonberg <schonberg@adacore.com>
9993 * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
9994 composite type with an unfrozen subcomponent, in the profile of a
9995 primitive operation.
9997 2011-08-03 Robert Dewar <dewar@adacore.com>
9999 * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.
10001 2011-08-03 Ed Schonberg <schonberg@adacore.com>
10003 * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
10004 unconstrained type with discriminants is initialized with an aggregate,
10005 use the constrained subtype of the aggregate as the type of the object,
10006 because it is immutable, and this allows the back-end to generate no
10007 code for the object declaration.
10009 2011-08-03 Robert Dewar <dewar@adacore.com>
10011 * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
10012 comparison operand is variable, and turns out to be zero or negative.
10014 2011-08-03 Javier Miranda <miranda@adacore.com>
10017 (Expand_Dispatching_Constructor_Call): Disable expansion of
10018 code required for native targets. Done to avoid generating
10019 references to unavailable runtime entities in VM targets.
10021 (Expand_N_Object_Declaration): Add missing support to handle
10022 the explicit initialization of class-wide interface objects.
10025 2011-08-03 Matthew Heaney <heaney@adacore.com>
10027 * a-cobove.adb (Merge): Move source onto target, instead of using
10030 2011-08-03 Matthew Heaney <heaney@adacore.com>
10032 * a-cbdlli.adb (Splice): Move source items from first to last.
10034 2011-08-03 Yannick Moy <moy@adacore.com>
10036 * sem_util.ads: Add comment.
10038 2011-08-03 Javier Miranda <miranda@adacore.com>
10041 (Expand_Record_Aggregate): In VM targets disable the expansion into
10042 assignments of aggregates whose type is not known at compile time.
10044 2011-08-03 Ed Schonberg <schonberg@adacore.com>
10046 * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
10047 protected entries and task entries, to build the proper renaming
10048 declaration for entry formals, used in debugging.
10049 * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
10050 parameters in the same way.
10052 2011-08-02 Robert Dewar <dewar@adacore.com>
10054 * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
10055 sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
10056 code reorganization.
10058 2011-08-02 Robert Dewar <dewar@adacore.com>
10060 * debug.adb: Debug flag d.P to suppress length comparison optimization
10061 * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
10062 comparison of Length by comparing First/Last instead.
10064 2011-08-02 Matthew Heaney <heaney@adacore.com>
10066 * a-cobove.ads: Code clean up.
10068 2011-08-02 Vincent Celier <celier@adacore.com>
10070 * adaint.c (file_names_case_sensitive_cache): New static int.
10071 (__gnat_get_file_names_case_sensitive): Cache the return value in
10072 file_names_case_sensitive_cache at the first invocation, to avoid
10073 multiple calls to getenv.
10075 2011-08-02 Bob Duff <duff@adacore.com>
10077 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.
10079 2011-08-02 Yannick Moy <moy@adacore.com>
10081 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
10082 sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
10083 sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
10084 indicate that we are in a precondition or postcondition. This is used in
10085 Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
10086 decide whether to flag the spec or body of the current subprogram as
10089 2011-08-02 Fabien Chouteau <chouteau@adacore.com>
10091 * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
10093 * a-extiin.ads: New file.
10095 2011-08-02 Bob Duff <duff@adacore.com>
10097 * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
10098 now raises Name_Error instead of Use_Error in certain cases. The other
10099 parts of this AI were already implemented properly.
10101 2011-08-02 Vincent Celier <celier@adacore.com>
10103 * link.c: Only import "auto-host.h" when building the gnattools.
10105 2011-08-02 Yannick Moy <moy@adacore.com>
10107 * sem_util.adb: Inter-unit inlining does not work for a subprogram
10108 which calls a local subprogram, so extract subprogram
10109 from Mark_Non_ALFA_Subprogram_Body.
10111 2011-08-02 Javier Miranda <miranda@adacore.com>
10114 (Extract_Dispatching_Call): If the type of the dispatching object is an
10115 access type then return an explicit dereference in the Object out-mode
10118 2011-08-02 Gary Dismukes <dismukes@adacore.com>
10120 * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
10121 compatibility checks for all indexes of an array subtype, not just the
10122 first. Reset Has_Dynamic_Range_Check on the subtype before each
10123 potential check to ensure that Insert_Range_Checks will not elide any
10124 of the dynamic checks.
10126 2011-08-02 Yannick Moy <moy@adacore.com>
10128 * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
10129 SPARK restriction at parsing time.
10130 * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
10131 directive only if the SPARK restriction is set for this unit.
10133 2011-08-02 Yannick Moy <moy@adacore.com>
10135 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
10136 sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
10137 sem_ch11.adb: Protect call to Current_Subprogram which might be costly
10138 when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
10139 Mark_Non_ALFA_Subprogram_Body.
10140 Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
10143 2011-08-02 Yannick Moy <moy@adacore.com>
10145 * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
10148 2011-08-02 Robert Dewar <dewar@adacore.com>
10150 * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
10151 exp_ch3.adb: Minor reformatting.
10153 2011-08-02 Emmanuel Briot <briot@adacore.com>
10155 * adaint.c (__gnat_locate_exec_on_path): only returns executable
10156 files, not any regular file.
10157 (__gnat_locate_file_with_predicate): new subprogram.
10159 2011-08-02 Yannick Moy <moy@adacore.com>
10161 * sinfo.adb, sinfo.ads: Restrict the use of flags
10162 Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
10163 nodes, plus N_Subtype_Declaration for the 2nd one.
10165 2011-08-02 Sergey Rybin <rybin@adacore.com>
10167 * gnat_rm.texi: Ramification of pragma Eliminate documentation
10168 - fix bugs in the description of Source_Trace;
10169 - get rid of UNIT_NAME;
10171 2011-08-02 Javier Miranda <miranda@adacore.com>
10174 (Build_Dispatching_Requeue): Adding support for VM targets
10175 since we cannot directly reference the Tag entity.
10176 * exp_sel.adb (Build_K): Adding support for VM targets.
10177 (Build_S_Assignment): Adding support for VM targets.
10179 (Default_Prim_Op_Position): In VM targets do not restrict availability
10180 of predefined interface primitives to compiling in Ada 2005 mode.
10181 (Is_Predefined_Interface_Primitive): In VM targets this service is not
10182 restricted to compiling in Ada 2005 mode.
10183 (Make_VM_TSD): Generate code that declares and initializes the OSD
10184 record. Needed to support dispatching calls through synchronized
10187 (Make_Predefined_Primitive_Specs): Enable generation of predefined
10188 primitives associated with synchronized interfaces.
10189 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
10190 primitives associated with synchronized interfaces.
10192 2011-08-02 Yannick Moy <moy@adacore.com>
10194 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
10195 statements hidden in SPARK if preceded by the HIDE directive
10196 (Parse_Exception_Handlers): mark each exception handler in a sequence of
10197 exception handlers as hidden in SPARK if preceded by the HIDE directive
10198 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
10199 if starting with the HIDE directive
10200 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
10201 starting with the HIDE directive; mark the declarations in a private
10202 part as hidden in SPARK if the private part starts with the HIDE
10204 * restrict.adb, restrict.ads
10205 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
10206 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
10207 argument node belongs to a part which is hidden in SPARK
10208 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
10209 parts in SPARK; protect the possibly costly call to
10210 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
10211 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
10212 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
10213 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
10215 (Scan): recognize special comment starting with '#' and followed by
10216 SPARK keyword "hide" as a HIDE directive.
10218 2011-08-02 Yannick Moy <moy@adacore.com>
10220 * types.ads, erroutc.ads: Minor reformatting.
10222 2011-08-02 Vincent Celier <celier@adacore.com>
10224 * link.c: Add response file support for cross platforms.
10226 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10228 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
10229 in an association, set parent field of copy before partial analysis.
10230 * sem_res.adb (Resolve_Slice): create reference to itype only when
10231 expansion is enabled.
10233 2011-08-02 Yannick Moy <moy@adacore.com>
10235 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
10236 for new flag denoting which subprogram bodies are in ALFA
10237 * restrict.adb, sem_ch7.adb: Update comment
10238 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
10239 sem_ch9.adb, sem_res.adb: Add calls to
10240 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
10241 * sem_ch6.adb (Analyze_Function_Return): add calls to
10242 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
10243 middle of the body, and extended return.
10244 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
10245 False when missing return.
10246 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
10247 to True for subprograms whose spec is in ALFA. Remove later on the flag
10248 on the entity used for a subprogram body when there exists a separate
10250 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
10251 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
10252 False, otherwise do nothing.
10254 2011-08-02 Robert Dewar <dewar@adacore.com>
10256 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
10258 2011-08-02 Yannick Moy <moy@adacore.com>
10260 * sem_ch4.ads: minor formatting.
10262 2011-08-02 Yannick Moy <moy@adacore.com>
10264 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
10265 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
10266 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
10267 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
10268 opt.ads: cleanup of SPARK mode
10270 2011-08-02 Yannick Moy <moy@adacore.com>
10272 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
10274 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
10275 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
10277 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
10278 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
10279 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
10280 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
10282 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
10284 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
10285 functions whose return type is not in ALFA.
10286 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
10288 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
10289 parameter's type is not in ALFA.
10290 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
10293 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10295 * sem_ch6 (Analyze_Expression_Function): treat the function as
10296 Inline_Always, and introduce a subprogram declaration for it when it is
10298 * inline.adb (Add_Inlined_Body): recognize bodies that come from
10299 expression functions, so that the back-end can determine whether they
10300 can in fact be inlined.
10301 * sem_util.adb (Is_Expression_Function): predicate to determine whether
10302 a function body comes from an expression function.
10304 2011-08-02 Gary Dismukes <dismukes@adacore.com>
10306 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
10307 null exclusions to test Can_Never_Be_Null on the anonymous access types
10308 of the formals rather than testing the formals themselves. Exclude this
10309 check in cases where the Old_Formal is marked as a controlling formal,
10310 to avoid issuing spurious errors for bodies completing dispatching
10311 operations (due to the flag not getting set on controlling access
10312 formals in body specs).
10313 (Find_Corresponding_Spec): When checking full and subtype conformance of
10314 subprogram bodies in instances, pass Designated and E in that order, for
10315 consistency with the expected order of the formals (New_Id followed by
10318 2011-08-02 Robert Dewar <dewar@adacore.com>
10320 * sem_ch8.adb: Minor reformatting.
10322 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10324 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
10325 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
10326 primitive operations of class-wide actuals.
10328 2011-08-02 Javier Miranda <miranda@adacore.com>
10330 * exp_atag.ads, exp_atag.adb
10331 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
10332 since its value is implicitly passed in argument Typ.
10333 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
10334 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
10335 Build_Common_Dispatching_Select_Statements.
10337 2011-08-02 Robert Dewar <dewar@adacore.com>
10339 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
10340 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
10341 Minor reformatting.
10343 2011-08-02 Robert Dewar <dewar@adacore.com>
10345 * sem_res.adb: Minor reformatting.
10346 * sem_prag.adb: Minor reformatting.
10348 2011-08-02 Javier Miranda <miranda@adacore.com>
10350 * exp_atag.adb, exp_atags.ads
10351 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
10352 by the tagged type Entity. Required to use this routine in the VM
10353 targets since we do not have available the Tag entity in the VM
10356 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
10357 Ada.Tags has not been previously loaded.
10359 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
10360 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
10362 (Enclosing_Dynamic_Scope): Add missing support to handle the full
10363 view of enclosing scopes. Required to handle enclosing scopes that
10364 are synchronized types whose full view is a task type.
10366 (Build_VM_TSDs): Minor code improvement to avoid generating and
10367 analyzing lists with empty nodes.
10368 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
10369 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
10370 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
10371 (Make_Disp_Timed_Select_Body): Add support for VM targets.
10372 (Make_Select_Specific_Data_Table): Add support for VM targets.
10373 (Make_VM_TSD): Generate code to initialize the SSD structure of
10376 2011-08-02 Yannick Moy <moy@adacore.com>
10378 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
10379 cross-references section in ALI.
10380 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
10381 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
10383 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
10384 subprogram or package entity of a node
10385 (Is_Local_Reference_Type): new function returns True for references
10386 selected in local cross-references.
10387 (Lt): function extracted from Lt in Output_References
10388 (Write_Entity_Name): function extracted from Output_References
10389 (Generate_Definition): generate reference with type 'D' for definition
10390 of objects (object declaration and parameter specification), with
10391 appropriate locations and units, for use in local cross-references.
10392 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
10393 references of type 'I' for initialization in object definition.
10394 (Output_References): move part of function Lt and procedure
10395 Write_Entity_Name outside of the body. Ignore references of types 'D'
10396 and 'I' introduced for local cross-references.
10397 (Output_Local_References): new procedure to output the local
10398 cross-references sections.
10399 (Lref_Entity_Status): new array defining whether an entity is a local
10400 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
10401 with 'I' type when initialization expression is present.
10402 * get_scos.adb, get_scos.ads: Correct comments and typos
10404 2011-08-02 Javier Miranda <miranda@adacore.com>
10406 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
10408 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
10410 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
10413 2011-08-02 Vincent Celier <celier@adacore.com>
10415 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
10416 (No_Space_Img): New function
10417 (Find_Excluded_Sources): When reading from a file, record the file name
10418 and the line number for each excluded source.
10419 (Mark_Excluded_Sources): When reporting an error, if the excluded
10420 sources were read from a file, include file name and line number in
10423 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10425 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
10427 2011-08-02 Robert Dewar <dewar@adacore.com>
10429 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
10431 2011-08-02 Javier Miranda <miranda@adacore.com>
10433 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
10434 generation of TSDs to the DOTNET compiler.
10435 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
10436 generation of TSDs to the DOTNET compiler.
10438 2011-08-02 Javier Miranda <miranda@adacore.com>
10440 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
10441 record of all the tagged types declared inside library level package
10442 declarations, library level package bodies or library level subprograms.
10443 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
10444 associated with a given tagged type.
10445 (Build_VM_TSDs): New subprogram.
10446 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
10447 compilation units that are subprograms.
10448 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
10449 compilation units that are package bodies.
10450 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
10451 units that are a package declaration or a package instantiation.
10452 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
10453 reorganization to improve the error generated by the frontend when the
10454 function Ada.Tags.Secondary_Tag is not available.
10455 * rtsfind.ads (RE_Register_TSD): New runtime entity.
10456 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
10458 2011-08-02 Javier Miranda <miranda@adacore.com>
10460 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
10462 2011-08-02 Robert Dewar <dewar@adacore.com>
10464 * s-imenne.ads: Minor reformatting.
10466 2011-08-02 Robert Dewar <dewar@adacore.com>
10468 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
10469 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
10470 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
10472 2011-08-02 Robert Dewar <dewar@adacore.com>
10474 * einfo.ads (Materialize_Entity): Document this is only for renamings
10475 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
10476 required debug information in the case where we transform the object
10477 declaration into a renaming declaration.
10478 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
10480 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
10481 Materialize_Entity.
10483 2011-08-02 Robert Dewar <dewar@adacore.com>
10485 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
10486 Suppress_Init_Procs.
10487 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
10488 Suppress_Initialization/Initialization_Suppressed.
10489 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
10490 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
10491 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
10492 * sem_prag.adb: New processing for pragma Suppress_Initialization.
10494 2011-08-02 Robert Dewar <dewar@adacore.com>
10496 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
10497 Minor reformatting.
10499 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10501 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
10502 only have inheritable classwide pre/postconditions.
10504 2011-08-02 Javier Miranda <miranda@adacore.com>
10506 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
10507 * rtsfind.ads (RE_Check_TSD): New runtime entity.
10508 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
10509 checks if the external tag of a type is the same as the external tag
10510 of some other declaration.
10512 2011-08-02 Thomas Quinot <quinot@adacore.com>
10514 * s-taskin.ads: Minor reformatting.
10516 2011-08-02 Emmanuel Briot <briot@adacore.com>
10518 * g-comlin.adb (Display_Help): swap the order in which it prints the
10519 short help and the general usage.
10521 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10523 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
10524 the aspect declarations and attach them to the generic copy for
10525 subsequent analysis.
10526 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
10527 declarations of the generic tree to the new subprogram declarations.
10528 * sem_attr.adb (Check_Precondition_Postcondition): recognize
10529 conditions that apply to a subprogram instance.
10531 2011-08-02 Robert Dewar <dewar@adacore.com>
10533 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
10535 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10537 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
10538 private type with a tagged full view is not derived in the immediate
10539 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
10541 2011-08-02 Robert Dewar <dewar@adacore.com>
10543 * exp_ch4.adb: Minor reformatting.
10545 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10547 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
10548 Ada2012 iterator, the loop will be rewritten during expansion into a
10549 while loop with a cursor and an element declaration. Do not analyze the
10550 body in this case, because if the container is for indefinite types the
10551 actual subtype of the elements will only be determined when the cursor
10552 declaration is analyzed.
10554 2011-08-02 Arnaud Charlet <charlet@adacore.com>
10556 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
10557 size/alignment related attributes in CodePeer_Mode.
10559 2011-08-02 Gary Dismukes <dismukes@adacore.com>
10561 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
10562 Prepend_Element, since this can result in the operation getting the
10563 wrong slot in the full type's dispatch table if the full type has
10564 inherited operations. The incomplete type's operation will get added
10565 to the proper position in the full type's primitives
10566 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
10567 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
10568 dispatching operations, since there are cases where nonprimitive
10569 subprograms can get added to the list of incomplete dependents (such
10570 as subprograms in nested packages).
10571 * sem_ch6.adb (Process_Formals): First, remove test for being in a
10572 private part when determining whether to add a primitive with a
10573 parameter of a tagged incomplete type to the Private_Dependents list.
10574 Such primitives can also occur in the visible part, and should not have
10575 been excluded from being private dependents.
10576 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
10577 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
10578 list of a Taft-amendment incomplete type is a primitive before issuing
10579 an error that the full type must appear in the same unit. There are
10580 cases where nonprimitives can be in the list (such as subprograms in
10582 * sem_disp.adb (Derives_From): Use correct condition for checking that
10583 a formal's type is derived from the type of the corresponding formal in
10584 the parent subprogram (the condition was completely wrong). Add
10585 checking that was missing for controlling result types being derived
10586 from the result type of the parent operation.
10588 2011-08-02 Yannick Moy <moy@adacore.com>
10590 * errout.adb (First_Node): minor renaming
10591 * restrict.adb (Check_Formal_Restriction): put restriction warning on
10594 2011-08-02 Yannick Moy <moy@adacore.com>
10596 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
10597 before accessing operands.
10598 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
10599 decide whether an initialization expression respects SPARK rules, as
10600 the plain node is the expanded one. This allows for more valid warnings
10602 * gnat_rm.texi: Minor update.
10604 2011-08-02 Arnaud Charlet <charlet@adacore.com>
10606 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
10609 2011-08-02 Robert Dewar <dewar@adacore.com>
10611 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
10613 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10615 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
10616 loop statements and the element renaming declaration with a block when
10617 the element type is controlled.
10619 2011-08-02 Yannick Moy <moy@adacore.com>
10621 * sinfo.ads: Minor formatting.
10623 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10625 * sem_aggr.adb (Add_Association): if the association has a box and no
10626 expression, use the Sloc of the aggregate itself for the new
10628 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
10631 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10633 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
10634 When a container is provided via a function call, generate a renaming
10635 of the function result. This avoids the creation of a transient scope
10636 and the premature finalization of the container.
10637 * exp_ch7.adb (Is_Container_Cursor): Removed.
10638 (Wrap_Transient_Declaration): Remove the supression of the finalization
10639 of the list controller when the declaration denotes a container cursor,
10642 2011-08-02 Yannick Moy <moy@adacore.com>
10644 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
10645 node is from source, instead of the original node being from source.
10647 (Resolve_Array_Aggregate): refine the check for a static expression, to
10648 recognize also static ranges
10649 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
10650 Array_Type_Declaration): postpone the test for the type being a subtype
10651 mark after the type has been resolved, so that component-selection and
10652 expanded-name are discriminated.
10653 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
10654 to distinguish the case of an iteration scheme, so that an error is
10655 issed on a non-static range in SPARK except in an iteration scheme.
10656 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
10657 In_Iter_Schm = True.
10658 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
10659 user-defined operators so that they are allowed in renaming
10661 (Find_Selected_Component): refine the check for prefixing of operators
10662 so that they are allowed in renaming. Move the checks for restrictions
10663 on selector name after analysis discriminated between
10664 component-selection and expanded-name.
10665 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
10666 concatenation argument of string type if it is static.
10667 * sem_util.adb, sem_util.ads
10668 (Check_Later_Vs_Basic_Declarations): add a new function
10669 Is_Later_Declarative_Item to decice which declarations are allowed as
10670 later items, in the two different modes Ada 83 and SPARK. In the SPARK
10671 mode, add that renamings are considered as later items.
10672 (Enclosing_Package): new function to return the enclosing package
10673 (Enter_Name): correct the rule for homonyms in SPARK
10674 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
10675 from source (result of expansion) to avoid issuing wrong warnings.
10677 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10679 * errout.adb: On anything but an expression First_Node returns its
10682 2011-08-02 Pascal Obry <obry@adacore.com>
10684 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
10686 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10688 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
10689 Set the associated loop as the related expression of internally
10691 * exp_ch7.adb (Is_Container_Cursor): New routine.
10692 (Wrap_Transient_Declaration): Supress the finalization of the list
10693 controller when the declaration denotes a container cursor.
10695 2011-08-02 Yannick Moy <moy@adacore.com>
10697 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
10699 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
10700 expression is a simple expression. This check cannot be performed in
10701 the semantics, so just drop it.
10702 (P_Index_Or_Discriminant_Constraint): move check that the index or
10703 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
10704 semantics. Other cases were previously checked in the semantics.
10705 * par-ch4.adb (P_Name): move checks that a selector name is not
10706 character literal or an operator symbol to Find_Selected_Component in
10708 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
10709 declarations are not placed after later declarations in a separate
10710 procedure in Sem_Util (possibly not the best choice?), to be used both
10711 during parsing, for Ada 83 mode, and during semantic analysis, for
10713 * par-endh.adb (Check_End): move check that end label is not missing
10714 to Process_End_Label in the semantics
10715 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
10716 the special case for SPARK restriction
10717 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
10718 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
10719 parameter Force to issue the error message even on internal node (used
10720 for generated end label). Call Check_Restriction to check when an error
10721 must be issued. In SPARK mode, issue an error message even if the
10722 restriction is not set.
10723 (Check_Restriction): new procedure with an additional out parameter to
10724 inform the caller that a message has been issued
10725 * sem_aggr.adb: Minor modification of message
10726 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
10727 instead of issuing an error message directly
10728 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
10729 declarations are not placed after later declarations, by calling
10730 Check_Later_Vs_Basic_Declarations
10731 (Analyze_Subtype_Declaration): move here the check that an index or
10732 discriminant constraint must be a subtype mark. Change the check that
10733 a subtype of String must start at one so that it works on subtype marks.
10734 * sem_ch4.adb (Analyze_Call): move here the check that a named
10735 association cannot follow a positional one in a call
10736 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
10737 instead of issuing an error message directly
10738 * sem_ch8.adb (Find_Selected_Component): move here the check that a
10739 selector name is not a character literal or an operator symbol. Move
10740 here the check that the prefix of an expanded name cannot be a
10741 subprogram or a loop statement.
10742 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
10743 procedure called from parsing and semantics to check that basic
10744 declarations are not placed after later declarations
10745 (Process_End_Label): move here the check that end label is not missing
10747 2011-08-02 Arnaud Charlet <charlet@adacore.com>
10749 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
10750 representation clause in codepeer mode, since it confuses CodePeer and
10751 does not bring useful info.
10753 2011-08-02 Ed Falis <falis@adacore.com>
10755 * init.c: initialize fp hw on MILS.
10757 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10759 * errout.adb (First_Node): for bodies, return the node itself (small
10760 optimization). For other nodes, do not check source_unit if the node
10761 comes from Standard.
10763 2011-08-02 Robert Dewar <dewar@adacore.com>
10765 * exp_ch3.adb: Minor comment additions.
10766 * sem_ch13.adb: Minor reformatting.
10768 2011-08-02 Pascal Obry <obry@adacore.com>
10770 * make.adb, makeutl.adb: Removes some superfluous directory separator.
10772 2011-08-02 Robert Dewar <dewar@adacore.com>
10774 * sem_attr.adb: Minor reformatting.
10776 2011-08-02 Robert Dewar <dewar@adacore.com>
10778 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
10779 (Has_Default_Component_Value): Removed
10780 * einfo.ads Comment updates
10781 (Has_Default_Aspect): Replaces Has_Default_Value
10782 (Has_Default_Component_Value): Removed
10784 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
10786 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
10787 (Get_Simple_Init_Val): Handle Default_Value aspect
10788 (Needs_Simple_Initialization): Handle Default_Value aspect
10789 * exp_ch3.ads: Needs_Simple_Initialization
10790 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
10791 * par-prag.adb (Pragma_Default[_Component]Value) Removed
10793 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
10794 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
10795 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
10797 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10799 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
10800 package containing iteration primitives.
10801 exp_ch5.adb (Expand_Iterator_Loop): ditto.
10803 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10805 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
10806 "of", pre-analyze expression in case it is a function call with
10807 finalization actions that must be placed ahead of the loop.
10808 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
10809 on an Ada2012 iterator, insert them ahead of the rewritten loop.
10811 2011-08-02 Geert Bosch <bosch@adacore.com>
10813 * cstand.adb (Create_Float_Types): Only consider C's long double for
10814 Long_Long_Float, in addition to double.
10816 2011-08-02 Robert Dewar <dewar@adacore.com>
10818 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
10819 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
10820 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
10821 Minor reformatting.
10823 2011-08-02 Ed Schonberg <schonberg@adacore.com>
10825 * sem_attr.adb: handle properly 'Result when it is a prefix of an
10828 2011-08-02 Javier Miranda <miranda@adacore.com>
10830 * einfo.ads, einfo.adb
10831 (Original_Access_Type): Move this attribute to Node26 since there was
10832 an undocumented use of Node21 in E_Access_Subprogram_Type entities
10833 which causes conflicts and breaks the generation of the .NET compiler.
10834 (Interface_Name): Add missing documentation on JGNAT only uses of
10837 2011-08-02 Geert Bosch <bosch@adacore.com>
10839 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
10840 (Find_Back_End_Float_Type): Likewise
10841 (Create_Back_End_Float_Types): Likewise
10842 (Create_Float_Types): Likewise
10843 (Register_Float_Type): Likewise
10844 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
10845 Nlist and split out type selection in new local Find_Base_Type function.
10846 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
10848 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
10850 2011-08-02 Robert Dewar <dewar@adacore.com>
10852 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
10854 * opt.ads: Minor comment change.
10855 * sem_ch12.adb: Minor code reorganization.
10857 2011-08-02 Gary Dismukes <dismukes@adacore.com>
10859 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
10860 subtype's list of rep items to the list on the full subtype in the case
10861 where the lists are the same.
10863 2011-08-02 Geert Bosch <bosch@adacore.com>
10865 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
10866 using the one from System.Strings, which also deallocates all strings.
10868 2011-08-02 Geert Bosch <bosch@adacore.com>
10870 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
10872 * gcc-interface/Make-lang.in: Update dependencies.
10874 2011-08-02 Olivier Hainque <hainque@adacore.com>
10876 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
10879 2011-08-02 Javier Miranda <miranda@adacore.com>
10881 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
10882 associated with anonymous access to subprograms.
10884 2011-08-02 Geert Bosch <bosch@adacore.com>
10887 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
10888 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
10889 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
10890 (Add_Symbol_Definition): Move to switch-c.adb
10891 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
10892 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
10893 (Add_Symbol_Definition): Move to switch-c.adb.
10894 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
10896 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
10897 Move to warnsw.adb.
10898 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
10899 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
10900 Move to warnsw.adb.
10901 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
10902 (Add_Symbol_Definition): Moved from Prepcomp.
10903 * switch-c.ads: Update copyright notice. Use String_List instead of
10904 Argument_List, removing dependency on System.OS_Lib.
10906 2011-08-02 Yannick Moy <moy@adacore.com>
10908 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
10909 mode on initialization expression which does not respect SPARK
10911 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
10912 if the tree referenced by its argument represents an initialization
10913 expression in SPARK, suitable for initializing an object in an object
10916 2011-08-02 Javier Miranda <miranda@adacore.com>
10918 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
10919 internally generated access to subprogram with its associated protected
10921 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
10923 2011-08-02 Geert Bosch <bosch@adacore.com>
10925 * cstand.adb (Register_Float_Type): Print information about type to
10926 register, if the Debug_Flag_Dot_B is set.
10927 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
10928 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
10929 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
10930 with a requested precision of more than Max_Digits digits and no more
10931 than Max_Base_Digits digits, if a range specification is present and the
10932 Predefined_Float_Types list has a suitable type to derive from.
10933 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
10934 case of type completion with pragma Import
10936 (Process_Import_Predefined_Type): Processing to complete a type
10937 with pragma Import. Currently supports floating point types only.
10938 (Set_Convention_From_Pragma): Do nothing without underlying type.
10939 (Process_Convention): Guard against absence of underlying type,
10940 which may happen when importing incomplete types.
10941 (Process_Import_Or_Interface): Handle case of importing predefined
10942 types. Tweak error message.
10944 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10946 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
10947 functions to previous change. Reorganize code slightly.
10949 2011-08-02 Geert Bosch <bosch@adacore.com>
10951 * back_end.ads (Register_Type_Proc): New call back procedure type for
10952 allowing the back end to provide information about available types.
10953 (Register_Back_End_Types): New procedure to register back end types.
10954 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
10956 * cstand.adb (Back_End_Float_Types): New list for floating point types
10957 supported by the back end.
10958 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
10959 (Copy_Float_Type): New procedure to make new copies of predefined types.
10960 (Register_Float_Type): New call back procedure to populate the BEFT list
10961 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
10962 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
10963 (Create_Float_Types): New procedure to create entities for floating
10964 point types predefined in Standard, and put these and any remaining
10965 BEFTs on the Predefined_Float_Types list.
10966 * stand.ads (Predefined_Float_Types): New list for predefined floating
10967 point types that do not have declarations in package Standard.
10969 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10971 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
10972 entity node for the unit containing the parameter.
10973 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
10974 (Add_Inlined_Subprogram): Likewise.
10975 * gcc-interface/Make-lang.in: Update dependencies.
10977 2011-08-02 Thomas Quinot <quinot@adacore.com>
10979 * s-stusta.adb (Print): Make sure Pos is always initialized to a
10982 2011-08-02 Geert Bosch <bosch@adacore.com>
10984 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
10986 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10988 * sem_type.adb (Covers): Move trivial case to the top and reuse the
10989 computed value of Base_Type.
10991 2011-08-02 Yannick Moy <moy@adacore.com>
10993 * restrict.adb (Check_Restriction): issue an error for any use of
10994 class-wide, even if the No_Dispatch restriction is not set.
10995 * sem_aggr.adb: Correct typos in comments and messages in formal mode
10996 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
10997 when completing a private extension, the type named in the private part
10998 is not the same as that named in the visible part.
10999 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
11000 of an inherited primitive operations of a tagged type or type extension
11001 that returns the tagged type.
11002 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
11003 function which returns True for an implicit operation inherited by the
11004 derived type declaration for the argument type.
11005 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
11008 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11010 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
11011 Process_Bounds, to perform analysis with expansion of a range or an
11012 expression that is the iteration scheme for a loop.
11013 (Analyze_Iterator_Specification): If domain of iteration is given by a
11014 function call with a controlled result, as is the case if call returns
11015 a predefined container, ensure that finalization actions are properly
11017 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
11019 2011-08-02 Javier Miranda <miranda@adacore.com>
11021 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
11022 * gcc-interface/Make-lang.in: Update dependencies.
11024 2011-08-02 Javier Miranda <miranda@adacore.com>
11026 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
11027 determine if the analysis is performed using N or Original_Node (N).
11028 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
11029 functionality of routine Is_Variable avoids code duplication.
11030 * checks.adb (Determine_Range): Handle temporaries generated by
11031 Remove_Side_Effects.
11033 2011-08-02 Javier Miranda <miranda@adacore.com>
11035 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
11036 expansion of the condition. Required since the previous analysis was
11037 done with expansion disabled (see Resolve_Quantified_Expression) and
11038 hence checks were not inserted and record comparisons have not been
11041 2011-08-02 Ed Falis <falis@adacore.com>
11043 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
11046 2011-08-02 Bob Duff <duff@adacore.com>
11048 * opt.ads: Minor comment fix.
11050 2011-08-02 Bob Duff <duff@adacore.com>
11052 * sem_ch12.adb (Analyze_Package_Instantiation,
11053 Analyze_Subprogram_Instantiation): Turn off style checking while
11054 analyzing an instance. Whatever style checks that apply to the generic
11055 unit should apply, so it makes no sense to apply them in an instance.
11056 This was causing trouble when compiling an instance of a runtime
11057 unit that violates the -gnatyO switch.
11058 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
11059 one of the two case statements, causing spurious errors.
11061 2011-08-02 Robert Dewar <dewar@adacore.com>
11063 * uname.adb: Minor reformatting.
11064 * gnatcmd.adb: Minor reformatting.
11065 * exp_attr.adb: Minor reformatting.
11067 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11069 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
11070 No_Dispatching_Calls, do not look for the Assign primitive, because
11071 predefined primitives are not created in this case.
11073 2011-08-02 Bob Duff <duff@adacore.com>
11075 * stylesw.ads: Minor comment fixes.
11077 2011-08-02 Robert Dewar <dewar@adacore.com>
11079 * freeze.adb (Add_To_Result): New procedure.
11081 2011-08-02 Jose Ruiz <ruiz@adacore.com>
11083 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
11084 time, if the specific run-time routines for handling streams of strings
11085 are not available, use the default mechanism.
11087 2011-08-02 Arnaud Charlet <charlet@adacore.com>
11089 * s-regpat.ads: Fix typo.
11091 2011-08-02 Vincent Celier <celier@adacore.com>
11093 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
11094 not null, call it to create the in memory config project file without
11095 parsing an existing default config project file.
11097 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
11099 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
11101 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11103 * sem_elim.adb: an abstract subprogram does not need an eliminate
11104 pragma for its descendant to be eliminable.
11106 2011-08-02 Ed Falis <falis@adacore.com>
11108 * init.c: revert to handling before previous checkin for VxWorks
11109 * s-intman-vxworks.adb: delete unnecessary declarations related to
11110 using Ada interrupt facilities for handling signals.
11111 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
11112 * s-intman-vxworks.ads: Import __gnat_install_handler as
11113 Initialize_Interrupts.
11114 * s-taprop-vxworks.adb: Delete Signal_Mask.
11115 (Abort_Handler): change construction of mask to unblock exception
11118 2011-08-02 Jerome Guitton <guitton@adacore.com>
11120 * a-except-2005.adb (Raise_From_Signal_Handler): Call
11121 Debug_Raise_Exception before propagation starts.
11123 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
11125 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
11126 to Restriction_Check_Required.
11127 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
11128 * sem_res.adb (Resolve_Call): Likewise.
11129 * sem_attr.adb (Check_Stream_Attribute): Likewise.
11131 2011-08-02 Bob Duff <duff@adacore.com>
11133 * stylesw.ads: Update comment.
11134 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
11135 * errout.ads: Remove obsolete comment.
11137 2011-08-02 Javier Miranda <miranda@adacore.com>
11139 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
11140 (Set_Is_Safe_To_Reevaluate): new procedure.
11141 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
11142 assignment is allowed on safe-to-reevaluate variables.
11143 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
11144 temporary created to remove side effects in expressions that use
11145 the secondary stack as safe-to-reevaluate.
11146 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
11147 variables that are not true constants.
11149 2011-08-02 Robert Dewar <dewar@adacore.com>
11151 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
11152 sem_res.adb, sem_ch6.adb: Minor reformatting.
11154 2011-08-02 Jerome Guitton <guitton@adacore.com>
11156 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
11158 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11160 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
11161 not set Overridden_Operation if subprogram is an initialization
11164 2011-08-02 Yannick Moy <moy@adacore.com>
11166 * par-ch6.adb: Correct obsolete name in comments
11167 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
11168 which takes two message arguments (existing function takes one), with
11169 second message used for continuation.
11170 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
11171 block statements that originate from a source block statement, not
11172 generated block statements
11173 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
11174 symmetry with procedure case
11175 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
11176 function to issue an error in formal mode if a package specification
11177 contains more than one tagged type or type extension.
11178 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
11179 parameters matching formals of tagged types are objects (or ancestor
11180 type conversions of objects), not general expressions. Issue an error
11181 on view conversions that are not involving ancestor conversion of an
11183 (Resolve_Type_Conversion): in formal mode, issue an error on the
11184 operand of an ancestor type conversion which is not an object
11185 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
11186 procedure so that it works also for actuals of function calls
11187 (Is_Actual_Tagged_Parameter): new function which determines if its
11188 argument is an actual parameter of a formal of tagged type in a
11190 (Is_SPARK_Object_Reference): new function which determines if the tree
11191 referenced by its argument represents an object in SPARK
11193 2011-08-02 Robert Dewar <dewar@adacore.com>
11195 * sem_ch3.adb: Minor reformatting
11196 Minor comment addition
11197 Minor error msg text change
11199 2011-08-02 Javier Miranda <miranda@adacore.com>
11201 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
11202 function. Used to be more precise when we generate a variable plus one
11203 assignment to remove side effects in the evaluation of the Bound
11205 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
11206 of the bound expression to force its re-analysis and thus expand the
11207 associated transient scope (if required). Code cleanup replacing the
11208 previous code that declared the constant entity by an invocation to
11209 routine Force_Evaluation which centralizes this work in the frontend.
11211 2011-08-02 Robert Dewar <dewar@adacore.com>
11213 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
11214 (Base_Type): Now uses improved Is_Base_Type function
11215 * einfo.ads (Base_Type): Inline this function
11217 2011-08-02 Robert Dewar <dewar@adacore.com>
11219 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
11220 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
11222 2011-08-02 Arnaud Charlet <charlet@adacore.com>
11224 * gcc-interface/Make-lang.in: Update dependencies.
11225 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
11228 2011-08-02 Yannick Moy <moy@adacore.com>
11230 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
11231 non-simple expression used in delta constraint
11232 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
11233 index constraint which is not a subtype mark
11234 * par.adb: With and use Restrict
11235 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
11236 mode on component type which is not a subtype mark and default
11237 expression on component
11238 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
11239 of string which does not have a lower index bound equal to 1
11240 (Array_Type_Declaration): issue an error in formal mode on index or
11241 component type which is not a subtype mark, and on aliased keyword on
11243 (Derived_Type_Declaration): issue an error in formal mode on interface,
11244 limited or abstract type
11245 (Record_Type_Declaration): issue an error in formal mode on interface
11246 (Record_Type_Definition): issue an error in formal mode on tagged types
11247 and type extensions not declared in the specification of a library unit
11248 package; on null non-tagged record; on variant part
11250 2011-08-02 Vincent Celier <celier@adacore.com>
11252 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
11253 not declared for qualified library project when Library_Name is not
11254 declared, but Library_Dir is.
11256 2011-08-02 Robert Dewar <dewar@adacore.com>
11258 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
11259 pragmas (affects aspects [Component_]Default_Value
11260 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
11261 component type for the resolution
11263 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
11265 * einfo.adb (Base_Type): Tune implementation for speed.
11267 2011-08-02 Robert Dewar <dewar@adacore.com>
11269 * freeze.adb: Minor reformatting.
11271 2011-08-02 Thomas Quinot <quinot@adacore.com>
11273 * scos.ads: Update comments.
11275 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11277 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
11278 base type, because the parent may be a subtype of a private type whose
11279 convention is established in a private part.
11281 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
11283 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
11284 statement in a block when the expansion of the return expression has
11285 created a finalization chain.
11286 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
11287 with the parent node.
11288 Add N_Extended_Return_Statement to handle the case where a transient
11289 object declaration appears in the Return_Object_Declarations list of
11290 an extended return statement.
11292 2011-08-02 Matthew Gingell <gingell@adacore.com>
11294 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
11295 unused parameter 'name'.
11297 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11299 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
11300 inherited operation, check whether its alias, which is the source
11301 operastion that it renames, has been marked eliminated.
11303 2011-08-02 Javier Miranda <miranda@adacore.com>
11305 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
11306 in-mode parameter whose type is an access type since it can be used to
11307 modify its designated object. Enforce code that handles as safe an
11308 access type that is not access-to-constant but it is the result of a
11309 previous removal of side-effects.
11310 (Remove_Side_Effects): Minor code reorganization of cases which require
11311 no action. Done to incorporate documentation on new cases uncovered
11312 working in this ticket: no action needed if this routine was invoked
11313 too early and the nodes are not yet decorated.
11314 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
11315 to routine Remove_Side_Effects by calls to Force_Evaluation since they
11316 were issued with actuals that are implicitly provided by
11319 2011-08-02 Robert Dewar <dewar@adacore.com>
11321 * sem_ch3.adb, sem_res.adb: Minor reformatting.
11323 2011-08-02 Yannick Moy <moy@adacore.com>
11325 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
11326 to issue an error in formal mode on attribute not supported in this mode
11327 (Analyze_Attribute): issue errors on standard attributes not supported
11329 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
11330 comment, and issue error in formal mode on modulus which is not a power
11332 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
11334 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
11336 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
11337 operator on modular type (except 'not').
11339 2011-08-02 Robert Dewar <dewar@adacore.com>
11341 * gnat_rm.texi: Minor reformatting.
11343 2011-08-02 Arnaud Charlet <charlet@adacore.com>
11345 * s-osinte-linux.ads: Minor comment update and reformatting.
11346 * i-cexten.ads: Make this unit pure, as for its parent.
11347 Will allow its usage in more contexts if needed.
11349 2011-08-02 Robert Dewar <dewar@adacore.com>
11351 * s-utf_32.ads: Minor comment fix.
11353 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11355 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
11356 operation of a tagged synchronized type, handle the case where the
11357 controlling argument is overloaded.
11359 2011-08-02 Yannick Moy <moy@adacore.com>
11361 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
11362 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
11363 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
11364 SPARK mode and formal verification mode on processing SPARK restriction
11365 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
11366 requiring consistency checking.
11368 2011-08-02 Robert Dewar <dewar@adacore.com>
11370 * sem_res.adb: Minor reformatting.
11372 2011-08-02 Robert Dewar <dewar@adacore.com>
11374 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
11375 a-cforse.ads: Remove unneeded with of Ada.Containers
11376 Remove commented out pragma Inline's
11377 Move specifications of new subprograms to the actual specs
11379 2011-08-02 Yannick Moy <moy@adacore.com>
11381 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
11382 a-cforse.ads: Update comments.
11384 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11386 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
11388 2011-08-02 Robert Dewar <dewar@adacore.com>
11390 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
11391 a-cforse.ads, a-cofove.ads: Minor reformatting.
11393 2011-08-02 Claire Dross <dross@adacore.com>
11395 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
11396 a-cofove.ads: Add comments.
11398 2011-08-02 Yannick Moy <moy@adacore.com>
11400 * gnat_rm.texi: Document formal containers.
11402 2011-08-02 Emmanuel Briot <briot@adacore.com>
11404 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
11405 are empty sections.
11407 2011-08-02 Robert Dewar <dewar@adacore.com>
11409 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
11412 2011-08-02 Robert Dewar <dewar@adacore.com>
11414 * aspects.adb: New aspects Default_Value and Default_Component_Value
11415 New format of Aspect_Names table checks for omitted entries
11416 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
11417 handling of boolean aspects for derived types.
11418 New aspects Default_Value and Default_Component_Value
11419 New format of Aspect_Names table checks for omitted entries
11420 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
11421 (Has_Default_Value): New flag
11422 (Has_Default_Component_Value): New flag
11423 (Has_Default_Value): New flag
11424 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
11426 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
11427 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
11428 Default_Value and Default_Component_Value
11429 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
11430 New aspects Default_Value and Default_Component_Value
11431 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
11432 * sprint.adb: Print N_Aspect_Specification node when called from gdb
11434 2011-08-02 Vincent Celier <celier@adacore.com>
11436 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
11437 inherit library kind.
11439 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11441 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
11442 Minor reformatting.
11444 2011-08-02 Robert Dewar <dewar@adacore.com>
11446 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
11448 2011-08-02 Yannick Moy <moy@adacore.com>
11450 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
11452 2011-08-02 Robert Dewar <dewar@adacore.com>
11454 * impunit.adb: Add comment.
11456 2011-08-02 Yannick Moy <moy@adacore.com>
11458 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
11459 qualification of aggregates in formal mode
11460 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
11462 (Resolve_Aggregate): complete the test that an aggregate is adequately
11463 qualified in formal mode
11465 2011-08-02 Pascal Obry <obry@adacore.com>
11467 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
11468 * mlib-prj.adb: Supress warning when compiling binder generated file.
11469 (Build_Library): Supress all warnings when compiling the binder
11472 2011-08-02 Yannick Moy <moy@adacore.com>
11474 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
11476 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
11477 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
11478 Add with/use clauses to make Check_Formal_Restriction visible
11480 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11482 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
11483 in-parameters when type of the generic formal is private in the generic
11484 spec and non-private in the body.
11486 2011-08-02 Claire Dross <dross@adacore.com>
11488 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
11489 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
11490 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
11491 * impunit.adb, Makefile.rtl: Take new files into account.
11493 2011-08-02 Robert Dewar <dewar@adacore.com>
11495 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
11496 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
11498 2011-08-02 Yannick Moy <moy@adacore.com>
11500 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
11502 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
11503 matching static array bounds, taking into account the special case of
11505 * sem_ch3.adb: Typo in comment.
11507 2011-08-02 Yannick Moy <moy@adacore.com>
11509 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
11510 which issues an error in formal mode if its argument node is originally
11512 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
11513 has a discriminant specification so that it does not include the case
11515 (Derived_Type_Declaration): move here the test that a derived type has a
11516 discriminant specification
11517 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
11518 first element of a component association before accessing its choices
11519 (presence of component association is not enough)
11520 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
11521 declaration is a library item before accessing the next element in a
11522 list, as library items are not member of lists
11523 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
11524 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
11525 Check_Formal_Restriction whenever possible.
11527 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11529 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
11530 reference when needed.
11532 2011-08-02 Bob Duff <duff@adacore.com>
11534 * gnat_ugn.texi: Fix typo.
11536 2011-08-02 Vincent Celier <celier@adacore.com>
11538 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
11539 archive file name. Do not use the full path name of archives for Open
11542 2011-08-02 Robert Dewar <dewar@adacore.com>
11544 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
11545 Analyze_Aspect_Specifications
11547 (Analyze_Aspect_Specifications): New handling for boolean aspects
11548 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
11549 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
11550 sequence for Analyze_Aspect_Specifications
11551 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
11552 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
11554 2011-08-02 Robert Dewar <dewar@adacore.com>
11556 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
11557 aspects, since these no longer exist.
11559 2011-08-02 Robert Dewar <dewar@adacore.com>
11561 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
11562 semicolon, do not try to see if there are aspects following it.
11563 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
11566 2011-08-02 Robert Dewar <dewar@adacore.com>
11568 * sem_ch8.adb, aspects.ads: Minor reformatting.
11570 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
11572 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
11573 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
11575 (Analyze_Aspect_Specifications): ...here. Call above procedure.
11577 2011-08-02 Yannick Moy <moy@adacore.com>
11579 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
11580 mode on subprogram declaration outside of package specification, unless
11581 it is followed by a pragma Import
11582 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
11583 Access_Type_Declaration): issue error in formal mode on access type
11584 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
11586 (Analyze_Object_Declaration): issue error in formal mode on object
11587 declaration which does not respect SPARK restrictions
11588 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
11589 declaration which does not respect SPARK restrictions
11590 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
11591 error in formal mode on digits or delta constraint
11592 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
11593 decimal fixed point type
11594 (Derived_Type_Declaration): issue error in formal mode on derived type
11595 other than type extensions of tagged record types
11596 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
11597 with check on access definition
11598 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
11599 mode on protected definition.
11600 (Analyze_Task_Definition): issue error in formal mode on task definition
11602 2011-08-02 Robert Dewar <dewar@adacore.com>
11604 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
11606 2011-08-02 Javier Miranda <miranda@adacore.com>
11608 * sem_ch6.adb (Can_Override_Operator): New function.
11609 (Verify_Overriding_Indicator): Add missing code to check overriding
11610 indicator in operators. Fixes regression.
11611 (Check_Overriding_Indicator): Minor reformating after replacing the
11612 code that evaluates if the subprogram can override an operator by
11613 invocations to the above new function.
11615 (Write_Field26_Name): Add missing code to ensure that, following
11616 the documentation in einfo.ads, this field is not shown as attribute
11617 "Static_Initialization" on non-dispatching functions.
11619 2011-08-02 Jose Ruiz <ruiz@adacore.com>
11621 * sem_res.adb (Resolve_Call): A call to
11622 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
11623 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
11624 i.e., when the second parameter is of type Time_Span.
11626 2011-08-02 Vincent Celier <celier@adacore.com>
11628 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
11629 with an archive instead of -L<library dir> -l<library name>.
11631 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11633 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
11634 mark the base types In_Use in addition to making the operations
11637 2011-08-02 Ed Falis <falis@adacore.com>
11639 * init.c: add and setup __gnat_signal_mask for the exception signals
11640 * s-inmaop-vxworks.adb: new file.
11641 * s-intman-vxworks.adb: remove unnecessary initializations and
11643 * s-intman-vxworks.ads: remove unnecessary variable
11644 * s-taprop-vxworks.adb: simplify signal initialization
11646 2011-08-02 Robert Dewar <dewar@adacore.com>
11648 * sem_ch8.adb: Minor code reorganization, comment updates.
11650 2011-08-02 Robert Dewar <dewar@adacore.com>
11652 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
11653 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
11655 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
11656 (Matching_Static_Array_Bounds): Moved here from Sem_Res
11658 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11660 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
11661 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
11662 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
11663 use_type_clauses, to handle more efficiently use_type and use_all_type
11665 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
11666 Ada2012 Use_All_Type clause.
11667 (Use_Class_Wide_Operations): new procedure.
11669 2011-08-02 Robert Dewar <dewar@adacore.com>
11671 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
11672 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
11673 expression to expression function.
11675 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11677 * sem_ch4.adb: transform simple Ada2012 membership into equality only
11678 if types are compatible.
11680 2011-08-02 Yannick Moy <moy@adacore.com>
11682 * sem_res.adb (Matching_Static_Array_Bounds): new function which
11683 returns True if its argument array types have same dimension and same
11684 static bounds at each index.
11685 (Resolve_Actuals): issue an error in formal mode on actuals passed as
11686 OUT or IN OUT paramaters which are not view conversions in SPARK.
11687 (Resolve_Arithmetic_Op): issue an error in formal mode on
11688 multiplication or division with operands of fixed point types which are
11689 not qualified or explicitly converted.
11690 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
11691 Boolean or array type (except String) operands.
11692 (Resolve_Equality_Op): issue an error in formal mode on equality
11693 operators for array types other than String with non-matching static
11695 (Resolve_Logical_Op): issue an error in formal mode on logical operators
11696 for array types with non-matching static bounds. Factorize the code in
11697 Matching_Static_Array_Bounds.
11698 (Resolve_Qualified_Expression): issue an error in formal mode on
11699 qualified expressions for array types with non-matching static bounds.
11700 (Resolve_Type_Conversion): issue an error in formal mode on type
11701 conversion for array types with non-matching static bounds
11703 2011-08-02 Robert Dewar <dewar@adacore.com>
11705 * par-ch10.adb: Minor code reorganization (use Nkind_In).
11707 2011-08-02 Ed Schonberg <schonberg@adacore.com>
11709 * par-ch9.adb: save location of entry for proper error message.
11711 2011-08-02 Javier Miranda <miranda@adacore.com>
11713 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
11714 (Use_Full_View) which permits this routine to climb through the
11715 ancestors using the full-view of private parents.
11716 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
11717 Use_Full_View to true in calls to Is_Ancestor.
11718 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
11719 true in call to Is_Ancestor.
11720 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
11721 Use_Full_View to true in call to Is_Ancestor.
11722 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
11723 call to Is_Ancestor.
11724 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
11725 Use_Full_View to true in calls to Is_Ancestor.
11726 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
11727 Make_Select_Specific_Data_Table, Register_Primitive,
11728 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
11729 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
11730 to true in call to Is_Ancestor.
11731 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
11732 Use_Full_View to true in calls to Is_Ancestor.
11734 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
11735 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
11737 2011-08-02 Robert Dewar <dewar@adacore.com>
11739 * gnat_rm.texi: Minor reformatting.
11740 * sem_prag.adb: Minor reformatting.
11742 2011-08-02 Tristan Gingold <gingold@adacore.com>
11744 * vms_data.ads: Add VMS qualifier for -gnateP.
11746 2011-08-02 Robert Dewar <dewar@adacore.com>
11748 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
11749 * par-ch7.adb (P_Package): Proper placement of aspects for package
11750 decl/instantiation.
11751 * par-endh.adb (Check_End): Ad Is_Sloc parameter
11752 (End_Statements): Add Is_Sloc parameterr
11753 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
11754 (Check_End): Ad Is_Sloc parameter
11755 (End_Statements): Add Is_Sloc parameterr
11757 2011-08-02 Vincent Celier <celier@adacore.com>
11759 * ug_words: Add VMS qualifier equivalent to -gnateP:
11760 /SYMBOL_PREPROCESSING.
11762 2011-08-02 Jose Ruiz <ruiz@adacore.com>
11764 * gnat-style.texi: For hexadecimal numeric literals the typical
11765 grouping of digits is 4 to represent 2 bytes.
11766 A procedure spec which is split into several lines is indented two
11769 2011-08-02 Yannick Moy <moy@adacore.com>
11771 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
11772 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
11773 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
11775 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
11776 choice in array aggregate
11777 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
11779 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
11780 positional and named aggregate for record, or others in record
11781 aggregate, or multiple choice in record aggregate
11782 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
11783 array operands to logical operations AND, OR and XOR do not have the
11784 same static lower and higher bounds
11785 * sem_ch5.adb, sinfo.ads: Correct typos in comments
11787 2011-08-01 Robert Dewar <dewar@adacore.com>
11789 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
11790 Replaces Last_Source_Node_In_Sequence.
11791 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
11792 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
11793 parens and blank in string (this was inconsistently implemented).
11795 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
11796 blank in string (this was inconsistently implemented).
11798 (Set_Global_Switches): Set formal mode switches appropriately
11799 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
11801 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
11802 call Set_Error_Msg_Lang to set "spark" as language name.
11803 * par.adb: Remove unnecessary call to set formal language for errout
11804 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
11805 appropriately and call Set_Error_Msg_Lang to set "spark" as language
11807 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
11808 calls to it, moved after resolution so that types are known
11809 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
11810 result of concatenation is not of type String
11811 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
11812 concatenation is not properly restricted
11813 * gnat_rm.texi: Add doc on pragma Spark_95.
11814 * gcc-interface/Makefile.in: Remove obsolete target pairs for
11815 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
11816 * gcc-interface/Make-lang.in: Update dependencies.
11818 2011-08-01 Javier Miranda <miranda@adacore.com>
11820 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
11821 condition that detects if the overridden operation must replace an
11824 2011-08-01 Javier Miranda <miranda@adacore.com>
11826 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
11827 code declarations inserted by Insert_Actions in each alternative of the
11828 N_Case_Expression node.
11830 2011-08-01 Robert Dewar <dewar@adacore.com>
11832 * sem_ch6.adb: Minor code reorganization.
11833 * sem_util.adb: Minor reformatting.
11835 2011-08-01 Pascal Obry <obry@adacore.com>
11837 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
11838 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
11840 2011-08-01 Yannick Moy <moy@adacore.com>
11842 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
11843 literal or operator symbol which is prefixed
11844 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
11845 mode on access attributes.
11846 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
11847 that concatenation operands are properly restricted in formal mode
11848 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
11849 Analyze_Concatenation_Operand. Issue an error in formal mode if the
11850 result of the concatenation has a type different from String.
11851 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
11852 Analyze_Quantified_Expression, Analyze_Slice,
11853 Analyze_Null): issue an error in formal mode on unsupported constructs
11855 (Analyze_Block_Statement): only issue error on source block statement
11856 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
11857 function which returns the last node in a list of nodes for which
11858 Comes_From_Source returns True, if any
11859 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
11860 Last_Source_Node_In_Sequence
11861 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
11862 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
11863 mode on unsupported constructs
11864 * sem_ch9.adb Do not return after issuing error in formal mode, as the
11865 rest of the actions may be needed later on since the error is marked as
11867 * sinfo.ads: Typos in comments.
11869 2011-08-01 Pascal Obry <obry@adacore.com>
11871 * projects.texi: Minor editing.
11873 2011-08-01 Yannick Moy <moy@adacore.com>
11875 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
11876 insertion character ~~
11877 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
11878 (Set_Error_Msg_Lang): new procedure which fixes the language for use
11879 with insertion character ~~
11880 (Set_Msg_Text): treat insertion character ~~
11881 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
11882 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
11883 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
11884 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
11885 errors related to the formal language restriction not serious
11886 (insertion character |).
11887 * par.adb (Par): set formal language for error messages if needed
11888 * sem_ch6.adb (Check_Missing_Return): take into account possible
11889 generated statements at the end of the function
11890 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
11891 enumeration value to define a new pragma SPARK_95
11892 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
11893 SPARK_Version): new type and variables to store the SPARK version
11895 (SPARK_Mode): return True when SPARK_Version is set
11896 * par-prag.adb: Correct indentation
11897 (Prag): take Pragma_SPARK_95 into account
11898 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
11901 2011-08-01 Robert Dewar <dewar@adacore.com>
11903 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
11904 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
11905 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
11907 2011-08-01 Pascal Obry <obry@adacore.com>
11909 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
11910 Target_Name to Get_Path call.
11911 (Parse_Single_Project): Likewise.
11912 (Post_Parse_Context_Clause): Likewise.
11913 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
11914 Call Initialise_Project_Path with the proper Target_Name.
11915 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
11917 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
11918 with the proper Target_Name.
11919 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
11920 Part.Parse routine.
11921 (Parse_Project_And_Apply_Config): Likewise.
11922 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
11923 This is fine as this part of the code is supporting only native
11925 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
11926 is fine as this part of the code is supporting only native compilation.
11928 2011-08-01 Yannick Moy <moy@adacore.com>
11930 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
11931 of homonym, unless the homonym is one of the cases allowed in SPARK
11932 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
11933 package declaration occurring after a body.
11935 2011-08-01 Robert Dewar <dewar@adacore.com>
11937 * checks.adb, exp_ch4.adb: Minor reformatting.
11939 2011-08-01 Javier Miranda <miranda@adacore.com>
11941 * einfo.ads (Access_Disp_Table): Fix documentation.
11942 (Dispatch_Table_Wrappers): Fix documentation.
11944 2011-08-01 Pascal Obry <obry@adacore.com>
11946 * prj-env.adb, prj-env.ads: Minor reformatting.
11948 2011-08-01 Yannick Moy <moy@adacore.com>
11950 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
11951 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
11952 procedures out of these packages.
11953 * errout.ads, errout.adb
11954 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
11955 procedures in of this package
11956 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
11957 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
11958 on misplaced later vs initial declarations, like in Ada 83
11959 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
11960 formal mode on attribute of private type whose full type declaration
11962 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
11963 package declaration inside a package specification
11964 (Analyze_Full_Type_Declaration): issue error in formal mode on
11965 controlled type or discriminant type
11966 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
11967 user-defined operator means that it should come from the source
11968 (New_Overloaded_Entity): issue error in formal mode on overloaded
11970 * sem_ch6.ads, sem_ch13.ads: typos in comments.
11972 2011-08-01 Thomas Quinot <quinot@adacore.com>
11974 * atree.adb: Minor reformatting.
11975 * checks.adb: Minor reformatting.
11977 2011-08-01 Vincent Celier <celier@adacore.com>
11979 * s-parame-vms-ia64.ads: Fix typo in comment
11981 * s-parame-vms-restrict.ads: Removed, unused.
11983 2011-08-01 Javier Miranda <miranda@adacore.com>
11986 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
11988 (Constrain_Index): Remove side effects in the evaluation of the bounds.
11989 * sem_ch3.ads, sem_ch3.adb
11990 (Is_Constant_Bound): New extended version of the subprogram that was
11991 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
11992 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
11993 * sem_aux.ads (Constant_Value): Fix typo in comment.
11994 * checks.adb (Generate_Index_Checks): New implementation which, for
11995 array objects with constant bounds, generates the runtime check
11996 referencing the bounds of the array type. For other cases this routine
11997 provides its previous behavior obtaining such values from the array
11999 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
12001 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
12002 we cannot have semantic interpretations of the new node.
12004 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12006 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
12009 2011-08-01 Arnaud Charlet <charlet@adacore.com>
12011 * sem_ch8.adb: Minor code editing.
12012 * s-vxwext.adb: Remove trailing space.
12013 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
12014 consistency with other files.
12016 2011-08-01 Thomas Quinot <quinot@adacore.com>
12018 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
12020 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12022 * par-ch10.adb: reject parameterized expressions as compilation unit.
12023 * sem_ch4.adb: handle properly conditional expression with overloaded
12024 then_clause and no else_clause.
12026 2011-08-01 Tristan Gingold <gingold@adacore.com>
12028 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
12029 like done by System.Aux_DEC.
12030 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
12032 2011-08-01 Yannick Moy <moy@adacore.com>
12034 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
12035 missing label at end of declaration (subprogram or package)
12036 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
12037 of positional and named parameter association
12038 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
12039 Error_Msg_SP which adds a prefix to the error message giving the name
12040 of the formal language analyzed
12041 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
12042 access result type in subprogram, unconstrained array as result type,.
12043 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
12045 * sem_ch8.adb: Code clean up.
12047 2011-08-01 Javier Miranda <miranda@adacore.com>
12049 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
12050 * einfo.ads (Access_Disp_Table): Fix documentation.
12051 (Dispatch_Table_Wrappers): Fix documentation.
12052 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
12053 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
12054 to enforce the documentation of this attribute.
12055 (Set_Is_Interface): Cleanup the assertion.
12056 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
12057 the Underlying_Type entity before reading attribute Access_Disp_Table.
12058 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
12059 Locate the Underlying_Type before reading attribute Access_Disp_Table.
12060 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
12061 the Underlying_Type entity before reading attribute Access_Disp_Table.
12062 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
12063 Locate the Underlying_Type entity before reading attribute
12066 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12068 * s-poosiz.ads: Additional overriding indicators.
12070 2011-08-01 Yannick Moy <moy@adacore.com>
12072 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
12074 (Analyze_Iteration_Scheme): issue error in formal mode when loop
12075 parameter specification does not include a subtype mark.
12076 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
12077 formal mode on abstract subprogram.
12078 (Analyze_Subprogram_Specification): issue error in formal mode on
12079 user-defined operator.
12080 (Process_Formals): issue error in formal mode on access parameter and
12081 default expression.
12082 * sem_ch9.adb (Analyze_Abort_Statement,
12083 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
12084 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
12085 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
12086 Analyze_Requeue, Analyze_Selective_Accept,
12087 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
12088 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
12089 issue error in formal mode on user-defined raise statement.
12091 2011-08-01 Thomas Quinot <quinot@adacore.com>
12093 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
12094 declaration being hidden when overriding an implicit inherited
12096 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
12097 (-gnats), do not complain about a source file that contains only a
12100 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12102 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
12103 variable if already set.
12105 2011-08-01 Arnaud Charlet <charlet@adacore.com>
12107 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
12108 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
12109 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
12110 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
12111 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
12112 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
12113 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
12114 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
12115 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
12116 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
12117 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
12118 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
12119 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
12120 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
12121 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
12122 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
12123 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
12124 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
12125 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
12126 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
12127 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
12128 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
12129 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
12130 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
12131 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
12132 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
12133 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
12134 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
12135 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
12136 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
12137 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
12138 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
12139 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
12140 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
12141 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
12142 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
12143 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
12144 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
12145 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
12146 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
12147 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
12148 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
12149 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
12150 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
12151 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
12152 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
12153 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
12154 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
12155 s-osinte-mingw.ads: Update to GPLv3 run-time license.
12156 Use GNAT instead of GNARL.
12158 2011-08-01 Bob Duff <duff@adacore.com>
12160 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
12161 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
12162 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
12165 2011-08-01 Yannick Moy <moy@adacore.com>
12167 * debug.adb (d.D) reverve flag for the SPARK mode
12168 (d.E) reverve flag for SPARK generation mode
12169 (d.F) reverve flag for Why generation mode
12170 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
12171 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
12172 functions which return True when the corresponding modes are set
12173 (Formal_Language): return "spark" or "alfa" when in formal verification
12175 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
12176 Error_Msg to prefix the error message with a tag giving the formal
12178 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
12179 message with a tag giving the formal language
12180 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
12182 (Analyze_Case_Statement): issue error in formal mode on case statement
12183 with a single "others" case alternative
12184 (Analyze_Exit_Statement): issue errors in formal mode on exit
12185 statements which do not respect SPARK restrictions
12186 (Analyze_Goto_Statement): issue error in formal mode on goto statement
12187 (Check_Unreachable_Code): always issue an error (not a warning) in
12188 formal mode on unreachable code (concerns both code after an infinite
12189 loop and after an unconditional jump, both not allowed in SPARK)
12190 * sem_ch6.adb (Analyze_Return_Statement): add call to
12191 Set_Return_Present for a procedure containing a return statement
12192 (already done for functions in Analyze_Function_Return)
12193 (Analyze_Function_Return): issue error in formal mode on extended
12194 return or if return is not last statement in function
12195 (Check_Missing_Return): issue error in formal mode if function does
12196 not end with return or if procedure contains a return
12197 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
12198 function to detect if there is an inner scope of its parameter S which
12201 2011-08-01 Thomas Quinot <quinot@adacore.com>
12203 * sem_ch6.ads: Minor reformatting.
12205 2011-08-01 Javier Miranda <miranda@adacore.com>
12207 * sem_util.adb (Abstract_Interface_List): Complete condition when
12208 processing private type declarations to avoid reading unavailable
12210 (Is_Synchronized_Tagged_Type): Complete condition when processing
12211 private extension declaration nodes to avoid reading unavailable
12214 2011-08-01 Thomas Quinot <quinot@adacore.com>
12216 * sem_ch3.adb: Minor reformatting.
12218 2011-08-01 Thomas Quinot <quinot@adacore.com>
12220 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
12221 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
12222 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
12223 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
12224 for VMS, instead parametrize the common implementation with
12225 System.Parameters declarations.
12227 2011-08-01 Eric Botcazou <ebotcazou@adacore.com>
12229 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
12231 2011-08-01 Tristan Gingold <gingold@adacore.com>
12233 * seh_init.c: Fix SEH handler installation on win64.
12235 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12237 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
12238 double analysis of an anonymous access to subprogram, because it can
12239 lead to improper sharing of profiles and a back-end crash.
12241 2011-08-01 Robert Dewar <dewar@adacore.com>
12243 * make.adb, sem_ch4.adb: Minor reformatting.
12244 * gcc-interface/Make-lang.in: Update dependencies.
12245 * sem_util.adb, exp_ch5.adb: Minor reformatting.
12247 2011-08-01 Arnaud Charlet <charlet@adacore.com>
12249 * gnat_rm.texi: Fix definition of Long_Integer.
12251 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12253 * exp_aggr.adb: check limit size of static aggregate unconditionally,
12254 to prevent storage exhaustion.
12255 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
12256 finalized is a function body, insert the cleanup code before the final
12257 return statement, to prevent spurious warnings.
12258 * s-pooglo.ads: add overriding indicator.
12260 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12262 * sem_ch4.adb (Operator_Check): improve error message when both a
12263 with_clause and a use_clause are needed to make operator usage legal.
12264 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
12265 determine whether a compilation unit is visible within an other,
12266 either through a with_clause in the current unit, or a with_clause in
12267 its library unit or one one of its parents.
12269 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12271 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
12272 over an arbitrary expression of an array or container type.
12273 * lib-xref.adb: clarify comment.
12275 2011-08-01 Bob Duff <duff@adacore.com>
12277 * einfo.ads: Minor reformatting.
12278 * debug.adb: Minor comment improvement.
12280 2011-08-01 Javier Miranda <miranda@adacore.com>
12282 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
12283 consider hidden subprograms as valid candidates.
12285 2011-08-01 Arnaud Charlet <charlet@adacore.com>
12287 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
12289 2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
12291 * gnat_ugn.texi: Fix typo.
12293 2011-08-01 Robert Dewar <dewar@adacore.com>
12295 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
12296 lib-xref.adb: Minor reformatting
12298 2011-08-01 Gary Dismukes <dismukes@adacore.com>
12300 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
12301 when to generate a call to Move_Final_List.
12302 (Has_Controlled_Parts): Remove this function.
12304 2011-08-01 Geert Bosch <bosch@adacore.com>
12306 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
12307 "," in choice list.
12309 2011-08-01 Thomas Quinot <quinot@adacore.com>
12311 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
12312 explicit raise of a predefined exception as Comes_From_Source if the
12313 original N_Raise_Statement comes from source.
12315 2011-08-01 Robert Dewar <dewar@adacore.com>
12317 * sinfo.ads: Add comment.
12318 * sem_ch6.adb: Minor reformatting.
12320 2011-08-01 Robert Dewar <dewar@adacore.com>
12322 * freeze.adb (Freeze_Entity): Refine check for bad component size
12323 clause to avoid rejecting confirming clause when atomic/aliased present.
12325 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12327 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
12328 better determine whether an entity reference is a write.
12329 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
12331 * lib-xref.adb (Output_References): Do no suppress a read reference at
12332 the same location as an immediately preceeding modify-reference, to
12333 handle properly in-out actuals.
12335 2011-08-01 Tristan Gingold <gingold@adacore.com>
12337 * env.c (__gnat_setenv) [VMS]: Refine previous change.
12339 2011-08-01 Quentin Ochem <ochem@adacore.com>
12341 * i-cstrin.adb (New_String): Changed implementation, now uses only the
12342 heap to compute the result.
12344 2011-08-01 Robert Dewar <dewar@adacore.com>
12346 * atree.ads: Minor reformatting.
12348 2011-08-01 Emmanuel Briot <briot@adacore.com>
12350 * g-expect.adb (Get_Command_Output): Fix memory leak.
12352 2011-08-01 Geert Bosch <bosch@adacore.com>
12354 * cstand.adb (P_Float_Type): New procedure to print the definition of
12355 predefined fpt types.
12356 (P_Mixed_Name): New procedure to print a name using mixed case
12357 (Print_Standard): Use P_Float_Type for printing floating point types
12358 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
12359 precision IEEE float.
12361 2011-08-01 Thomas Quinot <quinot@adacore.com>
12363 * sem_ch3.adb: Minor reformatting.
12365 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12367 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
12368 the completion of a generic function, insert the new body rather than
12369 rewriting the original.
12371 2011-08-01 Yannick Moy <moy@adacore.com>
12373 * sinfo.ads, errout.ads: Typos in comments.
12375 2011-08-01 Robert Dewar <dewar@adacore.com>
12377 * par-endh.adb: Minor reformatting.
12379 2011-08-01 Robert Dewar <dewar@adacore.com>
12381 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
12382 (Pre_Post_Aspects): New subtype.
12383 * par-ch12.adb (P_Generic): New syntax for aspects in packages
12384 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
12385 * par-ch7.adb (P_Package): Remove Decl parameter
12386 (P_Package): Handle new syntax for aspects (before IS)
12387 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
12389 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
12390 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
12391 (P_Package): Remove Decl parameter
12392 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
12394 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
12396 * sem_util.ads, sem_util.adb (Static_Boolean): New function
12397 * sinfo.ads: Document new syntax for aspects in packages etc.
12398 * sprint.adb: Handle new syntax of aspects before IS in package
12400 2011-08-01 Thomas Quinot <quinot@adacore.com>
12402 * atree.ads: Minor reformatting.
12403 * sem_prag.adb: Minor reformatting.
12405 2011-08-01 Robert Dewar <dewar@adacore.com>
12407 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
12408 case expr alternative.
12410 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12412 * sem_ch12.adb: Fix typo.
12414 2011-08-01 Geert Bosch <bosch@adacore.com>
12416 * sem_prag.adb (Check_No_Link_Name): New procedure.
12417 (Process_Import_Or_Interface): Use Check_No_Link_Name.
12418 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
12419 instead of Standard_Long_Long_Float_Size global. Preparation for
12420 eventual removal of per type constants.
12421 * exp_util.ads (Get_Stream_Size): New function returning the stream
12422 size value of subtype E.
12423 * exp_util.adb (Get_Stream_Size): Implement new function.
12424 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
12426 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
12428 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
12430 2011-08-01 Geert Bosch <bosch@adacore.com>
12432 * cstand.adb: Fix comments.
12433 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
12434 count of arguments.
12436 2011-08-01 Robert Dewar <dewar@adacore.com>
12438 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
12440 2011-08-01 Geert Bosch <bosch@adacore.com>
12442 * atree.ads: Fix comment.
12444 2011-08-01 Robert Dewar <dewar@adacore.com>
12446 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
12447 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
12448 * par.adb: Add with for Namet.Sp.
12449 * par-tchk.adb: Minor reformatting.
12451 2011-08-01 Vincent Celier <celier@adacore.com>
12453 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
12454 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
12455 of the init procedure of a SAL.
12456 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
12459 2011-08-01 Thomas Quinot <quinot@adacore.com>
12461 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
12464 2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12466 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
12468 2011-08-01 Thomas Quinot <quinot@adacore.com>
12470 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
12471 conformant with its spec (return True only for types that have
12472 an overriding Initialize primitive operation that prevents them from
12473 having preelaborable initialization).
12474 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
12475 initialization for controlled types in Ada 2005 or later mode.
12477 2011-08-01 Robert Dewar <dewar@adacore.com>
12479 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
12481 (Same_Aspect): New function.
12482 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
12483 Type_Invariant, Precondition, Postcondition.
12484 * snames.ads-tmpl: Add Name_Type_Invariant.
12486 2011-08-01 Robert Dewar <dewar@adacore.com>
12488 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
12490 (Freeze_All_Ent): Fix error in handling inherited aspects.
12491 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
12492 already analyzed, but don't skip entire processing of a declaration,
12493 that's wrong in some cases of declarations being rewritten.
12494 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
12495 Don't delay for integer, string literals
12496 Treat predicates in usual manner for delay, remove special case code,
12498 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
12499 (Build_Predicate_Function): Update saved expression in aspect
12500 (Build_Invariant_Procedure): Update saved expression in aspect
12501 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
12502 of replacement of discriminant references if the reference is simple.
12504 2011-08-01 Robert Dewar <dewar@adacore.com>
12506 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
12507 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
12508 Static_Predicate and Dynamic_Predicate.
12509 (Build_Predicate_Function): Add processing for Static_Predicate
12510 and Dynamic_Predicate.
12511 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
12512 (From_Static_Predicate): New flag
12513 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
12515 2011-08-01 Robert Dewar <dewar@adacore.com>
12517 * usage.adb: Documentation cleanup for Ada version modes in usage.
12518 * expander.adb: Minor reformatting.
12520 2011-08-01 Robert Dewar <dewar@adacore.com>
12522 * atree.ads: Minor comment fix.
12523 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
12524 a-witeio.ads, sem_prag.adb: Minor reformatting.
12526 2011-08-01 Doug Rupp <rupp@adacore.com>
12528 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
12529 pointers. Use descrip.h header file for convenience. Add some
12532 2011-08-01 Robert Dewar <dewar@adacore.com>
12534 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
12535 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
12536 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
12538 (Check_Aspect_At_End_Of_Declarations): New procedure
12539 (Analye_Aspect_Specification): Minor changes for above procedures
12540 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
12541 specification node as well.
12543 2011-08-01 Pascal Obry <obry@adacore.com>
12545 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
12546 Windows files. Use GetFilesAttributes() in this case to check for file
12547 existence instead of returning with an error code.
12549 2011-08-01 Vincent Celier <celier@adacore.com>
12551 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
12552 High is above Source length.
12554 2011-08-01 Robert Dewar <dewar@adacore.com>
12556 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
12558 2011-08-01 Robert Dewar <dewar@adacore.com>
12560 * aspects.ads (Boolean_Aspects): New subtype.
12561 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
12562 for derived types in cases where the parent type and derived type have
12564 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
12565 with aspects when parent type also has aspects.
12566 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
12567 boolean expression at this point).
12568 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
12569 accordance with final decision on the Ada 2012 feature.
12570 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
12572 2011-08-01 Matthew Heaney <heaney@adacore.com>
12574 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
12576 2011-08-01 Pascal Obry <obry@adacore.com>
12578 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
12579 Fix Replace_Slice when High is above current string size.
12580 (Replace_Slice): Fix DL computation when High is above current
12583 2011-08-01 Gary Dismukes <dismukes@adacore.com>
12585 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
12587 2011-08-01 Matthew Heaney <heaney@adacore.com>
12589 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
12592 2011-08-01 Pascal Obry <obry@adacore.com>
12594 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
12597 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12599 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
12600 access to protected subprograms in generic bodies.
12601 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
12602 protected type, indicate that the convention of the subprogram is
12603 Convention_Protected, because it may be used in subsequent declarations
12604 within the protected declaration.
12606 2011-08-01 Vincent Celier <celier@adacore.com>
12608 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
12609 and "final" procedures when the name of the library is "ada", to avoid
12610 duplicate symbols "adainit" and "adafinal" in executables.
12612 2011-08-01 Ed Schonberg <schonberg@adacore.com>
12614 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
12615 quantified expression that appears within a postcondition and uses the
12616 Ada2012 'Result attribute.
12618 2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12620 * init.c (__gnat_error_handler): Cast reason to int.
12621 (__gnat_install_handler): Explain sa_sigaction use.
12623 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
12625 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
12626 subprogram has copy-in copy-out parameters, try to promote the mode of
12627 the return type if it is passed in registers.
12629 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
12631 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
12632 left operand as addressable.
12634 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
12636 * gcc-interface/gigi.h (build_function_stub): Remove.
12637 (build_return_expr): Likewise.
12638 (convert_vms_descriptor): Declare.
12639 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
12640 (build_function_stub): Move to...
12641 * gcc-interface/utils2.c (build_return_expr): Move to...
12642 * gcc-interface/trans.c (build_function_stub): ...here.
12643 (build_return_expr): ...here.
12644 (Subprogram_Body_to_gnu): Add local variable for language_function.
12645 Disconnect the parameter attributes cache, if any, once done with it.
12646 Call end_subprog_body only after setting the end_locus.
12647 Build the stub associated with the function, if any, at the very end.
12648 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
12649 variables and streamline control flow.
12651 2011-07-23 Arnaud Charlet <charlet@adacore.com>
12654 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
12655 g-trasym-dwarf.adb.
12657 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12660 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
12661 Assign to act.sa_sigaction.
12662 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
12663 current->return_address to char * before arithmetic.
12665 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12667 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
12668 Correct argument types.
12669 Extract code from reason.
12670 (__gnat_install_handler): Assign to act.sa_sigaction.
12672 2011-07-21 Eric Botcazou <ebotcazou@adacore.com>
12674 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
12675 (GNAT1_OBJS): ...here.
12677 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
12680 * g-socthi-mingw.adb (Fill): Fix formatting.
12682 * gcc-interface/gigi.h: Move around comment.
12684 2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12687 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
12689 2011-07-14 Florian Weimer <fw@deneb.enyo.de>
12692 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
12694 2011-07-13 Eric Botcazou <ebotcazou@adacore.com>
12696 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
12697 range comparison if Pmode is SImode.
12699 2011-07-12 Laurent GUERBY <laurent@guerby.net>
12700 Eric Botcazou <ebotcazou@adacore.com>
12702 * adadecode.c: Wrap up in extern "C" block.
12703 * adadecode.h: Likewise.
12704 * adaint.c: Likewise. Remove 'const' keyword.
12705 * adaint.h: Likewise.
12706 * argv.c: Likewise.
12707 * atree.h: Likewise.
12709 * cstreams.c: Likewise.
12711 * exit.c: Likewise.
12713 * final.c: Likewise.
12714 * init.c: Likewise.
12715 * initialize.c: Likewise.
12716 * link.c: Likewise.
12717 * namet.h: Likewise.
12718 * nlists.h: Likewise.
12719 * raise.c: Likewise.
12720 * raise.h: Likewise.
12721 * repinfo.h: Likewise.
12722 * seh_init.c: Likewise.
12723 * targext.c: Likewise.
12724 * tracebak.c: Likewise.
12725 * uintp.h: Likewise.
12726 * urealp.h: Likewise.
12727 * xeinfo.adb: Wrap up generated C code in extern "C" block.
12728 * xsinfo.adb: Likewise.
12729 * xsnamest.adb: Likewise.
12730 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
12731 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
12732 * gcc-interface/misc.c: Likewise.
12733 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
12734 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
12735 ada/targext.o here...
12736 (GNAT_ADA_OBJS): ...and not here.
12737 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
12738 (GNATBIND_OBJS): Reorder.
12740 2011-07-07 Richard Henderson <rth@redhat.com>
12742 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
12743 dwarf2out_frame_init.
12745 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
12747 * gcc-interface/misc.c (gnat_init): Tweak previous change.
12749 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12752 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
12754 2011-07-06 Richard Guenther <rguenther@suse.de>
12756 * gcc-interface/misc.c (gnat_init): Merge calls to
12757 build_common_tree_nodes and build_common_tree_nodes_2.
12758 Re-initialize boolean_false_node.
12760 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
12761 Olivier Hainque <hainque@adacore.com>
12762 Nicolas Setton <setton@adacore.com>
12764 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
12765 the type according to the ARTIFICIAL_P parameter.
12766 (create_type_decl): Likewise.
12767 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
12769 2011-07-01 Eric Botcazou <ebotcazou@adacore.com>
12771 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
12772 (gnatbind): Likewise.
12774 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12776 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
12778 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12780 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
12781 local variable throughout. Remove useless call to Base_Type.
12782 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
12783 Take it also into account for the volatileness of the field. Set the
12784 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
12786 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12788 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
12789 on a dereference built for a by-ref object if it has an address clause.
12791 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12793 * einfo.ads (Address_Taken): Document use for the second argument of
12794 Asm_Input and Asm_Output attributes.
12795 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
12796 argument is an entity name, then set Address_Taken on it.
12797 <Attribute_Asm_Output>: Likewise.
12798 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
12799 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
12800 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
12801 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
12803 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
12805 PR middle-end/46500
12806 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
12808 2011-06-14 Joseph Myers <joseph@codesourcery.com>
12810 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
12811 (ada/utils.o): Update dependencies.
12812 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
12813 ../../../libcpp/libcpp.a.
12814 * gcc-interface/utils.c: Include common/common-target.h.
12815 (process_attributes): Use targetm_common.have_named_sections.
12817 2011-06-07 Richard Guenther <rguenther@suse.de>
12819 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
12822 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12824 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
12825 TREE_THIS_NOTRAP flag.
12827 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12829 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
12832 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12834 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
12835 constants whose full view has discriminants specially.
12837 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12839 * gcc-interface/utils.c: Include diagnostic.h.
12840 (gnat_write_global_declarations): Output debug information for all
12841 global type declarations before finalizing the compilation unit.
12842 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
12844 2011-05-25 Jakub Jelinek <jakub@redhat.com>
12846 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
12848 2011-05-25 Kai Tietz <ktietz@redhat.com>
12850 * adaint.c (__gnat_to_canonical_file_list_next): Use array
12851 initialization instead of const/none-const pointer assignment.
12853 2011-05-24 Joseph Myers <joseph@codesourcery.com>
12855 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
12856 $(EXTRA_GNAT1_OBJS).
12857 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
12858 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
12859 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
12860 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
12861 libcommon-target.a instead of prefix.o.
12863 2011-05-21 Joseph Myers <joseph@codesourcery.com>
12866 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
12868 2011-05-20 Joseph Myers <joseph@codesourcery.com>
12870 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
12871 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
12872 instead of version.o.
12874 2011-05-18 Kai Tietz <ktietz@redhat.com>
12876 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
12877 boolean_false_node instead of integer_zero_node.
12878 (convert_with_check): Likewise.
12879 * gcc-interface/decl.c (choices_to_gnu): Likewise.
12881 2011-05-12 Eric Botcazou <ebotcazou@adacore.com>
12883 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
12884 type of the parameter is an unconstrained array, convert the actual to
12885 the type of the formal in the In Out and Out cases as well.
12887 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
12889 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
12890 call build_function_type_array or build_varargs_function_type_array
12892 (create_subprog_type): Don't call build_function_type; call
12893 build_function_type_vec instead.
12895 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
12897 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
12898 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
12899 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
12901 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
12903 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
12905 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
12906 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
12908 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
12910 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
12912 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
12914 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
12915 instead of accessing TYPE_ARG_TYPES directly.
12916 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
12918 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12921 * gcc-interface/gigi.h (get_variant_part): Declare.
12922 * gcc-interface/decl.c (get_variant_part): Make global.
12923 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
12924 types have the same constant size, are record types and T1 has a
12925 variant part while T2 doesn't.
12927 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12929 * gcc-interface/utils.c (begin_subprog_body): Do not call
12931 (end_subprog_body): Likewise.
12933 2011-05-04 Richard Guenther <rguenther@suse.de>
12935 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
12937 (pos_to_constructor): Likewise.
12939 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12940 Eric Botcazou <ebotcazou@adacore.com>
12942 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
12943 of build_function_type. Adjust calls to...
12944 (build_raise_check): ...this. Do not take a void_tree parameter.
12945 Call build_function_type_list instead of build_function_type.
12946 Fix head comment and swap couple of conditional blocks.
12948 2011-04-30 Eric Botcazou <ebotcazou@adacore.com>
12950 * gnatvsn.ads (Library_Version): Bump to 4.7.
12951 (Current_Year): Bump to 2011.
12953 2011-04-29 Michael Matz <matz@suse.de>
12955 * gcc-interface/misc.c (gnat_handle_option): Set
12956 warn_maybe_uninitialized.
12958 2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
12960 * gnat_ugn.texi (Complexity Metrics Control): Update link to
12961 the Watson/McCabe paper.
12963 2011-04-23 Jim Meyering <meyering@redhat.com>
12965 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
12967 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
12969 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
12972 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
12974 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
12976 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
12977 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
12978 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
12979 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
12980 <all>: Do not set flags on the reused DECL node coming from an alias.
12981 Set DECL_IGNORED_P on the DECL node built for subprograms if they
12982 don't need debug info here...
12983 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
12984 (gigi): Adjust calls to create_subprog_decl.
12985 (build_raise_check): Likewise.
12986 (establish_gnat_vms_condition_handler): Likewise.
12987 (Compilation_Unit_to_gnu): Likewise.
12988 (gnat_to_gnu): Likewise.
12990 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
12992 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
12993 (NO_REORDER_ADAFLAGS): New variable.
12994 (EXTRA_GNATTOOLS): Always define.
12995 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
12996 Clean up and adjust list of files compiled with special options.
12997 * gcc-interface/Make-lang.in: Likewise.
12998 (ada/decl.o): Cosmetical change.
12999 (ada/misc.o): Remove dependency on $(PLUGIN_H).
13001 2011-04-20 Jim Meyering <meyering@redhat.com>
13003 * initialize.c (__gnat_initialize): Remove useless if-before-free.
13005 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
13007 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
13008 $(CFLAGS) on the link line.
13010 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
13012 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
13013 padded type built for the return type if it is unconstrained.
13015 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
13017 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
13019 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
13021 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
13022 before calling TREE_CHAIN.
13023 * gcc-interface/misc.c (gnat_init_ts): New function.
13024 (LANG_HOOKS_INIT_TS): Define.
13026 2011-04-12 Martin Jambor <mjambor@suse.cz>
13028 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
13029 instead of cgraph_node.
13031 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
13033 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
13034 alignment on fields of the RETURN type built for the Copy-In Copy-Out
13037 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
13039 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
13040 of aggregate types that contain a placeholder.
13042 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
13044 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
13046 (handle_type_generic_attribute): Likewise.
13048 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
13051 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
13053 2011-04-04 Kai Tietz <ktietz@redhat.com>
13056 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
13059 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13061 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
13062 type case, do not strip a padding type around the array type.
13064 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13066 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
13069 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13071 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
13072 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
13073 code for -feliminate-unused-debug-types.
13074 (gnat_post_options): Likewise.
13076 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13078 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
13079 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
13082 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13084 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
13085 DECL_ARTIFICIAL flag on enumeration types.
13087 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13089 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
13090 fat pointer types artificial unconditionally.
13091 <E_Array_Subtype>: Attach the base array type as a parallel type if it
13094 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13096 * gcc-interface/gigi.h (get_dummy_type): Declare.
13097 (build_dummy_unc_pointer_types): Likewise.
13098 (finish_fat_pointer_type): Likewise.
13099 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
13100 fat pointer type has been built, complete it in place.
13101 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
13102 and thin pointers. Remove useless variable.
13103 (finish_fat_pointer_type): Make global and move to...
13104 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
13105 (get_dummy_type): New function.
13106 (build_dummy_unc_pointer_types): Likewise.
13107 (gnat_pushdecl): Propage the name to the anonymous variants only.
13108 (update_pointer_to): Only adjust the pointer types in the unconstrained
13111 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13113 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
13114 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
13115 if this is a Taft amendment type and the full declaration is available.
13116 * gcc-interface/trans.c (process_type): Likewise.
13117 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
13118 (process_freeze_entity): Likewise.
13119 * gcc-interface/utils.c (dummy_global): New static variable.
13120 (gnat_write_global_declarations): If there are types declared as used
13121 at the global level, insert them in the global hash table.
13123 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13125 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
13126 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
13127 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
13129 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
13130 flag of the type accordingly.
13131 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
13133 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13135 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
13136 finalizing types when updating the pointers to the designated type.
13137 <all>: Finalize the deferred types even if we didn't defer processing
13138 of incomplete types in this invocation.
13140 2011-04-01 Olivier Hainque <hainque@adacore.com>
13141 Nicolas Setton <setton@adacore.com>
13142 Eric Botcazou <ebotcazou@adacore.com>
13144 * gcc-interface/misc.c (gnat_descriptive_type): New function.
13145 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
13147 2011-03-28 Kai Tietz <ktietz@redhat.com>
13149 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
13151 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
13152 * system-mingw.ads (System): Change ZCX_By_Default default to True.
13154 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
13156 2011-03-28 Tristan Gingold <gingold@adacore.com>
13159 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
13160 Use ada output of gnatbind.
13161 (ada/b_gnatb.adb): Ditto.
13162 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
13163 (ada.mostlyclean, ada.stage1)
13164 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
13165 (ada.stagefeedback): Adjust.
13166 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
13167 Use ada output of gnatbind.
13168 (b_gnatm.adb): Ditto.
13169 (b_gnatl.o, b_gnatm.o): New rules.
13171 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
13173 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
13174 for the padded type built to support a specified size or alignment.
13176 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
13178 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
13179 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
13180 unconditionally to the end of the unit when the designated type is
13182 <all>: Rename local variable. Attempt to un-defer types only and do it
13183 for limited_with'ed types as well.
13184 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
13185 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
13186 consistently and remove redundant call to finalize_from_with_types.
13188 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
13190 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
13191 subprograms without a previous spec declared in the same unit.
13192 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
13193 subprograms at the end of the unit instead of at the beginning.
13194 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
13195 isn't public for the special handling of non-inline functions nested
13196 inside inline external functions.
13198 2011-03-25 Jeff Law <law@redhat.com>
13200 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
13202 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13204 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
13205 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
13206 to compute Set_Size_Depends_On_Discriminant.
13207 (Layout_Type): Call it on array types in back-end layout mode.
13208 * sem_util.adb (Requires_Transient_Scope): Return true for array
13209 types only if the size depends on the value of discriminants.
13210 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
13211 type if the RHS is a call to a function that returns an unconstrained
13212 type with default discriminant.
13214 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13216 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
13217 non-conversion to the nominal result type at the end.
13219 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
13221 * gcc-interface/trans.c (create_temporary): New function taken from...
13222 (create_init_temporary): ...here. Call it.
13223 (call_to_gnu): Create the temporary for the return value early, if any.
13224 Create it for a function with copy-in/copy-out parameters if there is
13225 no target; in other cases of copy-in/copy-out, use another temporary.
13226 Push the new binding level lazily. Add and rename local variables.
13228 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
13230 * gcc-interface/decl.c (validate_size): Improve comments and tweak
13232 (set_rm_size): Likewise.
13234 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
13236 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
13237 for the padded type built in order to support a specified alignment.
13238 Fix incorrect formatting.
13240 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
13243 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
13245 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
13247 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
13248 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
13249 to the end of the list. Adjust recursive call. Rename local variable.
13250 If REORDER is true, reorder components of the record type.
13251 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
13252 components_to_record and adjust the parameter list.
13254 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
13256 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
13257 disabled, use the variable for bounds of loop iteration scheme.
13259 2011-03-21 Kai Tietz <ktietz@redhat.com>
13262 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
13264 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
13266 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
13267 out whether the expression is read-only. Short-circuit placeholder
13268 case and rename a couple of local variables.
13270 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
13272 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
13273 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
13274 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
13275 (convert): Deal with conversions from a smaller form type specially.
13277 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
13279 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
13280 its argument, except for the special -I- switch.
13282 2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
13284 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
13287 2011-02-08 Eric Botcazou <ebotcazou@adacore.com>
13289 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
13291 2011-02-03 Eric Botcazou <ebotcazou@adacore.com>
13293 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
13295 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
13296 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
13297 instead of GNAT_FORMAL. Protect the expression against multiple uses.
13298 Do not generate the check directly, instead instantiate the template
13299 check present in the descriptor.
13300 (make_descriptor_field): Move around.
13301 (build_vms_descriptor32): Build a template check in the POINTER field.
13302 (build_vms_descriptor): Remove useless suffixes.
13303 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
13305 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
13308 * targext.c: Include target files if IN_RTS is defined.
13310 2011-01-26 Richard Guenther <rguenther@suse.de>
13313 * targext.c: Include config.h.
13314 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
13317 2011-01-04 Pascal Obry <obry@adacore.com>
13318 Eric Botcazou <ebotcazou@adacore.com>
13320 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
13322 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13324 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
13325 end-of-case on the end label and its associated gotos, if any.
13327 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13329 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
13330 expressions of the parameter cache within the statement group of
13331 the CICO mechanism.
13333 2011-01-04 Olivier Hainque <hainque@adacore.com>
13334 Eric Botcazou <ebotcazou@adacore.com>
13336 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
13337 (set_end_locus_from_node): New function.
13338 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
13339 make and the function end_locus.
13340 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
13341 for the elaboration subprogram.
13342 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
13343 set the end_locus of the expression as well.
13345 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13348 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
13349 variables that are referenced in exception handlers volatile.
13353 Copyright (C) 2011 Free Software Foundation, Inc.
13355 Copying and distribution of this file, with or without modification,
13356 are permitted in any medium without royalty provided the copyright
13357 notice and this notice are preserved.
13359 * gnat_rm.texi: Ramification of pragma Eliminate documentation
13360 - fix bugs in the description of Source_Trace;
13361 - get rid of UNIT_NAME;
13363 2011-08-02 Javier Miranda <miranda@adacore.com>
13366 (Build_Dispatching_Requeue): Adding support for VM targets
13367 since we cannot directly reference the Tag entity.
13368 * exp_sel.adb (Build_K): Adding support for VM targets.
13369 (Build_S_Assignment): Adding support for VM targets.
13371 (Default_Prim_Op_Position): In VM targets do not restrict availability
13372 of predefined interface primitives to compiling in Ada 2005 mode.
13373 (Is_Predefined_Interface_Primitive): In VM targets this service is not
13374 restricted to compiling in Ada 2005 mode.
13375 (Make_VM_TSD): Generate code that declares and initializes the OSD
13376 record. Needed to support dispatching calls through synchronized
13379 (Make_Predefined_Primitive_Specs): Enable generation of predefined
13380 primitives associated with synchronized interfaces.
13381 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
13382 primitives associated with synchronized interfaces.
13384 2011-08-02 Yannick Moy <moy@adacore.com>
13386 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
13387 statements hidden in SPARK if preceded by the HIDE directive
13388 (Parse_Exception_Handlers): mark each exception handler in a sequence of
13389 exception handlers as hidden in SPARK if preceded by the HIDE directive
13390 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
13391 if starting with the HIDE directive
13392 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
13393 starting with the HIDE directive; mark the declarations in a private
13394 part as hidden in SPARK if the private part starts with the HIDE
13396 * restrict.adb, restrict.ads
13397 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
13398 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
13399 argument node belongs to a part which is hidden in SPARK
13400 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
13401 parts in SPARK; protect the possibly costly call to
13402 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
13403 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
13404 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
13405 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
13407 (Scan): recognize special comment starting with '#' and followed by
13408 SPARK keyword "hide" as a HIDE directive.
13410 2011-08-02 Yannick Moy <moy@adacore.com>
13412 * types.ads, erroutc.ads: Minor reformatting.
13414 2011-08-02 Vincent Celier <celier@adacore.com>
13416 * link.c: Add response file support for cross platforms.
13418 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13420 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
13421 in an association, set parent field of copy before partial analysis.
13422 * sem_res.adb (Resolve_Slice): create reference to itype only when
13423 expansion is enabled.
13425 2011-08-02 Yannick Moy <moy@adacore.com>
13427 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
13428 for new flag denoting which subprogram bodies are in ALFA
13429 * restrict.adb, sem_ch7.adb: Update comment
13430 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
13431 sem_ch9.adb, sem_res.adb: Add calls to
13432 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
13433 * sem_ch6.adb (Analyze_Function_Return): add calls to
13434 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
13435 middle of the body, and extended return.
13436 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
13437 False when missing return.
13438 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
13439 to True for subprograms whose spec is in ALFA. Remove later on the flag
13440 on the entity used for a subprogram body when there exists a separate
13442 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
13443 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
13444 False, otherwise do nothing.
13446 2011-08-02 Robert Dewar <dewar@adacore.com>
13448 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
13450 2011-08-02 Yannick Moy <moy@adacore.com>
13452 * sem_ch4.ads: minor formatting.
13454 2011-08-02 Yannick Moy <moy@adacore.com>
13456 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
13457 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
13458 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
13459 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
13460 opt.ads: cleanup of SPARK mode
13462 2011-08-02 Yannick Moy <moy@adacore.com>
13464 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
13466 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
13467 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
13469 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
13470 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
13471 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
13472 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
13474 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
13476 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
13477 functions whose return type is not in ALFA.
13478 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
13480 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
13481 parameter's type is not in ALFA.
13482 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
13485 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13487 * sem_ch6 (Analyze_Expression_Function): treat the function as
13488 Inline_Always, and introduce a subprogram declaration for it when it is
13490 * inline.adb (Add_Inlined_Body): recognize bodies that come from
13491 expression functions, so that the back-end can determine whether they
13492 can in fact be inlined.
13493 * sem_util.adb (Is_Expression_Function): predicate to determine whether
13494 a function body comes from an expression function.
13496 2011-08-02 Gary Dismukes <dismukes@adacore.com>
13498 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
13499 null exclusions to test Can_Never_Be_Null on the anonymous access types
13500 of the formals rather than testing the formals themselves. Exclude this
13501 check in cases where the Old_Formal is marked as a controlling formal,
13502 to avoid issuing spurious errors for bodies completing dispatching
13503 operations (due to the flag not getting set on controlling access
13504 formals in body specs).
13505 (Find_Corresponding_Spec): When checking full and subtype conformance of
13506 subprogram bodies in instances, pass Designated and E in that order, for
13507 consistency with the expected order of the formals (New_Id followed by
13510 2011-08-02 Robert Dewar <dewar@adacore.com>
13512 * sem_ch8.adb: Minor reformatting.
13514 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13516 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
13517 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
13518 primitive operations of class-wide actuals.
13520 2011-08-02 Javier Miranda <miranda@adacore.com>
13522 * exp_atag.ads, exp_atag.adb
13523 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
13524 since its value is implicitly passed in argument Typ.
13525 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
13526 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
13527 Build_Common_Dispatching_Select_Statements.
13529 2011-08-02 Robert Dewar <dewar@adacore.com>
13531 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
13532 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
13533 Minor reformatting.
13535 2011-08-02 Robert Dewar <dewar@adacore.com>
13537 * sem_res.adb: Minor reformatting.
13538 * sem_prag.adb: Minor reformatting.
13540 2011-08-02 Javier Miranda <miranda@adacore.com>
13542 * exp_atag.adb, exp_atags.ads
13543 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
13544 by the tagged type Entity. Required to use this routine in the VM
13545 targets since we do not have available the Tag entity in the VM
13548 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
13549 Ada.Tags has not been previously loaded.
13551 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
13552 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
13554 (Enclosing_Dynamic_Scope): Add missing support to handle the full
13555 view of enclosing scopes. Required to handle enclosing scopes that
13556 are synchronized types whose full view is a task type.
13558 (Build_VM_TSDs): Minor code improvement to avoid generating and
13559 analyzing lists with empty nodes.
13560 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
13561 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
13562 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
13563 (Make_Disp_Timed_Select_Body): Add support for VM targets.
13564 (Make_Select_Specific_Data_Table): Add support for VM targets.
13565 (Make_VM_TSD): Generate code to initialize the SSD structure of
13568 2011-08-02 Yannick Moy <moy@adacore.com>
13570 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
13571 cross-references section in ALI.
13572 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
13573 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
13575 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
13576 subprogram or package entity of a node
13577 (Is_Local_Reference_Type): new function returns True for references
13578 selected in local cross-references.
13579 (Lt): function extracted from Lt in Output_References
13580 (Write_Entity_Name): function extracted from Output_References
13581 (Generate_Definition): generate reference with type 'D' for definition
13582 of objects (object declaration and parameter specification), with
13583 appropriate locations and units, for use in local cross-references.
13584 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
13585 references of type 'I' for initialization in object definition.
13586 (Output_References): move part of function Lt and procedure
13587 Write_Entity_Name outside of the body. Ignore references of types 'D'
13588 and 'I' introduced for local cross-references.
13589 (Output_Local_References): new procedure to output the local
13590 cross-references sections.
13591 (Lref_Entity_Status): new array defining whether an entity is a local
13592 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
13593 with 'I' type when initialization expression is present.
13594 * get_scos.adb, get_scos.ads: Correct comments and typos
13596 2011-08-02 Javier Miranda <miranda@adacore.com>
13598 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
13600 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
13602 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
13605 2011-08-02 Vincent Celier <celier@adacore.com>
13607 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
13608 (No_Space_Img): New function
13609 (Find_Excluded_Sources): When reading from a file, record the file name
13610 and the line number for each excluded source.
13611 (Mark_Excluded_Sources): When reporting an error, if the excluded
13612 sources were read from a file, include file name and line number in
13615 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13617 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
13619 2011-08-02 Robert Dewar <dewar@adacore.com>
13621 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
13623 2011-08-02 Javier Miranda <miranda@adacore.com>
13625 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
13626 generation of TSDs to the DOTNET compiler.
13627 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
13628 generation of TSDs to the DOTNET compiler.
13630 2011-08-02 Javier Miranda <miranda@adacore.com>
13632 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
13633 record of all the tagged types declared inside library level package
13634 declarations, library level package bodies or library level subprograms.
13635 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
13636 associated with a given tagged type.
13637 (Build_VM_TSDs): New subprogram.
13638 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
13639 compilation units that are subprograms.
13640 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
13641 compilation units that are package bodies.
13642 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
13643 units that are a package declaration or a package instantiation.
13644 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
13645 reorganization to improve the error generated by the frontend when the
13646 function Ada.Tags.Secondary_Tag is not available.
13647 * rtsfind.ads (RE_Register_TSD): New runtime entity.
13648 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
13650 2011-08-02 Javier Miranda <miranda@adacore.com>
13652 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
13654 2011-08-02 Robert Dewar <dewar@adacore.com>
13656 * s-imenne.ads: Minor reformatting.
13658 2011-08-02 Robert Dewar <dewar@adacore.com>
13660 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
13661 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
13662 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
13664 2011-08-02 Robert Dewar <dewar@adacore.com>
13666 * einfo.ads (Materialize_Entity): Document this is only for renamings
13667 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
13668 required debug information in the case where we transform the object
13669 declaration into a renaming declaration.
13670 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
13672 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
13673 Materialize_Entity.
13675 2011-08-02 Robert Dewar <dewar@adacore.com>
13677 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
13678 Suppress_Init_Procs.
13679 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
13680 Suppress_Initialization/Initialization_Suppressed.
13681 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
13682 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
13683 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
13684 * sem_prag.adb: New processing for pragma Suppress_Initialization.
13686 2011-08-02 Robert Dewar <dewar@adacore.com>
13688 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
13689 Minor reformatting.
13691 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13693 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
13694 only have inheritable classwide pre/postconditions.
13696 2011-08-02 Javier Miranda <miranda@adacore.com>
13698 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
13699 * rtsfind.ads (RE_Check_TSD): New runtime entity.
13700 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
13701 checks if the external tag of a type is the same as the external tag
13702 of some other declaration.
13704 2011-08-02 Thomas Quinot <quinot@adacore.com>
13706 * s-taskin.ads: Minor reformatting.
13708 2011-08-02 Emmanuel Briot <briot@adacore.com>
13710 * g-comlin.adb (Display_Help): swap the order in which it prints the
13711 short help and the general usage.
13713 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13715 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
13716 the aspect declarations and attach them to the generic copy for
13717 subsequent analysis.
13718 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
13719 declarations of the generic tree to the new subprogram declarations.
13720 * sem_attr.adb (Check_Precondition_Postcondition): recognize
13721 conditions that apply to a subprogram instance.
13723 2011-08-02 Robert Dewar <dewar@adacore.com>
13725 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
13727 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13729 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
13730 private type with a tagged full view is not derived in the immediate
13731 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
13733 2011-08-02 Robert Dewar <dewar@adacore.com>
13735 * exp_ch4.adb: Minor reformatting.
13737 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13739 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
13740 Ada2012 iterator, the loop will be rewritten during expansion into a
13741 while loop with a cursor and an element declaration. Do not analyze the
13742 body in this case, because if the container is for indefinite types the
13743 actual subtype of the elements will only be determined when the cursor
13744 declaration is analyzed.
13746 2011-08-02 Arnaud Charlet <charlet@adacore.com>
13748 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
13749 size/alignment related attributes in CodePeer_Mode.
13751 2011-08-02 Gary Dismukes <dismukes@adacore.com>
13753 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
13754 Prepend_Element, since this can result in the operation getting the
13755 wrong slot in the full type's dispatch table if the full type has
13756 inherited operations. The incomplete type's operation will get added
13757 to the proper position in the full type's primitives
13758 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
13759 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
13760 dispatching operations, since there are cases where nonprimitive
13761 subprograms can get added to the list of incomplete dependents (such
13762 as subprograms in nested packages).
13763 * sem_ch6.adb (Process_Formals): First, remove test for being in a
13764 private part when determining whether to add a primitive with a
13765 parameter of a tagged incomplete type to the Private_Dependents list.
13766 Such primitives can also occur in the visible part, and should not have
13767 been excluded from being private dependents.
13768 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
13769 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
13770 list of a Taft-amendment incomplete type is a primitive before issuing
13771 an error that the full type must appear in the same unit. There are
13772 cases where nonprimitives can be in the list (such as subprograms in
13774 * sem_disp.adb (Derives_From): Use correct condition for checking that
13775 a formal's type is derived from the type of the corresponding formal in
13776 the parent subprogram (the condition was completely wrong). Add
13777 checking that was missing for controlling result types being derived
13778 from the result type of the parent operation.
13780 2011-08-02 Yannick Moy <moy@adacore.com>
13782 * errout.adb (First_Node): minor renaming
13783 * restrict.adb (Check_Formal_Restriction): put restriction warning on
13786 2011-08-02 Yannick Moy <moy@adacore.com>
13788 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
13789 before accessing operands.
13790 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
13791 decide whether an initialization expression respects SPARK rules, as
13792 the plain node is the expanded one. This allows for more valid warnings
13794 * gnat_rm.texi: Minor update.
13796 2011-08-02 Arnaud Charlet <charlet@adacore.com>
13798 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
13801 2011-08-02 Robert Dewar <dewar@adacore.com>
13803 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
13805 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
13807 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
13808 loop statements and the element renaming declaration with a block when
13809 the element type is controlled.
13811 2011-08-02 Yannick Moy <moy@adacore.com>
13813 * sinfo.ads: Minor formatting.
13815 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13817 * sem_aggr.adb (Add_Association): if the association has a box and no
13818 expression, use the Sloc of the aggregate itself for the new
13820 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
13823 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
13825 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
13826 When a container is provided via a function call, generate a renaming
13827 of the function result. This avoids the creation of a transient scope
13828 and the premature finalization of the container.
13829 * exp_ch7.adb (Is_Container_Cursor): Removed.
13830 (Wrap_Transient_Declaration): Remove the supression of the finalization
13831 of the list controller when the declaration denotes a container cursor,
13834 2011-08-02 Yannick Moy <moy@adacore.com>
13836 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
13837 node is from source, instead of the original node being from source.
13839 (Resolve_Array_Aggregate): refine the check for a static expression, to
13840 recognize also static ranges
13841 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
13842 Array_Type_Declaration): postpone the test for the type being a subtype
13843 mark after the type has been resolved, so that component-selection and
13844 expanded-name are discriminated.
13845 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
13846 to distinguish the case of an iteration scheme, so that an error is
13847 issed on a non-static range in SPARK except in an iteration scheme.
13848 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
13849 In_Iter_Schm = True.
13850 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
13851 user-defined operators so that they are allowed in renaming
13853 (Find_Selected_Component): refine the check for prefixing of operators
13854 so that they are allowed in renaming. Move the checks for restrictions
13855 on selector name after analysis discriminated between
13856 component-selection and expanded-name.
13857 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
13858 concatenation argument of string type if it is static.
13859 * sem_util.adb, sem_util.ads
13860 (Check_Later_Vs_Basic_Declarations): add a new function
13861 Is_Later_Declarative_Item to decice which declarations are allowed as
13862 later items, in the two different modes Ada 83 and SPARK. In the SPARK
13863 mode, add that renamings are considered as later items.
13864 (Enclosing_Package): new function to return the enclosing package
13865 (Enter_Name): correct the rule for homonyms in SPARK
13866 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
13867 from source (result of expansion) to avoid issuing wrong warnings.
13869 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13871 * errout.adb: On anything but an expression First_Node returns its
13874 2011-08-02 Pascal Obry <obry@adacore.com>
13876 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
13878 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
13880 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
13881 Set the associated loop as the related expression of internally
13883 * exp_ch7.adb (Is_Container_Cursor): New routine.
13884 (Wrap_Transient_Declaration): Supress the finalization of the list
13885 controller when the declaration denotes a container cursor.
13887 2011-08-02 Yannick Moy <moy@adacore.com>
13889 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
13891 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
13892 expression is a simple expression. This check cannot be performed in
13893 the semantics, so just drop it.
13894 (P_Index_Or_Discriminant_Constraint): move check that the index or
13895 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
13896 semantics. Other cases were previously checked in the semantics.
13897 * par-ch4.adb (P_Name): move checks that a selector name is not
13898 character literal or an operator symbol to Find_Selected_Component in
13900 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
13901 declarations are not placed after later declarations in a separate
13902 procedure in Sem_Util (possibly not the best choice?), to be used both
13903 during parsing, for Ada 83 mode, and during semantic analysis, for
13905 * par-endh.adb (Check_End): move check that end label is not missing
13906 to Process_End_Label in the semantics
13907 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
13908 the special case for SPARK restriction
13909 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
13910 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
13911 parameter Force to issue the error message even on internal node (used
13912 for generated end label). Call Check_Restriction to check when an error
13913 must be issued. In SPARK mode, issue an error message even if the
13914 restriction is not set.
13915 (Check_Restriction): new procedure with an additional out parameter to
13916 inform the caller that a message has been issued
13917 * sem_aggr.adb: Minor modification of message
13918 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
13919 instead of issuing an error message directly
13920 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
13921 declarations are not placed after later declarations, by calling
13922 Check_Later_Vs_Basic_Declarations
13923 (Analyze_Subtype_Declaration): move here the check that an index or
13924 discriminant constraint must be a subtype mark. Change the check that
13925 a subtype of String must start at one so that it works on subtype marks.
13926 * sem_ch4.adb (Analyze_Call): move here the check that a named
13927 association cannot follow a positional one in a call
13928 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
13929 instead of issuing an error message directly
13930 * sem_ch8.adb (Find_Selected_Component): move here the check that a
13931 selector name is not a character literal or an operator symbol. Move
13932 here the check that the prefix of an expanded name cannot be a
13933 subprogram or a loop statement.
13934 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
13935 procedure called from parsing and semantics to check that basic
13936 declarations are not placed after later declarations
13937 (Process_End_Label): move here the check that end label is not missing
13939 2011-08-02 Arnaud Charlet <charlet@adacore.com>
13941 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
13942 representation clause in codepeer mode, since it confuses CodePeer and
13943 does not bring useful info.
13945 2011-08-02 Ed Falis <falis@adacore.com>
13947 * init.c: initialize fp hw on MILS.
13949 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13951 * errout.adb (First_Node): for bodies, return the node itself (small
13952 optimization). For other nodes, do not check source_unit if the node
13953 comes from Standard.
13955 2011-08-02 Robert Dewar <dewar@adacore.com>
13957 * exp_ch3.adb: Minor comment additions.
13958 * sem_ch13.adb: Minor reformatting.
13960 2011-08-02 Pascal Obry <obry@adacore.com>
13962 * make.adb, makeutl.adb: Removes some superfluous directory separator.
13964 2011-08-02 Robert Dewar <dewar@adacore.com>
13966 * sem_attr.adb: Minor reformatting.
13968 2011-08-02 Robert Dewar <dewar@adacore.com>
13970 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
13971 (Has_Default_Component_Value): Removed
13972 * einfo.ads Comment updates
13973 (Has_Default_Aspect): Replaces Has_Default_Value
13974 (Has_Default_Component_Value): Removed
13976 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
13978 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
13979 (Get_Simple_Init_Val): Handle Default_Value aspect
13980 (Needs_Simple_Initialization): Handle Default_Value aspect
13981 * exp_ch3.ads: Needs_Simple_Initialization
13982 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
13983 * par-prag.adb (Pragma_Default[_Component]Value) Removed
13985 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
13986 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
13987 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
13989 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13991 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
13992 package containing iteration primitives.
13993 exp_ch5.adb (Expand_Iterator_Loop): ditto.
13995 2011-08-02 Ed Schonberg <schonberg@adacore.com>
13997 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
13998 "of", pre-analyze expression in case it is a function call with
13999 finalization actions that must be placed ahead of the loop.
14000 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
14001 on an Ada2012 iterator, insert them ahead of the rewritten loop.
14003 2011-08-02 Geert Bosch <bosch@adacore.com>
14005 * cstand.adb (Create_Float_Types): Only consider C's long double for
14006 Long_Long_Float, in addition to double.
14008 2011-08-02 Robert Dewar <dewar@adacore.com>
14010 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
14011 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
14012 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
14013 Minor reformatting.
14015 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14017 * sem_attr.adb: handle properly 'Result when it is a prefix of an
14020 2011-08-02 Javier Miranda <miranda@adacore.com>
14022 * einfo.ads, einfo.adb
14023 (Original_Access_Type): Move this attribute to Node26 since there was
14024 an undocumented use of Node21 in E_Access_Subprogram_Type entities
14025 which causes conflicts and breaks the generation of the .NET compiler.
14026 (Interface_Name): Add missing documentation on JGNAT only uses of
14029 2011-08-02 Geert Bosch <bosch@adacore.com>
14031 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
14032 (Find_Back_End_Float_Type): Likewise
14033 (Create_Back_End_Float_Types): Likewise
14034 (Create_Float_Types): Likewise
14035 (Register_Float_Type): Likewise
14036 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
14037 Nlist and split out type selection in new local Find_Base_Type function.
14038 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
14040 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
14042 2011-08-02 Robert Dewar <dewar@adacore.com>
14044 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
14046 * opt.ads: Minor comment change.
14047 * sem_ch12.adb: Minor code reorganization.
14049 2011-08-02 Gary Dismukes <dismukes@adacore.com>
14051 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
14052 subtype's list of rep items to the list on the full subtype in the case
14053 where the lists are the same.
14055 2011-08-02 Geert Bosch <bosch@adacore.com>
14057 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
14058 using the one from System.Strings, which also deallocates all strings.
14060 2011-08-02 Geert Bosch <bosch@adacore.com>
14062 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
14064 * gcc-interface/Make-lang.in: Update dependencies.
14066 2011-08-02 Olivier Hainque <hainque@adacore.com>
14068 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
14071 2011-08-02 Javier Miranda <miranda@adacore.com>
14073 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
14074 associated with anonymous access to subprograms.
14076 2011-08-02 Geert Bosch <bosch@adacore.com>
14079 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
14080 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
14081 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
14082 (Add_Symbol_Definition): Move to switch-c.adb
14083 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
14084 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
14085 (Add_Symbol_Definition): Move to switch-c.adb.
14086 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
14088 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
14089 Move to warnsw.adb.
14090 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
14091 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
14092 Move to warnsw.adb.
14093 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
14094 (Add_Symbol_Definition): Moved from Prepcomp.
14095 * switch-c.ads: Update copyright notice. Use String_List instead of
14096 Argument_List, removing dependency on System.OS_Lib.
14098 2011-08-02 Yannick Moy <moy@adacore.com>
14100 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
14101 mode on initialization expression which does not respect SPARK
14103 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
14104 if the tree referenced by its argument represents an initialization
14105 expression in SPARK, suitable for initializing an object in an object
14108 2011-08-02 Javier Miranda <miranda@adacore.com>
14110 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
14111 internally generated access to subprogram with its associated protected
14113 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
14115 2011-08-02 Geert Bosch <bosch@adacore.com>
14117 * cstand.adb (Register_Float_Type): Print information about type to
14118 register, if the Debug_Flag_Dot_B is set.
14119 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
14120 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
14121 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
14122 with a requested precision of more than Max_Digits digits and no more
14123 than Max_Base_Digits digits, if a range specification is present and the
14124 Predefined_Float_Types list has a suitable type to derive from.
14125 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
14126 case of type completion with pragma Import
14128 (Process_Import_Predefined_Type): Processing to complete a type
14129 with pragma Import. Currently supports floating point types only.
14130 (Set_Convention_From_Pragma): Do nothing without underlying type.
14131 (Process_Convention): Guard against absence of underlying type,
14132 which may happen when importing incomplete types.
14133 (Process_Import_Or_Interface): Handle case of importing predefined
14134 types. Tweak error message.
14136 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14138 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
14139 functions to previous change. Reorganize code slightly.
14141 2011-08-02 Geert Bosch <bosch@adacore.com>
14143 * back_end.ads (Register_Type_Proc): New call back procedure type for
14144 allowing the back end to provide information about available types.
14145 (Register_Back_End_Types): New procedure to register back end types.
14146 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
14148 * cstand.adb (Back_End_Float_Types): New list for floating point types
14149 supported by the back end.
14150 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
14151 (Copy_Float_Type): New procedure to make new copies of predefined types.
14152 (Register_Float_Type): New call back procedure to populate the BEFT list
14153 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
14154 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
14155 (Create_Float_Types): New procedure to create entities for floating
14156 point types predefined in Standard, and put these and any remaining
14157 BEFTs on the Predefined_Float_Types list.
14158 * stand.ads (Predefined_Float_Types): New list for predefined floating
14159 point types that do not have declarations in package Standard.
14161 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14163 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
14164 entity node for the unit containing the parameter.
14165 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
14166 (Add_Inlined_Subprogram): Likewise.
14167 * gcc-interface/Make-lang.in: Update dependencies.
14169 2011-08-02 Thomas Quinot <quinot@adacore.com>
14171 * s-stusta.adb (Print): Make sure Pos is always initialized to a
14174 2011-08-02 Geert Bosch <bosch@adacore.com>
14176 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
14178 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14180 * sem_type.adb (Covers): Move trivial case to the top and reuse the
14181 computed value of Base_Type.
14183 2011-08-02 Yannick Moy <moy@adacore.com>
14185 * restrict.adb (Check_Restriction): issue an error for any use of
14186 class-wide, even if the No_Dispatch restriction is not set.
14187 * sem_aggr.adb: Correct typos in comments and messages in formal mode
14188 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
14189 when completing a private extension, the type named in the private part
14190 is not the same as that named in the visible part.
14191 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
14192 of an inherited primitive operations of a tagged type or type extension
14193 that returns the tagged type.
14194 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
14195 function which returns True for an implicit operation inherited by the
14196 derived type declaration for the argument type.
14197 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
14200 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14202 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
14203 Process_Bounds, to perform analysis with expansion of a range or an
14204 expression that is the iteration scheme for a loop.
14205 (Analyze_Iterator_Specification): If domain of iteration is given by a
14206 function call with a controlled result, as is the case if call returns
14207 a predefined container, ensure that finalization actions are properly
14209 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
14211 2011-08-02 Javier Miranda <miranda@adacore.com>
14213 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
14214 * gcc-interface/Make-lang.in: Update dependencies.
14216 2011-08-02 Javier Miranda <miranda@adacore.com>
14218 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
14219 determine if the analysis is performed using N or Original_Node (N).
14220 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
14221 functionality of routine Is_Variable avoids code duplication.
14222 * checks.adb (Determine_Range): Handle temporaries generated by
14223 Remove_Side_Effects.
14225 2011-08-02 Javier Miranda <miranda@adacore.com>
14227 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
14228 expansion of the condition. Required since the previous analysis was
14229 done with expansion disabled (see Resolve_Quantified_Expression) and
14230 hence checks were not inserted and record comparisons have not been
14233 2011-08-02 Ed Falis <falis@adacore.com>
14235 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
14238 2011-08-02 Bob Duff <duff@adacore.com>
14240 * opt.ads: Minor comment fix.
14242 2011-08-02 Bob Duff <duff@adacore.com>
14244 * sem_ch12.adb (Analyze_Package_Instantiation,
14245 Analyze_Subprogram_Instantiation): Turn off style checking while
14246 analyzing an instance. Whatever style checks that apply to the generic
14247 unit should apply, so it makes no sense to apply them in an instance.
14248 This was causing trouble when compiling an instance of a runtime
14249 unit that violates the -gnatyO switch.
14250 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
14251 one of the two case statements, causing spurious errors.
14253 2011-08-02 Robert Dewar <dewar@adacore.com>
14255 * uname.adb: Minor reformatting.
14256 * gnatcmd.adb: Minor reformatting.
14257 * exp_attr.adb: Minor reformatting.
14259 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14261 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
14262 No_Dispatching_Calls, do not look for the Assign primitive, because
14263 predefined primitives are not created in this case.
14265 2011-08-02 Bob Duff <duff@adacore.com>
14267 * stylesw.ads: Minor comment fixes.
14269 2011-08-02 Robert Dewar <dewar@adacore.com>
14271 * freeze.adb (Add_To_Result): New procedure.
14273 2011-08-02 Jose Ruiz <ruiz@adacore.com>
14275 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
14276 time, if the specific run-time routines for handling streams of strings
14277 are not available, use the default mechanism.
14279 2011-08-02 Arnaud Charlet <charlet@adacore.com>
14281 * s-regpat.ads: Fix typo.
14283 2011-08-02 Vincent Celier <celier@adacore.com>
14285 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
14286 not null, call it to create the in memory config project file without
14287 parsing an existing default config project file.
14289 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14291 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
14293 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14295 * sem_elim.adb: an abstract subprogram does not need an eliminate
14296 pragma for its descendant to be eliminable.
14298 2011-08-02 Ed Falis <falis@adacore.com>
14300 * init.c: revert to handling before previous checkin for VxWorks
14301 * s-intman-vxworks.adb: delete unnecessary declarations related to
14302 using Ada interrupt facilities for handling signals.
14303 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
14304 * s-intman-vxworks.ads: Import __gnat_install_handler as
14305 Initialize_Interrupts.
14306 * s-taprop-vxworks.adb: Delete Signal_Mask.
14307 (Abort_Handler): change construction of mask to unblock exception
14310 2011-08-02 Jerome Guitton <guitton@adacore.com>
14312 * a-except-2005.adb (Raise_From_Signal_Handler): Call
14313 Debug_Raise_Exception before propagation starts.
14315 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14317 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
14318 to Restriction_Check_Required.
14319 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
14320 * sem_res.adb (Resolve_Call): Likewise.
14321 * sem_attr.adb (Check_Stream_Attribute): Likewise.
14323 2011-08-02 Bob Duff <duff@adacore.com>
14325 * stylesw.ads: Update comment.
14326 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
14327 * errout.ads: Remove obsolete comment.
14329 2011-08-02 Javier Miranda <miranda@adacore.com>
14331 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
14332 (Set_Is_Safe_To_Reevaluate): new procedure.
14333 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
14334 assignment is allowed on safe-to-reevaluate variables.
14335 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
14336 temporary created to remove side effects in expressions that use
14337 the secondary stack as safe-to-reevaluate.
14338 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
14339 variables that are not true constants.
14341 2011-08-02 Robert Dewar <dewar@adacore.com>
14343 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
14344 sem_res.adb, sem_ch6.adb: Minor reformatting.
14346 2011-08-02 Jerome Guitton <guitton@adacore.com>
14348 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
14350 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14352 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
14353 not set Overridden_Operation if subprogram is an initialization
14356 2011-08-02 Yannick Moy <moy@adacore.com>
14358 * par-ch6.adb: Correct obsolete name in comments
14359 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
14360 which takes two message arguments (existing function takes one), with
14361 second message used for continuation.
14362 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
14363 block statements that originate from a source block statement, not
14364 generated block statements
14365 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
14366 symmetry with procedure case
14367 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
14368 function to issue an error in formal mode if a package specification
14369 contains more than one tagged type or type extension.
14370 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
14371 parameters matching formals of tagged types are objects (or ancestor
14372 type conversions of objects), not general expressions. Issue an error
14373 on view conversions that are not involving ancestor conversion of an
14375 (Resolve_Type_Conversion): in formal mode, issue an error on the
14376 operand of an ancestor type conversion which is not an object
14377 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
14378 procedure so that it works also for actuals of function calls
14379 (Is_Actual_Tagged_Parameter): new function which determines if its
14380 argument is an actual parameter of a formal of tagged type in a
14382 (Is_SPARK_Object_Reference): new function which determines if the tree
14383 referenced by its argument represents an object in SPARK
14385 2011-08-02 Robert Dewar <dewar@adacore.com>
14387 * sem_ch3.adb: Minor reformatting
14388 Minor comment addition
14389 Minor error msg text change
14391 2011-08-02 Javier Miranda <miranda@adacore.com>
14393 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
14394 function. Used to be more precise when we generate a variable plus one
14395 assignment to remove side effects in the evaluation of the Bound
14397 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
14398 of the bound expression to force its re-analysis and thus expand the
14399 associated transient scope (if required). Code cleanup replacing the
14400 previous code that declared the constant entity by an invocation to
14401 routine Force_Evaluation which centralizes this work in the frontend.
14403 2011-08-02 Robert Dewar <dewar@adacore.com>
14405 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
14406 (Base_Type): Now uses improved Is_Base_Type function
14407 * einfo.ads (Base_Type): Inline this function
14409 2011-08-02 Robert Dewar <dewar@adacore.com>
14411 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
14412 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
14414 2011-08-02 Arnaud Charlet <charlet@adacore.com>
14416 * gcc-interface/Make-lang.in: Update dependencies.
14417 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
14420 2011-08-02 Yannick Moy <moy@adacore.com>
14422 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
14423 non-simple expression used in delta constraint
14424 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
14425 index constraint which is not a subtype mark
14426 * par.adb: With and use Restrict
14427 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
14428 mode on component type which is not a subtype mark and default
14429 expression on component
14430 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
14431 of string which does not have a lower index bound equal to 1
14432 (Array_Type_Declaration): issue an error in formal mode on index or
14433 component type which is not a subtype mark, and on aliased keyword on
14435 (Derived_Type_Declaration): issue an error in formal mode on interface,
14436 limited or abstract type
14437 (Record_Type_Declaration): issue an error in formal mode on interface
14438 (Record_Type_Definition): issue an error in formal mode on tagged types
14439 and type extensions not declared in the specification of a library unit
14440 package; on null non-tagged record; on variant part
14442 2011-08-02 Vincent Celier <celier@adacore.com>
14444 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
14445 not declared for qualified library project when Library_Name is not
14446 declared, but Library_Dir is.
14448 2011-08-02 Robert Dewar <dewar@adacore.com>
14450 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
14451 pragmas (affects aspects [Component_]Default_Value
14452 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
14453 component type for the resolution
14455 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14457 * einfo.adb (Base_Type): Tune implementation for speed.
14459 2011-08-02 Robert Dewar <dewar@adacore.com>
14461 * freeze.adb: Minor reformatting.
14463 2011-08-02 Thomas Quinot <quinot@adacore.com>
14465 * scos.ads: Update comments.
14467 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14469 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
14470 base type, because the parent may be a subtype of a private type whose
14471 convention is established in a private part.
14473 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
14475 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
14476 statement in a block when the expansion of the return expression has
14477 created a finalization chain.
14478 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
14479 with the parent node.
14480 Add N_Extended_Return_Statement to handle the case where a transient
14481 object declaration appears in the Return_Object_Declarations list of
14482 an extended return statement.
14484 2011-08-02 Matthew Gingell <gingell@adacore.com>
14486 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
14487 unused parameter 'name'.
14489 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14491 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
14492 inherited operation, check whether its alias, which is the source
14493 operastion that it renames, has been marked eliminated.
14495 2011-08-02 Javier Miranda <miranda@adacore.com>
14497 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
14498 in-mode parameter whose type is an access type since it can be used to
14499 modify its designated object. Enforce code that handles as safe an
14500 access type that is not access-to-constant but it is the result of a
14501 previous removal of side-effects.
14502 (Remove_Side_Effects): Minor code reorganization of cases which require
14503 no action. Done to incorporate documentation on new cases uncovered
14504 working in this ticket: no action needed if this routine was invoked
14505 too early and the nodes are not yet decorated.
14506 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
14507 to routine Remove_Side_Effects by calls to Force_Evaluation since they
14508 were issued with actuals that are implicitly provided by
14511 2011-08-02 Robert Dewar <dewar@adacore.com>
14513 * sem_ch3.adb, sem_res.adb: Minor reformatting.
14515 2011-08-02 Yannick Moy <moy@adacore.com>
14517 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
14518 to issue an error in formal mode on attribute not supported in this mode
14519 (Analyze_Attribute): issue errors on standard attributes not supported
14521 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
14522 comment, and issue error in formal mode on modulus which is not a power
14524 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
14526 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
14528 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
14529 operator on modular type (except 'not').
14531 2011-08-02 Robert Dewar <dewar@adacore.com>
14533 * gnat_rm.texi: Minor reformatting.
14535 2011-08-02 Arnaud Charlet <charlet@adacore.com>
14537 * s-osinte-linux.ads: Minor comment update and reformatting.
14538 * i-cexten.ads: Make this unit pure, as for its parent.
14539 Will allow its usage in more contexts if needed.
14541 2011-08-02 Robert Dewar <dewar@adacore.com>
14543 * s-utf_32.ads: Minor comment fix.
14545 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14547 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
14548 operation of a tagged synchronized type, handle the case where the
14549 controlling argument is overloaded.
14551 2011-08-02 Yannick Moy <moy@adacore.com>
14553 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
14554 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
14555 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
14556 SPARK mode and formal verification mode on processing SPARK restriction
14557 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
14558 requiring consistency checking.
14560 2011-08-02 Robert Dewar <dewar@adacore.com>
14562 * sem_res.adb: Minor reformatting.
14564 2011-08-02 Robert Dewar <dewar@adacore.com>
14566 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
14567 a-cforse.ads: Remove unneeded with of Ada.Containers
14568 Remove commented out pragma Inline's
14569 Move specifications of new subprograms to the actual specs
14571 2011-08-02 Yannick Moy <moy@adacore.com>
14573 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
14574 a-cforse.ads: Update comments.
14576 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14578 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
14580 2011-08-02 Robert Dewar <dewar@adacore.com>
14582 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
14583 a-cforse.ads, a-cofove.ads: Minor reformatting.
14585 2011-08-02 Claire Dross <dross@adacore.com>
14587 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
14588 a-cofove.ads: Add comments.
14590 2011-08-02 Yannick Moy <moy@adacore.com>
14592 * gnat_rm.texi: Document formal containers.
14594 2011-08-02 Emmanuel Briot <briot@adacore.com>
14596 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
14597 are empty sections.
14599 2011-08-02 Robert Dewar <dewar@adacore.com>
14601 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
14604 2011-08-02 Robert Dewar <dewar@adacore.com>
14606 * aspects.adb: New aspects Default_Value and Default_Component_Value
14607 New format of Aspect_Names table checks for omitted entries
14608 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
14609 handling of boolean aspects for derived types.
14610 New aspects Default_Value and Default_Component_Value
14611 New format of Aspect_Names table checks for omitted entries
14612 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
14613 (Has_Default_Value): New flag
14614 (Has_Default_Component_Value): New flag
14615 (Has_Default_Value): New flag
14616 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
14618 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
14619 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
14620 Default_Value and Default_Component_Value
14621 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
14622 New aspects Default_Value and Default_Component_Value
14623 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
14624 * sprint.adb: Print N_Aspect_Specification node when called from gdb
14626 2011-08-02 Vincent Celier <celier@adacore.com>
14628 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
14629 inherit library kind.
14631 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14633 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
14634 Minor reformatting.
14636 2011-08-02 Robert Dewar <dewar@adacore.com>
14638 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
14640 2011-08-02 Yannick Moy <moy@adacore.com>
14642 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
14644 2011-08-02 Robert Dewar <dewar@adacore.com>
14646 * impunit.adb: Add comment.
14648 2011-08-02 Yannick Moy <moy@adacore.com>
14650 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
14651 qualification of aggregates in formal mode
14652 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
14654 (Resolve_Aggregate): complete the test that an aggregate is adequately
14655 qualified in formal mode
14657 2011-08-02 Pascal Obry <obry@adacore.com>
14659 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
14660 * mlib-prj.adb: Supress warning when compiling binder generated file.
14661 (Build_Library): Supress all warnings when compiling the binder
14664 2011-08-02 Yannick Moy <moy@adacore.com>
14666 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
14668 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
14669 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
14670 Add with/use clauses to make Check_Formal_Restriction visible
14672 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14674 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
14675 in-parameters when type of the generic formal is private in the generic
14676 spec and non-private in the body.
14678 2011-08-02 Claire Dross <dross@adacore.com>
14680 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
14681 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
14682 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
14683 * impunit.adb, Makefile.rtl: Take new files into account.
14685 2011-08-02 Robert Dewar <dewar@adacore.com>
14687 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
14688 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
14690 2011-08-02 Yannick Moy <moy@adacore.com>
14692 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
14694 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
14695 matching static array bounds, taking into account the special case of
14697 * sem_ch3.adb: Typo in comment.
14699 2011-08-02 Yannick Moy <moy@adacore.com>
14701 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
14702 which issues an error in formal mode if its argument node is originally
14704 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
14705 has a discriminant specification so that it does not include the case
14707 (Derived_Type_Declaration): move here the test that a derived type has a
14708 discriminant specification
14709 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
14710 first element of a component association before accessing its choices
14711 (presence of component association is not enough)
14712 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
14713 declaration is a library item before accessing the next element in a
14714 list, as library items are not member of lists
14715 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
14716 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
14717 Check_Formal_Restriction whenever possible.
14719 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14721 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
14722 reference when needed.
14724 2011-08-02 Bob Duff <duff@adacore.com>
14726 * gnat_ugn.texi: Fix typo.
14728 2011-08-02 Vincent Celier <celier@adacore.com>
14730 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
14731 archive file name. Do not use the full path name of archives for Open
14734 2011-08-02 Robert Dewar <dewar@adacore.com>
14736 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
14737 Analyze_Aspect_Specifications
14739 (Analyze_Aspect_Specifications): New handling for boolean aspects
14740 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
14741 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
14742 sequence for Analyze_Aspect_Specifications
14743 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
14744 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
14746 2011-08-02 Robert Dewar <dewar@adacore.com>
14748 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
14749 aspects, since these no longer exist.
14751 2011-08-02 Robert Dewar <dewar@adacore.com>
14753 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
14754 semicolon, do not try to see if there are aspects following it.
14755 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
14758 2011-08-02 Robert Dewar <dewar@adacore.com>
14760 * sem_ch8.adb, aspects.ads: Minor reformatting.
14762 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14764 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
14765 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
14767 (Analyze_Aspect_Specifications): ...here. Call above procedure.
14769 2011-08-02 Yannick Moy <moy@adacore.com>
14771 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
14772 mode on subprogram declaration outside of package specification, unless
14773 it is followed by a pragma Import
14774 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
14775 Access_Type_Declaration): issue error in formal mode on access type
14776 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
14778 (Analyze_Object_Declaration): issue error in formal mode on object
14779 declaration which does not respect SPARK restrictions
14780 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
14781 declaration which does not respect SPARK restrictions
14782 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
14783 error in formal mode on digits or delta constraint
14784 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
14785 decimal fixed point type
14786 (Derived_Type_Declaration): issue error in formal mode on derived type
14787 other than type extensions of tagged record types
14788 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
14789 with check on access definition
14790 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
14791 mode on protected definition.
14792 (Analyze_Task_Definition): issue error in formal mode on task definition
14794 2011-08-02 Robert Dewar <dewar@adacore.com>
14796 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
14798 2011-08-02 Javier Miranda <miranda@adacore.com>
14800 * sem_ch6.adb (Can_Override_Operator): New function.
14801 (Verify_Overriding_Indicator): Add missing code to check overriding
14802 indicator in operators. Fixes regression.
14803 (Check_Overriding_Indicator): Minor reformating after replacing the
14804 code that evaluates if the subprogram can override an operator by
14805 invocations to the above new function.
14807 (Write_Field26_Name): Add missing code to ensure that, following
14808 the documentation in einfo.ads, this field is not shown as attribute
14809 "Static_Initialization" on non-dispatching functions.
14811 2011-08-02 Jose Ruiz <ruiz@adacore.com>
14813 * sem_res.adb (Resolve_Call): A call to
14814 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
14815 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
14816 i.e., when the second parameter is of type Time_Span.
14818 2011-08-02 Vincent Celier <celier@adacore.com>
14820 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
14821 with an archive instead of -L<library dir> -l<library name>.
14823 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14825 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
14826 mark the base types In_Use in addition to making the operations
14829 2011-08-02 Ed Falis <falis@adacore.com>
14831 * init.c: add and setup __gnat_signal_mask for the exception signals
14832 * s-inmaop-vxworks.adb: new file.
14833 * s-intman-vxworks.adb: remove unnecessary initializations and
14835 * s-intman-vxworks.ads: remove unnecessary variable
14836 * s-taprop-vxworks.adb: simplify signal initialization
14838 2011-08-02 Robert Dewar <dewar@adacore.com>
14840 * sem_ch8.adb: Minor code reorganization, comment updates.
14842 2011-08-02 Robert Dewar <dewar@adacore.com>
14844 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
14845 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
14847 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
14848 (Matching_Static_Array_Bounds): Moved here from Sem_Res
14850 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14852 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
14853 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
14854 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
14855 use_type_clauses, to handle more efficiently use_type and use_all_type
14857 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
14858 Ada2012 Use_All_Type clause.
14859 (Use_Class_Wide_Operations): new procedure.
14861 2011-08-02 Robert Dewar <dewar@adacore.com>
14863 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
14864 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
14865 expression to expression function.
14867 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14869 * sem_ch4.adb: transform simple Ada2012 membership into equality only
14870 if types are compatible.
14872 2011-08-02 Yannick Moy <moy@adacore.com>
14874 * sem_res.adb (Matching_Static_Array_Bounds): new function which
14875 returns True if its argument array types have same dimension and same
14876 static bounds at each index.
14877 (Resolve_Actuals): issue an error in formal mode on actuals passed as
14878 OUT or IN OUT paramaters which are not view conversions in SPARK.
14879 (Resolve_Arithmetic_Op): issue an error in formal mode on
14880 multiplication or division with operands of fixed point types which are
14881 not qualified or explicitly converted.
14882 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
14883 Boolean or array type (except String) operands.
14884 (Resolve_Equality_Op): issue an error in formal mode on equality
14885 operators for array types other than String with non-matching static
14887 (Resolve_Logical_Op): issue an error in formal mode on logical operators
14888 for array types with non-matching static bounds. Factorize the code in
14889 Matching_Static_Array_Bounds.
14890 (Resolve_Qualified_Expression): issue an error in formal mode on
14891 qualified expressions for array types with non-matching static bounds.
14892 (Resolve_Type_Conversion): issue an error in formal mode on type
14893 conversion for array types with non-matching static bounds
14895 2011-08-02 Robert Dewar <dewar@adacore.com>
14897 * par-ch10.adb: Minor code reorganization (use Nkind_In).
14899 2011-08-02 Ed Schonberg <schonberg@adacore.com>
14901 * par-ch9.adb: save location of entry for proper error message.
14903 2011-08-02 Javier Miranda <miranda@adacore.com>
14905 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
14906 (Use_Full_View) which permits this routine to climb through the
14907 ancestors using the full-view of private parents.
14908 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
14909 Use_Full_View to true in calls to Is_Ancestor.
14910 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
14911 true in call to Is_Ancestor.
14912 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
14913 Use_Full_View to true in call to Is_Ancestor.
14914 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
14915 call to Is_Ancestor.
14916 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
14917 Use_Full_View to true in calls to Is_Ancestor.
14918 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
14919 Make_Select_Specific_Data_Table, Register_Primitive,
14920 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
14921 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
14922 to true in call to Is_Ancestor.
14923 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
14924 Use_Full_View to true in calls to Is_Ancestor.
14926 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
14927 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
14929 2011-08-02 Robert Dewar <dewar@adacore.com>
14931 * gnat_rm.texi: Minor reformatting.
14932 * sem_prag.adb: Minor reformatting.
14934 2011-08-02 Tristan Gingold <gingold@adacore.com>
14936 * vms_data.ads: Add VMS qualifier for -gnateP.
14938 2011-08-02 Robert Dewar <dewar@adacore.com>
14940 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
14941 * par-ch7.adb (P_Package): Proper placement of aspects for package
14942 decl/instantiation.
14943 * par-endh.adb (Check_End): Ad Is_Sloc parameter
14944 (End_Statements): Add Is_Sloc parameterr
14945 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
14946 (Check_End): Ad Is_Sloc parameter
14947 (End_Statements): Add Is_Sloc parameterr
14949 2011-08-02 Vincent Celier <celier@adacore.com>
14951 * ug_words: Add VMS qualifier equivalent to -gnateP:
14952 /SYMBOL_PREPROCESSING.
14954 2011-08-02 Jose Ruiz <ruiz@adacore.com>
14956 * gnat-style.texi: For hexadecimal numeric literals the typical
14957 grouping of digits is 4 to represent 2 bytes.
14958 A procedure spec which is split into several lines is indented two
14961 2011-08-02 Yannick Moy <moy@adacore.com>
14963 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
14964 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
14965 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
14967 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
14968 choice in array aggregate
14969 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
14971 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
14972 positional and named aggregate for record, or others in record
14973 aggregate, or multiple choice in record aggregate
14974 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
14975 array operands to logical operations AND, OR and XOR do not have the
14976 same static lower and higher bounds
14977 * sem_ch5.adb, sinfo.ads: Correct typos in comments
14979 2011-08-01 Robert Dewar <dewar@adacore.com>
14981 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
14982 Replaces Last_Source_Node_In_Sequence.
14983 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
14984 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
14985 parens and blank in string (this was inconsistently implemented).
14987 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
14988 blank in string (this was inconsistently implemented).
14990 (Set_Global_Switches): Set formal mode switches appropriately
14991 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
14993 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
14994 call Set_Error_Msg_Lang to set "spark" as language name.
14995 * par.adb: Remove unnecessary call to set formal language for errout
14996 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
14997 appropriately and call Set_Error_Msg_Lang to set "spark" as language
14999 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
15000 calls to it, moved after resolution so that types are known
15001 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
15002 result of concatenation is not of type String
15003 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
15004 concatenation is not properly restricted
15005 * gnat_rm.texi: Add doc on pragma Spark_95.
15006 * gcc-interface/Makefile.in: Remove obsolete target pairs for
15007 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
15008 * gcc-interface/Make-lang.in: Update dependencies.
15010 2011-08-01 Javier Miranda <miranda@adacore.com>
15012 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
15013 condition that detects if the overridden operation must replace an
15016 2011-08-01 Javier Miranda <miranda@adacore.com>
15018 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
15019 code declarations inserted by Insert_Actions in each alternative of the
15020 N_Case_Expression node.
15022 2011-08-01 Robert Dewar <dewar@adacore.com>
15024 * sem_ch6.adb: Minor code reorganization.
15025 * sem_util.adb: Minor reformatting.
15027 2011-08-01 Pascal Obry <obry@adacore.com>
15029 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
15030 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
15032 2011-08-01 Yannick Moy <moy@adacore.com>
15034 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
15035 literal or operator symbol which is prefixed
15036 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
15037 mode on access attributes.
15038 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
15039 that concatenation operands are properly restricted in formal mode
15040 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
15041 Analyze_Concatenation_Operand. Issue an error in formal mode if the
15042 result of the concatenation has a type different from String.
15043 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
15044 Analyze_Quantified_Expression, Analyze_Slice,
15045 Analyze_Null): issue an error in formal mode on unsupported constructs
15047 (Analyze_Block_Statement): only issue error on source block statement
15048 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
15049 function which returns the last node in a list of nodes for which
15050 Comes_From_Source returns True, if any
15051 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
15052 Last_Source_Node_In_Sequence
15053 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
15054 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
15055 mode on unsupported constructs
15056 * sem_ch9.adb Do not return after issuing error in formal mode, as the
15057 rest of the actions may be needed later on since the error is marked as
15059 * sinfo.ads: Typos in comments.
15061 2011-08-01 Pascal Obry <obry@adacore.com>
15063 * projects.texi: Minor editing.
15065 2011-08-01 Yannick Moy <moy@adacore.com>
15067 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
15068 insertion character ~~
15069 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
15070 (Set_Error_Msg_Lang): new procedure which fixes the language for use
15071 with insertion character ~~
15072 (Set_Msg_Text): treat insertion character ~~
15073 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
15074 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
15075 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
15076 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
15077 errors related to the formal language restriction not serious
15078 (insertion character |).
15079 * par.adb (Par): set formal language for error messages if needed
15080 * sem_ch6.adb (Check_Missing_Return): take into account possible
15081 generated statements at the end of the function
15082 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
15083 enumeration value to define a new pragma SPARK_95
15084 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
15085 SPARK_Version): new type and variables to store the SPARK version
15087 (SPARK_Mode): return True when SPARK_Version is set
15088 * par-prag.adb: Correct indentation
15089 (Prag): take Pragma_SPARK_95 into account
15090 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
15093 2011-08-01 Robert Dewar <dewar@adacore.com>
15095 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
15096 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
15097 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
15099 2011-08-01 Pascal Obry <obry@adacore.com>
15101 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
15102 Target_Name to Get_Path call.
15103 (Parse_Single_Project): Likewise.
15104 (Post_Parse_Context_Clause): Likewise.
15105 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
15106 Call Initialise_Project_Path with the proper Target_Name.
15107 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
15109 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
15110 with the proper Target_Name.
15111 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
15112 Part.Parse routine.
15113 (Parse_Project_And_Apply_Config): Likewise.
15114 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
15115 This is fine as this part of the code is supporting only native
15117 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
15118 is fine as this part of the code is supporting only native compilation.
15120 2011-08-01 Yannick Moy <moy@adacore.com>
15122 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
15123 of homonym, unless the homonym is one of the cases allowed in SPARK
15124 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
15125 package declaration occurring after a body.
15127 2011-08-01 Robert Dewar <dewar@adacore.com>
15129 * checks.adb, exp_ch4.adb: Minor reformatting.
15131 2011-08-01 Javier Miranda <miranda@adacore.com>
15133 * einfo.ads (Access_Disp_Table): Fix documentation.
15134 (Dispatch_Table_Wrappers): Fix documentation.
15136 2011-08-01 Pascal Obry <obry@adacore.com>
15138 * prj-env.adb, prj-env.ads: Minor reformatting.
15140 2011-08-01 Yannick Moy <moy@adacore.com>
15142 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
15143 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
15144 procedures out of these packages.
15145 * errout.ads, errout.adb
15146 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
15147 procedures in of this package
15148 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
15149 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
15150 on misplaced later vs initial declarations, like in Ada 83
15151 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
15152 formal mode on attribute of private type whose full type declaration
15154 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
15155 package declaration inside a package specification
15156 (Analyze_Full_Type_Declaration): issue error in formal mode on
15157 controlled type or discriminant type
15158 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
15159 user-defined operator means that it should come from the source
15160 (New_Overloaded_Entity): issue error in formal mode on overloaded
15162 * sem_ch6.ads, sem_ch13.ads: typos in comments.
15164 2011-08-01 Thomas Quinot <quinot@adacore.com>
15166 * atree.adb: Minor reformatting.
15167 * checks.adb: Minor reformatting.
15169 2011-08-01 Vincent Celier <celier@adacore.com>
15171 * s-parame-vms-ia64.ads: Fix typo in comment
15173 * s-parame-vms-restrict.ads: Removed, unused.
15175 2011-08-01 Javier Miranda <miranda@adacore.com>
15178 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
15180 (Constrain_Index): Remove side effects in the evaluation of the bounds.
15181 * sem_ch3.ads, sem_ch3.adb
15182 (Is_Constant_Bound): New extended version of the subprogram that was
15183 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
15184 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
15185 * sem_aux.ads (Constant_Value): Fix typo in comment.
15186 * checks.adb (Generate_Index_Checks): New implementation which, for
15187 array objects with constant bounds, generates the runtime check
15188 referencing the bounds of the array type. For other cases this routine
15189 provides its previous behavior obtaining such values from the array
15191 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
15193 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
15194 we cannot have semantic interpretations of the new node.
15196 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15198 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
15201 2011-08-01 Arnaud Charlet <charlet@adacore.com>
15203 * sem_ch8.adb: Minor code editing.
15204 * s-vxwext.adb: Remove trailing space.
15205 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
15206 consistency with other files.
15208 2011-08-01 Thomas Quinot <quinot@adacore.com>
15210 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
15212 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15214 * par-ch10.adb: reject parameterized expressions as compilation unit.
15215 * sem_ch4.adb: handle properly conditional expression with overloaded
15216 then_clause and no else_clause.
15218 2011-08-01 Tristan Gingold <gingold@adacore.com>
15220 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
15221 like done by System.Aux_DEC.
15222 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
15224 2011-08-01 Yannick Moy <moy@adacore.com>
15226 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
15227 missing label at end of declaration (subprogram or package)
15228 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
15229 of positional and named parameter association
15230 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
15231 Error_Msg_SP which adds a prefix to the error message giving the name
15232 of the formal language analyzed
15233 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
15234 access result type in subprogram, unconstrained array as result type,.
15235 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
15237 * sem_ch8.adb: Code clean up.
15239 2011-08-01 Javier Miranda <miranda@adacore.com>
15241 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
15242 * einfo.ads (Access_Disp_Table): Fix documentation.
15243 (Dispatch_Table_Wrappers): Fix documentation.
15244 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
15245 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
15246 to enforce the documentation of this attribute.
15247 (Set_Is_Interface): Cleanup the assertion.
15248 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
15249 the Underlying_Type entity before reading attribute Access_Disp_Table.
15250 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
15251 Locate the Underlying_Type before reading attribute Access_Disp_Table.
15252 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
15253 the Underlying_Type entity before reading attribute Access_Disp_Table.
15254 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
15255 Locate the Underlying_Type entity before reading attribute
15258 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15260 * s-poosiz.ads: Additional overriding indicators.
15262 2011-08-01 Yannick Moy <moy@adacore.com>
15264 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
15266 (Analyze_Iteration_Scheme): issue error in formal mode when loop
15267 parameter specification does not include a subtype mark.
15268 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
15269 formal mode on abstract subprogram.
15270 (Analyze_Subprogram_Specification): issue error in formal mode on
15271 user-defined operator.
15272 (Process_Formals): issue error in formal mode on access parameter and
15273 default expression.
15274 * sem_ch9.adb (Analyze_Abort_Statement,
15275 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
15276 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
15277 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
15278 Analyze_Requeue, Analyze_Selective_Accept,
15279 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
15280 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
15281 issue error in formal mode on user-defined raise statement.
15283 2011-08-01 Thomas Quinot <quinot@adacore.com>
15285 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
15286 declaration being hidden when overriding an implicit inherited
15288 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
15289 (-gnats), do not complain about a source file that contains only a
15292 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15294 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
15295 variable if already set.
15297 2011-08-01 Arnaud Charlet <charlet@adacore.com>
15299 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
15300 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
15301 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
15302 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
15303 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
15304 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
15305 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
15306 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
15307 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
15308 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
15309 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
15310 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
15311 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
15312 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
15313 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
15314 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
15315 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
15316 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
15317 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
15318 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
15319 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
15320 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
15321 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
15322 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
15323 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
15324 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
15325 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
15326 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
15327 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
15328 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
15329 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
15330 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
15331 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
15332 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
15333 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
15334 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
15335 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
15336 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
15337 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
15338 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
15339 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
15340 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
15341 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
15342 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
15343 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
15344 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
15345 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
15346 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
15347 s-osinte-mingw.ads: Update to GPLv3 run-time license.
15348 Use GNAT instead of GNARL.
15350 2011-08-01 Bob Duff <duff@adacore.com>
15352 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
15353 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
15354 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
15357 2011-08-01 Yannick Moy <moy@adacore.com>
15359 * debug.adb (d.D) reverve flag for the SPARK mode
15360 (d.E) reverve flag for SPARK generation mode
15361 (d.F) reverve flag for Why generation mode
15362 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
15363 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
15364 functions which return True when the corresponding modes are set
15365 (Formal_Language): return "spark" or "alfa" when in formal verification
15367 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
15368 Error_Msg to prefix the error message with a tag giving the formal
15370 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
15371 message with a tag giving the formal language
15372 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
15374 (Analyze_Case_Statement): issue error in formal mode on case statement
15375 with a single "others" case alternative
15376 (Analyze_Exit_Statement): issue errors in formal mode on exit
15377 statements which do not respect SPARK restrictions
15378 (Analyze_Goto_Statement): issue error in formal mode on goto statement
15379 (Check_Unreachable_Code): always issue an error (not a warning) in
15380 formal mode on unreachable code (concerns both code after an infinite
15381 loop and after an unconditional jump, both not allowed in SPARK)
15382 * sem_ch6.adb (Analyze_Return_Statement): add call to
15383 Set_Return_Present for a procedure containing a return statement
15384 (already done for functions in Analyze_Function_Return)
15385 (Analyze_Function_Return): issue error in formal mode on extended
15386 return or if return is not last statement in function
15387 (Check_Missing_Return): issue error in formal mode if function does
15388 not end with return or if procedure contains a return
15389 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
15390 function to detect if there is an inner scope of its parameter S which
15393 2011-08-01 Thomas Quinot <quinot@adacore.com>
15395 * sem_ch6.ads: Minor reformatting.
15397 2011-08-01 Javier Miranda <miranda@adacore.com>
15399 * sem_util.adb (Abstract_Interface_List): Complete condition when
15400 processing private type declarations to avoid reading unavailable
15402 (Is_Synchronized_Tagged_Type): Complete condition when processing
15403 private extension declaration nodes to avoid reading unavailable
15406 2011-08-01 Thomas Quinot <quinot@adacore.com>
15408 * sem_ch3.adb: Minor reformatting.
15410 2011-08-01 Thomas Quinot <quinot@adacore.com>
15412 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
15413 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
15414 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
15415 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
15416 for VMS, instead parametrize the common implementation with
15417 System.Parameters declarations.
15419 2011-08-01 Eric Botcazou <ebotcazou@adacore.com>
15421 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
15423 2011-08-01 Tristan Gingold <gingold@adacore.com>
15425 * seh_init.c: Fix SEH handler installation on win64.
15427 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15429 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
15430 double analysis of an anonymous access to subprogram, because it can
15431 lead to improper sharing of profiles and a back-end crash.
15433 2011-08-01 Robert Dewar <dewar@adacore.com>
15435 * make.adb, sem_ch4.adb: Minor reformatting.
15436 * gcc-interface/Make-lang.in: Update dependencies.
15437 * sem_util.adb, exp_ch5.adb: Minor reformatting.
15439 2011-08-01 Arnaud Charlet <charlet@adacore.com>
15441 * gnat_rm.texi: Fix definition of Long_Integer.
15443 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15445 * exp_aggr.adb: check limit size of static aggregate unconditionally,
15446 to prevent storage exhaustion.
15447 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
15448 finalized is a function body, insert the cleanup code before the final
15449 return statement, to prevent spurious warnings.
15450 * s-pooglo.ads: add overriding indicator.
15452 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15454 * sem_ch4.adb (Operator_Check): improve error message when both a
15455 with_clause and a use_clause are needed to make operator usage legal.
15456 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
15457 determine whether a compilation unit is visible within an other,
15458 either through a with_clause in the current unit, or a with_clause in
15459 its library unit or one one of its parents.
15461 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15463 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
15464 over an arbitrary expression of an array or container type.
15465 * lib-xref.adb: clarify comment.
15467 2011-08-01 Bob Duff <duff@adacore.com>
15469 * einfo.ads: Minor reformatting.
15470 * debug.adb: Minor comment improvement.
15472 2011-08-01 Javier Miranda <miranda@adacore.com>
15474 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
15475 consider hidden subprograms as valid candidates.
15477 2011-08-01 Arnaud Charlet <charlet@adacore.com>
15479 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
15481 2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
15483 * gnat_ugn.texi: Fix typo.
15485 2011-08-01 Robert Dewar <dewar@adacore.com>
15487 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
15488 lib-xref.adb: Minor reformatting
15490 2011-08-01 Gary Dismukes <dismukes@adacore.com>
15492 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
15493 when to generate a call to Move_Final_List.
15494 (Has_Controlled_Parts): Remove this function.
15496 2011-08-01 Geert Bosch <bosch@adacore.com>
15498 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
15499 "," in choice list.
15501 2011-08-01 Thomas Quinot <quinot@adacore.com>
15503 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
15504 explicit raise of a predefined exception as Comes_From_Source if the
15505 original N_Raise_Statement comes from source.
15507 2011-08-01 Robert Dewar <dewar@adacore.com>
15509 * sinfo.ads: Add comment.
15510 * sem_ch6.adb: Minor reformatting.
15512 2011-08-01 Robert Dewar <dewar@adacore.com>
15514 * freeze.adb (Freeze_Entity): Refine check for bad component size
15515 clause to avoid rejecting confirming clause when atomic/aliased present.
15517 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15519 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
15520 better determine whether an entity reference is a write.
15521 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
15523 * lib-xref.adb (Output_References): Do no suppress a read reference at
15524 the same location as an immediately preceeding modify-reference, to
15525 handle properly in-out actuals.
15527 2011-08-01 Tristan Gingold <gingold@adacore.com>
15529 * env.c (__gnat_setenv) [VMS]: Refine previous change.
15531 2011-08-01 Quentin Ochem <ochem@adacore.com>
15533 * i-cstrin.adb (New_String): Changed implementation, now uses only the
15534 heap to compute the result.
15536 2011-08-01 Robert Dewar <dewar@adacore.com>
15538 * atree.ads: Minor reformatting.
15540 2011-08-01 Emmanuel Briot <briot@adacore.com>
15542 * g-expect.adb (Get_Command_Output): Fix memory leak.
15544 2011-08-01 Geert Bosch <bosch@adacore.com>
15546 * cstand.adb (P_Float_Type): New procedure to print the definition of
15547 predefined fpt types.
15548 (P_Mixed_Name): New procedure to print a name using mixed case
15549 (Print_Standard): Use P_Float_Type for printing floating point types
15550 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
15551 precision IEEE float.
15553 2011-08-01 Thomas Quinot <quinot@adacore.com>
15555 * sem_ch3.adb: Minor reformatting.
15557 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15559 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
15560 the completion of a generic function, insert the new body rather than
15561 rewriting the original.
15563 2011-08-01 Yannick Moy <moy@adacore.com>
15565 * sinfo.ads, errout.ads: Typos in comments.
15567 2011-08-01 Robert Dewar <dewar@adacore.com>
15569 * par-endh.adb: Minor reformatting.
15571 2011-08-01 Robert Dewar <dewar@adacore.com>
15573 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
15574 (Pre_Post_Aspects): New subtype.
15575 * par-ch12.adb (P_Generic): New syntax for aspects in packages
15576 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
15577 * par-ch7.adb (P_Package): Remove Decl parameter
15578 (P_Package): Handle new syntax for aspects (before IS)
15579 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
15581 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
15582 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
15583 (P_Package): Remove Decl parameter
15584 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
15586 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
15588 * sem_util.ads, sem_util.adb (Static_Boolean): New function
15589 * sinfo.ads: Document new syntax for aspects in packages etc.
15590 * sprint.adb: Handle new syntax of aspects before IS in package
15592 2011-08-01 Thomas Quinot <quinot@adacore.com>
15594 * atree.ads: Minor reformatting.
15595 * sem_prag.adb: Minor reformatting.
15597 2011-08-01 Robert Dewar <dewar@adacore.com>
15599 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
15600 case expr alternative.
15602 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15604 * sem_ch12.adb: Fix typo.
15606 2011-08-01 Geert Bosch <bosch@adacore.com>
15608 * sem_prag.adb (Check_No_Link_Name): New procedure.
15609 (Process_Import_Or_Interface): Use Check_No_Link_Name.
15610 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
15611 instead of Standard_Long_Long_Float_Size global. Preparation for
15612 eventual removal of per type constants.
15613 * exp_util.ads (Get_Stream_Size): New function returning the stream
15614 size value of subtype E.
15615 * exp_util.adb (Get_Stream_Size): Implement new function.
15616 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
15618 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
15620 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
15622 2011-08-01 Geert Bosch <bosch@adacore.com>
15624 * cstand.adb: Fix comments.
15625 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
15626 count of arguments.
15628 2011-08-01 Robert Dewar <dewar@adacore.com>
15630 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
15632 2011-08-01 Geert Bosch <bosch@adacore.com>
15634 * atree.ads: Fix comment.
15636 2011-08-01 Robert Dewar <dewar@adacore.com>
15638 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
15639 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
15640 * par.adb: Add with for Namet.Sp.
15641 * par-tchk.adb: Minor reformatting.
15643 2011-08-01 Vincent Celier <celier@adacore.com>
15645 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
15646 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
15647 of the init procedure of a SAL.
15648 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
15651 2011-08-01 Thomas Quinot <quinot@adacore.com>
15653 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
15656 2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15658 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
15660 2011-08-01 Thomas Quinot <quinot@adacore.com>
15662 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
15663 conformant with its spec (return True only for types that have
15664 an overriding Initialize primitive operation that prevents them from
15665 having preelaborable initialization).
15666 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
15667 initialization for controlled types in Ada 2005 or later mode.
15669 2011-08-01 Robert Dewar <dewar@adacore.com>
15671 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
15673 (Same_Aspect): New function.
15674 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
15675 Type_Invariant, Precondition, Postcondition.
15676 * snames.ads-tmpl: Add Name_Type_Invariant.
15678 2011-08-01 Robert Dewar <dewar@adacore.com>
15680 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
15682 (Freeze_All_Ent): Fix error in handling inherited aspects.
15683 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
15684 already analyzed, but don't skip entire processing of a declaration,
15685 that's wrong in some cases of declarations being rewritten.
15686 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
15687 Don't delay for integer, string literals
15688 Treat predicates in usual manner for delay, remove special case code,
15690 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
15691 (Build_Predicate_Function): Update saved expression in aspect
15692 (Build_Invariant_Procedure): Update saved expression in aspect
15693 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
15694 of replacement of discriminant references if the reference is simple.
15696 2011-08-01 Robert Dewar <dewar@adacore.com>
15698 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
15699 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
15700 Static_Predicate and Dynamic_Predicate.
15701 (Build_Predicate_Function): Add processing for Static_Predicate
15702 and Dynamic_Predicate.
15703 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
15704 (From_Static_Predicate): New flag
15705 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
15707 2011-08-01 Robert Dewar <dewar@adacore.com>
15709 * usage.adb: Documentation cleanup for Ada version modes in usage.
15710 * expander.adb: Minor reformatting.
15712 2011-08-01 Robert Dewar <dewar@adacore.com>
15714 * atree.ads: Minor comment fix.
15715 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
15716 a-witeio.ads, sem_prag.adb: Minor reformatting.
15718 2011-08-01 Doug Rupp <rupp@adacore.com>
15720 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
15721 pointers. Use descrip.h header file for convenience. Add some
15724 2011-08-01 Robert Dewar <dewar@adacore.com>
15726 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
15727 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
15728 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
15730 (Check_Aspect_At_End_Of_Declarations): New procedure
15731 (Analye_Aspect_Specification): Minor changes for above procedures
15732 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
15733 specification node as well.
15735 2011-08-01 Pascal Obry <obry@adacore.com>
15737 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
15738 Windows files. Use GetFilesAttributes() in this case to check for file
15739 existence instead of returning with an error code.
15741 2011-08-01 Vincent Celier <celier@adacore.com>
15743 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
15744 High is above Source length.
15746 2011-08-01 Robert Dewar <dewar@adacore.com>
15748 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
15750 2011-08-01 Robert Dewar <dewar@adacore.com>
15752 * aspects.ads (Boolean_Aspects): New subtype.
15753 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
15754 for derived types in cases where the parent type and derived type have
15756 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
15757 with aspects when parent type also has aspects.
15758 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
15759 boolean expression at this point).
15760 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
15761 accordance with final decision on the Ada 2012 feature.
15762 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
15764 2011-08-01 Matthew Heaney <heaney@adacore.com>
15766 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
15768 2011-08-01 Pascal Obry <obry@adacore.com>
15770 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
15771 Fix Replace_Slice when High is above current string size.
15772 (Replace_Slice): Fix DL computation when High is above current
15775 2011-08-01 Gary Dismukes <dismukes@adacore.com>
15777 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
15779 2011-08-01 Matthew Heaney <heaney@adacore.com>
15781 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
15784 2011-08-01 Pascal Obry <obry@adacore.com>
15786 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
15789 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15791 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
15792 access to protected subprograms in generic bodies.
15793 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
15794 protected type, indicate that the convention of the subprogram is
15795 Convention_Protected, because it may be used in subsequent declarations
15796 within the protected declaration.
15798 2011-08-01 Vincent Celier <celier@adacore.com>
15800 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
15801 and "final" procedures when the name of the library is "ada", to avoid
15802 duplicate symbols "adainit" and "adafinal" in executables.
15804 2011-08-01 Ed Schonberg <schonberg@adacore.com>
15806 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
15807 quantified expression that appears within a postcondition and uses the
15808 Ada2012 'Result attribute.
15810 2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15812 * init.c (__gnat_error_handler): Cast reason to int.
15813 (__gnat_install_handler): Explain sa_sigaction use.
15815 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
15817 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
15818 subprogram has copy-in copy-out parameters, try to promote the mode of
15819 the return type if it is passed in registers.
15821 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
15823 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
15824 left operand as addressable.
15826 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
15828 * gcc-interface/gigi.h (build_function_stub): Remove.
15829 (build_return_expr): Likewise.
15830 (convert_vms_descriptor): Declare.
15831 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
15832 (build_function_stub): Move to...
15833 * gcc-interface/utils2.c (build_return_expr): Move to...
15834 * gcc-interface/trans.c (build_function_stub): ...here.
15835 (build_return_expr): ...here.
15836 (Subprogram_Body_to_gnu): Add local variable for language_function.
15837 Disconnect the parameter attributes cache, if any, once done with it.
15838 Call end_subprog_body only after setting the end_locus.
15839 Build the stub associated with the function, if any, at the very end.
15840 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
15841 variables and streamline control flow.
15843 2011-07-23 Arnaud Charlet <charlet@adacore.com>
15846 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
15847 g-trasym-dwarf.adb.
15849 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15852 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
15853 Assign to act.sa_sigaction.
15854 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
15855 current->return_address to char * before arithmetic.
15857 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15859 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
15860 Correct argument types.
15861 Extract code from reason.
15862 (__gnat_install_handler): Assign to act.sa_sigaction.
15864 2011-07-21 Eric Botcazou <ebotcazou@adacore.com>
15866 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
15867 (GNAT1_OBJS): ...here.
15869 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
15872 * g-socthi-mingw.adb (Fill): Fix formatting.
15874 * gcc-interface/gigi.h: Move around comment.
15876 2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15879 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
15881 2011-07-14 Florian Weimer <fw@deneb.enyo.de>
15884 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
15886 2011-07-13 Eric Botcazou <ebotcazou@adacore.com>
15888 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
15889 range comparison if Pmode is SImode.
15891 2011-07-12 Laurent GUERBY <laurent@guerby.net>
15892 Eric Botcazou <ebotcazou@adacore.com>
15894 * adadecode.c: Wrap up in extern "C" block.
15895 * adadecode.h: Likewise.
15896 * adaint.c: Likewise. Remove 'const' keyword.
15897 * adaint.h: Likewise.
15898 * argv.c: Likewise.
15899 * atree.h: Likewise.
15901 * cstreams.c: Likewise.
15903 * exit.c: Likewise.
15905 * final.c: Likewise.
15906 * init.c: Likewise.
15907 * initialize.c: Likewise.
15908 * link.c: Likewise.
15909 * namet.h: Likewise.
15910 * nlists.h: Likewise.
15911 * raise.c: Likewise.
15912 * raise.h: Likewise.
15913 * repinfo.h: Likewise.
15914 * seh_init.c: Likewise.
15915 * targext.c: Likewise.
15916 * tracebak.c: Likewise.
15917 * uintp.h: Likewise.
15918 * urealp.h: Likewise.
15919 * xeinfo.adb: Wrap up generated C code in extern "C" block.
15920 * xsinfo.adb: Likewise.
15921 * xsnamest.adb: Likewise.
15922 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
15923 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
15924 * gcc-interface/misc.c: Likewise.
15925 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
15926 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
15927 ada/targext.o here...
15928 (GNAT_ADA_OBJS): ...and not here.
15929 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
15930 (GNATBIND_OBJS): Reorder.
15932 2011-07-07 Richard Henderson <rth@redhat.com>
15934 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
15935 dwarf2out_frame_init.
15937 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
15939 * gcc-interface/misc.c (gnat_init): Tweak previous change.
15941 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15944 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
15946 2011-07-06 Richard Guenther <rguenther@suse.de>
15948 * gcc-interface/misc.c (gnat_init): Merge calls to
15949 build_common_tree_nodes and build_common_tree_nodes_2.
15950 Re-initialize boolean_false_node.
15952 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
15953 Olivier Hainque <hainque@adacore.com>
15954 Nicolas Setton <setton@adacore.com>
15956 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
15957 the type according to the ARTIFICIAL_P parameter.
15958 (create_type_decl): Likewise.
15959 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
15961 2011-07-01 Eric Botcazou <ebotcazou@adacore.com>
15963 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
15964 (gnatbind): Likewise.
15966 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15968 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
15970 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
15972 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
15973 local variable throughout. Remove useless call to Base_Type.
15974 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
15975 Take it also into account for the volatileness of the field. Set the
15976 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
15978 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
15980 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
15981 on a dereference built for a by-ref object if it has an address clause.
15983 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
15985 * einfo.ads (Address_Taken): Document use for the second argument of
15986 Asm_Input and Asm_Output attributes.
15987 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
15988 argument is an entity name, then set Address_Taken on it.
15989 <Attribute_Asm_Output>: Likewise.
15990 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
15991 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
15992 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
15993 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
15995 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
15997 PR middle-end/46500
15998 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
16000 2011-06-14 Joseph Myers <joseph@codesourcery.com>
16002 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
16003 (ada/utils.o): Update dependencies.
16004 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
16005 ../../../libcpp/libcpp.a.
16006 * gcc-interface/utils.c: Include common/common-target.h.
16007 (process_attributes): Use targetm_common.have_named_sections.
16009 2011-06-07 Richard Guenther <rguenther@suse.de>
16011 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
16014 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
16016 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
16017 TREE_THIS_NOTRAP flag.
16019 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
16021 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
16024 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
16026 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
16027 constants whose full view has discriminants specially.
16029 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
16031 * gcc-interface/utils.c: Include diagnostic.h.
16032 (gnat_write_global_declarations): Output debug information for all
16033 global type declarations before finalizing the compilation unit.
16034 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
16036 2011-05-25 Jakub Jelinek <jakub@redhat.com>
16038 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
16040 2011-05-25 Kai Tietz <ktietz@redhat.com>
16042 * adaint.c (__gnat_to_canonical_file_list_next): Use array
16043 initialization instead of const/none-const pointer assignment.
16045 2011-05-24 Joseph Myers <joseph@codesourcery.com>
16047 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
16048 $(EXTRA_GNAT1_OBJS).
16049 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
16050 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
16051 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
16052 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
16053 libcommon-target.a instead of prefix.o.
16055 2011-05-21 Joseph Myers <joseph@codesourcery.com>
16058 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
16060 2011-05-20 Joseph Myers <joseph@codesourcery.com>
16062 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
16063 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
16064 instead of version.o.
16066 2011-05-18 Kai Tietz <ktietz@redhat.com>
16068 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
16069 boolean_false_node instead of integer_zero_node.
16070 (convert_with_check): Likewise.
16071 * gcc-interface/decl.c (choices_to_gnu): Likewise.
16073 2011-05-12 Eric Botcazou <ebotcazou@adacore.com>
16075 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
16076 type of the parameter is an unconstrained array, convert the actual to
16077 the type of the formal in the In Out and Out cases as well.
16079 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
16081 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
16082 call build_function_type_array or build_varargs_function_type_array
16084 (create_subprog_type): Don't call build_function_type; call
16085 build_function_type_vec instead.
16087 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
16089 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
16090 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
16091 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
16093 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
16095 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
16097 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
16098 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
16100 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
16102 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
16104 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
16106 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
16107 instead of accessing TYPE_ARG_TYPES directly.
16108 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
16110 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
16113 * gcc-interface/gigi.h (get_variant_part): Declare.
16114 * gcc-interface/decl.c (get_variant_part): Make global.
16115 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
16116 types have the same constant size, are record types and T1 has a
16117 variant part while T2 doesn't.
16119 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
16121 * gcc-interface/utils.c (begin_subprog_body): Do not call
16123 (end_subprog_body): Likewise.
16125 2011-05-04 Richard Guenther <rguenther@suse.de>
16127 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
16129 (pos_to_constructor): Likewise.
16131 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16132 Eric Botcazou <ebotcazou@adacore.com>
16134 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
16135 of build_function_type. Adjust calls to...
16136 (build_raise_check): ...this. Do not take a void_tree parameter.
16137 Call build_function_type_list instead of build_function_type.
16138 Fix head comment and swap couple of conditional blocks.
16140 2011-04-30 Eric Botcazou <ebotcazou@adacore.com>
16142 * gnatvsn.ads (Library_Version): Bump to 4.7.
16143 (Current_Year): Bump to 2011.
16145 2011-04-29 Michael Matz <matz@suse.de>
16147 * gcc-interface/misc.c (gnat_handle_option): Set
16148 warn_maybe_uninitialized.
16150 2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
16152 * gnat_ugn.texi (Complexity Metrics Control): Update link to
16153 the Watson/McCabe paper.
16155 2011-04-23 Jim Meyering <meyering@redhat.com>
16157 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
16159 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
16161 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
16164 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
16166 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
16168 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
16169 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
16170 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
16171 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
16172 <all>: Do not set flags on the reused DECL node coming from an alias.
16173 Set DECL_IGNORED_P on the DECL node built for subprograms if they
16174 don't need debug info here...
16175 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
16176 (gigi): Adjust calls to create_subprog_decl.
16177 (build_raise_check): Likewise.
16178 (establish_gnat_vms_condition_handler): Likewise.
16179 (Compilation_Unit_to_gnu): Likewise.
16180 (gnat_to_gnu): Likewise.
16182 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
16184 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
16185 (NO_REORDER_ADAFLAGS): New variable.
16186 (EXTRA_GNATTOOLS): Always define.
16187 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
16188 Clean up and adjust list of files compiled with special options.
16189 * gcc-interface/Make-lang.in: Likewise.
16190 (ada/decl.o): Cosmetical change.
16191 (ada/misc.o): Remove dependency on $(PLUGIN_H).
16193 2011-04-20 Jim Meyering <meyering@redhat.com>
16195 * initialize.c (__gnat_initialize): Remove useless if-before-free.
16197 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
16199 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
16200 $(CFLAGS) on the link line.
16202 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
16204 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
16205 padded type built for the return type if it is unconstrained.
16207 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
16209 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
16211 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
16213 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
16214 before calling TREE_CHAIN.
16215 * gcc-interface/misc.c (gnat_init_ts): New function.
16216 (LANG_HOOKS_INIT_TS): Define.
16218 2011-04-12 Martin Jambor <mjambor@suse.cz>
16220 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
16221 instead of cgraph_node.
16223 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
16225 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
16226 alignment on fields of the RETURN type built for the Copy-In Copy-Out
16229 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
16231 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
16232 of aggregate types that contain a placeholder.
16234 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
16236 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
16238 (handle_type_generic_attribute): Likewise.
16240 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
16243 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
16245 2011-04-04 Kai Tietz <ktietz@redhat.com>
16248 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
16251 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16253 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
16254 type case, do not strip a padding type around the array type.
16256 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16258 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
16261 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16263 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
16264 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
16265 code for -feliminate-unused-debug-types.
16266 (gnat_post_options): Likewise.
16268 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16270 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
16271 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
16274 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16276 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
16277 DECL_ARTIFICIAL flag on enumeration types.
16279 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16281 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
16282 fat pointer types artificial unconditionally.
16283 <E_Array_Subtype>: Attach the base array type as a parallel type if it
16286 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16288 * gcc-interface/gigi.h (get_dummy_type): Declare.
16289 (build_dummy_unc_pointer_types): Likewise.
16290 (finish_fat_pointer_type): Likewise.
16291 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
16292 fat pointer type has been built, complete it in place.
16293 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
16294 and thin pointers. Remove useless variable.
16295 (finish_fat_pointer_type): Make global and move to...
16296 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
16297 (get_dummy_type): New function.
16298 (build_dummy_unc_pointer_types): Likewise.
16299 (gnat_pushdecl): Propage the name to the anonymous variants only.
16300 (update_pointer_to): Only adjust the pointer types in the unconstrained
16303 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16305 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
16306 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
16307 if this is a Taft amendment type and the full declaration is available.
16308 * gcc-interface/trans.c (process_type): Likewise.
16309 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
16310 (process_freeze_entity): Likewise.
16311 * gcc-interface/utils.c (dummy_global): New static variable.
16312 (gnat_write_global_declarations): If there are types declared as used
16313 at the global level, insert them in the global hash table.
16315 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16317 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
16318 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
16319 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
16321 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
16322 flag of the type accordingly.
16323 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
16325 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16327 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
16328 finalizing types when updating the pointers to the designated type.
16329 <all>: Finalize the deferred types even if we didn't defer processing
16330 of incomplete types in this invocation.
16332 2011-04-01 Olivier Hainque <hainque@adacore.com>
16333 Nicolas Setton <setton@adacore.com>
16334 Eric Botcazou <ebotcazou@adacore.com>
16336 * gcc-interface/misc.c (gnat_descriptive_type): New function.
16337 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
16339 2011-03-28 Kai Tietz <ktietz@redhat.com>
16341 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
16343 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
16344 * system-mingw.ads (System): Change ZCX_By_Default default to True.
16346 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
16348 2011-03-28 Tristan Gingold <gingold@adacore.com>
16351 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
16352 Use ada output of gnatbind.
16353 (ada/b_gnatb.adb): Ditto.
16354 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
16355 (ada.mostlyclean, ada.stage1)
16356 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
16357 (ada.stagefeedback): Adjust.
16358 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
16359 Use ada output of gnatbind.
16360 (b_gnatm.adb): Ditto.
16361 (b_gnatl.o, b_gnatm.o): New rules.
16363 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16365 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
16366 for the padded type built to support a specified size or alignment.
16368 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16370 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
16371 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
16372 unconditionally to the end of the unit when the designated type is
16374 <all>: Rename local variable. Attempt to un-defer types only and do it
16375 for limited_with'ed types as well.
16376 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
16377 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
16378 consistently and remove redundant call to finalize_from_with_types.
16380 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16382 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
16383 subprograms without a previous spec declared in the same unit.
16384 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
16385 subprograms at the end of the unit instead of at the beginning.
16386 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
16387 isn't public for the special handling of non-inline functions nested
16388 inside inline external functions.
16390 2011-03-25 Jeff Law <law@redhat.com>
16392 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
16394 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
16396 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
16397 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
16398 to compute Set_Size_Depends_On_Discriminant.
16399 (Layout_Type): Call it on array types in back-end layout mode.
16400 * sem_util.adb (Requires_Transient_Scope): Return true for array
16401 types only if the size depends on the value of discriminants.
16402 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
16403 type if the RHS is a call to a function that returns an unconstrained
16404 type with default discriminant.
16406 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
16408 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
16409 non-conversion to the nominal result type at the end.
16411 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
16413 * gcc-interface/trans.c (create_temporary): New function taken from...
16414 (create_init_temporary): ...here. Call it.
16415 (call_to_gnu): Create the temporary for the return value early, if any.
16416 Create it for a function with copy-in/copy-out parameters if there is
16417 no target; in other cases of copy-in/copy-out, use another temporary.
16418 Push the new binding level lazily. Add and rename local variables.
16420 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
16422 * gcc-interface/decl.c (validate_size): Improve comments and tweak
16424 (set_rm_size): Likewise.
16426 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
16428 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
16429 for the padded type built in order to support a specified alignment.
16430 Fix incorrect formatting.
16432 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
16435 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
16437 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
16439 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
16440 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
16441 to the end of the list. Adjust recursive call. Rename local variable.
16442 If REORDER is true, reorder components of the record type.
16443 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
16444 components_to_record and adjust the parameter list.
16446 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
16448 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
16449 disabled, use the variable for bounds of loop iteration scheme.
16451 2011-03-21 Kai Tietz <ktietz@redhat.com>
16454 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
16456 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
16458 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
16459 out whether the expression is read-only. Short-circuit placeholder
16460 case and rename a couple of local variables.
16462 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
16464 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
16465 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
16466 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
16467 (convert): Deal with conversions from a smaller form type specially.
16469 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
16471 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
16472 its argument, except for the special -I- switch.
16474 2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
16476 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
16479 2011-02-08 Eric Botcazou <ebotcazou@adacore.com>
16481 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
16483 2011-02-03 Eric Botcazou <ebotcazou@adacore.com>
16485 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
16487 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
16488 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
16489 instead of GNAT_FORMAL. Protect the expression against multiple uses.
16490 Do not generate the check directly, instead instantiate the template
16491 check present in the descriptor.
16492 (make_descriptor_field): Move around.
16493 (build_vms_descriptor32): Build a template check in the POINTER field.
16494 (build_vms_descriptor): Remove useless suffixes.
16495 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
16497 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
16500 * targext.c: Include target files if IN_RTS is defined.
16502 2011-01-26 Richard Guenther <rguenther@suse.de>
16505 * targext.c: Include config.h.
16506 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
16509 2011-01-04 Pascal Obry <obry@adacore.com>
16510 Eric Botcazou <ebotcazou@adacore.com>
16512 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
16514 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16516 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
16517 end-of-case on the end label and its associated gotos, if any.
16519 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16521 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
16522 expressions of the parameter cache within the statement group of
16523 the CICO mechanism.
16525 2011-01-04 Olivier Hainque <hainque@adacore.com>
16526 Eric Botcazou <ebotcazou@adacore.com>
16528 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
16529 (set_end_locus_from_node): New function.
16530 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
16531 make and the function end_locus.
16532 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
16533 for the elaboration subprogram.
16534 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
16535 set the end_locus of the expression as well.
16537 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16540 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
16541 variables that are referenced in exception handlers volatile.
16545 Copyright (C) 2011 Free Software Foundation, Inc.
16547 Copying and distribution of this file, with or without modification,
16548 are permitted in any medium without royalty provided the copyright
16549 notice and this notice are preserved.