1 2011-08-29 Thomas Quinot <quinot@adacore.com>
3 * get_scos.adb: Ignore chaining indicators not currently supported
6 2011-08-29 Arnaud Charlet <charlet@adacore.com>
8 * system.ads: Minor editing.
10 2011-08-29 Arnaud Charlet <charlet@adacore.com>
12 * bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in
14 * sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of
15 Attribute_Elab_Subp_Body.
16 * snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New.
17 * sem_util.adb: Update comments.
19 2011-08-29 Thomas Quinot <quinot@adacore.com>
21 * par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record
22 pragma name for each SCO statement corresponding to a pragma.
24 2011-08-29 Arnaud Charlet <charlet@adacore.com>
26 * opt.ads: Minor editing.
28 2011-08-29 Yannick Moy <moy@adacore.com>
30 * gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode
31 that only made sense for CodePeer mode.
33 2011-08-29 Jose Ruiz <ruiz@adacore.com>
35 * targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag
36 which is no longer used.
37 * targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the
38 handling of the 64-bit division check.
39 * exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit
41 * system*.ads (Support_64_Bit_Divides): Remove this flag which is no
44 2011-08-29 Thomas Quinot <quinot@adacore.com>
46 * get_scos.adb: Minor reformatting.
48 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
50 * exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a
51 statement list is wrapped in a block, the block is explicitly analyzed
52 in order to properly redecorate the entities and create a servicing
55 2011-08-29 Tristan Gingold <gingold@adacore.com>
57 * sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove.
58 (Set_Zero_Cost_Handling): Remove.
60 2011-08-29 Thomas Quinot <quinot@adacore.com>
62 * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting
64 2011-08-29 Geert Bosch <bosch@adacore.com>
66 * s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation
67 instruction, as the latter may produce -0.0, which is not a valid VAX
69 (Neg_G): Likewise for VAX F float.
71 2011-08-29 Robert Dewar <dewar@adacore.com>
73 * exp_util.adb: Minor reformatting.
75 2011-08-29 Yannick Moy <moy@adacore.com>
77 * sem_ch3.adb: Minor comment update.
79 2011-08-29 Thomas Quinot <quinot@adacore.com>
81 * checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of
84 2011-08-29 Thomas Quinot <quinot@adacore.com>
86 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush
87 current statement sequence on a generic instantiation or a subprogram
90 2011-08-29 Robert Dewar <dewar@adacore.com>
92 * sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:
95 2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
97 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
98 Correct the check which involves the freeze node of a controlled or
99 access-to-controlled type.
101 2011-08-29 Geert Bosch <bosch@adacore.com>
103 * sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm
105 * s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from
108 2011-08-29 Yannick Moy <moy@adacore.com>
110 * sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration
111 for every index type and component type that is not a subtype_mark.
112 (Process_Subtype): Set Etype of subtype.
114 2011-08-29 Robert Dewar <dewar@adacore.com>
116 * a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code
117 reorganization. Minor reformatting.
119 2011-08-29 Steve Baird <baird@adacore.com>
121 * exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion
122 for CodePeer and ALFA modes.
124 2011-08-29 Ed Schonberg <schonberg@adacore.com>
126 * sem_type.adb (Collect_Interps): Within an instance, collect a homonym
127 that comes from an enclosing scope if it is not the renaming of an
128 actual, to handle properly a spurious ambiguity in an instance.
130 2011-08-29 Eric Botcazou <ebotcazou@adacore.com>
132 * sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to...
133 (Alignment_Check_For_Size_Change): ...this. Add SIZE parameter and
134 use it instead of the Esize of the first parameter.
135 (Analyze_Attribute_Definition_Clause) <Object_Size>: Adjust call to
137 <Size>: Likewise. Call it for composite types on the RM size.
139 2011-08-29 Yannick Moy <moy@adacore.com>
141 * exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array.
142 * sem_util.adb (Unique_Name): Correct behaviour for names of
145 2011-08-29 Yannick Moy <moy@adacore.com>
147 * sem_prag.adb (Check_Precondition_Postcondition): In formal
148 verification mode, analyze pragma expression for correctness, for
149 pre/post on library-level subprogram, as it is not expanded later.
151 2011-08-29 Yannick Moy <moy@adacore.com>
153 * exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates
154 in formal verification.
156 2011-08-29 Thomas Quinot <quinot@adacore.com>
158 * sem_util.adb: Minor reformatting.
159 * freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute,
161 * par_sco.ads, par_sco.adb: Update comments.
163 2011-08-29 Yannick Moy <moy@adacore.com>
165 * einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and
166 associated getter/setter.
167 * sem_ch6.adb: Remove reference to Is_Postcondition_Proc.
169 2011-08-29 Vincent Celier <celier@adacore.com>
171 * prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind
172 * prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler
173 with declarations for Language_Kind and Dependency_Kind for Ada.
174 * prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name
175 (Process_Compiler): Take into account the new attributes Dependency_Kind
177 (Check_Configuration): Check if language kind is unit based, not if the
178 language name is Ada.
179 (Process_Exceptions_Unit_Based): Ditto
180 (Add_Language): Remove default additions of language and dependency kind
181 * prj.ads: Minor comment change
182 * snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind
184 2011-08-29 Johannes Kanig <kanig@adacore.com>
186 * debug.adb: Update comments.
188 2011-08-24 Joseph Myers <joseph@codesourcery.com>
190 * gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)
191 (CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)
192 (CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.
193 (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)
194 (ada/initialize.o, ada/raise.o): Remove explicit compilation rules.
196 2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
198 * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
199 (GNATLIBCFLAGS_FOR_C): Replace
200 TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
201 (gnatlib-shared-default, gnatlib-shared-dual-win32)
202 (gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
203 (gnatlib-sjlj, gnatlib-zcx): Likewise.
205 2011-08-07 Eric Botcazou <ebotcazou@adacore.com>
207 * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.
209 * gcc-interface/gigi.h (enumerate_modes): Fix formatting.
211 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change.
213 2011-08-05 Nicolas Roche <roche@adacore.com>
215 * gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared
216 libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with
218 * gcc-interface/Make-lang.in: Add support for canadian cross setting.
220 2011-08-05 Matthew Heaney <heaney@adacore.com>
222 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth):
223 subprogram bodies declared out-of-order.
225 2011-08-05 Yannick Moy <moy@adacore.com>
227 * sem_util.adb (Unique_Name): only prefix with "standard" the names of
228 entities directly in package Standard, otherwise skip the standard
231 2011-08-05 Robert Dewar <dewar@adacore.com>
233 * a-cbmutr.adb: Minor reformatting
234 (Allocate_Node): refactor node allocation algorithm
236 2011-08-05 Robert Dewar <dewar@adacore.com>
238 * opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch.
239 * sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable
241 (Analyze_Pragma, case Check_Policy): Ditto.
242 * sem_prag.ads (Check_Disabled): New function
243 * snames.ads-tmpl: Add Name_Disable.
245 2011-08-05 Robert Dewar <dewar@adacore.com>
247 * gnat_rm.texi: Document implementation-defined policy DISABLE for
248 pragmas Assertion_Policy, Check_Policy, Debug_Policy.
250 2011-08-05 Ed Schonberg <schonberg@adacore.com>
252 * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
253 that appears in a generic formal part and applies to a formal
256 2011-08-05 Robert Dewar <dewar@adacore.com>
258 * a-cbmutr.ads: Minor reformatting.
260 2011-08-05 Matthew Heaney <heaney@adacore.com>
262 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
263 to check count, check sign of value instead.
264 * a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty
265 (Copy_Subtree): allocate copy of source element
266 (Equal_Subtree): compare elements, not access objects
268 2011-08-05 Vincent Celier <celier@adacore.com>
270 * gnat_ugn.texi: Fix VMS alternative.
272 2011-08-05 Thomas Quinot <quinot@adacore.com>
274 * sem_ch11.adb: Add comment.
276 2011-08-05 Robert Dewar <dewar@adacore.com>
278 * exp_util.adb: Minor comment fix.
280 2011-08-05 Robert Dewar <dewar@adacore.com>
282 * scng.adb (Error_Unterminated_String): Improve flag position when
285 2011-08-05 Matthew Heaney <heaney@adacore.com>
287 * Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway
289 * a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded
290 multiway tree containers.
292 2011-08-05 Robert Dewar <dewar@adacore.com>
294 * styleg.adb (Check_Comment): Implement comment spacing of 1 or 2
295 * stylesw.adb: Implement -gnatyC to control comment spacing
296 * stylesw.ads (Style_Check_Comments_Spacing): New switch (set by
298 * usage.adb: Add line for -gnatyC.
300 2011-08-05 Robert Dewar <dewar@adacore.com>
302 * gnat_ugn.texi: Document -gnatyC.
303 * vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a
304 synonym for COMMENTS2).
306 2011-08-05 Robert Dewar <dewar@adacore.com>
308 * par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb,
309 a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb,
310 sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb,
311 a-comutr.ads, lib-xref.adb: Minor reformatting.
313 2011-08-05 Robert Dewar <dewar@adacore.com>
315 * sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal
316 warning if there is an exception handler present.
318 2011-08-05 Pascal Obry <obry@adacore.com>
320 * a-iteint.ads: Fix copyright year.
322 2011-08-05 Thomas Quinot <quinot@adacore.com>
324 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a
325 statement SCO for a USE clause or a representation clause.
327 2011-08-05 Yannick Moy <moy@adacore.com>
329 * lib-xref-alfa.adb (Collect_ALFA): generate the proper relation
330 between body and spec for stub.
331 (Detect_And_Add_ALFA_Scope): take into account subprogram stub
332 * lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a
333 pragma precondition or postcondition, for which the enclosing
334 subprogram or package in the AST is not the desired one, return empty.
336 2011-08-05 Thomas Quinot <quinot@adacore.com>
338 * g-expect.adb: Minor reformatting.
340 2011-08-05 Bob Duff <duff@adacore.com>
342 * a-fihema.adb: Comment out OS_Lib.
344 2011-08-05 Matthew Heaney <heaney@adacore.com>
346 * Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb]
347 (unbounded multiway tree containers) and a-iteint.ads.
348 * a-comutr.ads, a-comutr.adb:
349 This is the new Ada 2012 unit for unbounded multiway tree containers
350 * a-cimutr.ads, a-cimutr.adb
351 This is the new Ada 2012 unit for indefinite multiway tree containers
352 * a-iteint.ads: New file.
354 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
356 * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc.
358 2011-08-05 Bob Duff <duff@adacore.com>
360 * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for
362 * par-ch4.adb (P_Allocator): Parse new subpool specification syntax.
364 2011-08-05 Ed Schonberg <schonberg@adacore.com>
366 * sem_ch4.adb (Try_Container_Indexing): New procedure to implement the
367 general indexing aspects of Ada2012. Called when analyzing indexed
368 components when other interpretations fail.
369 * sem_ch8.adb (Find_Direct_Name): check for implicit dereference only
370 in an expression context where overloading is meaningful. This excludes
371 the occurrence in an aspect specification (efficiency only).
372 * sem_attr.adb (Analyze_Attribute): indicate that the attributes
373 related to iterators can be set by an attribute specification, but
375 * sem_ch13.adb (Analyze_Aspect_Specifications): handle
376 Constant_Indexing and Variable_Indexing.
377 (Check_Indexing_Functions): New procedure to perform legality checks.
378 Additional semantic checks at end of declarations.
380 2011-08-05 Sergey Rybin <rybin@adacore.com>
382 * tree_io.ads: Update ASIS_Version_Number because of the change of the
383 order of calling Tree_Write/Tree_Read routines made for aspects.
385 2011-08-05 Bob Duff <duff@adacore.com>
387 * a-fihema.adb (Finalize): Fix race condition.
389 2011-08-05 Yannick Moy <moy@adacore.com>
391 * sem_ch12.adb (Analyze_Package_Instantiation,
392 Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
395 2011-08-05 Ed Schonberg <schonberg@adacore.com>
397 * sem_type.adb (Specific_Type): in an instance, the type-specific
398 operand of an equality check that involves null may have a private
399 type. Use full view to determine legality of construct.
401 2011-08-05 Vincent Celier <celier@adacore.com>
403 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
404 delete or close the file when the call to gnatmake was successful.
406 2011-08-05 Yannick Moy <moy@adacore.com>
408 * gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set
409 Global_Discard_Names.
411 2011-08-05 Ed Schonberg <schonberg@adacore.com>
413 * sinfo.ads: comments on use of entity field for aspect specifications.
415 2011-08-05 Ed Schonberg <schonberg@adacore.com>
417 * sem_ch12.adb (Reset_Entity): If the entity field of the associated
418 node is not itself an entity but a selected component, it is a
419 rewritten parameterless call to an en enclosing synchronized operation,
420 and this expansion will be performed again in the instance, so there is
421 no global information to preserve.
423 2011-08-05 Javier Miranda <miranda@adacore.com>
425 * exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support
426 for renamings of predefined primitives.
427 (In_Predef_Prims_DT): New subprogram.
429 2011-08-05 Ed Schonberg <schonberg@adacore.com>
431 * sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a
432 possible interpretation of name is a reference type, add an
433 interpretation that is the designated type of the reference
434 discriminant of that type.
435 * sem_res.adb (resolve): If the interpretation imposed by context is an
436 implicit dereference, rewrite the node as the deference of the
437 reference discriminant.
438 * sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,
439 Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from
440 parent type or base type.
441 * sem_ch4.adb (Process_Indexed_Component,
442 Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,
443 Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):
444 Check for implicit dereference.
445 (List_Operand_Interps): Indicate when an implicit dereference is
447 * sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.
449 2011-08-05 Thomas Quinot <quinot@adacore.com>
451 * scos.ads: Update documentation of SCO table. Pragma statements can now
452 be marked as disabled (using 'p' instead of 'P' as the statement kind).
453 * par_sco.ads, par_sco.adb: Implement the above change.
454 (Process_Decisions_Defer): Generate a P decision for the first parameter
455 of a dyadic pragma Debug.
456 * sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if
458 * put_scos.adb: Code simplification based on above change.
460 2011-08-05 Robert Dewar <dewar@adacore.com>
462 * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb,
463 bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb,
464 a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads,
465 prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting
467 2011-08-05 Bob Duff <duff@adacore.com>
469 * a-stunau.ads, g-spipat.adb: Update comments.
471 2011-08-05 Bob Duff <duff@adacore.com>
473 * a-fihema.ads: Minor comment fix.
474 * a-fihema.adb (Allocate, Deallocate): Assert that the alignment is
476 (Attach, Detach): Remove some unnecessary code.
477 (Finalize): Remove Node_Ptr_To_Address, replace with a constant.
479 2011-08-05 Bob Duff <duff@adacore.com>
481 * a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap
482 allocation for Objects component. This simplifies the code somewhat. It
483 is also a little more efficient in the not-so-unusual case where there
484 are no controlled objects allocated.
485 Make Finalization_Started flag atomic.
486 (Finalize): Avoid unnecessary detachment of items from the list.
487 (pcol): Minor cleanup.
489 2011-08-05 Ed Schonberg <schonberg@adacore.com>
491 * sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal
492 package whose name is the same as that of the generic unit, or its
495 2011-08-05 Bob Duff <duff@adacore.com>
497 * a-fihema.adb, a-fihema.ads: Minor comment improvements.
498 * sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:
501 2011-08-05 Arnaud Charlet <charlet@adacore.com>
503 * make.adb (Linking_Phase): No longer need to set source search path
504 before calling gnatlink in CodePeer mode.
505 * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to
506 gcc in CodePeer mode, since the binder generated file no longer has a
508 * switch.ads, switch.adb (Is_Language_Switch): Removed.
509 * switch-c.adb: Update comment.
511 2011-08-05 Thomas Quinot <quinot@adacore.com>
513 * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.
515 2011-08-05 Nicolas Roche <roche@adacore.com>
517 * gnat_ugn.texi: Fix minor syntax error issue.
519 2011-08-05 Vincent Celier <celier@adacore.com>
521 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
522 delete or close the file when the call to gnatmake returns a non
523 successful return code.
525 2011-08-05 Ed Schonberg <schonberg@adacore.com>
527 * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate
528 check, indicate that the copy of the original node does not come from
529 source, to prevent an infinite recursion of the expansion.
531 2011-08-05 Johannes Kanig <kanig@adacore.com>
533 * debug.adb: document switch -gnatd.G for gnat2why, which deactivates
534 VC generation for subprogram bodies.
536 2011-08-05 Yannick Moy <moy@adacore.com>
539 * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define
540 the base type with the smallest allowed base type.
542 2011-08-05 Sergey Rybin <rybin@adacore.com>
544 * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for
547 2011-08-05 Ed Schonberg <schonberg@adacore.com>
549 * sem_ch12.ads: minor comment updates.
551 2011-08-05 Ed Schonberg <schonberg@adacore.com>
553 * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an
554 instantiation and a formal package the compiler generates a package
555 renaming declaration so that the generic name within the declaration
556 is interpreted as a renaming of the instance. At the end of a formal
557 package declaration, this renaming must become invisible.
559 2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
561 * exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character
562 comparison and rely on concrete entities instead.
564 2011-08-05 Ed Schonberg <schonberg@adacore.com>
566 * einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types
567 and discriminants, to indicate that the type has an access discriminant
568 that supports implicit dereference.
569 * snames.ads-tmpl: Add names of aspects and attributes related to
570 Ada2012 iterators: constant_indexing, default_iterator,
571 iterator_element, implicit_dereference, variable_indexing.
572 * aspects.ads, aspects.adb: entries for iterator-related aspects.
573 * sem_ch13.adb (Analyze_aspect_specifications): dummy entries for
574 iterator-related aspects.
575 * sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.
577 2011-08-05 Sergey Rybin <rybin@adacore.com>
579 * gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling
580 metrics in gnatmetric to cover new kinds of coupling mentrics.
582 2011-08-05 Steve Baird <baird@adacore.com>
584 * bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead
585 of calling the user-defined main subprogram.
586 (Gen_Main): Declare Ada_Main_Program and (if CodePeer_Mode
587 is set) Call_Main_Subprogram ahead of, as opposed to
589 (Gen_Output_File_Ada): Remove CodePeer_Mode-conditional
590 generation of a "with" of the user-defined main subprogram.
591 Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper
592 (which is now called from Gen_Main instead).
594 2011-08-05 Emmanuel Briot <briot@adacore.com>
596 * projects.texi: Added reference to the Makefile package.
598 2011-08-05 Thomas Quinot <quinot@adacore.com>
600 * exp_ch7.adb: Minor comment rewording.
602 2011-08-05 Ed Falis <falis@adacore.com>
604 * env.c: Fix comment.
606 2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
608 * sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid
609 character comparison and rely on concrete entities instead.
611 2011-08-05 Ed Schonberg <schonberg@adacore.com>
613 * sem_ch3.adb: (Check_Private_Overriding): better error message,
614 suggested by AI95-0068.
616 2011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
618 * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve
619 the two potential initialization calls. This accounts for any
620 access-before-elaboration checks which may precede the initialization
622 (Next_Suitable_Statement): New routine. Returns the next real statement
623 after the input node while skipping generated checks.
624 * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along
625 with comment on usage.
626 Do not generate Elaborate_All when the trigger is a finalization call
627 coming from a type init proc.
628 (Check_Elab_Call): Propagate the initialization procedure context to
629 subsequent calls to Check_A_Call.
630 (Check_Internal_Call_Continue): Propagate the initialization procedure
631 context to subsequent calls to Check_Elab_Call.
632 (Is_Finalization_Procedure): New routine. Returns True if the input
633 entity denotes a [Deep_]Finalize routine.
634 * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc
635 along with comment on usage.
637 2011-08-05 Vadim Godunko <godunko@adacore.com>
639 * s-atocou.ads: Add list of supported platforms.
641 2011-08-05 Yannick Moy <moy@adacore.com>
643 * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables
645 * opt.ads (Disable_ALI_File): new Boolean flag
646 * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing
648 2011-08-05 Ed Falis <falis@adacore.com>
650 * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that
651 environ is properly defined.
653 2011-08-05 Vincent Celier <celier@adacore.com>
655 * make.adb (Compilation_Phase): Exit immediately when all objects have
656 been found up to date, to avoid multiple exit messages.
657 * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the
658 same project for languages with no compiler.
659 * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch
661 2011-08-05 Robert Dewar <dewar@adacore.com>
663 * exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb,
664 sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb,
665 prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb,
666 s-atocou-builtin.adb: Minor reformatting.
668 2011-08-05 Yannick Moy <moy@adacore.com>
670 * exp_ch7.adb (Establish_Transient_Scope): in formal verification mode,
671 if the node to wrap is a pragma check, this node and enclosed
672 expression are not expanded, so do not apply any transformations here.
673 * exp_prag.adb (Expand_Pragma_Check): document the need to avoid
674 introducing transient scopes.
676 2011-08-05 Jose Ruiz <ruiz@adacore.com>
678 * adaint.c (__gnat_set_writable, __gnat_set_readable,
679 __gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable,
680 __gnat_copy_attribs): On VxWorks 6.x and later, the required chmod
681 routine is available, so we use the default implementation of these
683 * s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is
684 support for copying attributes on VxWorks 6.
686 2011-08-05 Yannick Moy <moy@adacore.com>
688 * debug.adb: Remove use of -gnatd.D.
689 * gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode
690 * opt.ads: Simplify variables for ALFA mode, to keep one only
691 * restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode
694 2011-08-05 Vincent Celier <celier@adacore.com>
696 * prj-conf.adb (Do_Autoconf): Look also for --RTS in
697 Builder'Default_Switches.
699 2011-08-05 Vincent Celier <celier@adacore.com>
701 * makeusg.adb: Add lines for --create-map-file switches.
703 2011-08-05 Ed Schonberg <schonberg@adacore.com>
705 * freeze.adb (Freeze_Entity): For a subprogram, if a type in the
706 profile is incomplete and the full view is available, replace it with
708 * sem_ch6.adb (Possible_Freeze): if a type in the profile is
709 incomplete, freezing the subprogram is delayed until the full view is
711 * sem_type.adb (Disambiguate): an ambiguity between a user-defined
712 fixed-point multiplication operator and the predefined operator is
713 resolved in favor of the user-defined one.
715 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
717 * init.c [__alpha__ && __osf__] (__gnat_error_handler): Use
720 2011-08-04 Ed Schonberg <schonberg@adacore.com>
722 * sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine
723 whether a type lacks user-defined Read or Write operations, or has a
724 component that lacks them.
725 * sem_attr.adb (Check_Stream_Attribute): if restriction
726 No_Default_Stream_Attributes is active, verify that all subcomponent
727 types of the target have user-defined stream operations, and report
729 * exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation.
730 * exp_strm.adb: Build_Elementary_Input_Call,
731 Build_Elementary_Write_Call): remove checks for restriction
732 No_Default_Stream_Attributes, now checked in semantics.
734 2011-08-04 Vincent Celier <celier@adacore.com>
736 * prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS
737 switches on the command line, look for all valid --RTS switches in the
738 Builder switches and for each language use the first runtime name found
740 (Get_Or_Create_Configuration_File): Warn if --RTS is specified on the
741 command line and there is no auto-configuration.
742 (Runtime_Name_Set_For): New function.
744 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
746 * exp_ch7.adb (Build_Object_Declarations): Do not generate the
747 elaborate initialization expression for variable Abort when processing
748 a package body or a declaration.
749 (Create_Finalizer): Propagate the package context when creating the
750 exception-related variables.
751 * exp_ch7.ads (Build_Object_Declarations): New formal parameter
752 For_Package along with usage comment.
754 2011-08-04 Arnaud Charlet <charlet@adacore.com>
756 * gcc-interface/Makefile.in: Clean up targets.
757 Enable new package for atomic counters and copy-on-write implementation
758 of unbounded strings on x86 platforms.
759 * gcc-interface/Make-lang.in: Update dependencies.
761 2011-08-04 Robert Dewar <dewar@adacore.com>
763 * exp_ch7.adb: Minor reformatting.
765 2011-08-04 Robert Dewar <dewar@adacore.com>
767 * exp_strm.adb: Minor reformatting.
769 2011-08-04 Vadim Godunko <godunko@adacore.com>
771 * s-atocou.adb: Replace by dummy version and use on targets where atomic
772 operations are not supported.
773 * s-atocou-builtin.adb: Renamed from s-atocou.adb.
774 * s-atocou-x86.adb: New file.
775 * Makefile.rtl: Add s-atocou.o file
777 2011-08-04 Arnaud Charlet <charlet@adacore.com>
779 * make.adb (Compile): Move setting of CodePeer_Mode to ...
780 (Compilation_Phase): ... here.
781 (Scan_Make_Arg): Now bind and link by default in CodePeer mode.
783 2011-08-04 Thomas Quinot <quinot@adacore.com>
785 * Make-generated.in: Fix minor typo in comment.
787 2011-08-04 Thomas Quinot <quinot@adacore.com>
789 * gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve
792 2011-08-04 Robert Dewar <dewar@adacore.com>
794 * a-coinho.adb: Minor reformatting.
796 2011-08-04 Robert Dewar <dewar@adacore.com>
798 * a-coinho.ads: Minor reformatting.
800 2011-08-04 Vadim Godunko <godunko@adacore.com>
802 * s-atocou.ads, s-atocou.adb: New files.
803 * a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads,
804 a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove
805 direct use of GCC's atomic builtins and replace them by use of new
806 atomic counter package.
808 2011-08-04 Ed Schonberg <schonberg@adacore.com>
810 * exp_strm.adb: better error message for No_Default_Stream_Attributes.
812 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
814 * a-tags.adb (Unregister_Tag): Replace the complex address arithmetic
815 with a call to Get_External_Tag.
816 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on
817 subprogram usage. Remove the guard against package declarations and
818 bodies since Build_Cleanup_Statements is no longer invoked in that
820 (Build_Components): Initialize Tagged_Type_Stmts when the context
821 contains at least one library-level tagged type.
822 (Build_Finalizer): New local variables Has_Tagged_Types and
823 Tagged_Type_Stmts along with associated comments on usage. Update the
824 logic to include tagged type processing.
825 (Create_Finalizer): Insert all library-level tagged type unregistration
826 code before the jump block circuitry.
827 (Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements.
828 (Expand_N_Package_Declaration): Remove the call to
829 Build_Cleanup_Statements.
830 (Process_Tagged_Type_Declaration): New routine. Generate a call to
831 unregister the external tag of a tagged type.
832 (Processing_Actions): Reimplemented to handle tagged types.
833 (Process_Declarations): Detect the declaration of a library-level
834 tagged type and carry out the appropriate actions.
835 (Unregister_Tagged_Types): Removed. The machinery has been directly
836 merged with Build_Finalizer.
838 2011-08-04 Robert Dewar <dewar@adacore.com>
840 * bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb,
841 gnatls.adb, exp_ch3.adb: Minor reformatting.
843 2011-08-04 Marc Sango <sango@adacore.com>
845 * sem_attr.adb (Analyze_Attribute): Replace the message
846 "invisible attribute of}" of the spark restriction violation in
847 attribute reference by the simple message "invisible attribute of type".
848 Indeed, the node value Error_Msg_Node_1 used is in conflit with the
849 two insertion characters: '&' and '}'.
851 2011-08-04 Vadim Godunko <godunko@adacore.com>
853 * impunit.adb (Non_Imp_File_Names_12): Add "a-coinho".
854 * a-coinho.ads, a-coinho.adb: New file.
855 * Makefile.rtl: Add Ada.Containers.Indefinite_Holders.
857 2011-08-04 Nicolas Roche <roche@adacore.com>
859 * alfa_test.adb: Not all ali files are containing alfa information even
860 if compiled with -gnatd.F. So suppress warning about missing ALFA
863 2011-08-04 Yannick Moy <moy@adacore.com>
865 * lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for
867 * put_alfa.adb: Check that scope name is not empty.
869 2011-08-04 Ed Schonberg <schonberg@adacore.com>
871 * exp_ch3.adb (Stream_Operation_Ok): new predicate
872 Needs_Elementary_Stream_Operation, to determine whether user-defined
873 Read and Write attributes are available for the elementary components
874 of the given type. If only the predefined attributes are available,
875 then when restriction No_Default_Stream_Attributes is active the
876 predefined stream attributes for the composite type cannot be created.
878 2011-08-04 Robert Dewar <dewar@adacore.com>
880 * bindgen.adb: Fix obsolete comments and names from Ada/C days.
881 Put routines in alpha order
883 2011-08-04 Jose Ruiz <ruiz@adacore.com>
885 * gcc-interface/Makefile.in: Remove xenomai specific versions of system.
886 * gcc-interface/Make-lang.in: Update dependencies.
888 2011-08-04 Arnaud Charlet <charlet@adacore.com>
890 * gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada.
891 * gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls
894 2011-08-04 Robert Dewar <dewar@adacore.com>
896 * sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb,
897 lib-xref-alfa.adb: Minor reformatting.
899 2011-08-04 Marc Sango <sango@adacore.com>
901 * sem_ch12.adb (Analyze_Generic_Package_Declaration,
902 Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,
903 Analyze_Subprogram_Instantiation): Check absence of generic in SPARK
906 2011-08-04 Tristan Gingold <gingold@adacore.com>
908 * bindgen.adb (Gen_Adainit_C): Remove.
909 (Gen_Adafinal_C): Ditto.
910 (Gen_Elab_Externals_C): Ditto.
911 (Gen_Elab_Calls_C): Ditto.
912 (Gen_Elab_Order_C): Ditto.
913 (Gen_Elab_Defs_C): Ditto.
914 (Gen_Finalize_Library_C): Ditto.
915 (Gen_Finalize_Library_Defs_C): Ditto.
917 (Gen_Output_File_C): Ditto.
918 (Gen_Restrictions_C): Ditto.
919 (Gen_Versions_C): Ditto.
920 (Write_Info_Ada_C): Ditto.
921 (Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C
922 (Gen_Output_File): Do not force Ada_Bind_File anymore.
923 Always call Gen_Output_File_Ada.
924 * gnatlink.adb (Begin_Info): Now a constant.
926 (Ada_Bind_File): Remove
927 (Process_Args): Do not handle -A/-C. Remove not Ada_Bind_File cases.
928 * switch-b.adb (Scan_Binder_Switches): Do not handle -C.
929 * gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases.
930 * opt.ads (Ada_Bind_File): Remove.
932 2011-08-04 Thomas Quinot <quinot@adacore.com>
934 * projects.texi: Document target-specific directory in default project
937 2011-08-04 Thomas Quinot <quinot@adacore.com>
939 * gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project
942 2011-08-04 Yannick Moy <moy@adacore.com>
944 * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
945 opt.ads, lib-xref.ads: Code clean up.
947 2011-08-04 Yannick Moy <moy@adacore.com>
949 * gnat_rm.texi: Update description of Test_Case
950 * gnat_ugn.texi: Typo.
952 2011-08-04 Ed Falis <falis@adacore.com>
954 * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.
956 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
958 * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
959 it is of type Root_Controlled. This action eliminates fields Prev and
960 Next from type equality.
962 2011-08-04 Yannick Moy <moy@adacore.com>
964 * lib-xref-alfa.adb: Correct typo.
966 2011-08-04 Matthew Heaney <heaney@adacore.com>
968 * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
971 2011-08-04 Yannick Moy <moy@adacore.com>
973 * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure
974 (Analyze_Pragma): allow static string expression for name of Test_Case,
975 instead of simply string literals.
976 * sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string
979 2011-08-04 Vincent Celier <celier@adacore.com>
981 * makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical
982 case suffixes to find truncated main sources.
984 2011-08-04 Tristan Gingold <gingold@adacore.com>
986 * impunit.adb (Non_Imp_File_Names_95): Add g-tastus.
987 s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put.
988 (Compute_Current_Task): Ditto.
990 2011-08-04 Tristan Gingold <gingold@adacore.com>
992 * gnat_ugn.texi: Mention GNAT.Task_Stack_Usage.
994 2011-08-04 Yannick Moy <moy@adacore.com>
996 * lib-xref-alfa.adb (Is_Global_Constant): new function that detects
997 library-level constant.
998 (Add_ALFA_Xrefs): ignore global constants in ALFA xref.
999 * sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal
1000 used as selector of parameter association, in ALFA mode.
1002 2011-08-04 Robert Dewar <dewar@adacore.com>
1004 * exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb,
1005 s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor
1008 2011-08-04 Arnaud Charlet <charlet@adacore.com>
1010 * make.adb (Linking_Phase): Set source search path before calling
1011 gnatlink in CodePeer mode.
1013 2011-08-04 Javier Miranda <miranda@adacore.com>
1015 * exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration):
1016 Remove code which takes care of building TSDs.
1017 * rtsfind.ads (RE_Check_Interface_Conversion): New entity.
1018 * exp_ch4.adb (Apply_Accessibility_Check): Add support for generating
1019 the accessibility check in VM targets.
1020 * exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads
1021 (Building_Static_DT): Now returns false for VM targets.
1022 (Build_VM_TSDs): Removed.
1023 (Expand_Interface_Conversion): Generate missing runtime check for
1024 conversions to interface types whose target type is unknown at compile
1026 (Make_VM_TSD): Add missing code to disable the generation of calls to
1027 Check_TSD if the tagged type is not defined at library level, or not
1028 has a representation clause specifying its external tag, or -gnatdQ is
1030 * exp_disp.ads (Build_VM_TSDs): Removed.
1031 (Make_VM_TSDs): Spec relocated from exp_disp.adb
1032 * sem_disp.adb (Check_Dispatching_Operation): No code required to
1033 register primitives in the dispatch tables in VM targets.
1034 * exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of
1035 initialization of class-wide interface objects in VM targets.
1036 (Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead
1039 2011-08-04 Jerome Lambourg <lambourg@adacore.com>
1041 * gnatlink.adb (Gnatlink): Correct missleading error message displayed
1042 when dotnet-ld cannot be found.
1044 2011-08-04 Arnaud Charlet <charlet@adacore.com>
1046 * bindgen.adb: Simplify significantly generation of binder body file in
1048 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure
1049 when compiling binder generated file in CodePeer mode (xxx'Elab_Spec
1052 2011-08-04 Yannick Moy <moy@adacore.com>
1054 * sem_prag.adb, sem.ads: Code cleanup.
1056 2011-08-04 Tristan Gingold <gingold@adacore.com>
1058 * s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part.
1059 * s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate
1060 results if possible.
1061 * s-stusta.adb (Print): Adjust after changes in s-stausa.
1062 * gnat_ugn.texi: Update dynamic stack usage section.
1064 2011-08-04 Steve Baird <baird@adacore.com>
1066 * bindgen.adb (Gen_CodePeer_Wrapper): new procedure.
1067 Generate (if CodePeer_Mode is set) a "wrapper" subprogram which
1068 contains only a call to the user-defined main subprogram.
1069 (Gen_Main_Ada) - If CodePeer_Mode is set, then
1070 call the "wrapper" subprogram instead of directly
1071 calling the user-defined main subprogram.
1073 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1075 * exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all
1076 alternatives of a case statement for controlled objects. Rename local
1077 variable A to Dead_Alt.
1078 (Expand_N_If_Statement): Check the then and else statements of an if
1079 statement for controlled objects. Check the then statements of all
1080 elsif parts of an if statement for controlled objects.
1081 (Expand_N_Loop_Statement): Check the statements of a loop for controlled
1083 * exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which
1084 detects a loop associated with the expansion of an array object.
1085 Augment the processing of the loop statements to account for a possible
1086 wrap done by Process_Statements_For_Controlled_Objects.
1087 * exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering
1088 statements and abortable part of an asynchronous select for controlled
1090 (Expand_N_Conditional_Entry_Call): Check the else statements of a
1091 conditional entry call for controlled objects.
1092 (Expand_N_Selective_Accept): Check the alternatives of a selective
1093 accept for controlled objects.
1094 (Expand_N_Timed_Entry_Call): Check the entry call and delay
1095 alternatives of a timed entry call for controlled objects.
1096 * exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an
1097 exception handler for controlled objects.
1098 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
1099 Add formal parameter Nested_Constructs along with its associated
1101 (Requires_Cleanup_Actions (Node_Id)): Update all calls to
1102 Requires_Cleanup_Actions.
1103 (Process_Statements_For_Controlled_Objects): New routine.
1104 * exp_util.ads (Process_Statements_For_Controlled_Objects): New
1105 routine. Inspect a node which contains a non-handled sequence of
1106 statements for controlled objects. If such an object is found, the
1107 statements are wrapped in a block.
1109 2011-08-04 Bob Duff <duff@adacore.com>
1111 * sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we
1112 need to compare with Class_Wide_Type (T2), in order to get at the
1113 original class-wide type node.
1114 * sem_type.ads (Covers): Improve the comment.
1115 * einfo.ads (Class_Wide_Type): Improve the comment.
1116 * exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of
1117 the type of the Deref.
1119 2011-08-04 Yannick Moy <moy@adacore.com>
1121 * gnat_rm.texi: Document that Test_Case pragma can only appear on
1122 separate declarations.
1123 * sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to
1124 check identifier of pragma argument.
1125 (Chain_TC): check that no other test case associated to the same entity
1126 share the same name.
1127 (Check_Test_Case): disallow test case inside subprogram body
1128 (Analyze_Pragma): correct call to check identifier and not argument
1129 * sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new
1130 function gets name from test case pragma.
1132 2011-08-04 Yannick Moy <moy@adacore.com>
1134 * gnat_rm.texi: Document new pragma and aspect.
1135 * aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case
1136 (No_Duplicates_Allowed): new constant array defining whether duplicates
1137 aspects of each kind can appear on the same declaration.
1138 * einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract
1139 field, which points to a node holding the previous Spec_PPC_List.
1140 * exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List
1141 through the indirection with Contract.
1142 * exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node
1143 * par-prag.adb (Prag): do nothing on Test_Case pragma
1144 * sem.adb (Analyze): abort on N_Contract, on which Analyze should not
1146 * sem_attr.adb (Analyze_Attribute): allow attribute 'Result in
1147 component Ensures of Test_Case.
1148 * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb
1149 (Analyze_Generic_Subprogram_Declaration,
1150 Analyze_Subprogram_Instantiation,
1151 Analyze_Abstract_Subprogram_Declaration,
1152 Analyze_Subprogram_Body_Helper,
1153 Analyze_Subprogram_Specification, Analyze_Entry_Declaration):
1154 insert contract in subprogram node at point of definition
1156 (Aspect_Loop): do not raise error on duplicate Test_Case aspect
1157 (Analyze_Aspect_Specifications): analyze Test_Case aspect and create
1158 corresponding pragma
1159 (Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect
1160 * sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases,
1161 similar to the analysis of pre/post
1162 (Derive_Subprogram): insert contract in subprogram node at point of
1164 * sem_prag.adb, sem_prag.ads
1165 (Check_Arg_Is_String_Literal, Check_Identifier):
1166 new checking procedures to be called in treatment of pragmas
1167 (Check_Test_Case): new procedure to check that a Test_Case aspect or
1168 pragma is well-formed. This does not check currently that 'Result is
1169 used only in the Ensures component of a Test_Case.
1170 (Analyze_Pragma): add case for Test_Case
1171 (Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures
1172 components of a Test_Case.
1173 (Preanalyze_TC_Args): new procedure to preanalyze the boolean
1174 expressions in the 3rd (and 4th if present) arguments of a Test_Case
1175 pragma, treated as spec expressions.
1176 (Sig_Flags): add value -1 for Test_Case.
1177 * sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma,
1178 Get_Requires_From_Test_Case_Pragma): getters for both expression
1179 components of a Test_Case.
1180 * sinfo.adb, sinfo.ads (N_Contract): new kind of node used as
1181 indirection between an entry or [generic] subprogram entity and its
1182 pre/post + test-cases.
1183 (Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List):
1184 get/set for fields of an N_Contract node.
1185 * snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode,
1186 Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new
1187 names and pragma for Test_Case.
1188 * sprint.adb (Sprint_Node): raise Program_Error on N_Contract node
1190 2011-08-04 Vincent Celier <celier@adacore.com>
1192 * gnat_ugn.texi: Improve documentation of gnatmake switch
1193 --source-info-file=.
1195 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1197 * exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion
1198 type). Initialize Atyp to the appropriate type which is later checked
1199 for completion. Rewrite the assertion associated with private type
1202 2011-08-04 Ed Falis <falis@adacore.com>
1204 * adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to
1205 initialize the number of CPUs.
1207 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1209 * sem_type.adb (Disambiguate): New subsidiary routine
1210 In_Same_Declaration_List, to implement AI05-0020: a user-defined
1211 equality on an anonymous access type whose designated type is private
1212 does not lead to an ambiguity with the universal access equality
1213 operator in the body or child units of the defining package. The same
1214 is true for a multiplication operator on a private type completed with
1217 2011-08-04 Javier Miranda <miranda@adacore.com>
1219 * opt.ads (Init_Or_Norm_Scalars_Config): Removed.
1220 (Normalize_Scalars_Config): Removed.
1222 (Register_Opt_Config_Switches): Remove registering config values of
1223 Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config.
1224 (Restore_Opt_Config_Switches): Remove code which restores the values of
1225 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
1226 Init_Or_Norm_Scalars.
1227 (Save_Opt_Config_Switches): Remove code which saves values of
1228 Init_Or_Norm_Scalars and Normalize_Scalars.
1229 (Set_Opt_Config_Switches): Remove code which restores config values of
1230 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
1231 Init_Or_Norm_Scalars.
1233 2011-08-04 Yannick Moy <moy@adacore.com>
1235 * frontend.adb (Frontend): remove previous patch to avoid full
1236 qualification in ALFA mode.
1237 * lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables.
1238 * sem_util.adb, sem_util.ads (Unique_Name): new function to define a
1239 unique name for an entity, which could be used to identify the entity
1240 across compilation units.
1242 2011-08-04 Thomas Quinot <quinot@adacore.com>
1245 (Initialize_Default_Project_Path): Add target specific directory
1246 ($prefix/$target/lib/gnat) in front of project path in all cases
1247 (making gnatmake's behaviour consistent with gprbuild).
1248 * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb:
1249 Pass target name from Sdefault to project subsystem.
1250 * gnatls.adb: Show new target specific default project directory.
1252 2011-08-04 Johannes Kanig <kanig@adacore.com>
1254 * cstand.adb: Add Information to Identifier in Standard
1255 (Identifer_For): Set Entity to the corresponding entity
1257 2011-08-04 Sergey Rybin <rybin@adacore.com>
1259 * gnat_ugn.texi: Update doc on gnatcheck.
1261 2011-08-04 Yannick Moy <moy@adacore.com>
1263 * lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of
1266 2011-08-04 Yannick Moy <moy@adacore.com>
1268 * exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without
1269 performing expansion.
1270 * sem_ch6.adb (Analyze_Subprogram_Body_Helper,
1271 Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that
1272 it is not called in ALFA mode.
1274 2011-08-04 Emmanuel Briot <briot@adacore.com>
1276 * make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used
1277 after all, so removed.
1279 2011-08-04 Sergey Rybin <rybin@adacore.com>
1281 * vms_data.ads: Add missing VMS qualifiers.
1283 2011-08-04 Emmanuel Briot <briot@adacore.com>
1285 * make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild
1286 the list of files on the command line after processing it through
1289 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1291 * exp_ch7.adb (Build_Raise_Statement): Remove the specialized
1292 processing for .NET/JVM. These targets can now benefit from
1293 Raise_From_Controlled_Operation and they share the same processing with
1295 (Establish_Transient_Scope): Remove the restriction for .NET/JVM.
1296 These targets need transient scopes in order to properly finalize short
1297 lived controlled objects.
1298 (Make_Handler_For_Ctrl_Operation): Remove the specialized processing for
1299 NET/JVM. These targets can now benefit from
1300 Raise_From_Controlled_Operation and they share the same processing with
1303 2011-08-04 Geert Bosch <bosch@adacore.com>
1305 * tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack
1307 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1309 * exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to
1310 Expand_Record_Aggregate, to determine whether aggregate must be
1311 expanded into assignments. This is the case if the ancestor part is
1312 private, regarless of the setting of the flag Has_Private_Ancestor.
1314 2011-08-04 Ed Falis <falis@adacore.com>
1316 * vxaddr2line.adb: Add support for e500v2 and for Linux hosts
1318 2011-08-04 Bob Duff <duff@adacore.com>
1320 * sinfo.ads: Fix comment.
1322 2011-08-04 Steve Baird <baird@adacore.com>
1324 * bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then
1325 choose a package name in much the same way as is
1326 done for JGNAT when VM_Target /= No_VM, except that
1327 a slightly more distinctive prefix string is used.
1329 2011-08-04 Emmanuel Briot <briot@adacore.com>
1331 * makeutl.adb (Complete_Mains): no longer accept unit names on the
1332 gnatmake command line.
1333 This behavior was never documented (and was supported only because of
1334 an early bug in the code). This case might lead to ambiguous cases
1335 (between unit names and truncated base names without suffixes).
1337 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1339 * a-tags.ads, a-tags.adb (Unregister_Tag): New routine.
1340 Remove the external tag of a tagged type from the internal hash table.
1341 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the
1342 expanded usage of the routine. Strenghten the check for Is_Master. Add
1343 processing for tagged types.
1344 (Build_Finalizer): Create all the necessary lists used in finalizer
1345 creation when the processed context is a package that may contain
1347 (Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to
1348 Requires_Cleanup_Actions.
1349 (Expand_N_Package_Body): Package bodies may need clean up code
1350 depending on whether they contain tagged types.
1351 (Expand_N_Package_Declaration): Package declarations may need clean up
1352 code depending on whether they contain tagged types.
1353 (Unregister_Tagged_Types): New routine. Search through a list of
1354 declarations or statements, looking for non-abstract Ada tagged types.
1355 For each such type, generate code to unregister the external tag.
1356 * exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to
1357 Requires_Cleanup_Actions.
1358 (Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search
1359 through a list of declarations or statements looking for non-abstract
1360 Ada tagged types or controlled objects.
1361 * exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to
1362 Requires_Cleanup_Actions.
1363 (Has_Controlled_Objects (List_Id, Boolean)): Removed.
1364 * rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and
1367 2011-08-04 Vincent Celier <celier@adacore.com>
1369 * prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj
1370 has Ada sources, not project Project, because if the root project
1371 Project has no sources of its own, all projects will be deemed without
1374 2011-08-04 Gary Dismukes <dismukes@adacore.com>
1376 * bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration
1377 of the No_Param_Proc acc-to-subp type used for initialization of
1378 __gnat_finalize_library_objects so that it's declared at library level
1379 rather than nested inside of the adainit routine.
1381 2011-08-04 Javier Miranda <miranda@adacore.com>
1383 * exp_disp.adb (Make_DT): Generate code to check the external tag ONLY
1384 if the tagged type has a representation clause which specifies its
1387 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1389 * einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types.
1390 Remove previous procedure with that name.
1391 * sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor
1393 * sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a
1394 subtype mark, the ancestor cannot have unknown discriminants.
1395 (Resolve_Record_Aggregate): if the type has invisible components
1396 because of a private ancestor, the aggregate is illegal.
1398 2011-08-04 Vincent Celier <celier@adacore.com>
1400 * switch-m.adb (Normalize_Compiler_Switches): Recognize and take into
1401 account switches -gnat2005, -gnat12 and -gnat2012.
1403 2011-08-04 Bob Duff <duff@adacore.com>
1405 * s-tasdeb.ads: Minor comment fix.
1407 2011-08-04 Arnaud Charlet <charlet@adacore.com>
1409 * gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in
1411 * switch.ads, switch.adb (Is_Language_Switch): New function.
1413 2011-08-04 Vincent Celier <celier@adacore.com>
1415 * switch-c.adb: Minor comment addition.
1417 2011-08-04 Vincent Celier <celier@adacore.com>
1419 * vms_conv.adb (Process_Argument): Fail graciously when qualifier
1420 ending with '=' is followed by a space (missing file name).
1422 2011-08-04 Pascal Obry <obry@adacore.com>
1424 * g-regist.ads: Fix size of HKEY on x86_64-windows.
1426 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1428 * sem_ch12.adb (Analyze_Associations): New routine
1429 Check_Overloaded_Formal_Subprogram to reject a formal package when
1430 there is a named association or a box initialisation for an overloaded
1431 formal subprogram of the corresponding generic.
1433 2011-08-04 Yannick Moy <moy@adacore.com>
1435 * alfa.ads (ALFA_Xref_Record): add component for type of entity
1436 * get_alfa.adb, put_alfa.adb: Read and write new component of
1438 * lib-xref-alfa.adb (Collect_ALFA): generate new component.
1440 2011-08-04 Pascal Obry <obry@adacore.com>
1442 * urealp.adb: Minor reformatting.
1444 2011-08-04 Tristan Gingold <gingold@adacore.com>
1446 * exp_ch7.adb (build_finalizer.process_declarations.processing_actions):
1447 Handle the case when Cleanup_Protected_Object returns Empty.
1449 2011-08-04 Yannick Moy <moy@adacore.com>
1451 * frontend.adb (Frontend): only qualify names in non-ALFA mode
1453 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1455 * sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure
1456 call, ignore functions.
1458 2011-08-04 Geert Bosch <bosch@adacore.com>
1460 * urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating
1463 2011-08-04 Emmanuel Briot <briot@adacore.com>
1465 * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name
1466 as an index for Builder'Switches. This conforms to the documentation.
1467 * make.adb (Insert_Project_Sources): avoid duplicate code
1469 2011-08-04 Emmanuel Briot <briot@adacore.com>
1471 * makeutl.adb (Complete_Mains): if the user has passed a relative file
1472 name on the command line (for instance "../dummy"), never assume it can
1475 2011-08-04 Tristan Gingold <gingold@adacore.com>
1477 * bindgen.adb: Remove code the reference or create the
1478 Break_Start/__gnat_break_start procedure.
1479 * s-stalib.adb (Break_Start): Removed.
1481 2011-08-04 Emmanuel Briot <briot@adacore.com>
1483 * make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now
1484 shared with gprbuild.
1486 2011-08-04 Yannick Moy <moy@adacore.com>
1488 * par-ch4.adb (P_Primary): preferentially issue an error message about
1489 a missing parenthesis arount a conditional or case expression in Ada
1490 2012 mode, if we detect that the alignment is not correct for a
1493 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1495 * exp_ch7.adb (Process_Declarations): Do not consider the result of a
1496 tag-to-class-wide conversion as needing finalization actions.
1497 * exp_util.adb (Has_Controlled_Objects): Do not consider the result of
1498 a tag-to-class-wide conversion as needing finalization actions.
1499 (Is_Finalizable_Transient): The result of a tag-to-class-wide
1500 conversion does not need finalization actions.
1501 (Is_Tag_To_CW_Conversion): New routine.
1502 * exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines
1503 whether an object is the result of a tag-to-class-wide conversion.
1505 2011-08-04 Yannick Moy <moy@adacore.com>
1507 * sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which
1508 the left-hand-side and right-hand-side of a conjunct are inserted when
1509 translating a pre- or postcondition
1510 * sem_ch6.adb: Correct typo in comment
1512 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1514 * gnat_rm.texi: Ravenscar does not prohibit dependence on
1515 Unchecked_Conversion and Unchecked_Deallocation.
1517 2011-08-04 Thomas Quinot <quinot@adacore.com>
1519 * make.adb: Minor reformatting.
1521 2011-08-04 Emmanuel Briot <briot@adacore.com>
1523 * prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the
1524 sources in the project and its imported projects, but not in the whole
1527 2011-08-04 Emmanuel Briot <briot@adacore.com>
1529 * make.adb: Remove debug trace.
1531 2011-08-04 Vincent Celier <celier@adacore.com>
1533 * makeutl.adb (Do_Complete): Get the absolute path name of a relative
1534 path in canonical form, to be able to compare path names on platforms
1535 such as Windows or Darwin.
1537 2011-08-04 Thomas Quinot <quinot@adacore.com>
1539 * par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry):
1540 For a pragma (statement with C1 = 'P'), record the sloc of the pragma.
1541 * scos.ads: Update documentation accordingly.
1542 * put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled
1545 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1547 * sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of
1548 attribute only if prefix type is scalar.
1550 2011-08-04 Emmanuel Briot <briot@adacore.com>
1552 * make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support
1553 in gnatmake for specifying mains on the command line that do not belong
1554 to the main project. These mains must currently all belong to the same
1556 (Ultimate_Extension_Of): removed, since duplicated
1557 Ultimate_Extending_Project.
1559 2011-08-04 Arnaud Charlet <charlet@adacore.com>
1561 * make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode
1563 (CodePeer_Mode_String): New.
1564 (Linking_Phase, Binding_Phase): Call gnatlink with -P switch in
1566 (Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode.
1567 * bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer
1568 mode, since no useful elaboration subprogram is needed by CodePeer.
1569 * gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode).
1570 In this mode, compile binder file with -gnatC and do stop after this
1573 2011-08-04 Vincent Celier <celier@adacore.com>
1575 * exp_ch7.adb: Minor comment fix.
1577 2011-08-04 Robert Dewar <dewar@adacore.com>
1579 * exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb,
1580 exp_ch4.adb, makeutl.adb: Minor reformatting.
1582 2011-08-04 Emmanuel Briot <briot@adacore.com>
1584 * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.
1585 Create several new subprograms to move code out of Make. This makes the
1586 code more readable, removes code duplication, and is a preparation work
1587 for adding support for aggregate projects.
1589 2011-08-04 Tristan Gingold <gingold@adacore.com>
1591 * s-po32gl.ads, s-po32gl.adb: New files.
1592 * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.
1593 * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.
1594 (Build_Finalization_Collection): Use it.
1595 * exp_ch4.adb (Complete_Controlled_Allocation): Ditto.
1596 * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New
1598 * gcc-interface/Makefile.in: Use s-po32gl.o on VMS.
1599 * gcc-interface/Make-lang.in: Update dependencies.
1601 2011-08-04 Emmanuel Briot <briot@adacore.com>
1603 * makeutl.adb (Complete_Mains): add support for specs with no suffix on
1606 2011-08-04 Emmanuel Briot <briot@adacore.com>
1608 * make.adb, makeutl.adb (Complete_Mains): if a main specified on the
1609 command line is not a file name, also check whether it could be a unit
1612 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
1614 * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate
1615 the header of the finalization routine.
1616 If the unit has no finalizer but is a body whose spec has one, then
1617 generate the decrement of the elaboration entity only.
1618 If the unit has a finalizer and is a spec, then do not generate the
1619 decrement of the elaboration entity.
1620 (Gen_Finalize_Library_C): Likewise.
1622 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1624 * exp_ch7.adb (Alignment_Of): New subsidiary routine.
1625 (Bounds_Size_Expression): Removed.
1626 (Double_Alignment_Of): New subsidiary routine.
1627 (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account
1628 for a hole in the dope vector of unconstrained arrays due to different
1629 index and element alignments.
1631 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1633 * sem_res.adb (Resolve_Allocator): diagnose task allocator that will
1634 raise program_error because body has not been seen yet.
1636 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1638 * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with
1641 2011-08-04 Vincent Celier <celier@adacore.com>
1643 * makeutl.adb (Do_Complete): Check absolute paths in canonical forms
1645 2011-08-04 Yannick Moy <moy@adacore.com>
1647 * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here
1648 * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here
1650 2011-08-04 Thomas Quinot <quinot@adacore.com>
1652 * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for
1653 instantiation in RCI.
1655 2011-08-04 Emmanuel Briot <briot@adacore.com>
1657 * make.adb: Share more code with gprbuild
1659 2011-08-04 Emmanuel Briot <briot@adacore.com>
1661 * projects.texi: Added documentation for the IDE'Gnat project file
1664 2011-08-04 Nicolas Roche <roche@adacore.com>
1666 * gnat_rm.texi: Minor editing.
1668 2011-08-04 Javier Miranda <miranda@adacore.com>
1670 * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case
1671 and the library case for VM targets.
1672 (Gen_Adainit_Ada): Likewise.
1674 2011-08-04 Robert Dewar <dewar@adacore.com>
1676 * g-altive.ads: Minor comment updates.
1677 * prj-nmsc.adb: Minor reformatting.
1679 2011-08-04 Javier Miranda <miranda@adacore.com>
1682 (Normalize_Scalars_Config): Value of the configuration switch set by
1683 pragma Normalize_Scalars when it appears in the gnat.adc file.
1684 (Normalize_Scalars): New field for record Config_Switches_Type. Used
1685 to save and restore settings of this pragma.
1687 (Register_Opt_Config_Switches, Save_Opt_Config_Switches,
1688 Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.
1690 2011-08-04 Vincent Celier <celier@adacore.com>
1692 * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile
1694 2011-08-04 Arnaud Charlet <charlet@adacore.com>
1696 * makeutl.adb: Minor reformatting.
1698 2011-08-04 Olivier Hainque <hainque@adacore.com>
1700 * g-altive.ads: Update comments to reflect that only the soft
1701 binding is available today.
1703 2011-08-04 Robert Dewar <dewar@adacore.com>
1705 * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,
1706 makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting
1707 * gcc-interface/Make-lang.in: Update dependencies.
1709 2011-08-04 Arnaud Charlet <charlet@adacore.com>
1711 * prj-env.adb: Remove local debug traces.
1713 2011-08-04 Yannick Moy <moy@adacore.com>
1715 * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK
1716 was used instead of Hi_OK, which could cause a read of an uninitialized
1717 value later on. Detected while working on the new warning.
1718 * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment
1720 * sem_ch5.adb (Analyze_Assignment): set the last assignment component
1721 in more cases, in order to detect more unreferenced values.
1722 * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing
1723 object for expression, if any.
1725 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
1727 * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of
1728 the operand types instead of the Esize.
1730 2011-08-04 Steve Baird <baird@adacore.com>
1732 * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to
1733 enable CodePeer_Mode.
1734 * bindusg.adb (Display): Add help message describing -P binder switch.
1735 * gnat_ugn.texi: Document -P binder switch.
1736 * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the
1737 user-defined main program directly.
1738 (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the
1739 user-defined main program in the context clause of the package body.
1741 2011-08-04 Yannick Moy <moy@adacore.com>
1743 * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial
1744 duplicate of Defining_Entity
1745 (Get_Unique_Entity_For_Decl): rename function into
1746 Unique_Defining_Entity
1747 * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags
1748 (Formal_Proof_On): remove synthesized flag
1749 * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
1750 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,
1751 sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA
1752 * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma
1753 Annotate (Formal_Proof)
1755 2011-08-04 Emmanuel Briot <briot@adacore.com>
1757 * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit
1758 source files with non-standard naming schemes, in imported projects
1760 2011-08-04 Emmanuel Briot <briot@adacore.com>
1762 * makeutl.adb (Complete_Mains): when a multi-unit source file is
1763 specified on the gprbuild command line, we need to compile all units
1764 within that file, not just the first one we find
1765 Fix error message for mains that are not found.
1767 2011-08-04 Thomas Quinot <quinot@adacore.com>
1769 * sem_ch6.adb: Update comment.
1770 * sem_ch12.adb: Minor reformatting.
1772 2011-08-04 Bob Duff <duff@adacore.com>
1774 * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading
1775 Acceptor.Terminate_Alternative without locking Acceptor, which causes a
1776 race condition whose symptom is to fail to lock Parent. That, in turn,
1777 causes Parent.Awake_Count to be accessed without locking Parent, which
1778 causes another race condition whose symptom is that Parent.Awake_Count
1779 can be off by 1 (either too high or too low). The solution is to lock
1780 Parent unconditionally, and then lock Acceptor, before reading
1781 Acceptor.Terminate_Alternative.
1783 2011-08-04 Arnaud Charlet <charlet@adacore.com>
1785 * debug.adb: Update comment.
1787 2011-08-04 Robert Dewar <dewar@adacore.com>
1789 * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,
1790 sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,
1791 exp_ch6.adb: Minor reformatting.
1793 2011-08-04 Gary Dismukes <dismukes@adacore.com>
1795 * gnat_ugn.texi: Add sentence about the case of compile-time-detected
1798 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1800 * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.
1802 2011-08-04 Thomas Quinot <quinot@adacore.com>
1804 * sinfo.ads: Minor reformatting.
1806 2011-08-04 Emmanuel Briot <briot@adacore.com>
1808 * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error
1809 even if there is no location.
1811 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1813 * sem_res.adb, sem_ch4.adb: move check for restriction
1814 No_Task_Hierarchy to resolve_allocator.
1816 2011-08-04 Thomas Quinot <quinot@adacore.com>
1818 * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):
1819 This flag of N_Pragma nodes is not used, remove it as well as all of
1820 the associated circuitry.
1822 2011-08-04 Javier Miranda <miranda@adacore.com>
1824 * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the
1825 runtime check on duplicated externa tags
1826 * debug.adb Document switch -gnatdQ.
1828 2011-08-04 Gary Dismukes <dismukes@adacore.com>
1830 * a-fihema.ads: Minor typo fix.
1832 2011-08-04 Yannick Moy <moy@adacore.com>
1834 * sem_ch10.adb: Minor comment update.
1836 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1838 * einfo.adb: Update the node field usage to reflect the renaming of
1839 Return_Flag to Return_ Flag_Or_Transient_Decl.
1840 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.
1841 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.
1842 (Write_Field15_Name): Change Return_Flag to
1843 Return_Flag_Or_Transient_Decl.
1844 * einfo.ads: Rename node field Return_Flag to
1845 Return_Flag_Or_Transient_Decl. Update the associated comment and all
1846 occurrences in entities.
1847 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update
1848 associated Inline pragma.
1849 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update
1850 associated Inline pragma.
1851 * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New
1853 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to
1854 Return_Flag and Set_Return_Flag.
1855 * exp_ch7.adb (Process_Declarations): Add code to recognize hook
1856 objects generated for controlled transients declared inside an
1857 Exception_With_Actions. Update the calls to Return_Flag.
1858 (Process_Object_Declaration): Add code to add a null guard for hook
1859 objects generated for controlled transients declared inside an
1860 Exception_With_Actions. Update related comment.
1861 * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook
1862 objects generated for controlled transients declared inside an
1863 Exception_With_Actions. Update the calls to Return_Flag.
1864 * expander.adb (Expand): Add new case for N_Expression_With_Actions.
1866 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1868 * sem_util.adb:(Wrong_Type): Improve error message on a one-element
1869 positional aggregate.
1871 2011-08-04 Vincent Celier <celier@adacore.com>
1873 * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma
1874 SLOC only for pragmas.
1876 2011-08-04 Emmanuel Briot <briot@adacore.com>
1878 * projects.texi: Minor typo fix.
1880 2011-08-04 Emmanuel Briot <briot@adacore.com>
1882 * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging
1883 on case-sensitive file systems.
1885 2011-08-04 Thomas Quinot <quinot@adacore.com>
1887 * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision
1888 nested in a disabled pragma.
1889 * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of
1890 enclosing pragma, if any, for X decisions.
1892 2011-08-04 Thomas Quinot <quinot@adacore.com>
1894 * sem_prag.adb: Minor reformatting.
1896 2011-08-04 Vincent Celier <celier@adacore.com>
1898 * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not
1899 allowed in no run time mode.
1901 2011-08-04 Vincent Celier <celier@adacore.com>
1903 * make.adb (Check): When -gnatc is used, check for the source file
1904 inside the ALI file with a canonical case file name.
1906 2011-08-04 Emmanuel Briot <briot@adacore.com>
1908 * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for
1909 overriding the separator.
1911 2011-08-04 Robert Dewar <dewar@adacore.com>
1913 * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,
1914 prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.
1916 2011-08-04 Robert Dewar <dewar@adacore.com>
1918 * gnat_rm.texi: Minor documentation fix for pragma Annotate.
1920 2011-08-04 Yannick Moy <moy@adacore.com>
1922 * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that
1923 'Result only appears in postcondition of function.
1925 2011-08-04 Thomas Quinot <quinot@adacore.com>
1927 * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated
1928 external tag, include the value of the external tag in the exception
1931 2011-08-04 Yannick Moy <moy@adacore.com>
1933 * sem_attr.adb (Result): modify error message for misplaced 'Result
1935 2011-08-04 Sergey Rybin <rybin@adacore.com>
1937 * gnat_rm.texi (pragma Annotate): Fix syntax description to make it
1938 clear that the second argument must be an identifier.
1940 2011-08-04 Thomas Quinot <quinot@adacore.com>
1942 * exp_ch9.adb (Build_Barrier_Function): When compiling with
1943 -fpreserve-control-flow, insert an IF statement on the barrier
1944 condition to ensure that a conditional branch instruction is generated.
1946 2011-08-04 Emmanuel Briot <briot@adacore.com>
1948 * prj-part.adb, prj.adb, prj.ads, prj-tree.ads
1949 (Processing_Flags.Ignore_Missing_With): new flag.
1951 2011-08-04 Emmanuel Briot <briot@adacore.com>
1953 * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of
1954 Source_List_File on case-insensitive systems where the file is actually
1955 on a case-sensitive file system (NFS,...).
1957 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1959 * sem_ch6.adb (Analyze_Function_Return): In a rare case where a
1960 function return contains a controlled [extension] aggregate and the
1961 return statement is not part of a handled sequence of statements, wrap
1962 the return in a block. This ensures that all controlled temporaries
1963 generated during aggregate resolution will be picked up by the
1964 finalization machinery.
1966 2011-08-04 Ed Schonberg <schonberg@adacore.com>
1968 * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized
1969 components, freeze type before resolution, to ensure that default
1970 initializations are present for all components.
1971 * sem_res.adb (Resolve_Actuals): the designated object of an
1972 accces-to-constant type is a legal actual in a call to an
1973 initialization procedure.
1975 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
1977 * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and
1978 N_Unchecked_Type_Conversion to the possible containers of a renamed
1981 2011-08-04 Yannick Moy <moy@adacore.com>
1983 * par-ch13.adb (Aspect_Specifications_Present): recognize
1984 "with Identifier'Class =>" as an aspect, so that a meaningful warning
1985 is issued in Strict mode.
1986 * par.adb: Fix typos in comments.
1988 2011-08-04 Yannick Moy <moy@adacore.com>
1990 * sem_attr.adb (Result): modify error message to take into account Post
1991 aspect when compiling Ada 2012 (or newer) code.
1993 2011-08-04 Nicolas Roche <roche@adacore.com>
1995 * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to
1996 remove need for GCC exceptions.
1998 2011-08-04 Vincent Celier <celier@adacore.com>
2000 * makeutl.adb (Do_Complete): Call Debug_Output with the name of the
2001 project, not the source file name.
2002 * prj.adb (Find_Sources.Look_For_Sources): If the source has been
2003 excluded, continue looking. This excluded source will only be returned
2004 if there is no other source with the same base name that is not locally
2007 2011-08-04 Ed Schonberg <schonberg@adacore.com>
2009 * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is
2010 private and one of the operands is a real literal, use a qualified
2011 expression rather than a conversion which is not meaningful to the
2014 2011-08-04 Yannick Moy <moy@adacore.com>
2016 * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise
2017 corresponding aspect X'Class are allowed, proceed with analysis of the
2018 aspect instead of skipping it.
2020 2011-08-04 Tristan Gingold <gingold@adacore.com>
2022 * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads
2023 This will allow to have an Ada implementation for the subprogram.
2025 2011-08-04 Ed Schonberg <schonberg@adacore.com>
2027 * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a
2028 completion and aspects are present, apply them to the entity for the
2029 type which is currently the partial view, but which is the one that
2031 * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate
2032 applies to a partial view, indicate that the full view has predicates
2033 and delayed aspects.
2034 (Replace_Type_Reference): Handle properly predicates that apply to the
2035 full view of a private completion.
2037 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
2039 * layout.adb (Layout_Type): For composite types, do not set Esize.
2040 * freeze.adb (Set_Small_Size): Remove test on alignment and do not
2042 (Size_Known): Look at the RM size of components instead of the Esize.
2043 (Freeze_Record_Type): Look at the RM size instead of the Esize to
2044 issue warning and activate Implicit_Packing.
2045 (Freeze_Entity): Likewise. Do not issue a warning for alias/atomic
2046 if the Esize is not known.
2047 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esize
2048 for elementary types only.
2049 (Analyze_Record_Representation_Clause): Look at the RM size instead
2050 of the Esize to issue errors.
2051 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it
2053 <E_Record_Type>: Look at the RM size instead of the Esize. Remove
2055 Look at the RM size instead of the Esize for types if the latter is
2057 (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.
2059 2011-08-04 Ed Schonberg <schonberg@adacore.com>
2061 * sem_type.adb: proper handling of equality not involving anonymous
2064 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2066 * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and
2067 Vis_Decls. When creating a library-level finalizer for a package spec,
2068 both the declaration and body of the finalizer are inserted either in
2069 the visible or private declarations of the package spec.
2071 2011-08-04 Javier Miranda <miranda@adacore.com>
2073 * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the
2074 use of the full-view of a type when invoking Is_Ancestor.
2075 * sem_type.adb (Is_Ancestor): For consistency, when the traversal of
2076 the full-view of private parents is requested, then use also the
2077 full-view of the parent of the first derivation.
2079 2011-08-04 Tristan Gingold <gingold@adacore.com>
2081 * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset
2082 instead of the locally imported procedure.
2083 * s-taprop-mingw.adb (Enter_Task): Ditto.
2084 * s-valrea.adb (Scan_Real): Ditto.
2085 * s-imgrea.adb (Set_Image_Real): Ditto.
2086 * s-flocon.ads: Make the package pure.
2088 2011-08-04 Thomas Quinot <quinot@adacore.com>
2090 * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.
2091 * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.
2092 * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):
2093 New subprogram, moved here from...
2094 * par.adb, par-ch5.adb (P_Statement_Name): ... here.
2095 * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any
2096 rewriting of the last argument into a procedure call statement here...
2097 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there
2100 2011-08-04 Thomas Quinot <quinot@adacore.com>
2102 * par_sco.adb: Minor reformatting.
2104 2011-08-04 Robert Dewar <dewar@adacore.com>
2106 * erroutc.adb: Minor reformatting.
2108 2011-08-04 Thomas Quinot <quinot@adacore.com>
2110 * par_sco.adb: Comment update.
2112 2011-08-04 Tristan Gingold <gingold@adacore.com>
2114 * s-flocon.ads: New file.
2115 * g-flocon.ads: Now a renaming of s-flocon.
2116 * Makefile.rtl: Add s-flocon.o
2118 2011-08-04 Javier Miranda <miranda@adacore.com>
2120 * exp_strm.adb (Build_Array_Input_Function): if the array type is
2121 constrained, do not attempt to build a subtype of it.
2123 2011-08-04 Yannick Moy <moy@adacore.com>
2125 * errout.ads Change comments: remove 'R'M as an example where quotes
2126 are needed; add ALFA as another case where quotes are not needed
2127 * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
2128 case where quotes are not needed.
2129 * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
2130 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
2131 Remove all occurrences of 'A'L'F'A
2133 2011-08-04 Ed Schonberg <schonberg@adacore.com>
2135 * sem_ch13.adb: check legality of invariant pragma.
2137 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
2139 * bindgen.adb: Add comments.
2141 2011-08-04 Yannick Moy <moy@adacore.com>
2143 * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a
2145 * sem_prag.adb (Analyze_Pragma): record the pragma Annotate
2146 (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.
2148 2011-08-04 Robert Dewar <dewar@adacore.com>
2150 * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,
2151 osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,
2152 sem_ch13.adb, s-pooloc.adb: Minor reformatting.
2154 2011-08-04 Thomas Quinot <quinot@adacore.com>
2156 * s-pooloc.ads, s-pooglo.ads: Minor reformatting
2158 2011-08-04 Thomas Quinot <quinot@adacore.com>
2161 * s-pooloc.adb (Deallocate): Fix the case of deallocating the only
2164 2011-08-04 Robert Dewar <dewar@adacore.com>
2166 * einfo.ads, exp_ch4.adb: Minor reformatting.
2168 2011-08-04 Jerome Lambourg <lambourg@adacore.com>
2170 * back_end.ads (Gen_Or_Update_Object_File): Add more comments.
2172 2011-08-04 Ed Schonberg <schonberg@adacore.com>
2174 * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component
2175 type in all cases to compute list of primitive operations, because full
2176 view may be an itype that is not attached to the list of declarations.
2178 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
2180 * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the
2181 library has already been finalized.
2182 (Gen_Adafinal_C): Likewise.
2183 (Gen_Adainit_Ada): Generate an early return if the library has
2184 already been elaborated.
2185 (Gen_Adainit_C): Likewise.
2186 (Gen_Output_File_Ada): Generate an elaboration flag.
2187 (Gen_Output_File_C): Likewise.
2189 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2191 * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of
2192 Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not
2193 built in the first place.
2194 (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr
2195 for CodePeer because Finalize_Address was not built to begin with.
2196 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.
2198 2011-08-04 Pascal Obry <obry@adacore.com>
2200 * adaint.c (__gnat_tmp_name): Use current process id to create temp
2201 filenames, this ensures unicity of filenames across processes.
2203 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2205 * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine
2206 Raise_Controlled to Raise_From_Controlled_Operation. Update the
2207 signature of Raise_From_Controlled_Operation by adding flag From_Abort.
2208 Add False as the actual to From_Abort in the generated call to
2209 Raise_From_Controlled_Operation.
2211 2011-08-04 Jerome Lambourg <lambourg@adacore.com>
2213 * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration
2214 so that the ali file name can be retrieved from outside of this package.
2215 * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method
2216 doing nothing in the general case, but used to update the object file
2217 timestamp if directly generated by the backend.
2218 * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set
2219 to a later time than the ali file one.
2221 2011-08-04 Yannick Moy <moy@adacore.com>
2223 * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram
2224 entities whose body contains an Annotate pragma which forces formal
2226 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
2227 sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to
2228 Mark_Non_ALFA_Subprogram to pass in a message and node.
2229 * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate
2230 (Forma_Proof, On) which sets the flag Formal_Proof_On in the
2231 surrounding subprogram.
2232 * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,
2233 Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked
2234 as not in ALFA is annotated with Formal_Proof being On, then an error
2235 is issued based on the additional parameters for message and node.
2236 * snames.ads-tmpl (Name_Formal_Proof): new name for annotation.
2237 * gcc-interface/Make-lang.in: Update dependencies.
2239 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2241 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate
2242 Finalize_Address when CodePeer is enabled.
2244 2011-08-04 Pascal Obry <obry@adacore.com>
2246 * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as
2247 the latter returns a pointer to a static buffer which is deallocated
2248 at the end of the routine.
2250 2011-08-04 Yannick Moy <moy@adacore.com>
2252 * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA
2253 after index creation; mark unconstrained base array type generated as
2254 being in/not in ALFA as well
2255 (Make_Index): mark subtype created as in/not in ALFA
2256 * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating
2257 over a loop as in/not in ALFA, depending on its type and form of loop
2260 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2262 * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort
2263 directly to False on .NET and JVM.
2265 2011-08-04 Yannick Moy <moy@adacore.com>
2267 * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove
2268 constraint that subtype must come from source code to be in ALFA, so
2269 that anonymous subtypes can be in ALFA too.
2271 2011-08-04 Yannick Moy <moy@adacore.com>
2273 * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of
2274 reference for ALFA mode.
2275 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make
2276 procedure public so as to use it from formal verification back-end.
2278 2011-08-04 Jerome Lambourg <lambourg@adacore.com>
2280 * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the
2281 invalid checks of the Parameter, making Remove_Switch not working
2284 2011-08-04 Arnaud Charlet <charlet@adacore.com>
2286 * targparm.ads: Update header: no run-time exception is needed on this
2289 2011-08-04 Vincent Celier <celier@adacore.com>
2291 * a-fihema.adb: Use System.IO instead of GNAT.IO
2293 2011-08-04 Thomas Quinot <quinot@adacore.com>
2295 * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types
2296 are forbidden in Compiler_Unit mode.
2298 2011-08-04 Robert Dewar <dewar@adacore.com>
2300 * sem_util.adb: Minor reformatting.
2302 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2304 * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for
2305 library-level finalizers.
2306 (Gen_Finalize_Library_C): Update the import string for library-level
2308 (Gen_Finalize_Library_Defs_C): Update the definition name of a
2309 library-level finalizer.
2310 * exp_ch7.adb: Remove with and use clauses for Stringt.
2311 (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,
2312 Spec_Decl. Add local variable Body_Id. The names of library-level
2313 finalizers are now manually fully qualified and are no longer external.
2314 A single name is now capable of servicing .NET, JVM and non-VM targets.
2315 Pragma Export is no longer required to provide visibility for the name.
2316 (Create_Finalizer_String): Removed.
2317 (New_Finalizer_Name): New routine which mimics New_..._Name.
2319 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
2321 * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the
2322 elaboration counter to Standard_Short_Integer.
2323 * sem_util.adb (Build_Elaboration_Entity): Likewise.
2324 * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.
2325 (Gen_Elab_Externals_C): Likewise.
2327 2011-08-04 Ed Falis <falis@adacore.com>
2329 * system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
2330 system-vxworks-ppc.ads, system-vxworks-m68k.ads,
2331 system-vxworks-mips.ads, system-vxworks-x86.ads
2332 (Always_Compatible_Rep): set to False for all VxWorks targets.
2334 2011-08-04 Robert Dewar <dewar@adacore.com>
2336 * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,
2337 makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,
2338 exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,
2339 exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,
2340 exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,
2341 sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,
2342 sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:
2343 Minor reformatting and code reorganization.
2345 2011-08-04 Emmanuel Briot <briot@adacore.com>
2347 * projects.texi: Added doc for aggregate projects.
2349 2011-08-04 Emmanuel Briot <briot@adacore.com>
2351 * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):
2352 Add support for overriding the Project_Path in aggregate projects.
2354 2011-08-04 Robert Dewar <dewar@adacore.com>
2356 * a-cofove.ads: Minor reformatting.
2358 2011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2360 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment
2361 on the generated code.
2362 (Build_Finalize_Statements): Update the comment on the generated code.
2363 (Build_Initialize_Statements): Update the comment on the generated code.
2364 (Build_Object_Declarations): Add local variable Result. The object
2365 declarations are now built in sequence.
2366 * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and
2369 2011-08-04 Robert Dewar <dewar@adacore.com>
2371 * checks.adb, alfa.adb, alfa.ads: Minor reformatting.
2373 2011-08-04 Eric Botcazou <ebotcazou@adacore.com>
2375 * einfo.ads (Elaboration_Entity): Document new definition and use.
2376 (Elaboration_Entity_Required): Adjust to above change.
2377 * exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
2378 * exp_ch12.adb: And with and use for Snames.
2379 (Expand_N_Generic_Instantiation): Test 'Elaborated attribute.
2380 * exp_util.adb (Set_Elaboration_Flag): Likewise.
2381 * sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.
2382 <Check_Unit_Name>: Deal with N_Expanded_Name.
2383 <Attribute_Elaborated>: Extend to all unit names.
2384 * sem_elab.adb: And with and use for Uintp.
2385 (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.
2386 * sem_util.ads (Build_Elaboration_Entity): Adjust comment.
2387 * sem_util.adb (Build_Elaboration_Entity): Change type to Integer.
2388 * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken
2389 from Gen_Adainit_Ada.
2390 (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.
2391 (Gen_Adafinal_Ada): Remove redundant test. In the non-main program
2392 case, do not call System.Standard_Library.Adafinal; instead call
2393 finalize_library if needed.
2394 (Gen_Adafinal_C): Likewise.
2395 (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the
2396 non-main program case.
2397 (Gen_Adainit_C): Generate a couple of external declarations here.
2398 In the main program case, set SSL.Finalize_Library_Objects.
2399 (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.
2400 (Gen_Elab_Calls_C): Likewise.
2401 (Gen_Finalize_Library_Ada): Likewise. Skip SAL interface units.
2402 (Gen_Finalize_Library_C): Likewise. Generate a full function.
2403 (Gen_Main_C): Put back call to Ada_Final and don't finalize library
2405 (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final
2406 if -a is specified. Call Gen_Elab_Externals_Ada. Move around call to
2408 (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final
2409 if -a is specified. Call Gen_Elab_Externals_C. Remove useless couple
2410 of external declarations. Call Gen_Finalize_Library_C.
2412 2011-08-04 Emmanuel Briot <briot@adacore.com>
2414 * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,
2415 Compute_Compilation_Phases): new subprogram.
2416 (Builder_Data, Builder_Project_Tree_Data): new subprogram and type
2417 The number of mains as well as the various compilation phases that
2418 need to be run are now project tree specific, since various
2419 aggregated trees might have different requirements. In particular,
2420 they do not all require bind or link phases.
2422 2011-08-04 Emmanuel Briot <briot@adacore.com>
2424 * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb
2425 (Project_Tree_Appdata): New type.
2426 It is now possible to associate application-specific data to a project
2427 tree. In particular, this is used in the gprbuild builder to avoid a
2428 number of global tables and htables, especially now that there can be
2429 several project trees loaded at once because of aggregate projects.
2430 (Debug_Name): new procedure.
2431 * projects.texi: Clarify syntax of "**" for Source_Dirs
2433 2011-08-03 Emmanuel Briot <briot@adacore.com>
2435 * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts
2436 the "roots" for a main.
2437 (Fill_From_Project): add support for aggregate projects. Main units
2438 in aggregated projects are now automatically added in the list of
2439 files to build (although this fails later on in gprbuild, because
2440 these files are not using the root proejct tree, so this needs
2442 * gcc-interface/Make-lang.in: Update dependencies.
2444 2011-08-03 Yannick Moy <moy@adacore.com>
2446 * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean
2447 conditional expression in ALFA.
2448 * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean
2449 expressions as not in ALFA.
2451 2011-08-03 Robert Dewar <dewar@adacore.com>
2453 * a-cofove.adb: Minor reformatting.
2455 2011-08-03 Emmanuel Briot <briot@adacore.com>
2457 * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads
2458 (Insert_Project_Sources, Insert_withed_Sources_For): moved from the
2460 These packages are more logically placed in the Queue package, since
2461 they manipulate the queue. It is also likely that they can be adapted
2462 for gnatmake, thus sharing more code.
2463 (Finish_Program, Fail_Program): moved from the gprbuild sources, so
2464 that we could move the above.
2466 2011-08-03 Emmanuel Briot <briot@adacore.com>
2468 * errutil.adb (Finalize): clean up the list of error messages on exit.
2469 Calling this subprogram multiple times will no longer show duplicate
2470 error messages on stderr.
2472 2011-08-03 Emmanuel Briot <briot@adacore.com>
2474 * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter
2475 Getopt_Switches when we have already define a command line
2478 2011-08-03 Yannick Moy <moy@adacore.com>
2480 * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not
2481 in ALFA. Instead, they are considered as assertions to prove.
2482 * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such
2483 nodes as not in ALFA. Instead, include conditional expressions in ALFA
2484 if they have no ELSE part, or if they occur in pre- and postconditions,
2485 where the Condition cannot have side-effects in ALFA
2486 (Analyze_Membership_Op): do not mark such nodes as not in ALFA
2487 (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.
2488 Instead, include type conversion between scalar types in ALFA.
2489 * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA
2490 if-and-only-if its type is in ALFA.
2492 2011-08-03 Thomas Quinot <quinot@adacore.com>
2494 * scos.adb, get_scos.adb, put_scos.adb
2495 New code letter for decisions: G (entry guard)
2497 (Traverse_Subprogram_Body): Rename to...
2498 (Traverse_Subprogram_Or_Task_Body): New subrpogram.
2499 (Traverse_Protected_Body): New subprogram
2500 (Traverse_Declarations_Or_Statements): Add traversal of task bodies,
2501 protected bodies and entry bodies.
2503 2011-08-03 Yannick Moy <moy@adacore.com>
2505 * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure
2506 entities with get/set subprograms, which is set on procedure entities
2507 generated by the compiler for a postcondition.
2508 * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures
2509 * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the
2510 entity for a declaration
2511 (Get_Unique_Entity_For_Decl): new function returning an entity which
2512 represents a declaration, so that matching spec and body have the same
2515 2011-08-03 Robert Dewar <dewar@adacore.com>
2517 * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,
2518 a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting
2520 2011-08-03 Yannick Moy <moy@adacore.com>
2522 * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram
2523 library-level because retriction No_Implicit_Dynamic_Code in the
2524 front-end prevents its definition as a local subprogram
2525 (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,
2526 for reuse in other contexts
2527 (Traverse_Declarations_Or_Statements,
2528 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
2529 Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these
2530 procedures take a callback parameter to be called on all declarations
2532 (Traverse_All_Compilation_Units): new generic function to traverse a
2533 compilation unit and call a callback parameter on all declarations
2535 2011-08-03 Javier Miranda <miranda@adacore.com>
2537 * sem_prag.adb (Process_Interface_Name): Allow duplicated export names
2538 in Java since they are always enclosed in a namespace that
2539 differentiates them, and overloaded entities are supported by the VM.
2541 2011-08-03 Ed Schonberg <schonberg@adacore.com>
2543 * checks.adb (Determine_Range): If a computed bound of an operation is
2544 outside the range of the base type of the expression, and overflow
2545 checks are enabled, the result is unknown and cannot be used for any
2546 subsequent constant folding.
2547 * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are
2548 unknown, so is the result of the comparison.
2550 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
2552 * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal
2553 From_Abort. When finalization was triggered by an abort, propagate
2554 Standard'Abort_Signal rather than Program_Error.
2555 * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal
2557 * a-except.adb (Raise_From_Controlled_Operation): Add new formal
2558 From_Abort. When finalization was triggered by an abort, propagate
2559 Standard'Abort_Signal rather than Program_Error.
2560 * a-except.ads:(Raise_From_Controlled_Operation): Add new formal
2562 * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable
2563 Abort_Id. Update the calls to Build_Object_Declarations and
2564 Build_Raise_Statement to include Abort_Id.
2565 (Build_Adjust_Statements): New local variable Abort_Id. Update the
2566 calls to Build_Object_Declarations and Build_Raise_Statement to include
2568 (Build_Finalize_Statements): New local variable Abort_Id. Update the
2569 calls to Build_Object_Declarations and Build_Raise_Statement to include
2571 (Build_Components): Create an entity for Abort_Id when exceptions are
2572 allowed on the target.
2573 (Build_Finalizer): New local variable Abort_Id.
2574 (Build_Initialize_Statements): New local variable Abort_Id. Update the
2575 calls to Build_Object_Declarations and Build_Raise_Statement to include
2577 (Build_Object_Declarations): Add new formal Abort_Id. Create the
2578 declaration of flag Abort_Id to preserve the original abort status
2579 before finalization code is executed.
2580 (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to
2581 runtime routine Raise_From_Controlled_Operation.
2582 (Create_Finalizer): Update the call to Build_Raise_Statement to include
2583 Abort_Id. Update the call to Build_Object_Declarations to include
2584 Abort_Id. Update the layout of the finalizer body.
2585 (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.
2586 (Process_Transient_Objects): New local variable Abort_Id. Remove the
2587 clunky code to create all flags and objects related to
2588 exception propagation and replace it with a call to
2589 Build_Object_Declarations. Update the call to Build_Raise_Statement to
2591 * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.
2592 Add new formal Abort_Id and associated comment on its use.
2593 (Build_Raise_Statement): Add new formal Abort_Id and associated comment
2595 * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.
2596 Remove the clunky code to create all flags and objects related to
2597 exception propagation and replace it with a call to
2598 Build_Object_Declarations. Update the call to Build_Raise_Statement.
2600 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
2602 * s-tassta.adb: Fix minor typos.
2604 2011-08-03 Robert Dewar <dewar@adacore.com>
2606 * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,
2607 lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.
2609 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
2611 * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion
2612 to packages. This ensures that the finalizer body will not end up
2613 inside the freeze node.
2614 (Process_Declarations): Add code to detect whether a freeze node has a
2615 nested finalization collection.
2617 2011-08-03 Pascal Obry <obry@adacore.com>
2619 * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.
2620 (Current_Session): Return a not null access to Session_Type.
2621 (Default_Session): Likewise.
2623 2011-08-03 Robert Dewar <dewar@adacore.com>
2625 * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,
2626 exp_ch3.adb, exp_ch3.ads: Minor reformatting.
2628 2011-08-03 Pascal Obry <obry@adacore.com>
2630 * g-awk.ads: Minor comment fix.
2632 2011-08-03 Sergey Rybin <rybin@adacore.com>
2634 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
2635 the tree structure related to discriminant constraints.
2636 Original_Discriminant cannot be used any more for computing the
2637 defining name for the reference to a discriminant.
2639 2011-08-03 Ed Schonberg <schonberg@adacore.com>
2641 * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the
2642 function is not visibly tagged, this is not a dispatching call and
2643 therfore is not Tag_Indeterminate, even if the function is marked as
2644 dispatching on result.
2646 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
2648 * exp_ch13.adb: Add with and use clauses for Restrict and Rident.
2649 (Expand_N_Free_Statement): Add a guard to protect against run-times
2650 which do not support controlled types.
2651 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
2652 against run-times which do not support controlled types.
2653 * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
2654 against run-times which do not support controlled types.
2655 * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
2656 against run-times which do not support controlled types.
2657 * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
2658 protect against run-times which do not support controlled types.
2660 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
2662 * exp_intr.adb: Put back with and use clauses for Exp_Ch11.
2663 (Expand_Unc_Deallocation): Expand the AT_END handler at the very end.
2665 2011-08-03 Ed Schonberg <schonberg@adacore.com>
2667 * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
2668 modified in the source, to prevent spurious warnings when compiling
2671 2011-08-03 Thomas Quinot <quinot@adacore.com>
2673 * a-except-2005.adb: Minor reformatting.
2675 2011-08-03 Ed Schonberg <schonberg@adacore.com>
2677 * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
2678 is a renaming declaration in the private part of a package, do not emit
2679 a warning that the with_clause could be moved because the renaming may
2680 be used in the body or in a child unit.
2682 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
2684 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
2685 Propagate the Comes_From_Source attribute from the original return
2686 object to the renaming.
2688 2011-08-03 Jose Ruiz <ruiz@adacore.com>
2690 * exp_ch7.adb (Build_Raise_Statement): Do not call
2691 Raise_From_Controlled_Operation when this routine is not present in
2692 the run-time library.
2693 (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
2694 libraries (Ravenscar), tasks are non-terminating, and protected objects
2695 and tasks can only appear at library level, so we do not want
2696 finalization of protected objects nor tasks.
2697 * exp_intr.adb: Minor clarification in comment.
2698 bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
2699 Gen_Output_File_C): Remove references to finalization of library-level
2700 objects when using restricted run-time libraries.
2702 2011-08-03 Ed Schonberg <schonberg@adacore.com>
2704 * sem_ch3.adb (Build_Discriminant_Constraints): Set
2705 Original_Discriminant only if the parent type is a generic formal.
2707 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
2709 * exp_ch13.adb: Add with and use clause for Targparm;
2710 (Expand_N_Free_Statement): Prevent the generation of a custom
2711 Deallocate on .NET/JVM targets since this requires pools and address
2713 * exp_ch4.adb (Expand_Allocator_Expression): When compiling for
2714 .NET/JVM targets, attach the newly allocated object to the access
2715 type's finalization collection. Do not generate a call to
2716 Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
2717 exist in the runtime.
2718 (Expand_N_Allocator): When compiling for .NET/JVM targets, do not
2719 create a custom Allocate for object that do not require initialization.
2720 Attach a newly allocated object to the access type's finalization
2721 collection on .NET/JVM.
2722 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
2723 assignment of controlled types on .NET/JVM. The two hidden pointers
2724 Prev and Next and stored and later restored after the assignment takes
2726 * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
2727 kludge for .NET/JVM to recognize a particular piece of code coming from
2728 Heap_Management and change the call to Finalize into Deep_Finalize.
2729 * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
2730 finalization collections on .NET/JVM only for types derived from
2731 Controlled. Separate the association of storage pools with a collection
2732 and only allow it on non-.NET/JVM targets.
2733 (Make_Attach_Call): New routine.
2734 (Make_Detach_Call): New routine.
2735 (Process_Object_Declarations): Suppress the generation of
2736 build-in-place return object clean up code on .NET/JVM since it uses
2738 * exp_ch7.ads (Make_Attach_Call): New routine.
2739 (Make_Detach_Call): New routine.
2740 * exp_intr.adb Add with and use clause for Targparm.
2741 (Expand_Unc_Deallocation): Detach a controlled object from a collection
2742 on .NET/JVM targets.
2743 * rtsfind.ads: Add entries RE_Attach, RE_Detach and
2744 RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
2745 * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
2746 names used in finalization.
2748 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
2750 * a-fihema.adb: Add with and use clauses for System.Soft_Links.
2751 (Attach, Detach): Lock the current task when chaining an object onto a
2754 2011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
2756 * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
2757 Rewritten to create the message strings when the exception is not
2758 raised by an abort during finalization.
2759 * a-except.ads, a-except-2005.ads: Add pragma Export for procedure
2760 Raise_From_Controlled_Operation and update its associated comment.
2761 * a-fihema.ads, a-fihema.adb: New GNAT unit.
2762 Ada.Finalization.Heap_Management provides key functionality
2763 associated with controlled objects on the heap, their creation,
2764 finalization and reclamation. Type Finalization_Collection is
2765 effectively a wrapper which sits ontop of a storage pool and performs
2766 all necessary bookkeeping for all the objects it contains. Each
2767 access-to-controlled or access-to-class-wide type receives a collection
2768 as part of its expansion. The compiler generates buffer code and
2769 invokes Allocate / Deallocate to create and destroy allocated
2771 * a-finali.adb ("="): Removed.
2772 * a-finali.ads ("="): Removed. Controlled types no longer carry hidden
2773 fields Prev and Next.
2774 * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
2775 A library unit with at least one controlled object on the library level
2776 has a special finalizer which is invoked by the binder. To signal this,
2777 ali files carry field PF.
2778 * ali.ads: New field in type Unit_Record called Has_Finalizer. Add
2779 associated comment on field usage.
2780 * a-tags.adb (Get_RC_Offset): Removed.
2781 (Needs_Finalization): New routine.
2782 * a-tags.ads: Update the structure of the GNAT dispatch tables.
2783 Dispatch tables now carry field Needs_Finalization which provides
2784 runtime indication whether a type is controlled or has controlled
2785 components or both. Remove field RC_Offset.
2786 (Get_RC_Offset): Removed along with its associated pragma Export.
2787 Since tagged types with controlled components no longer carry hidden
2788 field _controller, the special mechanism to retrieve its location is no
2790 (Needs_Finalization): New routine.
2791 * atree.ads, atree.adb (Elist24): New routine.
2792 (Set_Elist24): New routine.
2793 * atree.h: Add a define clause for Elist24.
2794 * bindgen.adb New library-level variable Lib_Final_Built.
2795 (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
2796 presence of a VM target, the routine generates calls to the proper
2797 library finalization routine.
2798 (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
2799 targets. Set the correct library finalization routine depending on
2800 whether the library has controlled objects or this is a VM compilation.
2801 (Gen_Finalize_Library_Ada): New routine. This procedure generates calls
2802 to library-level finalizers of compiled units in reverse order of
2803 elaboration. It also produces exception management code and reraises a
2804 potential exception after all units have been finalized.
2805 (Gen_Finalize_Library_C): New routine. This procedure generates calls to
2806 library-level finalizers of compiled units in reverse order of
2808 (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
2809 definitions of all library-level finalizers available to the compilation
2810 (Gen_Main_Ada): Directly call Adafinal which now contails all target
2812 (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
2813 System.Standard_Library.Adafinal directly. If the library needs
2814 finalization actions, create the sequence of finalization calls.
2815 (Gen_Output_File_Ada): Alphabetize local variables and constants.
2816 Generate a with clause for System.Soft_Links when compiling for a VM.
2817 Remove the code which imports System.Standard_Library.Adafinal as
2818 Do_Finalize. Generate the library finalization routine.
2819 (Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
2820 If the library needs finalization actions, create all the definitions
2821 of library- level finalizers.
2822 (Has_Finalizer): New routine. Determines whether at least one compiled
2823 unit has a library-level finalizer.
2824 Add type Qualification_Mode.
2825 (Set_Unit_Name): Add a formal which controls the replacement of a dot.
2826 * einfo.adb: New usage of field 15 as Return_Flag.
2827 Remove Finalization_Chain_Entity from the usages of field 19.
2828 Remove Associated_Final_Chain from the usages of field 23.
2829 New usage of field 23 as Associated_Collection.
2830 New usage of field 24 as Finalizer.
2831 New usage of flag 252 as Is_Processed_Transient.
2832 (Associated_Final_Chain): Removed.
2833 (Associated_Collection): New routine.
2834 (Finalization_Chain_Entity): Removed.
2835 (Finalizer): New routine.
2836 (Is_Finalizer): New routine.
2837 (Is_Processed_Transient): New routine.
2838 (Return_Flag): New routine.
2839 (Set_Associated_Final_Chain): Removed.
2840 (Set_Associated_Collection): New routine.
2841 (Set_Finalization_Chain_Entity): Removed.
2842 (Set_Finalizer): New routine.
2843 (Set_Is_Processed_Transient): New routine.
2844 (Set_Return_Flag): New routine.
2845 (Write_Entity_Flags): Include Is_Processed_Transient to the list of
2847 (Write_Field8_Name): Alphabetize the output.
2848 (Write_Field11_Name): Alphabetize the output.
2849 (Write_Field12_Name): Alphabetize the output.
2850 (Write_Field13_Name): Alphabetize the output.
2851 (Write_Field14_Name): Alphabetize the output.
2852 (Write_Field15_Name): Alphabetize the output.
2853 (Write_Field16_Name): Alphabetize the output.
2854 (Write_Field17_Name): Alphabetize the output.
2855 (Write_Field18_Name): Alphabetize the output.
2856 (Write_Field19_Name): Alphabetize the output. Remove the output of
2857 Finalization_Chain_Entity.
2858 (Write_Field20_Name): Alphabetize the output.
2859 (Write_Field21_Name): Alphabetize the output.
2860 (Write_Field22_Name): Alphabetize the output.
2861 (Write_Field23_Name): Alphabetize the output. Remove the output of
2862 Associated_Final_Chain. Add output for Associated_Collection.
2863 (Write_Field24_Name): Alphabetize the output.
2864 (Write_Field25_Name): Add output for Finalizer.
2865 (Write_Field26_Name): Alphabetize the output.
2866 (Write_Field27_Name): Alphabetize the output.
2867 (Write_Field28_Name): Alphabetize the output.
2868 * einfo.ads: Add new field description for Associated_Collection and
2870 Remove Associated_Final_Chain and its uses in nodes.
2871 Remove Finalization_Chain_Entity and its uses in nodes.
2872 Add new field description for Finalizer and its uses in nodes.
2873 Add new synthesized attribute Is_Finalizer.
2874 Add new flag description for Is_Processed_Transient and its uses in
2876 Add new field description for Return_Flag and its uses in nodes.
2877 (Associated_Final_Chain): Removed along with its pragma Inline.
2878 (Associated_Collection): New routine and pragma Inline.
2879 (Finalization_Chain_Entity): Removed along with its pragma Inline.
2880 (Finalizer): New routine and pragma Inline.
2881 (Is_Finalizer): New routine and pragma Inline.
2882 (Is_Processed_Transient): New routine and pragma Inline.
2883 (Return_Flag): New routine and pragma Inline.
2884 (Set_Associated_Final_Chain): Removed along with its pragma Inline.
2885 (Set_Associated_Collection): New routine and pragma Inline.
2886 (Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
2887 (Set_Finalizer): New routine and pragma Inline.
2888 (Set_Is_Processed_Transient): New routine and pragma Inline.
2889 (Set_Return_Flag): New routine and pragma Inline.
2890 * exp_aggr.adb: Alphabetize subprograms.
2891 (Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
2892 (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
2893 associated comments. Remove local variables External_Final_List and
2895 Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
2896 Ancestor. Remove the retrieval of finalization lists. Update the call to
2898 (Convert_Aggr_In_Allocator): Remove the retrieval of finalization
2899 lists. Update the call to Late_Expansion.
2900 (Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
2901 (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
2902 (Gen_Assign): Remove the retrieval of the finalization list used to
2903 build the assignment. Update the calls to Make_Init_Call and
2905 (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
2906 Remove the mechanism to determine attachment levels and finalization
2907 list retrieval. Remove the processing for coextensions.
2908 (Init_Controller): Removed. Controllers no longer exist.
2909 (Late_Expansion): Remove formals Flist and Obj along with their
2910 associated comments. Update the calls to Build_Record_Aggr_Code and
2911 Build_Array_Aggr_Code.
2912 * exp_ch13.adb (Expand_N_Free_Statement): New routine.
2913 (Expand_N_Freeze_Entity): Add special processing for finalizers which
2914 appear in entry bodies, protected subprograms and task bodies.
2915 * exp_ch13.ads (Expand_N_Free_Statement): New routine.
2916 * exp_ch3.adb (Add_Final_Chain): Removed.
2917 (Build_Array_Init_Proc): Alphabetize local variables.
2918 (Build_Assignment): Alphabetize local variables. Update the call to
2920 (Build_Class_Wide_Master): Rename local variables to better reflect
2922 (Build_Discriminant_Assignments): Code reformatting.
2923 (Build_Init_Call_Thru): Code reformatting.
2924 (Build_Init_Procedure): Code reformatting. Generate a special version
2925 of Deep_Finalize which is capable of finalizing all initialized
2926 components and ignore the rest.
2927 (Build_Init_Statements): Rename local variables to better reflect their
2929 Reimplement the mechanism to include the creation and update of an index
2930 variable called a "counter". It is used as a bookmark for tracing
2931 initialized and non-initialized components.
2932 (Build_Initialization_Call): Remove local variable Controller_Typ.
2933 Alphabetize all local variables. Remove the initialization of the
2934 record controller and update the call to Make_Init_Call.
2935 (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
2936 New local variable Counter.
2937 (Constrain_Array): Alphabetize.
2938 (Expand_Freeze_Array_Type): Create a collection instead of a
2940 (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
2941 Finalize_Address which is used in conjunction with allocated controlled
2943 (Expand_N_Object_Declaration): Remove the creation of a finalization
2944 list for anonymous access types. Update the calls to Make_Init_Call and
2946 (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
2947 retrieval of finalization lists. Remove the expansion of the record
2948 controller. Create TSS primitive Finalize_Address used in conjunction
2949 with controlled objects on the heap. Create finalization collections
2950 for access-to-controlled record components.
2951 (Expand_Record_Controller): Removed.
2952 (Freeze_Type): Remove the freezing of record controllers. Freezing of
2953 class-wide types now requires additional processing. Create
2954 finalization collections for access-to-controlled types.
2955 (Increment_Counter): New routine.
2956 (Make_Counter): New routine.
2957 (Make_Eq_If): Remove the mention of Name_uController.
2958 (Make_Predefined_Primitive_Specs): There is no longer need to skip
2959 types coming from System.Finalization_Root.
2960 (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
2961 (Predefined_Primitive_Bodies): There is no longer need to skip types
2962 coming from System.Finalization_Root.
2963 (Stream_Operation_OK): Do not generate stream routines for
2964 type Ada.Finalization.Heap_Management.Finalization_Collection.
2965 * exp_ch3.ads: Alphabetize subprograms.
2966 * exp_ch4.adb: Remove with and use clause for Sem_Ch8.
2967 Add with and use clause for Lib.
2968 (Complete_Coextension_Finalization): Removed.
2969 (Complete_Controlled_Allocation): New routine. Create a finalization
2970 collection for anonymous access-to-controlled types. Create a custom
2971 Allocate which interfaces with the back end and the machinery in
2973 (Expand_Allocator_Expression): Add necessary calls to
2974 Complete_Controlled_Allocation. Remove the retrieval of finalization
2975 lists. Update the calls to Make_Adjust_Call. Generate a call to
2976 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
2977 the associated collection.
2978 (Expand_N_Allocator): Remove the processing for dynamic coextensions.
2979 Code clean up. Remove the retrieval of finalization lists and
2981 Update the call to Make_Init_Call. Generate a call to
2982 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
2983 the associated collection.
2984 (Get_Allocator_Final_List): Removed. Finalization lists are not
2986 (Suitable_Element): Remove the mention of Name_uController.
2987 * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
2988 (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
2989 the left hand side, carry out the assignment and adjust the left hand
2991 * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
2992 (Add_Collection_Actual_To_Build_In_Place_Call): New routine.
2993 (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
2994 BIP_Collection and BIPcollection.
2995 (Build_Heap_Allocator): New routine used to allocate the return object
2996 of a build-in-place function onto a collection.
2997 (Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
2998 (Expand_Call): Do not replace direct calls to Deep routines with their
3000 (Expand_N_Extended_Return_Statement): Give all variables shorter names
3001 and update their occurrences. Add a special return flag to monitor the
3002 [ab]normal execution of the function. The flag is set right before the
3004 Rewrite the mechanism used to allocate a build-in-place return object
3005 on the heap or on a storage pool.
3006 (Is_Direct_Deep_Call): New routine.
3007 (Make_Build_In_Place_Call_In_Allocator): Add a collection to a
3008 build-in-place function call instead of a final list. Build a call to
3009 Set_Finalize_Address_Ptr to decorate the associated collection.
3010 (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
3011 order to name the build-in-place function call's result for later
3012 finalization. Add a collection to a build-in-place function call
3013 instead of a final list.
3014 (Make_Build_In_Place_Call_In_Assignment): Add a collection to a
3015 build-in-place function call instead of a final list. Remove the code
3016 which moves one final list and transforms it into the actual in a
3017 nested build-in-place call.
3018 (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
3019 build-in-place function call instead of a final list.
3020 (Move_Final_List): Removed.
3021 (Needs_BIP_Collection): New routine.
3022 (Needs_BIP_Final_List): Removed.
3023 * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
3024 enumeration type BIP_Formal_Kind.
3025 Update the related comment.
3026 (Needs_BIP_Collection): New routine.
3027 (Needs_BIP_Final_List): Removed.
3028 * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
3029 and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
3030 majority of subprograms in this unit. Add Name_Finalize_Address to
3031 array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
3032 (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
3033 statements for an array type.
3034 (Build_Adjust_Statements): Create the adjust statements for a record
3036 (Build_Cleanup_Statements): New routine. A procedure which given any
3037 construct containing asynchronous calls, references to _master, or is a
3038 task body, a task allocation or a protected body produces the necessary
3039 runtime calls to clean up these constructs.
3040 (Build_Exception_Handler): New routine.
3041 (Build_Final_List): Removed.
3042 (Build_Finalization_Collection): New routine. A core procedure which
3043 creates a collection to service heap allocated controlled objects
3044 associated with an access-to-controlled type.
3045 (Build_Finalize_Statements): Create the finalization statements for a
3047 (Build_Finalizer): New routine. A core procedure which given any
3048 construct with declarations and/or statements detects all objects which
3049 need any type of clean up (controlled objects, protected objects) and
3050 generates all necessary code to clean up the said objects in the proper
3052 (Build_Finalizer_Call): New routine.
3053 (Build_Initialize_Statements): Create the initialization statements for
3054 an array type. The generated routine contains code to finalize partially
3056 (Build_Object_Declarations): New routine.
3057 (Build_Raise_Statement): New routine.
3058 (Clean_Simple_Protected_Objects): Removed.
3059 (Controller_Component): Removed.
3060 (Enclosing_Function): New routine.
3061 (Expand_Cleanup_Actions): Create a finalizer for a construct which has
3062 either declarations or statements or both.
3063 (Expand_N_Package_Body): Create a finalizer for a non-generic package.
3064 (Expand_N_Package_Declaration): Create a finalizer for a non-generic
3066 (Find_Final_List): Removed.
3067 (Global_Flist_Ref): Removed.
3068 (In_Finalization_Root): Removed.
3069 (Insert_Actions_In_Scope_Around): Determine the range of the transient
3070 scope in terms of tree nodes. Process all transient variables within
3072 (Make_Adjust_Call): Rewritten. There is no longer an attach call
3073 generated after the adjust.
3074 (Make_Attach_Call): Removed.
3075 (Make_Call): New routine.
3076 (Make_Clean): Removed.
3077 (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
3079 (Make_Deep_Proc): Rewritten to generate the new profile signature used
3081 (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
3083 (Make_Final_Call): Modified to simply create a call to either
3084 Deep_Finalize or Finalize.
3085 (Make_Finalize_Address_Body): New routine.
3086 (Make_Finalize_Address_Stmts): New routine. A function which produces
3087 TSS primitive Finalize_Address used in conjunction with heap allocated
3089 (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
3090 (Make_Init_Call): Rewritten. There is no longer an attach call
3091 generated after initialization.
3092 (Make_Local_Deep_Finalize): New routine.
3093 (Make_Set_Finalize_Address_Ptr_Call): New routine.
3094 (Make_Transient_Block): Remove the finalization list retrieval and
3096 (Needs_Finalization): Moved to Exp_Util.
3097 (Parent_Field_Type): New routine.
3098 (Preprocess_Components): New routine.
3099 (Process_Transient_Objects): New routine.
3100 (Wrap_HSS_In_Block): New routine.
3101 (Wrap_Transient_Declaration): Remove finalization list management and
3102 controller insertion.
3103 (Wrap_Transient_Expression): Code reformatting.
3104 (Wrap_Transient_Statement): Code reformatting.
3105 * exp_ch7.ads (Build_Final_List): Removed.
3106 (Build_Finalization_Collection): New routine.
3107 (Build_Raise_Statement): New routine.
3108 (Controller_Component): Removed.
3109 (Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
3110 (Find_Final_List): Removed.
3111 (In_Finalization_Root): Removed.
3112 (Is_Simple_Protected_Type): Update related comment.
3113 (Make_Adjust_Call): New parameter profile and associated comments.
3114 (Make_Attach_Call): Removed.
3115 (Make_Final_Call): New parameter profile and associated comments.
3116 (Make_Finalize_Address_Body): New routine.
3117 (Make_Init_Call): New parameter profile and associated comments.
3118 (Make_Local_Deep_Finalize): New routine.
3119 (Make_Set_Finalize_Address_Ptr_Call): New routine.
3120 (Needs_Finalization): Moved to Exp_Util.
3121 * exp_ch9.adb (Add_Object_Pointer): Code reformatting.
3122 (Expand_N_Protected_Body): Remove the handling of finalization lists.
3123 (Find_Protection_Type): Moved to Exp_Util.
3124 * exp_disp.adb: Remove with and use clauses for Exp_Ch7.
3125 (Make_DT): Update sequence of dispatch table initialization. Remove the
3126 initialization of field RC_Offset. Add initialization of field Needs_
3128 * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
3129 Reimplement how an object is first finalized, then deallocated.
3130 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
3132 * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
3133 Register TSS_Finalize_Address with type TSS_Names.
3134 * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
3135 procedure provides the interface between an allocation / deallocation
3136 and the support machinery in Ada.Finalization.Heap_Management.
3137 (Find_Init_Call): Code reformatting.
3138 (Find_Init_Call_In_List): Code reformatting.
3139 (Find_Protection_Type): Moved from Exp_Ch9.
3140 (Find_Prim_Op): Reimplement to add preference of recovered primitive.
3141 (Has_Controlled_Coextensions): Removed.
3142 (Has_Controlled_Objects): New routine.
3143 (In_Library_Level_Package_Body): New routine.
3144 (Insert_Action_After): New routine.
3145 (Is_Finalizable_Transient): New routine. This predicate determines
3146 whether an object declaration is one of the many variants of controlled
3148 (Is_Null_Access_BIP_Func_Call): New routine.
3149 (Is_Non_BIP_Func_Call): New routine.
3150 (Is_Related_To_Func_Return): New routine.
3151 (Needs_Finalization): Moved from Exp_Ch7.
3152 * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
3153 (Find_Protection_Type): Moved from Exp_Ch9.
3154 (Has_Controlled_Coextensions): Removed.
3155 (Has_Controlled_Objects): New routine.
3156 (In_Library_Level_Package_Body): New routine.
3157 (Insert_Action_After): New routine.
3158 (Is_Finalizable_Transient): New routine.
3159 (Is_Null_Access_BIP_Func_Call): New routine.
3160 (Is_Non_BIP_Func_Call): New routine.
3161 (Is_Related_To_Func_Return): New routine.
3162 (Needs_Finalization): Moved from Exp_ch7.
3163 * expander.adb (Expand): Add a case for N_Free_Statement.
3164 * freeze.adb (Freeze_All): Replace the generation of a finalization
3165 list with a collection for access-to-controlled types.
3166 (Freeze_Entity): Code reformatting.
3167 (Freeze_Record_Type): Remove the freezing of a record controller
3169 (Freeze_Subprogram): Code reformatting.
3170 * inline.adb (Cleanup_Scopes): Remove the reset of the scope
3172 * lib-writ.adb (Write_Unit_Information): Output "PF" when a package
3173 has a library-level finalizer.
3174 * lib-writ.ads: Add "PF" to the sequence of unit attributes.
3175 * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
3176 * Makefile.rtl: Remove a-filico and s-finimp from the list of object
3177 files. Add a-fihema to the list of object files.
3179 Alphabetize the associations in type Is_Parameterless_Attribute.
3180 * rtsfind.ads: Ada.Finalization_List.Controller and
3181 System.Finalization_Implementation are no longer a GNAT unit.
3182 Update the range of type Ada_Finalization_Child. Remove the following
3183 recoverable entities:
3185 RE_Attach_To_Final_List
3189 RE_Finalizable_Ptr_Ptr
3190 RE_Global_Final_List
3191 RE_Limited_Record_Controller
3194 RE_Record_Controller
3195 RE_Simple_List_Controller
3197 Add the following recoverable entities:
3199 RE_Add_Offset_To_Address
3203 RE_Exception_Identity
3204 RE_Finalization_Collection
3205 RE_Finalization_Collection_Ptr
3206 RE_Needs_Finalization
3207 RE_Save_Library_Occurrence
3208 RE_Set_Finalize_Address_Ptr
3209 RE_Set_Storage_Pool_Ptr
3211 * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
3213 * sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
3214 (First_Stored_Discriminant): Remove the mention of Name_uController.
3215 * sem_aux.ads: Comment reformatting.
3216 * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
3217 to redecorate an already existing class-wide type.
3218 (Decorate_Tagged_Type): New parameter profile and associated comment.
3219 Create a "shadow class-wide type" for a shadow entity.
3220 * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
3221 of the final chain along with the associated comment.
3222 * sem_ch3.adb (Access_Type_Declaration): Add new local variable
3223 Full_Desig and set it to the full view of the designated type.
3224 Initialize the finalization collection to empty.
3225 (Build_Derived_Record_Type): Alphabetize local variables. Code
3227 (Collect_Fixed_Components): Remove the mention of Name_uController.
3228 (Create_Constrained_Components): Remove the mention of Name_uController.
3229 (Make_Class_Wide_Type): Add specialized code to redecorate an existing
3230 class-wide type of a shadow entity.
3231 (Process_Full_View): Update the machinery which marks type
3232 Limited_Controlled's entity as limited.
3233 * sem_ch4.adb (Analyze_One_Call): Code reformatting.
3234 * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
3235 list, instead make a collection build-in-place formal.
3236 * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
3237 a designated type in order to establish a match between the renaming
3238 and the renamed entity.
3239 (Find_Selected_Component): Add guard to prevent spurious exceptions
3240 from being raised on .NET/JVM.
3241 * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
3242 to the list of primitive that need special processing. Update arrays
3243 C_Names and D_Names.
3244 (Replace_Types): Handle class-wide types.
3245 * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
3246 different parameter profile, look at the first formal.
3247 * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
3248 use clauses for Exp_Util.
3249 * sem_res.adb: Remove with and use clauses for Elists.
3250 (Propagate_Coextensions): Removed.
3251 (Resolve_Allocator): Do not propagate the list of coextensions from one
3252 allocator to another.
3253 * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
3254 Deaccessed_T to Desig_Typ.
3255 (Enter_Name): Remove the mention of Name_uController.
3256 (Gather_Components): Remove the mention of Name_uController.
3257 (Incomplete_Or_Private_View): New routine.
3258 (Is_Coextension_Root): Removed.
3259 (Is_Fully_Initialized_Type): Remove the mention of Name_uController.
3260 * sem_util.ads (Incomplete_Or_Private_View): New routine.
3261 (Is_Coextension_Root): Removed.
3262 * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
3263 Controlled types are now derived from a null tagged record. Remove
3264 types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
3265 * sinfo.adb (Coextensions): Removed.
3266 (Set_Coextensions): Removed.
3267 * sinfo.ads: Remove Coextensions from the explanation of node fields
3268 and its uses in nodes.
3269 Update the field usage of N_Allocator.
3270 (Coextensions): Removed along with its pragma Inline.
3271 (Set_Coextensions): Removed along with its pragma Inline.
3272 * snames.ads-tmpl: Remove names
3277 Name_uLocal_Final_List
3278 Name_Finalization_Root
3285 Name_Finalize_Address
3286 * s-pooglo.adb (Allocate): Add overriding indicator.
3287 (Deallocate): Add overriding indicator.
3288 (Storage_Size): Add overriding indicator.
3289 * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
3290 than Finalize_Global_List.
3291 (Null_Finalize_Global_List): Removed.
3292 (Save_Library_Occurrence): New routine.
3293 * s-soflin.ads: Remove variable Finalize_Global_List along with its
3294 initialization. Add variable Finalize_Library_Objects along with its
3295 pragma Export. Add variables Library_Exception and
3296 Library_Exception_Set along with their pragma Export.
3297 (Null_Finalize_Global_List): Removed.
3298 (Save_Library_Occurrence): New routine.
3299 * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
3300 rather than Finalize_Global_List.
3301 * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
3302 of the constructed node.
3304 2011-08-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3306 * link.c: Include "auto-host.h" before system headers.
3308 2011-08-03 Vincent Celier <celier@adacore.com>
3310 * make.adb (Gnatmake): Add to table Library_Projs only library projects
3311 that are not extended. Do not check if a library project that is
3312 extended should be regenerated. Do not add to table Library_Paths the
3313 libraries that are in extended projects. Link only with libraries that
3314 are in libray projects that are not extended.
3315 * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
3316 for a library project that is extended.
3318 2011-08-03 Gary Dismukes <dismukes@adacore.com>
3320 * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
3321 conforming subprogram renamings that appear to be completions if they
3322 are not fully conformant.
3323 Such renamings are homographs but not completions.
3324 * sem_type.adb (Disambiguate): Handle disambiguation of overloaded
3325 names in a subprogram renaming that appears in an instance.
3327 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3329 * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
3330 not immutably limited, build actual subtype from expression to provide
3331 proper bounds to caller.
3333 2011-08-03 Gary Dismukes <dismukes@adacore.com>
3335 * sem_ch8.adb: Minor comment correction.
3337 2011-08-03 Thomas Quinot <quinot@adacore.com>
3339 * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
3340 returning a limited array, use an extended return statement.
3342 2011-08-03 Vincent Celier <celier@adacore.com>
3344 * make.adb (Initialize): If --subdirs= is used, but no project file is
3345 specified, attempt to create the specify subdir if it does not already
3346 exist and use it as the object directory as if -D had been specified.
3348 2011-08-03 Arnaud Charlet <charlet@adacore.com>
3350 * s-tpopsp-vms.adb: New file.
3351 * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
3352 * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.
3354 2011-08-03 Emmanuel Briot <briot@adacore.com>
3356 * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
3359 2011-08-03 Yannick Moy <moy@adacore.com>
3361 * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
3362 * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
3363 * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
3364 detect that an array has static bounds.
3366 2011-08-03 Thomas Quinot <quinot@adacore.com>
3368 * exp_dist.adb: Minor reformatting.
3370 2011-08-03 Arnaud Charlet <charlet@adacore.com>
3372 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
3373 (ATCB_Key): Removed, not always used.
3375 2011-08-03 Emmanuel Briot <briot@adacore.com>
3377 * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
3378 clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
3379 most remaining global variables.
3381 2011-08-03 Robert Dewar <dewar@adacore.com>
3383 * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
3384 prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
3387 2011-08-03 Javier Miranda <miranda@adacore.com>
3389 * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
3390 that must be passed by copy in VM targets.
3392 2011-08-03 Emmanuel Briot <briot@adacore.com>
3394 * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
3395 duplicates a similar htable now in the project tree.
3397 2011-08-03 Claire Dross <dross@adacore.com>
3399 * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
3400 a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
3401 Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
3402 Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
3403 Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
3404 Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
3405 Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
3408 2011-08-03 Arnaud Charlet <charlet@adacore.com>
3410 * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
3411 (ATCB_Key): Removed, not always used.
3412 * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
3414 * s-tpopsp-tls.adb: New file.
3415 * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
3416 x86/x64/ia64/powerpc/sparc Linux.
3418 2011-08-03 Arnaud Charlet <charlet@adacore.com>
3420 * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
3421 * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.
3423 2011-08-03 Thomas Quinot <quinot@adacore.com>
3425 * rtsfind.ads, exp_dist.adb, exp_dist.ads
3426 (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
3427 Fix type selection for mapping integer types to PolyORB types.
3429 2011-08-03 Bob Duff <duff@adacore.com>
3431 * sem_ch7.adb: Minor comment clarification.
3433 2011-08-03 Bob Duff <duff@adacore.com>
3435 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
3436 an error analyzing a choice, skip further processing. Further
3437 processing could cause a crash or cascade errors.
3439 2011-08-03 Emmanuel Briot <briot@adacore.com>
3441 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
3442 prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
3443 prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
3444 prj-env.ads (Shared_Project_Tree_Data): new type
3445 An aggregate project and its aggregated trees need to share the common
3446 data structures used for lists of strings, packages,... This makes the
3447 code simpler since otherwise we have to pass the root tree (also used
3448 for the configuration file data) in addition to the current project
3449 tree. This also avoids ambiguities as to which tree should be used.
3450 And finally this saves a bit of memory.
3451 (For_Every_Project_Imported): new parameter Tree.
3452 Since aggregated projects are using a different tree, we need to let
3453 the caller know which tree to use to manipulate the returned project.
3455 2011-08-03 Robert Dewar <dewar@adacore.com>
3457 * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
3458 prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
3459 lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
3460 prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.
3462 2011-08-03 Javier Miranda <miranda@adacore.com>
3464 * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
3465 Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
3467 2011-08-03 Bob Duff <duff@adacore.com>
3469 * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
3472 2011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>
3474 * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
3475 g-sehash.ads: Fix typo. Update header.
3477 2011-08-03 Thomas Quinot <quinot@adacore.com>
3479 * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
3482 2011-08-03 Gary Dismukes <dismukes@adacore.com>
3484 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
3485 prefixes of private types along with records, since the selector may be
3487 * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
3488 private types along with records, since the selector may be a
3491 2011-08-03 Emmanuel Briot <briot@adacore.com>
3493 * prj-pp.adb (Pretty_Print): Remove trailing blank line.
3495 2011-08-03 Javier Miranda <miranda@adacore.com>
3497 * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
3498 Tagged_Type_Expansion.
3500 2011-08-03 Yannick Moy <moy@adacore.com>
3502 * sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARK
3503 violation when the argument of concatenation is the name of a
3506 2011-08-03 Emmanuel Briot <briot@adacore.com>
3508 * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
3509 prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
3510 (Process_Declarative_Items): new parameter Child_Env.
3512 2011-08-03 Yannick Moy <moy@adacore.com>
3514 * alfa.ads: Update format of ALFA section in ALI file in order to
3515 add a mapping from bodies to specs when both are present.
3516 (ALFA_Scope_Record): Add components for spec file/scope.
3517 * get_alfa.adb (Get_ALFA): Read the new file/scope for spec when
3519 * lib-xref-alfa.adb (Collect_ALFA): After all scopes have been
3520 collected, fill in the spec information when relevant.
3521 * put_alfa.adb (Put_ALFA): Write the new file/scope for spec when
3524 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
3526 * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
3527 code unit to decide whether to add internally generated subprograms.
3529 2011-08-03 Javier Miranda <miranda@adacore.com>
3531 * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
3532 * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must
3533 be handled by copy in VM targets.
3535 2011-08-03 Emmanuel Briot <briot@adacore.com>
3537 * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Share
3538 code with Makeutl.Get_Switches.
3539 * prj-tree.adb: Update comment.
3541 2011-08-03 Thomas Quinot <quinot@adacore.com>
3543 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
3544 subprogram with a limited formal that does not support external
3547 2011-08-03 Yannick Moy <moy@adacore.com>
3549 * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
3551 * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
3552 not from current unit in two phases, because it is not possible to
3553 change the table while iterating over its content.
3554 * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity
3556 2011-08-03 Sergey Rybin <rybin@adacore.com>
3558 * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
3559 * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)
3561 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3563 * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
3564 and the component type is composite, this is ambiguous for predefined
3565 concatenation, but if the node is not overloaded and the entity is a use
3566 -defined function its profile can be used to resolve that aggregate.
3568 2011-08-03 Robert Dewar <dewar@adacore.com>
3570 * exp_ch4.adb: Minor code cleanup.
3572 2011-08-03 Thomas Quinot <quinot@adacore.com>
3574 * exp_dist.adb: Do not generate distribution stubs if serious errors
3575 have been diagnosed.
3577 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3579 * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
3580 the first formal of a primitive operation, go to the base type to
3581 handle properly an access to a derived type with constrained
3583 * sem_type.adb (Disambiguate): an immediately visible operator hides a
3584 user-defined function that is only use-visible.
3586 2011-08-03 Robert Dewar <dewar@adacore.com>
3588 * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
3589 make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
3590 fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
3591 prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
3592 sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
3593 prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
3594 prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
3595 alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting
3597 2011-08-03 Robert Dewar <dewar@adacore.com>
3599 * repinfo.adb (List_Mechanism): Add handling of
3600 Convention_Ada_Pass_By_XXX.
3601 * sem_mech.adb (Set_Mechanism): Ditto.
3602 * sem_prag.adb (Process_Convention): Add entries for
3603 Convention_Ada_Pass_By_XXX.
3604 * snames.adb-tmpl, snames.ads-tmpl: Ditto.
3606 2011-08-03 Pascal Obry <obry@adacore.com>
3608 * makeutl.adb: Minor reformatting.
3610 2011-08-03 Vincent Celier <celier@adacore.com>
3613 (Get_File_Name) If the file cannot be found when there are no config
3614 pragmas file and May_Fail is True, return No_File instead of the file
3615 name, to be consistent.
3617 2011-08-03 Pascal Obry <obry@adacore.com>
3619 * adaint.c (__gnat_is_executable_file_attr): Avoid access
3622 2011-08-03 Javier Miranda <miranda@adacore.com>
3625 (Same_Representation): In VM targets the representation of arrays with
3626 aliased components differs from arrays with non-aliased components.
3628 2011-08-03 Emmanuel Briot <briot@adacore.com>
3630 * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
3631 not systematically lower case attribute indexes that contain no "."
3632 Fix definition of several Naming attributes, which take
3633 a unit name as index and therefore should be case insensitive.
3634 Minor refactoring (reduce length of variable names).
3636 2011-08-03 Emmanuel Briot <briot@adacore.com>
3638 * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.
3640 2011-08-03 Emmanuel Briot <briot@adacore.com>
3642 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
3643 prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
3644 prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
3645 prj-tree.ads (Prj.Tree.Environment): new type.
3647 2011-08-03 Emmanuel Briot <briot@adacore.com>
3649 * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
3650 prj-tree.adb, prj-tree.ads (Environment): new type.
3652 2011-08-03 Emmanuel Briot <briot@adacore.com>
3654 * prj-tree.ads: Remove unused variable.
3656 2011-08-03 Yannick Moy <moy@adacore.com>
3658 * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
3659 issuing messages related to SPARK restriction violation.
3661 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3663 * sem_ch6.adb: guard against error nodes in return statements.
3665 2011-08-03 Arnaud Charlet <charlet@adacore.com>
3667 * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
3668 a warning can only appear on a configuration file, so emit warning
3669 without further checks.
3671 2011-08-03 Arnaud Charlet <charlet@adacore.com>
3673 * s-interr.ads: add overriding keyword.
3675 2011-08-03 Geert Bosch <bosch@adacore.com>
3677 * exp_attr.adb: Fix minor typo.
3679 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3681 * par-ch4.adb: improve error recovery.
3683 2011-08-03 Emmanuel Briot <briot@adacore.com>
3685 * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
3686 prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
3689 2011-08-03 Emmanuel Briot <briot@adacore.com>
3691 * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
3692 "external" as an attribute name in aggregate projects.
3694 2011-08-03 Jose Ruiz <ruiz@adacore.com>
3696 * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
3697 uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
3698 from 0, so we need to adjust.
3700 2011-08-03 Emmanuel Briot <briot@adacore.com>
3702 * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
3703 prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.
3705 2011-08-03 Yannick Moy <moy@adacore.com>
3707 * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
3708 restriction on overloaded entity if the entity is not an operator.
3710 2011-08-03 Yannick Moy <moy@adacore.com>
3712 * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
3713 restrict.ads: Rename remaining Check_Formal_Restriction* into
3714 Check_SPARK_Restriction*.
3716 2011-08-03 Emmanuel Briot <briot@adacore.com>
3718 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
3719 prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
3721 (Project_Empty): removed
3722 (Empty_Project): new parameter Qualifier
3723 This is used to have fields specific to aggregate projects, cleaner
3724 New field to store the list of aggregated projects.
3725 (Check_Aggregate_Project): removed
3726 (Process_Aggregated_Projects, Free): new subprograms.
3728 2011-08-03 Olivier Hainque <hainque@adacore.com>
3730 * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.
3732 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3734 * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
3735 explicit dereference of an unconstrained type, create a constrained
3736 subtype for it, as is done for function calls that return an
3739 2011-08-03 Thomas Quinot <quinot@adacore.com>
3741 * g-pehage.adb (Finalize): Avoid possible double-free.
3743 2011-08-03 Steve Baird <baird@adacore.com>
3745 * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
3746 Elab_Spec/Body attrs in CodePeer_Mode.
3748 2011-08-03 Javier Miranda <miranda@adacore.com>
3750 * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
3751 low bound is not known at compile time but they have no others choice.
3752 Done because in this case the bounds can be obtained directly from the
3755 2011-08-03 Ed Falis <falis@adacore.com>
3757 * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
3758 on VxWorks SMP. Remove unusable constant ANY_CPU.
3760 2011-08-03 Emmanuel Briot <briot@adacore.com>
3762 * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
3763 clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
3764 prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
3765 Prj.Env.Initialize_Empty): new subprograms
3766 (Get_Env, Find_Project): remove parameter Target_Name.
3768 2011-08-03 Gary Dismukes <dismukes@adacore.com>
3770 * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
3771 as a condition for the delayed call to Derived_Subprograms done for the
3772 case of the rewriting of a derived type that constrains the
3773 discriminants of its parent type.
3774 Avoids redundant subprogram derivations for private subtype derivations.
3776 2011-08-03 Javier Miranda <miranda@adacore.com>
3778 * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
3779 Build_Record_Aggr_Code.
3780 (Build_Record_Aggr_Code): Add missing support to initialize hidden
3781 discriminants in extension aggregates.
3783 2011-08-03 Emmanuel Briot <briot@adacore.com>
3785 * prj-pp.adb (Print): also output project qualifiers, since in
3786 particular "aggregate" is mandatory in an aggregate project.
3788 2011-08-03 Emmanuel Briot <briot@adacore.com>
3790 * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
3791 (Debug_Output): new function.
3793 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
3795 * gnat_ugn.texi: Document -Wstack-usage.
3796 * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
3798 2011-08-03 Thomas Quinot <quinot@adacore.com>
3800 * sem_prag.adb Issue an error (not a warning) when a C++ type does not
3801 have keyword LIMITED.
3803 2011-08-03 Yannick Moy <moy@adacore.com>
3805 * alfa.adb, alfa.ads, alfa_test.adb: New files.
3806 * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
3807 (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
3808 section (does not happen in compiler, only if code directly calls
3810 * get_alfa.adb, get_alfa.ads: New files.
3811 * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
3813 * lib-xref-alfa.adb: New file.
3814 * lib-xref.adb, lib-xref.ads
3815 (Xref_Entry): redefine information needed in cross-references for ALFA.
3816 Push ALFA treatments in separated local package.
3817 (Enclosing_Subpragram_Or_Package): treat specially subprogram
3818 identifiers. Return entity of package body instead of spec. Return
3819 Empty for a scope with no location.
3820 (Generate_Reference): adapt to new components for ALFA information.
3821 Remove the need for D references on definitions.
3822 (Is_Local_Reference): moved to ALFA local package
3823 (Output_References): extract subfunction as Extract_Source_Name
3824 (Output_Local_References): remove procedure, replaced by filtering of
3825 cross-references in package ALFA and printing in Put_ALFA.
3826 (Write_Entity_Name): remove procedure
3827 * lib.adb, lib.ads (Extract_Source_Name): extract here function to
3828 print exact name of entity as it appears in source file
3829 (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
3830 * put_alfa.adb, put_alfa.ads: New files.
3831 * xref_lib.adb (Search_Xref): protect read of cross-references against
3832 reading other sections of the ALI file, in gnatxref
3833 (Search): protect read of cross-references against reading other
3834 sections of the ALI file, in gnatfind.
3835 * gcc-interface/Make-lang.in: Update dependencies.
3837 2011-08-03 Thomas Quinot <quinot@adacore.com>
3839 * sem_ch3.adb: Minor reformatting.
3841 2011-08-03 Jose Ruiz <ruiz@adacore.com>
3843 * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
3844 raising an exception.
3846 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3848 * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
3849 type, always use 1 as the lower bound or string, even if lower bound of
3850 context is not static, to handle properly null strings in a non-static
3853 2011-08-03 Bob Duff <duff@adacore.com>
3855 * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
3856 always legal on the right-hand side of an assignment statement; there
3857 is always an applicable index constraint in this case. Therefore, the
3858 check for Pkind = N_Assignment_Statement is now unconditional -- it
3859 doesn't depend on whether Is_Constrained (Typ).
3861 2011-08-03 Robert Dewar <dewar@adacore.com>
3863 * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.
3865 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3867 * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
3868 for an itype created within a generic unit.
3870 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
3872 * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
3873 suppresses all inlining.
3875 2011-08-03 Robert Dewar <dewar@adacore.com>
3877 * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
3878 exp_aggr.adb: Minor reformatting.
3880 2011-08-03 Thomas Quinot <quinot@adacore.com>
3882 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
3883 tagged assignment when discriminant checks are suppressed. This is
3884 useless and extremely costly in terms of static stack usage.
3886 2011-08-03 Bob Duff <duff@adacore.com>
3888 * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
3889 of generics, because this leads to the wrong entity in the wrong scope,
3890 causing (e.g.) pragma Export_Procedure to get an error if the entity is
3892 (Process_Interface_Name): Follow Alias for instances of generics, to
3893 correct for the above change.
3895 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3897 * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
3898 is an integer literal it is always safe to replace the reference. In
3899 addition, if the reference appears in the generated code for an object
3900 declaration it is necessary to copy because otherwise the reference
3901 might be to the uninitilized value of the discriminant of the object
3904 2011-08-03 Pascal Obry <obry@adacore.com>
3906 * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
3907 ACL used, in this case we want to check for ending .exe, not .exe
3908 anywhere in the path.
3910 2011-08-03 Sergey Rybin <rybin@adacore.com>
3912 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
3913 the tree structure (semantic decoration of references to record
3916 2011-08-03 Gary Dismukes <dismukes@adacore.com>
3918 * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
3919 choices of a named array aggregate, bail out when any choices are
3920 marked as Errors_Posted.
3922 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3924 * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
3925 in which entity is frozen, to handle properly loop variables in
3928 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3930 * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
3931 subtype is not static, compute the upper bound using attributes, to
3932 handle properly index types that are not integer types.
3934 2011-08-03 Bob Duff <duff@adacore.com>
3936 * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
3937 Update copyright notice.
3939 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3941 * sem_ch3.adb (Build_Discriminant_Constraints): Only use
3942 Original_Discriminant if within an instance.
3943 * sem_ch4.adb (Analyze_Selected_Component): Ditto.
3945 2011-08-03 Thomas Quinot <quinot@adacore.com>
3947 * einfo.ads: Minor reformatting.
3949 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3951 * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
3952 composite type with an unfrozen subcomponent, in the profile of a
3953 primitive operation.
3955 2011-08-03 Robert Dewar <dewar@adacore.com>
3957 * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.
3959 2011-08-03 Ed Schonberg <schonberg@adacore.com>
3961 * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
3962 unconstrained type with discriminants is initialized with an aggregate,
3963 use the constrained subtype of the aggregate as the type of the object,
3964 because it is immutable, and this allows the back-end to generate no
3965 code for the object declaration.
3967 2011-08-03 Robert Dewar <dewar@adacore.com>
3969 * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
3970 comparison operand is variable, and turns out to be zero or negative.
3972 2011-08-03 Javier Miranda <miranda@adacore.com>
3975 (Expand_Dispatching_Constructor_Call): Disable expansion of
3976 code required for native targets. Done to avoid generating
3977 references to unavailable runtime entities in VM targets.
3979 (Expand_N_Object_Declaration): Add missing support to handle
3980 the explicit initialization of class-wide interface objects.
3983 2011-08-03 Matthew Heaney <heaney@adacore.com>
3985 * a-cobove.adb (Merge): Move source onto target, instead of using Assign
3987 2011-08-03 Matthew Heaney <heaney@adacore.com>
3989 * a-cbdlli.adb (Splice): move source items from first to last
3991 2011-08-03 Yannick Moy <moy@adacore.com>
3993 * sem_util.ads: comment added.
3995 2011-08-03 Javier Miranda <miranda@adacore.com>
3998 (Expand_Record_Aggregate): In VM targets disable the expansion into
3999 assignments of aggregates whose type is not known at compile time.
4001 2011-08-03 Ed Schonberg <schonberg@adacore.com>
4003 * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
4004 protected entries and task entries, to build the proper renaming
4005 declaration for entry formals, used in debugging.
4006 * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
4007 parameters in the same way.
4009 2011-08-02 Robert Dewar <dewar@adacore.com>
4011 * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
4012 sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
4013 code reorganization.
4015 2011-08-02 Robert Dewar <dewar@adacore.com>
4017 * debug.adb: Debug flag d.P to suppress length comparison optimization
4018 * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
4019 comparison of Length by comparing First/Last instead.
4021 2011-08-02 Matthew Heaney <heaney@adacore.com>
4023 * a-cobove.ads: Code clean up.
4025 2011-08-02 Vincent Celier <celier@adacore.com>
4027 * adaint.c (file_names_case_sensitive_cache): New static int.
4028 (__gnat_get_file_names_case_sensitive): Cache the return value in
4029 file_names_case_sensitive_cache at the first invocation, to avoid
4030 multiple calls to getenv.
4032 2011-08-02 Bob Duff <duff@adacore.com>
4034 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.
4036 2011-08-02 Yannick Moy <moy@adacore.com>
4038 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
4039 sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
4040 sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
4041 indicate that we are in a precondition or postcondition. This is used in
4042 Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
4043 decide whether to flag the spec or body of the current subprogram as
4046 2011-08-02 Fabien Chouteau <chouteau@adacore.com>
4048 * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
4050 * a-extiin.ads: New file.
4052 2011-08-02 Bob Duff <duff@adacore.com>
4054 * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
4055 now raises Name_Error instead of Use_Error in certain cases. The other
4056 parts of this AI were already implemented properly.
4058 2011-08-02 Vincent Celier <celier@adacore.com>
4060 * link.c: Only import "auto-host.h" when building the gnattools.
4062 2011-08-02 Yannick Moy <moy@adacore.com>
4064 * sem_util.adb: Inter-unit inlining does not work for a subprogram
4065 which calls a local subprogram, so extract subprogram
4066 from Mark_Non_ALFA_Subprogram_Body.
4068 2011-08-02 Javier Miranda <miranda@adacore.com>
4071 (Extract_Dispatching_Call): If the type of the dispatching object is an
4072 access type then return an explicit dereference in the Object out-mode
4075 2011-08-02 Gary Dismukes <dismukes@adacore.com>
4077 * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
4078 compatibility checks for all indexes of an array subtype, not just the
4079 first. Reset Has_Dynamic_Range_Check on the subtype before each
4080 potential check to ensure that Insert_Range_Checks will not elide any
4081 of the dynamic checks.
4083 2011-08-02 Yannick Moy <moy@adacore.com>
4085 * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
4086 SPARK restriction at parsing time.
4087 * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
4088 directive only if the SPARK restriction is set for this unit.
4090 2011-08-02 Yannick Moy <moy@adacore.com>
4092 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
4093 sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
4094 sem_ch11.adb: Protect call to Current_Subprogram which might be costly
4095 when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
4096 Mark_Non_ALFA_Subprogram_Body.
4097 Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
4100 2011-08-02 Yannick Moy <moy@adacore.com>
4102 * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
4105 2011-08-02 Robert Dewar <dewar@adacore.com>
4107 * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
4108 exp_ch3.adb: Minor reformatting.
4110 2011-08-02 Emmanuel Briot <briot@adacore.com>
4112 * adaint.c (__gnat_locate_exec_on_path): only returns executable
4113 files, not any regular file.
4114 (__gnat_locate_file_with_predicate): new subprogram.
4116 2011-08-02 Yannick Moy <moy@adacore.com>
4118 * sinfo.adb, sinfo.ads: Restrict the use of flags
4119 Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
4120 nodes, plus N_Subtype_Declaration for the 2nd one.
4122 2011-08-02 Sergey Rybin <rybin@adacore.com>
4124 * gnat_rm.texi: Ramification of pragma Eliminate documentation
4125 - fix bugs in the description of Source_Trace;
4126 - get rid of UNIT_NAME;
4128 2011-08-02 Javier Miranda <miranda@adacore.com>
4131 (Build_Dispatching_Requeue): Adding support for VM targets
4132 since we cannot directly reference the Tag entity.
4133 * exp_sel.adb (Build_K): Adding support for VM targets.
4134 (Build_S_Assignment): Adding support for VM targets.
4136 (Default_Prim_Op_Position): In VM targets do not restrict availability
4137 of predefined interface primitives to compiling in Ada 2005 mode.
4138 (Is_Predefined_Interface_Primitive): In VM targets this service is not
4139 restricted to compiling in Ada 2005 mode.
4140 (Make_VM_TSD): Generate code that declares and initializes the OSD
4141 record. Needed to support dispatching calls through synchronized
4144 (Make_Predefined_Primitive_Specs): Enable generation of predefined
4145 primitives associated with synchronized interfaces.
4146 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
4147 primitives associated with synchronized interfaces.
4149 2011-08-02 Yannick Moy <moy@adacore.com>
4151 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
4152 statements hidden in SPARK if preceded by the HIDE directive
4153 (Parse_Exception_Handlers): mark each exception handler in a sequence of
4154 exception handlers as hidden in SPARK if preceded by the HIDE directive
4155 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
4156 if starting with the HIDE directive
4157 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
4158 starting with the HIDE directive; mark the declarations in a private
4159 part as hidden in SPARK if the private part starts with the HIDE
4161 * restrict.adb, restrict.ads
4162 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
4163 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
4164 argument node belongs to a part which is hidden in SPARK
4165 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
4166 parts in SPARK; protect the possibly costly call to
4167 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
4168 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
4169 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
4170 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
4172 (Scan): recognize special comment starting with '#' and followed by
4173 SPARK keyword "hide" as a HIDE directive.
4175 2011-08-02 Yannick Moy <moy@adacore.com>
4177 * types.ads, erroutc.ads: Minor reformatting.
4179 2011-08-02 Vincent Celier <celier@adacore.com>
4181 * link.c: Add response file support for cross platforms.
4183 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4185 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
4186 in an association, set parent field of copy before partial analysis.
4187 * sem_res.adb (Resolve_Slice): create reference to itype only when
4188 expansion is enabled.
4190 2011-08-02 Yannick Moy <moy@adacore.com>
4192 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
4193 for new flag denoting which subprogram bodies are in ALFA
4194 * restrict.adb, sem_ch7.adb: Update comment
4195 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
4196 sem_ch9.adb, sem_res.adb: Add calls to
4197 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
4198 * sem_ch6.adb (Analyze_Function_Return): add calls to
4199 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
4200 middle of the body, and extended return.
4201 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
4202 False when missing return.
4203 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
4204 to True for subprograms whose spec is in ALFA. Remove later on the flag
4205 on the entity used for a subprogram body when there exists a separate
4207 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
4208 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
4209 False, otherwise do nothing.
4211 2011-08-02 Robert Dewar <dewar@adacore.com>
4213 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
4215 2011-08-02 Yannick Moy <moy@adacore.com>
4217 * sem_ch4.ads: minor formatting.
4219 2011-08-02 Yannick Moy <moy@adacore.com>
4221 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
4222 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
4223 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
4224 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
4225 opt.ads: cleanup of SPARK mode
4227 2011-08-02 Yannick Moy <moy@adacore.com>
4229 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
4231 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
4232 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
4234 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
4235 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
4236 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
4237 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
4239 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
4241 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
4242 functions whose return type is not in ALFA.
4243 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
4245 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
4246 parameter's type is not in ALFA.
4247 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
4250 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4252 * sem_ch6 (Analyze_Expression_Function): treat the function as
4253 Inline_Always, and introduce a subprogram declaration for it when it is
4255 * inline.adb (Add_Inlined_Body): recognize bodies that come from
4256 expression functions, so that the back-end can determine whether they
4257 can in fact be inlined.
4258 * sem_util.adb (Is_Expression_Function): predicate to determine whether
4259 a function body comes from an expression function.
4261 2011-08-02 Gary Dismukes <dismukes@adacore.com>
4263 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
4264 null exclusions to test Can_Never_Be_Null on the anonymous access types
4265 of the formals rather than testing the formals themselves. Exclude this
4266 check in cases where the Old_Formal is marked as a controlling formal,
4267 to avoid issuing spurious errors for bodies completing dispatching
4268 operations (due to the flag not getting set on controlling access
4269 formals in body specs).
4270 (Find_Corresponding_Spec): When checking full and subtype conformance of
4271 subprogram bodies in instances, pass Designated and E in that order, for
4272 consistency with the expected order of the formals (New_Id followed by
4275 2011-08-02 Robert Dewar <dewar@adacore.com>
4277 * sem_ch8.adb: Minor reformatting.
4279 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4281 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
4282 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
4283 primitive operations of class-wide actuals.
4285 2011-08-02 Javier Miranda <miranda@adacore.com>
4287 * exp_atag.ads, exp_atag.adb
4288 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
4289 since its value is implicitly passed in argument Typ.
4290 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
4291 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
4292 Build_Common_Dispatching_Select_Statements.
4294 2011-08-02 Robert Dewar <dewar@adacore.com>
4296 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
4297 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
4300 2011-08-02 Robert Dewar <dewar@adacore.com>
4302 * sem_res.adb: Minor reformatting.
4303 * sem_prag.adb: Minor reformatting.
4305 2011-08-02 Javier Miranda <miranda@adacore.com>
4307 * exp_atag.adb, exp_atags.ads
4308 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
4309 by the tagged type Entity. Required to use this routine in the VM
4310 targets since we do not have available the Tag entity in the VM
4313 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
4314 Ada.Tags has not been previously loaded.
4316 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
4317 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
4319 (Enclosing_Dynamic_Scope): Add missing support to handle the full
4320 view of enclosing scopes. Required to handle enclosing scopes that
4321 are synchronized types whose full view is a task type.
4323 (Build_VM_TSDs): Minor code improvement to avoid generating and
4324 analyzing lists with empty nodes.
4325 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
4326 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
4327 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
4328 (Make_Disp_Timed_Select_Body): Add support for VM targets.
4329 (Make_Select_Specific_Data_Table): Add support for VM targets.
4330 (Make_VM_TSD): Generate code to initialize the SSD structure of
4333 2011-08-02 Yannick Moy <moy@adacore.com>
4335 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
4336 cross-references section in ALI.
4337 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
4338 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
4340 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
4341 subprogram or package entity of a node
4342 (Is_Local_Reference_Type): new function returns True for references
4343 selected in local cross-references.
4344 (Lt): function extracted from Lt in Output_References
4345 (Write_Entity_Name): function extracted from Output_References
4346 (Generate_Definition): generate reference with type 'D' for definition
4347 of objects (object declaration and parameter specification), with
4348 appropriate locations and units, for use in local cross-references.
4349 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
4350 references of type 'I' for initialization in object definition.
4351 (Output_References): move part of function Lt and procedure
4352 Write_Entity_Name outside of the body. Ignore references of types 'D'
4353 and 'I' introduced for local cross-references.
4354 (Output_Local_References): new procedure to output the local
4355 cross-references sections.
4356 (Lref_Entity_Status): new array defining whether an entity is a local
4357 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
4358 with 'I' type when initialization expression is present.
4359 * get_scos.adb, get_scos.ads: Correct comments and typos
4361 2011-08-02 Javier Miranda <miranda@adacore.com>
4363 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
4365 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
4367 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
4370 2011-08-02 Vincent Celier <celier@adacore.com>
4372 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
4373 (No_Space_Img): New function
4374 (Find_Excluded_Sources): When reading from a file, record the file name
4375 and the line number for each excluded source.
4376 (Mark_Excluded_Sources): When reporting an error, if the excluded
4377 sources were read from a file, include file name and line number in
4380 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4382 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
4384 2011-08-02 Robert Dewar <dewar@adacore.com>
4386 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
4388 2011-08-02 Javier Miranda <miranda@adacore.com>
4390 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
4391 generation of TSDs to the DOTNET compiler.
4392 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
4393 generation of TSDs to the DOTNET compiler.
4395 2011-08-02 Javier Miranda <miranda@adacore.com>
4397 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
4398 record of all the tagged types declared inside library level package
4399 declarations, library level package bodies or library level subprograms.
4400 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
4401 associated with a given tagged type.
4402 (Build_VM_TSDs): New subprogram.
4403 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
4404 compilation units that are subprograms.
4405 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
4406 compilation units that are package bodies.
4407 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
4408 units that are a package declaration or a package instantiation.
4409 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
4410 reorganization to improve the error generated by the frontend when the
4411 function Ada.Tags.Secondary_Tag is not available.
4412 * rtsfind.ads (RE_Register_TSD): New runtime entity.
4413 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
4415 2011-08-02 Javier Miranda <miranda@adacore.com>
4417 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
4419 2011-08-02 Robert Dewar <dewar@adacore.com>
4421 * s-imenne.ads: Minor reformatting.
4423 2011-08-02 Robert Dewar <dewar@adacore.com>
4425 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
4426 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
4427 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
4429 2011-08-02 Robert Dewar <dewar@adacore.com>
4431 * einfo.ads (Materialize_Entity): Document this is only for renamings
4432 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
4433 required debug information in the case where we transform the object
4434 declaration into a renaming declaration.
4435 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
4437 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
4440 2011-08-02 Robert Dewar <dewar@adacore.com>
4442 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
4443 Suppress_Init_Procs.
4444 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
4445 Suppress_Initialization/Initialization_Suppressed.
4446 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
4447 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
4448 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
4449 * sem_prag.adb: New processing for pragma Suppress_Initialization.
4451 2011-08-02 Robert Dewar <dewar@adacore.com>
4453 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
4456 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4458 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
4459 only have inheritable classwide pre/postconditions.
4461 2011-08-02 Javier Miranda <miranda@adacore.com>
4463 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
4464 * rtsfind.ads (RE_Check_TSD): New runtime entity.
4465 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
4466 checks if the external tag of a type is the same as the external tag
4467 of some other declaration.
4469 2011-08-02 Thomas Quinot <quinot@adacore.com>
4471 * s-taskin.ads: Minor reformatting.
4473 2011-08-02 Emmanuel Briot <briot@adacore.com>
4475 * g-comlin.adb (Display_Help): swap the order in which it prints the
4476 short help and the general usage.
4478 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4480 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
4481 the aspect declarations and attach them to the generic copy for
4482 subsequent analysis.
4483 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
4484 declarations of the generic tree to the new subprogram declarations.
4485 * sem_attr.adb (Check_Precondition_Postcondition): recognize
4486 conditions that apply to a subprogram instance.
4488 2011-08-02 Robert Dewar <dewar@adacore.com>
4490 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
4492 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4494 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
4495 private type with a tagged full view is not derived in the immediate
4496 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
4498 2011-08-02 Robert Dewar <dewar@adacore.com>
4500 * exp_ch4.adb: Minor reformatting.
4502 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4504 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
4505 Ada2012 iterator, the loop will be rewritten during expansion into a
4506 while loop with a cursor and an element declaration. Do not analyze the
4507 body in this case, because if the container is for indefinite types the
4508 actual subtype of the elements will only be determined when the cursor
4509 declaration is analyzed.
4511 2011-08-02 Arnaud Charlet <charlet@adacore.com>
4513 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
4514 size/alignment related attributes in CodePeer_Mode.
4516 2011-08-02 Gary Dismukes <dismukes@adacore.com>
4518 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
4519 Prepend_Element, since this can result in the operation getting the
4520 wrong slot in the full type's dispatch table if the full type has
4521 inherited operations. The incomplete type's operation will get added
4522 to the proper position in the full type's primitives
4523 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
4524 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
4525 dispatching operations, since there are cases where nonprimitive
4526 subprograms can get added to the list of incomplete dependents (such
4527 as subprograms in nested packages).
4528 * sem_ch6.adb (Process_Formals): First, remove test for being in a
4529 private part when determining whether to add a primitive with a
4530 parameter of a tagged incomplete type to the Private_Dependents list.
4531 Such primitives can also occur in the visible part, and should not have
4532 been excluded from being private dependents.
4533 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
4534 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
4535 list of a Taft-amendment incomplete type is a primitive before issuing
4536 an error that the full type must appear in the same unit. There are
4537 cases where nonprimitives can be in the list (such as subprograms in
4539 * sem_disp.adb (Derives_From): Use correct condition for checking that
4540 a formal's type is derived from the type of the corresponding formal in
4541 the parent subprogram (the condition was completely wrong). Add
4542 checking that was missing for controlling result types being derived
4543 from the result type of the parent operation.
4545 2011-08-02 Yannick Moy <moy@adacore.com>
4547 * errout.adb (First_Node): minor renaming
4548 * restrict.adb (Check_Formal_Restriction): put restriction warning on
4551 2011-08-02 Yannick Moy <moy@adacore.com>
4553 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
4554 before accessing operands.
4555 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
4556 decide whether an initialization expression respects SPARK rules, as
4557 the plain node is the expanded one. This allows for more valid warnings
4559 * gnat_rm.texi: Minor update.
4561 2011-08-02 Arnaud Charlet <charlet@adacore.com>
4563 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
4566 2011-08-02 Robert Dewar <dewar@adacore.com>
4568 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
4570 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
4572 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
4573 loop statements and the element renaming declaration with a block when
4574 the element type is controlled.
4576 2011-08-02 Yannick Moy <moy@adacore.com>
4578 * sinfo.ads: Minor formatting.
4580 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4582 * sem_aggr.adb (Add_Association): if the association has a box and no
4583 expression, use the Sloc of the aggregate itself for the new
4585 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
4588 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
4590 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
4591 When a container is provided via a function call, generate a renaming
4592 of the function result. This avoids the creation of a transient scope
4593 and the premature finalization of the container.
4594 * exp_ch7.adb (Is_Container_Cursor): Removed.
4595 (Wrap_Transient_Declaration): Remove the supression of the finalization
4596 of the list controller when the declaration denotes a container cursor,
4599 2011-08-02 Yannick Moy <moy@adacore.com>
4601 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
4602 node is from source, instead of the original node being from source.
4604 (Resolve_Array_Aggregate): refine the check for a static expression, to
4605 recognize also static ranges
4606 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
4607 Array_Type_Declaration): postpone the test for the type being a subtype
4608 mark after the type has been resolved, so that component-selection and
4609 expanded-name are discriminated.
4610 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
4611 to distinguish the case of an iteration scheme, so that an error is
4612 issed on a non-static range in SPARK except in an iteration scheme.
4613 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
4614 In_Iter_Schm = True.
4615 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
4616 user-defined operators so that they are allowed in renaming
4618 (Find_Selected_Component): refine the check for prefixing of operators
4619 so that they are allowed in renaming. Move the checks for restrictions
4620 on selector name after analysis discriminated between
4621 component-selection and expanded-name.
4622 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
4623 concatenation argument of string type if it is static.
4624 * sem_util.adb, sem_util.ads
4625 (Check_Later_Vs_Basic_Declarations): add a new function
4626 Is_Later_Declarative_Item to decice which declarations are allowed as
4627 later items, in the two different modes Ada 83 and SPARK. In the SPARK
4628 mode, add that renamings are considered as later items.
4629 (Enclosing_Package): new function to return the enclosing package
4630 (Enter_Name): correct the rule for homonyms in SPARK
4631 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
4632 from source (result of expansion) to avoid issuing wrong warnings.
4634 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4636 * errout.adb: On anything but an expression First_Node returns its
4639 2011-08-02 Pascal Obry <obry@adacore.com>
4641 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
4643 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
4645 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
4646 Set the associated loop as the related expression of internally
4648 * exp_ch7.adb (Is_Container_Cursor): New routine.
4649 (Wrap_Transient_Declaration): Supress the finalization of the list
4650 controller when the declaration denotes a container cursor.
4652 2011-08-02 Yannick Moy <moy@adacore.com>
4654 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
4656 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
4657 expression is a simple expression. This check cannot be performed in
4658 the semantics, so just drop it.
4659 (P_Index_Or_Discriminant_Constraint): move check that the index or
4660 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
4661 semantics. Other cases were previously checked in the semantics.
4662 * par-ch4.adb (P_Name): move checks that a selector name is not
4663 character literal or an operator symbol to Find_Selected_Component in
4665 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
4666 declarations are not placed after later declarations in a separate
4667 procedure in Sem_Util (possibly not the best choice?), to be used both
4668 during parsing, for Ada 83 mode, and during semantic analysis, for
4670 * par-endh.adb (Check_End): move check that end label is not missing
4671 to Process_End_Label in the semantics
4672 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
4673 the special case for SPARK restriction
4674 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
4675 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
4676 parameter Force to issue the error message even on internal node (used
4677 for generated end label). Call Check_Restriction to check when an error
4678 must be issued. In SPARK mode, issue an error message even if the
4679 restriction is not set.
4680 (Check_Restriction): new procedure with an additional out parameter to
4681 inform the caller that a message has been issued
4682 * sem_aggr.adb: Minor modification of message
4683 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
4684 instead of issuing an error message directly
4685 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
4686 declarations are not placed after later declarations, by calling
4687 Check_Later_Vs_Basic_Declarations
4688 (Analyze_Subtype_Declaration): move here the check that an index or
4689 discriminant constraint must be a subtype mark. Change the check that
4690 a subtype of String must start at one so that it works on subtype marks.
4691 * sem_ch4.adb (Analyze_Call): move here the check that a named
4692 association cannot follow a positional one in a call
4693 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
4694 instead of issuing an error message directly
4695 * sem_ch8.adb (Find_Selected_Component): move here the check that a
4696 selector name is not a character literal or an operator symbol. Move
4697 here the check that the prefix of an expanded name cannot be a
4698 subprogram or a loop statement.
4699 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
4700 procedure called from parsing and semantics to check that basic
4701 declarations are not placed after later declarations
4702 (Process_End_Label): move here the check that end label is not missing
4704 2011-08-02 Arnaud Charlet <charlet@adacore.com>
4706 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
4707 representation clause in codepeer mode, since it confuses CodePeer and
4708 does not bring useful info.
4710 2011-08-02 Ed Falis <falis@adacore.com>
4712 * init.c: initialize fp hw on MILS.
4714 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4716 * errout.adb (First_Node): for bodies, return the node itself (small
4717 optimization). For other nodes, do not check source_unit if the node
4718 comes from Standard.
4720 2011-08-02 Robert Dewar <dewar@adacore.com>
4722 * exp_ch3.adb: Minor comment additions.
4723 * sem_ch13.adb: Minor reformatting.
4725 2011-08-02 Pascal Obry <obry@adacore.com>
4727 * make.adb, makeutl.adb: Removes some superfluous directory separator.
4729 2011-08-02 Robert Dewar <dewar@adacore.com>
4731 * sem_attr.adb: Minor reformatting.
4733 2011-08-02 Robert Dewar <dewar@adacore.com>
4735 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
4736 (Has_Default_Component_Value): Removed
4737 * einfo.ads Comment updates
4738 (Has_Default_Aspect): Replaces Has_Default_Value
4739 (Has_Default_Component_Value): Removed
4741 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
4743 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
4744 (Get_Simple_Init_Val): Handle Default_Value aspect
4745 (Needs_Simple_Initialization): Handle Default_Value aspect
4746 * exp_ch3.ads: Needs_Simple_Initialization
4747 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
4748 * par-prag.adb (Pragma_Default[_Component]Value) Removed
4750 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
4751 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
4752 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
4754 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4756 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
4757 package containing iteration primitives.
4758 exp_ch5.adb (Expand_Iterator_Loop): ditto.
4760 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4762 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
4763 "of", pre-analyze expression in case it is a function call with
4764 finalization actions that must be placed ahead of the loop.
4765 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
4766 on an Ada2012 iterator, insert them ahead of the rewritten loop.
4768 2011-08-02 Geert Bosch <bosch@adacore.com>
4770 * cstand.adb (Create_Float_Types): Only consider C's long double for
4771 Long_Long_Float, in addition to double.
4773 2011-08-02 Robert Dewar <dewar@adacore.com>
4775 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
4776 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
4777 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
4780 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4782 * sem_attr.adb: handle properly 'Result when it is a prefix of an
4785 2011-08-02 Javier Miranda <miranda@adacore.com>
4787 * einfo.ads, einfo.adb
4788 (Original_Access_Type): Move this attribute to Node26 since there was
4789 an undocumented use of Node21 in E_Access_Subprogram_Type entities
4790 which causes conflicts and breaks the generation of the .NET compiler.
4791 (Interface_Name): Add missing documentation on JGNAT only uses of
4794 2011-08-02 Geert Bosch <bosch@adacore.com>
4796 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
4797 (Find_Back_End_Float_Type): Likewise
4798 (Create_Back_End_Float_Types): Likewise
4799 (Create_Float_Types): Likewise
4800 (Register_Float_Type): Likewise
4801 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
4802 Nlist and split out type selection in new local Find_Base_Type function.
4803 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
4805 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
4807 2011-08-02 Robert Dewar <dewar@adacore.com>
4809 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
4811 * opt.ads: Minor comment change.
4812 * sem_ch12.adb: Minor code reorganization.
4814 2011-08-02 Gary Dismukes <dismukes@adacore.com>
4816 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
4817 subtype's list of rep items to the list on the full subtype in the case
4818 where the lists are the same.
4820 2011-08-02 Geert Bosch <bosch@adacore.com>
4822 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
4823 using the one from System.Strings, which also deallocates all strings.
4825 2011-08-02 Geert Bosch <bosch@adacore.com>
4827 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
4829 * gcc-interface/Make-lang.in: Update dependencies.
4831 2011-08-02 Olivier Hainque <hainque@adacore.com>
4833 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
4836 2011-08-02 Javier Miranda <miranda@adacore.com>
4838 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
4839 associated with anonymous access to subprograms.
4841 2011-08-02 Geert Bosch <bosch@adacore.com>
4844 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
4845 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
4846 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
4847 (Add_Symbol_Definition): Move to switch-c.adb
4848 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
4849 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
4850 (Add_Symbol_Definition): Move to switch-c.adb.
4851 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
4853 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
4855 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
4856 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
4858 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
4859 (Add_Symbol_Definition): Moved from Prepcomp.
4860 * switch-c.ads: Update copyright notice. Use String_List instead of
4861 Argument_List, removing dependency on System.OS_Lib.
4863 2011-08-02 Yannick Moy <moy@adacore.com>
4865 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
4866 mode on initialization expression which does not respect SPARK
4868 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
4869 if the tree referenced by its argument represents an initialization
4870 expression in SPARK, suitable for initializing an object in an object
4873 2011-08-02 Javier Miranda <miranda@adacore.com>
4875 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
4876 internally generated access to subprogram with its associated protected
4878 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
4880 2011-08-02 Geert Bosch <bosch@adacore.com>
4882 * cstand.adb (Register_Float_Type): Print information about type to
4883 register, if the Debug_Flag_Dot_B is set.
4884 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
4885 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
4886 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
4887 with a requested precision of more than Max_Digits digits and no more
4888 than Max_Base_Digits digits, if a range specification is present and the
4889 Predefined_Float_Types list has a suitable type to derive from.
4890 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
4891 case of type completion with pragma Import
4893 (Process_Import_Predefined_Type): Processing to complete a type
4894 with pragma Import. Currently supports floating point types only.
4895 (Set_Convention_From_Pragma): Do nothing without underlying type.
4896 (Process_Convention): Guard against absence of underlying type,
4897 which may happen when importing incomplete types.
4898 (Process_Import_Or_Interface): Handle case of importing predefined
4899 types. Tweak error message.
4901 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
4903 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
4904 functions to previous change. Reorganize code slightly.
4906 2011-08-02 Geert Bosch <bosch@adacore.com>
4908 * back_end.ads (Register_Type_Proc): New call back procedure type for
4909 allowing the back end to provide information about available types.
4910 (Register_Back_End_Types): New procedure to register back end types.
4911 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
4913 * cstand.adb (Back_End_Float_Types): New list for floating point types
4914 supported by the back end.
4915 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
4916 (Copy_Float_Type): New procedure to make new copies of predefined types.
4917 (Register_Float_Type): New call back procedure to populate the BEFT list
4918 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
4919 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
4920 (Create_Float_Types): New procedure to create entities for floating
4921 point types predefined in Standard, and put these and any remaining
4922 BEFTs on the Predefined_Float_Types list.
4923 * stand.ads (Predefined_Float_Types): New list for predefined floating
4924 point types that do not have declarations in package Standard.
4926 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
4928 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
4929 entity node for the unit containing the parameter.
4930 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
4931 (Add_Inlined_Subprogram): Likewise.
4932 * gcc-interface/Make-lang.in: Update dependencies.
4934 2011-08-02 Thomas Quinot <quinot@adacore.com>
4936 * s-stusta.adb (Print): Make sure Pos is always initialized to a
4939 2011-08-02 Geert Bosch <bosch@adacore.com>
4941 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
4943 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
4945 * sem_type.adb (Covers): Move trivial case to the top and reuse the
4946 computed value of Base_Type.
4948 2011-08-02 Yannick Moy <moy@adacore.com>
4950 * restrict.adb (Check_Restriction): issue an error for any use of
4951 class-wide, even if the No_Dispatch restriction is not set.
4952 * sem_aggr.adb: Correct typos in comments and messages in formal mode
4953 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
4954 when completing a private extension, the type named in the private part
4955 is not the same as that named in the visible part.
4956 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
4957 of an inherited primitive operations of a tagged type or type extension
4958 that returns the tagged type.
4959 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
4960 function which returns True for an implicit operation inherited by the
4961 derived type declaration for the argument type.
4962 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
4965 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4967 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
4968 Process_Bounds, to perform analysis with expansion of a range or an
4969 expression that is the iteration scheme for a loop.
4970 (Analyze_Iterator_Specification): If domain of iteration is given by a
4971 function call with a controlled result, as is the case if call returns
4972 a predefined container, ensure that finalization actions are properly
4974 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
4976 2011-08-02 Javier Miranda <miranda@adacore.com>
4978 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
4979 * gcc-interface/Make-lang.in: Update dependencies.
4981 2011-08-02 Javier Miranda <miranda@adacore.com>
4983 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
4984 determine if the analysis is performed using N or Original_Node (N).
4985 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
4986 functionality of routine Is_Variable avoids code duplication.
4987 * checks.adb (Determine_Range): Handle temporaries generated by
4988 Remove_Side_Effects.
4990 2011-08-02 Javier Miranda <miranda@adacore.com>
4992 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
4993 expansion of the condition. Required since the previous analysis was
4994 done with expansion disabled (see Resolve_Quantified_Expression) and
4995 hence checks were not inserted and record comparisons have not been
4998 2011-08-02 Ed Falis <falis@adacore.com>
5000 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
5003 2011-08-02 Bob Duff <duff@adacore.com>
5005 * opt.ads: Minor comment fix.
5007 2011-08-02 Bob Duff <duff@adacore.com>
5009 * sem_ch12.adb (Analyze_Package_Instantiation,
5010 Analyze_Subprogram_Instantiation): Turn off style checking while
5011 analyzing an instance. Whatever style checks that apply to the generic
5012 unit should apply, so it makes no sense to apply them in an instance.
5013 This was causing trouble when compiling an instance of a runtime
5014 unit that violates the -gnatyO switch.
5015 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
5016 one of the two case statements, causing spurious errors.
5018 2011-08-02 Robert Dewar <dewar@adacore.com>
5020 * uname.adb: Minor reformatting.
5021 * gnatcmd.adb: Minor reformatting.
5022 * exp_attr.adb: Minor reformatting.
5024 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5026 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
5027 No_Dispatching_Calls, do not look for the Assign primitive, because
5028 predefined primitives are not created in this case.
5030 2011-08-02 Bob Duff <duff@adacore.com>
5032 * stylesw.ads: Minor comment fixes.
5034 2011-08-02 Robert Dewar <dewar@adacore.com>
5036 * freeze.adb (Add_To_Result): New procedure.
5038 2011-08-02 Jose Ruiz <ruiz@adacore.com>
5040 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
5041 time, if the specific run-time routines for handling streams of strings
5042 are not available, use the default mechanism.
5044 2011-08-02 Arnaud Charlet <charlet@adacore.com>
5046 * s-regpat.ads: Fix typo.
5048 2011-08-02 Vincent Celier <celier@adacore.com>
5050 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
5051 not null, call it to create the in memory config project file without
5052 parsing an existing default config project file.
5054 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5056 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
5058 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5060 * sem_elim.adb: an abstract subprogram does not need an eliminate
5061 pragma for its descendant to be eliminable.
5063 2011-08-02 Ed Falis <falis@adacore.com>
5065 * init.c: revert to handling before previous checkin for VxWorks
5066 * s-intman-vxworks.adb: delete unnecessary declarations related to
5067 using Ada interrupt facilities for handling signals.
5068 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
5069 * s-intman-vxworks.ads: Import __gnat_install_handler as
5070 Initialize_Interrupts.
5071 * s-taprop-vxworks.adb: Delete Signal_Mask.
5072 (Abort_Handler): change construction of mask to unblock exception
5075 2011-08-02 Jerome Guitton <guitton@adacore.com>
5077 * a-except-2005.adb (Raise_From_Signal_Handler): Call
5078 Debug_Raise_Exception before propagation starts.
5080 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5082 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
5083 to Restriction_Check_Required.
5084 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
5085 * sem_res.adb (Resolve_Call): Likewise.
5086 * sem_attr.adb (Check_Stream_Attribute): Likewise.
5088 2011-08-02 Bob Duff <duff@adacore.com>
5090 * stylesw.ads: Update comment.
5091 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
5092 * errout.ads: Remove obsolete comment.
5094 2011-08-02 Javier Miranda <miranda@adacore.com>
5096 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
5097 (Set_Is_Safe_To_Reevaluate): new procedure.
5098 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
5099 assignment is allowed on safe-to-reevaluate variables.
5100 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
5101 temporary created to remove side effects in expressions that use
5102 the secondary stack as safe-to-reevaluate.
5103 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
5104 variables that are not true constants.
5106 2011-08-02 Robert Dewar <dewar@adacore.com>
5108 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
5109 sem_res.adb, sem_ch6.adb: Minor reformatting.
5111 2011-08-02 Jerome Guitton <guitton@adacore.com>
5113 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
5115 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5117 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
5118 not set Overridden_Operation if subprogram is an initialization
5121 2011-08-02 Yannick Moy <moy@adacore.com>
5123 * par-ch6.adb: Correct obsolete name in comments
5124 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
5125 which takes two message arguments (existing function takes one), with
5126 second message used for continuation.
5127 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
5128 block statements that originate from a source block statement, not
5129 generated block statements
5130 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
5131 symmetry with procedure case
5132 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
5133 function to issue an error in formal mode if a package specification
5134 contains more than one tagged type or type extension.
5135 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
5136 parameters matching formals of tagged types are objects (or ancestor
5137 type conversions of objects), not general expressions. Issue an error
5138 on view conversions that are not involving ancestor conversion of an
5140 (Resolve_Type_Conversion): in formal mode, issue an error on the
5141 operand of an ancestor type conversion which is not an object
5142 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
5143 procedure so that it works also for actuals of function calls
5144 (Is_Actual_Tagged_Parameter): new function which determines if its
5145 argument is an actual parameter of a formal of tagged type in a
5147 (Is_SPARK_Object_Reference): new function which determines if the tree
5148 referenced by its argument represents an object in SPARK
5150 2011-08-02 Robert Dewar <dewar@adacore.com>
5152 * sem_ch3.adb: Minor reformatting
5153 Minor comment addition
5154 Minor error msg text change
5156 2011-08-02 Javier Miranda <miranda@adacore.com>
5158 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
5159 function. Used to be more precise when we generate a variable plus one
5160 assignment to remove side effects in the evaluation of the Bound
5162 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
5163 of the bound expression to force its re-analysis and thus expand the
5164 associated transient scope (if required). Code cleanup replacing the
5165 previous code that declared the constant entity by an invocation to
5166 routine Force_Evaluation which centralizes this work in the frontend.
5168 2011-08-02 Robert Dewar <dewar@adacore.com>
5170 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
5171 (Base_Type): Now uses improved Is_Base_Type function
5172 * einfo.ads (Base_Type): Inline this function
5174 2011-08-02 Robert Dewar <dewar@adacore.com>
5176 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
5177 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
5179 2011-08-02 Arnaud Charlet <charlet@adacore.com>
5181 * gcc-interface/Make-lang.in: Update dependencies.
5182 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
5185 2011-08-02 Yannick Moy <moy@adacore.com>
5187 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
5188 non-simple expression used in delta constraint
5189 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
5190 index constraint which is not a subtype mark
5191 * par.adb: With and use Restrict
5192 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
5193 mode on component type which is not a subtype mark and default
5194 expression on component
5195 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
5196 of string which does not have a lower index bound equal to 1
5197 (Array_Type_Declaration): issue an error in formal mode on index or
5198 component type which is not a subtype mark, and on aliased keyword on
5200 (Derived_Type_Declaration): issue an error in formal mode on interface,
5201 limited or abstract type
5202 (Record_Type_Declaration): issue an error in formal mode on interface
5203 (Record_Type_Definition): issue an error in formal mode on tagged types
5204 and type extensions not declared in the specification of a library unit
5205 package; on null non-tagged record; on variant part
5207 2011-08-02 Vincent Celier <celier@adacore.com>
5209 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
5210 not declared for qualified library project when Library_Name is not
5211 declared, but Library_Dir is.
5213 2011-08-02 Robert Dewar <dewar@adacore.com>
5215 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
5216 pragmas (affects aspects [Component_]Default_Value
5217 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
5218 component type for the resolution
5220 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5222 * einfo.adb (Base_Type): Tune implementation for speed.
5224 2011-08-02 Robert Dewar <dewar@adacore.com>
5226 * freeze.adb: Minor reformatting.
5228 2011-08-02 Thomas Quinot <quinot@adacore.com>
5230 * scos.ads: Update comments.
5232 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5234 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
5235 base type, because the parent may be a subtype of a private type whose
5236 convention is established in a private part.
5238 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
5240 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
5241 statement in a block when the expansion of the return expression has
5242 created a finalization chain.
5243 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
5244 with the parent node.
5245 Add N_Extended_Return_Statement to handle the case where a transient
5246 object declaration appears in the Return_Object_Declarations list of
5247 an extended return statement.
5249 2011-08-02 Matthew Gingell <gingell@adacore.com>
5251 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
5252 unused parameter 'name'.
5254 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5256 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
5257 inherited operation, check whether its alias, which is the source
5258 operastion that it renames, has been marked eliminated.
5260 2011-08-02 Javier Miranda <miranda@adacore.com>
5262 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
5263 in-mode parameter whose type is an access type since it can be used to
5264 modify its designated object. Enforce code that handles as safe an
5265 access type that is not access-to-constant but it is the result of a
5266 previous removal of side-effects.
5267 (Remove_Side_Effects): Minor code reorganization of cases which require
5268 no action. Done to incorporate documentation on new cases uncovered
5269 working in this ticket: no action needed if this routine was invoked
5270 too early and the nodes are not yet decorated.
5271 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
5272 to routine Remove_Side_Effects by calls to Force_Evaluation since they
5273 were issued with actuals that are implicitly provided by
5276 2011-08-02 Robert Dewar <dewar@adacore.com>
5278 * sem_ch3.adb, sem_res.adb: Minor reformatting.
5280 2011-08-02 Yannick Moy <moy@adacore.com>
5282 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
5283 to issue an error in formal mode on attribute not supported in this mode
5284 (Analyze_Attribute): issue errors on standard attributes not supported
5286 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
5287 comment, and issue error in formal mode on modulus which is not a power
5289 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
5291 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
5293 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
5294 operator on modular type (except 'not').
5296 2011-08-02 Robert Dewar <dewar@adacore.com>
5298 * gnat_rm.texi: Minor reformatting.
5300 2011-08-02 Arnaud Charlet <charlet@adacore.com>
5302 * s-osinte-linux.ads: Minor comment update and reformatting.
5303 * i-cexten.ads: Make this unit pure, as for its parent.
5304 Will allow its usage in more contexts if needed.
5306 2011-08-02 Robert Dewar <dewar@adacore.com>
5308 * s-utf_32.ads: Minor comment fix.
5310 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5312 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
5313 operation of a tagged synchronized type, handle the case where the
5314 controlling argument is overloaded.
5316 2011-08-02 Yannick Moy <moy@adacore.com>
5318 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
5319 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
5320 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
5321 SPARK mode and formal verification mode on processing SPARK restriction
5322 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
5323 requiring consistency checking.
5325 2011-08-02 Robert Dewar <dewar@adacore.com>
5327 * sem_res.adb: Minor reformatting.
5329 2011-08-02 Robert Dewar <dewar@adacore.com>
5331 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5332 a-cforse.ads: Remove unneeded with of Ada.Containers
5333 Remove commented out pragma Inline's
5334 Move specifications of new subprograms to the actual specs
5336 2011-08-02 Yannick Moy <moy@adacore.com>
5338 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5339 a-cforse.ads: Update comments.
5341 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5343 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
5345 2011-08-02 Robert Dewar <dewar@adacore.com>
5347 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5348 a-cforse.ads, a-cofove.ads: Minor reformatting.
5350 2011-08-02 Claire Dross <dross@adacore.com>
5352 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
5353 a-cofove.ads: Add comments.
5355 2011-08-02 Yannick Moy <moy@adacore.com>
5357 * gnat_rm.texi: Document formal containers.
5359 2011-08-02 Emmanuel Briot <briot@adacore.com>
5361 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
5364 2011-08-02 Robert Dewar <dewar@adacore.com>
5366 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
5369 2011-08-02 Robert Dewar <dewar@adacore.com>
5371 * aspects.adb: New aspects Default_Value and Default_Component_Value
5372 New format of Aspect_Names table checks for omitted entries
5373 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
5374 handling of boolean aspects for derived types.
5375 New aspects Default_Value and Default_Component_Value
5376 New format of Aspect_Names table checks for omitted entries
5377 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
5378 (Has_Default_Value): New flag
5379 (Has_Default_Component_Value): New flag
5380 (Has_Default_Value): New flag
5381 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
5383 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
5384 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
5385 Default_Value and Default_Component_Value
5386 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
5387 New aspects Default_Value and Default_Component_Value
5388 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
5389 * sprint.adb: Print N_Aspect_Specification node when called from gdb
5391 2011-08-02 Vincent Celier <celier@adacore.com>
5393 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
5394 inherit library kind.
5396 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5398 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
5401 2011-08-02 Robert Dewar <dewar@adacore.com>
5403 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
5405 2011-08-02 Yannick Moy <moy@adacore.com>
5407 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
5409 2011-08-02 Robert Dewar <dewar@adacore.com>
5411 * impunit.adb: Add comment.
5413 2011-08-02 Yannick Moy <moy@adacore.com>
5415 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
5416 qualification of aggregates in formal mode
5417 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
5419 (Resolve_Aggregate): complete the test that an aggregate is adequately
5420 qualified in formal mode
5422 2011-08-02 Pascal Obry <obry@adacore.com>
5424 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
5425 * mlib-prj.adb: Supress warning when compiling binder generated file.
5426 (Build_Library): Supress all warnings when compiling the binder
5429 2011-08-02 Yannick Moy <moy@adacore.com>
5431 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
5433 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
5434 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
5435 Add with/use clauses to make Check_Formal_Restriction visible
5437 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5439 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
5440 in-parameters when type of the generic formal is private in the generic
5441 spec and non-private in the body.
5443 2011-08-02 Claire Dross <dross@adacore.com>
5445 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
5446 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
5447 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
5448 * impunit.adb, Makefile.rtl: Take new files into account.
5450 2011-08-02 Robert Dewar <dewar@adacore.com>
5452 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
5453 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
5455 2011-08-02 Yannick Moy <moy@adacore.com>
5457 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
5459 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
5460 matching static array bounds, taking into account the special case of
5462 * sem_ch3.adb: Typo in comment.
5464 2011-08-02 Yannick Moy <moy@adacore.com>
5466 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
5467 which issues an error in formal mode if its argument node is originally
5469 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
5470 has a discriminant specification so that it does not include the case
5472 (Derived_Type_Declaration): move here the test that a derived type has a
5473 discriminant specification
5474 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
5475 first element of a component association before accessing its choices
5476 (presence of component association is not enough)
5477 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
5478 declaration is a library item before accessing the next element in a
5479 list, as library items are not member of lists
5480 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
5481 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
5482 Check_Formal_Restriction whenever possible.
5484 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5486 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
5487 reference when needed.
5489 2011-08-02 Bob Duff <duff@adacore.com>
5491 * gnat_ugn.texi: Fix typo.
5493 2011-08-02 Vincent Celier <celier@adacore.com>
5495 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
5496 archive file name. Do not use the full path name of archives for Open
5499 2011-08-02 Robert Dewar <dewar@adacore.com>
5501 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
5502 Analyze_Aspect_Specifications
5504 (Analyze_Aspect_Specifications): New handling for boolean aspects
5505 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
5506 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
5507 sequence for Analyze_Aspect_Specifications
5508 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
5509 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
5511 2011-08-02 Robert Dewar <dewar@adacore.com>
5513 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
5514 aspects, since these no longer exist.
5516 2011-08-02 Robert Dewar <dewar@adacore.com>
5518 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
5519 semicolon, do not try to see if there are aspects following it.
5520 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
5523 2011-08-02 Robert Dewar <dewar@adacore.com>
5525 * sem_ch8.adb, aspects.ads: Minor reformatting.
5527 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5529 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
5530 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
5532 (Analyze_Aspect_Specifications): ...here. Call above procedure.
5534 2011-08-02 Yannick Moy <moy@adacore.com>
5536 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
5537 mode on subprogram declaration outside of package specification, unless
5538 it is followed by a pragma Import
5539 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
5540 Access_Type_Declaration): issue error in formal mode on access type
5541 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
5543 (Analyze_Object_Declaration): issue error in formal mode on object
5544 declaration which does not respect SPARK restrictions
5545 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
5546 declaration which does not respect SPARK restrictions
5547 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
5548 error in formal mode on digits or delta constraint
5549 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
5550 decimal fixed point type
5551 (Derived_Type_Declaration): issue error in formal mode on derived type
5552 other than type extensions of tagged record types
5553 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
5554 with check on access definition
5555 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
5556 mode on protected definition.
5557 (Analyze_Task_Definition): issue error in formal mode on task definition
5559 2011-08-02 Robert Dewar <dewar@adacore.com>
5561 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
5563 2011-08-02 Javier Miranda <miranda@adacore.com>
5565 * sem_ch6.adb (Can_Override_Operator): New function.
5566 (Verify_Overriding_Indicator): Add missing code to check overriding
5567 indicator in operators. Fixes regression.
5568 (Check_Overriding_Indicator): Minor reformating after replacing the
5569 code that evaluates if the subprogram can override an operator by
5570 invocations to the above new function.
5572 (Write_Field26_Name): Add missing code to ensure that, following
5573 the documentation in einfo.ads, this field is not shown as attribute
5574 "Static_Initialization" on non-dispatching functions.
5576 2011-08-02 Jose Ruiz <ruiz@adacore.com>
5578 * sem_res.adb (Resolve_Call): A call to
5579 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
5580 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
5581 i.e., when the second parameter is of type Time_Span.
5583 2011-08-02 Vincent Celier <celier@adacore.com>
5585 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
5586 with an archive instead of -L<library dir> -l<library name>.
5588 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5590 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
5591 mark the base types In_Use in addition to making the operations
5594 2011-08-02 Ed Falis <falis@adacore.com>
5596 * init.c: add and setup __gnat_signal_mask for the exception signals
5597 * s-inmaop-vxworks.adb: new file.
5598 * s-intman-vxworks.adb: remove unnecessary initializations and
5600 * s-intman-vxworks.ads: remove unnecessary variable
5601 * s-taprop-vxworks.adb: simplify signal initialization
5603 2011-08-02 Robert Dewar <dewar@adacore.com>
5605 * sem_ch8.adb: Minor code reorganization, comment updates.
5607 2011-08-02 Robert Dewar <dewar@adacore.com>
5609 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
5610 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
5612 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
5613 (Matching_Static_Array_Bounds): Moved here from Sem_Res
5615 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5617 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
5618 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
5619 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
5620 use_type_clauses, to handle more efficiently use_type and use_all_type
5622 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
5623 Ada2012 Use_All_Type clause.
5624 (Use_Class_Wide_Operations): new procedure.
5626 2011-08-02 Robert Dewar <dewar@adacore.com>
5628 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
5629 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
5630 expression to expression function.
5632 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5634 * sem_ch4.adb: transform simple Ada2012 membership into equality only
5635 if types are compatible.
5637 2011-08-02 Yannick Moy <moy@adacore.com>
5639 * sem_res.adb (Matching_Static_Array_Bounds): new function which
5640 returns True if its argument array types have same dimension and same
5641 static bounds at each index.
5642 (Resolve_Actuals): issue an error in formal mode on actuals passed as
5643 OUT or IN OUT paramaters which are not view conversions in SPARK.
5644 (Resolve_Arithmetic_Op): issue an error in formal mode on
5645 multiplication or division with operands of fixed point types which are
5646 not qualified or explicitly converted.
5647 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
5648 Boolean or array type (except String) operands.
5649 (Resolve_Equality_Op): issue an error in formal mode on equality
5650 operators for array types other than String with non-matching static
5652 (Resolve_Logical_Op): issue an error in formal mode on logical operators
5653 for array types with non-matching static bounds. Factorize the code in
5654 Matching_Static_Array_Bounds.
5655 (Resolve_Qualified_Expression): issue an error in formal mode on
5656 qualified expressions for array types with non-matching static bounds.
5657 (Resolve_Type_Conversion): issue an error in formal mode on type
5658 conversion for array types with non-matching static bounds
5660 2011-08-02 Robert Dewar <dewar@adacore.com>
5662 * par-ch10.adb: Minor code reorganization (use Nkind_In).
5664 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5666 * par-ch9.adb: save location of entry for proper error message.
5668 2011-08-02 Javier Miranda <miranda@adacore.com>
5670 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
5671 (Use_Full_View) which permits this routine to climb through the
5672 ancestors using the full-view of private parents.
5673 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
5674 Use_Full_View to true in calls to Is_Ancestor.
5675 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
5676 true in call to Is_Ancestor.
5677 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
5678 Use_Full_View to true in call to Is_Ancestor.
5679 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
5680 call to Is_Ancestor.
5681 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
5682 Use_Full_View to true in calls to Is_Ancestor.
5683 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
5684 Make_Select_Specific_Data_Table, Register_Primitive,
5685 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
5686 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
5687 to true in call to Is_Ancestor.
5688 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
5689 Use_Full_View to true in calls to Is_Ancestor.
5691 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
5692 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
5694 2011-08-02 Robert Dewar <dewar@adacore.com>
5696 * gnat_rm.texi: Minor reformatting.
5697 * sem_prag.adb: Minor reformatting.
5699 2011-08-02 Tristan Gingold <gingold@adacore.com>
5701 * vms_data.ads: Add VMS qualifier for -gnateP.
5703 2011-08-02 Robert Dewar <dewar@adacore.com>
5705 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
5706 * par-ch7.adb (P_Package): Proper placement of aspects for package
5708 * par-endh.adb (Check_End): Ad Is_Sloc parameter
5709 (End_Statements): Add Is_Sloc parameterr
5710 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
5711 (Check_End): Ad Is_Sloc parameter
5712 (End_Statements): Add Is_Sloc parameterr
5714 2011-08-02 Vincent Celier <celier@adacore.com>
5716 * ug_words: Add VMS qualifier equivalent to -gnateP:
5717 /SYMBOL_PREPROCESSING.
5719 2011-08-02 Jose Ruiz <ruiz@adacore.com>
5721 * gnat-style.texi: For hexadecimal numeric literals the typical
5722 grouping of digits is 4 to represent 2 bytes.
5723 A procedure spec which is split into several lines is indented two
5726 2011-08-02 Yannick Moy <moy@adacore.com>
5728 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
5729 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
5730 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
5732 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
5733 choice in array aggregate
5734 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
5736 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
5737 positional and named aggregate for record, or others in record
5738 aggregate, or multiple choice in record aggregate
5739 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
5740 array operands to logical operations AND, OR and XOR do not have the
5741 same static lower and higher bounds
5742 * sem_ch5.adb, sinfo.ads: Correct typos in comments
5744 2011-08-01 Robert Dewar <dewar@adacore.com>
5746 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
5747 Replaces Last_Source_Node_In_Sequence.
5748 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
5749 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
5750 parens and blank in string (this was inconsistently implemented).
5752 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
5753 blank in string (this was inconsistently implemented).
5755 (Set_Global_Switches): Set formal mode switches appropriately
5756 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
5758 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
5759 call Set_Error_Msg_Lang to set "spark" as language name.
5760 * par.adb: Remove unnecessary call to set formal language for errout
5761 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
5762 appropriately and call Set_Error_Msg_Lang to set "spark" as language
5764 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
5765 calls to it, moved after resolution so that types are known
5766 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
5767 result of concatenation is not of type String
5768 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
5769 concatenation is not properly restricted
5770 * gnat_rm.texi: Add doc on pragma Spark_95.
5771 * gcc-interface/Makefile.in: Remove obsolete target pairs for
5772 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
5773 * gcc-interface/Make-lang.in: Update dependencies.
5775 2011-08-01 Javier Miranda <miranda@adacore.com>
5777 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
5778 condition that detects if the overridden operation must replace an
5781 2011-08-01 Javier Miranda <miranda@adacore.com>
5783 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
5784 code declarations inserted by Insert_Actions in each alternative of the
5785 N_Case_Expression node.
5787 2011-08-01 Robert Dewar <dewar@adacore.com>
5789 * sem_ch6.adb: Minor code reorganization.
5790 * sem_util.adb: Minor reformatting.
5792 2011-08-01 Pascal Obry <obry@adacore.com>
5794 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
5795 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
5797 2011-08-01 Yannick Moy <moy@adacore.com>
5799 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
5800 literal or operator symbol which is prefixed
5801 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
5802 mode on access attributes.
5803 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
5804 that concatenation operands are properly restricted in formal mode
5805 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
5806 Analyze_Concatenation_Operand. Issue an error in formal mode if the
5807 result of the concatenation has a type different from String.
5808 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
5809 Analyze_Quantified_Expression, Analyze_Slice,
5810 Analyze_Null): issue an error in formal mode on unsupported constructs
5812 (Analyze_Block_Statement): only issue error on source block statement
5813 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
5814 function which returns the last node in a list of nodes for which
5815 Comes_From_Source returns True, if any
5816 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
5817 Last_Source_Node_In_Sequence
5818 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
5819 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
5820 mode on unsupported constructs
5821 * sem_ch9.adb Do not return after issuing error in formal mode, as the
5822 rest of the actions may be needed later on since the error is marked as
5824 * sinfo.ads: Typos in comments.
5826 2011-08-01 Pascal Obry <obry@adacore.com>
5828 * projects.texi: Minor editing.
5830 2011-08-01 Yannick Moy <moy@adacore.com>
5832 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
5833 insertion character ~~
5834 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
5835 (Set_Error_Msg_Lang): new procedure which fixes the language for use
5836 with insertion character ~~
5837 (Set_Msg_Text): treat insertion character ~~
5838 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
5839 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
5840 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
5841 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
5842 errors related to the formal language restriction not serious
5843 (insertion character |).
5844 * par.adb (Par): set formal language for error messages if needed
5845 * sem_ch6.adb (Check_Missing_Return): take into account possible
5846 generated statements at the end of the function
5847 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
5848 enumeration value to define a new pragma SPARK_95
5849 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
5850 SPARK_Version): new type and variables to store the SPARK version
5852 (SPARK_Mode): return True when SPARK_Version is set
5853 * par-prag.adb: Correct indentation
5854 (Prag): take Pragma_SPARK_95 into account
5855 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
5858 2011-08-01 Robert Dewar <dewar@adacore.com>
5860 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
5861 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
5862 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
5864 2011-08-01 Pascal Obry <obry@adacore.com>
5866 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
5867 Target_Name to Get_Path call.
5868 (Parse_Single_Project): Likewise.
5869 (Post_Parse_Context_Clause): Likewise.
5870 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
5871 Call Initialise_Project_Path with the proper Target_Name.
5872 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
5874 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
5875 with the proper Target_Name.
5876 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
5878 (Parse_Project_And_Apply_Config): Likewise.
5879 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
5880 This is fine as this part of the code is supporting only native
5882 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
5883 is fine as this part of the code is supporting only native compilation.
5885 2011-08-01 Yannick Moy <moy@adacore.com>
5887 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
5888 of homonym, unless the homonym is one of the cases allowed in SPARK
5889 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
5890 package declaration occurring after a body.
5892 2011-08-01 Robert Dewar <dewar@adacore.com>
5894 * checks.adb, exp_ch4.adb: Minor reformatting.
5896 2011-08-01 Javier Miranda <miranda@adacore.com>
5898 * einfo.ads (Access_Disp_Table): Fix documentation.
5899 (Dispatch_Table_Wrappers): Fix documentation.
5901 2011-08-01 Pascal Obry <obry@adacore.com>
5903 * prj-env.adb, prj-env.ads: Minor reformatting.
5905 2011-08-01 Yannick Moy <moy@adacore.com>
5907 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
5908 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
5909 procedures out of these packages.
5910 * errout.ads, errout.adb
5911 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
5912 procedures in of this package
5913 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
5914 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
5915 on misplaced later vs initial declarations, like in Ada 83
5916 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
5917 formal mode on attribute of private type whose full type declaration
5919 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
5920 package declaration inside a package specification
5921 (Analyze_Full_Type_Declaration): issue error in formal mode on
5922 controlled type or discriminant type
5923 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
5924 user-defined operator means that it should come from the source
5925 (New_Overloaded_Entity): issue error in formal mode on overloaded
5927 * sem_ch6.ads, sem_ch13.ads: typos in comments.
5929 2011-08-01 Thomas Quinot <quinot@adacore.com>
5931 * atree.adb: Minor reformatting.
5932 * checks.adb: Minor reformatting.
5934 2011-08-01 Vincent Celier <celier@adacore.com>
5936 * s-parame-vms-ia64.ads: Fix typo in comment
5938 * s-parame-vms-restrict.ads: Removed, unused.
5940 2011-08-01 Javier Miranda <miranda@adacore.com>
5943 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
5945 (Constrain_Index): Remove side effects in the evaluation of the bounds.
5946 * sem_ch3.ads, sem_ch3.adb
5947 (Is_Constant_Bound): New extended version of the subprogram that was
5948 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
5949 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
5950 * sem_aux.ads (Constant_Value): Fix typo in comment.
5951 * checks.adb (Generate_Index_Checks): New implementation which, for
5952 array objects with constant bounds, generates the runtime check
5953 referencing the bounds of the array type. For other cases this routine
5954 provides its previous behavior obtaining such values from the array
5956 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
5958 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
5959 we cannot have semantic interpretations of the new node.
5961 2011-08-01 Ed Schonberg <schonberg@adacore.com>
5963 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
5966 2011-08-01 Arnaud Charlet <charlet@adacore.com>
5968 * sem_ch8.adb: Minor code editing.
5969 * s-vxwext.adb: Remove trailing space.
5970 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
5971 consistency with other files.
5973 2011-08-01 Thomas Quinot <quinot@adacore.com>
5975 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
5977 2011-08-01 Ed Schonberg <schonberg@adacore.com>
5979 * par-ch10.adb: reject parameterized expressions as compilation unit.
5980 * sem_ch4.adb: handle properly conditional expression with overloaded
5981 then_clause and no else_clause.
5983 2011-08-01 Tristan Gingold <gingold@adacore.com>
5985 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
5986 like done by System.Aux_DEC.
5987 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
5989 2011-08-01 Yannick Moy <moy@adacore.com>
5991 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
5992 missing label at end of declaration (subprogram or package)
5993 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
5994 of positional and named parameter association
5995 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
5996 Error_Msg_SP which adds a prefix to the error message giving the name
5997 of the formal language analyzed
5998 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
5999 access result type in subprogram, unconstrained array as result type,.
6000 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
6002 * sem_ch8.adb: Code clean up.
6004 2011-08-01 Javier Miranda <miranda@adacore.com>
6006 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
6007 * einfo.ads (Access_Disp_Table): Fix documentation.
6008 (Dispatch_Table_Wrappers): Fix documentation.
6009 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
6010 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
6011 to enforce the documentation of this attribute.
6012 (Set_Is_Interface): Cleanup the assertion.
6013 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
6014 the Underlying_Type entity before reading attribute Access_Disp_Table.
6015 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
6016 Locate the Underlying_Type before reading attribute Access_Disp_Table.
6017 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
6018 the Underlying_Type entity before reading attribute Access_Disp_Table.
6019 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
6020 Locate the Underlying_Type entity before reading attribute
6023 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6025 * s-poosiz.ads: Additional overriding indicators.
6027 2011-08-01 Yannick Moy <moy@adacore.com>
6029 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
6031 (Analyze_Iteration_Scheme): issue error in formal mode when loop
6032 parameter specification does not include a subtype mark.
6033 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
6034 formal mode on abstract subprogram.
6035 (Analyze_Subprogram_Specification): issue error in formal mode on
6036 user-defined operator.
6037 (Process_Formals): issue error in formal mode on access parameter and
6039 * sem_ch9.adb (Analyze_Abort_Statement,
6040 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
6041 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
6042 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
6043 Analyze_Requeue, Analyze_Selective_Accept,
6044 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
6045 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
6046 issue error in formal mode on user-defined raise statement.
6048 2011-08-01 Thomas Quinot <quinot@adacore.com>
6050 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
6051 declaration being hidden when overriding an implicit inherited
6053 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
6054 (-gnats), do not complain about a source file that contains only a
6057 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6059 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
6060 variable if already set.
6062 2011-08-01 Arnaud Charlet <charlet@adacore.com>
6064 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
6065 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
6066 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
6067 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
6068 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
6069 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
6070 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
6071 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
6072 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
6073 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
6074 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
6075 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
6076 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
6077 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
6078 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
6079 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
6080 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
6081 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
6082 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
6083 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
6084 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
6085 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
6086 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
6087 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
6088 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
6089 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
6090 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
6091 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
6092 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
6093 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
6094 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
6095 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
6096 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
6097 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
6098 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
6099 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
6100 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
6101 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
6102 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
6103 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
6104 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
6105 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
6106 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
6107 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
6108 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
6109 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
6110 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
6111 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
6112 s-osinte-mingw.ads: Update to GPLv3 run-time license.
6113 Use GNAT instead of GNARL.
6115 2011-08-01 Bob Duff <duff@adacore.com>
6117 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
6118 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
6119 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
6122 2011-08-01 Yannick Moy <moy@adacore.com>
6124 * debug.adb (d.D) reverve flag for the SPARK mode
6125 (d.E) reverve flag for SPARK generation mode
6126 (d.F) reverve flag for Why generation mode
6127 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
6128 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
6129 functions which return True when the corresponding modes are set
6130 (Formal_Language): return "spark" or "alfa" when in formal verification
6132 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
6133 Error_Msg to prefix the error message with a tag giving the formal
6135 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
6136 message with a tag giving the formal language
6137 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
6139 (Analyze_Case_Statement): issue error in formal mode on case statement
6140 with a single "others" case alternative
6141 (Analyze_Exit_Statement): issue errors in formal mode on exit
6142 statements which do not respect SPARK restrictions
6143 (Analyze_Goto_Statement): issue error in formal mode on goto statement
6144 (Check_Unreachable_Code): always issue an error (not a warning) in
6145 formal mode on unreachable code (concerns both code after an infinite
6146 loop and after an unconditional jump, both not allowed in SPARK)
6147 * sem_ch6.adb (Analyze_Return_Statement): add call to
6148 Set_Return_Present for a procedure containing a return statement
6149 (already done for functions in Analyze_Function_Return)
6150 (Analyze_Function_Return): issue error in formal mode on extended
6151 return or if return is not last statement in function
6152 (Check_Missing_Return): issue error in formal mode if function does
6153 not end with return or if procedure contains a return
6154 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
6155 function to detect if there is an inner scope of its parameter S which
6158 2011-08-01 Thomas Quinot <quinot@adacore.com>
6160 * sem_ch6.ads: Minor reformatting.
6162 2011-08-01 Javier Miranda <miranda@adacore.com>
6164 * sem_util.adb (Abstract_Interface_List): Complete condition when
6165 processing private type declarations to avoid reading unavailable
6167 (Is_Synchronized_Tagged_Type): Complete condition when processing
6168 private extension declaration nodes to avoid reading unavailable
6171 2011-08-01 Thomas Quinot <quinot@adacore.com>
6173 * sem_ch3.adb: Minor reformatting.
6175 2011-08-01 Thomas Quinot <quinot@adacore.com>
6177 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
6178 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
6179 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
6180 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
6181 for VMS, instead parametrize the common implementation with
6182 System.Parameters declarations.
6184 2011-08-01 Eric Botcazou <ebotcazou@adacore.com>
6186 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
6188 2011-08-01 Tristan Gingold <gingold@adacore.com>
6190 * seh_init.c: Fix SEH handler installation on win64.
6192 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6194 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
6195 double analysis of an anonymous access to subprogram, because it can
6196 lead to improper sharing of profiles and a back-end crash.
6198 2011-08-01 Robert Dewar <dewar@adacore.com>
6200 * make.adb, sem_ch4.adb: Minor reformatting.
6201 * gcc-interface/Make-lang.in: Update dependencies.
6202 * sem_util.adb, exp_ch5.adb: Minor reformatting.
6204 2011-08-01 Arnaud Charlet <charlet@adacore.com>
6206 * gnat_rm.texi: Fix definition of Long_Integer.
6208 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6210 * exp_aggr.adb: check limit size of static aggregate unconditionally,
6211 to prevent storage exhaustion.
6212 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
6213 finalized is a function body, insert the cleanup code before the final
6214 return statement, to prevent spurious warnings.
6215 * s-pooglo.ads: add overriding indicator.
6217 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6219 * sem_ch4.adb (Operator_Check): improve error message when both a
6220 with_clause and a use_clause are needed to make operator usage legal.
6221 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
6222 determine whether a compilation unit is visible within an other,
6223 either through a with_clause in the current unit, or a with_clause in
6224 its library unit or one one of its parents.
6226 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6228 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
6229 over an arbitrary expression of an array or container type.
6230 * lib-xref.adb: clarify comment.
6232 2011-08-01 Bob Duff <duff@adacore.com>
6234 * einfo.ads: Minor reformatting.
6235 * debug.adb: Minor comment improvement.
6237 2011-08-01 Javier Miranda <miranda@adacore.com>
6239 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
6240 consider hidden subprograms as valid candidates.
6242 2011-08-01 Arnaud Charlet <charlet@adacore.com>
6244 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
6246 2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
6248 * gnat_ugn.texi: Fix typo.
6250 2011-08-01 Robert Dewar <dewar@adacore.com>
6252 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
6253 lib-xref.adb: Minor reformatting
6255 2011-08-01 Gary Dismukes <dismukes@adacore.com>
6257 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
6258 when to generate a call to Move_Final_List.
6259 (Has_Controlled_Parts): Remove this function.
6261 2011-08-01 Geert Bosch <bosch@adacore.com>
6263 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
6266 2011-08-01 Thomas Quinot <quinot@adacore.com>
6268 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
6269 explicit raise of a predefined exception as Comes_From_Source if the
6270 original N_Raise_Statement comes from source.
6272 2011-08-01 Robert Dewar <dewar@adacore.com>
6274 * sinfo.ads: Add comment.
6275 * sem_ch6.adb: Minor reformatting.
6277 2011-08-01 Robert Dewar <dewar@adacore.com>
6279 * freeze.adb (Freeze_Entity): Refine check for bad component size
6280 clause to avoid rejecting confirming clause when atomic/aliased present.
6282 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6284 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
6285 better determine whether an entity reference is a write.
6286 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
6288 * lib-xref.adb (Output_References): Do no suppress a read reference at
6289 the same location as an immediately preceeding modify-reference, to
6290 handle properly in-out actuals.
6292 2011-08-01 Tristan Gingold <gingold@adacore.com>
6294 * env.c (__gnat_setenv) [VMS]: Refine previous change.
6296 2011-08-01 Quentin Ochem <ochem@adacore.com>
6298 * i-cstrin.adb (New_String): Changed implementation, now uses only the
6299 heap to compute the result.
6301 2011-08-01 Robert Dewar <dewar@adacore.com>
6303 * atree.ads: Minor reformatting.
6305 2011-08-01 Emmanuel Briot <briot@adacore.com>
6307 * g-expect.adb (Get_Command_Output): Fix memory leak.
6309 2011-08-01 Geert Bosch <bosch@adacore.com>
6311 * cstand.adb (P_Float_Type): New procedure to print the definition of
6312 predefined fpt types.
6313 (P_Mixed_Name): New procedure to print a name using mixed case
6314 (Print_Standard): Use P_Float_Type for printing floating point types
6315 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
6316 precision IEEE float.
6318 2011-08-01 Thomas Quinot <quinot@adacore.com>
6320 * sem_ch3.adb: Minor reformatting.
6322 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6324 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
6325 the completion of a generic function, insert the new body rather than
6326 rewriting the original.
6328 2011-08-01 Yannick Moy <moy@adacore.com>
6330 * sinfo.ads, errout.ads: Typos in comments.
6332 2011-08-01 Robert Dewar <dewar@adacore.com>
6334 * par-endh.adb: Minor reformatting.
6336 2011-08-01 Robert Dewar <dewar@adacore.com>
6338 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
6339 (Pre_Post_Aspects): New subtype.
6340 * par-ch12.adb (P_Generic): New syntax for aspects in packages
6341 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
6342 * par-ch7.adb (P_Package): Remove Decl parameter
6343 (P_Package): Handle new syntax for aspects (before IS)
6344 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
6346 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
6347 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
6348 (P_Package): Remove Decl parameter
6349 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
6351 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
6353 * sem_util.ads, sem_util.adb (Static_Boolean): New function
6354 * sinfo.ads: Document new syntax for aspects in packages etc.
6355 * sprint.adb: Handle new syntax of aspects before IS in package
6357 2011-08-01 Thomas Quinot <quinot@adacore.com>
6359 * atree.ads: Minor reformatting.
6360 * sem_prag.adb: Minor reformatting.
6362 2011-08-01 Robert Dewar <dewar@adacore.com>
6364 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
6365 case expr alternative.
6367 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6369 * sem_ch12.adb: Fix typo.
6371 2011-08-01 Geert Bosch <bosch@adacore.com>
6373 * sem_prag.adb (Check_No_Link_Name): New procedure.
6374 (Process_Import_Or_Interface): Use Check_No_Link_Name.
6375 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
6376 instead of Standard_Long_Long_Float_Size global. Preparation for
6377 eventual removal of per type constants.
6378 * exp_util.ads (Get_Stream_Size): New function returning the stream
6379 size value of subtype E.
6380 * exp_util.adb (Get_Stream_Size): Implement new function.
6381 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
6383 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
6385 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
6387 2011-08-01 Geert Bosch <bosch@adacore.com>
6389 * cstand.adb: Fix comments.
6390 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
6393 2011-08-01 Robert Dewar <dewar@adacore.com>
6395 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
6397 2011-08-01 Geert Bosch <bosch@adacore.com>
6399 * atree.ads: Fix comment.
6401 2011-08-01 Robert Dewar <dewar@adacore.com>
6403 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
6404 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
6405 * par.adb: Add with for Namet.Sp.
6406 * par-tchk.adb: Minor reformatting.
6408 2011-08-01 Vincent Celier <celier@adacore.com>
6410 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
6411 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
6412 of the init procedure of a SAL.
6413 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
6416 2011-08-01 Thomas Quinot <quinot@adacore.com>
6418 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
6421 2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6423 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
6425 2011-08-01 Thomas Quinot <quinot@adacore.com>
6427 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
6428 conformant with its spec (return True only for types that have
6429 an overriding Initialize primitive operation that prevents them from
6430 having preelaborable initialization).
6431 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
6432 initialization for controlled types in Ada 2005 or later mode.
6434 2011-08-01 Robert Dewar <dewar@adacore.com>
6436 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
6438 (Same_Aspect): New function.
6439 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
6440 Type_Invariant, Precondition, Postcondition.
6441 * snames.ads-tmpl: Add Name_Type_Invariant.
6443 2011-08-01 Robert Dewar <dewar@adacore.com>
6445 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
6447 (Freeze_All_Ent): Fix error in handling inherited aspects.
6448 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
6449 already analyzed, but don't skip entire processing of a declaration,
6450 that's wrong in some cases of declarations being rewritten.
6451 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
6452 Don't delay for integer, string literals
6453 Treat predicates in usual manner for delay, remove special case code,
6455 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
6456 (Build_Predicate_Function): Update saved expression in aspect
6457 (Build_Invariant_Procedure): Update saved expression in aspect
6458 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
6459 of replacement of discriminant references if the reference is simple.
6461 2011-08-01 Robert Dewar <dewar@adacore.com>
6463 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
6464 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
6465 Static_Predicate and Dynamic_Predicate.
6466 (Build_Predicate_Function): Add processing for Static_Predicate
6467 and Dynamic_Predicate.
6468 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
6469 (From_Static_Predicate): New flag
6470 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
6472 2011-08-01 Robert Dewar <dewar@adacore.com>
6474 * usage.adb: Documentation cleanup for Ada version modes in usage.
6475 * expander.adb: Minor reformatting.
6477 2011-08-01 Robert Dewar <dewar@adacore.com>
6479 * atree.ads: Minor comment fix.
6480 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
6481 a-witeio.ads, sem_prag.adb: Minor reformatting.
6483 2011-08-01 Doug Rupp <rupp@adacore.com>
6485 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
6486 pointers. Use descrip.h header file for convenience. Add some
6489 2011-08-01 Robert Dewar <dewar@adacore.com>
6491 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
6492 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
6493 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
6495 (Check_Aspect_At_End_Of_Declarations): New procedure
6496 (Analye_Aspect_Specification): Minor changes for above procedures
6497 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
6498 specification node as well.
6500 2011-08-01 Pascal Obry <obry@adacore.com>
6502 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
6503 Windows files. Use GetFilesAttributes() in this case to check for file
6504 existence instead of returning with an error code.
6506 2011-08-01 Vincent Celier <celier@adacore.com>
6508 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
6509 High is above Source length.
6511 2011-08-01 Robert Dewar <dewar@adacore.com>
6513 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
6515 2011-08-01 Robert Dewar <dewar@adacore.com>
6517 * aspects.ads (Boolean_Aspects): New subtype.
6518 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
6519 for derived types in cases where the parent type and derived type have
6521 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
6522 with aspects when parent type also has aspects.
6523 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
6524 boolean expression at this point).
6525 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
6526 accordance with final decision on the Ada 2012 feature.
6527 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
6529 2011-08-01 Matthew Heaney <heaney@adacore.com>
6531 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
6533 2011-08-01 Pascal Obry <obry@adacore.com>
6535 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
6536 Fix Replace_Slice when High is above current string size.
6537 (Replace_Slice): Fix DL computation when High is above current
6540 2011-08-01 Gary Dismukes <dismukes@adacore.com>
6542 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
6544 2011-08-01 Matthew Heaney <heaney@adacore.com>
6546 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
6549 2011-08-01 Pascal Obry <obry@adacore.com>
6551 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
6554 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6556 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
6557 access to protected subprograms in generic bodies.
6558 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
6559 protected type, indicate that the convention of the subprogram is
6560 Convention_Protected, because it may be used in subsequent declarations
6561 within the protected declaration.
6563 2011-08-01 Vincent Celier <celier@adacore.com>
6565 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
6566 and "final" procedures when the name of the library is "ada", to avoid
6567 duplicate symbols "adainit" and "adafinal" in executables.
6569 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6571 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
6572 quantified expression that appears within a postcondition and uses the
6573 Ada2012 'Result attribute.
6575 2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6577 * init.c (__gnat_error_handler): Cast reason to int.
6578 (__gnat_install_handler): Explain sa_sigaction use.
6580 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
6582 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
6583 subprogram has copy-in copy-out parameters, try to promote the mode of
6584 the return type if it is passed in registers.
6586 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
6588 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
6589 left operand as addressable.
6591 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
6593 * gcc-interface/gigi.h (build_function_stub): Remove.
6594 (build_return_expr): Likewise.
6595 (convert_vms_descriptor): Declare.
6596 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
6597 (build_function_stub): Move to...
6598 * gcc-interface/utils2.c (build_return_expr): Move to...
6599 * gcc-interface/trans.c (build_function_stub): ...here.
6600 (build_return_expr): ...here.
6601 (Subprogram_Body_to_gnu): Add local variable for language_function.
6602 Disconnect the parameter attributes cache, if any, once done with it.
6603 Call end_subprog_body only after setting the end_locus.
6604 Build the stub associated with the function, if any, at the very end.
6605 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
6606 variables and streamline control flow.
6608 2011-07-23 Arnaud Charlet <charlet@adacore.com>
6611 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
6614 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6617 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
6618 Assign to act.sa_sigaction.
6619 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
6620 current->return_address to char * before arithmetic.
6622 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6624 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
6625 Correct argument types.
6626 Extract code from reason.
6627 (__gnat_install_handler): Assign to act.sa_sigaction.
6629 2011-07-21 Eric Botcazou <ebotcazou@adacore.com>
6631 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
6632 (GNAT1_OBJS): ...here.
6634 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
6637 * g-socthi-mingw.adb (Fill): Fix formatting.
6639 * gcc-interface/gigi.h: Move around comment.
6641 2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6644 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
6646 2011-07-14 Florian Weimer <fw@deneb.enyo.de>
6649 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
6651 2011-07-13 Eric Botcazou <ebotcazou@adacore.com>
6653 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
6654 range comparison if Pmode is SImode.
6656 2011-07-12 Laurent GUERBY <laurent@guerby.net>
6657 Eric Botcazou <ebotcazou@adacore.com>
6659 * adadecode.c: Wrap up in extern "C" block.
6660 * adadecode.h: Likewise.
6661 * adaint.c: Likewise. Remove 'const' keyword.
6662 * adaint.h: Likewise.
6664 * atree.h: Likewise.
6666 * cstreams.c: Likewise.
6670 * final.c: Likewise.
6672 * initialize.c: Likewise.
6674 * namet.h: Likewise.
6675 * nlists.h: Likewise.
6676 * raise.c: Likewise.
6677 * raise.h: Likewise.
6678 * repinfo.h: Likewise.
6679 * seh_init.c: Likewise.
6680 * targext.c: Likewise.
6681 * tracebak.c: Likewise.
6682 * uintp.h: Likewise.
6683 * urealp.h: Likewise.
6684 * xeinfo.adb: Wrap up generated C code in extern "C" block.
6685 * xsinfo.adb: Likewise.
6686 * xsnamest.adb: Likewise.
6687 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
6688 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
6689 * gcc-interface/misc.c: Likewise.
6690 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
6691 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
6692 ada/targext.o here...
6693 (GNAT_ADA_OBJS): ...and not here.
6694 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
6695 (GNATBIND_OBJS): Reorder.
6697 2011-07-07 Richard Henderson <rth@redhat.com>
6699 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
6700 dwarf2out_frame_init.
6702 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
6704 * gcc-interface/misc.c (gnat_init): Tweak previous change.
6706 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6709 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
6711 2011-07-06 Richard Guenther <rguenther@suse.de>
6713 * gcc-interface/misc.c (gnat_init): Merge calls to
6714 build_common_tree_nodes and build_common_tree_nodes_2.
6715 Re-initialize boolean_false_node.
6717 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
6718 Olivier Hainque <hainque@adacore.com>
6719 Nicolas Setton <setton@adacore.com>
6721 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
6722 the type according to the ARTIFICIAL_P parameter.
6723 (create_type_decl): Likewise.
6724 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
6726 2011-07-01 Eric Botcazou <ebotcazou@adacore.com>
6728 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
6729 (gnatbind): Likewise.
6731 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6733 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
6735 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6737 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
6738 local variable throughout. Remove useless call to Base_Type.
6739 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
6740 Take it also into account for the volatileness of the field. Set the
6741 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
6743 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6745 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
6746 on a dereference built for a by-ref object if it has an address clause.
6748 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6750 * einfo.ads (Address_Taken): Document use for the second argument of
6751 Asm_Input and Asm_Output attributes.
6752 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
6753 argument is an entity name, then set Address_Taken on it.
6754 <Attribute_Asm_Output>: Likewise.
6755 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
6756 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
6757 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
6758 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
6760 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
6763 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
6765 2011-06-14 Joseph Myers <joseph@codesourcery.com>
6767 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
6768 (ada/utils.o): Update dependencies.
6769 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
6770 ../../../libcpp/libcpp.a.
6771 * gcc-interface/utils.c: Include common/common-target.h.
6772 (process_attributes): Use targetm_common.have_named_sections.
6774 2011-06-07 Richard Guenther <rguenther@suse.de>
6776 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
6779 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
6781 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
6782 TREE_THIS_NOTRAP flag.
6784 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
6786 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
6789 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
6791 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
6792 constants whose full view has discriminants specially.
6794 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
6796 * gcc-interface/utils.c: Include diagnostic.h.
6797 (gnat_write_global_declarations): Output debug information for all
6798 global type declarations before finalizing the compilation unit.
6799 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
6801 2011-05-25 Jakub Jelinek <jakub@redhat.com>
6803 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
6805 2011-05-25 Kai Tietz <ktietz@redhat.com>
6807 * adaint.c (__gnat_to_canonical_file_list_next): Use array
6808 initialization instead of const/none-const pointer assignment.
6810 2011-05-24 Joseph Myers <joseph@codesourcery.com>
6812 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
6813 $(EXTRA_GNAT1_OBJS).
6814 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
6815 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
6816 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
6817 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
6818 libcommon-target.a instead of prefix.o.
6820 2011-05-21 Joseph Myers <joseph@codesourcery.com>
6823 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
6825 2011-05-20 Joseph Myers <joseph@codesourcery.com>
6827 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
6828 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
6829 instead of version.o.
6831 2011-05-18 Kai Tietz <ktietz@redhat.com>
6833 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
6834 boolean_false_node instead of integer_zero_node.
6835 (convert_with_check): Likewise.
6836 * gcc-interface/decl.c (choices_to_gnu): Likewise.
6838 2011-05-12 Eric Botcazou <ebotcazou@adacore.com>
6840 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
6841 type of the parameter is an unconstrained array, convert the actual to
6842 the type of the formal in the In Out and Out cases as well.
6844 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
6846 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
6847 call build_function_type_array or build_varargs_function_type_array
6849 (create_subprog_type): Don't call build_function_type; call
6850 build_function_type_vec instead.
6852 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
6854 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
6855 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
6856 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
6858 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
6860 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
6862 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
6863 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
6865 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
6867 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
6869 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
6871 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
6872 instead of accessing TYPE_ARG_TYPES directly.
6873 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
6875 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
6878 * gcc-interface/gigi.h (get_variant_part): Declare.
6879 * gcc-interface/decl.c (get_variant_part): Make global.
6880 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
6881 types have the same constant size, are record types and T1 has a
6882 variant part while T2 doesn't.
6884 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
6886 * gcc-interface/utils.c (begin_subprog_body): Do not call
6888 (end_subprog_body): Likewise.
6890 2011-05-04 Richard Guenther <rguenther@suse.de>
6892 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
6894 (pos_to_constructor): Likewise.
6896 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6897 Eric Botcazou <ebotcazou@adacore.com>
6899 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
6900 of build_function_type. Adjust calls to...
6901 (build_raise_check): ...this. Do not take a void_tree parameter.
6902 Call build_function_type_list instead of build_function_type.
6903 Fix head comment and swap couple of conditional blocks.
6905 2011-04-30 Eric Botcazou <ebotcazou@adacore.com>
6907 * gnatvsn.ads (Library_Version): Bump to 4.7.
6908 (Current_Year): Bump to 2011.
6910 2011-04-29 Michael Matz <matz@suse.de>
6912 * gcc-interface/misc.c (gnat_handle_option): Set
6913 warn_maybe_uninitialized.
6915 2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
6917 * gnat_ugn.texi (Complexity Metrics Control): Update link to
6918 the Watson/McCabe paper.
6920 2011-04-23 Jim Meyering <meyering@redhat.com>
6922 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
6924 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
6926 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
6929 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
6931 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
6933 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
6934 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
6935 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
6936 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
6937 <all>: Do not set flags on the reused DECL node coming from an alias.
6938 Set DECL_IGNORED_P on the DECL node built for subprograms if they
6939 don't need debug info here...
6940 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
6941 (gigi): Adjust calls to create_subprog_decl.
6942 (build_raise_check): Likewise.
6943 (establish_gnat_vms_condition_handler): Likewise.
6944 (Compilation_Unit_to_gnu): Likewise.
6945 (gnat_to_gnu): Likewise.
6947 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
6949 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
6950 (NO_REORDER_ADAFLAGS): New variable.
6951 (EXTRA_GNATTOOLS): Always define.
6952 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
6953 Clean up and adjust list of files compiled with special options.
6954 * gcc-interface/Make-lang.in: Likewise.
6955 (ada/decl.o): Cosmetical change.
6956 (ada/misc.o): Remove dependency on $(PLUGIN_H).
6958 2011-04-20 Jim Meyering <meyering@redhat.com>
6960 * initialize.c (__gnat_initialize): Remove useless if-before-free.
6962 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
6964 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
6965 $(CFLAGS) on the link line.
6967 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
6969 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
6970 padded type built for the return type if it is unconstrained.
6972 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
6974 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
6976 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
6978 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
6979 before calling TREE_CHAIN.
6980 * gcc-interface/misc.c (gnat_init_ts): New function.
6981 (LANG_HOOKS_INIT_TS): Define.
6983 2011-04-12 Martin Jambor <mjambor@suse.cz>
6985 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
6986 instead of cgraph_node.
6988 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
6990 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
6991 alignment on fields of the RETURN type built for the Copy-In Copy-Out
6994 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
6996 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
6997 of aggregate types that contain a placeholder.
6999 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
7001 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
7003 (handle_type_generic_attribute): Likewise.
7005 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
7008 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
7010 2011-04-04 Kai Tietz <ktietz@redhat.com>
7013 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
7016 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7018 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
7019 type case, do not strip a padding type around the array type.
7021 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7023 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
7026 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7028 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
7029 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
7030 code for -feliminate-unused-debug-types.
7031 (gnat_post_options): Likewise.
7033 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7035 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
7036 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
7039 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7041 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
7042 DECL_ARTIFICIAL flag on enumeration types.
7044 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7046 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
7047 fat pointer types artificial unconditionally.
7048 <E_Array_Subtype>: Attach the base array type as a parallel type if it
7051 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7053 * gcc-interface/gigi.h (get_dummy_type): Declare.
7054 (build_dummy_unc_pointer_types): Likewise.
7055 (finish_fat_pointer_type): Likewise.
7056 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
7057 fat pointer type has been built, complete it in place.
7058 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
7059 and thin pointers. Remove useless variable.
7060 (finish_fat_pointer_type): Make global and move to...
7061 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
7062 (get_dummy_type): New function.
7063 (build_dummy_unc_pointer_types): Likewise.
7064 (gnat_pushdecl): Propage the name to the anonymous variants only.
7065 (update_pointer_to): Only adjust the pointer types in the unconstrained
7068 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7070 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
7071 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
7072 if this is a Taft amendment type and the full declaration is available.
7073 * gcc-interface/trans.c (process_type): Likewise.
7074 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
7075 (process_freeze_entity): Likewise.
7076 * gcc-interface/utils.c (dummy_global): New static variable.
7077 (gnat_write_global_declarations): If there are types declared as used
7078 at the global level, insert them in the global hash table.
7080 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7082 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
7083 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
7084 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
7086 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
7087 flag of the type accordingly.
7088 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
7090 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7092 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
7093 finalizing types when updating the pointers to the designated type.
7094 <all>: Finalize the deferred types even if we didn't defer processing
7095 of incomplete types in this invocation.
7097 2011-04-01 Olivier Hainque <hainque@adacore.com>
7098 Nicolas Setton <setton@adacore.com>
7099 Eric Botcazou <ebotcazou@adacore.com>
7101 * gcc-interface/misc.c (gnat_descriptive_type): New function.
7102 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
7104 2011-03-28 Kai Tietz <ktietz@redhat.com>
7106 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
7108 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
7109 * system-mingw.ads (System): Change ZCX_By_Default default to True.
7111 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
7113 2011-03-28 Tristan Gingold <gingold@adacore.com>
7116 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
7117 Use ada output of gnatbind.
7118 (ada/b_gnatb.adb): Ditto.
7119 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
7120 (ada.mostlyclean, ada.stage1)
7121 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
7122 (ada.stagefeedback): Adjust.
7123 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
7124 Use ada output of gnatbind.
7125 (b_gnatm.adb): Ditto.
7126 (b_gnatl.o, b_gnatm.o): New rules.
7128 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
7130 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
7131 for the padded type built to support a specified size or alignment.
7133 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
7135 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
7136 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
7137 unconditionally to the end of the unit when the designated type is
7139 <all>: Rename local variable. Attempt to un-defer types only and do it
7140 for limited_with'ed types as well.
7141 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
7142 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
7143 consistently and remove redundant call to finalize_from_with_types.
7145 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
7147 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
7148 subprograms without a previous spec declared in the same unit.
7149 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
7150 subprograms at the end of the unit instead of at the beginning.
7151 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
7152 isn't public for the special handling of non-inline functions nested
7153 inside inline external functions.
7155 2011-03-25 Jeff Law <law@redhat.com>
7157 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
7159 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7161 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
7162 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
7163 to compute Set_Size_Depends_On_Discriminant.
7164 (Layout_Type): Call it on array types in back-end layout mode.
7165 * sem_util.adb (Requires_Transient_Scope): Return true for array
7166 types only if the size depends on the value of discriminants.
7167 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
7168 type if the RHS is a call to a function that returns an unconstrained
7169 type with default discriminant.
7171 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7173 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
7174 non-conversion to the nominal result type at the end.
7176 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7178 * gcc-interface/trans.c (create_temporary): New function taken from...
7179 (create_init_temporary): ...here. Call it.
7180 (call_to_gnu): Create the temporary for the return value early, if any.
7181 Create it for a function with copy-in/copy-out parameters if there is
7182 no target; in other cases of copy-in/copy-out, use another temporary.
7183 Push the new binding level lazily. Add and rename local variables.
7185 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7187 * gcc-interface/decl.c (validate_size): Improve comments and tweak
7189 (set_rm_size): Likewise.
7191 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7193 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
7194 for the padded type built in order to support a specified alignment.
7195 Fix incorrect formatting.
7197 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7200 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
7202 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7204 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
7205 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
7206 to the end of the list. Adjust recursive call. Rename local variable.
7207 If REORDER is true, reorder components of the record type.
7208 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
7209 components_to_record and adjust the parameter list.
7211 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7213 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
7214 disabled, use the variable for bounds of loop iteration scheme.
7216 2011-03-21 Kai Tietz <ktietz@redhat.com>
7219 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
7221 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
7223 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
7224 out whether the expression is read-only. Short-circuit placeholder
7225 case and rename a couple of local variables.
7227 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
7229 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
7230 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
7231 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
7232 (convert): Deal with conversions from a smaller form type specially.
7234 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
7236 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
7237 its argument, except for the special -I- switch.
7239 2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7241 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
7244 2011-02-08 Eric Botcazou <ebotcazou@adacore.com>
7246 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
7248 2011-02-03 Eric Botcazou <ebotcazou@adacore.com>
7250 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
7252 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
7253 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
7254 instead of GNAT_FORMAL. Protect the expression against multiple uses.
7255 Do not generate the check directly, instead instantiate the template
7256 check present in the descriptor.
7257 (make_descriptor_field): Move around.
7258 (build_vms_descriptor32): Build a template check in the POINTER field.
7259 (build_vms_descriptor): Remove useless suffixes.
7260 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
7262 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
7265 * targext.c: Include target files if IN_RTS is defined.
7267 2011-01-26 Richard Guenther <rguenther@suse.de>
7270 * targext.c: Include config.h.
7271 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
7274 2011-01-04 Pascal Obry <obry@adacore.com>
7275 Eric Botcazou <ebotcazou@adacore.com>
7277 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
7279 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7281 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
7282 end-of-case on the end label and its associated gotos, if any.
7284 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7286 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
7287 expressions of the parameter cache within the statement group of
7290 2011-01-04 Olivier Hainque <hainque@adacore.com>
7291 Eric Botcazou <ebotcazou@adacore.com>
7293 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
7294 (set_end_locus_from_node): New function.
7295 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
7296 make and the function end_locus.
7297 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
7298 for the elaboration subprogram.
7299 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
7300 set the end_locus of the expression as well.
7302 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7305 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
7306 variables that are referenced in exception handlers volatile.
7310 Copyright (C) 2011 Free Software Foundation, Inc.
7312 Copying and distribution of this file, with or without modification,
7313 are permitted in any medium without royalty provided the copyright
7314 notice and this notice are preserved.
7316 * gnat_rm.texi: Ramification of pragma Eliminate documentation
7317 - fix bugs in the description of Source_Trace;
7318 - get rid of UNIT_NAME;
7320 2011-08-02 Javier Miranda <miranda@adacore.com>
7323 (Build_Dispatching_Requeue): Adding support for VM targets
7324 since we cannot directly reference the Tag entity.
7325 * exp_sel.adb (Build_K): Adding support for VM targets.
7326 (Build_S_Assignment): Adding support for VM targets.
7328 (Default_Prim_Op_Position): In VM targets do not restrict availability
7329 of predefined interface primitives to compiling in Ada 2005 mode.
7330 (Is_Predefined_Interface_Primitive): In VM targets this service is not
7331 restricted to compiling in Ada 2005 mode.
7332 (Make_VM_TSD): Generate code that declares and initializes the OSD
7333 record. Needed to support dispatching calls through synchronized
7336 (Make_Predefined_Primitive_Specs): Enable generation of predefined
7337 primitives associated with synchronized interfaces.
7338 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
7339 primitives associated with synchronized interfaces.
7341 2011-08-02 Yannick Moy <moy@adacore.com>
7343 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
7344 statements hidden in SPARK if preceded by the HIDE directive
7345 (Parse_Exception_Handlers): mark each exception handler in a sequence of
7346 exception handlers as hidden in SPARK if preceded by the HIDE directive
7347 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
7348 if starting with the HIDE directive
7349 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
7350 starting with the HIDE directive; mark the declarations in a private
7351 part as hidden in SPARK if the private part starts with the HIDE
7353 * restrict.adb, restrict.ads
7354 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
7355 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
7356 argument node belongs to a part which is hidden in SPARK
7357 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
7358 parts in SPARK; protect the possibly costly call to
7359 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
7360 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
7361 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
7362 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
7364 (Scan): recognize special comment starting with '#' and followed by
7365 SPARK keyword "hide" as a HIDE directive.
7367 2011-08-02 Yannick Moy <moy@adacore.com>
7369 * types.ads, erroutc.ads: Minor reformatting.
7371 2011-08-02 Vincent Celier <celier@adacore.com>
7373 * link.c: Add response file support for cross platforms.
7375 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7377 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
7378 in an association, set parent field of copy before partial analysis.
7379 * sem_res.adb (Resolve_Slice): create reference to itype only when
7380 expansion is enabled.
7382 2011-08-02 Yannick Moy <moy@adacore.com>
7384 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
7385 for new flag denoting which subprogram bodies are in ALFA
7386 * restrict.adb, sem_ch7.adb: Update comment
7387 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
7388 sem_ch9.adb, sem_res.adb: Add calls to
7389 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
7390 * sem_ch6.adb (Analyze_Function_Return): add calls to
7391 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
7392 middle of the body, and extended return.
7393 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
7394 False when missing return.
7395 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
7396 to True for subprograms whose spec is in ALFA. Remove later on the flag
7397 on the entity used for a subprogram body when there exists a separate
7399 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
7400 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
7401 False, otherwise do nothing.
7403 2011-08-02 Robert Dewar <dewar@adacore.com>
7405 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
7407 2011-08-02 Yannick Moy <moy@adacore.com>
7409 * sem_ch4.ads: minor formatting.
7411 2011-08-02 Yannick Moy <moy@adacore.com>
7413 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
7414 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
7415 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
7416 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
7417 opt.ads: cleanup of SPARK mode
7419 2011-08-02 Yannick Moy <moy@adacore.com>
7421 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
7423 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
7424 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
7426 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
7427 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
7428 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
7429 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
7431 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
7433 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
7434 functions whose return type is not in ALFA.
7435 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
7437 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
7438 parameter's type is not in ALFA.
7439 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
7442 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7444 * sem_ch6 (Analyze_Expression_Function): treat the function as
7445 Inline_Always, and introduce a subprogram declaration for it when it is
7447 * inline.adb (Add_Inlined_Body): recognize bodies that come from
7448 expression functions, so that the back-end can determine whether they
7449 can in fact be inlined.
7450 * sem_util.adb (Is_Expression_Function): predicate to determine whether
7451 a function body comes from an expression function.
7453 2011-08-02 Gary Dismukes <dismukes@adacore.com>
7455 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
7456 null exclusions to test Can_Never_Be_Null on the anonymous access types
7457 of the formals rather than testing the formals themselves. Exclude this
7458 check in cases where the Old_Formal is marked as a controlling formal,
7459 to avoid issuing spurious errors for bodies completing dispatching
7460 operations (due to the flag not getting set on controlling access
7461 formals in body specs).
7462 (Find_Corresponding_Spec): When checking full and subtype conformance of
7463 subprogram bodies in instances, pass Designated and E in that order, for
7464 consistency with the expected order of the formals (New_Id followed by
7467 2011-08-02 Robert Dewar <dewar@adacore.com>
7469 * sem_ch8.adb: Minor reformatting.
7471 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7473 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
7474 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
7475 primitive operations of class-wide actuals.
7477 2011-08-02 Javier Miranda <miranda@adacore.com>
7479 * exp_atag.ads, exp_atag.adb
7480 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
7481 since its value is implicitly passed in argument Typ.
7482 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
7483 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
7484 Build_Common_Dispatching_Select_Statements.
7486 2011-08-02 Robert Dewar <dewar@adacore.com>
7488 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
7489 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
7492 2011-08-02 Robert Dewar <dewar@adacore.com>
7494 * sem_res.adb: Minor reformatting.
7495 * sem_prag.adb: Minor reformatting.
7497 2011-08-02 Javier Miranda <miranda@adacore.com>
7499 * exp_atag.adb, exp_atags.ads
7500 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
7501 by the tagged type Entity. Required to use this routine in the VM
7502 targets since we do not have available the Tag entity in the VM
7505 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
7506 Ada.Tags has not been previously loaded.
7508 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
7509 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
7511 (Enclosing_Dynamic_Scope): Add missing support to handle the full
7512 view of enclosing scopes. Required to handle enclosing scopes that
7513 are synchronized types whose full view is a task type.
7515 (Build_VM_TSDs): Minor code improvement to avoid generating and
7516 analyzing lists with empty nodes.
7517 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
7518 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
7519 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
7520 (Make_Disp_Timed_Select_Body): Add support for VM targets.
7521 (Make_Select_Specific_Data_Table): Add support for VM targets.
7522 (Make_VM_TSD): Generate code to initialize the SSD structure of
7525 2011-08-02 Yannick Moy <moy@adacore.com>
7527 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
7528 cross-references section in ALI.
7529 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
7530 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
7532 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
7533 subprogram or package entity of a node
7534 (Is_Local_Reference_Type): new function returns True for references
7535 selected in local cross-references.
7536 (Lt): function extracted from Lt in Output_References
7537 (Write_Entity_Name): function extracted from Output_References
7538 (Generate_Definition): generate reference with type 'D' for definition
7539 of objects (object declaration and parameter specification), with
7540 appropriate locations and units, for use in local cross-references.
7541 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
7542 references of type 'I' for initialization in object definition.
7543 (Output_References): move part of function Lt and procedure
7544 Write_Entity_Name outside of the body. Ignore references of types 'D'
7545 and 'I' introduced for local cross-references.
7546 (Output_Local_References): new procedure to output the local
7547 cross-references sections.
7548 (Lref_Entity_Status): new array defining whether an entity is a local
7549 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
7550 with 'I' type when initialization expression is present.
7551 * get_scos.adb, get_scos.ads: Correct comments and typos
7553 2011-08-02 Javier Miranda <miranda@adacore.com>
7555 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
7557 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
7559 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
7562 2011-08-02 Vincent Celier <celier@adacore.com>
7564 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
7565 (No_Space_Img): New function
7566 (Find_Excluded_Sources): When reading from a file, record the file name
7567 and the line number for each excluded source.
7568 (Mark_Excluded_Sources): When reporting an error, if the excluded
7569 sources were read from a file, include file name and line number in
7572 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7574 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
7576 2011-08-02 Robert Dewar <dewar@adacore.com>
7578 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
7580 2011-08-02 Javier Miranda <miranda@adacore.com>
7582 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
7583 generation of TSDs to the DOTNET compiler.
7584 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
7585 generation of TSDs to the DOTNET compiler.
7587 2011-08-02 Javier Miranda <miranda@adacore.com>
7589 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
7590 record of all the tagged types declared inside library level package
7591 declarations, library level package bodies or library level subprograms.
7592 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
7593 associated with a given tagged type.
7594 (Build_VM_TSDs): New subprogram.
7595 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
7596 compilation units that are subprograms.
7597 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
7598 compilation units that are package bodies.
7599 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
7600 units that are a package declaration or a package instantiation.
7601 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
7602 reorganization to improve the error generated by the frontend when the
7603 function Ada.Tags.Secondary_Tag is not available.
7604 * rtsfind.ads (RE_Register_TSD): New runtime entity.
7605 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
7607 2011-08-02 Javier Miranda <miranda@adacore.com>
7609 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
7611 2011-08-02 Robert Dewar <dewar@adacore.com>
7613 * s-imenne.ads: Minor reformatting.
7615 2011-08-02 Robert Dewar <dewar@adacore.com>
7617 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
7618 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
7619 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
7621 2011-08-02 Robert Dewar <dewar@adacore.com>
7623 * einfo.ads (Materialize_Entity): Document this is only for renamings
7624 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
7625 required debug information in the case where we transform the object
7626 declaration into a renaming declaration.
7627 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
7629 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
7632 2011-08-02 Robert Dewar <dewar@adacore.com>
7634 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
7635 Suppress_Init_Procs.
7636 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
7637 Suppress_Initialization/Initialization_Suppressed.
7638 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
7639 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
7640 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
7641 * sem_prag.adb: New processing for pragma Suppress_Initialization.
7643 2011-08-02 Robert Dewar <dewar@adacore.com>
7645 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
7648 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7650 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
7651 only have inheritable classwide pre/postconditions.
7653 2011-08-02 Javier Miranda <miranda@adacore.com>
7655 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
7656 * rtsfind.ads (RE_Check_TSD): New runtime entity.
7657 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
7658 checks if the external tag of a type is the same as the external tag
7659 of some other declaration.
7661 2011-08-02 Thomas Quinot <quinot@adacore.com>
7663 * s-taskin.ads: Minor reformatting.
7665 2011-08-02 Emmanuel Briot <briot@adacore.com>
7667 * g-comlin.adb (Display_Help): swap the order in which it prints the
7668 short help and the general usage.
7670 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7672 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
7673 the aspect declarations and attach them to the generic copy for
7674 subsequent analysis.
7675 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
7676 declarations of the generic tree to the new subprogram declarations.
7677 * sem_attr.adb (Check_Precondition_Postcondition): recognize
7678 conditions that apply to a subprogram instance.
7680 2011-08-02 Robert Dewar <dewar@adacore.com>
7682 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
7684 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7686 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
7687 private type with a tagged full view is not derived in the immediate
7688 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
7690 2011-08-02 Robert Dewar <dewar@adacore.com>
7692 * exp_ch4.adb: Minor reformatting.
7694 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7696 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
7697 Ada2012 iterator, the loop will be rewritten during expansion into a
7698 while loop with a cursor and an element declaration. Do not analyze the
7699 body in this case, because if the container is for indefinite types the
7700 actual subtype of the elements will only be determined when the cursor
7701 declaration is analyzed.
7703 2011-08-02 Arnaud Charlet <charlet@adacore.com>
7705 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
7706 size/alignment related attributes in CodePeer_Mode.
7708 2011-08-02 Gary Dismukes <dismukes@adacore.com>
7710 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
7711 Prepend_Element, since this can result in the operation getting the
7712 wrong slot in the full type's dispatch table if the full type has
7713 inherited operations. The incomplete type's operation will get added
7714 to the proper position in the full type's primitives
7715 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
7716 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
7717 dispatching operations, since there are cases where nonprimitive
7718 subprograms can get added to the list of incomplete dependents (such
7719 as subprograms in nested packages).
7720 * sem_ch6.adb (Process_Formals): First, remove test for being in a
7721 private part when determining whether to add a primitive with a
7722 parameter of a tagged incomplete type to the Private_Dependents list.
7723 Such primitives can also occur in the visible part, and should not have
7724 been excluded from being private dependents.
7725 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
7726 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
7727 list of a Taft-amendment incomplete type is a primitive before issuing
7728 an error that the full type must appear in the same unit. There are
7729 cases where nonprimitives can be in the list (such as subprograms in
7731 * sem_disp.adb (Derives_From): Use correct condition for checking that
7732 a formal's type is derived from the type of the corresponding formal in
7733 the parent subprogram (the condition was completely wrong). Add
7734 checking that was missing for controlling result types being derived
7735 from the result type of the parent operation.
7737 2011-08-02 Yannick Moy <moy@adacore.com>
7739 * errout.adb (First_Node): minor renaming
7740 * restrict.adb (Check_Formal_Restriction): put restriction warning on
7743 2011-08-02 Yannick Moy <moy@adacore.com>
7745 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
7746 before accessing operands.
7747 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
7748 decide whether an initialization expression respects SPARK rules, as
7749 the plain node is the expanded one. This allows for more valid warnings
7751 * gnat_rm.texi: Minor update.
7753 2011-08-02 Arnaud Charlet <charlet@adacore.com>
7755 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
7758 2011-08-02 Robert Dewar <dewar@adacore.com>
7760 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
7762 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
7764 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
7765 loop statements and the element renaming declaration with a block when
7766 the element type is controlled.
7768 2011-08-02 Yannick Moy <moy@adacore.com>
7770 * sinfo.ads: Minor formatting.
7772 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7774 * sem_aggr.adb (Add_Association): if the association has a box and no
7775 expression, use the Sloc of the aggregate itself for the new
7777 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
7780 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
7782 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
7783 When a container is provided via a function call, generate a renaming
7784 of the function result. This avoids the creation of a transient scope
7785 and the premature finalization of the container.
7786 * exp_ch7.adb (Is_Container_Cursor): Removed.
7787 (Wrap_Transient_Declaration): Remove the supression of the finalization
7788 of the list controller when the declaration denotes a container cursor,
7791 2011-08-02 Yannick Moy <moy@adacore.com>
7793 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
7794 node is from source, instead of the original node being from source.
7796 (Resolve_Array_Aggregate): refine the check for a static expression, to
7797 recognize also static ranges
7798 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
7799 Array_Type_Declaration): postpone the test for the type being a subtype
7800 mark after the type has been resolved, so that component-selection and
7801 expanded-name are discriminated.
7802 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
7803 to distinguish the case of an iteration scheme, so that an error is
7804 issed on a non-static range in SPARK except in an iteration scheme.
7805 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
7806 In_Iter_Schm = True.
7807 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
7808 user-defined operators so that they are allowed in renaming
7810 (Find_Selected_Component): refine the check for prefixing of operators
7811 so that they are allowed in renaming. Move the checks for restrictions
7812 on selector name after analysis discriminated between
7813 component-selection and expanded-name.
7814 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
7815 concatenation argument of string type if it is static.
7816 * sem_util.adb, sem_util.ads
7817 (Check_Later_Vs_Basic_Declarations): add a new function
7818 Is_Later_Declarative_Item to decice which declarations are allowed as
7819 later items, in the two different modes Ada 83 and SPARK. In the SPARK
7820 mode, add that renamings are considered as later items.
7821 (Enclosing_Package): new function to return the enclosing package
7822 (Enter_Name): correct the rule for homonyms in SPARK
7823 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
7824 from source (result of expansion) to avoid issuing wrong warnings.
7826 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7828 * errout.adb: On anything but an expression First_Node returns its
7831 2011-08-02 Pascal Obry <obry@adacore.com>
7833 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
7835 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
7837 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
7838 Set the associated loop as the related expression of internally
7840 * exp_ch7.adb (Is_Container_Cursor): New routine.
7841 (Wrap_Transient_Declaration): Supress the finalization of the list
7842 controller when the declaration denotes a container cursor.
7844 2011-08-02 Yannick Moy <moy@adacore.com>
7846 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
7848 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
7849 expression is a simple expression. This check cannot be performed in
7850 the semantics, so just drop it.
7851 (P_Index_Or_Discriminant_Constraint): move check that the index or
7852 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
7853 semantics. Other cases were previously checked in the semantics.
7854 * par-ch4.adb (P_Name): move checks that a selector name is not
7855 character literal or an operator symbol to Find_Selected_Component in
7857 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
7858 declarations are not placed after later declarations in a separate
7859 procedure in Sem_Util (possibly not the best choice?), to be used both
7860 during parsing, for Ada 83 mode, and during semantic analysis, for
7862 * par-endh.adb (Check_End): move check that end label is not missing
7863 to Process_End_Label in the semantics
7864 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
7865 the special case for SPARK restriction
7866 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
7867 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
7868 parameter Force to issue the error message even on internal node (used
7869 for generated end label). Call Check_Restriction to check when an error
7870 must be issued. In SPARK mode, issue an error message even if the
7871 restriction is not set.
7872 (Check_Restriction): new procedure with an additional out parameter to
7873 inform the caller that a message has been issued
7874 * sem_aggr.adb: Minor modification of message
7875 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
7876 instead of issuing an error message directly
7877 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
7878 declarations are not placed after later declarations, by calling
7879 Check_Later_Vs_Basic_Declarations
7880 (Analyze_Subtype_Declaration): move here the check that an index or
7881 discriminant constraint must be a subtype mark. Change the check that
7882 a subtype of String must start at one so that it works on subtype marks.
7883 * sem_ch4.adb (Analyze_Call): move here the check that a named
7884 association cannot follow a positional one in a call
7885 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
7886 instead of issuing an error message directly
7887 * sem_ch8.adb (Find_Selected_Component): move here the check that a
7888 selector name is not a character literal or an operator symbol. Move
7889 here the check that the prefix of an expanded name cannot be a
7890 subprogram or a loop statement.
7891 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
7892 procedure called from parsing and semantics to check that basic
7893 declarations are not placed after later declarations
7894 (Process_End_Label): move here the check that end label is not missing
7896 2011-08-02 Arnaud Charlet <charlet@adacore.com>
7898 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
7899 representation clause in codepeer mode, since it confuses CodePeer and
7900 does not bring useful info.
7902 2011-08-02 Ed Falis <falis@adacore.com>
7904 * init.c: initialize fp hw on MILS.
7906 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7908 * errout.adb (First_Node): for bodies, return the node itself (small
7909 optimization). For other nodes, do not check source_unit if the node
7910 comes from Standard.
7912 2011-08-02 Robert Dewar <dewar@adacore.com>
7914 * exp_ch3.adb: Minor comment additions.
7915 * sem_ch13.adb: Minor reformatting.
7917 2011-08-02 Pascal Obry <obry@adacore.com>
7919 * make.adb, makeutl.adb: Removes some superfluous directory separator.
7921 2011-08-02 Robert Dewar <dewar@adacore.com>
7923 * sem_attr.adb: Minor reformatting.
7925 2011-08-02 Robert Dewar <dewar@adacore.com>
7927 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
7928 (Has_Default_Component_Value): Removed
7929 * einfo.ads Comment updates
7930 (Has_Default_Aspect): Replaces Has_Default_Value
7931 (Has_Default_Component_Value): Removed
7933 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
7935 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
7936 (Get_Simple_Init_Val): Handle Default_Value aspect
7937 (Needs_Simple_Initialization): Handle Default_Value aspect
7938 * exp_ch3.ads: Needs_Simple_Initialization
7939 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
7940 * par-prag.adb (Pragma_Default[_Component]Value) Removed
7942 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
7943 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
7944 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
7946 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7948 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
7949 package containing iteration primitives.
7950 exp_ch5.adb (Expand_Iterator_Loop): ditto.
7952 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7954 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
7955 "of", pre-analyze expression in case it is a function call with
7956 finalization actions that must be placed ahead of the loop.
7957 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
7958 on an Ada2012 iterator, insert them ahead of the rewritten loop.
7960 2011-08-02 Geert Bosch <bosch@adacore.com>
7962 * cstand.adb (Create_Float_Types): Only consider C's long double for
7963 Long_Long_Float, in addition to double.
7965 2011-08-02 Robert Dewar <dewar@adacore.com>
7967 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
7968 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
7969 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
7972 2011-08-02 Ed Schonberg <schonberg@adacore.com>
7974 * sem_attr.adb: handle properly 'Result when it is a prefix of an
7977 2011-08-02 Javier Miranda <miranda@adacore.com>
7979 * einfo.ads, einfo.adb
7980 (Original_Access_Type): Move this attribute to Node26 since there was
7981 an undocumented use of Node21 in E_Access_Subprogram_Type entities
7982 which causes conflicts and breaks the generation of the .NET compiler.
7983 (Interface_Name): Add missing documentation on JGNAT only uses of
7986 2011-08-02 Geert Bosch <bosch@adacore.com>
7988 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
7989 (Find_Back_End_Float_Type): Likewise
7990 (Create_Back_End_Float_Types): Likewise
7991 (Create_Float_Types): Likewise
7992 (Register_Float_Type): Likewise
7993 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
7994 Nlist and split out type selection in new local Find_Base_Type function.
7995 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
7997 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
7999 2011-08-02 Robert Dewar <dewar@adacore.com>
8001 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
8003 * opt.ads: Minor comment change.
8004 * sem_ch12.adb: Minor code reorganization.
8006 2011-08-02 Gary Dismukes <dismukes@adacore.com>
8008 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
8009 subtype's list of rep items to the list on the full subtype in the case
8010 where the lists are the same.
8012 2011-08-02 Geert Bosch <bosch@adacore.com>
8014 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
8015 using the one from System.Strings, which also deallocates all strings.
8017 2011-08-02 Geert Bosch <bosch@adacore.com>
8019 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
8021 * gcc-interface/Make-lang.in: Update dependencies.
8023 2011-08-02 Olivier Hainque <hainque@adacore.com>
8025 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
8028 2011-08-02 Javier Miranda <miranda@adacore.com>
8030 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
8031 associated with anonymous access to subprograms.
8033 2011-08-02 Geert Bosch <bosch@adacore.com>
8036 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
8037 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
8038 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
8039 (Add_Symbol_Definition): Move to switch-c.adb
8040 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
8041 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
8042 (Add_Symbol_Definition): Move to switch-c.adb.
8043 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
8045 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
8047 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
8048 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
8050 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
8051 (Add_Symbol_Definition): Moved from Prepcomp.
8052 * switch-c.ads: Update copyright notice. Use String_List instead of
8053 Argument_List, removing dependency on System.OS_Lib.
8055 2011-08-02 Yannick Moy <moy@adacore.com>
8057 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
8058 mode on initialization expression which does not respect SPARK
8060 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
8061 if the tree referenced by its argument represents an initialization
8062 expression in SPARK, suitable for initializing an object in an object
8065 2011-08-02 Javier Miranda <miranda@adacore.com>
8067 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
8068 internally generated access to subprogram with its associated protected
8070 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
8072 2011-08-02 Geert Bosch <bosch@adacore.com>
8074 * cstand.adb (Register_Float_Type): Print information about type to
8075 register, if the Debug_Flag_Dot_B is set.
8076 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
8077 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
8078 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
8079 with a requested precision of more than Max_Digits digits and no more
8080 than Max_Base_Digits digits, if a range specification is present and the
8081 Predefined_Float_Types list has a suitable type to derive from.
8082 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
8083 case of type completion with pragma Import
8085 (Process_Import_Predefined_Type): Processing to complete a type
8086 with pragma Import. Currently supports floating point types only.
8087 (Set_Convention_From_Pragma): Do nothing without underlying type.
8088 (Process_Convention): Guard against absence of underlying type,
8089 which may happen when importing incomplete types.
8090 (Process_Import_Or_Interface): Handle case of importing predefined
8091 types. Tweak error message.
8093 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
8095 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
8096 functions to previous change. Reorganize code slightly.
8098 2011-08-02 Geert Bosch <bosch@adacore.com>
8100 * back_end.ads (Register_Type_Proc): New call back procedure type for
8101 allowing the back end to provide information about available types.
8102 (Register_Back_End_Types): New procedure to register back end types.
8103 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
8105 * cstand.adb (Back_End_Float_Types): New list for floating point types
8106 supported by the back end.
8107 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
8108 (Copy_Float_Type): New procedure to make new copies of predefined types.
8109 (Register_Float_Type): New call back procedure to populate the BEFT list
8110 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
8111 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
8112 (Create_Float_Types): New procedure to create entities for floating
8113 point types predefined in Standard, and put these and any remaining
8114 BEFTs on the Predefined_Float_Types list.
8115 * stand.ads (Predefined_Float_Types): New list for predefined floating
8116 point types that do not have declarations in package Standard.
8118 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
8120 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
8121 entity node for the unit containing the parameter.
8122 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
8123 (Add_Inlined_Subprogram): Likewise.
8124 * gcc-interface/Make-lang.in: Update dependencies.
8126 2011-08-02 Thomas Quinot <quinot@adacore.com>
8128 * s-stusta.adb (Print): Make sure Pos is always initialized to a
8131 2011-08-02 Geert Bosch <bosch@adacore.com>
8133 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
8135 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
8137 * sem_type.adb (Covers): Move trivial case to the top and reuse the
8138 computed value of Base_Type.
8140 2011-08-02 Yannick Moy <moy@adacore.com>
8142 * restrict.adb (Check_Restriction): issue an error for any use of
8143 class-wide, even if the No_Dispatch restriction is not set.
8144 * sem_aggr.adb: Correct typos in comments and messages in formal mode
8145 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
8146 when completing a private extension, the type named in the private part
8147 is not the same as that named in the visible part.
8148 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
8149 of an inherited primitive operations of a tagged type or type extension
8150 that returns the tagged type.
8151 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
8152 function which returns True for an implicit operation inherited by the
8153 derived type declaration for the argument type.
8154 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
8157 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8159 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
8160 Process_Bounds, to perform analysis with expansion of a range or an
8161 expression that is the iteration scheme for a loop.
8162 (Analyze_Iterator_Specification): If domain of iteration is given by a
8163 function call with a controlled result, as is the case if call returns
8164 a predefined container, ensure that finalization actions are properly
8166 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
8168 2011-08-02 Javier Miranda <miranda@adacore.com>
8170 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
8171 * gcc-interface/Make-lang.in: Update dependencies.
8173 2011-08-02 Javier Miranda <miranda@adacore.com>
8175 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
8176 determine if the analysis is performed using N or Original_Node (N).
8177 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
8178 functionality of routine Is_Variable avoids code duplication.
8179 * checks.adb (Determine_Range): Handle temporaries generated by
8180 Remove_Side_Effects.
8182 2011-08-02 Javier Miranda <miranda@adacore.com>
8184 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
8185 expansion of the condition. Required since the previous analysis was
8186 done with expansion disabled (see Resolve_Quantified_Expression) and
8187 hence checks were not inserted and record comparisons have not been
8190 2011-08-02 Ed Falis <falis@adacore.com>
8192 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
8195 2011-08-02 Bob Duff <duff@adacore.com>
8197 * opt.ads: Minor comment fix.
8199 2011-08-02 Bob Duff <duff@adacore.com>
8201 * sem_ch12.adb (Analyze_Package_Instantiation,
8202 Analyze_Subprogram_Instantiation): Turn off style checking while
8203 analyzing an instance. Whatever style checks that apply to the generic
8204 unit should apply, so it makes no sense to apply them in an instance.
8205 This was causing trouble when compiling an instance of a runtime
8206 unit that violates the -gnatyO switch.
8207 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
8208 one of the two case statements, causing spurious errors.
8210 2011-08-02 Robert Dewar <dewar@adacore.com>
8212 * uname.adb: Minor reformatting.
8213 * gnatcmd.adb: Minor reformatting.
8214 * exp_attr.adb: Minor reformatting.
8216 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8218 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
8219 No_Dispatching_Calls, do not look for the Assign primitive, because
8220 predefined primitives are not created in this case.
8222 2011-08-02 Bob Duff <duff@adacore.com>
8224 * stylesw.ads: Minor comment fixes.
8226 2011-08-02 Robert Dewar <dewar@adacore.com>
8228 * freeze.adb (Add_To_Result): New procedure.
8230 2011-08-02 Jose Ruiz <ruiz@adacore.com>
8232 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
8233 time, if the specific run-time routines for handling streams of strings
8234 are not available, use the default mechanism.
8236 2011-08-02 Arnaud Charlet <charlet@adacore.com>
8238 * s-regpat.ads: Fix typo.
8240 2011-08-02 Vincent Celier <celier@adacore.com>
8242 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
8243 not null, call it to create the in memory config project file without
8244 parsing an existing default config project file.
8246 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
8248 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
8250 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8252 * sem_elim.adb: an abstract subprogram does not need an eliminate
8253 pragma for its descendant to be eliminable.
8255 2011-08-02 Ed Falis <falis@adacore.com>
8257 * init.c: revert to handling before previous checkin for VxWorks
8258 * s-intman-vxworks.adb: delete unnecessary declarations related to
8259 using Ada interrupt facilities for handling signals.
8260 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
8261 * s-intman-vxworks.ads: Import __gnat_install_handler as
8262 Initialize_Interrupts.
8263 * s-taprop-vxworks.adb: Delete Signal_Mask.
8264 (Abort_Handler): change construction of mask to unblock exception
8267 2011-08-02 Jerome Guitton <guitton@adacore.com>
8269 * a-except-2005.adb (Raise_From_Signal_Handler): Call
8270 Debug_Raise_Exception before propagation starts.
8272 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
8274 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
8275 to Restriction_Check_Required.
8276 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
8277 * sem_res.adb (Resolve_Call): Likewise.
8278 * sem_attr.adb (Check_Stream_Attribute): Likewise.
8280 2011-08-02 Bob Duff <duff@adacore.com>
8282 * stylesw.ads: Update comment.
8283 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
8284 * errout.ads: Remove obsolete comment.
8286 2011-08-02 Javier Miranda <miranda@adacore.com>
8288 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
8289 (Set_Is_Safe_To_Reevaluate): new procedure.
8290 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
8291 assignment is allowed on safe-to-reevaluate variables.
8292 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
8293 temporary created to remove side effects in expressions that use
8294 the secondary stack as safe-to-reevaluate.
8295 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
8296 variables that are not true constants.
8298 2011-08-02 Robert Dewar <dewar@adacore.com>
8300 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
8301 sem_res.adb, sem_ch6.adb: Minor reformatting.
8303 2011-08-02 Jerome Guitton <guitton@adacore.com>
8305 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
8307 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8309 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
8310 not set Overridden_Operation if subprogram is an initialization
8313 2011-08-02 Yannick Moy <moy@adacore.com>
8315 * par-ch6.adb: Correct obsolete name in comments
8316 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
8317 which takes two message arguments (existing function takes one), with
8318 second message used for continuation.
8319 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
8320 block statements that originate from a source block statement, not
8321 generated block statements
8322 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
8323 symmetry with procedure case
8324 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
8325 function to issue an error in formal mode if a package specification
8326 contains more than one tagged type or type extension.
8327 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
8328 parameters matching formals of tagged types are objects (or ancestor
8329 type conversions of objects), not general expressions. Issue an error
8330 on view conversions that are not involving ancestor conversion of an
8332 (Resolve_Type_Conversion): in formal mode, issue an error on the
8333 operand of an ancestor type conversion which is not an object
8334 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
8335 procedure so that it works also for actuals of function calls
8336 (Is_Actual_Tagged_Parameter): new function which determines if its
8337 argument is an actual parameter of a formal of tagged type in a
8339 (Is_SPARK_Object_Reference): new function which determines if the tree
8340 referenced by its argument represents an object in SPARK
8342 2011-08-02 Robert Dewar <dewar@adacore.com>
8344 * sem_ch3.adb: Minor reformatting
8345 Minor comment addition
8346 Minor error msg text change
8348 2011-08-02 Javier Miranda <miranda@adacore.com>
8350 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
8351 function. Used to be more precise when we generate a variable plus one
8352 assignment to remove side effects in the evaluation of the Bound
8354 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
8355 of the bound expression to force its re-analysis and thus expand the
8356 associated transient scope (if required). Code cleanup replacing the
8357 previous code that declared the constant entity by an invocation to
8358 routine Force_Evaluation which centralizes this work in the frontend.
8360 2011-08-02 Robert Dewar <dewar@adacore.com>
8362 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
8363 (Base_Type): Now uses improved Is_Base_Type function
8364 * einfo.ads (Base_Type): Inline this function
8366 2011-08-02 Robert Dewar <dewar@adacore.com>
8368 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
8369 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
8371 2011-08-02 Arnaud Charlet <charlet@adacore.com>
8373 * gcc-interface/Make-lang.in: Update dependencies.
8374 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
8377 2011-08-02 Yannick Moy <moy@adacore.com>
8379 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
8380 non-simple expression used in delta constraint
8381 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
8382 index constraint which is not a subtype mark
8383 * par.adb: With and use Restrict
8384 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
8385 mode on component type which is not a subtype mark and default
8386 expression on component
8387 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
8388 of string which does not have a lower index bound equal to 1
8389 (Array_Type_Declaration): issue an error in formal mode on index or
8390 component type which is not a subtype mark, and on aliased keyword on
8392 (Derived_Type_Declaration): issue an error in formal mode on interface,
8393 limited or abstract type
8394 (Record_Type_Declaration): issue an error in formal mode on interface
8395 (Record_Type_Definition): issue an error in formal mode on tagged types
8396 and type extensions not declared in the specification of a library unit
8397 package; on null non-tagged record; on variant part
8399 2011-08-02 Vincent Celier <celier@adacore.com>
8401 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
8402 not declared for qualified library project when Library_Name is not
8403 declared, but Library_Dir is.
8405 2011-08-02 Robert Dewar <dewar@adacore.com>
8407 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
8408 pragmas (affects aspects [Component_]Default_Value
8409 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
8410 component type for the resolution
8412 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
8414 * einfo.adb (Base_Type): Tune implementation for speed.
8416 2011-08-02 Robert Dewar <dewar@adacore.com>
8418 * freeze.adb: Minor reformatting.
8420 2011-08-02 Thomas Quinot <quinot@adacore.com>
8422 * scos.ads: Update comments.
8424 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8426 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
8427 base type, because the parent may be a subtype of a private type whose
8428 convention is established in a private part.
8430 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
8432 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
8433 statement in a block when the expansion of the return expression has
8434 created a finalization chain.
8435 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
8436 with the parent node.
8437 Add N_Extended_Return_Statement to handle the case where a transient
8438 object declaration appears in the Return_Object_Declarations list of
8439 an extended return statement.
8441 2011-08-02 Matthew Gingell <gingell@adacore.com>
8443 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
8444 unused parameter 'name'.
8446 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8448 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
8449 inherited operation, check whether its alias, which is the source
8450 operastion that it renames, has been marked eliminated.
8452 2011-08-02 Javier Miranda <miranda@adacore.com>
8454 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
8455 in-mode parameter whose type is an access type since it can be used to
8456 modify its designated object. Enforce code that handles as safe an
8457 access type that is not access-to-constant but it is the result of a
8458 previous removal of side-effects.
8459 (Remove_Side_Effects): Minor code reorganization of cases which require
8460 no action. Done to incorporate documentation on new cases uncovered
8461 working in this ticket: no action needed if this routine was invoked
8462 too early and the nodes are not yet decorated.
8463 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
8464 to routine Remove_Side_Effects by calls to Force_Evaluation since they
8465 were issued with actuals that are implicitly provided by
8468 2011-08-02 Robert Dewar <dewar@adacore.com>
8470 * sem_ch3.adb, sem_res.adb: Minor reformatting.
8472 2011-08-02 Yannick Moy <moy@adacore.com>
8474 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
8475 to issue an error in formal mode on attribute not supported in this mode
8476 (Analyze_Attribute): issue errors on standard attributes not supported
8478 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
8479 comment, and issue error in formal mode on modulus which is not a power
8481 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
8483 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
8485 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
8486 operator on modular type (except 'not').
8488 2011-08-02 Robert Dewar <dewar@adacore.com>
8490 * gnat_rm.texi: Minor reformatting.
8492 2011-08-02 Arnaud Charlet <charlet@adacore.com>
8494 * s-osinte-linux.ads: Minor comment update and reformatting.
8495 * i-cexten.ads: Make this unit pure, as for its parent.
8496 Will allow its usage in more contexts if needed.
8498 2011-08-02 Robert Dewar <dewar@adacore.com>
8500 * s-utf_32.ads: Minor comment fix.
8502 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8504 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
8505 operation of a tagged synchronized type, handle the case where the
8506 controlling argument is overloaded.
8508 2011-08-02 Yannick Moy <moy@adacore.com>
8510 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
8511 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
8512 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
8513 SPARK mode and formal verification mode on processing SPARK restriction
8514 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
8515 requiring consistency checking.
8517 2011-08-02 Robert Dewar <dewar@adacore.com>
8519 * sem_res.adb: Minor reformatting.
8521 2011-08-02 Robert Dewar <dewar@adacore.com>
8523 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
8524 a-cforse.ads: Remove unneeded with of Ada.Containers
8525 Remove commented out pragma Inline's
8526 Move specifications of new subprograms to the actual specs
8528 2011-08-02 Yannick Moy <moy@adacore.com>
8530 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
8531 a-cforse.ads: Update comments.
8533 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8535 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
8537 2011-08-02 Robert Dewar <dewar@adacore.com>
8539 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
8540 a-cforse.ads, a-cofove.ads: Minor reformatting.
8542 2011-08-02 Claire Dross <dross@adacore.com>
8544 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
8545 a-cofove.ads: Add comments.
8547 2011-08-02 Yannick Moy <moy@adacore.com>
8549 * gnat_rm.texi: Document formal containers.
8551 2011-08-02 Emmanuel Briot <briot@adacore.com>
8553 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
8556 2011-08-02 Robert Dewar <dewar@adacore.com>
8558 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
8561 2011-08-02 Robert Dewar <dewar@adacore.com>
8563 * aspects.adb: New aspects Default_Value and Default_Component_Value
8564 New format of Aspect_Names table checks for omitted entries
8565 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
8566 handling of boolean aspects for derived types.
8567 New aspects Default_Value and Default_Component_Value
8568 New format of Aspect_Names table checks for omitted entries
8569 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
8570 (Has_Default_Value): New flag
8571 (Has_Default_Component_Value): New flag
8572 (Has_Default_Value): New flag
8573 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
8575 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
8576 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
8577 Default_Value and Default_Component_Value
8578 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
8579 New aspects Default_Value and Default_Component_Value
8580 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
8581 * sprint.adb: Print N_Aspect_Specification node when called from gdb
8583 2011-08-02 Vincent Celier <celier@adacore.com>
8585 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
8586 inherit library kind.
8588 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8590 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
8593 2011-08-02 Robert Dewar <dewar@adacore.com>
8595 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
8597 2011-08-02 Yannick Moy <moy@adacore.com>
8599 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
8601 2011-08-02 Robert Dewar <dewar@adacore.com>
8603 * impunit.adb: Add comment.
8605 2011-08-02 Yannick Moy <moy@adacore.com>
8607 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
8608 qualification of aggregates in formal mode
8609 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
8611 (Resolve_Aggregate): complete the test that an aggregate is adequately
8612 qualified in formal mode
8614 2011-08-02 Pascal Obry <obry@adacore.com>
8616 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
8617 * mlib-prj.adb: Supress warning when compiling binder generated file.
8618 (Build_Library): Supress all warnings when compiling the binder
8621 2011-08-02 Yannick Moy <moy@adacore.com>
8623 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
8625 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
8626 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
8627 Add with/use clauses to make Check_Formal_Restriction visible
8629 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8631 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
8632 in-parameters when type of the generic formal is private in the generic
8633 spec and non-private in the body.
8635 2011-08-02 Claire Dross <dross@adacore.com>
8637 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
8638 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
8639 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
8640 * impunit.adb, Makefile.rtl: Take new files into account.
8642 2011-08-02 Robert Dewar <dewar@adacore.com>
8644 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
8645 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
8647 2011-08-02 Yannick Moy <moy@adacore.com>
8649 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
8651 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
8652 matching static array bounds, taking into account the special case of
8654 * sem_ch3.adb: Typo in comment.
8656 2011-08-02 Yannick Moy <moy@adacore.com>
8658 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
8659 which issues an error in formal mode if its argument node is originally
8661 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
8662 has a discriminant specification so that it does not include the case
8664 (Derived_Type_Declaration): move here the test that a derived type has a
8665 discriminant specification
8666 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
8667 first element of a component association before accessing its choices
8668 (presence of component association is not enough)
8669 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
8670 declaration is a library item before accessing the next element in a
8671 list, as library items are not member of lists
8672 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
8673 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
8674 Check_Formal_Restriction whenever possible.
8676 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8678 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
8679 reference when needed.
8681 2011-08-02 Bob Duff <duff@adacore.com>
8683 * gnat_ugn.texi: Fix typo.
8685 2011-08-02 Vincent Celier <celier@adacore.com>
8687 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
8688 archive file name. Do not use the full path name of archives for Open
8691 2011-08-02 Robert Dewar <dewar@adacore.com>
8693 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
8694 Analyze_Aspect_Specifications
8696 (Analyze_Aspect_Specifications): New handling for boolean aspects
8697 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
8698 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
8699 sequence for Analyze_Aspect_Specifications
8700 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
8701 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
8703 2011-08-02 Robert Dewar <dewar@adacore.com>
8705 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
8706 aspects, since these no longer exist.
8708 2011-08-02 Robert Dewar <dewar@adacore.com>
8710 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
8711 semicolon, do not try to see if there are aspects following it.
8712 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
8715 2011-08-02 Robert Dewar <dewar@adacore.com>
8717 * sem_ch8.adb, aspects.ads: Minor reformatting.
8719 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
8721 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
8722 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
8724 (Analyze_Aspect_Specifications): ...here. Call above procedure.
8726 2011-08-02 Yannick Moy <moy@adacore.com>
8728 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
8729 mode on subprogram declaration outside of package specification, unless
8730 it is followed by a pragma Import
8731 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
8732 Access_Type_Declaration): issue error in formal mode on access type
8733 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
8735 (Analyze_Object_Declaration): issue error in formal mode on object
8736 declaration which does not respect SPARK restrictions
8737 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
8738 declaration which does not respect SPARK restrictions
8739 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
8740 error in formal mode on digits or delta constraint
8741 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
8742 decimal fixed point type
8743 (Derived_Type_Declaration): issue error in formal mode on derived type
8744 other than type extensions of tagged record types
8745 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
8746 with check on access definition
8747 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
8748 mode on protected definition.
8749 (Analyze_Task_Definition): issue error in formal mode on task definition
8751 2011-08-02 Robert Dewar <dewar@adacore.com>
8753 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
8755 2011-08-02 Javier Miranda <miranda@adacore.com>
8757 * sem_ch6.adb (Can_Override_Operator): New function.
8758 (Verify_Overriding_Indicator): Add missing code to check overriding
8759 indicator in operators. Fixes regression.
8760 (Check_Overriding_Indicator): Minor reformating after replacing the
8761 code that evaluates if the subprogram can override an operator by
8762 invocations to the above new function.
8764 (Write_Field26_Name): Add missing code to ensure that, following
8765 the documentation in einfo.ads, this field is not shown as attribute
8766 "Static_Initialization" on non-dispatching functions.
8768 2011-08-02 Jose Ruiz <ruiz@adacore.com>
8770 * sem_res.adb (Resolve_Call): A call to
8771 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
8772 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
8773 i.e., when the second parameter is of type Time_Span.
8775 2011-08-02 Vincent Celier <celier@adacore.com>
8777 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
8778 with an archive instead of -L<library dir> -l<library name>.
8780 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8782 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
8783 mark the base types In_Use in addition to making the operations
8786 2011-08-02 Ed Falis <falis@adacore.com>
8788 * init.c: add and setup __gnat_signal_mask for the exception signals
8789 * s-inmaop-vxworks.adb: new file.
8790 * s-intman-vxworks.adb: remove unnecessary initializations and
8792 * s-intman-vxworks.ads: remove unnecessary variable
8793 * s-taprop-vxworks.adb: simplify signal initialization
8795 2011-08-02 Robert Dewar <dewar@adacore.com>
8797 * sem_ch8.adb: Minor code reorganization, comment updates.
8799 2011-08-02 Robert Dewar <dewar@adacore.com>
8801 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
8802 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
8804 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
8805 (Matching_Static_Array_Bounds): Moved here from Sem_Res
8807 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8809 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
8810 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
8811 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
8812 use_type_clauses, to handle more efficiently use_type and use_all_type
8814 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
8815 Ada2012 Use_All_Type clause.
8816 (Use_Class_Wide_Operations): new procedure.
8818 2011-08-02 Robert Dewar <dewar@adacore.com>
8820 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
8821 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
8822 expression to expression function.
8824 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8826 * sem_ch4.adb: transform simple Ada2012 membership into equality only
8827 if types are compatible.
8829 2011-08-02 Yannick Moy <moy@adacore.com>
8831 * sem_res.adb (Matching_Static_Array_Bounds): new function which
8832 returns True if its argument array types have same dimension and same
8833 static bounds at each index.
8834 (Resolve_Actuals): issue an error in formal mode on actuals passed as
8835 OUT or IN OUT paramaters which are not view conversions in SPARK.
8836 (Resolve_Arithmetic_Op): issue an error in formal mode on
8837 multiplication or division with operands of fixed point types which are
8838 not qualified or explicitly converted.
8839 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
8840 Boolean or array type (except String) operands.
8841 (Resolve_Equality_Op): issue an error in formal mode on equality
8842 operators for array types other than String with non-matching static
8844 (Resolve_Logical_Op): issue an error in formal mode on logical operators
8845 for array types with non-matching static bounds. Factorize the code in
8846 Matching_Static_Array_Bounds.
8847 (Resolve_Qualified_Expression): issue an error in formal mode on
8848 qualified expressions for array types with non-matching static bounds.
8849 (Resolve_Type_Conversion): issue an error in formal mode on type
8850 conversion for array types with non-matching static bounds
8852 2011-08-02 Robert Dewar <dewar@adacore.com>
8854 * par-ch10.adb: Minor code reorganization (use Nkind_In).
8856 2011-08-02 Ed Schonberg <schonberg@adacore.com>
8858 * par-ch9.adb: save location of entry for proper error message.
8860 2011-08-02 Javier Miranda <miranda@adacore.com>
8862 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
8863 (Use_Full_View) which permits this routine to climb through the
8864 ancestors using the full-view of private parents.
8865 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
8866 Use_Full_View to true in calls to Is_Ancestor.
8867 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
8868 true in call to Is_Ancestor.
8869 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
8870 Use_Full_View to true in call to Is_Ancestor.
8871 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
8872 call to Is_Ancestor.
8873 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
8874 Use_Full_View to true in calls to Is_Ancestor.
8875 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
8876 Make_Select_Specific_Data_Table, Register_Primitive,
8877 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
8878 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
8879 to true in call to Is_Ancestor.
8880 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
8881 Use_Full_View to true in calls to Is_Ancestor.
8883 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
8884 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
8886 2011-08-02 Robert Dewar <dewar@adacore.com>
8888 * gnat_rm.texi: Minor reformatting.
8889 * sem_prag.adb: Minor reformatting.
8891 2011-08-02 Tristan Gingold <gingold@adacore.com>
8893 * vms_data.ads: Add VMS qualifier for -gnateP.
8895 2011-08-02 Robert Dewar <dewar@adacore.com>
8897 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
8898 * par-ch7.adb (P_Package): Proper placement of aspects for package
8900 * par-endh.adb (Check_End): Ad Is_Sloc parameter
8901 (End_Statements): Add Is_Sloc parameterr
8902 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
8903 (Check_End): Ad Is_Sloc parameter
8904 (End_Statements): Add Is_Sloc parameterr
8906 2011-08-02 Vincent Celier <celier@adacore.com>
8908 * ug_words: Add VMS qualifier equivalent to -gnateP:
8909 /SYMBOL_PREPROCESSING.
8911 2011-08-02 Jose Ruiz <ruiz@adacore.com>
8913 * gnat-style.texi: For hexadecimal numeric literals the typical
8914 grouping of digits is 4 to represent 2 bytes.
8915 A procedure spec which is split into several lines is indented two
8918 2011-08-02 Yannick Moy <moy@adacore.com>
8920 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
8921 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
8922 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
8924 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
8925 choice in array aggregate
8926 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
8928 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
8929 positional and named aggregate for record, or others in record
8930 aggregate, or multiple choice in record aggregate
8931 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
8932 array operands to logical operations AND, OR and XOR do not have the
8933 same static lower and higher bounds
8934 * sem_ch5.adb, sinfo.ads: Correct typos in comments
8936 2011-08-01 Robert Dewar <dewar@adacore.com>
8938 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
8939 Replaces Last_Source_Node_In_Sequence.
8940 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
8941 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
8942 parens and blank in string (this was inconsistently implemented).
8944 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
8945 blank in string (this was inconsistently implemented).
8947 (Set_Global_Switches): Set formal mode switches appropriately
8948 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
8950 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
8951 call Set_Error_Msg_Lang to set "spark" as language name.
8952 * par.adb: Remove unnecessary call to set formal language for errout
8953 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
8954 appropriately and call Set_Error_Msg_Lang to set "spark" as language
8956 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
8957 calls to it, moved after resolution so that types are known
8958 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
8959 result of concatenation is not of type String
8960 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
8961 concatenation is not properly restricted
8962 * gnat_rm.texi: Add doc on pragma Spark_95.
8963 * gcc-interface/Makefile.in: Remove obsolete target pairs for
8964 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
8965 * gcc-interface/Make-lang.in: Update dependencies.
8967 2011-08-01 Javier Miranda <miranda@adacore.com>
8969 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
8970 condition that detects if the overridden operation must replace an
8973 2011-08-01 Javier Miranda <miranda@adacore.com>
8975 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
8976 code declarations inserted by Insert_Actions in each alternative of the
8977 N_Case_Expression node.
8979 2011-08-01 Robert Dewar <dewar@adacore.com>
8981 * sem_ch6.adb: Minor code reorganization.
8982 * sem_util.adb: Minor reformatting.
8984 2011-08-01 Pascal Obry <obry@adacore.com>
8986 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
8987 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
8989 2011-08-01 Yannick Moy <moy@adacore.com>
8991 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
8992 literal or operator symbol which is prefixed
8993 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
8994 mode on access attributes.
8995 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
8996 that concatenation operands are properly restricted in formal mode
8997 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
8998 Analyze_Concatenation_Operand. Issue an error in formal mode if the
8999 result of the concatenation has a type different from String.
9000 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
9001 Analyze_Quantified_Expression, Analyze_Slice,
9002 Analyze_Null): issue an error in formal mode on unsupported constructs
9004 (Analyze_Block_Statement): only issue error on source block statement
9005 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
9006 function which returns the last node in a list of nodes for which
9007 Comes_From_Source returns True, if any
9008 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
9009 Last_Source_Node_In_Sequence
9010 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
9011 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
9012 mode on unsupported constructs
9013 * sem_ch9.adb Do not return after issuing error in formal mode, as the
9014 rest of the actions may be needed later on since the error is marked as
9016 * sinfo.ads: Typos in comments.
9018 2011-08-01 Pascal Obry <obry@adacore.com>
9020 * projects.texi: Minor editing.
9022 2011-08-01 Yannick Moy <moy@adacore.com>
9024 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
9025 insertion character ~~
9026 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
9027 (Set_Error_Msg_Lang): new procedure which fixes the language for use
9028 with insertion character ~~
9029 (Set_Msg_Text): treat insertion character ~~
9030 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
9031 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
9032 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
9033 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
9034 errors related to the formal language restriction not serious
9035 (insertion character |).
9036 * par.adb (Par): set formal language for error messages if needed
9037 * sem_ch6.adb (Check_Missing_Return): take into account possible
9038 generated statements at the end of the function
9039 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
9040 enumeration value to define a new pragma SPARK_95
9041 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
9042 SPARK_Version): new type and variables to store the SPARK version
9044 (SPARK_Mode): return True when SPARK_Version is set
9045 * par-prag.adb: Correct indentation
9046 (Prag): take Pragma_SPARK_95 into account
9047 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
9050 2011-08-01 Robert Dewar <dewar@adacore.com>
9052 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
9053 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
9054 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
9056 2011-08-01 Pascal Obry <obry@adacore.com>
9058 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
9059 Target_Name to Get_Path call.
9060 (Parse_Single_Project): Likewise.
9061 (Post_Parse_Context_Clause): Likewise.
9062 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
9063 Call Initialise_Project_Path with the proper Target_Name.
9064 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
9066 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
9067 with the proper Target_Name.
9068 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
9070 (Parse_Project_And_Apply_Config): Likewise.
9071 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
9072 This is fine as this part of the code is supporting only native
9074 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
9075 is fine as this part of the code is supporting only native compilation.
9077 2011-08-01 Yannick Moy <moy@adacore.com>
9079 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
9080 of homonym, unless the homonym is one of the cases allowed in SPARK
9081 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
9082 package declaration occurring after a body.
9084 2011-08-01 Robert Dewar <dewar@adacore.com>
9086 * checks.adb, exp_ch4.adb: Minor reformatting.
9088 2011-08-01 Javier Miranda <miranda@adacore.com>
9090 * einfo.ads (Access_Disp_Table): Fix documentation.
9091 (Dispatch_Table_Wrappers): Fix documentation.
9093 2011-08-01 Pascal Obry <obry@adacore.com>
9095 * prj-env.adb, prj-env.ads: Minor reformatting.
9097 2011-08-01 Yannick Moy <moy@adacore.com>
9099 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
9100 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
9101 procedures out of these packages.
9102 * errout.ads, errout.adb
9103 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
9104 procedures in of this package
9105 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
9106 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
9107 on misplaced later vs initial declarations, like in Ada 83
9108 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
9109 formal mode on attribute of private type whose full type declaration
9111 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
9112 package declaration inside a package specification
9113 (Analyze_Full_Type_Declaration): issue error in formal mode on
9114 controlled type or discriminant type
9115 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
9116 user-defined operator means that it should come from the source
9117 (New_Overloaded_Entity): issue error in formal mode on overloaded
9119 * sem_ch6.ads, sem_ch13.ads: typos in comments.
9121 2011-08-01 Thomas Quinot <quinot@adacore.com>
9123 * atree.adb: Minor reformatting.
9124 * checks.adb: Minor reformatting.
9126 2011-08-01 Vincent Celier <celier@adacore.com>
9128 * s-parame-vms-ia64.ads: Fix typo in comment
9130 * s-parame-vms-restrict.ads: Removed, unused.
9132 2011-08-01 Javier Miranda <miranda@adacore.com>
9135 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
9137 (Constrain_Index): Remove side effects in the evaluation of the bounds.
9138 * sem_ch3.ads, sem_ch3.adb
9139 (Is_Constant_Bound): New extended version of the subprogram that was
9140 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
9141 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
9142 * sem_aux.ads (Constant_Value): Fix typo in comment.
9143 * checks.adb (Generate_Index_Checks): New implementation which, for
9144 array objects with constant bounds, generates the runtime check
9145 referencing the bounds of the array type. For other cases this routine
9146 provides its previous behavior obtaining such values from the array
9148 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
9150 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
9151 we cannot have semantic interpretations of the new node.
9153 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9155 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
9158 2011-08-01 Arnaud Charlet <charlet@adacore.com>
9160 * sem_ch8.adb: Minor code editing.
9161 * s-vxwext.adb: Remove trailing space.
9162 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
9163 consistency with other files.
9165 2011-08-01 Thomas Quinot <quinot@adacore.com>
9167 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
9169 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9171 * par-ch10.adb: reject parameterized expressions as compilation unit.
9172 * sem_ch4.adb: handle properly conditional expression with overloaded
9173 then_clause and no else_clause.
9175 2011-08-01 Tristan Gingold <gingold@adacore.com>
9177 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
9178 like done by System.Aux_DEC.
9179 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
9181 2011-08-01 Yannick Moy <moy@adacore.com>
9183 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
9184 missing label at end of declaration (subprogram or package)
9185 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
9186 of positional and named parameter association
9187 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
9188 Error_Msg_SP which adds a prefix to the error message giving the name
9189 of the formal language analyzed
9190 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
9191 access result type in subprogram, unconstrained array as result type,.
9192 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
9194 * sem_ch8.adb: Code clean up.
9196 2011-08-01 Javier Miranda <miranda@adacore.com>
9198 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
9199 * einfo.ads (Access_Disp_Table): Fix documentation.
9200 (Dispatch_Table_Wrappers): Fix documentation.
9201 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
9202 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
9203 to enforce the documentation of this attribute.
9204 (Set_Is_Interface): Cleanup the assertion.
9205 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
9206 the Underlying_Type entity before reading attribute Access_Disp_Table.
9207 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
9208 Locate the Underlying_Type before reading attribute Access_Disp_Table.
9209 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
9210 the Underlying_Type entity before reading attribute Access_Disp_Table.
9211 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
9212 Locate the Underlying_Type entity before reading attribute
9215 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9217 * s-poosiz.ads: Additional overriding indicators.
9219 2011-08-01 Yannick Moy <moy@adacore.com>
9221 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
9223 (Analyze_Iteration_Scheme): issue error in formal mode when loop
9224 parameter specification does not include a subtype mark.
9225 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
9226 formal mode on abstract subprogram.
9227 (Analyze_Subprogram_Specification): issue error in formal mode on
9228 user-defined operator.
9229 (Process_Formals): issue error in formal mode on access parameter and
9231 * sem_ch9.adb (Analyze_Abort_Statement,
9232 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
9233 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
9234 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
9235 Analyze_Requeue, Analyze_Selective_Accept,
9236 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
9237 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
9238 issue error in formal mode on user-defined raise statement.
9240 2011-08-01 Thomas Quinot <quinot@adacore.com>
9242 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
9243 declaration being hidden when overriding an implicit inherited
9245 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
9246 (-gnats), do not complain about a source file that contains only a
9249 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9251 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
9252 variable if already set.
9254 2011-08-01 Arnaud Charlet <charlet@adacore.com>
9256 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
9257 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
9258 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
9259 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
9260 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
9261 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
9262 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
9263 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
9264 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
9265 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
9266 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
9267 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
9268 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
9269 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
9270 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
9271 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
9272 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
9273 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
9274 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
9275 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
9276 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
9277 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
9278 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
9279 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
9280 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
9281 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
9282 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
9283 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
9284 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
9285 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
9286 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
9287 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
9288 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
9289 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
9290 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
9291 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
9292 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
9293 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
9294 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
9295 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
9296 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
9297 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
9298 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
9299 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
9300 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
9301 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
9302 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
9303 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
9304 s-osinte-mingw.ads: Update to GPLv3 run-time license.
9305 Use GNAT instead of GNARL.
9307 2011-08-01 Bob Duff <duff@adacore.com>
9309 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
9310 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
9311 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
9314 2011-08-01 Yannick Moy <moy@adacore.com>
9316 * debug.adb (d.D) reverve flag for the SPARK mode
9317 (d.E) reverve flag for SPARK generation mode
9318 (d.F) reverve flag for Why generation mode
9319 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
9320 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
9321 functions which return True when the corresponding modes are set
9322 (Formal_Language): return "spark" or "alfa" when in formal verification
9324 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
9325 Error_Msg to prefix the error message with a tag giving the formal
9327 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
9328 message with a tag giving the formal language
9329 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
9331 (Analyze_Case_Statement): issue error in formal mode on case statement
9332 with a single "others" case alternative
9333 (Analyze_Exit_Statement): issue errors in formal mode on exit
9334 statements which do not respect SPARK restrictions
9335 (Analyze_Goto_Statement): issue error in formal mode on goto statement
9336 (Check_Unreachable_Code): always issue an error (not a warning) in
9337 formal mode on unreachable code (concerns both code after an infinite
9338 loop and after an unconditional jump, both not allowed in SPARK)
9339 * sem_ch6.adb (Analyze_Return_Statement): add call to
9340 Set_Return_Present for a procedure containing a return statement
9341 (already done for functions in Analyze_Function_Return)
9342 (Analyze_Function_Return): issue error in formal mode on extended
9343 return or if return is not last statement in function
9344 (Check_Missing_Return): issue error in formal mode if function does
9345 not end with return or if procedure contains a return
9346 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
9347 function to detect if there is an inner scope of its parameter S which
9350 2011-08-01 Thomas Quinot <quinot@adacore.com>
9352 * sem_ch6.ads: Minor reformatting.
9354 2011-08-01 Javier Miranda <miranda@adacore.com>
9356 * sem_util.adb (Abstract_Interface_List): Complete condition when
9357 processing private type declarations to avoid reading unavailable
9359 (Is_Synchronized_Tagged_Type): Complete condition when processing
9360 private extension declaration nodes to avoid reading unavailable
9363 2011-08-01 Thomas Quinot <quinot@adacore.com>
9365 * sem_ch3.adb: Minor reformatting.
9367 2011-08-01 Thomas Quinot <quinot@adacore.com>
9369 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
9370 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
9371 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
9372 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
9373 for VMS, instead parametrize the common implementation with
9374 System.Parameters declarations.
9376 2011-08-01 Eric Botcazou <ebotcazou@adacore.com>
9378 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
9380 2011-08-01 Tristan Gingold <gingold@adacore.com>
9382 * seh_init.c: Fix SEH handler installation on win64.
9384 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9386 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
9387 double analysis of an anonymous access to subprogram, because it can
9388 lead to improper sharing of profiles and a back-end crash.
9390 2011-08-01 Robert Dewar <dewar@adacore.com>
9392 * make.adb, sem_ch4.adb: Minor reformatting.
9393 * gcc-interface/Make-lang.in: Update dependencies.
9394 * sem_util.adb, exp_ch5.adb: Minor reformatting.
9396 2011-08-01 Arnaud Charlet <charlet@adacore.com>
9398 * gnat_rm.texi: Fix definition of Long_Integer.
9400 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9402 * exp_aggr.adb: check limit size of static aggregate unconditionally,
9403 to prevent storage exhaustion.
9404 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
9405 finalized is a function body, insert the cleanup code before the final
9406 return statement, to prevent spurious warnings.
9407 * s-pooglo.ads: add overriding indicator.
9409 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9411 * sem_ch4.adb (Operator_Check): improve error message when both a
9412 with_clause and a use_clause are needed to make operator usage legal.
9413 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
9414 determine whether a compilation unit is visible within an other,
9415 either through a with_clause in the current unit, or a with_clause in
9416 its library unit or one one of its parents.
9418 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9420 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
9421 over an arbitrary expression of an array or container type.
9422 * lib-xref.adb: clarify comment.
9424 2011-08-01 Bob Duff <duff@adacore.com>
9426 * einfo.ads: Minor reformatting.
9427 * debug.adb: Minor comment improvement.
9429 2011-08-01 Javier Miranda <miranda@adacore.com>
9431 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
9432 consider hidden subprograms as valid candidates.
9434 2011-08-01 Arnaud Charlet <charlet@adacore.com>
9436 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
9438 2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
9440 * gnat_ugn.texi: Fix typo.
9442 2011-08-01 Robert Dewar <dewar@adacore.com>
9444 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
9445 lib-xref.adb: Minor reformatting
9447 2011-08-01 Gary Dismukes <dismukes@adacore.com>
9449 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
9450 when to generate a call to Move_Final_List.
9451 (Has_Controlled_Parts): Remove this function.
9453 2011-08-01 Geert Bosch <bosch@adacore.com>
9455 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
9458 2011-08-01 Thomas Quinot <quinot@adacore.com>
9460 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
9461 explicit raise of a predefined exception as Comes_From_Source if the
9462 original N_Raise_Statement comes from source.
9464 2011-08-01 Robert Dewar <dewar@adacore.com>
9466 * sinfo.ads: Add comment.
9467 * sem_ch6.adb: Minor reformatting.
9469 2011-08-01 Robert Dewar <dewar@adacore.com>
9471 * freeze.adb (Freeze_Entity): Refine check for bad component size
9472 clause to avoid rejecting confirming clause when atomic/aliased present.
9474 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9476 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
9477 better determine whether an entity reference is a write.
9478 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
9480 * lib-xref.adb (Output_References): Do no suppress a read reference at
9481 the same location as an immediately preceeding modify-reference, to
9482 handle properly in-out actuals.
9484 2011-08-01 Tristan Gingold <gingold@adacore.com>
9486 * env.c (__gnat_setenv) [VMS]: Refine previous change.
9488 2011-08-01 Quentin Ochem <ochem@adacore.com>
9490 * i-cstrin.adb (New_String): Changed implementation, now uses only the
9491 heap to compute the result.
9493 2011-08-01 Robert Dewar <dewar@adacore.com>
9495 * atree.ads: Minor reformatting.
9497 2011-08-01 Emmanuel Briot <briot@adacore.com>
9499 * g-expect.adb (Get_Command_Output): Fix memory leak.
9501 2011-08-01 Geert Bosch <bosch@adacore.com>
9503 * cstand.adb (P_Float_Type): New procedure to print the definition of
9504 predefined fpt types.
9505 (P_Mixed_Name): New procedure to print a name using mixed case
9506 (Print_Standard): Use P_Float_Type for printing floating point types
9507 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
9508 precision IEEE float.
9510 2011-08-01 Thomas Quinot <quinot@adacore.com>
9512 * sem_ch3.adb: Minor reformatting.
9514 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9516 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
9517 the completion of a generic function, insert the new body rather than
9518 rewriting the original.
9520 2011-08-01 Yannick Moy <moy@adacore.com>
9522 * sinfo.ads, errout.ads: Typos in comments.
9524 2011-08-01 Robert Dewar <dewar@adacore.com>
9526 * par-endh.adb: Minor reformatting.
9528 2011-08-01 Robert Dewar <dewar@adacore.com>
9530 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
9531 (Pre_Post_Aspects): New subtype.
9532 * par-ch12.adb (P_Generic): New syntax for aspects in packages
9533 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
9534 * par-ch7.adb (P_Package): Remove Decl parameter
9535 (P_Package): Handle new syntax for aspects (before IS)
9536 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
9538 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
9539 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
9540 (P_Package): Remove Decl parameter
9541 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
9543 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
9545 * sem_util.ads, sem_util.adb (Static_Boolean): New function
9546 * sinfo.ads: Document new syntax for aspects in packages etc.
9547 * sprint.adb: Handle new syntax of aspects before IS in package
9549 2011-08-01 Thomas Quinot <quinot@adacore.com>
9551 * atree.ads: Minor reformatting.
9552 * sem_prag.adb: Minor reformatting.
9554 2011-08-01 Robert Dewar <dewar@adacore.com>
9556 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
9557 case expr alternative.
9559 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9561 * sem_ch12.adb: Fix typo.
9563 2011-08-01 Geert Bosch <bosch@adacore.com>
9565 * sem_prag.adb (Check_No_Link_Name): New procedure.
9566 (Process_Import_Or_Interface): Use Check_No_Link_Name.
9567 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
9568 instead of Standard_Long_Long_Float_Size global. Preparation for
9569 eventual removal of per type constants.
9570 * exp_util.ads (Get_Stream_Size): New function returning the stream
9571 size value of subtype E.
9572 * exp_util.adb (Get_Stream_Size): Implement new function.
9573 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
9575 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
9577 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
9579 2011-08-01 Geert Bosch <bosch@adacore.com>
9581 * cstand.adb: Fix comments.
9582 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
9585 2011-08-01 Robert Dewar <dewar@adacore.com>
9587 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
9589 2011-08-01 Geert Bosch <bosch@adacore.com>
9591 * atree.ads: Fix comment.
9593 2011-08-01 Robert Dewar <dewar@adacore.com>
9595 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
9596 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
9597 * par.adb: Add with for Namet.Sp.
9598 * par-tchk.adb: Minor reformatting.
9600 2011-08-01 Vincent Celier <celier@adacore.com>
9602 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
9603 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
9604 of the init procedure of a SAL.
9605 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
9608 2011-08-01 Thomas Quinot <quinot@adacore.com>
9610 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
9613 2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9615 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
9617 2011-08-01 Thomas Quinot <quinot@adacore.com>
9619 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
9620 conformant with its spec (return True only for types that have
9621 an overriding Initialize primitive operation that prevents them from
9622 having preelaborable initialization).
9623 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
9624 initialization for controlled types in Ada 2005 or later mode.
9626 2011-08-01 Robert Dewar <dewar@adacore.com>
9628 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
9630 (Same_Aspect): New function.
9631 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
9632 Type_Invariant, Precondition, Postcondition.
9633 * snames.ads-tmpl: Add Name_Type_Invariant.
9635 2011-08-01 Robert Dewar <dewar@adacore.com>
9637 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
9639 (Freeze_All_Ent): Fix error in handling inherited aspects.
9640 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
9641 already analyzed, but don't skip entire processing of a declaration,
9642 that's wrong in some cases of declarations being rewritten.
9643 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
9644 Don't delay for integer, string literals
9645 Treat predicates in usual manner for delay, remove special case code,
9647 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
9648 (Build_Predicate_Function): Update saved expression in aspect
9649 (Build_Invariant_Procedure): Update saved expression in aspect
9650 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
9651 of replacement of discriminant references if the reference is simple.
9653 2011-08-01 Robert Dewar <dewar@adacore.com>
9655 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
9656 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
9657 Static_Predicate and Dynamic_Predicate.
9658 (Build_Predicate_Function): Add processing for Static_Predicate
9659 and Dynamic_Predicate.
9660 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
9661 (From_Static_Predicate): New flag
9662 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
9664 2011-08-01 Robert Dewar <dewar@adacore.com>
9666 * usage.adb: Documentation cleanup for Ada version modes in usage.
9667 * expander.adb: Minor reformatting.
9669 2011-08-01 Robert Dewar <dewar@adacore.com>
9671 * atree.ads: Minor comment fix.
9672 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
9673 a-witeio.ads, sem_prag.adb: Minor reformatting.
9675 2011-08-01 Doug Rupp <rupp@adacore.com>
9677 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
9678 pointers. Use descrip.h header file for convenience. Add some
9681 2011-08-01 Robert Dewar <dewar@adacore.com>
9683 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
9684 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
9685 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
9687 (Check_Aspect_At_End_Of_Declarations): New procedure
9688 (Analye_Aspect_Specification): Minor changes for above procedures
9689 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
9690 specification node as well.
9692 2011-08-01 Pascal Obry <obry@adacore.com>
9694 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
9695 Windows files. Use GetFilesAttributes() in this case to check for file
9696 existence instead of returning with an error code.
9698 2011-08-01 Vincent Celier <celier@adacore.com>
9700 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
9701 High is above Source length.
9703 2011-08-01 Robert Dewar <dewar@adacore.com>
9705 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
9707 2011-08-01 Robert Dewar <dewar@adacore.com>
9709 * aspects.ads (Boolean_Aspects): New subtype.
9710 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
9711 for derived types in cases where the parent type and derived type have
9713 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
9714 with aspects when parent type also has aspects.
9715 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
9716 boolean expression at this point).
9717 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
9718 accordance with final decision on the Ada 2012 feature.
9719 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
9721 2011-08-01 Matthew Heaney <heaney@adacore.com>
9723 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
9725 2011-08-01 Pascal Obry <obry@adacore.com>
9727 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
9728 Fix Replace_Slice when High is above current string size.
9729 (Replace_Slice): Fix DL computation when High is above current
9732 2011-08-01 Gary Dismukes <dismukes@adacore.com>
9734 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
9736 2011-08-01 Matthew Heaney <heaney@adacore.com>
9738 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
9741 2011-08-01 Pascal Obry <obry@adacore.com>
9743 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
9746 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9748 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
9749 access to protected subprograms in generic bodies.
9750 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
9751 protected type, indicate that the convention of the subprogram is
9752 Convention_Protected, because it may be used in subsequent declarations
9753 within the protected declaration.
9755 2011-08-01 Vincent Celier <celier@adacore.com>
9757 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
9758 and "final" procedures when the name of the library is "ada", to avoid
9759 duplicate symbols "adainit" and "adafinal" in executables.
9761 2011-08-01 Ed Schonberg <schonberg@adacore.com>
9763 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
9764 quantified expression that appears within a postcondition and uses the
9765 Ada2012 'Result attribute.
9767 2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9769 * init.c (__gnat_error_handler): Cast reason to int.
9770 (__gnat_install_handler): Explain sa_sigaction use.
9772 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
9774 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
9775 subprogram has copy-in copy-out parameters, try to promote the mode of
9776 the return type if it is passed in registers.
9778 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
9780 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
9781 left operand as addressable.
9783 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
9785 * gcc-interface/gigi.h (build_function_stub): Remove.
9786 (build_return_expr): Likewise.
9787 (convert_vms_descriptor): Declare.
9788 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
9789 (build_function_stub): Move to...
9790 * gcc-interface/utils2.c (build_return_expr): Move to...
9791 * gcc-interface/trans.c (build_function_stub): ...here.
9792 (build_return_expr): ...here.
9793 (Subprogram_Body_to_gnu): Add local variable for language_function.
9794 Disconnect the parameter attributes cache, if any, once done with it.
9795 Call end_subprog_body only after setting the end_locus.
9796 Build the stub associated with the function, if any, at the very end.
9797 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
9798 variables and streamline control flow.
9800 2011-07-23 Arnaud Charlet <charlet@adacore.com>
9803 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
9806 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9809 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
9810 Assign to act.sa_sigaction.
9811 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
9812 current->return_address to char * before arithmetic.
9814 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9816 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
9817 Correct argument types.
9818 Extract code from reason.
9819 (__gnat_install_handler): Assign to act.sa_sigaction.
9821 2011-07-21 Eric Botcazou <ebotcazou@adacore.com>
9823 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
9824 (GNAT1_OBJS): ...here.
9826 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
9829 * g-socthi-mingw.adb (Fill): Fix formatting.
9831 * gcc-interface/gigi.h: Move around comment.
9833 2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9836 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
9838 2011-07-14 Florian Weimer <fw@deneb.enyo.de>
9841 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
9843 2011-07-13 Eric Botcazou <ebotcazou@adacore.com>
9845 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
9846 range comparison if Pmode is SImode.
9848 2011-07-12 Laurent GUERBY <laurent@guerby.net>
9849 Eric Botcazou <ebotcazou@adacore.com>
9851 * adadecode.c: Wrap up in extern "C" block.
9852 * adadecode.h: Likewise.
9853 * adaint.c: Likewise. Remove 'const' keyword.
9854 * adaint.h: Likewise.
9856 * atree.h: Likewise.
9858 * cstreams.c: Likewise.
9862 * final.c: Likewise.
9864 * initialize.c: Likewise.
9866 * namet.h: Likewise.
9867 * nlists.h: Likewise.
9868 * raise.c: Likewise.
9869 * raise.h: Likewise.
9870 * repinfo.h: Likewise.
9871 * seh_init.c: Likewise.
9872 * targext.c: Likewise.
9873 * tracebak.c: Likewise.
9874 * uintp.h: Likewise.
9875 * urealp.h: Likewise.
9876 * xeinfo.adb: Wrap up generated C code in extern "C" block.
9877 * xsinfo.adb: Likewise.
9878 * xsnamest.adb: Likewise.
9879 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
9880 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
9881 * gcc-interface/misc.c: Likewise.
9882 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
9883 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
9884 ada/targext.o here...
9885 (GNAT_ADA_OBJS): ...and not here.
9886 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
9887 (GNATBIND_OBJS): Reorder.
9889 2011-07-07 Richard Henderson <rth@redhat.com>
9891 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
9892 dwarf2out_frame_init.
9894 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
9896 * gcc-interface/misc.c (gnat_init): Tweak previous change.
9898 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9901 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
9903 2011-07-06 Richard Guenther <rguenther@suse.de>
9905 * gcc-interface/misc.c (gnat_init): Merge calls to
9906 build_common_tree_nodes and build_common_tree_nodes_2.
9907 Re-initialize boolean_false_node.
9909 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
9910 Olivier Hainque <hainque@adacore.com>
9911 Nicolas Setton <setton@adacore.com>
9913 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
9914 the type according to the ARTIFICIAL_P parameter.
9915 (create_type_decl): Likewise.
9916 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
9918 2011-07-01 Eric Botcazou <ebotcazou@adacore.com>
9920 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
9921 (gnatbind): Likewise.
9923 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9925 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
9927 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
9929 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
9930 local variable throughout. Remove useless call to Base_Type.
9931 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
9932 Take it also into account for the volatileness of the field. Set the
9933 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
9935 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
9937 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
9938 on a dereference built for a by-ref object if it has an address clause.
9940 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
9942 * einfo.ads (Address_Taken): Document use for the second argument of
9943 Asm_Input and Asm_Output attributes.
9944 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
9945 argument is an entity name, then set Address_Taken on it.
9946 <Attribute_Asm_Output>: Likewise.
9947 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
9948 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
9949 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
9950 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
9952 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
9955 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
9957 2011-06-14 Joseph Myers <joseph@codesourcery.com>
9959 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
9960 (ada/utils.o): Update dependencies.
9961 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
9962 ../../../libcpp/libcpp.a.
9963 * gcc-interface/utils.c: Include common/common-target.h.
9964 (process_attributes): Use targetm_common.have_named_sections.
9966 2011-06-07 Richard Guenther <rguenther@suse.de>
9968 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
9971 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
9973 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
9974 TREE_THIS_NOTRAP flag.
9976 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
9978 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
9981 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
9983 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
9984 constants whose full view has discriminants specially.
9986 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
9988 * gcc-interface/utils.c: Include diagnostic.h.
9989 (gnat_write_global_declarations): Output debug information for all
9990 global type declarations before finalizing the compilation unit.
9991 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
9993 2011-05-25 Jakub Jelinek <jakub@redhat.com>
9995 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
9997 2011-05-25 Kai Tietz <ktietz@redhat.com>
9999 * adaint.c (__gnat_to_canonical_file_list_next): Use array
10000 initialization instead of const/none-const pointer assignment.
10002 2011-05-24 Joseph Myers <joseph@codesourcery.com>
10004 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
10005 $(EXTRA_GNAT1_OBJS).
10006 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
10007 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
10008 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
10009 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
10010 libcommon-target.a instead of prefix.o.
10012 2011-05-21 Joseph Myers <joseph@codesourcery.com>
10015 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
10017 2011-05-20 Joseph Myers <joseph@codesourcery.com>
10019 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
10020 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
10021 instead of version.o.
10023 2011-05-18 Kai Tietz <ktietz@redhat.com>
10025 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
10026 boolean_false_node instead of integer_zero_node.
10027 (convert_with_check): Likewise.
10028 * gcc-interface/decl.c (choices_to_gnu): Likewise.
10030 2011-05-12 Eric Botcazou <ebotcazou@adacore.com>
10032 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
10033 type of the parameter is an unconstrained array, convert the actual to
10034 the type of the formal in the In Out and Out cases as well.
10036 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
10038 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
10039 call build_function_type_array or build_varargs_function_type_array
10041 (create_subprog_type): Don't call build_function_type; call
10042 build_function_type_vec instead.
10044 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
10046 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
10047 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
10048 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
10050 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
10052 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
10054 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
10055 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
10057 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
10059 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
10061 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
10063 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
10064 instead of accessing TYPE_ARG_TYPES directly.
10065 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
10067 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
10070 * gcc-interface/gigi.h (get_variant_part): Declare.
10071 * gcc-interface/decl.c (get_variant_part): Make global.
10072 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
10073 types have the same constant size, are record types and T1 has a
10074 variant part while T2 doesn't.
10076 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
10078 * gcc-interface/utils.c (begin_subprog_body): Do not call
10080 (end_subprog_body): Likewise.
10082 2011-05-04 Richard Guenther <rguenther@suse.de>
10084 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
10086 (pos_to_constructor): Likewise.
10088 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10089 Eric Botcazou <ebotcazou@adacore.com>
10091 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
10092 of build_function_type. Adjust calls to...
10093 (build_raise_check): ...this. Do not take a void_tree parameter.
10094 Call build_function_type_list instead of build_function_type.
10095 Fix head comment and swap couple of conditional blocks.
10097 2011-04-30 Eric Botcazou <ebotcazou@adacore.com>
10099 * gnatvsn.ads (Library_Version): Bump to 4.7.
10100 (Current_Year): Bump to 2011.
10102 2011-04-29 Michael Matz <matz@suse.de>
10104 * gcc-interface/misc.c (gnat_handle_option): Set
10105 warn_maybe_uninitialized.
10107 2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
10109 * gnat_ugn.texi (Complexity Metrics Control): Update link to
10110 the Watson/McCabe paper.
10112 2011-04-23 Jim Meyering <meyering@redhat.com>
10114 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
10116 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
10118 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
10121 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
10123 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
10125 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
10126 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
10127 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
10128 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
10129 <all>: Do not set flags on the reused DECL node coming from an alias.
10130 Set DECL_IGNORED_P on the DECL node built for subprograms if they
10131 don't need debug info here...
10132 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
10133 (gigi): Adjust calls to create_subprog_decl.
10134 (build_raise_check): Likewise.
10135 (establish_gnat_vms_condition_handler): Likewise.
10136 (Compilation_Unit_to_gnu): Likewise.
10137 (gnat_to_gnu): Likewise.
10139 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
10141 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
10142 (NO_REORDER_ADAFLAGS): New variable.
10143 (EXTRA_GNATTOOLS): Always define.
10144 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
10145 Clean up and adjust list of files compiled with special options.
10146 * gcc-interface/Make-lang.in: Likewise.
10147 (ada/decl.o): Cosmetical change.
10148 (ada/misc.o): Remove dependency on $(PLUGIN_H).
10150 2011-04-20 Jim Meyering <meyering@redhat.com>
10152 * initialize.c (__gnat_initialize): Remove useless if-before-free.
10154 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
10156 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
10157 $(CFLAGS) on the link line.
10159 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
10161 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
10162 padded type built for the return type if it is unconstrained.
10164 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
10166 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
10168 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
10170 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
10171 before calling TREE_CHAIN.
10172 * gcc-interface/misc.c (gnat_init_ts): New function.
10173 (LANG_HOOKS_INIT_TS): Define.
10175 2011-04-12 Martin Jambor <mjambor@suse.cz>
10177 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
10178 instead of cgraph_node.
10180 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
10182 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
10183 alignment on fields of the RETURN type built for the Copy-In Copy-Out
10186 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
10188 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
10189 of aggregate types that contain a placeholder.
10191 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
10193 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
10195 (handle_type_generic_attribute): Likewise.
10197 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
10200 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
10202 2011-04-04 Kai Tietz <ktietz@redhat.com>
10205 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
10208 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10210 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
10211 type case, do not strip a padding type around the array type.
10213 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10215 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
10218 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10220 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
10221 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
10222 code for -feliminate-unused-debug-types.
10223 (gnat_post_options): Likewise.
10225 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10227 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
10228 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
10231 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10233 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
10234 DECL_ARTIFICIAL flag on enumeration types.
10236 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10238 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
10239 fat pointer types artificial unconditionally.
10240 <E_Array_Subtype>: Attach the base array type as a parallel type if it
10243 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10245 * gcc-interface/gigi.h (get_dummy_type): Declare.
10246 (build_dummy_unc_pointer_types): Likewise.
10247 (finish_fat_pointer_type): Likewise.
10248 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
10249 fat pointer type has been built, complete it in place.
10250 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
10251 and thin pointers. Remove useless variable.
10252 (finish_fat_pointer_type): Make global and move to...
10253 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
10254 (get_dummy_type): New function.
10255 (build_dummy_unc_pointer_types): Likewise.
10256 (gnat_pushdecl): Propage the name to the anonymous variants only.
10257 (update_pointer_to): Only adjust the pointer types in the unconstrained
10260 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10262 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
10263 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
10264 if this is a Taft amendment type and the full declaration is available.
10265 * gcc-interface/trans.c (process_type): Likewise.
10266 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
10267 (process_freeze_entity): Likewise.
10268 * gcc-interface/utils.c (dummy_global): New static variable.
10269 (gnat_write_global_declarations): If there are types declared as used
10270 at the global level, insert them in the global hash table.
10272 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10274 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
10275 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
10276 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
10278 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
10279 flag of the type accordingly.
10280 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
10282 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
10284 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
10285 finalizing types when updating the pointers to the designated type.
10286 <all>: Finalize the deferred types even if we didn't defer processing
10287 of incomplete types in this invocation.
10289 2011-04-01 Olivier Hainque <hainque@adacore.com>
10290 Nicolas Setton <setton@adacore.com>
10291 Eric Botcazou <ebotcazou@adacore.com>
10293 * gcc-interface/misc.c (gnat_descriptive_type): New function.
10294 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
10296 2011-03-28 Kai Tietz <ktietz@redhat.com>
10298 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
10300 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
10301 * system-mingw.ads (System): Change ZCX_By_Default default to True.
10303 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
10305 2011-03-28 Tristan Gingold <gingold@adacore.com>
10308 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
10309 Use ada output of gnatbind.
10310 (ada/b_gnatb.adb): Ditto.
10311 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
10312 (ada.mostlyclean, ada.stage1)
10313 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
10314 (ada.stagefeedback): Adjust.
10315 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
10316 Use ada output of gnatbind.
10317 (b_gnatm.adb): Ditto.
10318 (b_gnatl.o, b_gnatm.o): New rules.
10320 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
10322 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
10323 for the padded type built to support a specified size or alignment.
10325 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
10327 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
10328 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
10329 unconditionally to the end of the unit when the designated type is
10331 <all>: Rename local variable. Attempt to un-defer types only and do it
10332 for limited_with'ed types as well.
10333 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
10334 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
10335 consistently and remove redundant call to finalize_from_with_types.
10337 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
10339 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
10340 subprograms without a previous spec declared in the same unit.
10341 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
10342 subprograms at the end of the unit instead of at the beginning.
10343 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
10344 isn't public for the special handling of non-inline functions nested
10345 inside inline external functions.
10347 2011-03-25 Jeff Law <law@redhat.com>
10349 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
10351 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10353 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
10354 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
10355 to compute Set_Size_Depends_On_Discriminant.
10356 (Layout_Type): Call it on array types in back-end layout mode.
10357 * sem_util.adb (Requires_Transient_Scope): Return true for array
10358 types only if the size depends on the value of discriminants.
10359 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
10360 type if the RHS is a call to a function that returns an unconstrained
10361 type with default discriminant.
10363 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
10365 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
10366 non-conversion to the nominal result type at the end.
10368 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
10370 * gcc-interface/trans.c (create_temporary): New function taken from...
10371 (create_init_temporary): ...here. Call it.
10372 (call_to_gnu): Create the temporary for the return value early, if any.
10373 Create it for a function with copy-in/copy-out parameters if there is
10374 no target; in other cases of copy-in/copy-out, use another temporary.
10375 Push the new binding level lazily. Add and rename local variables.
10377 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
10379 * gcc-interface/decl.c (validate_size): Improve comments and tweak
10381 (set_rm_size): Likewise.
10383 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
10385 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
10386 for the padded type built in order to support a specified alignment.
10387 Fix incorrect formatting.
10389 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
10392 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
10394 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
10396 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
10397 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
10398 to the end of the list. Adjust recursive call. Rename local variable.
10399 If REORDER is true, reorder components of the record type.
10400 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
10401 components_to_record and adjust the parameter list.
10403 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
10405 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
10406 disabled, use the variable for bounds of loop iteration scheme.
10408 2011-03-21 Kai Tietz <ktietz@redhat.com>
10411 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
10413 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
10415 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
10416 out whether the expression is read-only. Short-circuit placeholder
10417 case and rename a couple of local variables.
10419 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
10421 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
10422 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
10423 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
10424 (convert): Deal with conversions from a smaller form type specially.
10426 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
10428 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
10429 its argument, except for the special -I- switch.
10431 2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
10433 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
10436 2011-02-08 Eric Botcazou <ebotcazou@adacore.com>
10438 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
10440 2011-02-03 Eric Botcazou <ebotcazou@adacore.com>
10442 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
10444 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
10445 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
10446 instead of GNAT_FORMAL. Protect the expression against multiple uses.
10447 Do not generate the check directly, instead instantiate the template
10448 check present in the descriptor.
10449 (make_descriptor_field): Move around.
10450 (build_vms_descriptor32): Build a template check in the POINTER field.
10451 (build_vms_descriptor): Remove useless suffixes.
10452 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
10454 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
10457 * targext.c: Include target files if IN_RTS is defined.
10459 2011-01-26 Richard Guenther <rguenther@suse.de>
10462 * targext.c: Include config.h.
10463 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
10466 2011-01-04 Pascal Obry <obry@adacore.com>
10467 Eric Botcazou <ebotcazou@adacore.com>
10469 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
10471 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
10473 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
10474 end-of-case on the end label and its associated gotos, if any.
10476 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
10478 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
10479 expressions of the parameter cache within the statement group of
10480 the CICO mechanism.
10482 2011-01-04 Olivier Hainque <hainque@adacore.com>
10483 Eric Botcazou <ebotcazou@adacore.com>
10485 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
10486 (set_end_locus_from_node): New function.
10487 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
10488 make and the function end_locus.
10489 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
10490 for the elaboration subprogram.
10491 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
10492 set the end_locus of the expression as well.
10494 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
10497 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
10498 variables that are referenced in exception handlers volatile.
10502 Copyright (C) 2011 Free Software Foundation, Inc.
10504 Copying and distribution of this file, with or without modification,
10505 are permitted in any medium without royalty provided the copyright
10506 notice and this notice are preserved.