1 2011-08-02 Yannick Moy <moy@adacore.com>
3 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
4 for new flag denoting which subprogram bodies are in ALFA
5 * restrict.adb, sem_ch7.adb: Update comment
6 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
7 sem_ch9.adb, sem_res.adb: Add calls to
8 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
9 * sem_ch6.adb (Analyze_Function_Return): add calls to
10 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
11 middle of the body, and extended return.
12 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
13 False when missing return.
14 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
15 to True for subprograms whose spec is in ALFA. Remove later on the flag
16 on the entity used for a subprogram body when there exists a separate
18 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
19 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
20 False, otherwise do nothing.
22 2011-08-02 Robert Dewar <dewar@adacore.com>
24 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
26 2011-08-02 Yannick Moy <moy@adacore.com>
28 * sem_ch4.ads: minor formatting.
30 2011-08-02 Yannick Moy <moy@adacore.com>
32 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
33 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
34 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
35 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
36 opt.ads: cleanup of SPARK mode
38 2011-08-02 Yannick Moy <moy@adacore.com>
40 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
42 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
43 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
45 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
46 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
47 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
48 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
50 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
52 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
53 functions whose return type is not in ALFA.
54 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
56 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
57 parameter's type is not in ALFA.
58 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
61 2011-08-02 Ed Schonberg <schonberg@adacore.com>
63 * sem_ch6 (Analyze_Expression_Function): treat the function as
64 Inline_Always, and introduce a subprogram declaration for it when it is
66 * inline.adb (Add_Inlined_Body): recognize bodies that come from
67 expression functions, so that the back-end can determine whether they
68 can in fact be inlined.
69 * sem_util.adb (Is_Expression_Function): predicate to determine whether
70 a function body comes from an expression function.
72 2011-08-02 Gary Dismukes <dismukes@adacore.com>
74 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
75 null exclusions to test Can_Never_Be_Null on the anonymous access types
76 of the formals rather than testing the formals themselves. Exclude this
77 check in cases where the Old_Formal is marked as a controlling formal,
78 to avoid issuing spurious errors for bodies completing dispatching
79 operations (due to the flag not getting set on controlling access
80 formals in body specs).
81 (Find_Corresponding_Spec): When checking full and subtype conformance of
82 subprogram bodies in instances, pass Designated and E in that order, for
83 consistency with the expected order of the formals (New_Id followed by
86 2011-08-02 Robert Dewar <dewar@adacore.com>
88 * sem_ch8.adb: Minor reformatting.
90 2011-08-02 Ed Schonberg <schonberg@adacore.com>
92 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
93 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
94 primitive operations of class-wide actuals.
96 2011-08-02 Javier Miranda <miranda@adacore.com>
98 * exp_atag.ads, exp_atag.adb
99 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
100 since its value is implicitly passed in argument Typ.
101 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
102 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
103 Build_Common_Dispatching_Select_Statements.
105 2011-08-02 Robert Dewar <dewar@adacore.com>
107 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
108 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
111 2011-08-02 Robert Dewar <dewar@adacore.com>
113 * sem_res.adb: Minor reformatting.
114 * sem_prag.adb: Minor reformatting.
116 2011-08-02 Javier Miranda <miranda@adacore.com>
118 * exp_atag.adb, exp_atags.ads
119 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
120 by the tagged type Entity. Required to use this routine in the VM
121 targets since we do not have available the Tag entity in the VM
124 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
125 Ada.Tags has not been previously loaded.
127 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
128 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
130 (Enclosing_Dynamic_Scope): Add missing support to handle the full
131 view of enclosing scopes. Required to handle enclosing scopes that
132 are synchronized types whose full view is a task type.
134 (Build_VM_TSDs): Minor code improvement to avoid generating and
135 analyzing lists with empty nodes.
136 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
137 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
138 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
139 (Make_Disp_Timed_Select_Body): Add support for VM targets.
140 (Make_Select_Specific_Data_Table): Add support for VM targets.
141 (Make_VM_TSD): Generate code to initialize the SSD structure of
144 2011-08-02 Yannick Moy <moy@adacore.com>
146 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
147 cross-references section in ALI.
148 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
149 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
151 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
152 subprogram or package entity of a node
153 (Is_Local_Reference_Type): new function returns True for references
154 selected in local cross-references.
155 (Lt): function extracted from Lt in Output_References
156 (Write_Entity_Name): function extracted from Output_References
157 (Generate_Definition): generate reference with type 'D' for definition
158 of objects (object declaration and parameter specification), with
159 appropriate locations and units, for use in local cross-references.
160 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
161 references of type 'I' for initialization in object definition.
162 (Output_References): move part of function Lt and procedure
163 Write_Entity_Name outside of the body. Ignore references of types 'D'
164 and 'I' introduced for local cross-references.
165 (Output_Local_References): new procedure to output the local
166 cross-references sections.
167 (Lref_Entity_Status): new array defining whether an entity is a local
168 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
169 with 'I' type when initialization expression is present.
170 * get_scos.adb, get_scos.ads: Correct comments and typos
172 2011-08-02 Javier Miranda <miranda@adacore.com>
174 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
176 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
178 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
181 2011-08-02 Vincent Celier <celier@adacore.com>
183 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
184 (No_Space_Img): New function
185 (Find_Excluded_Sources): When reading from a file, record the file name
186 and the line number for each excluded source.
187 (Mark_Excluded_Sources): When reporting an error, if the excluded
188 sources were read from a file, include file name and line number in
191 2011-08-02 Ed Schonberg <schonberg@adacore.com>
193 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
195 2011-08-02 Robert Dewar <dewar@adacore.com>
197 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
199 2011-08-02 Javier Miranda <miranda@adacore.com>
201 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
202 generation of TSDs to the DOTNET compiler.
203 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
204 generation of TSDs to the DOTNET compiler.
206 2011-08-02 Javier Miranda <miranda@adacore.com>
208 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
209 record of all the tagged types declared inside library level package
210 declarations, library level package bodies or library level subprograms.
211 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
212 associated with a given tagged type.
213 (Build_VM_TSDs): New subprogram.
214 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
215 compilation units that are subprograms.
216 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
217 compilation units that are package bodies.
218 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
219 units that are a package declaration or a package instantiation.
220 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
221 reorganization to improve the error generated by the frontend when the
222 function Ada.Tags.Secondary_Tag is not available.
223 * rtsfind.ads (RE_Register_TSD): New runtime entity.
224 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
226 2011-08-02 Javier Miranda <miranda@adacore.com>
228 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
230 2011-08-02 Robert Dewar <dewar@adacore.com>
232 * s-imenne.ads: Minor reformatting.
234 2011-08-02 Robert Dewar <dewar@adacore.com>
236 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
237 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
238 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
240 2011-08-02 Robert Dewar <dewar@adacore.com>
242 * einfo.ads (Materialize_Entity): Document this is only for renamings
243 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
244 required debug information in the case where we transform the object
245 declaration into a renaming declaration.
246 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
248 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
251 2011-08-02 Robert Dewar <dewar@adacore.com>
253 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
255 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
256 Suppress_Initialization/Initialization_Suppressed.
257 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
258 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
259 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
260 * sem_prag.adb: New processing for pragma Suppress_Initialization.
262 2011-08-02 Robert Dewar <dewar@adacore.com>
264 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
267 2011-08-02 Ed Schonberg <schonberg@adacore.com>
269 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
270 only have inheritable classwide pre/postconditions.
272 2011-08-02 Javier Miranda <miranda@adacore.com>
274 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
275 * rtsfind.ads (RE_Check_TSD): New runtime entity.
276 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
277 checks if the external tag of a type is the same as the external tag
278 of some other declaration.
280 2011-08-02 Thomas Quinot <quinot@adacore.com>
282 * s-taskin.ads: Minor reformatting.
284 2011-08-02 Emmanuel Briot <briot@adacore.com>
286 * g-comlin.adb (Display_Help): swap the order in which it prints the
287 short help and the general usage.
289 2011-08-02 Ed Schonberg <schonberg@adacore.com>
291 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
292 the aspect declarations and attach them to the generic copy for
294 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
295 declarations of the generic tree to the new subprogram declarations.
296 * sem_attr.adb (Check_Precondition_Postcondition): recognize
297 conditions that apply to a subprogram instance.
299 2011-08-02 Robert Dewar <dewar@adacore.com>
301 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
303 2011-08-02 Ed Schonberg <schonberg@adacore.com>
305 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
306 private type with a tagged full view is not derived in the immediate
307 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
309 2011-08-02 Robert Dewar <dewar@adacore.com>
311 * exp_ch4.adb: Minor reformatting.
313 2011-08-02 Ed Schonberg <schonberg@adacore.com>
315 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
316 Ada2012 iterator, the loop will be rewritten during expansion into a
317 while loop with a cursor and an element declaration. Do not analyze the
318 body in this case, because if the container is for indefinite types the
319 actual subtype of the elements will only be determined when the cursor
320 declaration is analyzed.
322 2011-08-02 Arnaud Charlet <charlet@adacore.com>
324 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
325 size/alignment related attributes in CodePeer_Mode.
327 2011-08-02 Gary Dismukes <dismukes@adacore.com>
329 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
330 Prepend_Element, since this can result in the operation getting the
331 wrong slot in the full type's dispatch table if the full type has
332 inherited operations. The incomplete type's operation will get added
333 to the proper position in the full type's primitives
334 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
335 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
336 dispatching operations, since there are cases where nonprimitive
337 subprograms can get added to the list of incomplete dependents (such
338 as subprograms in nested packages).
339 * sem_ch6.adb (Process_Formals): First, remove test for being in a
340 private part when determining whether to add a primitive with a
341 parameter of a tagged incomplete type to the Private_Dependents list.
342 Such primitives can also occur in the visible part, and should not have
343 been excluded from being private dependents.
344 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
345 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
346 list of a Taft-amendment incomplete type is a primitive before issuing
347 an error that the full type must appear in the same unit. There are
348 cases where nonprimitives can be in the list (such as subprograms in
350 * sem_disp.adb (Derives_From): Use correct condition for checking that
351 a formal's type is derived from the type of the corresponding formal in
352 the parent subprogram (the condition was completely wrong). Add
353 checking that was missing for controlling result types being derived
354 from the result type of the parent operation.
356 2011-08-02 Yannick Moy <moy@adacore.com>
358 * errout.adb (First_Node): minor renaming
359 * restrict.adb (Check_Formal_Restriction): put restriction warning on
362 2011-08-02 Yannick Moy <moy@adacore.com>
364 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
365 before accessing operands.
366 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
367 decide whether an initialization expression respects SPARK rules, as
368 the plain node is the expanded one. This allows for more valid warnings
370 * gnat_rm.texi: Minor update.
372 2011-08-02 Arnaud Charlet <charlet@adacore.com>
374 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
377 2011-08-02 Robert Dewar <dewar@adacore.com>
379 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
381 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
383 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
384 loop statements and the element renaming declaration with a block when
385 the element type is controlled.
387 2011-08-02 Yannick Moy <moy@adacore.com>
389 * sinfo.ads: Minor formatting.
391 2011-08-02 Ed Schonberg <schonberg@adacore.com>
393 * sem_aggr.adb (Add_Association): if the association has a box and no
394 expression, use the Sloc of the aggregate itself for the new
396 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
399 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
401 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
402 When a container is provided via a function call, generate a renaming
403 of the function result. This avoids the creation of a transient scope
404 and the premature finalization of the container.
405 * exp_ch7.adb (Is_Container_Cursor): Removed.
406 (Wrap_Transient_Declaration): Remove the supression of the finalization
407 of the list controller when the declaration denotes a container cursor,
410 2011-08-02 Yannick Moy <moy@adacore.com>
412 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
413 node is from source, instead of the original node being from source.
415 (Resolve_Array_Aggregate): refine the check for a static expression, to
416 recognize also static ranges
417 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
418 Array_Type_Declaration): postpone the test for the type being a subtype
419 mark after the type has been resolved, so that component-selection and
420 expanded-name are discriminated.
421 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
422 to distinguish the case of an iteration scheme, so that an error is
423 issed on a non-static range in SPARK except in an iteration scheme.
424 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
426 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
427 user-defined operators so that they are allowed in renaming
429 (Find_Selected_Component): refine the check for prefixing of operators
430 so that they are allowed in renaming. Move the checks for restrictions
431 on selector name after analysis discriminated between
432 component-selection and expanded-name.
433 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
434 concatenation argument of string type if it is static.
435 * sem_util.adb, sem_util.ads
436 (Check_Later_Vs_Basic_Declarations): add a new function
437 Is_Later_Declarative_Item to decice which declarations are allowed as
438 later items, in the two different modes Ada 83 and SPARK. In the SPARK
439 mode, add that renamings are considered as later items.
440 (Enclosing_Package): new function to return the enclosing package
441 (Enter_Name): correct the rule for homonyms in SPARK
442 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
443 from source (result of expansion) to avoid issuing wrong warnings.
445 2011-08-02 Ed Schonberg <schonberg@adacore.com>
447 * errout.adb: On anything but an expression First_Node returns its
450 2011-08-02 Pascal Obry <obry@adacore.com>
452 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
454 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
456 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
457 Set the associated loop as the related expression of internally
459 * exp_ch7.adb (Is_Container_Cursor): New routine.
460 (Wrap_Transient_Declaration): Supress the finalization of the list
461 controller when the declaration denotes a container cursor.
463 2011-08-02 Yannick Moy <moy@adacore.com>
465 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
467 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
468 expression is a simple expression. This check cannot be performed in
469 the semantics, so just drop it.
470 (P_Index_Or_Discriminant_Constraint): move check that the index or
471 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
472 semantics. Other cases were previously checked in the semantics.
473 * par-ch4.adb (P_Name): move checks that a selector name is not
474 character literal or an operator symbol to Find_Selected_Component in
476 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
477 declarations are not placed after later declarations in a separate
478 procedure in Sem_Util (possibly not the best choice?), to be used both
479 during parsing, for Ada 83 mode, and during semantic analysis, for
481 * par-endh.adb (Check_End): move check that end label is not missing
482 to Process_End_Label in the semantics
483 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
484 the special case for SPARK restriction
485 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
486 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
487 parameter Force to issue the error message even on internal node (used
488 for generated end label). Call Check_Restriction to check when an error
489 must be issued. In SPARK mode, issue an error message even if the
490 restriction is not set.
491 (Check_Restriction): new procedure with an additional out parameter to
492 inform the caller that a message has been issued
493 * sem_aggr.adb: Minor modification of message
494 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
495 instead of issuing an error message directly
496 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
497 declarations are not placed after later declarations, by calling
498 Check_Later_Vs_Basic_Declarations
499 (Analyze_Subtype_Declaration): move here the check that an index or
500 discriminant constraint must be a subtype mark. Change the check that
501 a subtype of String must start at one so that it works on subtype marks.
502 * sem_ch4.adb (Analyze_Call): move here the check that a named
503 association cannot follow a positional one in a call
504 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
505 instead of issuing an error message directly
506 * sem_ch8.adb (Find_Selected_Component): move here the check that a
507 selector name is not a character literal or an operator symbol. Move
508 here the check that the prefix of an expanded name cannot be a
509 subprogram or a loop statement.
510 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
511 procedure called from parsing and semantics to check that basic
512 declarations are not placed after later declarations
513 (Process_End_Label): move here the check that end label is not missing
515 2011-08-02 Arnaud Charlet <charlet@adacore.com>
517 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
518 representation clause in codepeer mode, since it confuses CodePeer and
519 does not bring useful info.
521 2011-08-02 Ed Falis <falis@adacore.com>
523 * init.c: initialize fp hw on MILS.
525 2011-08-02 Ed Schonberg <schonberg@adacore.com>
527 * errout.adb (First_Node): for bodies, return the node itself (small
528 optimization). For other nodes, do not check source_unit if the node
531 2011-08-02 Robert Dewar <dewar@adacore.com>
533 * exp_ch3.adb: Minor comment additions.
534 * sem_ch13.adb: Minor reformatting.
536 2011-08-02 Pascal Obry <obry@adacore.com>
538 * make.adb, makeutl.adb: Removes some superfluous directory separator.
540 2011-08-02 Robert Dewar <dewar@adacore.com>
542 * sem_attr.adb: Minor reformatting.
544 2011-08-02 Robert Dewar <dewar@adacore.com>
546 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
547 (Has_Default_Component_Value): Removed
548 * einfo.ads Comment updates
549 (Has_Default_Aspect): Replaces Has_Default_Value
550 (Has_Default_Component_Value): Removed
552 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
554 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
555 (Get_Simple_Init_Val): Handle Default_Value aspect
556 (Needs_Simple_Initialization): Handle Default_Value aspect
557 * exp_ch3.ads: Needs_Simple_Initialization
558 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
559 * par-prag.adb (Pragma_Default[_Component]Value) Removed
561 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
562 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
563 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
565 2011-08-02 Ed Schonberg <schonberg@adacore.com>
567 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
568 package containing iteration primitives.
569 exp_ch5.adb (Expand_Iterator_Loop): ditto.
571 2011-08-02 Ed Schonberg <schonberg@adacore.com>
573 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
574 "of", pre-analyze expression in case it is a function call with
575 finalization actions that must be placed ahead of the loop.
576 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
577 on an Ada2012 iterator, insert them ahead of the rewritten loop.
579 2011-08-02 Geert Bosch <bosch@adacore.com>
581 * cstand.adb (Create_Float_Types): Only consider C's long double for
582 Long_Long_Float, in addition to double.
584 2011-08-02 Robert Dewar <dewar@adacore.com>
586 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
587 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
588 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
591 2011-08-02 Ed Schonberg <schonberg@adacore.com>
593 * sem_attr.adb: handle properly 'Result when it is a prefix of an
596 2011-08-02 Javier Miranda <miranda@adacore.com>
598 * einfo.ads, einfo.adb
599 (Original_Access_Type): Move this attribute to Node26 since there was
600 an undocumented use of Node21 in E_Access_Subprogram_Type entities
601 which causes conflicts and breaks the generation of the .NET compiler.
602 (Interface_Name): Add missing documentation on JGNAT only uses of
605 2011-08-02 Geert Bosch <bosch@adacore.com>
607 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
608 (Find_Back_End_Float_Type): Likewise
609 (Create_Back_End_Float_Types): Likewise
610 (Create_Float_Types): Likewise
611 (Register_Float_Type): Likewise
612 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
613 Nlist and split out type selection in new local Find_Base_Type function.
614 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
616 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
618 2011-08-02 Robert Dewar <dewar@adacore.com>
620 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
622 * opt.ads: Minor comment change.
623 * sem_ch12.adb: Minor code reorganization.
625 2011-08-02 Gary Dismukes <dismukes@adacore.com>
627 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
628 subtype's list of rep items to the list on the full subtype in the case
629 where the lists are the same.
631 2011-08-02 Geert Bosch <bosch@adacore.com>
633 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
634 using the one from System.Strings, which also deallocates all strings.
636 2011-08-02 Geert Bosch <bosch@adacore.com>
638 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
640 * gcc-interface/Make-lang.in: Update dependencies.
642 2011-08-02 Olivier Hainque <hainque@adacore.com>
644 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
647 2011-08-02 Javier Miranda <miranda@adacore.com>
649 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
650 associated with anonymous access to subprograms.
652 2011-08-02 Geert Bosch <bosch@adacore.com>
655 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
656 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
657 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
658 (Add_Symbol_Definition): Move to switch-c.adb
659 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
660 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
661 (Add_Symbol_Definition): Move to switch-c.adb.
662 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
664 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
666 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
667 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
669 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
670 (Add_Symbol_Definition): Moved from Prepcomp.
671 * switch-c.ads: Update copyright notice. Use String_List instead of
672 Argument_List, removing dependency on System.OS_Lib.
674 2011-08-02 Yannick Moy <moy@adacore.com>
676 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
677 mode on initialization expression which does not respect SPARK
679 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
680 if the tree referenced by its argument represents an initialization
681 expression in SPARK, suitable for initializing an object in an object
684 2011-08-02 Javier Miranda <miranda@adacore.com>
686 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
687 internally generated access to subprogram with its associated protected
689 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
691 2011-08-02 Geert Bosch <bosch@adacore.com>
693 * cstand.adb (Register_Float_Type): Print information about type to
694 register, if the Debug_Flag_Dot_B is set.
695 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
696 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
697 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
698 with a requested precision of more than Max_Digits digits and no more
699 than Max_Base_Digits digits, if a range specification is present and the
700 Predefined_Float_Types list has a suitable type to derive from.
701 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
702 case of type completion with pragma Import
704 (Process_Import_Predefined_Type): Processing to complete a type
705 with pragma Import. Currently supports floating point types only.
706 (Set_Convention_From_Pragma): Do nothing without underlying type.
707 (Process_Convention): Guard against absence of underlying type,
708 which may happen when importing incomplete types.
709 (Process_Import_Or_Interface): Handle case of importing predefined
710 types. Tweak error message.
712 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
714 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
715 functions to previous change. Reorganize code slightly.
717 2011-08-02 Geert Bosch <bosch@adacore.com>
719 * back_end.ads (Register_Type_Proc): New call back procedure type for
720 allowing the back end to provide information about available types.
721 (Register_Back_End_Types): New procedure to register back end types.
722 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
724 * cstand.adb (Back_End_Float_Types): New list for floating point types
725 supported by the back end.
726 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
727 (Copy_Float_Type): New procedure to make new copies of predefined types.
728 (Register_Float_Type): New call back procedure to populate the BEFT list
729 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
730 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
731 (Create_Float_Types): New procedure to create entities for floating
732 point types predefined in Standard, and put these and any remaining
733 BEFTs on the Predefined_Float_Types list.
734 * stand.ads (Predefined_Float_Types): New list for predefined floating
735 point types that do not have declarations in package Standard.
737 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
739 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
740 entity node for the unit containing the parameter.
741 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
742 (Add_Inlined_Subprogram): Likewise.
743 * gcc-interface/Make-lang.in: Update dependencies.
745 2011-08-02 Thomas Quinot <quinot@adacore.com>
747 * s-stusta.adb (Print): Make sure Pos is always initialized to a
750 2011-08-02 Geert Bosch <bosch@adacore.com>
752 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
754 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
756 * sem_type.adb (Covers): Move trivial case to the top and reuse the
757 computed value of Base_Type.
759 2011-08-02 Yannick Moy <moy@adacore.com>
761 * restrict.adb (Check_Restriction): issue an error for any use of
762 class-wide, even if the No_Dispatch restriction is not set.
763 * sem_aggr.adb: Correct typos in comments and messages in formal mode
764 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
765 when completing a private extension, the type named in the private part
766 is not the same as that named in the visible part.
767 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
768 of an inherited primitive operations of a tagged type or type extension
769 that returns the tagged type.
770 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
771 function which returns True for an implicit operation inherited by the
772 derived type declaration for the argument type.
773 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
776 2011-08-02 Ed Schonberg <schonberg@adacore.com>
778 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
779 Process_Bounds, to perform analysis with expansion of a range or an
780 expression that is the iteration scheme for a loop.
781 (Analyze_Iterator_Specification): If domain of iteration is given by a
782 function call with a controlled result, as is the case if call returns
783 a predefined container, ensure that finalization actions are properly
785 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
787 2011-08-02 Javier Miranda <miranda@adacore.com>
789 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
790 * gcc-interface/Make-lang.in: Update dependencies.
792 2011-08-02 Javier Miranda <miranda@adacore.com>
794 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
795 determine if the analysis is performed using N or Original_Node (N).
796 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
797 functionality of routine Is_Variable avoids code duplication.
798 * checks.adb (Determine_Range): Handle temporaries generated by
801 2011-08-02 Javier Miranda <miranda@adacore.com>
803 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
804 expansion of the condition. Required since the previous analysis was
805 done with expansion disabled (see Resolve_Quantified_Expression) and
806 hence checks were not inserted and record comparisons have not been
809 2011-08-02 Ed Falis <falis@adacore.com>
811 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
814 2011-08-02 Bob Duff <duff@adacore.com>
816 * opt.ads: Minor comment fix.
818 2011-08-02 Bob Duff <duff@adacore.com>
820 * sem_ch12.adb (Analyze_Package_Instantiation,
821 Analyze_Subprogram_Instantiation): Turn off style checking while
822 analyzing an instance. Whatever style checks that apply to the generic
823 unit should apply, so it makes no sense to apply them in an instance.
824 This was causing trouble when compiling an instance of a runtime
825 unit that violates the -gnatyO switch.
826 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
827 one of the two case statements, causing spurious errors.
829 2011-08-02 Robert Dewar <dewar@adacore.com>
831 * uname.adb: Minor reformatting.
832 * gnatcmd.adb: Minor reformatting.
833 * exp_attr.adb: Minor reformatting.
835 2011-08-02 Ed Schonberg <schonberg@adacore.com>
837 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
838 No_Dispatching_Calls, do not look for the Assign primitive, because
839 predefined primitives are not created in this case.
841 2011-08-02 Bob Duff <duff@adacore.com>
843 * stylesw.ads: Minor comment fixes.
845 2011-08-02 Robert Dewar <dewar@adacore.com>
847 * freeze.adb (Add_To_Result): New procedure.
849 2011-08-02 Jose Ruiz <ruiz@adacore.com>
851 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
852 time, if the specific run-time routines for handling streams of strings
853 are not available, use the default mechanism.
855 2011-08-02 Arnaud Charlet <charlet@adacore.com>
857 * s-regpat.ads: Fix typo.
859 2011-08-02 Vincent Celier <celier@adacore.com>
861 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
862 not null, call it to create the in memory config project file without
863 parsing an existing default config project file.
865 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
867 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
869 2011-08-02 Ed Schonberg <schonberg@adacore.com>
871 * sem_elim.adb: an abstract subprogram does not need an eliminate
872 pragma for its descendant to be eliminable.
874 2011-08-02 Ed Falis <falis@adacore.com>
876 * init.c: revert to handling before previous checkin for VxWorks
877 * s-intman-vxworks.adb: delete unnecessary declarations related to
878 using Ada interrupt facilities for handling signals.
879 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
880 * s-intman-vxworks.ads: Import __gnat_install_handler as
881 Initialize_Interrupts.
882 * s-taprop-vxworks.adb: Delete Signal_Mask.
883 (Abort_Handler): change construction of mask to unblock exception
886 2011-08-02 Jerome Guitton <guitton@adacore.com>
888 * a-except-2005.adb (Raise_From_Signal_Handler): Call
889 Debug_Raise_Exception before propagation starts.
891 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
893 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
894 to Restriction_Check_Required.
895 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
896 * sem_res.adb (Resolve_Call): Likewise.
897 * sem_attr.adb (Check_Stream_Attribute): Likewise.
899 2011-08-02 Bob Duff <duff@adacore.com>
901 * stylesw.ads: Update comment.
902 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
903 * errout.ads: Remove obsolete comment.
905 2011-08-02 Javier Miranda <miranda@adacore.com>
907 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
908 (Set_Is_Safe_To_Reevaluate): new procedure.
909 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
910 assignment is allowed on safe-to-reevaluate variables.
911 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
912 temporary created to remove side effects in expressions that use
913 the secondary stack as safe-to-reevaluate.
914 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
915 variables that are not true constants.
917 2011-08-02 Robert Dewar <dewar@adacore.com>
919 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
920 sem_res.adb, sem_ch6.adb: Minor reformatting.
922 2011-08-02 Jerome Guitton <guitton@adacore.com>
924 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
926 2011-08-02 Ed Schonberg <schonberg@adacore.com>
928 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
929 not set Overridden_Operation if subprogram is an initialization
932 2011-08-02 Yannick Moy <moy@adacore.com>
934 * par-ch6.adb: Correct obsolete name in comments
935 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
936 which takes two message arguments (existing function takes one), with
937 second message used for continuation.
938 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
939 block statements that originate from a source block statement, not
940 generated block statements
941 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
942 symmetry with procedure case
943 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
944 function to issue an error in formal mode if a package specification
945 contains more than one tagged type or type extension.
946 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
947 parameters matching formals of tagged types are objects (or ancestor
948 type conversions of objects), not general expressions. Issue an error
949 on view conversions that are not involving ancestor conversion of an
951 (Resolve_Type_Conversion): in formal mode, issue an error on the
952 operand of an ancestor type conversion which is not an object
953 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
954 procedure so that it works also for actuals of function calls
955 (Is_Actual_Tagged_Parameter): new function which determines if its
956 argument is an actual parameter of a formal of tagged type in a
958 (Is_SPARK_Object_Reference): new function which determines if the tree
959 referenced by its argument represents an object in SPARK
961 2011-08-02 Robert Dewar <dewar@adacore.com>
963 * sem_ch3.adb: Minor reformatting
964 Minor comment addition
965 Minor error msg text change
967 2011-08-02 Javier Miranda <miranda@adacore.com>
969 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
970 function. Used to be more precise when we generate a variable plus one
971 assignment to remove side effects in the evaluation of the Bound
973 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
974 of the bound expression to force its re-analysis and thus expand the
975 associated transient scope (if required). Code cleanup replacing the
976 previous code that declared the constant entity by an invocation to
977 routine Force_Evaluation which centralizes this work in the frontend.
979 2011-08-02 Robert Dewar <dewar@adacore.com>
981 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
982 (Base_Type): Now uses improved Is_Base_Type function
983 * einfo.ads (Base_Type): Inline this function
985 2011-08-02 Robert Dewar <dewar@adacore.com>
987 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
988 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
990 2011-08-02 Arnaud Charlet <charlet@adacore.com>
992 * gcc-interface/Make-lang.in: Update dependencies.
993 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
996 2011-08-02 Yannick Moy <moy@adacore.com>
998 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
999 non-simple expression used in delta constraint
1000 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
1001 index constraint which is not a subtype mark
1002 * par.adb: With and use Restrict
1003 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
1004 mode on component type which is not a subtype mark and default
1005 expression on component
1006 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
1007 of string which does not have a lower index bound equal to 1
1008 (Array_Type_Declaration): issue an error in formal mode on index or
1009 component type which is not a subtype mark, and on aliased keyword on
1011 (Derived_Type_Declaration): issue an error in formal mode on interface,
1012 limited or abstract type
1013 (Record_Type_Declaration): issue an error in formal mode on interface
1014 (Record_Type_Definition): issue an error in formal mode on tagged types
1015 and type extensions not declared in the specification of a library unit
1016 package; on null non-tagged record; on variant part
1018 2011-08-02 Vincent Celier <celier@adacore.com>
1020 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
1021 not declared for qualified library project when Library_Name is not
1022 declared, but Library_Dir is.
1024 2011-08-02 Robert Dewar <dewar@adacore.com>
1026 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
1027 pragmas (affects aspects [Component_]Default_Value
1028 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
1029 component type for the resolution
1031 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
1033 * einfo.adb (Base_Type): Tune implementation for speed.
1035 2011-08-02 Robert Dewar <dewar@adacore.com>
1037 * freeze.adb: Minor reformatting.
1039 2011-08-02 Thomas Quinot <quinot@adacore.com>
1041 * scos.ads: Update comments.
1043 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1045 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
1046 base type, because the parent may be a subtype of a private type whose
1047 convention is established in a private part.
1049 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
1051 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
1052 statement in a block when the expansion of the return expression has
1053 created a finalization chain.
1054 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
1055 with the parent node.
1056 Add N_Extended_Return_Statement to handle the case where a transient
1057 object declaration appears in the Return_Object_Declarations list of
1058 an extended return statement.
1060 2011-08-02 Matthew Gingell <gingell@adacore.com>
1062 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
1063 unused parameter 'name'.
1065 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1067 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
1068 inherited operation, check whether its alias, which is the source
1069 operastion that it renames, has been marked eliminated.
1071 2011-08-02 Javier Miranda <miranda@adacore.com>
1073 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
1074 in-mode parameter whose type is an access type since it can be used to
1075 modify its designated object. Enforce code that handles as safe an
1076 access type that is not access-to-constant but it is the result of a
1077 previous removal of side-effects.
1078 (Remove_Side_Effects): Minor code reorganization of cases which require
1079 no action. Done to incorporate documentation on new cases uncovered
1080 working in this ticket: no action needed if this routine was invoked
1081 too early and the nodes are not yet decorated.
1082 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
1083 to routine Remove_Side_Effects by calls to Force_Evaluation since they
1084 were issued with actuals that are implicitly provided by
1087 2011-08-02 Robert Dewar <dewar@adacore.com>
1089 * sem_ch3.adb, sem_res.adb: Minor reformatting.
1091 2011-08-02 Yannick Moy <moy@adacore.com>
1093 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
1094 to issue an error in formal mode on attribute not supported in this mode
1095 (Analyze_Attribute): issue errors on standard attributes not supported
1097 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
1098 comment, and issue error in formal mode on modulus which is not a power
1100 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
1102 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
1104 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
1105 operator on modular type (except 'not').
1107 2011-08-02 Robert Dewar <dewar@adacore.com>
1109 * gnat_rm.texi: Minor reformatting.
1111 2011-08-02 Arnaud Charlet <charlet@adacore.com>
1113 * s-osinte-linux.ads: Minor comment update and reformatting.
1114 * i-cexten.ads: Make this unit pure, as for its parent.
1115 Will allow its usage in more contexts if needed.
1117 2011-08-02 Robert Dewar <dewar@adacore.com>
1119 * s-utf_32.ads: Minor comment fix.
1121 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1123 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
1124 operation of a tagged synchronized type, handle the case where the
1125 controlling argument is overloaded.
1127 2011-08-02 Yannick Moy <moy@adacore.com>
1129 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
1130 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
1131 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
1132 SPARK mode and formal verification mode on processing SPARK restriction
1133 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
1134 requiring consistency checking.
1136 2011-08-02 Robert Dewar <dewar@adacore.com>
1138 * sem_res.adb: Minor reformatting.
1140 2011-08-02 Robert Dewar <dewar@adacore.com>
1142 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
1143 a-cforse.ads: Remove unneeded with of Ada.Containers
1144 Remove commented out pragma Inline's
1145 Move specifications of new subprograms to the actual specs
1147 2011-08-02 Yannick Moy <moy@adacore.com>
1149 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
1150 a-cforse.ads: Update comments.
1152 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1154 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
1156 2011-08-02 Robert Dewar <dewar@adacore.com>
1158 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
1159 a-cforse.ads, a-cofove.ads: Minor reformatting.
1161 2011-08-02 Claire Dross <dross@adacore.com>
1163 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
1164 a-cofove.ads: Add comments.
1166 2011-08-02 Yannick Moy <moy@adacore.com>
1168 * gnat_rm.texi: Document formal containers.
1170 2011-08-02 Emmanuel Briot <briot@adacore.com>
1172 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
1175 2011-08-02 Robert Dewar <dewar@adacore.com>
1177 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
1180 2011-08-02 Robert Dewar <dewar@adacore.com>
1182 * aspects.adb: New aspects Default_Value and Default_Component_Value
1183 New format of Aspect_Names table checks for omitted entries
1184 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
1185 handling of boolean aspects for derived types.
1186 New aspects Default_Value and Default_Component_Value
1187 New format of Aspect_Names table checks for omitted entries
1188 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
1189 (Has_Default_Value): New flag
1190 (Has_Default_Component_Value): New flag
1191 (Has_Default_Value): New flag
1192 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
1194 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
1195 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
1196 Default_Value and Default_Component_Value
1197 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
1198 New aspects Default_Value and Default_Component_Value
1199 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
1200 * sprint.adb: Print N_Aspect_Specification node when called from gdb
1202 2011-08-02 Vincent Celier <celier@adacore.com>
1204 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
1205 inherit library kind.
1207 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1209 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
1212 2011-08-02 Robert Dewar <dewar@adacore.com>
1214 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
1216 2011-08-02 Yannick Moy <moy@adacore.com>
1218 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
1220 2011-08-02 Robert Dewar <dewar@adacore.com>
1222 * impunit.adb: Add comment.
1224 2011-08-02 Yannick Moy <moy@adacore.com>
1226 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
1227 qualification of aggregates in formal mode
1228 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
1230 (Resolve_Aggregate): complete the test that an aggregate is adequately
1231 qualified in formal mode
1233 2011-08-02 Pascal Obry <obry@adacore.com>
1235 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
1236 * mlib-prj.adb: Supress warning when compiling binder generated file.
1237 (Build_Library): Supress all warnings when compiling the binder
1240 2011-08-02 Yannick Moy <moy@adacore.com>
1242 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
1244 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
1245 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
1246 Add with/use clauses to make Check_Formal_Restriction visible
1248 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1250 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
1251 in-parameters when type of the generic formal is private in the generic
1252 spec and non-private in the body.
1254 2011-08-02 Claire Dross <dross@adacore.com>
1256 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
1257 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
1258 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
1259 * impunit.adb, Makefile.rtl: Take new files into account.
1261 2011-08-02 Robert Dewar <dewar@adacore.com>
1263 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
1264 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
1266 2011-08-02 Yannick Moy <moy@adacore.com>
1268 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
1270 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
1271 matching static array bounds, taking into account the special case of
1273 * sem_ch3.adb: Typo in comment.
1275 2011-08-02 Yannick Moy <moy@adacore.com>
1277 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
1278 which issues an error in formal mode if its argument node is originally
1280 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
1281 has a discriminant specification so that it does not include the case
1283 (Derived_Type_Declaration): move here the test that a derived type has a
1284 discriminant specification
1285 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
1286 first element of a component association before accessing its choices
1287 (presence of component association is not enough)
1288 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
1289 declaration is a library item before accessing the next element in a
1290 list, as library items are not member of lists
1291 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
1292 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
1293 Check_Formal_Restriction whenever possible.
1295 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1297 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
1298 reference when needed.
1300 2011-08-02 Bob Duff <duff@adacore.com>
1302 * gnat_ugn.texi: Fix typo.
1304 2011-08-02 Vincent Celier <celier@adacore.com>
1306 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
1307 archive file name. Do not use the full path name of archives for Open
1310 2011-08-02 Robert Dewar <dewar@adacore.com>
1312 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
1313 Analyze_Aspect_Specifications
1315 (Analyze_Aspect_Specifications): New handling for boolean aspects
1316 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
1317 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
1318 sequence for Analyze_Aspect_Specifications
1319 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
1320 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
1322 2011-08-02 Robert Dewar <dewar@adacore.com>
1324 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
1325 aspects, since these no longer exist.
1327 2011-08-02 Robert Dewar <dewar@adacore.com>
1329 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
1330 semicolon, do not try to see if there are aspects following it.
1331 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
1334 2011-08-02 Robert Dewar <dewar@adacore.com>
1336 * sem_ch8.adb, aspects.ads: Minor reformatting.
1338 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
1340 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
1341 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
1343 (Analyze_Aspect_Specifications): ...here. Call above procedure.
1345 2011-08-02 Yannick Moy <moy@adacore.com>
1347 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
1348 mode on subprogram declaration outside of package specification, unless
1349 it is followed by a pragma Import
1350 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
1351 Access_Type_Declaration): issue error in formal mode on access type
1352 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
1354 (Analyze_Object_Declaration): issue error in formal mode on object
1355 declaration which does not respect SPARK restrictions
1356 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
1357 declaration which does not respect SPARK restrictions
1358 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
1359 error in formal mode on digits or delta constraint
1360 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
1361 decimal fixed point type
1362 (Derived_Type_Declaration): issue error in formal mode on derived type
1363 other than type extensions of tagged record types
1364 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
1365 with check on access definition
1366 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
1367 mode on protected definition.
1368 (Analyze_Task_Definition): issue error in formal mode on task definition
1370 2011-08-02 Robert Dewar <dewar@adacore.com>
1372 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
1374 2011-08-02 Javier Miranda <miranda@adacore.com>
1376 * sem_ch6.adb (Can_Override_Operator): New function.
1377 (Verify_Overriding_Indicator): Add missing code to check overriding
1378 indicator in operators. Fixes regression.
1379 (Check_Overriding_Indicator): Minor reformating after replacing the
1380 code that evaluates if the subprogram can override an operator by
1381 invocations to the above new function.
1383 (Write_Field26_Name): Add missing code to ensure that, following
1384 the documentation in einfo.ads, this field is not shown as attribute
1385 "Static_Initialization" on non-dispatching functions.
1387 2011-08-02 Jose Ruiz <ruiz@adacore.com>
1389 * sem_res.adb (Resolve_Call): A call to
1390 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
1391 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
1392 i.e., when the second parameter is of type Time_Span.
1394 2011-08-02 Vincent Celier <celier@adacore.com>
1396 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
1397 with an archive instead of -L<library dir> -l<library name>.
1399 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1401 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
1402 mark the base types In_Use in addition to making the operations
1405 2011-08-02 Ed Falis <falis@adacore.com>
1407 * init.c: add and setup __gnat_signal_mask for the exception signals
1408 * s-inmaop-vxworks.adb: new file.
1409 * s-intman-vxworks.adb: remove unnecessary initializations and
1411 * s-intman-vxworks.ads: remove unnecessary variable
1412 * s-taprop-vxworks.adb: simplify signal initialization
1414 2011-08-02 Robert Dewar <dewar@adacore.com>
1416 * sem_ch8.adb: Minor code reorganization, comment updates.
1418 2011-08-02 Robert Dewar <dewar@adacore.com>
1420 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
1421 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
1423 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
1424 (Matching_Static_Array_Bounds): Moved here from Sem_Res
1426 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1428 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
1429 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
1430 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
1431 use_type_clauses, to handle more efficiently use_type and use_all_type
1433 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
1434 Ada2012 Use_All_Type clause.
1435 (Use_Class_Wide_Operations): new procedure.
1437 2011-08-02 Robert Dewar <dewar@adacore.com>
1439 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
1440 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
1441 expression to expression function.
1443 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1445 * sem_ch4.adb: transform simple Ada2012 membership into equality only
1446 if types are compatible.
1448 2011-08-02 Yannick Moy <moy@adacore.com>
1450 * sem_res.adb (Matching_Static_Array_Bounds): new function which
1451 returns True if its argument array types have same dimension and same
1452 static bounds at each index.
1453 (Resolve_Actuals): issue an error in formal mode on actuals passed as
1454 OUT or IN OUT paramaters which are not view conversions in SPARK.
1455 (Resolve_Arithmetic_Op): issue an error in formal mode on
1456 multiplication or division with operands of fixed point types which are
1457 not qualified or explicitly converted.
1458 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
1459 Boolean or array type (except String) operands.
1460 (Resolve_Equality_Op): issue an error in formal mode on equality
1461 operators for array types other than String with non-matching static
1463 (Resolve_Logical_Op): issue an error in formal mode on logical operators
1464 for array types with non-matching static bounds. Factorize the code in
1465 Matching_Static_Array_Bounds.
1466 (Resolve_Qualified_Expression): issue an error in formal mode on
1467 qualified expressions for array types with non-matching static bounds.
1468 (Resolve_Type_Conversion): issue an error in formal mode on type
1469 conversion for array types with non-matching static bounds
1471 2011-08-02 Robert Dewar <dewar@adacore.com>
1473 * par-ch10.adb: Minor code reorganization (use Nkind_In).
1475 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1477 * par-ch9.adb: save location of entry for proper error message.
1479 2011-08-02 Javier Miranda <miranda@adacore.com>
1481 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
1482 (Use_Full_View) which permits this routine to climb through the
1483 ancestors using the full-view of private parents.
1484 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
1485 Use_Full_View to true in calls to Is_Ancestor.
1486 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
1487 true in call to Is_Ancestor.
1488 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
1489 Use_Full_View to true in call to Is_Ancestor.
1490 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
1491 call to Is_Ancestor.
1492 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
1493 Use_Full_View to true in calls to Is_Ancestor.
1494 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
1495 Make_Select_Specific_Data_Table, Register_Primitive,
1496 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
1497 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
1498 to true in call to Is_Ancestor.
1499 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
1500 Use_Full_View to true in calls to Is_Ancestor.
1502 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
1503 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
1505 2011-08-02 Robert Dewar <dewar@adacore.com>
1507 * gnat_rm.texi: Minor reformatting.
1508 * sem_prag.adb: Minor reformatting.
1510 2011-08-02 Tristan Gingold <gingold@adacore.com>
1512 * vms_data.ads: Add VMS qualifier for -gnateP.
1514 2011-08-02 Robert Dewar <dewar@adacore.com>
1516 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
1517 * par-ch7.adb (P_Package): Proper placement of aspects for package
1519 * par-endh.adb (Check_End): Ad Is_Sloc parameter
1520 (End_Statements): Add Is_Sloc parameterr
1521 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
1522 (Check_End): Ad Is_Sloc parameter
1523 (End_Statements): Add Is_Sloc parameterr
1525 2011-08-02 Vincent Celier <celier@adacore.com>
1527 * ug_words: Add VMS qualifier equivalent to -gnateP:
1528 /SYMBOL_PREPROCESSING.
1530 2011-08-02 Jose Ruiz <ruiz@adacore.com>
1532 * gnat-style.texi: For hexadecimal numeric literals the typical
1533 grouping of digits is 4 to represent 2 bytes.
1534 A procedure spec which is split into several lines is indented two
1537 2011-08-02 Yannick Moy <moy@adacore.com>
1539 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
1540 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
1541 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
1543 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
1544 choice in array aggregate
1545 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
1547 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
1548 positional and named aggregate for record, or others in record
1549 aggregate, or multiple choice in record aggregate
1550 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
1551 array operands to logical operations AND, OR and XOR do not have the
1552 same static lower and higher bounds
1553 * sem_ch5.adb, sinfo.ads: Correct typos in comments
1555 2011-08-01 Robert Dewar <dewar@adacore.com>
1557 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
1558 Replaces Last_Source_Node_In_Sequence.
1559 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
1560 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
1561 parens and blank in string (this was inconsistently implemented).
1563 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
1564 blank in string (this was inconsistently implemented).
1566 (Set_Global_Switches): Set formal mode switches appropriately
1567 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
1569 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
1570 call Set_Error_Msg_Lang to set "spark" as language name.
1571 * par.adb: Remove unnecessary call to set formal language for errout
1572 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
1573 appropriately and call Set_Error_Msg_Lang to set "spark" as language
1575 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
1576 calls to it, moved after resolution so that types are known
1577 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
1578 result of concatenation is not of type String
1579 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
1580 concatenation is not properly restricted
1581 * gnat_rm.texi: Add doc on pragma Spark_95.
1582 * gcc-interface/Makefile.in: Remove obsolete target pairs for
1583 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
1584 * gcc-interface/Make-lang.in: Update dependencies.
1586 2011-08-01 Javier Miranda <miranda@adacore.com>
1588 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
1589 condition that detects if the overridden operation must replace an
1592 2011-08-01 Javier Miranda <miranda@adacore.com>
1594 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
1595 code declarations inserted by Insert_Actions in each alternative of the
1596 N_Case_Expression node.
1598 2011-08-01 Robert Dewar <dewar@adacore.com>
1600 * sem_ch6.adb: Minor code reorganization.
1601 * sem_util.adb: Minor reformatting.
1603 2011-08-01 Pascal Obry <obry@adacore.com>
1605 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
1606 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
1608 2011-08-01 Yannick Moy <moy@adacore.com>
1610 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
1611 literal or operator symbol which is prefixed
1612 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
1613 mode on access attributes.
1614 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
1615 that concatenation operands are properly restricted in formal mode
1616 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
1617 Analyze_Concatenation_Operand. Issue an error in formal mode if the
1618 result of the concatenation has a type different from String.
1619 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
1620 Analyze_Quantified_Expression, Analyze_Slice,
1621 Analyze_Null): issue an error in formal mode on unsupported constructs
1623 (Analyze_Block_Statement): only issue error on source block statement
1624 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
1625 function which returns the last node in a list of nodes for which
1626 Comes_From_Source returns True, if any
1627 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
1628 Last_Source_Node_In_Sequence
1629 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
1630 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
1631 mode on unsupported constructs
1632 * sem_ch9.adb Do not return after issuing error in formal mode, as the
1633 rest of the actions may be needed later on since the error is marked as
1635 * sinfo.ads: Typos in comments.
1637 2011-08-01 Pascal Obry <obry@adacore.com>
1639 * projects.texi: Minor editing.
1641 2011-08-01 Yannick Moy <moy@adacore.com>
1643 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
1644 insertion character ~~
1645 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
1646 (Set_Error_Msg_Lang): new procedure which fixes the language for use
1647 with insertion character ~~
1648 (Set_Msg_Text): treat insertion character ~~
1649 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
1650 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
1651 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
1652 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
1653 errors related to the formal language restriction not serious
1654 (insertion character |).
1655 * par.adb (Par): set formal language for error messages if needed
1656 * sem_ch6.adb (Check_Missing_Return): take into account possible
1657 generated statements at the end of the function
1658 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
1659 enumeration value to define a new pragma SPARK_95
1660 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
1661 SPARK_Version): new type and variables to store the SPARK version
1663 (SPARK_Mode): return True when SPARK_Version is set
1664 * par-prag.adb: Correct indentation
1665 (Prag): take Pragma_SPARK_95 into account
1666 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
1669 2011-08-01 Robert Dewar <dewar@adacore.com>
1671 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
1672 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
1673 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
1675 2011-08-01 Pascal Obry <obry@adacore.com>
1677 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
1678 Target_Name to Get_Path call.
1679 (Parse_Single_Project): Likewise.
1680 (Post_Parse_Context_Clause): Likewise.
1681 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
1682 Call Initialise_Project_Path with the proper Target_Name.
1683 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
1685 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
1686 with the proper Target_Name.
1687 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
1689 (Parse_Project_And_Apply_Config): Likewise.
1690 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
1691 This is fine as this part of the code is supporting only native
1693 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
1694 is fine as this part of the code is supporting only native compilation.
1696 2011-08-01 Yannick Moy <moy@adacore.com>
1698 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
1699 of homonym, unless the homonym is one of the cases allowed in SPARK
1700 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
1701 package declaration occurring after a body.
1703 2011-08-01 Robert Dewar <dewar@adacore.com>
1705 * checks.adb, exp_ch4.adb: Minor reformatting.
1707 2011-08-01 Javier Miranda <miranda@adacore.com>
1709 * einfo.ads (Access_Disp_Table): Fix documentation.
1710 (Dispatch_Table_Wrappers): Fix documentation.
1712 2011-08-01 Pascal Obry <obry@adacore.com>
1714 * prj-env.adb, prj-env.ads: Minor reformatting.
1716 2011-08-01 Yannick Moy <moy@adacore.com>
1718 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
1719 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
1720 procedures out of these packages.
1721 * errout.ads, errout.adb
1722 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
1723 procedures in of this package
1724 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
1725 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
1726 on misplaced later vs initial declarations, like in Ada 83
1727 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
1728 formal mode on attribute of private type whose full type declaration
1730 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
1731 package declaration inside a package specification
1732 (Analyze_Full_Type_Declaration): issue error in formal mode on
1733 controlled type or discriminant type
1734 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
1735 user-defined operator means that it should come from the source
1736 (New_Overloaded_Entity): issue error in formal mode on overloaded
1738 * sem_ch6.ads, sem_ch13.ads: typos in comments.
1740 2011-08-01 Thomas Quinot <quinot@adacore.com>
1742 * atree.adb: Minor reformatting.
1743 * checks.adb: Minor reformatting.
1745 2011-08-01 Vincent Celier <celier@adacore.com>
1747 * s-parame-vms-ia64.ads: Fix typo in comment
1749 * s-parame-vms-restrict.ads: Removed, unused.
1751 2011-08-01 Javier Miranda <miranda@adacore.com>
1754 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
1756 (Constrain_Index): Remove side effects in the evaluation of the bounds.
1757 * sem_ch3.ads, sem_ch3.adb
1758 (Is_Constant_Bound): New extended version of the subprogram that was
1759 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
1760 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
1761 * sem_aux.ads (Constant_Value): Fix typo in comment.
1762 * checks.adb (Generate_Index_Checks): New implementation which, for
1763 array objects with constant bounds, generates the runtime check
1764 referencing the bounds of the array type. For other cases this routine
1765 provides its previous behavior obtaining such values from the array
1767 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
1769 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
1770 we cannot have semantic interpretations of the new node.
1772 2011-08-01 Ed Schonberg <schonberg@adacore.com>
1774 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
1777 2011-08-01 Arnaud Charlet <charlet@adacore.com>
1779 * sem_ch8.adb: Minor code editing.
1780 * s-vxwext.adb: Remove trailing space.
1781 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
1782 consistency with other files.
1784 2011-08-01 Thomas Quinot <quinot@adacore.com>
1786 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
1788 2011-08-01 Ed Schonberg <schonberg@adacore.com>
1790 * par-ch10.adb: reject parameterized expressions as compilation unit.
1791 * sem_ch4.adb: handle properly conditional expression with overloaded
1792 then_clause and no else_clause.
1794 2011-08-01 Tristan Gingold <gingold@adacore.com>
1796 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
1797 like done by System.Aux_DEC.
1798 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
1800 2011-08-01 Yannick Moy <moy@adacore.com>
1802 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
1803 missing label at end of declaration (subprogram or package)
1804 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
1805 of positional and named parameter association
1806 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
1807 Error_Msg_SP which adds a prefix to the error message giving the name
1808 of the formal language analyzed
1809 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
1810 access result type in subprogram, unconstrained array as result type,.
1811 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
1813 * sem_ch8.adb: Code clean up.
1815 2011-08-01 Javier Miranda <miranda@adacore.com>
1817 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
1818 * einfo.ads (Access_Disp_Table): Fix documentation.
1819 (Dispatch_Table_Wrappers): Fix documentation.
1820 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
1821 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
1822 to enforce the documentation of this attribute.
1823 (Set_Is_Interface): Cleanup the assertion.
1824 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
1825 the Underlying_Type entity before reading attribute Access_Disp_Table.
1826 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
1827 Locate the Underlying_Type before reading attribute Access_Disp_Table.
1828 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
1829 the Underlying_Type entity before reading attribute Access_Disp_Table.
1830 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
1831 Locate the Underlying_Type entity before reading attribute
1834 2011-08-01 Ed Schonberg <schonberg@adacore.com>
1836 * s-poosiz.ads: Additional overriding indicators.
1838 2011-08-01 Yannick Moy <moy@adacore.com>
1840 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
1842 (Analyze_Iteration_Scheme): issue error in formal mode when loop
1843 parameter specification does not include a subtype mark.
1844 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
1845 formal mode on abstract subprogram.
1846 (Analyze_Subprogram_Specification): issue error in formal mode on
1847 user-defined operator.
1848 (Process_Formals): issue error in formal mode on access parameter and
1850 * sem_ch9.adb (Analyze_Abort_Statement,
1851 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
1852 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
1853 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
1854 Analyze_Requeue, Analyze_Selective_Accept,
1855 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
1856 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
1857 issue error in formal mode on user-defined raise statement.
1859 2011-08-01 Thomas Quinot <quinot@adacore.com>
1861 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
1862 declaration being hidden when overriding an implicit inherited
1864 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
1865 (-gnats), do not complain about a source file that contains only a
1868 2011-08-01 Ed Schonberg <schonberg@adacore.com>
1870 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
1871 variable if already set.
1873 2011-08-01 Arnaud Charlet <charlet@adacore.com>
1875 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
1876 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
1877 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
1878 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
1879 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
1880 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
1881 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
1882 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
1883 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
1884 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
1885 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
1886 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
1887 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
1888 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
1889 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
1890 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
1891 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
1892 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
1893 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
1894 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
1895 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
1896 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
1897 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
1898 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
1899 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
1900 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
1901 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
1902 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
1903 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
1904 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
1905 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
1906 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
1907 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
1908 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
1909 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
1910 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
1911 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
1912 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
1913 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
1914 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
1915 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
1916 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
1917 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
1918 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
1919 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
1920 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
1921 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
1922 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
1923 s-osinte-mingw.ads: Update to GPLv3 run-time license.
1924 Use GNAT instead of GNARL.
1926 2011-08-01 Bob Duff <duff@adacore.com>
1928 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
1929 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
1930 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
1933 2011-08-01 Yannick Moy <moy@adacore.com>
1935 * debug.adb (d.D) reverve flag for the SPARK mode
1936 (d.E) reverve flag for SPARK generation mode
1937 (d.F) reverve flag for Why generation mode
1938 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
1939 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
1940 functions which return True when the corresponding modes are set
1941 (Formal_Language): return "spark" or "alfa" when in formal verification
1943 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
1944 Error_Msg to prefix the error message with a tag giving the formal
1946 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
1947 message with a tag giving the formal language
1948 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
1950 (Analyze_Case_Statement): issue error in formal mode on case statement
1951 with a single "others" case alternative
1952 (Analyze_Exit_Statement): issue errors in formal mode on exit
1953 statements which do not respect SPARK restrictions
1954 (Analyze_Goto_Statement): issue error in formal mode on goto statement
1955 (Check_Unreachable_Code): always issue an error (not a warning) in
1956 formal mode on unreachable code (concerns both code after an infinite
1957 loop and after an unconditional jump, both not allowed in SPARK)
1958 * sem_ch6.adb (Analyze_Return_Statement): add call to
1959 Set_Return_Present for a procedure containing a return statement
1960 (already done for functions in Analyze_Function_Return)
1961 (Analyze_Function_Return): issue error in formal mode on extended
1962 return or if return is not last statement in function
1963 (Check_Missing_Return): issue error in formal mode if function does
1964 not end with return or if procedure contains a return
1965 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
1966 function to detect if there is an inner scope of its parameter S which
1969 2011-08-01 Thomas Quinot <quinot@adacore.com>
1971 * sem_ch6.ads: Minor reformatting.
1973 2011-08-01 Javier Miranda <miranda@adacore.com>
1975 * sem_util.adb (Abstract_Interface_List): Complete condition when
1976 processing private type declarations to avoid reading unavailable
1978 (Is_Synchronized_Tagged_Type): Complete condition when processing
1979 private extension declaration nodes to avoid reading unavailable
1982 2011-08-01 Thomas Quinot <quinot@adacore.com>
1984 * sem_ch3.adb: Minor reformatting.
1986 2011-08-01 Thomas Quinot <quinot@adacore.com>
1988 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
1989 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
1990 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
1991 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
1992 for VMS, instead parametrize the common implementation with
1993 System.Parameters declarations.
1995 2011-08-01 Eric Botcazou <ebotcazou@adacore.com>
1997 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
1999 2011-08-01 Tristan Gingold <gingold@adacore.com>
2001 * seh_init.c: Fix SEH handler installation on win64.
2003 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2005 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
2006 double analysis of an anonymous access to subprogram, because it can
2007 lead to improper sharing of profiles and a back-end crash.
2009 2011-08-01 Robert Dewar <dewar@adacore.com>
2011 * make.adb, sem_ch4.adb: Minor reformatting.
2012 * gcc-interface/Make-lang.in: Update dependencies.
2013 * sem_util.adb, exp_ch5.adb: Minor reformatting.
2015 2011-08-01 Arnaud Charlet <charlet@adacore.com>
2017 * gnat_rm.texi: Fix definition of Long_Integer.
2019 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2021 * exp_aggr.adb: check limit size of static aggregate unconditionally,
2022 to prevent storage exhaustion.
2023 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
2024 finalized is a function body, insert the cleanup code before the final
2025 return statement, to prevent spurious warnings.
2026 * s-pooglo.ads: add overriding indicator.
2028 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2030 * sem_ch4.adb (Operator_Check): improve error message when both a
2031 with_clause and a use_clause are needed to make operator usage legal.
2032 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
2033 determine whether a compilation unit is visible within an other,
2034 either through a with_clause in the current unit, or a with_clause in
2035 its library unit or one one of its parents.
2037 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2039 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
2040 over an arbitrary expression of an array or container type.
2041 * lib-xref.adb: clarify comment.
2043 2011-08-01 Bob Duff <duff@adacore.com>
2045 * einfo.ads: Minor reformatting.
2046 * debug.adb: Minor comment improvement.
2048 2011-08-01 Javier Miranda <miranda@adacore.com>
2050 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
2051 consider hidden subprograms as valid candidates.
2053 2011-08-01 Arnaud Charlet <charlet@adacore.com>
2055 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
2057 2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
2059 * gnat_ugn.texi: Fix typo.
2061 2011-08-01 Robert Dewar <dewar@adacore.com>
2063 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
2064 lib-xref.adb: Minor reformatting
2066 2011-08-01 Gary Dismukes <dismukes@adacore.com>
2068 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
2069 when to generate a call to Move_Final_List.
2070 (Has_Controlled_Parts): Remove this function.
2072 2011-08-01 Geert Bosch <bosch@adacore.com>
2074 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
2077 2011-08-01 Thomas Quinot <quinot@adacore.com>
2079 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
2080 explicit raise of a predefined exception as Comes_From_Source if the
2081 original N_Raise_Statement comes from source.
2083 2011-08-01 Robert Dewar <dewar@adacore.com>
2085 * sinfo.ads: Add comment.
2086 * sem_ch6.adb: Minor reformatting.
2088 2011-08-01 Robert Dewar <dewar@adacore.com>
2090 * freeze.adb (Freeze_Entity): Refine check for bad component size
2091 clause to avoid rejecting confirming clause when atomic/aliased present.
2093 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2095 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
2096 better determine whether an entity reference is a write.
2097 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
2099 * lib-xref.adb (Output_References): Do no suppress a read reference at
2100 the same location as an immediately preceeding modify-reference, to
2101 handle properly in-out actuals.
2103 2011-08-01 Tristan Gingold <gingold@adacore.com>
2105 * env.c (__gnat_setenv) [VMS]: Refine previous change.
2107 2011-08-01 Quentin Ochem <ochem@adacore.com>
2109 * i-cstrin.adb (New_String): Changed implementation, now uses only the
2110 heap to compute the result.
2112 2011-08-01 Robert Dewar <dewar@adacore.com>
2114 * atree.ads: Minor reformatting.
2116 2011-08-01 Emmanuel Briot <briot@adacore.com>
2118 * g-expect.adb (Get_Command_Output): Fix memory leak.
2120 2011-08-01 Geert Bosch <bosch@adacore.com>
2122 * cstand.adb (P_Float_Type): New procedure to print the definition of
2123 predefined fpt types.
2124 (P_Mixed_Name): New procedure to print a name using mixed case
2125 (Print_Standard): Use P_Float_Type for printing floating point types
2126 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
2127 precision IEEE float.
2129 2011-08-01 Thomas Quinot <quinot@adacore.com>
2131 * sem_ch3.adb: Minor reformatting.
2133 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2135 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
2136 the completion of a generic function, insert the new body rather than
2137 rewriting the original.
2139 2011-08-01 Yannick Moy <moy@adacore.com>
2141 * sinfo.ads, errout.ads: Typos in comments.
2143 2011-08-01 Robert Dewar <dewar@adacore.com>
2145 * par-endh.adb: Minor reformatting.
2147 2011-08-01 Robert Dewar <dewar@adacore.com>
2149 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
2150 (Pre_Post_Aspects): New subtype.
2151 * par-ch12.adb (P_Generic): New syntax for aspects in packages
2152 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
2153 * par-ch7.adb (P_Package): Remove Decl parameter
2154 (P_Package): Handle new syntax for aspects (before IS)
2155 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
2157 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
2158 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
2159 (P_Package): Remove Decl parameter
2160 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
2162 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
2164 * sem_util.ads, sem_util.adb (Static_Boolean): New function
2165 * sinfo.ads: Document new syntax for aspects in packages etc.
2166 * sprint.adb: Handle new syntax of aspects before IS in package
2168 2011-08-01 Thomas Quinot <quinot@adacore.com>
2170 * atree.ads: Minor reformatting.
2171 * sem_prag.adb: Minor reformatting.
2173 2011-08-01 Robert Dewar <dewar@adacore.com>
2175 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
2176 case expr alternative.
2178 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2180 * sem_ch12.adb: Fix typo.
2182 2011-08-01 Geert Bosch <bosch@adacore.com>
2184 * sem_prag.adb (Check_No_Link_Name): New procedure.
2185 (Process_Import_Or_Interface): Use Check_No_Link_Name.
2186 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
2187 instead of Standard_Long_Long_Float_Size global. Preparation for
2188 eventual removal of per type constants.
2189 * exp_util.ads (Get_Stream_Size): New function returning the stream
2190 size value of subtype E.
2191 * exp_util.adb (Get_Stream_Size): Implement new function.
2192 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
2194 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
2196 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
2198 2011-08-01 Geert Bosch <bosch@adacore.com>
2200 * cstand.adb: Fix comments.
2201 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
2204 2011-08-01 Robert Dewar <dewar@adacore.com>
2206 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
2208 2011-08-01 Geert Bosch <bosch@adacore.com>
2210 * atree.ads: Fix comment.
2212 2011-08-01 Robert Dewar <dewar@adacore.com>
2214 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
2215 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
2216 * par.adb: Add with for Namet.Sp.
2217 * par-tchk.adb: Minor reformatting.
2219 2011-08-01 Vincent Celier <celier@adacore.com>
2221 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
2222 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
2223 of the init procedure of a SAL.
2224 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
2227 2011-08-01 Thomas Quinot <quinot@adacore.com>
2229 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
2232 2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2234 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
2236 2011-08-01 Thomas Quinot <quinot@adacore.com>
2238 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
2239 conformant with its spec (return True only for types that have
2240 an overriding Initialize primitive operation that prevents them from
2241 having preelaborable initialization).
2242 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
2243 initialization for controlled types in Ada 2005 or later mode.
2245 2011-08-01 Robert Dewar <dewar@adacore.com>
2247 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
2249 (Same_Aspect): New function.
2250 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
2251 Type_Invariant, Precondition, Postcondition.
2252 * snames.ads-tmpl: Add Name_Type_Invariant.
2254 2011-08-01 Robert Dewar <dewar@adacore.com>
2256 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
2258 (Freeze_All_Ent): Fix error in handling inherited aspects.
2259 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
2260 already analyzed, but don't skip entire processing of a declaration,
2261 that's wrong in some cases of declarations being rewritten.
2262 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
2263 Don't delay for integer, string literals
2264 Treat predicates in usual manner for delay, remove special case code,
2266 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
2267 (Build_Predicate_Function): Update saved expression in aspect
2268 (Build_Invariant_Procedure): Update saved expression in aspect
2269 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
2270 of replacement of discriminant references if the reference is simple.
2272 2011-08-01 Robert Dewar <dewar@adacore.com>
2274 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
2275 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
2276 Static_Predicate and Dynamic_Predicate.
2277 (Build_Predicate_Function): Add processing for Static_Predicate
2278 and Dynamic_Predicate.
2279 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
2280 (From_Static_Predicate): New flag
2281 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
2283 2011-08-01 Robert Dewar <dewar@adacore.com>
2285 * usage.adb: Documentation cleanup for Ada version modes in usage.
2286 * expander.adb: Minor reformatting.
2288 2011-08-01 Robert Dewar <dewar@adacore.com>
2290 * atree.ads: Minor comment fix.
2291 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
2292 a-witeio.ads, sem_prag.adb: Minor reformatting.
2294 2011-08-01 Doug Rupp <rupp@adacore.com>
2296 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
2297 pointers. Use descrip.h header file for convenience. Add some
2300 2011-08-01 Robert Dewar <dewar@adacore.com>
2302 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
2303 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
2304 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
2306 (Check_Aspect_At_End_Of_Declarations): New procedure
2307 (Analye_Aspect_Specification): Minor changes for above procedures
2308 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
2309 specification node as well.
2311 2011-08-01 Pascal Obry <obry@adacore.com>
2313 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
2314 Windows files. Use GetFilesAttributes() in this case to check for file
2315 existence instead of returning with an error code.
2317 2011-08-01 Vincent Celier <celier@adacore.com>
2319 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
2320 High is above Source length.
2322 2011-08-01 Robert Dewar <dewar@adacore.com>
2324 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
2326 2011-08-01 Robert Dewar <dewar@adacore.com>
2328 * aspects.ads (Boolean_Aspects): New subtype.
2329 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
2330 for derived types in cases where the parent type and derived type have
2332 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
2333 with aspects when parent type also has aspects.
2334 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
2335 boolean expression at this point).
2336 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
2337 accordance with final decision on the Ada 2012 feature.
2338 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
2340 2011-08-01 Matthew Heaney <heaney@adacore.com>
2342 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
2344 2011-08-01 Pascal Obry <obry@adacore.com>
2346 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
2347 Fix Replace_Slice when High is above current string size.
2348 (Replace_Slice): Fix DL computation when High is above current
2351 2011-08-01 Gary Dismukes <dismukes@adacore.com>
2353 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
2355 2011-08-01 Matthew Heaney <heaney@adacore.com>
2357 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
2360 2011-08-01 Pascal Obry <obry@adacore.com>
2362 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
2365 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2367 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
2368 access to protected subprograms in generic bodies.
2369 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
2370 protected type, indicate that the convention of the subprogram is
2371 Convention_Protected, because it may be used in subsequent declarations
2372 within the protected declaration.
2374 2011-08-01 Vincent Celier <celier@adacore.com>
2376 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
2377 and "final" procedures when the name of the library is "ada", to avoid
2378 duplicate symbols "adainit" and "adafinal" in executables.
2380 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2382 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
2383 quantified expression that appears within a postcondition and uses the
2384 Ada2012 'Result attribute.
2386 2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2388 * init.c (__gnat_error_handler): Cast reason to int.
2389 (__gnat_install_handler): Explain sa_sigaction use.
2391 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
2393 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
2394 subprogram has copy-in copy-out parameters, try to promote the mode of
2395 the return type if it is passed in registers.
2397 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
2399 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
2400 left operand as addressable.
2402 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
2404 * gcc-interface/gigi.h (build_function_stub): Remove.
2405 (build_return_expr): Likewise.
2406 (convert_vms_descriptor): Declare.
2407 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
2408 (build_function_stub): Move to...
2409 * gcc-interface/utils2.c (build_return_expr): Move to...
2410 * gcc-interface/trans.c (build_function_stub): ...here.
2411 (build_return_expr): ...here.
2412 (Subprogram_Body_to_gnu): Add local variable for language_function.
2413 Disconnect the parameter attributes cache, if any, once done with it.
2414 Call end_subprog_body only after setting the end_locus.
2415 Build the stub associated with the function, if any, at the very end.
2416 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
2417 variables and streamline control flow.
2419 2011-07-23 Arnaud Charlet <charlet@adacore.com>
2422 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
2425 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2428 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
2429 Assign to act.sa_sigaction.
2430 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
2431 current->return_address to char * before arithmetic.
2433 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2435 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
2436 Correct argument types.
2437 Extract code from reason.
2438 (__gnat_install_handler): Assign to act.sa_sigaction.
2440 2011-07-21 Eric Botcazou <ebotcazou@adacore.com>
2442 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
2443 (GNAT1_OBJS): ...here.
2445 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
2448 * g-socthi-mingw.adb (Fill): Fix formatting.
2450 * gcc-interface/gigi.h: Move around comment.
2452 2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2455 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
2457 2011-07-14 Florian Weimer <fw@deneb.enyo.de>
2460 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
2462 2011-07-13 Eric Botcazou <ebotcazou@adacore.com>
2464 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
2465 range comparison if Pmode is SImode.
2467 2011-07-12 Laurent GUERBY <laurent@guerby.net>
2468 Eric Botcazou <ebotcazou@adacore.com>
2470 * adadecode.c: Wrap up in extern "C" block.
2471 * adadecode.h: Likewise.
2472 * adaint.c: Likewise. Remove 'const' keyword.
2473 * adaint.h: Likewise.
2475 * atree.h: Likewise.
2477 * cstreams.c: Likewise.
2481 * final.c: Likewise.
2483 * initialize.c: Likewise.
2485 * namet.h: Likewise.
2486 * nlists.h: Likewise.
2487 * raise.c: Likewise.
2488 * raise.h: Likewise.
2489 * repinfo.h: Likewise.
2490 * seh_init.c: Likewise.
2491 * targext.c: Likewise.
2492 * tracebak.c: Likewise.
2493 * uintp.h: Likewise.
2494 * urealp.h: Likewise.
2495 * xeinfo.adb: Wrap up generated C code in extern "C" block.
2496 * xsinfo.adb: Likewise.
2497 * xsnamest.adb: Likewise.
2498 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
2499 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
2500 * gcc-interface/misc.c: Likewise.
2501 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
2502 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
2503 ada/targext.o here...
2504 (GNAT_ADA_OBJS): ...and not here.
2505 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
2506 (GNATBIND_OBJS): Reorder.
2508 2011-07-07 Richard Henderson <rth@redhat.com>
2510 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
2511 dwarf2out_frame_init.
2513 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
2515 * gcc-interface/misc.c (gnat_init): Tweak previous change.
2517 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2520 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
2522 2011-07-06 Richard Guenther <rguenther@suse.de>
2524 * gcc-interface/misc.c (gnat_init): Merge calls to
2525 build_common_tree_nodes and build_common_tree_nodes_2.
2526 Re-initialize boolean_false_node.
2528 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
2529 Olivier Hainque <hainque@adacore.com>
2530 Nicolas Setton <setton@adacore.com>
2532 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
2533 the type according to the ARTIFICIAL_P parameter.
2534 (create_type_decl): Likewise.
2535 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
2537 2011-07-01 Eric Botcazou <ebotcazou@adacore.com>
2539 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
2540 (gnatbind): Likewise.
2542 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2544 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
2546 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
2548 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
2549 local variable throughout. Remove useless call to Base_Type.
2550 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
2551 Take it also into account for the volatileness of the field. Set the
2552 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
2554 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
2556 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
2557 on a dereference built for a by-ref object if it has an address clause.
2559 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
2561 * einfo.ads (Address_Taken): Document use for the second argument of
2562 Asm_Input and Asm_Output attributes.
2563 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
2564 argument is an entity name, then set Address_Taken on it.
2565 <Attribute_Asm_Output>: Likewise.
2566 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
2567 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
2568 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
2569 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
2571 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
2574 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
2576 2011-06-14 Joseph Myers <joseph@codesourcery.com>
2578 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
2579 (ada/utils.o): Update dependencies.
2580 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
2581 ../../../libcpp/libcpp.a.
2582 * gcc-interface/utils.c: Include common/common-target.h.
2583 (process_attributes): Use targetm_common.have_named_sections.
2585 2011-06-07 Richard Guenther <rguenther@suse.de>
2587 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
2590 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
2592 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
2593 TREE_THIS_NOTRAP flag.
2595 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
2597 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
2600 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
2602 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
2603 constants whose full view has discriminants specially.
2605 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
2607 * gcc-interface/utils.c: Include diagnostic.h.
2608 (gnat_write_global_declarations): Output debug information for all
2609 global type declarations before finalizing the compilation unit.
2610 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
2612 2011-05-25 Jakub Jelinek <jakub@redhat.com>
2614 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
2616 2011-05-25 Kai Tietz <ktietz@redhat.com>
2618 * adaint.c (__gnat_to_canonical_file_list_next): Use array
2619 initialization instead of const/none-const pointer assignment.
2621 2011-05-24 Joseph Myers <joseph@codesourcery.com>
2623 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
2624 $(EXTRA_GNAT1_OBJS).
2625 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
2626 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
2627 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
2628 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
2629 libcommon-target.a instead of prefix.o.
2631 2011-05-21 Joseph Myers <joseph@codesourcery.com>
2634 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
2636 2011-05-20 Joseph Myers <joseph@codesourcery.com>
2638 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
2639 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
2640 instead of version.o.
2642 2011-05-18 Kai Tietz <ktietz@redhat.com>
2644 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
2645 boolean_false_node instead of integer_zero_node.
2646 (convert_with_check): Likewise.
2647 * gcc-interface/decl.c (choices_to_gnu): Likewise.
2649 2011-05-12 Eric Botcazou <ebotcazou@adacore.com>
2651 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
2652 type of the parameter is an unconstrained array, convert the actual to
2653 the type of the formal in the In Out and Out cases as well.
2655 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2657 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
2658 call build_function_type_array or build_varargs_function_type_array
2660 (create_subprog_type): Don't call build_function_type; call
2661 build_function_type_vec instead.
2663 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2665 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
2666 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
2667 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
2669 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
2671 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
2673 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
2674 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
2676 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2678 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
2680 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2682 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
2683 instead of accessing TYPE_ARG_TYPES directly.
2684 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
2686 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2689 * gcc-interface/gigi.h (get_variant_part): Declare.
2690 * gcc-interface/decl.c (get_variant_part): Make global.
2691 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
2692 types have the same constant size, are record types and T1 has a
2693 variant part while T2 doesn't.
2695 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2697 * gcc-interface/utils.c (begin_subprog_body): Do not call
2699 (end_subprog_body): Likewise.
2701 2011-05-04 Richard Guenther <rguenther@suse.de>
2703 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
2705 (pos_to_constructor): Likewise.
2707 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2708 Eric Botcazou <ebotcazou@adacore.com>
2710 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
2711 of build_function_type. Adjust calls to...
2712 (build_raise_check): ...this. Do not take a void_tree parameter.
2713 Call build_function_type_list instead of build_function_type.
2714 Fix head comment and swap couple of conditional blocks.
2716 2011-04-30 Eric Botcazou <ebotcazou@adacore.com>
2718 * gnatvsn.ads (Library_Version): Bump to 4.7.
2719 (Current_Year): Bump to 2011.
2721 2011-04-29 Michael Matz <matz@suse.de>
2723 * gcc-interface/misc.c (gnat_handle_option): Set
2724 warn_maybe_uninitialized.
2726 2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
2728 * gnat_ugn.texi (Complexity Metrics Control): Update link to
2729 the Watson/McCabe paper.
2731 2011-04-23 Jim Meyering <meyering@redhat.com>
2733 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
2735 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
2737 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
2740 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
2742 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
2744 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
2745 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
2746 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
2747 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
2748 <all>: Do not set flags on the reused DECL node coming from an alias.
2749 Set DECL_IGNORED_P on the DECL node built for subprograms if they
2750 don't need debug info here...
2751 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
2752 (gigi): Adjust calls to create_subprog_decl.
2753 (build_raise_check): Likewise.
2754 (establish_gnat_vms_condition_handler): Likewise.
2755 (Compilation_Unit_to_gnu): Likewise.
2756 (gnat_to_gnu): Likewise.
2758 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
2760 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
2761 (NO_REORDER_ADAFLAGS): New variable.
2762 (EXTRA_GNATTOOLS): Always define.
2763 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
2764 Clean up and adjust list of files compiled with special options.
2765 * gcc-interface/Make-lang.in: Likewise.
2766 (ada/decl.o): Cosmetical change.
2767 (ada/misc.o): Remove dependency on $(PLUGIN_H).
2769 2011-04-20 Jim Meyering <meyering@redhat.com>
2771 * initialize.c (__gnat_initialize): Remove useless if-before-free.
2773 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
2775 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
2776 $(CFLAGS) on the link line.
2778 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
2780 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
2781 padded type built for the return type if it is unconstrained.
2783 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
2785 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
2787 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
2789 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
2790 before calling TREE_CHAIN.
2791 * gcc-interface/misc.c (gnat_init_ts): New function.
2792 (LANG_HOOKS_INIT_TS): Define.
2794 2011-04-12 Martin Jambor <mjambor@suse.cz>
2796 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
2797 instead of cgraph_node.
2799 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
2801 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
2802 alignment on fields of the RETURN type built for the Copy-In Copy-Out
2805 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
2807 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
2808 of aggregate types that contain a placeholder.
2810 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
2812 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
2814 (handle_type_generic_attribute): Likewise.
2816 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
2819 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
2821 2011-04-04 Kai Tietz <ktietz@redhat.com>
2824 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
2827 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2829 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
2830 type case, do not strip a padding type around the array type.
2832 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2834 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
2837 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2839 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
2840 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
2841 code for -feliminate-unused-debug-types.
2842 (gnat_post_options): Likewise.
2844 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2846 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
2847 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
2850 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2852 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
2853 DECL_ARTIFICIAL flag on enumeration types.
2855 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2857 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
2858 fat pointer types artificial unconditionally.
2859 <E_Array_Subtype>: Attach the base array type as a parallel type if it
2862 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2864 * gcc-interface/gigi.h (get_dummy_type): Declare.
2865 (build_dummy_unc_pointer_types): Likewise.
2866 (finish_fat_pointer_type): Likewise.
2867 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
2868 fat pointer type has been built, complete it in place.
2869 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
2870 and thin pointers. Remove useless variable.
2871 (finish_fat_pointer_type): Make global and move to...
2872 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
2873 (get_dummy_type): New function.
2874 (build_dummy_unc_pointer_types): Likewise.
2875 (gnat_pushdecl): Propage the name to the anonymous variants only.
2876 (update_pointer_to): Only adjust the pointer types in the unconstrained
2879 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2881 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
2882 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
2883 if this is a Taft amendment type and the full declaration is available.
2884 * gcc-interface/trans.c (process_type): Likewise.
2885 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
2886 (process_freeze_entity): Likewise.
2887 * gcc-interface/utils.c (dummy_global): New static variable.
2888 (gnat_write_global_declarations): If there are types declared as used
2889 at the global level, insert them in the global hash table.
2891 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2893 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
2894 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
2895 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
2897 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
2898 flag of the type accordingly.
2899 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
2901 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
2903 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
2904 finalizing types when updating the pointers to the designated type.
2905 <all>: Finalize the deferred types even if we didn't defer processing
2906 of incomplete types in this invocation.
2908 2011-04-01 Olivier Hainque <hainque@adacore.com>
2909 Nicolas Setton <setton@adacore.com>
2910 Eric Botcazou <ebotcazou@adacore.com>
2912 * gcc-interface/misc.c (gnat_descriptive_type): New function.
2913 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
2915 2011-03-28 Kai Tietz <ktietz@redhat.com>
2917 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
2919 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
2920 * system-mingw.ads (System): Change ZCX_By_Default default to True.
2922 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
2924 2011-03-28 Tristan Gingold <gingold@adacore.com>
2927 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
2928 Use ada output of gnatbind.
2929 (ada/b_gnatb.adb): Ditto.
2930 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
2931 (ada.mostlyclean, ada.stage1)
2932 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
2933 (ada.stagefeedback): Adjust.
2934 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
2935 Use ada output of gnatbind.
2936 (b_gnatm.adb): Ditto.
2937 (b_gnatl.o, b_gnatm.o): New rules.
2939 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
2941 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
2942 for the padded type built to support a specified size or alignment.
2944 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
2946 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
2947 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
2948 unconditionally to the end of the unit when the designated type is
2950 <all>: Rename local variable. Attempt to un-defer types only and do it
2951 for limited_with'ed types as well.
2952 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
2953 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
2954 consistently and remove redundant call to finalize_from_with_types.
2956 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
2958 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
2959 subprograms without a previous spec declared in the same unit.
2960 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
2961 subprograms at the end of the unit instead of at the beginning.
2962 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
2963 isn't public for the special handling of non-inline functions nested
2964 inside inline external functions.
2966 2011-03-25 Jeff Law <law@redhat.com>
2968 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
2970 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
2972 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
2973 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
2974 to compute Set_Size_Depends_On_Discriminant.
2975 (Layout_Type): Call it on array types in back-end layout mode.
2976 * sem_util.adb (Requires_Transient_Scope): Return true for array
2977 types only if the size depends on the value of discriminants.
2978 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
2979 type if the RHS is a call to a function that returns an unconstrained
2980 type with default discriminant.
2982 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
2984 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
2985 non-conversion to the nominal result type at the end.
2987 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
2989 * gcc-interface/trans.c (create_temporary): New function taken from...
2990 (create_init_temporary): ...here. Call it.
2991 (call_to_gnu): Create the temporary for the return value early, if any.
2992 Create it for a function with copy-in/copy-out parameters if there is
2993 no target; in other cases of copy-in/copy-out, use another temporary.
2994 Push the new binding level lazily. Add and rename local variables.
2996 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
2998 * gcc-interface/decl.c (validate_size): Improve comments and tweak
3000 (set_rm_size): Likewise.
3002 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
3004 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
3005 for the padded type built in order to support a specified alignment.
3006 Fix incorrect formatting.
3008 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
3011 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
3013 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
3015 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
3016 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
3017 to the end of the list. Adjust recursive call. Rename local variable.
3018 If REORDER is true, reorder components of the record type.
3019 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
3020 components_to_record and adjust the parameter list.
3022 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
3024 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
3025 disabled, use the variable for bounds of loop iteration scheme.
3027 2011-03-21 Kai Tietz <ktietz@redhat.com>
3030 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
3032 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
3034 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
3035 out whether the expression is read-only. Short-circuit placeholder
3036 case and rename a couple of local variables.
3038 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
3040 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
3041 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
3042 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
3043 (convert): Deal with conversions from a smaller form type specially.
3045 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
3047 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
3048 its argument, except for the special -I- switch.
3050 2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3052 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
3055 2011-02-08 Eric Botcazou <ebotcazou@adacore.com>
3057 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
3059 2011-02-03 Eric Botcazou <ebotcazou@adacore.com>
3061 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
3063 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
3064 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
3065 instead of GNAT_FORMAL. Protect the expression against multiple uses.
3066 Do not generate the check directly, instead instantiate the template
3067 check present in the descriptor.
3068 (make_descriptor_field): Move around.
3069 (build_vms_descriptor32): Build a template check in the POINTER field.
3070 (build_vms_descriptor): Remove useless suffixes.
3071 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
3073 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
3076 * targext.c: Include target files if IN_RTS is defined.
3078 2011-01-26 Richard Guenther <rguenther@suse.de>
3081 * targext.c: Include config.h.
3082 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
3085 2011-01-04 Pascal Obry <obry@adacore.com>
3086 Eric Botcazou <ebotcazou@adacore.com>
3088 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
3090 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
3092 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
3093 end-of-case on the end label and its associated gotos, if any.
3095 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
3097 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
3098 expressions of the parameter cache within the statement group of
3101 2011-01-04 Olivier Hainque <hainque@adacore.com>
3102 Eric Botcazou <ebotcazou@adacore.com>
3104 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
3105 (set_end_locus_from_node): New function.
3106 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
3107 make and the function end_locus.
3108 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
3109 for the elaboration subprogram.
3110 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
3111 set the end_locus of the expression as well.
3113 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
3116 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
3117 variables that are referenced in exception handlers volatile.
3121 Copyright (C) 2011 Free Software Foundation, Inc.
3123 Copying and distribution of this file, with or without modification,
3124 are permitted in any medium without royalty provided the copyright
3125 notice and this notice are preserved.