1 2011-08-03 Emmanuel Briot <briot@adacore.com>
3 * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
6 2011-08-03 Yannick Moy <moy@adacore.com>
8 * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
9 * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
10 * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
11 detect that an array has static bounds.
13 2011-08-03 Thomas Quinot <quinot@adacore.com>
15 * exp_dist.adb: Minor reformatting.
17 2011-08-03 Arnaud Charlet <charlet@adacore.com>
19 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
20 (ATCB_Key): Removed, not always used.
22 2011-08-03 Emmanuel Briot <briot@adacore.com>
24 * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
25 clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
26 most remaining global variables.
28 2011-08-03 Robert Dewar <dewar@adacore.com>
30 * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
31 prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
34 2011-08-03 Javier Miranda <miranda@adacore.com>
36 * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
37 that must be passed by copy in VM targets.
39 2011-08-03 Emmanuel Briot <briot@adacore.com>
41 * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
42 duplicates a similar htable now in the project tree.
44 2011-08-03 Claire Dross <dross@adacore.com>
46 * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
47 a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
48 Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
49 Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
50 Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
51 Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
52 Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
55 2011-08-03 Arnaud Charlet <charlet@adacore.com>
57 * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
58 (ATCB_Key): Removed, not always used.
59 * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
61 * s-tpopsp-tls.adb: New file.
62 * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
63 x86/x64/ia64/powerpc/sparc Linux.
65 2011-08-03 Arnaud Charlet <charlet@adacore.com>
67 * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
68 * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.
70 2011-08-03 Thomas Quinot <quinot@adacore.com>
72 * rtsfind.ads, exp_dist.adb, exp_dist.ads
73 (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
74 Fix type selection for mapping integer types to PolyORB types.
76 2011-08-03 Bob Duff <duff@adacore.com>
78 * sem_ch7.adb: Minor comment clarification.
80 2011-08-03 Bob Duff <duff@adacore.com>
82 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
83 an error analyzing a choice, skip further processing. Further
84 processing could cause a crash or cascade errors.
86 2011-08-03 Emmanuel Briot <briot@adacore.com>
88 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
89 prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
90 prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
91 prj-env.ads (Shared_Project_Tree_Data): new type
92 An aggregate project and its aggregated trees need to share the common
93 data structures used for lists of strings, packages,... This makes the
94 code simpler since otherwise we have to pass the root tree (also used
95 for the configuration file data) in addition to the current project
96 tree. This also avoids ambiguities as to which tree should be used.
97 And finally this saves a bit of memory.
98 (For_Every_Project_Imported): new parameter Tree.
99 Since aggregated projects are using a different tree, we need to let
100 the caller know which tree to use to manipulate the returned project.
102 2011-08-03 Robert Dewar <dewar@adacore.com>
104 * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
105 prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
106 lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
107 prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.
109 2011-08-03 Javier Miranda <miranda@adacore.com>
111 * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
112 Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
114 2011-08-03 Bob Duff <duff@adacore.com>
116 * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
119 2011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>
121 * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
122 g-sehash.ads: Fix typo. Update header.
124 2011-08-03 Thomas Quinot <quinot@adacore.com>
126 * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
129 2011-08-03 Gary Dismukes <dismukes@adacore.com>
131 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
132 prefixes of private types along with records, since the selector may be
134 * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
135 private types along with records, since the selector may be a
138 2011-08-03 Emmanuel Briot <briot@adacore.com>
140 * prj-pp.adb (Pretty_Print): remove trailing blank line in the file
142 2011-08-03 Javier Miranda <miranda@adacore.com>
144 * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
145 Tagged_Type_Expansion.
147 2011-08-03 Yannick Moy <moy@adacore.com>
150 (Resolve_Op_Concat_Arg): do not issue a SPARK violation when argument of
151 concatenation is the name of a constant
153 2011-08-03 Emmanuel Briot <briot@adacore.com>
155 * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
156 prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
157 (Process_Declarative_Items): new parameter Child_Env.
159 2011-08-03 Yannick Moy <moy@adacore.com>
161 * alfa.ads Update format of ALFA section in ALI file in order to add a
162 mapping from bodies to specs when both are present
163 (ALFA_Scope_Record): add components for spec file/scope
164 * get_alfa.adb (Get_ALFA): read the new file/scope for spec when present
166 (Collect_ALFA): after all scopes have been collected, fill in the spec
167 information when relevant
168 * put_alfa.adb (Put_ALFA): write the new file/scope for spec when
171 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
173 * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
174 code unit to decide whether to add internally generated subprograms.
176 2011-08-03 Javier Miranda <miranda@adacore.com>
178 * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
180 (Build_Simple_Entry_Call): Handle actuals that must be handled by copy
183 2011-08-03 Emmanuel Briot <briot@adacore.com>
185 * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): now shares
186 code with Makeutl.Get_Switches.
187 * prj-tree.adb: Update comment.
189 2011-08-03 Thomas Quinot <quinot@adacore.com>
191 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
192 subprogram with a limited formal that does not support external
195 2011-08-03 Yannick Moy <moy@adacore.com>
197 * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
199 * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
200 not from current unit in two phases, because it is not possible to
201 change the table while iterating over its content.
202 * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity
204 2011-08-03 Sergey Rybin <rybin@adacore.com>
206 * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
207 * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)
209 2011-08-03 Ed Schonberg <schonberg@adacore.com>
211 * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
212 and the component type is composite, this is ambiguous for predefined
213 concatenation, but if the node is not overloaded and the entity is a use
214 -defined function its profile can be used to resolve that aggregate.
216 2011-08-03 Robert Dewar <dewar@adacore.com>
218 * exp_ch4.adb: Minor code cleanup.
220 2011-08-03 Thomas Quinot <quinot@adacore.com>
222 * exp_dist.adb: Do not generate distribution stubs if serious errors
225 2011-08-03 Ed Schonberg <schonberg@adacore.com>
227 * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
228 the first formal of a primitive operation, go to the base type to
229 handle properly an access to a derived type with constrained
231 * sem_type.adb (Disambiguate): an immediately visible operator hides a
232 user-defined function that is only use-visible.
234 2011-08-03 Robert Dewar <dewar@adacore.com>
236 * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
237 make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
238 fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
239 prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
240 sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
241 prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
242 prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
243 alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting
245 2011-08-03 Robert Dewar <dewar@adacore.com>
247 * repinfo.adb (List_Mechanism): Add handling of
248 Convention_Ada_Pass_By_XXX.
249 * sem_mech.adb (Set_Mechanism): Ditto.
250 * sem_prag.adb (Process_Convention): Add entries for
251 Convention_Ada_Pass_By_XXX.
252 * snames.adb-tmpl, snames.ads-tmpl: Ditto.
254 2011-08-03 Pascal Obry <obry@adacore.com>
256 * makeutl.adb: Minor reformatting.
258 2011-08-03 Vincent Celier <celier@adacore.com>
261 (Get_File_Name) If the file cannot be found when there are no config
262 pragmas file and May_Fail is True, return No_File instead of the file
263 name, to be consistent.
265 2011-08-03 Pascal Obry <obry@adacore.com>
267 * adaint.c (__gnat_is_executable_file_attr): Avoid access
270 2011-08-03 Javier Miranda <miranda@adacore.com>
273 (Same_Representation): In VM targets the representation of arrays with
274 aliased components differs from arrays with non-aliased components.
276 2011-08-03 Emmanuel Briot <briot@adacore.com>
278 * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
279 not systematically lower case attribute indexes that contain no "."
280 Fix definition of several Naming attributes, which take
281 a unit name as index and therefore should be case insensitive.
282 Minor refactoring (reduce length of variable names).
284 2011-08-03 Emmanuel Briot <briot@adacore.com>
286 * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.
288 2011-08-03 Emmanuel Briot <briot@adacore.com>
290 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
291 prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
292 prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
293 prj-tree.ads (Prj.Tree.Environment): new type.
295 2011-08-03 Emmanuel Briot <briot@adacore.com>
297 * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
298 prj-tree.adb, prj-tree.ads (Environment): new type.
300 2011-08-03 Emmanuel Briot <briot@adacore.com>
302 * prj-tree.ads: Remove unused variable.
304 2011-08-03 Yannick Moy <moy@adacore.com>
306 * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
307 issuing messages related to SPARK restriction violation.
309 2011-08-03 Ed Schonberg <schonberg@adacore.com>
311 * sem_ch6.adb: guard against error nodes in return statements.
313 2011-08-03 Arnaud Charlet <charlet@adacore.com>
315 * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
316 a warning can only appear on a configuration file, so emit warning
317 without further checks.
319 2011-08-03 Arnaud Charlet <charlet@adacore.com>
321 * s-interr.ads: add overriding keyword.
323 2011-08-03 Geert Bosch <bosch@adacore.com>
325 * exp_attr.adb: Fix minor typo.
327 2011-08-03 Ed Schonberg <schonberg@adacore.com>
329 * par-ch4.adb: improve error recovery.
331 2011-08-03 Emmanuel Briot <briot@adacore.com>
333 * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
334 prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
337 2011-08-03 Emmanuel Briot <briot@adacore.com>
339 * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
340 "external" as an attribute name in aggregate projects.
342 2011-08-03 Jose Ruiz <ruiz@adacore.com>
344 * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
345 uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
346 from 0, so we need to adjust.
348 2011-08-03 Emmanuel Briot <briot@adacore.com>
350 * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
351 prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.
353 2011-08-03 Yannick Moy <moy@adacore.com>
355 * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
356 restriction on overloaded entity if the entity is not an operator.
358 2011-08-03 Yannick Moy <moy@adacore.com>
360 * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
361 restrict.ads: Rename remaining Check_Formal_Restriction* into
362 Check_SPARK_Restriction*.
364 2011-08-03 Emmanuel Briot <briot@adacore.com>
366 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
367 prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
369 (Project_Empty): removed
370 (Empty_Project): new parameter Qualifier
371 This is used to have fields specific to aggregate projects, cleaner
372 New field to store the list of aggregated projects.
373 (Check_Aggregate_Project): removed
374 (Process_Aggregated_Projects, Free): new subprograms.
376 2011-08-03 Olivier Hainque <hainque@adacore.com>
378 * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.
380 2011-08-03 Ed Schonberg <schonberg@adacore.com>
382 * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
383 explicit dereference of an unconstrained type, create a constrained
384 subtype for it, as is done for function calls that return an
387 2011-08-03 Thomas Quinot <quinot@adacore.com>
389 * g-pehage.adb (Finalize): Avoid possible double-free.
391 2011-08-03 Steve Baird <baird@adacore.com>
393 * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
394 Elab_Spec/Body attrs in CodePeer_Mode.
396 2011-08-03 Javier Miranda <miranda@adacore.com>
398 * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
399 low bound is not known at compile time but they have no others choice.
400 Done because in this case the bounds can be obtained directly from the
403 2011-08-03 Ed Falis <falis@adacore.com>
405 * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
406 on VxWorks SMP. Remove unusable constant ANY_CPU.
408 2011-08-03 Emmanuel Briot <briot@adacore.com>
410 * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
411 clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
412 prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
413 Prj.Env.Initialize_Empty): new subprograms
414 (Get_Env, Find_Project): remove parameter Target_Name.
416 2011-08-03 Gary Dismukes <dismukes@adacore.com>
418 * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
419 as a condition for the delayed call to Derived_Subprograms done for the
420 case of the rewriting of a derived type that constrains the
421 discriminants of its parent type.
422 Avoids redundant subprogram derivations for private subtype derivations.
424 2011-08-03 Javier Miranda <miranda@adacore.com>
426 * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
427 Build_Record_Aggr_Code.
428 (Build_Record_Aggr_Code): Add missing support to initialize hidden
429 discriminants in extension aggregates.
431 2011-08-03 Emmanuel Briot <briot@adacore.com>
433 * prj-pp.adb (Print): also output project qualifiers, since in
434 particular "aggregate" is mandatory in an aggregate project.
436 2011-08-03 Emmanuel Briot <briot@adacore.com>
438 * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
439 (Debug_Output): new function.
441 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
443 * gnat_ugn.texi: Document -Wstack-usage.
444 * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
446 2011-08-03 Thomas Quinot <quinot@adacore.com>
448 * sem_prag.adb Issue an error (not a warning) when a C++ type does not
449 have keyword LIMITED.
451 2011-08-03 Yannick Moy <moy@adacore.com>
453 * alfa.adb, alfa.ads, alfa_test.adb: New files.
454 * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
455 (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
456 section (does not happen in compiler, only if code directly calls
458 * get_alfa.adb, get_alfa.ads: New files.
459 * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
461 * lib-xref-alfa.adb: New file.
462 * lib-xref.adb, lib-xref.ads
463 (Xref_Entry): redefine information needed in cross-references for ALFA.
464 Push ALFA treatments in separated local package.
465 (Enclosing_Subpragram_Or_Package): treat specially subprogram
466 identifiers. Return entity of package body instead of spec. Return
467 Empty for a scope with no location.
468 (Generate_Reference): adapt to new components for ALFA information.
469 Remove the need for D references on definitions.
470 (Is_Local_Reference): moved to ALFA local package
471 (Output_References): extract subfunction as Extract_Source_Name
472 (Output_Local_References): remove procedure, replaced by filtering of
473 cross-references in package ALFA and printing in Put_ALFA.
474 (Write_Entity_Name): remove procedure
475 * lib.adb, lib.ads (Extract_Source_Name): extract here function to
476 print exact name of entity as it appears in source file
477 (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
478 * put_alfa.adb, put_alfa.ads: New files.
479 * xref_lib.adb (Search_Xref): protect read of cross-references against
480 reading other sections of the ALI file, in gnatxref
481 (Search): protect read of cross-references against reading other
482 sections of the ALI file, in gnatfind.
483 * gcc-interface/Make-lang.in: Update dependencies.
485 2011-08-03 Thomas Quinot <quinot@adacore.com>
487 * sem_ch3.adb: Minor reformatting.
489 2011-08-03 Jose Ruiz <ruiz@adacore.com>
491 * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
492 raising an exception.
494 2011-08-03 Ed Schonberg <schonberg@adacore.com>
496 * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
497 type, always use 1 as the lower bound or string, even if lower bound of
498 context is not static, to handle properly null strings in a non-static
501 2011-08-03 Bob Duff <duff@adacore.com>
503 * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
504 always legal on the right-hand side of an assignment statement; there
505 is always an applicable index constraint in this case. Therefore, the
506 check for Pkind = N_Assignment_Statement is now unconditional -- it
507 doesn't depend on whether Is_Constrained (Typ).
509 2011-08-03 Robert Dewar <dewar@adacore.com>
511 * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.
513 2011-08-03 Ed Schonberg <schonberg@adacore.com>
515 * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
516 for an itype created within a generic unit.
518 2011-08-03 Eric Botcazou <ebotcazou@adacore.com>
520 * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
521 suppresses all inlining.
523 2011-08-03 Robert Dewar <dewar@adacore.com>
525 * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
526 exp_aggr.adb: Minor reformatting.
528 2011-08-03 Thomas Quinot <quinot@adacore.com>
530 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
531 tagged assignment when discriminant checks are suppressed. This is
532 useless and extremely costly in terms of static stack usage.
534 2011-08-03 Bob Duff <duff@adacore.com>
536 * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
537 of generics, because this leads to the wrong entity in the wrong scope,
538 causing (e.g.) pragma Export_Procedure to get an error if the entity is
540 (Process_Interface_Name): Follow Alias for instances of generics, to
541 correct for the above change.
543 2011-08-03 Ed Schonberg <schonberg@adacore.com>
545 * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
546 is an integer literal it is always safe to replace the reference. In
547 addition, if the reference appears in the generated code for an object
548 declaration it is necessary to copy because otherwise the reference
549 might be to the uninitilized value of the discriminant of the object
552 2011-08-03 Pascal Obry <obry@adacore.com>
554 * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
555 ACL used, in this case we want to check for ending .exe, not .exe
556 anywhere in the path.
558 2011-08-03 Sergey Rybin <rybin@adacore.com>
560 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
561 the tree structure (semantic decoration of references to record
564 2011-08-03 Gary Dismukes <dismukes@adacore.com>
566 * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
567 choices of a named array aggregate, bail out when any choices are
568 marked as Errors_Posted.
570 2011-08-03 Ed Schonberg <schonberg@adacore.com>
572 * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
573 in which entity is frozen, to handle properly loop variables in
576 2011-08-03 Ed Schonberg <schonberg@adacore.com>
578 * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
579 subtype is not static, compute the upper bound using attributes, to
580 handle properly index types that are not integer types.
582 2011-08-03 Bob Duff <duff@adacore.com>
584 * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
585 Update copyright notice.
587 2011-08-03 Ed Schonberg <schonberg@adacore.com>
589 * sem_ch3.adb (Build_Discriminant_Constraints): Only use
590 Original_Discriminant if within an instance.
591 * sem_ch4.adb (Analyze_Selected_Component): Ditto.
593 2011-08-03 Thomas Quinot <quinot@adacore.com>
595 * einfo.ads: Minor reformatting.
597 2011-08-03 Ed Schonberg <schonberg@adacore.com>
599 * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
600 composite type with an unfrozen subcomponent, in the profile of a
603 2011-08-03 Robert Dewar <dewar@adacore.com>
605 * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.
607 2011-08-03 Ed Schonberg <schonberg@adacore.com>
609 * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
610 unconstrained type with discriminants is initialized with an aggregate,
611 use the constrained subtype of the aggregate as the type of the object,
612 because it is immutable, and this allows the back-end to generate no
613 code for the object declaration.
615 2011-08-03 Robert Dewar <dewar@adacore.com>
617 * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
618 comparison operand is variable, and turns out to be zero or negative.
620 2011-08-03 Javier Miranda <miranda@adacore.com>
623 (Expand_Dispatching_Constructor_Call): Disable expansion of
624 code required for native targets. Done to avoid generating
625 references to unavailable runtime entities in VM targets.
627 (Expand_N_Object_Declaration): Add missing support to handle
628 the explicit initialization of class-wide interface objects.
631 2011-08-03 Matthew Heaney <heaney@adacore.com>
633 * a-cobove.adb (Merge): Move source onto target, instead of using Assign
635 2011-08-03 Matthew Heaney <heaney@adacore.com>
637 * a-cbdlli.adb (Splice): move source items from first to last
639 2011-08-03 Yannick Moy <moy@adacore.com>
641 * sem_util.ads: comment added.
643 2011-08-03 Javier Miranda <miranda@adacore.com>
646 (Expand_Record_Aggregate): In VM targets disable the expansion into
647 assignments of aggregates whose type is not known at compile time.
649 2011-08-03 Ed Schonberg <schonberg@adacore.com>
651 * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
652 protected entries and task entries, to build the proper renaming
653 declaration for entry formals, used in debugging.
654 * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
655 parameters in the same way.
657 2011-08-02 Robert Dewar <dewar@adacore.com>
659 * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
660 sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
663 2011-08-02 Robert Dewar <dewar@adacore.com>
665 * debug.adb: Debug flag d.P to suppress length comparison optimization
666 * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
667 comparison of Length by comparing First/Last instead.
669 2011-08-02 Matthew Heaney <heaney@adacore.com>
671 * a-cobove.ads: Code clean up.
673 2011-08-02 Vincent Celier <celier@adacore.com>
675 * adaint.c (file_names_case_sensitive_cache): New static int.
676 (__gnat_get_file_names_case_sensitive): Cache the return value in
677 file_names_case_sensitive_cache at the first invocation, to avoid
678 multiple calls to getenv.
680 2011-08-02 Bob Duff <duff@adacore.com>
682 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.
684 2011-08-02 Yannick Moy <moy@adacore.com>
686 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
687 sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
688 sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
689 indicate that we are in a precondition or postcondition. This is used in
690 Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
691 decide whether to flag the spec or body of the current subprogram as
694 2011-08-02 Fabien Chouteau <chouteau@adacore.com>
696 * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
698 * a-extiin.ads: New file.
700 2011-08-02 Bob Duff <duff@adacore.com>
702 * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
703 now raises Name_Error instead of Use_Error in certain cases. The other
704 parts of this AI were already implemented properly.
706 2011-08-02 Vincent Celier <celier@adacore.com>
708 * link.c: Only import "auto-host.h" when building the gnattools.
710 2011-08-02 Yannick Moy <moy@adacore.com>
712 * sem_util.adb: Inter-unit inlining does not work for a subprogram
713 which calls a local subprogram, so extract subprogram
714 from Mark_Non_ALFA_Subprogram_Body.
716 2011-08-02 Javier Miranda <miranda@adacore.com>
719 (Extract_Dispatching_Call): If the type of the dispatching object is an
720 access type then return an explicit dereference in the Object out-mode
723 2011-08-02 Gary Dismukes <dismukes@adacore.com>
725 * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
726 compatibility checks for all indexes of an array subtype, not just the
727 first. Reset Has_Dynamic_Range_Check on the subtype before each
728 potential check to ensure that Insert_Range_Checks will not elide any
729 of the dynamic checks.
731 2011-08-02 Yannick Moy <moy@adacore.com>
733 * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
734 SPARK restriction at parsing time.
735 * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
736 directive only if the SPARK restriction is set for this unit.
738 2011-08-02 Yannick Moy <moy@adacore.com>
740 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
741 sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
742 sem_ch11.adb: Protect call to Current_Subprogram which might be costly
743 when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
744 Mark_Non_ALFA_Subprogram_Body.
745 Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
748 2011-08-02 Yannick Moy <moy@adacore.com>
750 * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
753 2011-08-02 Robert Dewar <dewar@adacore.com>
755 * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
756 exp_ch3.adb: Minor reformatting.
758 2011-08-02 Emmanuel Briot <briot@adacore.com>
760 * adaint.c (__gnat_locate_exec_on_path): only returns executable
761 files, not any regular file.
762 (__gnat_locate_file_with_predicate): new subprogram.
764 2011-08-02 Yannick Moy <moy@adacore.com>
766 * sinfo.adb, sinfo.ads: Restrict the use of flags
767 Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
768 nodes, plus N_Subtype_Declaration for the 2nd one.
770 2011-08-02 Sergey Rybin <rybin@adacore.com>
772 * gnat_rm.texi: Ramification of pragma Eliminate documentation
773 - fix bugs in the description of Source_Trace;
774 - get rid of UNIT_NAME;
776 2011-08-02 Javier Miranda <miranda@adacore.com>
779 (Build_Dispatching_Requeue): Adding support for VM targets
780 since we cannot directly reference the Tag entity.
781 * exp_sel.adb (Build_K): Adding support for VM targets.
782 (Build_S_Assignment): Adding support for VM targets.
784 (Default_Prim_Op_Position): In VM targets do not restrict availability
785 of predefined interface primitives to compiling in Ada 2005 mode.
786 (Is_Predefined_Interface_Primitive): In VM targets this service is not
787 restricted to compiling in Ada 2005 mode.
788 (Make_VM_TSD): Generate code that declares and initializes the OSD
789 record. Needed to support dispatching calls through synchronized
792 (Make_Predefined_Primitive_Specs): Enable generation of predefined
793 primitives associated with synchronized interfaces.
794 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
795 primitives associated with synchronized interfaces.
797 2011-08-02 Yannick Moy <moy@adacore.com>
799 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
800 statements hidden in SPARK if preceded by the HIDE directive
801 (Parse_Exception_Handlers): mark each exception handler in a sequence of
802 exception handlers as hidden in SPARK if preceded by the HIDE directive
803 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
804 if starting with the HIDE directive
805 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
806 starting with the HIDE directive; mark the declarations in a private
807 part as hidden in SPARK if the private part starts with the HIDE
809 * restrict.adb, restrict.ads
810 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
811 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
812 argument node belongs to a part which is hidden in SPARK
813 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
814 parts in SPARK; protect the possibly costly call to
815 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
816 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
817 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
818 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
820 (Scan): recognize special comment starting with '#' and followed by
821 SPARK keyword "hide" as a HIDE directive.
823 2011-08-02 Yannick Moy <moy@adacore.com>
825 * types.ads, erroutc.ads: Minor reformatting.
827 2011-08-02 Vincent Celier <celier@adacore.com>
829 * link.c: Add response file support for cross platforms.
831 2011-08-02 Ed Schonberg <schonberg@adacore.com>
833 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
834 in an association, set parent field of copy before partial analysis.
835 * sem_res.adb (Resolve_Slice): create reference to itype only when
836 expansion is enabled.
838 2011-08-02 Yannick Moy <moy@adacore.com>
840 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
841 for new flag denoting which subprogram bodies are in ALFA
842 * restrict.adb, sem_ch7.adb: Update comment
843 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
844 sem_ch9.adb, sem_res.adb: Add calls to
845 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
846 * sem_ch6.adb (Analyze_Function_Return): add calls to
847 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
848 middle of the body, and extended return.
849 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
850 False when missing return.
851 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
852 to True for subprograms whose spec is in ALFA. Remove later on the flag
853 on the entity used for a subprogram body when there exists a separate
855 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
856 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
857 False, otherwise do nothing.
859 2011-08-02 Robert Dewar <dewar@adacore.com>
861 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
863 2011-08-02 Yannick Moy <moy@adacore.com>
865 * sem_ch4.ads: minor formatting.
867 2011-08-02 Yannick Moy <moy@adacore.com>
869 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
870 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
871 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
872 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
873 opt.ads: cleanup of SPARK mode
875 2011-08-02 Yannick Moy <moy@adacore.com>
877 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
879 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
880 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
882 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
883 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
884 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
885 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
887 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
889 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
890 functions whose return type is not in ALFA.
891 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
893 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
894 parameter's type is not in ALFA.
895 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
898 2011-08-02 Ed Schonberg <schonberg@adacore.com>
900 * sem_ch6 (Analyze_Expression_Function): treat the function as
901 Inline_Always, and introduce a subprogram declaration for it when it is
903 * inline.adb (Add_Inlined_Body): recognize bodies that come from
904 expression functions, so that the back-end can determine whether they
905 can in fact be inlined.
906 * sem_util.adb (Is_Expression_Function): predicate to determine whether
907 a function body comes from an expression function.
909 2011-08-02 Gary Dismukes <dismukes@adacore.com>
911 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
912 null exclusions to test Can_Never_Be_Null on the anonymous access types
913 of the formals rather than testing the formals themselves. Exclude this
914 check in cases where the Old_Formal is marked as a controlling formal,
915 to avoid issuing spurious errors for bodies completing dispatching
916 operations (due to the flag not getting set on controlling access
917 formals in body specs).
918 (Find_Corresponding_Spec): When checking full and subtype conformance of
919 subprogram bodies in instances, pass Designated and E in that order, for
920 consistency with the expected order of the formals (New_Id followed by
923 2011-08-02 Robert Dewar <dewar@adacore.com>
925 * sem_ch8.adb: Minor reformatting.
927 2011-08-02 Ed Schonberg <schonberg@adacore.com>
929 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
930 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
931 primitive operations of class-wide actuals.
933 2011-08-02 Javier Miranda <miranda@adacore.com>
935 * exp_atag.ads, exp_atag.adb
936 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
937 since its value is implicitly passed in argument Typ.
938 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
939 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
940 Build_Common_Dispatching_Select_Statements.
942 2011-08-02 Robert Dewar <dewar@adacore.com>
944 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
945 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
948 2011-08-02 Robert Dewar <dewar@adacore.com>
950 * sem_res.adb: Minor reformatting.
951 * sem_prag.adb: Minor reformatting.
953 2011-08-02 Javier Miranda <miranda@adacore.com>
955 * exp_atag.adb, exp_atags.ads
956 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
957 by the tagged type Entity. Required to use this routine in the VM
958 targets since we do not have available the Tag entity in the VM
961 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
962 Ada.Tags has not been previously loaded.
964 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
965 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
967 (Enclosing_Dynamic_Scope): Add missing support to handle the full
968 view of enclosing scopes. Required to handle enclosing scopes that
969 are synchronized types whose full view is a task type.
971 (Build_VM_TSDs): Minor code improvement to avoid generating and
972 analyzing lists with empty nodes.
973 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
974 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
975 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
976 (Make_Disp_Timed_Select_Body): Add support for VM targets.
977 (Make_Select_Specific_Data_Table): Add support for VM targets.
978 (Make_VM_TSD): Generate code to initialize the SSD structure of
981 2011-08-02 Yannick Moy <moy@adacore.com>
983 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
984 cross-references section in ALI.
985 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
986 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
988 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
989 subprogram or package entity of a node
990 (Is_Local_Reference_Type): new function returns True for references
991 selected in local cross-references.
992 (Lt): function extracted from Lt in Output_References
993 (Write_Entity_Name): function extracted from Output_References
994 (Generate_Definition): generate reference with type 'D' for definition
995 of objects (object declaration and parameter specification), with
996 appropriate locations and units, for use in local cross-references.
997 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
998 references of type 'I' for initialization in object definition.
999 (Output_References): move part of function Lt and procedure
1000 Write_Entity_Name outside of the body. Ignore references of types 'D'
1001 and 'I' introduced for local cross-references.
1002 (Output_Local_References): new procedure to output the local
1003 cross-references sections.
1004 (Lref_Entity_Status): new array defining whether an entity is a local
1005 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
1006 with 'I' type when initialization expression is present.
1007 * get_scos.adb, get_scos.ads: Correct comments and typos
1009 2011-08-02 Javier Miranda <miranda@adacore.com>
1011 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
1013 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
1015 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
1018 2011-08-02 Vincent Celier <celier@adacore.com>
1020 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
1021 (No_Space_Img): New function
1022 (Find_Excluded_Sources): When reading from a file, record the file name
1023 and the line number for each excluded source.
1024 (Mark_Excluded_Sources): When reporting an error, if the excluded
1025 sources were read from a file, include file name and line number in
1028 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1030 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
1032 2011-08-02 Robert Dewar <dewar@adacore.com>
1034 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
1036 2011-08-02 Javier Miranda <miranda@adacore.com>
1038 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
1039 generation of TSDs to the DOTNET compiler.
1040 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
1041 generation of TSDs to the DOTNET compiler.
1043 2011-08-02 Javier Miranda <miranda@adacore.com>
1045 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
1046 record of all the tagged types declared inside library level package
1047 declarations, library level package bodies or library level subprograms.
1048 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
1049 associated with a given tagged type.
1050 (Build_VM_TSDs): New subprogram.
1051 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
1052 compilation units that are subprograms.
1053 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
1054 compilation units that are package bodies.
1055 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
1056 units that are a package declaration or a package instantiation.
1057 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
1058 reorganization to improve the error generated by the frontend when the
1059 function Ada.Tags.Secondary_Tag is not available.
1060 * rtsfind.ads (RE_Register_TSD): New runtime entity.
1061 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
1063 2011-08-02 Javier Miranda <miranda@adacore.com>
1065 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
1067 2011-08-02 Robert Dewar <dewar@adacore.com>
1069 * s-imenne.ads: Minor reformatting.
1071 2011-08-02 Robert Dewar <dewar@adacore.com>
1073 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
1074 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
1075 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
1077 2011-08-02 Robert Dewar <dewar@adacore.com>
1079 * einfo.ads (Materialize_Entity): Document this is only for renamings
1080 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
1081 required debug information in the case where we transform the object
1082 declaration into a renaming declaration.
1083 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
1085 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
1088 2011-08-02 Robert Dewar <dewar@adacore.com>
1090 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
1091 Suppress_Init_Procs.
1092 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
1093 Suppress_Initialization/Initialization_Suppressed.
1094 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
1095 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
1096 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
1097 * sem_prag.adb: New processing for pragma Suppress_Initialization.
1099 2011-08-02 Robert Dewar <dewar@adacore.com>
1101 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
1104 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1106 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
1107 only have inheritable classwide pre/postconditions.
1109 2011-08-02 Javier Miranda <miranda@adacore.com>
1111 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
1112 * rtsfind.ads (RE_Check_TSD): New runtime entity.
1113 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
1114 checks if the external tag of a type is the same as the external tag
1115 of some other declaration.
1117 2011-08-02 Thomas Quinot <quinot@adacore.com>
1119 * s-taskin.ads: Minor reformatting.
1121 2011-08-02 Emmanuel Briot <briot@adacore.com>
1123 * g-comlin.adb (Display_Help): swap the order in which it prints the
1124 short help and the general usage.
1126 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1128 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
1129 the aspect declarations and attach them to the generic copy for
1130 subsequent analysis.
1131 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
1132 declarations of the generic tree to the new subprogram declarations.
1133 * sem_attr.adb (Check_Precondition_Postcondition): recognize
1134 conditions that apply to a subprogram instance.
1136 2011-08-02 Robert Dewar <dewar@adacore.com>
1138 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
1140 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1142 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
1143 private type with a tagged full view is not derived in the immediate
1144 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
1146 2011-08-02 Robert Dewar <dewar@adacore.com>
1148 * exp_ch4.adb: Minor reformatting.
1150 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1152 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
1153 Ada2012 iterator, the loop will be rewritten during expansion into a
1154 while loop with a cursor and an element declaration. Do not analyze the
1155 body in this case, because if the container is for indefinite types the
1156 actual subtype of the elements will only be determined when the cursor
1157 declaration is analyzed.
1159 2011-08-02 Arnaud Charlet <charlet@adacore.com>
1161 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
1162 size/alignment related attributes in CodePeer_Mode.
1164 2011-08-02 Gary Dismukes <dismukes@adacore.com>
1166 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
1167 Prepend_Element, since this can result in the operation getting the
1168 wrong slot in the full type's dispatch table if the full type has
1169 inherited operations. The incomplete type's operation will get added
1170 to the proper position in the full type's primitives
1171 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
1172 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
1173 dispatching operations, since there are cases where nonprimitive
1174 subprograms can get added to the list of incomplete dependents (such
1175 as subprograms in nested packages).
1176 * sem_ch6.adb (Process_Formals): First, remove test for being in a
1177 private part when determining whether to add a primitive with a
1178 parameter of a tagged incomplete type to the Private_Dependents list.
1179 Such primitives can also occur in the visible part, and should not have
1180 been excluded from being private dependents.
1181 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
1182 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
1183 list of a Taft-amendment incomplete type is a primitive before issuing
1184 an error that the full type must appear in the same unit. There are
1185 cases where nonprimitives can be in the list (such as subprograms in
1187 * sem_disp.adb (Derives_From): Use correct condition for checking that
1188 a formal's type is derived from the type of the corresponding formal in
1189 the parent subprogram (the condition was completely wrong). Add
1190 checking that was missing for controlling result types being derived
1191 from the result type of the parent operation.
1193 2011-08-02 Yannick Moy <moy@adacore.com>
1195 * errout.adb (First_Node): minor renaming
1196 * restrict.adb (Check_Formal_Restriction): put restriction warning on
1199 2011-08-02 Yannick Moy <moy@adacore.com>
1201 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
1202 before accessing operands.
1203 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
1204 decide whether an initialization expression respects SPARK rules, as
1205 the plain node is the expanded one. This allows for more valid warnings
1207 * gnat_rm.texi: Minor update.
1209 2011-08-02 Arnaud Charlet <charlet@adacore.com>
1211 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
1214 2011-08-02 Robert Dewar <dewar@adacore.com>
1216 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
1218 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
1220 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
1221 loop statements and the element renaming declaration with a block when
1222 the element type is controlled.
1224 2011-08-02 Yannick Moy <moy@adacore.com>
1226 * sinfo.ads: Minor formatting.
1228 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1230 * sem_aggr.adb (Add_Association): if the association has a box and no
1231 expression, use the Sloc of the aggregate itself for the new
1233 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
1236 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
1238 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
1239 When a container is provided via a function call, generate a renaming
1240 of the function result. This avoids the creation of a transient scope
1241 and the premature finalization of the container.
1242 * exp_ch7.adb (Is_Container_Cursor): Removed.
1243 (Wrap_Transient_Declaration): Remove the supression of the finalization
1244 of the list controller when the declaration denotes a container cursor,
1247 2011-08-02 Yannick Moy <moy@adacore.com>
1249 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
1250 node is from source, instead of the original node being from source.
1252 (Resolve_Array_Aggregate): refine the check for a static expression, to
1253 recognize also static ranges
1254 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
1255 Array_Type_Declaration): postpone the test for the type being a subtype
1256 mark after the type has been resolved, so that component-selection and
1257 expanded-name are discriminated.
1258 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
1259 to distinguish the case of an iteration scheme, so that an error is
1260 issed on a non-static range in SPARK except in an iteration scheme.
1261 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
1262 In_Iter_Schm = True.
1263 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
1264 user-defined operators so that they are allowed in renaming
1266 (Find_Selected_Component): refine the check for prefixing of operators
1267 so that they are allowed in renaming. Move the checks for restrictions
1268 on selector name after analysis discriminated between
1269 component-selection and expanded-name.
1270 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
1271 concatenation argument of string type if it is static.
1272 * sem_util.adb, sem_util.ads
1273 (Check_Later_Vs_Basic_Declarations): add a new function
1274 Is_Later_Declarative_Item to decice which declarations are allowed as
1275 later items, in the two different modes Ada 83 and SPARK. In the SPARK
1276 mode, add that renamings are considered as later items.
1277 (Enclosing_Package): new function to return the enclosing package
1278 (Enter_Name): correct the rule for homonyms in SPARK
1279 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
1280 from source (result of expansion) to avoid issuing wrong warnings.
1282 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1284 * errout.adb: On anything but an expression First_Node returns its
1287 2011-08-02 Pascal Obry <obry@adacore.com>
1289 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
1291 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
1293 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
1294 Set the associated loop as the related expression of internally
1296 * exp_ch7.adb (Is_Container_Cursor): New routine.
1297 (Wrap_Transient_Declaration): Supress the finalization of the list
1298 controller when the declaration denotes a container cursor.
1300 2011-08-02 Yannick Moy <moy@adacore.com>
1302 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
1304 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
1305 expression is a simple expression. This check cannot be performed in
1306 the semantics, so just drop it.
1307 (P_Index_Or_Discriminant_Constraint): move check that the index or
1308 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
1309 semantics. Other cases were previously checked in the semantics.
1310 * par-ch4.adb (P_Name): move checks that a selector name is not
1311 character literal or an operator symbol to Find_Selected_Component in
1313 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
1314 declarations are not placed after later declarations in a separate
1315 procedure in Sem_Util (possibly not the best choice?), to be used both
1316 during parsing, for Ada 83 mode, and during semantic analysis, for
1318 * par-endh.adb (Check_End): move check that end label is not missing
1319 to Process_End_Label in the semantics
1320 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
1321 the special case for SPARK restriction
1322 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
1323 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
1324 parameter Force to issue the error message even on internal node (used
1325 for generated end label). Call Check_Restriction to check when an error
1326 must be issued. In SPARK mode, issue an error message even if the
1327 restriction is not set.
1328 (Check_Restriction): new procedure with an additional out parameter to
1329 inform the caller that a message has been issued
1330 * sem_aggr.adb: Minor modification of message
1331 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
1332 instead of issuing an error message directly
1333 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
1334 declarations are not placed after later declarations, by calling
1335 Check_Later_Vs_Basic_Declarations
1336 (Analyze_Subtype_Declaration): move here the check that an index or
1337 discriminant constraint must be a subtype mark. Change the check that
1338 a subtype of String must start at one so that it works on subtype marks.
1339 * sem_ch4.adb (Analyze_Call): move here the check that a named
1340 association cannot follow a positional one in a call
1341 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
1342 instead of issuing an error message directly
1343 * sem_ch8.adb (Find_Selected_Component): move here the check that a
1344 selector name is not a character literal or an operator symbol. Move
1345 here the check that the prefix of an expanded name cannot be a
1346 subprogram or a loop statement.
1347 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
1348 procedure called from parsing and semantics to check that basic
1349 declarations are not placed after later declarations
1350 (Process_End_Label): move here the check that end label is not missing
1352 2011-08-02 Arnaud Charlet <charlet@adacore.com>
1354 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
1355 representation clause in codepeer mode, since it confuses CodePeer and
1356 does not bring useful info.
1358 2011-08-02 Ed Falis <falis@adacore.com>
1360 * init.c: initialize fp hw on MILS.
1362 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1364 * errout.adb (First_Node): for bodies, return the node itself (small
1365 optimization). For other nodes, do not check source_unit if the node
1366 comes from Standard.
1368 2011-08-02 Robert Dewar <dewar@adacore.com>
1370 * exp_ch3.adb: Minor comment additions.
1371 * sem_ch13.adb: Minor reformatting.
1373 2011-08-02 Pascal Obry <obry@adacore.com>
1375 * make.adb, makeutl.adb: Removes some superfluous directory separator.
1377 2011-08-02 Robert Dewar <dewar@adacore.com>
1379 * sem_attr.adb: Minor reformatting.
1381 2011-08-02 Robert Dewar <dewar@adacore.com>
1383 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
1384 (Has_Default_Component_Value): Removed
1385 * einfo.ads Comment updates
1386 (Has_Default_Aspect): Replaces Has_Default_Value
1387 (Has_Default_Component_Value): Removed
1389 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
1391 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
1392 (Get_Simple_Init_Val): Handle Default_Value aspect
1393 (Needs_Simple_Initialization): Handle Default_Value aspect
1394 * exp_ch3.ads: Needs_Simple_Initialization
1395 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
1396 * par-prag.adb (Pragma_Default[_Component]Value) Removed
1398 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
1399 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
1400 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
1402 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1404 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
1405 package containing iteration primitives.
1406 exp_ch5.adb (Expand_Iterator_Loop): ditto.
1408 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1410 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
1411 "of", pre-analyze expression in case it is a function call with
1412 finalization actions that must be placed ahead of the loop.
1413 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
1414 on an Ada2012 iterator, insert them ahead of the rewritten loop.
1416 2011-08-02 Geert Bosch <bosch@adacore.com>
1418 * cstand.adb (Create_Float_Types): Only consider C's long double for
1419 Long_Long_Float, in addition to double.
1421 2011-08-02 Robert Dewar <dewar@adacore.com>
1423 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
1424 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
1425 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
1428 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1430 * sem_attr.adb: handle properly 'Result when it is a prefix of an
1433 2011-08-02 Javier Miranda <miranda@adacore.com>
1435 * einfo.ads, einfo.adb
1436 (Original_Access_Type): Move this attribute to Node26 since there was
1437 an undocumented use of Node21 in E_Access_Subprogram_Type entities
1438 which causes conflicts and breaks the generation of the .NET compiler.
1439 (Interface_Name): Add missing documentation on JGNAT only uses of
1442 2011-08-02 Geert Bosch <bosch@adacore.com>
1444 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
1445 (Find_Back_End_Float_Type): Likewise
1446 (Create_Back_End_Float_Types): Likewise
1447 (Create_Float_Types): Likewise
1448 (Register_Float_Type): Likewise
1449 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
1450 Nlist and split out type selection in new local Find_Base_Type function.
1451 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
1453 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
1455 2011-08-02 Robert Dewar <dewar@adacore.com>
1457 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
1459 * opt.ads: Minor comment change.
1460 * sem_ch12.adb: Minor code reorganization.
1462 2011-08-02 Gary Dismukes <dismukes@adacore.com>
1464 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
1465 subtype's list of rep items to the list on the full subtype in the case
1466 where the lists are the same.
1468 2011-08-02 Geert Bosch <bosch@adacore.com>
1470 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
1471 using the one from System.Strings, which also deallocates all strings.
1473 2011-08-02 Geert Bosch <bosch@adacore.com>
1475 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
1477 * gcc-interface/Make-lang.in: Update dependencies.
1479 2011-08-02 Olivier Hainque <hainque@adacore.com>
1481 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
1484 2011-08-02 Javier Miranda <miranda@adacore.com>
1486 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
1487 associated with anonymous access to subprograms.
1489 2011-08-02 Geert Bosch <bosch@adacore.com>
1492 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
1493 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
1494 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
1495 (Add_Symbol_Definition): Move to switch-c.adb
1496 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
1497 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
1498 (Add_Symbol_Definition): Move to switch-c.adb.
1499 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
1501 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
1503 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
1504 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
1506 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
1507 (Add_Symbol_Definition): Moved from Prepcomp.
1508 * switch-c.ads: Update copyright notice. Use String_List instead of
1509 Argument_List, removing dependency on System.OS_Lib.
1511 2011-08-02 Yannick Moy <moy@adacore.com>
1513 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
1514 mode on initialization expression which does not respect SPARK
1516 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
1517 if the tree referenced by its argument represents an initialization
1518 expression in SPARK, suitable for initializing an object in an object
1521 2011-08-02 Javier Miranda <miranda@adacore.com>
1523 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
1524 internally generated access to subprogram with its associated protected
1526 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
1528 2011-08-02 Geert Bosch <bosch@adacore.com>
1530 * cstand.adb (Register_Float_Type): Print information about type to
1531 register, if the Debug_Flag_Dot_B is set.
1532 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
1533 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
1534 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
1535 with a requested precision of more than Max_Digits digits and no more
1536 than Max_Base_Digits digits, if a range specification is present and the
1537 Predefined_Float_Types list has a suitable type to derive from.
1538 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
1539 case of type completion with pragma Import
1541 (Process_Import_Predefined_Type): Processing to complete a type
1542 with pragma Import. Currently supports floating point types only.
1543 (Set_Convention_From_Pragma): Do nothing without underlying type.
1544 (Process_Convention): Guard against absence of underlying type,
1545 which may happen when importing incomplete types.
1546 (Process_Import_Or_Interface): Handle case of importing predefined
1547 types. Tweak error message.
1549 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
1551 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
1552 functions to previous change. Reorganize code slightly.
1554 2011-08-02 Geert Bosch <bosch@adacore.com>
1556 * back_end.ads (Register_Type_Proc): New call back procedure type for
1557 allowing the back end to provide information about available types.
1558 (Register_Back_End_Types): New procedure to register back end types.
1559 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
1561 * cstand.adb (Back_End_Float_Types): New list for floating point types
1562 supported by the back end.
1563 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
1564 (Copy_Float_Type): New procedure to make new copies of predefined types.
1565 (Register_Float_Type): New call back procedure to populate the BEFT list
1566 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
1567 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
1568 (Create_Float_Types): New procedure to create entities for floating
1569 point types predefined in Standard, and put these and any remaining
1570 BEFTs on the Predefined_Float_Types list.
1571 * stand.ads (Predefined_Float_Types): New list for predefined floating
1572 point types that do not have declarations in package Standard.
1574 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
1576 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
1577 entity node for the unit containing the parameter.
1578 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
1579 (Add_Inlined_Subprogram): Likewise.
1580 * gcc-interface/Make-lang.in: Update dependencies.
1582 2011-08-02 Thomas Quinot <quinot@adacore.com>
1584 * s-stusta.adb (Print): Make sure Pos is always initialized to a
1587 2011-08-02 Geert Bosch <bosch@adacore.com>
1589 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
1591 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
1593 * sem_type.adb (Covers): Move trivial case to the top and reuse the
1594 computed value of Base_Type.
1596 2011-08-02 Yannick Moy <moy@adacore.com>
1598 * restrict.adb (Check_Restriction): issue an error for any use of
1599 class-wide, even if the No_Dispatch restriction is not set.
1600 * sem_aggr.adb: Correct typos in comments and messages in formal mode
1601 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
1602 when completing a private extension, the type named in the private part
1603 is not the same as that named in the visible part.
1604 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
1605 of an inherited primitive operations of a tagged type or type extension
1606 that returns the tagged type.
1607 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
1608 function which returns True for an implicit operation inherited by the
1609 derived type declaration for the argument type.
1610 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
1613 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1615 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
1616 Process_Bounds, to perform analysis with expansion of a range or an
1617 expression that is the iteration scheme for a loop.
1618 (Analyze_Iterator_Specification): If domain of iteration is given by a
1619 function call with a controlled result, as is the case if call returns
1620 a predefined container, ensure that finalization actions are properly
1622 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
1624 2011-08-02 Javier Miranda <miranda@adacore.com>
1626 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
1627 * gcc-interface/Make-lang.in: Update dependencies.
1629 2011-08-02 Javier Miranda <miranda@adacore.com>
1631 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
1632 determine if the analysis is performed using N or Original_Node (N).
1633 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
1634 functionality of routine Is_Variable avoids code duplication.
1635 * checks.adb (Determine_Range): Handle temporaries generated by
1636 Remove_Side_Effects.
1638 2011-08-02 Javier Miranda <miranda@adacore.com>
1640 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
1641 expansion of the condition. Required since the previous analysis was
1642 done with expansion disabled (see Resolve_Quantified_Expression) and
1643 hence checks were not inserted and record comparisons have not been
1646 2011-08-02 Ed Falis <falis@adacore.com>
1648 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
1651 2011-08-02 Bob Duff <duff@adacore.com>
1653 * opt.ads: Minor comment fix.
1655 2011-08-02 Bob Duff <duff@adacore.com>
1657 * sem_ch12.adb (Analyze_Package_Instantiation,
1658 Analyze_Subprogram_Instantiation): Turn off style checking while
1659 analyzing an instance. Whatever style checks that apply to the generic
1660 unit should apply, so it makes no sense to apply them in an instance.
1661 This was causing trouble when compiling an instance of a runtime
1662 unit that violates the -gnatyO switch.
1663 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
1664 one of the two case statements, causing spurious errors.
1666 2011-08-02 Robert Dewar <dewar@adacore.com>
1668 * uname.adb: Minor reformatting.
1669 * gnatcmd.adb: Minor reformatting.
1670 * exp_attr.adb: Minor reformatting.
1672 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1674 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
1675 No_Dispatching_Calls, do not look for the Assign primitive, because
1676 predefined primitives are not created in this case.
1678 2011-08-02 Bob Duff <duff@adacore.com>
1680 * stylesw.ads: Minor comment fixes.
1682 2011-08-02 Robert Dewar <dewar@adacore.com>
1684 * freeze.adb (Add_To_Result): New procedure.
1686 2011-08-02 Jose Ruiz <ruiz@adacore.com>
1688 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
1689 time, if the specific run-time routines for handling streams of strings
1690 are not available, use the default mechanism.
1692 2011-08-02 Arnaud Charlet <charlet@adacore.com>
1694 * s-regpat.ads: Fix typo.
1696 2011-08-02 Vincent Celier <celier@adacore.com>
1698 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
1699 not null, call it to create the in memory config project file without
1700 parsing an existing default config project file.
1702 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
1704 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
1706 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1708 * sem_elim.adb: an abstract subprogram does not need an eliminate
1709 pragma for its descendant to be eliminable.
1711 2011-08-02 Ed Falis <falis@adacore.com>
1713 * init.c: revert to handling before previous checkin for VxWorks
1714 * s-intman-vxworks.adb: delete unnecessary declarations related to
1715 using Ada interrupt facilities for handling signals.
1716 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
1717 * s-intman-vxworks.ads: Import __gnat_install_handler as
1718 Initialize_Interrupts.
1719 * s-taprop-vxworks.adb: Delete Signal_Mask.
1720 (Abort_Handler): change construction of mask to unblock exception
1723 2011-08-02 Jerome Guitton <guitton@adacore.com>
1725 * a-except-2005.adb (Raise_From_Signal_Handler): Call
1726 Debug_Raise_Exception before propagation starts.
1728 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
1730 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
1731 to Restriction_Check_Required.
1732 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
1733 * sem_res.adb (Resolve_Call): Likewise.
1734 * sem_attr.adb (Check_Stream_Attribute): Likewise.
1736 2011-08-02 Bob Duff <duff@adacore.com>
1738 * stylesw.ads: Update comment.
1739 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
1740 * errout.ads: Remove obsolete comment.
1742 2011-08-02 Javier Miranda <miranda@adacore.com>
1744 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
1745 (Set_Is_Safe_To_Reevaluate): new procedure.
1746 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
1747 assignment is allowed on safe-to-reevaluate variables.
1748 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
1749 temporary created to remove side effects in expressions that use
1750 the secondary stack as safe-to-reevaluate.
1751 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
1752 variables that are not true constants.
1754 2011-08-02 Robert Dewar <dewar@adacore.com>
1756 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
1757 sem_res.adb, sem_ch6.adb: Minor reformatting.
1759 2011-08-02 Jerome Guitton <guitton@adacore.com>
1761 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
1763 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1765 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
1766 not set Overridden_Operation if subprogram is an initialization
1769 2011-08-02 Yannick Moy <moy@adacore.com>
1771 * par-ch6.adb: Correct obsolete name in comments
1772 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
1773 which takes two message arguments (existing function takes one), with
1774 second message used for continuation.
1775 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
1776 block statements that originate from a source block statement, not
1777 generated block statements
1778 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
1779 symmetry with procedure case
1780 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
1781 function to issue an error in formal mode if a package specification
1782 contains more than one tagged type or type extension.
1783 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
1784 parameters matching formals of tagged types are objects (or ancestor
1785 type conversions of objects), not general expressions. Issue an error
1786 on view conversions that are not involving ancestor conversion of an
1788 (Resolve_Type_Conversion): in formal mode, issue an error on the
1789 operand of an ancestor type conversion which is not an object
1790 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
1791 procedure so that it works also for actuals of function calls
1792 (Is_Actual_Tagged_Parameter): new function which determines if its
1793 argument is an actual parameter of a formal of tagged type in a
1795 (Is_SPARK_Object_Reference): new function which determines if the tree
1796 referenced by its argument represents an object in SPARK
1798 2011-08-02 Robert Dewar <dewar@adacore.com>
1800 * sem_ch3.adb: Minor reformatting
1801 Minor comment addition
1802 Minor error msg text change
1804 2011-08-02 Javier Miranda <miranda@adacore.com>
1806 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
1807 function. Used to be more precise when we generate a variable plus one
1808 assignment to remove side effects in the evaluation of the Bound
1810 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
1811 of the bound expression to force its re-analysis and thus expand the
1812 associated transient scope (if required). Code cleanup replacing the
1813 previous code that declared the constant entity by an invocation to
1814 routine Force_Evaluation which centralizes this work in the frontend.
1816 2011-08-02 Robert Dewar <dewar@adacore.com>
1818 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
1819 (Base_Type): Now uses improved Is_Base_Type function
1820 * einfo.ads (Base_Type): Inline this function
1822 2011-08-02 Robert Dewar <dewar@adacore.com>
1824 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
1825 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
1827 2011-08-02 Arnaud Charlet <charlet@adacore.com>
1829 * gcc-interface/Make-lang.in: Update dependencies.
1830 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
1833 2011-08-02 Yannick Moy <moy@adacore.com>
1835 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
1836 non-simple expression used in delta constraint
1837 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
1838 index constraint which is not a subtype mark
1839 * par.adb: With and use Restrict
1840 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
1841 mode on component type which is not a subtype mark and default
1842 expression on component
1843 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
1844 of string which does not have a lower index bound equal to 1
1845 (Array_Type_Declaration): issue an error in formal mode on index or
1846 component type which is not a subtype mark, and on aliased keyword on
1848 (Derived_Type_Declaration): issue an error in formal mode on interface,
1849 limited or abstract type
1850 (Record_Type_Declaration): issue an error in formal mode on interface
1851 (Record_Type_Definition): issue an error in formal mode on tagged types
1852 and type extensions not declared in the specification of a library unit
1853 package; on null non-tagged record; on variant part
1855 2011-08-02 Vincent Celier <celier@adacore.com>
1857 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
1858 not declared for qualified library project when Library_Name is not
1859 declared, but Library_Dir is.
1861 2011-08-02 Robert Dewar <dewar@adacore.com>
1863 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
1864 pragmas (affects aspects [Component_]Default_Value
1865 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
1866 component type for the resolution
1868 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
1870 * einfo.adb (Base_Type): Tune implementation for speed.
1872 2011-08-02 Robert Dewar <dewar@adacore.com>
1874 * freeze.adb: Minor reformatting.
1876 2011-08-02 Thomas Quinot <quinot@adacore.com>
1878 * scos.ads: Update comments.
1880 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1882 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
1883 base type, because the parent may be a subtype of a private type whose
1884 convention is established in a private part.
1886 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
1888 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
1889 statement in a block when the expansion of the return expression has
1890 created a finalization chain.
1891 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
1892 with the parent node.
1893 Add N_Extended_Return_Statement to handle the case where a transient
1894 object declaration appears in the Return_Object_Declarations list of
1895 an extended return statement.
1897 2011-08-02 Matthew Gingell <gingell@adacore.com>
1899 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
1900 unused parameter 'name'.
1902 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1904 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
1905 inherited operation, check whether its alias, which is the source
1906 operastion that it renames, has been marked eliminated.
1908 2011-08-02 Javier Miranda <miranda@adacore.com>
1910 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
1911 in-mode parameter whose type is an access type since it can be used to
1912 modify its designated object. Enforce code that handles as safe an
1913 access type that is not access-to-constant but it is the result of a
1914 previous removal of side-effects.
1915 (Remove_Side_Effects): Minor code reorganization of cases which require
1916 no action. Done to incorporate documentation on new cases uncovered
1917 working in this ticket: no action needed if this routine was invoked
1918 too early and the nodes are not yet decorated.
1919 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
1920 to routine Remove_Side_Effects by calls to Force_Evaluation since they
1921 were issued with actuals that are implicitly provided by
1924 2011-08-02 Robert Dewar <dewar@adacore.com>
1926 * sem_ch3.adb, sem_res.adb: Minor reformatting.
1928 2011-08-02 Yannick Moy <moy@adacore.com>
1930 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
1931 to issue an error in formal mode on attribute not supported in this mode
1932 (Analyze_Attribute): issue errors on standard attributes not supported
1934 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
1935 comment, and issue error in formal mode on modulus which is not a power
1937 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
1939 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
1941 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
1942 operator on modular type (except 'not').
1944 2011-08-02 Robert Dewar <dewar@adacore.com>
1946 * gnat_rm.texi: Minor reformatting.
1948 2011-08-02 Arnaud Charlet <charlet@adacore.com>
1950 * s-osinte-linux.ads: Minor comment update and reformatting.
1951 * i-cexten.ads: Make this unit pure, as for its parent.
1952 Will allow its usage in more contexts if needed.
1954 2011-08-02 Robert Dewar <dewar@adacore.com>
1956 * s-utf_32.ads: Minor comment fix.
1958 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1960 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
1961 operation of a tagged synchronized type, handle the case where the
1962 controlling argument is overloaded.
1964 2011-08-02 Yannick Moy <moy@adacore.com>
1966 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
1967 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
1968 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
1969 SPARK mode and formal verification mode on processing SPARK restriction
1970 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
1971 requiring consistency checking.
1973 2011-08-02 Robert Dewar <dewar@adacore.com>
1975 * sem_res.adb: Minor reformatting.
1977 2011-08-02 Robert Dewar <dewar@adacore.com>
1979 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
1980 a-cforse.ads: Remove unneeded with of Ada.Containers
1981 Remove commented out pragma Inline's
1982 Move specifications of new subprograms to the actual specs
1984 2011-08-02 Yannick Moy <moy@adacore.com>
1986 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
1987 a-cforse.ads: Update comments.
1989 2011-08-02 Ed Schonberg <schonberg@adacore.com>
1991 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
1993 2011-08-02 Robert Dewar <dewar@adacore.com>
1995 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
1996 a-cforse.ads, a-cofove.ads: Minor reformatting.
1998 2011-08-02 Claire Dross <dross@adacore.com>
2000 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
2001 a-cofove.ads: Add comments.
2003 2011-08-02 Yannick Moy <moy@adacore.com>
2005 * gnat_rm.texi: Document formal containers.
2007 2011-08-02 Emmanuel Briot <briot@adacore.com>
2009 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
2012 2011-08-02 Robert Dewar <dewar@adacore.com>
2014 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
2017 2011-08-02 Robert Dewar <dewar@adacore.com>
2019 * aspects.adb: New aspects Default_Value and Default_Component_Value
2020 New format of Aspect_Names table checks for omitted entries
2021 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
2022 handling of boolean aspects for derived types.
2023 New aspects Default_Value and Default_Component_Value
2024 New format of Aspect_Names table checks for omitted entries
2025 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
2026 (Has_Default_Value): New flag
2027 (Has_Default_Component_Value): New flag
2028 (Has_Default_Value): New flag
2029 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
2031 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
2032 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
2033 Default_Value and Default_Component_Value
2034 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
2035 New aspects Default_Value and Default_Component_Value
2036 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
2037 * sprint.adb: Print N_Aspect_Specification node when called from gdb
2039 2011-08-02 Vincent Celier <celier@adacore.com>
2041 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
2042 inherit library kind.
2044 2011-08-02 Ed Schonberg <schonberg@adacore.com>
2046 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
2049 2011-08-02 Robert Dewar <dewar@adacore.com>
2051 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
2053 2011-08-02 Yannick Moy <moy@adacore.com>
2055 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
2057 2011-08-02 Robert Dewar <dewar@adacore.com>
2059 * impunit.adb: Add comment.
2061 2011-08-02 Yannick Moy <moy@adacore.com>
2063 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
2064 qualification of aggregates in formal mode
2065 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
2067 (Resolve_Aggregate): complete the test that an aggregate is adequately
2068 qualified in formal mode
2070 2011-08-02 Pascal Obry <obry@adacore.com>
2072 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
2073 * mlib-prj.adb: Supress warning when compiling binder generated file.
2074 (Build_Library): Supress all warnings when compiling the binder
2077 2011-08-02 Yannick Moy <moy@adacore.com>
2079 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
2081 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
2082 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
2083 Add with/use clauses to make Check_Formal_Restriction visible
2085 2011-08-02 Ed Schonberg <schonberg@adacore.com>
2087 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
2088 in-parameters when type of the generic formal is private in the generic
2089 spec and non-private in the body.
2091 2011-08-02 Claire Dross <dross@adacore.com>
2093 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
2094 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
2095 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
2096 * impunit.adb, Makefile.rtl: Take new files into account.
2098 2011-08-02 Robert Dewar <dewar@adacore.com>
2100 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
2101 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
2103 2011-08-02 Yannick Moy <moy@adacore.com>
2105 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
2107 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
2108 matching static array bounds, taking into account the special case of
2110 * sem_ch3.adb: Typo in comment.
2112 2011-08-02 Yannick Moy <moy@adacore.com>
2114 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
2115 which issues an error in formal mode if its argument node is originally
2117 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
2118 has a discriminant specification so that it does not include the case
2120 (Derived_Type_Declaration): move here the test that a derived type has a
2121 discriminant specification
2122 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
2123 first element of a component association before accessing its choices
2124 (presence of component association is not enough)
2125 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
2126 declaration is a library item before accessing the next element in a
2127 list, as library items are not member of lists
2128 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
2129 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
2130 Check_Formal_Restriction whenever possible.
2132 2011-08-02 Ed Schonberg <schonberg@adacore.com>
2134 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
2135 reference when needed.
2137 2011-08-02 Bob Duff <duff@adacore.com>
2139 * gnat_ugn.texi: Fix typo.
2141 2011-08-02 Vincent Celier <celier@adacore.com>
2143 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
2144 archive file name. Do not use the full path name of archives for Open
2147 2011-08-02 Robert Dewar <dewar@adacore.com>
2149 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
2150 Analyze_Aspect_Specifications
2152 (Analyze_Aspect_Specifications): New handling for boolean aspects
2153 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
2154 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
2155 sequence for Analyze_Aspect_Specifications
2156 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
2157 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
2159 2011-08-02 Robert Dewar <dewar@adacore.com>
2161 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
2162 aspects, since these no longer exist.
2164 2011-08-02 Robert Dewar <dewar@adacore.com>
2166 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
2167 semicolon, do not try to see if there are aspects following it.
2168 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
2171 2011-08-02 Robert Dewar <dewar@adacore.com>
2173 * sem_ch8.adb, aspects.ads: Minor reformatting.
2175 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
2177 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
2178 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
2180 (Analyze_Aspect_Specifications): ...here. Call above procedure.
2182 2011-08-02 Yannick Moy <moy@adacore.com>
2184 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
2185 mode on subprogram declaration outside of package specification, unless
2186 it is followed by a pragma Import
2187 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
2188 Access_Type_Declaration): issue error in formal mode on access type
2189 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
2191 (Analyze_Object_Declaration): issue error in formal mode on object
2192 declaration which does not respect SPARK restrictions
2193 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
2194 declaration which does not respect SPARK restrictions
2195 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
2196 error in formal mode on digits or delta constraint
2197 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
2198 decimal fixed point type
2199 (Derived_Type_Declaration): issue error in formal mode on derived type
2200 other than type extensions of tagged record types
2201 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
2202 with check on access definition
2203 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
2204 mode on protected definition.
2205 (Analyze_Task_Definition): issue error in formal mode on task definition
2207 2011-08-02 Robert Dewar <dewar@adacore.com>
2209 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
2211 2011-08-02 Javier Miranda <miranda@adacore.com>
2213 * sem_ch6.adb (Can_Override_Operator): New function.
2214 (Verify_Overriding_Indicator): Add missing code to check overriding
2215 indicator in operators. Fixes regression.
2216 (Check_Overriding_Indicator): Minor reformating after replacing the
2217 code that evaluates if the subprogram can override an operator by
2218 invocations to the above new function.
2220 (Write_Field26_Name): Add missing code to ensure that, following
2221 the documentation in einfo.ads, this field is not shown as attribute
2222 "Static_Initialization" on non-dispatching functions.
2224 2011-08-02 Jose Ruiz <ruiz@adacore.com>
2226 * sem_res.adb (Resolve_Call): A call to
2227 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
2228 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
2229 i.e., when the second parameter is of type Time_Span.
2231 2011-08-02 Vincent Celier <celier@adacore.com>
2233 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
2234 with an archive instead of -L<library dir> -l<library name>.
2236 2011-08-02 Ed Schonberg <schonberg@adacore.com>
2238 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
2239 mark the base types In_Use in addition to making the operations
2242 2011-08-02 Ed Falis <falis@adacore.com>
2244 * init.c: add and setup __gnat_signal_mask for the exception signals
2245 * s-inmaop-vxworks.adb: new file.
2246 * s-intman-vxworks.adb: remove unnecessary initializations and
2248 * s-intman-vxworks.ads: remove unnecessary variable
2249 * s-taprop-vxworks.adb: simplify signal initialization
2251 2011-08-02 Robert Dewar <dewar@adacore.com>
2253 * sem_ch8.adb: Minor code reorganization, comment updates.
2255 2011-08-02 Robert Dewar <dewar@adacore.com>
2257 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
2258 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
2260 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
2261 (Matching_Static_Array_Bounds): Moved here from Sem_Res
2263 2011-08-02 Ed Schonberg <schonberg@adacore.com>
2265 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
2266 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
2267 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
2268 use_type_clauses, to handle more efficiently use_type and use_all_type
2270 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
2271 Ada2012 Use_All_Type clause.
2272 (Use_Class_Wide_Operations): new procedure.
2274 2011-08-02 Robert Dewar <dewar@adacore.com>
2276 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
2277 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
2278 expression to expression function.
2280 2011-08-02 Ed Schonberg <schonberg@adacore.com>
2282 * sem_ch4.adb: transform simple Ada2012 membership into equality only
2283 if types are compatible.
2285 2011-08-02 Yannick Moy <moy@adacore.com>
2287 * sem_res.adb (Matching_Static_Array_Bounds): new function which
2288 returns True if its argument array types have same dimension and same
2289 static bounds at each index.
2290 (Resolve_Actuals): issue an error in formal mode on actuals passed as
2291 OUT or IN OUT paramaters which are not view conversions in SPARK.
2292 (Resolve_Arithmetic_Op): issue an error in formal mode on
2293 multiplication or division with operands of fixed point types which are
2294 not qualified or explicitly converted.
2295 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
2296 Boolean or array type (except String) operands.
2297 (Resolve_Equality_Op): issue an error in formal mode on equality
2298 operators for array types other than String with non-matching static
2300 (Resolve_Logical_Op): issue an error in formal mode on logical operators
2301 for array types with non-matching static bounds. Factorize the code in
2302 Matching_Static_Array_Bounds.
2303 (Resolve_Qualified_Expression): issue an error in formal mode on
2304 qualified expressions for array types with non-matching static bounds.
2305 (Resolve_Type_Conversion): issue an error in formal mode on type
2306 conversion for array types with non-matching static bounds
2308 2011-08-02 Robert Dewar <dewar@adacore.com>
2310 * par-ch10.adb: Minor code reorganization (use Nkind_In).
2312 2011-08-02 Ed Schonberg <schonberg@adacore.com>
2314 * par-ch9.adb: save location of entry for proper error message.
2316 2011-08-02 Javier Miranda <miranda@adacore.com>
2318 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
2319 (Use_Full_View) which permits this routine to climb through the
2320 ancestors using the full-view of private parents.
2321 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
2322 Use_Full_View to true in calls to Is_Ancestor.
2323 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
2324 true in call to Is_Ancestor.
2325 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
2326 Use_Full_View to true in call to Is_Ancestor.
2327 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
2328 call to Is_Ancestor.
2329 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
2330 Use_Full_View to true in calls to Is_Ancestor.
2331 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
2332 Make_Select_Specific_Data_Table, Register_Primitive,
2333 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
2334 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
2335 to true in call to Is_Ancestor.
2336 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
2337 Use_Full_View to true in calls to Is_Ancestor.
2339 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
2340 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
2342 2011-08-02 Robert Dewar <dewar@adacore.com>
2344 * gnat_rm.texi: Minor reformatting.
2345 * sem_prag.adb: Minor reformatting.
2347 2011-08-02 Tristan Gingold <gingold@adacore.com>
2349 * vms_data.ads: Add VMS qualifier for -gnateP.
2351 2011-08-02 Robert Dewar <dewar@adacore.com>
2353 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
2354 * par-ch7.adb (P_Package): Proper placement of aspects for package
2356 * par-endh.adb (Check_End): Ad Is_Sloc parameter
2357 (End_Statements): Add Is_Sloc parameterr
2358 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
2359 (Check_End): Ad Is_Sloc parameter
2360 (End_Statements): Add Is_Sloc parameterr
2362 2011-08-02 Vincent Celier <celier@adacore.com>
2364 * ug_words: Add VMS qualifier equivalent to -gnateP:
2365 /SYMBOL_PREPROCESSING.
2367 2011-08-02 Jose Ruiz <ruiz@adacore.com>
2369 * gnat-style.texi: For hexadecimal numeric literals the typical
2370 grouping of digits is 4 to represent 2 bytes.
2371 A procedure spec which is split into several lines is indented two
2374 2011-08-02 Yannick Moy <moy@adacore.com>
2376 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
2377 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
2378 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
2380 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
2381 choice in array aggregate
2382 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
2384 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
2385 positional and named aggregate for record, or others in record
2386 aggregate, or multiple choice in record aggregate
2387 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
2388 array operands to logical operations AND, OR and XOR do not have the
2389 same static lower and higher bounds
2390 * sem_ch5.adb, sinfo.ads: Correct typos in comments
2392 2011-08-01 Robert Dewar <dewar@adacore.com>
2394 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
2395 Replaces Last_Source_Node_In_Sequence.
2396 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
2397 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
2398 parens and blank in string (this was inconsistently implemented).
2400 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
2401 blank in string (this was inconsistently implemented).
2403 (Set_Global_Switches): Set formal mode switches appropriately
2404 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
2406 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
2407 call Set_Error_Msg_Lang to set "spark" as language name.
2408 * par.adb: Remove unnecessary call to set formal language for errout
2409 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
2410 appropriately and call Set_Error_Msg_Lang to set "spark" as language
2412 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
2413 calls to it, moved after resolution so that types are known
2414 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
2415 result of concatenation is not of type String
2416 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
2417 concatenation is not properly restricted
2418 * gnat_rm.texi: Add doc on pragma Spark_95.
2419 * gcc-interface/Makefile.in: Remove obsolete target pairs for
2420 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
2421 * gcc-interface/Make-lang.in: Update dependencies.
2423 2011-08-01 Javier Miranda <miranda@adacore.com>
2425 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
2426 condition that detects if the overridden operation must replace an
2429 2011-08-01 Javier Miranda <miranda@adacore.com>
2431 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
2432 code declarations inserted by Insert_Actions in each alternative of the
2433 N_Case_Expression node.
2435 2011-08-01 Robert Dewar <dewar@adacore.com>
2437 * sem_ch6.adb: Minor code reorganization.
2438 * sem_util.adb: Minor reformatting.
2440 2011-08-01 Pascal Obry <obry@adacore.com>
2442 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
2443 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
2445 2011-08-01 Yannick Moy <moy@adacore.com>
2447 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
2448 literal or operator symbol which is prefixed
2449 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
2450 mode on access attributes.
2451 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
2452 that concatenation operands are properly restricted in formal mode
2453 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
2454 Analyze_Concatenation_Operand. Issue an error in formal mode if the
2455 result of the concatenation has a type different from String.
2456 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
2457 Analyze_Quantified_Expression, Analyze_Slice,
2458 Analyze_Null): issue an error in formal mode on unsupported constructs
2460 (Analyze_Block_Statement): only issue error on source block statement
2461 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
2462 function which returns the last node in a list of nodes for which
2463 Comes_From_Source returns True, if any
2464 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
2465 Last_Source_Node_In_Sequence
2466 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
2467 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
2468 mode on unsupported constructs
2469 * sem_ch9.adb Do not return after issuing error in formal mode, as the
2470 rest of the actions may be needed later on since the error is marked as
2472 * sinfo.ads: Typos in comments.
2474 2011-08-01 Pascal Obry <obry@adacore.com>
2476 * projects.texi: Minor editing.
2478 2011-08-01 Yannick Moy <moy@adacore.com>
2480 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
2481 insertion character ~~
2482 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
2483 (Set_Error_Msg_Lang): new procedure which fixes the language for use
2484 with insertion character ~~
2485 (Set_Msg_Text): treat insertion character ~~
2486 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
2487 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
2488 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
2489 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
2490 errors related to the formal language restriction not serious
2491 (insertion character |).
2492 * par.adb (Par): set formal language for error messages if needed
2493 * sem_ch6.adb (Check_Missing_Return): take into account possible
2494 generated statements at the end of the function
2495 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
2496 enumeration value to define a new pragma SPARK_95
2497 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
2498 SPARK_Version): new type and variables to store the SPARK version
2500 (SPARK_Mode): return True when SPARK_Version is set
2501 * par-prag.adb: Correct indentation
2502 (Prag): take Pragma_SPARK_95 into account
2503 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
2506 2011-08-01 Robert Dewar <dewar@adacore.com>
2508 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
2509 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
2510 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
2512 2011-08-01 Pascal Obry <obry@adacore.com>
2514 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
2515 Target_Name to Get_Path call.
2516 (Parse_Single_Project): Likewise.
2517 (Post_Parse_Context_Clause): Likewise.
2518 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
2519 Call Initialise_Project_Path with the proper Target_Name.
2520 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
2522 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
2523 with the proper Target_Name.
2524 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
2526 (Parse_Project_And_Apply_Config): Likewise.
2527 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
2528 This is fine as this part of the code is supporting only native
2530 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
2531 is fine as this part of the code is supporting only native compilation.
2533 2011-08-01 Yannick Moy <moy@adacore.com>
2535 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
2536 of homonym, unless the homonym is one of the cases allowed in SPARK
2537 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
2538 package declaration occurring after a body.
2540 2011-08-01 Robert Dewar <dewar@adacore.com>
2542 * checks.adb, exp_ch4.adb: Minor reformatting.
2544 2011-08-01 Javier Miranda <miranda@adacore.com>
2546 * einfo.ads (Access_Disp_Table): Fix documentation.
2547 (Dispatch_Table_Wrappers): Fix documentation.
2549 2011-08-01 Pascal Obry <obry@adacore.com>
2551 * prj-env.adb, prj-env.ads: Minor reformatting.
2553 2011-08-01 Yannick Moy <moy@adacore.com>
2555 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
2556 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
2557 procedures out of these packages.
2558 * errout.ads, errout.adb
2559 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
2560 procedures in of this package
2561 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
2562 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
2563 on misplaced later vs initial declarations, like in Ada 83
2564 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
2565 formal mode on attribute of private type whose full type declaration
2567 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
2568 package declaration inside a package specification
2569 (Analyze_Full_Type_Declaration): issue error in formal mode on
2570 controlled type or discriminant type
2571 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
2572 user-defined operator means that it should come from the source
2573 (New_Overloaded_Entity): issue error in formal mode on overloaded
2575 * sem_ch6.ads, sem_ch13.ads: typos in comments.
2577 2011-08-01 Thomas Quinot <quinot@adacore.com>
2579 * atree.adb: Minor reformatting.
2580 * checks.adb: Minor reformatting.
2582 2011-08-01 Vincent Celier <celier@adacore.com>
2584 * s-parame-vms-ia64.ads: Fix typo in comment
2586 * s-parame-vms-restrict.ads: Removed, unused.
2588 2011-08-01 Javier Miranda <miranda@adacore.com>
2591 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
2593 (Constrain_Index): Remove side effects in the evaluation of the bounds.
2594 * sem_ch3.ads, sem_ch3.adb
2595 (Is_Constant_Bound): New extended version of the subprogram that was
2596 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
2597 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
2598 * sem_aux.ads (Constant_Value): Fix typo in comment.
2599 * checks.adb (Generate_Index_Checks): New implementation which, for
2600 array objects with constant bounds, generates the runtime check
2601 referencing the bounds of the array type. For other cases this routine
2602 provides its previous behavior obtaining such values from the array
2604 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
2606 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
2607 we cannot have semantic interpretations of the new node.
2609 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2611 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
2614 2011-08-01 Arnaud Charlet <charlet@adacore.com>
2616 * sem_ch8.adb: Minor code editing.
2617 * s-vxwext.adb: Remove trailing space.
2618 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
2619 consistency with other files.
2621 2011-08-01 Thomas Quinot <quinot@adacore.com>
2623 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
2625 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2627 * par-ch10.adb: reject parameterized expressions as compilation unit.
2628 * sem_ch4.adb: handle properly conditional expression with overloaded
2629 then_clause and no else_clause.
2631 2011-08-01 Tristan Gingold <gingold@adacore.com>
2633 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
2634 like done by System.Aux_DEC.
2635 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
2637 2011-08-01 Yannick Moy <moy@adacore.com>
2639 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
2640 missing label at end of declaration (subprogram or package)
2641 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
2642 of positional and named parameter association
2643 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
2644 Error_Msg_SP which adds a prefix to the error message giving the name
2645 of the formal language analyzed
2646 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
2647 access result type in subprogram, unconstrained array as result type,.
2648 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
2650 * sem_ch8.adb: Code clean up.
2652 2011-08-01 Javier Miranda <miranda@adacore.com>
2654 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
2655 * einfo.ads (Access_Disp_Table): Fix documentation.
2656 (Dispatch_Table_Wrappers): Fix documentation.
2657 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
2658 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
2659 to enforce the documentation of this attribute.
2660 (Set_Is_Interface): Cleanup the assertion.
2661 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
2662 the Underlying_Type entity before reading attribute Access_Disp_Table.
2663 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
2664 Locate the Underlying_Type before reading attribute Access_Disp_Table.
2665 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
2666 the Underlying_Type entity before reading attribute Access_Disp_Table.
2667 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
2668 Locate the Underlying_Type entity before reading attribute
2671 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2673 * s-poosiz.ads: Additional overriding indicators.
2675 2011-08-01 Yannick Moy <moy@adacore.com>
2677 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
2679 (Analyze_Iteration_Scheme): issue error in formal mode when loop
2680 parameter specification does not include a subtype mark.
2681 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
2682 formal mode on abstract subprogram.
2683 (Analyze_Subprogram_Specification): issue error in formal mode on
2684 user-defined operator.
2685 (Process_Formals): issue error in formal mode on access parameter and
2687 * sem_ch9.adb (Analyze_Abort_Statement,
2688 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
2689 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
2690 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
2691 Analyze_Requeue, Analyze_Selective_Accept,
2692 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
2693 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
2694 issue error in formal mode on user-defined raise statement.
2696 2011-08-01 Thomas Quinot <quinot@adacore.com>
2698 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
2699 declaration being hidden when overriding an implicit inherited
2701 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
2702 (-gnats), do not complain about a source file that contains only a
2705 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2707 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
2708 variable if already set.
2710 2011-08-01 Arnaud Charlet <charlet@adacore.com>
2712 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
2713 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
2714 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
2715 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
2716 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
2717 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
2718 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
2719 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
2720 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
2721 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
2722 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
2723 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
2724 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
2725 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
2726 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
2727 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
2728 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
2729 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
2730 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
2731 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
2732 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
2733 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
2734 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
2735 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
2736 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
2737 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
2738 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
2739 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
2740 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
2741 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
2742 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
2743 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
2744 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
2745 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
2746 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
2747 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
2748 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
2749 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
2750 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
2751 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
2752 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
2753 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
2754 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
2755 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
2756 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
2757 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
2758 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
2759 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
2760 s-osinte-mingw.ads: Update to GPLv3 run-time license.
2761 Use GNAT instead of GNARL.
2763 2011-08-01 Bob Duff <duff@adacore.com>
2765 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
2766 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
2767 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
2770 2011-08-01 Yannick Moy <moy@adacore.com>
2772 * debug.adb (d.D) reverve flag for the SPARK mode
2773 (d.E) reverve flag for SPARK generation mode
2774 (d.F) reverve flag for Why generation mode
2775 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
2776 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
2777 functions which return True when the corresponding modes are set
2778 (Formal_Language): return "spark" or "alfa" when in formal verification
2780 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
2781 Error_Msg to prefix the error message with a tag giving the formal
2783 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
2784 message with a tag giving the formal language
2785 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
2787 (Analyze_Case_Statement): issue error in formal mode on case statement
2788 with a single "others" case alternative
2789 (Analyze_Exit_Statement): issue errors in formal mode on exit
2790 statements which do not respect SPARK restrictions
2791 (Analyze_Goto_Statement): issue error in formal mode on goto statement
2792 (Check_Unreachable_Code): always issue an error (not a warning) in
2793 formal mode on unreachable code (concerns both code after an infinite
2794 loop and after an unconditional jump, both not allowed in SPARK)
2795 * sem_ch6.adb (Analyze_Return_Statement): add call to
2796 Set_Return_Present for a procedure containing a return statement
2797 (already done for functions in Analyze_Function_Return)
2798 (Analyze_Function_Return): issue error in formal mode on extended
2799 return or if return is not last statement in function
2800 (Check_Missing_Return): issue error in formal mode if function does
2801 not end with return or if procedure contains a return
2802 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
2803 function to detect if there is an inner scope of its parameter S which
2806 2011-08-01 Thomas Quinot <quinot@adacore.com>
2808 * sem_ch6.ads: Minor reformatting.
2810 2011-08-01 Javier Miranda <miranda@adacore.com>
2812 * sem_util.adb (Abstract_Interface_List): Complete condition when
2813 processing private type declarations to avoid reading unavailable
2815 (Is_Synchronized_Tagged_Type): Complete condition when processing
2816 private extension declaration nodes to avoid reading unavailable
2819 2011-08-01 Thomas Quinot <quinot@adacore.com>
2821 * sem_ch3.adb: Minor reformatting.
2823 2011-08-01 Thomas Quinot <quinot@adacore.com>
2825 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
2826 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
2827 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
2828 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
2829 for VMS, instead parametrize the common implementation with
2830 System.Parameters declarations.
2832 2011-08-01 Eric Botcazou <ebotcazou@adacore.com>
2834 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
2836 2011-08-01 Tristan Gingold <gingold@adacore.com>
2838 * seh_init.c: Fix SEH handler installation on win64.
2840 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2842 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
2843 double analysis of an anonymous access to subprogram, because it can
2844 lead to improper sharing of profiles and a back-end crash.
2846 2011-08-01 Robert Dewar <dewar@adacore.com>
2848 * make.adb, sem_ch4.adb: Minor reformatting.
2849 * gcc-interface/Make-lang.in: Update dependencies.
2850 * sem_util.adb, exp_ch5.adb: Minor reformatting.
2852 2011-08-01 Arnaud Charlet <charlet@adacore.com>
2854 * gnat_rm.texi: Fix definition of Long_Integer.
2856 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2858 * exp_aggr.adb: check limit size of static aggregate unconditionally,
2859 to prevent storage exhaustion.
2860 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
2861 finalized is a function body, insert the cleanup code before the final
2862 return statement, to prevent spurious warnings.
2863 * s-pooglo.ads: add overriding indicator.
2865 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2867 * sem_ch4.adb (Operator_Check): improve error message when both a
2868 with_clause and a use_clause are needed to make operator usage legal.
2869 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
2870 determine whether a compilation unit is visible within an other,
2871 either through a with_clause in the current unit, or a with_clause in
2872 its library unit or one one of its parents.
2874 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2876 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
2877 over an arbitrary expression of an array or container type.
2878 * lib-xref.adb: clarify comment.
2880 2011-08-01 Bob Duff <duff@adacore.com>
2882 * einfo.ads: Minor reformatting.
2883 * debug.adb: Minor comment improvement.
2885 2011-08-01 Javier Miranda <miranda@adacore.com>
2887 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
2888 consider hidden subprograms as valid candidates.
2890 2011-08-01 Arnaud Charlet <charlet@adacore.com>
2892 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
2894 2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
2896 * gnat_ugn.texi: Fix typo.
2898 2011-08-01 Robert Dewar <dewar@adacore.com>
2900 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
2901 lib-xref.adb: Minor reformatting
2903 2011-08-01 Gary Dismukes <dismukes@adacore.com>
2905 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
2906 when to generate a call to Move_Final_List.
2907 (Has_Controlled_Parts): Remove this function.
2909 2011-08-01 Geert Bosch <bosch@adacore.com>
2911 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
2914 2011-08-01 Thomas Quinot <quinot@adacore.com>
2916 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
2917 explicit raise of a predefined exception as Comes_From_Source if the
2918 original N_Raise_Statement comes from source.
2920 2011-08-01 Robert Dewar <dewar@adacore.com>
2922 * sinfo.ads: Add comment.
2923 * sem_ch6.adb: Minor reformatting.
2925 2011-08-01 Robert Dewar <dewar@adacore.com>
2927 * freeze.adb (Freeze_Entity): Refine check for bad component size
2928 clause to avoid rejecting confirming clause when atomic/aliased present.
2930 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2932 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
2933 better determine whether an entity reference is a write.
2934 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
2936 * lib-xref.adb (Output_References): Do no suppress a read reference at
2937 the same location as an immediately preceeding modify-reference, to
2938 handle properly in-out actuals.
2940 2011-08-01 Tristan Gingold <gingold@adacore.com>
2942 * env.c (__gnat_setenv) [VMS]: Refine previous change.
2944 2011-08-01 Quentin Ochem <ochem@adacore.com>
2946 * i-cstrin.adb (New_String): Changed implementation, now uses only the
2947 heap to compute the result.
2949 2011-08-01 Robert Dewar <dewar@adacore.com>
2951 * atree.ads: Minor reformatting.
2953 2011-08-01 Emmanuel Briot <briot@adacore.com>
2955 * g-expect.adb (Get_Command_Output): Fix memory leak.
2957 2011-08-01 Geert Bosch <bosch@adacore.com>
2959 * cstand.adb (P_Float_Type): New procedure to print the definition of
2960 predefined fpt types.
2961 (P_Mixed_Name): New procedure to print a name using mixed case
2962 (Print_Standard): Use P_Float_Type for printing floating point types
2963 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
2964 precision IEEE float.
2966 2011-08-01 Thomas Quinot <quinot@adacore.com>
2968 * sem_ch3.adb: Minor reformatting.
2970 2011-08-01 Ed Schonberg <schonberg@adacore.com>
2972 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
2973 the completion of a generic function, insert the new body rather than
2974 rewriting the original.
2976 2011-08-01 Yannick Moy <moy@adacore.com>
2978 * sinfo.ads, errout.ads: Typos in comments.
2980 2011-08-01 Robert Dewar <dewar@adacore.com>
2982 * par-endh.adb: Minor reformatting.
2984 2011-08-01 Robert Dewar <dewar@adacore.com>
2986 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
2987 (Pre_Post_Aspects): New subtype.
2988 * par-ch12.adb (P_Generic): New syntax for aspects in packages
2989 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
2990 * par-ch7.adb (P_Package): Remove Decl parameter
2991 (P_Package): Handle new syntax for aspects (before IS)
2992 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
2994 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
2995 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
2996 (P_Package): Remove Decl parameter
2997 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
2999 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
3001 * sem_util.ads, sem_util.adb (Static_Boolean): New function
3002 * sinfo.ads: Document new syntax for aspects in packages etc.
3003 * sprint.adb: Handle new syntax of aspects before IS in package
3005 2011-08-01 Thomas Quinot <quinot@adacore.com>
3007 * atree.ads: Minor reformatting.
3008 * sem_prag.adb: Minor reformatting.
3010 2011-08-01 Robert Dewar <dewar@adacore.com>
3012 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
3013 case expr alternative.
3015 2011-08-01 Ed Schonberg <schonberg@adacore.com>
3017 * sem_ch12.adb: Fix typo.
3019 2011-08-01 Geert Bosch <bosch@adacore.com>
3021 * sem_prag.adb (Check_No_Link_Name): New procedure.
3022 (Process_Import_Or_Interface): Use Check_No_Link_Name.
3023 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
3024 instead of Standard_Long_Long_Float_Size global. Preparation for
3025 eventual removal of per type constants.
3026 * exp_util.ads (Get_Stream_Size): New function returning the stream
3027 size value of subtype E.
3028 * exp_util.adb (Get_Stream_Size): Implement new function.
3029 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
3031 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
3033 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
3035 2011-08-01 Geert Bosch <bosch@adacore.com>
3037 * cstand.adb: Fix comments.
3038 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
3041 2011-08-01 Robert Dewar <dewar@adacore.com>
3043 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
3045 2011-08-01 Geert Bosch <bosch@adacore.com>
3047 * atree.ads: Fix comment.
3049 2011-08-01 Robert Dewar <dewar@adacore.com>
3051 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
3052 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
3053 * par.adb: Add with for Namet.Sp.
3054 * par-tchk.adb: Minor reformatting.
3056 2011-08-01 Vincent Celier <celier@adacore.com>
3058 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
3059 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
3060 of the init procedure of a SAL.
3061 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
3064 2011-08-01 Thomas Quinot <quinot@adacore.com>
3066 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
3069 2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3071 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
3073 2011-08-01 Thomas Quinot <quinot@adacore.com>
3075 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
3076 conformant with its spec (return True only for types that have
3077 an overriding Initialize primitive operation that prevents them from
3078 having preelaborable initialization).
3079 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
3080 initialization for controlled types in Ada 2005 or later mode.
3082 2011-08-01 Robert Dewar <dewar@adacore.com>
3084 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
3086 (Same_Aspect): New function.
3087 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
3088 Type_Invariant, Precondition, Postcondition.
3089 * snames.ads-tmpl: Add Name_Type_Invariant.
3091 2011-08-01 Robert Dewar <dewar@adacore.com>
3093 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
3095 (Freeze_All_Ent): Fix error in handling inherited aspects.
3096 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
3097 already analyzed, but don't skip entire processing of a declaration,
3098 that's wrong in some cases of declarations being rewritten.
3099 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
3100 Don't delay for integer, string literals
3101 Treat predicates in usual manner for delay, remove special case code,
3103 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
3104 (Build_Predicate_Function): Update saved expression in aspect
3105 (Build_Invariant_Procedure): Update saved expression in aspect
3106 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
3107 of replacement of discriminant references if the reference is simple.
3109 2011-08-01 Robert Dewar <dewar@adacore.com>
3111 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
3112 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
3113 Static_Predicate and Dynamic_Predicate.
3114 (Build_Predicate_Function): Add processing for Static_Predicate
3115 and Dynamic_Predicate.
3116 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
3117 (From_Static_Predicate): New flag
3118 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
3120 2011-08-01 Robert Dewar <dewar@adacore.com>
3122 * usage.adb: Documentation cleanup for Ada version modes in usage.
3123 * expander.adb: Minor reformatting.
3125 2011-08-01 Robert Dewar <dewar@adacore.com>
3127 * atree.ads: Minor comment fix.
3128 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
3129 a-witeio.ads, sem_prag.adb: Minor reformatting.
3131 2011-08-01 Doug Rupp <rupp@adacore.com>
3133 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
3134 pointers. Use descrip.h header file for convenience. Add some
3137 2011-08-01 Robert Dewar <dewar@adacore.com>
3139 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
3140 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
3141 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
3143 (Check_Aspect_At_End_Of_Declarations): New procedure
3144 (Analye_Aspect_Specification): Minor changes for above procedures
3145 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
3146 specification node as well.
3148 2011-08-01 Pascal Obry <obry@adacore.com>
3150 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
3151 Windows files. Use GetFilesAttributes() in this case to check for file
3152 existence instead of returning with an error code.
3154 2011-08-01 Vincent Celier <celier@adacore.com>
3156 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
3157 High is above Source length.
3159 2011-08-01 Robert Dewar <dewar@adacore.com>
3161 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
3163 2011-08-01 Robert Dewar <dewar@adacore.com>
3165 * aspects.ads (Boolean_Aspects): New subtype.
3166 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
3167 for derived types in cases where the parent type and derived type have
3169 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
3170 with aspects when parent type also has aspects.
3171 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
3172 boolean expression at this point).
3173 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
3174 accordance with final decision on the Ada 2012 feature.
3175 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
3177 2011-08-01 Matthew Heaney <heaney@adacore.com>
3179 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
3181 2011-08-01 Pascal Obry <obry@adacore.com>
3183 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
3184 Fix Replace_Slice when High is above current string size.
3185 (Replace_Slice): Fix DL computation when High is above current
3188 2011-08-01 Gary Dismukes <dismukes@adacore.com>
3190 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
3192 2011-08-01 Matthew Heaney <heaney@adacore.com>
3194 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
3197 2011-08-01 Pascal Obry <obry@adacore.com>
3199 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
3202 2011-08-01 Ed Schonberg <schonberg@adacore.com>
3204 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
3205 access to protected subprograms in generic bodies.
3206 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
3207 protected type, indicate that the convention of the subprogram is
3208 Convention_Protected, because it may be used in subsequent declarations
3209 within the protected declaration.
3211 2011-08-01 Vincent Celier <celier@adacore.com>
3213 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
3214 and "final" procedures when the name of the library is "ada", to avoid
3215 duplicate symbols "adainit" and "adafinal" in executables.
3217 2011-08-01 Ed Schonberg <schonberg@adacore.com>
3219 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
3220 quantified expression that appears within a postcondition and uses the
3221 Ada2012 'Result attribute.
3223 2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3225 * init.c (__gnat_error_handler): Cast reason to int.
3226 (__gnat_install_handler): Explain sa_sigaction use.
3228 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
3230 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
3231 subprogram has copy-in copy-out parameters, try to promote the mode of
3232 the return type if it is passed in registers.
3234 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
3236 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
3237 left operand as addressable.
3239 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
3241 * gcc-interface/gigi.h (build_function_stub): Remove.
3242 (build_return_expr): Likewise.
3243 (convert_vms_descriptor): Declare.
3244 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
3245 (build_function_stub): Move to...
3246 * gcc-interface/utils2.c (build_return_expr): Move to...
3247 * gcc-interface/trans.c (build_function_stub): ...here.
3248 (build_return_expr): ...here.
3249 (Subprogram_Body_to_gnu): Add local variable for language_function.
3250 Disconnect the parameter attributes cache, if any, once done with it.
3251 Call end_subprog_body only after setting the end_locus.
3252 Build the stub associated with the function, if any, at the very end.
3253 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
3254 variables and streamline control flow.
3256 2011-07-23 Arnaud Charlet <charlet@adacore.com>
3259 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
3262 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3265 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
3266 Assign to act.sa_sigaction.
3267 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
3268 current->return_address to char * before arithmetic.
3270 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3272 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
3273 Correct argument types.
3274 Extract code from reason.
3275 (__gnat_install_handler): Assign to act.sa_sigaction.
3277 2011-07-21 Eric Botcazou <ebotcazou@adacore.com>
3279 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
3280 (GNAT1_OBJS): ...here.
3282 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
3285 * g-socthi-mingw.adb (Fill): Fix formatting.
3287 * gcc-interface/gigi.h: Move around comment.
3289 2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3292 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
3294 2011-07-14 Florian Weimer <fw@deneb.enyo.de>
3297 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
3299 2011-07-13 Eric Botcazou <ebotcazou@adacore.com>
3301 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
3302 range comparison if Pmode is SImode.
3304 2011-07-12 Laurent GUERBY <laurent@guerby.net>
3305 Eric Botcazou <ebotcazou@adacore.com>
3307 * adadecode.c: Wrap up in extern "C" block.
3308 * adadecode.h: Likewise.
3309 * adaint.c: Likewise. Remove 'const' keyword.
3310 * adaint.h: Likewise.
3312 * atree.h: Likewise.
3314 * cstreams.c: Likewise.
3318 * final.c: Likewise.
3320 * initialize.c: Likewise.
3322 * namet.h: Likewise.
3323 * nlists.h: Likewise.
3324 * raise.c: Likewise.
3325 * raise.h: Likewise.
3326 * repinfo.h: Likewise.
3327 * seh_init.c: Likewise.
3328 * targext.c: Likewise.
3329 * tracebak.c: Likewise.
3330 * uintp.h: Likewise.
3331 * urealp.h: Likewise.
3332 * xeinfo.adb: Wrap up generated C code in extern "C" block.
3333 * xsinfo.adb: Likewise.
3334 * xsnamest.adb: Likewise.
3335 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
3336 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
3337 * gcc-interface/misc.c: Likewise.
3338 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
3339 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
3340 ada/targext.o here...
3341 (GNAT_ADA_OBJS): ...and not here.
3342 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
3343 (GNATBIND_OBJS): Reorder.
3345 2011-07-07 Richard Henderson <rth@redhat.com>
3347 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
3348 dwarf2out_frame_init.
3350 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
3352 * gcc-interface/misc.c (gnat_init): Tweak previous change.
3354 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3357 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
3359 2011-07-06 Richard Guenther <rguenther@suse.de>
3361 * gcc-interface/misc.c (gnat_init): Merge calls to
3362 build_common_tree_nodes and build_common_tree_nodes_2.
3363 Re-initialize boolean_false_node.
3365 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
3366 Olivier Hainque <hainque@adacore.com>
3367 Nicolas Setton <setton@adacore.com>
3369 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
3370 the type according to the ARTIFICIAL_P parameter.
3371 (create_type_decl): Likewise.
3372 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
3374 2011-07-01 Eric Botcazou <ebotcazou@adacore.com>
3376 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
3377 (gnatbind): Likewise.
3379 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3381 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
3383 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
3385 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
3386 local variable throughout. Remove useless call to Base_Type.
3387 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
3388 Take it also into account for the volatileness of the field. Set the
3389 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
3391 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
3393 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
3394 on a dereference built for a by-ref object if it has an address clause.
3396 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
3398 * einfo.ads (Address_Taken): Document use for the second argument of
3399 Asm_Input and Asm_Output attributes.
3400 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
3401 argument is an entity name, then set Address_Taken on it.
3402 <Attribute_Asm_Output>: Likewise.
3403 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
3404 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
3405 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
3406 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
3408 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
3411 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
3413 2011-06-14 Joseph Myers <joseph@codesourcery.com>
3415 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
3416 (ada/utils.o): Update dependencies.
3417 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
3418 ../../../libcpp/libcpp.a.
3419 * gcc-interface/utils.c: Include common/common-target.h.
3420 (process_attributes): Use targetm_common.have_named_sections.
3422 2011-06-07 Richard Guenther <rguenther@suse.de>
3424 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
3427 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
3429 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
3430 TREE_THIS_NOTRAP flag.
3432 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
3434 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
3437 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
3439 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
3440 constants whose full view has discriminants specially.
3442 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
3444 * gcc-interface/utils.c: Include diagnostic.h.
3445 (gnat_write_global_declarations): Output debug information for all
3446 global type declarations before finalizing the compilation unit.
3447 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
3449 2011-05-25 Jakub Jelinek <jakub@redhat.com>
3451 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
3453 2011-05-25 Kai Tietz <ktietz@redhat.com>
3455 * adaint.c (__gnat_to_canonical_file_list_next): Use array
3456 initialization instead of const/none-const pointer assignment.
3458 2011-05-24 Joseph Myers <joseph@codesourcery.com>
3460 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
3461 $(EXTRA_GNAT1_OBJS).
3462 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
3463 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
3464 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
3465 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
3466 libcommon-target.a instead of prefix.o.
3468 2011-05-21 Joseph Myers <joseph@codesourcery.com>
3471 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
3473 2011-05-20 Joseph Myers <joseph@codesourcery.com>
3475 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
3476 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
3477 instead of version.o.
3479 2011-05-18 Kai Tietz <ktietz@redhat.com>
3481 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
3482 boolean_false_node instead of integer_zero_node.
3483 (convert_with_check): Likewise.
3484 * gcc-interface/decl.c (choices_to_gnu): Likewise.
3486 2011-05-12 Eric Botcazou <ebotcazou@adacore.com>
3488 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
3489 type of the parameter is an unconstrained array, convert the actual to
3490 the type of the formal in the In Out and Out cases as well.
3492 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
3494 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
3495 call build_function_type_array or build_varargs_function_type_array
3497 (create_subprog_type): Don't call build_function_type; call
3498 build_function_type_vec instead.
3500 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
3502 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
3503 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
3504 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
3506 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
3508 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
3510 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
3511 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
3513 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
3515 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
3517 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
3519 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
3520 instead of accessing TYPE_ARG_TYPES directly.
3521 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
3523 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
3526 * gcc-interface/gigi.h (get_variant_part): Declare.
3527 * gcc-interface/decl.c (get_variant_part): Make global.
3528 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
3529 types have the same constant size, are record types and T1 has a
3530 variant part while T2 doesn't.
3532 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
3534 * gcc-interface/utils.c (begin_subprog_body): Do not call
3536 (end_subprog_body): Likewise.
3538 2011-05-04 Richard Guenther <rguenther@suse.de>
3540 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
3542 (pos_to_constructor): Likewise.
3544 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3545 Eric Botcazou <ebotcazou@adacore.com>
3547 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
3548 of build_function_type. Adjust calls to...
3549 (build_raise_check): ...this. Do not take a void_tree parameter.
3550 Call build_function_type_list instead of build_function_type.
3551 Fix head comment and swap couple of conditional blocks.
3553 2011-04-30 Eric Botcazou <ebotcazou@adacore.com>
3555 * gnatvsn.ads (Library_Version): Bump to 4.7.
3556 (Current_Year): Bump to 2011.
3558 2011-04-29 Michael Matz <matz@suse.de>
3560 * gcc-interface/misc.c (gnat_handle_option): Set
3561 warn_maybe_uninitialized.
3563 2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
3565 * gnat_ugn.texi (Complexity Metrics Control): Update link to
3566 the Watson/McCabe paper.
3568 2011-04-23 Jim Meyering <meyering@redhat.com>
3570 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
3572 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
3574 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
3577 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
3579 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
3581 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
3582 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
3583 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
3584 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
3585 <all>: Do not set flags on the reused DECL node coming from an alias.
3586 Set DECL_IGNORED_P on the DECL node built for subprograms if they
3587 don't need debug info here...
3588 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
3589 (gigi): Adjust calls to create_subprog_decl.
3590 (build_raise_check): Likewise.
3591 (establish_gnat_vms_condition_handler): Likewise.
3592 (Compilation_Unit_to_gnu): Likewise.
3593 (gnat_to_gnu): Likewise.
3595 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
3597 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
3598 (NO_REORDER_ADAFLAGS): New variable.
3599 (EXTRA_GNATTOOLS): Always define.
3600 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
3601 Clean up and adjust list of files compiled with special options.
3602 * gcc-interface/Make-lang.in: Likewise.
3603 (ada/decl.o): Cosmetical change.
3604 (ada/misc.o): Remove dependency on $(PLUGIN_H).
3606 2011-04-20 Jim Meyering <meyering@redhat.com>
3608 * initialize.c (__gnat_initialize): Remove useless if-before-free.
3610 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
3612 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
3613 $(CFLAGS) on the link line.
3615 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
3617 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
3618 padded type built for the return type if it is unconstrained.
3620 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
3622 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
3624 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
3626 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
3627 before calling TREE_CHAIN.
3628 * gcc-interface/misc.c (gnat_init_ts): New function.
3629 (LANG_HOOKS_INIT_TS): Define.
3631 2011-04-12 Martin Jambor <mjambor@suse.cz>
3633 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
3634 instead of cgraph_node.
3636 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
3638 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
3639 alignment on fields of the RETURN type built for the Copy-In Copy-Out
3642 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
3644 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
3645 of aggregate types that contain a placeholder.
3647 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
3649 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
3651 (handle_type_generic_attribute): Likewise.
3653 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
3656 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
3658 2011-04-04 Kai Tietz <ktietz@redhat.com>
3661 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
3664 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3666 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
3667 type case, do not strip a padding type around the array type.
3669 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3671 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
3674 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3676 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
3677 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
3678 code for -feliminate-unused-debug-types.
3679 (gnat_post_options): Likewise.
3681 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3683 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
3684 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
3687 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3689 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
3690 DECL_ARTIFICIAL flag on enumeration types.
3692 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3694 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
3695 fat pointer types artificial unconditionally.
3696 <E_Array_Subtype>: Attach the base array type as a parallel type if it
3699 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3701 * gcc-interface/gigi.h (get_dummy_type): Declare.
3702 (build_dummy_unc_pointer_types): Likewise.
3703 (finish_fat_pointer_type): Likewise.
3704 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
3705 fat pointer type has been built, complete it in place.
3706 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
3707 and thin pointers. Remove useless variable.
3708 (finish_fat_pointer_type): Make global and move to...
3709 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
3710 (get_dummy_type): New function.
3711 (build_dummy_unc_pointer_types): Likewise.
3712 (gnat_pushdecl): Propage the name to the anonymous variants only.
3713 (update_pointer_to): Only adjust the pointer types in the unconstrained
3716 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3718 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
3719 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
3720 if this is a Taft amendment type and the full declaration is available.
3721 * gcc-interface/trans.c (process_type): Likewise.
3722 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
3723 (process_freeze_entity): Likewise.
3724 * gcc-interface/utils.c (dummy_global): New static variable.
3725 (gnat_write_global_declarations): If there are types declared as used
3726 at the global level, insert them in the global hash table.
3728 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3730 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
3731 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
3732 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
3734 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
3735 flag of the type accordingly.
3736 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
3738 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
3740 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
3741 finalizing types when updating the pointers to the designated type.
3742 <all>: Finalize the deferred types even if we didn't defer processing
3743 of incomplete types in this invocation.
3745 2011-04-01 Olivier Hainque <hainque@adacore.com>
3746 Nicolas Setton <setton@adacore.com>
3747 Eric Botcazou <ebotcazou@adacore.com>
3749 * gcc-interface/misc.c (gnat_descriptive_type): New function.
3750 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
3752 2011-03-28 Kai Tietz <ktietz@redhat.com>
3754 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
3756 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
3757 * system-mingw.ads (System): Change ZCX_By_Default default to True.
3759 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
3761 2011-03-28 Tristan Gingold <gingold@adacore.com>
3764 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
3765 Use ada output of gnatbind.
3766 (ada/b_gnatb.adb): Ditto.
3767 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
3768 (ada.mostlyclean, ada.stage1)
3769 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
3770 (ada.stagefeedback): Adjust.
3771 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
3772 Use ada output of gnatbind.
3773 (b_gnatm.adb): Ditto.
3774 (b_gnatl.o, b_gnatm.o): New rules.
3776 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
3778 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
3779 for the padded type built to support a specified size or alignment.
3781 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
3783 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
3784 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
3785 unconditionally to the end of the unit when the designated type is
3787 <all>: Rename local variable. Attempt to un-defer types only and do it
3788 for limited_with'ed types as well.
3789 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
3790 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
3791 consistently and remove redundant call to finalize_from_with_types.
3793 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
3795 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
3796 subprograms without a previous spec declared in the same unit.
3797 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
3798 subprograms at the end of the unit instead of at the beginning.
3799 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
3800 isn't public for the special handling of non-inline functions nested
3801 inside inline external functions.
3803 2011-03-25 Jeff Law <law@redhat.com>
3805 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
3807 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
3809 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
3810 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
3811 to compute Set_Size_Depends_On_Discriminant.
3812 (Layout_Type): Call it on array types in back-end layout mode.
3813 * sem_util.adb (Requires_Transient_Scope): Return true for array
3814 types only if the size depends on the value of discriminants.
3815 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
3816 type if the RHS is a call to a function that returns an unconstrained
3817 type with default discriminant.
3819 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
3821 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
3822 non-conversion to the nominal result type at the end.
3824 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
3826 * gcc-interface/trans.c (create_temporary): New function taken from...
3827 (create_init_temporary): ...here. Call it.
3828 (call_to_gnu): Create the temporary for the return value early, if any.
3829 Create it for a function with copy-in/copy-out parameters if there is
3830 no target; in other cases of copy-in/copy-out, use another temporary.
3831 Push the new binding level lazily. Add and rename local variables.
3833 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
3835 * gcc-interface/decl.c (validate_size): Improve comments and tweak
3837 (set_rm_size): Likewise.
3839 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
3841 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
3842 for the padded type built in order to support a specified alignment.
3843 Fix incorrect formatting.
3845 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
3848 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
3850 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
3852 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
3853 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
3854 to the end of the list. Adjust recursive call. Rename local variable.
3855 If REORDER is true, reorder components of the record type.
3856 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
3857 components_to_record and adjust the parameter list.
3859 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
3861 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
3862 disabled, use the variable for bounds of loop iteration scheme.
3864 2011-03-21 Kai Tietz <ktietz@redhat.com>
3867 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
3869 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
3871 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
3872 out whether the expression is read-only. Short-circuit placeholder
3873 case and rename a couple of local variables.
3875 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
3877 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
3878 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
3879 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
3880 (convert): Deal with conversions from a smaller form type specially.
3882 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
3884 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
3885 its argument, except for the special -I- switch.
3887 2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3889 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
3892 2011-02-08 Eric Botcazou <ebotcazou@adacore.com>
3894 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
3896 2011-02-03 Eric Botcazou <ebotcazou@adacore.com>
3898 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
3900 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
3901 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
3902 instead of GNAT_FORMAL. Protect the expression against multiple uses.
3903 Do not generate the check directly, instead instantiate the template
3904 check present in the descriptor.
3905 (make_descriptor_field): Move around.
3906 (build_vms_descriptor32): Build a template check in the POINTER field.
3907 (build_vms_descriptor): Remove useless suffixes.
3908 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
3910 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
3913 * targext.c: Include target files if IN_RTS is defined.
3915 2011-01-26 Richard Guenther <rguenther@suse.de>
3918 * targext.c: Include config.h.
3919 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
3922 2011-01-04 Pascal Obry <obry@adacore.com>
3923 Eric Botcazou <ebotcazou@adacore.com>
3925 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
3927 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
3929 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
3930 end-of-case on the end label and its associated gotos, if any.
3932 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
3934 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
3935 expressions of the parameter cache within the statement group of
3938 2011-01-04 Olivier Hainque <hainque@adacore.com>
3939 Eric Botcazou <ebotcazou@adacore.com>
3941 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
3942 (set_end_locus_from_node): New function.
3943 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
3944 make and the function end_locus.
3945 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
3946 for the elaboration subprogram.
3947 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
3948 set the end_locus of the expression as well.
3950 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
3953 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
3954 variables that are referenced in exception handlers volatile.
3958 Copyright (C) 2011 Free Software Foundation, Inc.
3960 Copying and distribution of this file, with or without modification,
3961 are permitted in any medium without royalty provided the copyright
3962 notice and this notice are preserved.
3964 * gnat_rm.texi: Ramification of pragma Eliminate documentation
3965 - fix bugs in the description of Source_Trace;
3966 - get rid of UNIT_NAME;
3968 2011-08-02 Javier Miranda <miranda@adacore.com>
3971 (Build_Dispatching_Requeue): Adding support for VM targets
3972 since we cannot directly reference the Tag entity.
3973 * exp_sel.adb (Build_K): Adding support for VM targets.
3974 (Build_S_Assignment): Adding support for VM targets.
3976 (Default_Prim_Op_Position): In VM targets do not restrict availability
3977 of predefined interface primitives to compiling in Ada 2005 mode.
3978 (Is_Predefined_Interface_Primitive): In VM targets this service is not
3979 restricted to compiling in Ada 2005 mode.
3980 (Make_VM_TSD): Generate code that declares and initializes the OSD
3981 record. Needed to support dispatching calls through synchronized
3984 (Make_Predefined_Primitive_Specs): Enable generation of predefined
3985 primitives associated with synchronized interfaces.
3986 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
3987 primitives associated with synchronized interfaces.
3989 2011-08-02 Yannick Moy <moy@adacore.com>
3991 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
3992 statements hidden in SPARK if preceded by the HIDE directive
3993 (Parse_Exception_Handlers): mark each exception handler in a sequence of
3994 exception handlers as hidden in SPARK if preceded by the HIDE directive
3995 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
3996 if starting with the HIDE directive
3997 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
3998 starting with the HIDE directive; mark the declarations in a private
3999 part as hidden in SPARK if the private part starts with the HIDE
4001 * restrict.adb, restrict.ads
4002 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
4003 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
4004 argument node belongs to a part which is hidden in SPARK
4005 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
4006 parts in SPARK; protect the possibly costly call to
4007 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
4008 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
4009 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
4010 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
4012 (Scan): recognize special comment starting with '#' and followed by
4013 SPARK keyword "hide" as a HIDE directive.
4015 2011-08-02 Yannick Moy <moy@adacore.com>
4017 * types.ads, erroutc.ads: Minor reformatting.
4019 2011-08-02 Vincent Celier <celier@adacore.com>
4021 * link.c: Add response file support for cross platforms.
4023 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4025 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
4026 in an association, set parent field of copy before partial analysis.
4027 * sem_res.adb (Resolve_Slice): create reference to itype only when
4028 expansion is enabled.
4030 2011-08-02 Yannick Moy <moy@adacore.com>
4032 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
4033 for new flag denoting which subprogram bodies are in ALFA
4034 * restrict.adb, sem_ch7.adb: Update comment
4035 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
4036 sem_ch9.adb, sem_res.adb: Add calls to
4037 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
4038 * sem_ch6.adb (Analyze_Function_Return): add calls to
4039 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
4040 middle of the body, and extended return.
4041 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
4042 False when missing return.
4043 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
4044 to True for subprograms whose spec is in ALFA. Remove later on the flag
4045 on the entity used for a subprogram body when there exists a separate
4047 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
4048 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
4049 False, otherwise do nothing.
4051 2011-08-02 Robert Dewar <dewar@adacore.com>
4053 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
4055 2011-08-02 Yannick Moy <moy@adacore.com>
4057 * sem_ch4.ads: minor formatting.
4059 2011-08-02 Yannick Moy <moy@adacore.com>
4061 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
4062 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
4063 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
4064 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
4065 opt.ads: cleanup of SPARK mode
4067 2011-08-02 Yannick Moy <moy@adacore.com>
4069 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
4071 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
4072 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
4074 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
4075 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
4076 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
4077 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
4079 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
4081 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
4082 functions whose return type is not in ALFA.
4083 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
4085 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
4086 parameter's type is not in ALFA.
4087 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
4090 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4092 * sem_ch6 (Analyze_Expression_Function): treat the function as
4093 Inline_Always, and introduce a subprogram declaration for it when it is
4095 * inline.adb (Add_Inlined_Body): recognize bodies that come from
4096 expression functions, so that the back-end can determine whether they
4097 can in fact be inlined.
4098 * sem_util.adb (Is_Expression_Function): predicate to determine whether
4099 a function body comes from an expression function.
4101 2011-08-02 Gary Dismukes <dismukes@adacore.com>
4103 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
4104 null exclusions to test Can_Never_Be_Null on the anonymous access types
4105 of the formals rather than testing the formals themselves. Exclude this
4106 check in cases where the Old_Formal is marked as a controlling formal,
4107 to avoid issuing spurious errors for bodies completing dispatching
4108 operations (due to the flag not getting set on controlling access
4109 formals in body specs).
4110 (Find_Corresponding_Spec): When checking full and subtype conformance of
4111 subprogram bodies in instances, pass Designated and E in that order, for
4112 consistency with the expected order of the formals (New_Id followed by
4115 2011-08-02 Robert Dewar <dewar@adacore.com>
4117 * sem_ch8.adb: Minor reformatting.
4119 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4121 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
4122 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
4123 primitive operations of class-wide actuals.
4125 2011-08-02 Javier Miranda <miranda@adacore.com>
4127 * exp_atag.ads, exp_atag.adb
4128 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
4129 since its value is implicitly passed in argument Typ.
4130 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
4131 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
4132 Build_Common_Dispatching_Select_Statements.
4134 2011-08-02 Robert Dewar <dewar@adacore.com>
4136 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
4137 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
4140 2011-08-02 Robert Dewar <dewar@adacore.com>
4142 * sem_res.adb: Minor reformatting.
4143 * sem_prag.adb: Minor reformatting.
4145 2011-08-02 Javier Miranda <miranda@adacore.com>
4147 * exp_atag.adb, exp_atags.ads
4148 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
4149 by the tagged type Entity. Required to use this routine in the VM
4150 targets since we do not have available the Tag entity in the VM
4153 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
4154 Ada.Tags has not been previously loaded.
4156 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
4157 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
4159 (Enclosing_Dynamic_Scope): Add missing support to handle the full
4160 view of enclosing scopes. Required to handle enclosing scopes that
4161 are synchronized types whose full view is a task type.
4163 (Build_VM_TSDs): Minor code improvement to avoid generating and
4164 analyzing lists with empty nodes.
4165 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
4166 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
4167 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
4168 (Make_Disp_Timed_Select_Body): Add support for VM targets.
4169 (Make_Select_Specific_Data_Table): Add support for VM targets.
4170 (Make_VM_TSD): Generate code to initialize the SSD structure of
4173 2011-08-02 Yannick Moy <moy@adacore.com>
4175 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
4176 cross-references section in ALI.
4177 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
4178 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
4180 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
4181 subprogram or package entity of a node
4182 (Is_Local_Reference_Type): new function returns True for references
4183 selected in local cross-references.
4184 (Lt): function extracted from Lt in Output_References
4185 (Write_Entity_Name): function extracted from Output_References
4186 (Generate_Definition): generate reference with type 'D' for definition
4187 of objects (object declaration and parameter specification), with
4188 appropriate locations and units, for use in local cross-references.
4189 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
4190 references of type 'I' for initialization in object definition.
4191 (Output_References): move part of function Lt and procedure
4192 Write_Entity_Name outside of the body. Ignore references of types 'D'
4193 and 'I' introduced for local cross-references.
4194 (Output_Local_References): new procedure to output the local
4195 cross-references sections.
4196 (Lref_Entity_Status): new array defining whether an entity is a local
4197 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
4198 with 'I' type when initialization expression is present.
4199 * get_scos.adb, get_scos.ads: Correct comments and typos
4201 2011-08-02 Javier Miranda <miranda@adacore.com>
4203 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
4205 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
4207 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
4210 2011-08-02 Vincent Celier <celier@adacore.com>
4212 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
4213 (No_Space_Img): New function
4214 (Find_Excluded_Sources): When reading from a file, record the file name
4215 and the line number for each excluded source.
4216 (Mark_Excluded_Sources): When reporting an error, if the excluded
4217 sources were read from a file, include file name and line number in
4220 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4222 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
4224 2011-08-02 Robert Dewar <dewar@adacore.com>
4226 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
4228 2011-08-02 Javier Miranda <miranda@adacore.com>
4230 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
4231 generation of TSDs to the DOTNET compiler.
4232 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
4233 generation of TSDs to the DOTNET compiler.
4235 2011-08-02 Javier Miranda <miranda@adacore.com>
4237 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
4238 record of all the tagged types declared inside library level package
4239 declarations, library level package bodies or library level subprograms.
4240 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
4241 associated with a given tagged type.
4242 (Build_VM_TSDs): New subprogram.
4243 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
4244 compilation units that are subprograms.
4245 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
4246 compilation units that are package bodies.
4247 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
4248 units that are a package declaration or a package instantiation.
4249 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
4250 reorganization to improve the error generated by the frontend when the
4251 function Ada.Tags.Secondary_Tag is not available.
4252 * rtsfind.ads (RE_Register_TSD): New runtime entity.
4253 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
4255 2011-08-02 Javier Miranda <miranda@adacore.com>
4257 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
4259 2011-08-02 Robert Dewar <dewar@adacore.com>
4261 * s-imenne.ads: Minor reformatting.
4263 2011-08-02 Robert Dewar <dewar@adacore.com>
4265 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
4266 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
4267 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
4269 2011-08-02 Robert Dewar <dewar@adacore.com>
4271 * einfo.ads (Materialize_Entity): Document this is only for renamings
4272 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
4273 required debug information in the case where we transform the object
4274 declaration into a renaming declaration.
4275 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
4277 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
4280 2011-08-02 Robert Dewar <dewar@adacore.com>
4282 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
4283 Suppress_Init_Procs.
4284 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
4285 Suppress_Initialization/Initialization_Suppressed.
4286 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
4287 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
4288 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
4289 * sem_prag.adb: New processing for pragma Suppress_Initialization.
4291 2011-08-02 Robert Dewar <dewar@adacore.com>
4293 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
4296 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4298 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
4299 only have inheritable classwide pre/postconditions.
4301 2011-08-02 Javier Miranda <miranda@adacore.com>
4303 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
4304 * rtsfind.ads (RE_Check_TSD): New runtime entity.
4305 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
4306 checks if the external tag of a type is the same as the external tag
4307 of some other declaration.
4309 2011-08-02 Thomas Quinot <quinot@adacore.com>
4311 * s-taskin.ads: Minor reformatting.
4313 2011-08-02 Emmanuel Briot <briot@adacore.com>
4315 * g-comlin.adb (Display_Help): swap the order in which it prints the
4316 short help and the general usage.
4318 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4320 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
4321 the aspect declarations and attach them to the generic copy for
4322 subsequent analysis.
4323 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
4324 declarations of the generic tree to the new subprogram declarations.
4325 * sem_attr.adb (Check_Precondition_Postcondition): recognize
4326 conditions that apply to a subprogram instance.
4328 2011-08-02 Robert Dewar <dewar@adacore.com>
4330 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
4332 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4334 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
4335 private type with a tagged full view is not derived in the immediate
4336 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
4338 2011-08-02 Robert Dewar <dewar@adacore.com>
4340 * exp_ch4.adb: Minor reformatting.
4342 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4344 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
4345 Ada2012 iterator, the loop will be rewritten during expansion into a
4346 while loop with a cursor and an element declaration. Do not analyze the
4347 body in this case, because if the container is for indefinite types the
4348 actual subtype of the elements will only be determined when the cursor
4349 declaration is analyzed.
4351 2011-08-02 Arnaud Charlet <charlet@adacore.com>
4353 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
4354 size/alignment related attributes in CodePeer_Mode.
4356 2011-08-02 Gary Dismukes <dismukes@adacore.com>
4358 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
4359 Prepend_Element, since this can result in the operation getting the
4360 wrong slot in the full type's dispatch table if the full type has
4361 inherited operations. The incomplete type's operation will get added
4362 to the proper position in the full type's primitives
4363 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
4364 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
4365 dispatching operations, since there are cases where nonprimitive
4366 subprograms can get added to the list of incomplete dependents (such
4367 as subprograms in nested packages).
4368 * sem_ch6.adb (Process_Formals): First, remove test for being in a
4369 private part when determining whether to add a primitive with a
4370 parameter of a tagged incomplete type to the Private_Dependents list.
4371 Such primitives can also occur in the visible part, and should not have
4372 been excluded from being private dependents.
4373 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
4374 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
4375 list of a Taft-amendment incomplete type is a primitive before issuing
4376 an error that the full type must appear in the same unit. There are
4377 cases where nonprimitives can be in the list (such as subprograms in
4379 * sem_disp.adb (Derives_From): Use correct condition for checking that
4380 a formal's type is derived from the type of the corresponding formal in
4381 the parent subprogram (the condition was completely wrong). Add
4382 checking that was missing for controlling result types being derived
4383 from the result type of the parent operation.
4385 2011-08-02 Yannick Moy <moy@adacore.com>
4387 * errout.adb (First_Node): minor renaming
4388 * restrict.adb (Check_Formal_Restriction): put restriction warning on
4391 2011-08-02 Yannick Moy <moy@adacore.com>
4393 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
4394 before accessing operands.
4395 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
4396 decide whether an initialization expression respects SPARK rules, as
4397 the plain node is the expanded one. This allows for more valid warnings
4399 * gnat_rm.texi: Minor update.
4401 2011-08-02 Arnaud Charlet <charlet@adacore.com>
4403 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
4406 2011-08-02 Robert Dewar <dewar@adacore.com>
4408 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
4410 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
4412 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
4413 loop statements and the element renaming declaration with a block when
4414 the element type is controlled.
4416 2011-08-02 Yannick Moy <moy@adacore.com>
4418 * sinfo.ads: Minor formatting.
4420 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4422 * sem_aggr.adb (Add_Association): if the association has a box and no
4423 expression, use the Sloc of the aggregate itself for the new
4425 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
4428 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
4430 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
4431 When a container is provided via a function call, generate a renaming
4432 of the function result. This avoids the creation of a transient scope
4433 and the premature finalization of the container.
4434 * exp_ch7.adb (Is_Container_Cursor): Removed.
4435 (Wrap_Transient_Declaration): Remove the supression of the finalization
4436 of the list controller when the declaration denotes a container cursor,
4439 2011-08-02 Yannick Moy <moy@adacore.com>
4441 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
4442 node is from source, instead of the original node being from source.
4444 (Resolve_Array_Aggregate): refine the check for a static expression, to
4445 recognize also static ranges
4446 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
4447 Array_Type_Declaration): postpone the test for the type being a subtype
4448 mark after the type has been resolved, so that component-selection and
4449 expanded-name are discriminated.
4450 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
4451 to distinguish the case of an iteration scheme, so that an error is
4452 issed on a non-static range in SPARK except in an iteration scheme.
4453 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
4454 In_Iter_Schm = True.
4455 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
4456 user-defined operators so that they are allowed in renaming
4458 (Find_Selected_Component): refine the check for prefixing of operators
4459 so that they are allowed in renaming. Move the checks for restrictions
4460 on selector name after analysis discriminated between
4461 component-selection and expanded-name.
4462 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
4463 concatenation argument of string type if it is static.
4464 * sem_util.adb, sem_util.ads
4465 (Check_Later_Vs_Basic_Declarations): add a new function
4466 Is_Later_Declarative_Item to decice which declarations are allowed as
4467 later items, in the two different modes Ada 83 and SPARK. In the SPARK
4468 mode, add that renamings are considered as later items.
4469 (Enclosing_Package): new function to return the enclosing package
4470 (Enter_Name): correct the rule for homonyms in SPARK
4471 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
4472 from source (result of expansion) to avoid issuing wrong warnings.
4474 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4476 * errout.adb: On anything but an expression First_Node returns its
4479 2011-08-02 Pascal Obry <obry@adacore.com>
4481 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
4483 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
4485 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
4486 Set the associated loop as the related expression of internally
4488 * exp_ch7.adb (Is_Container_Cursor): New routine.
4489 (Wrap_Transient_Declaration): Supress the finalization of the list
4490 controller when the declaration denotes a container cursor.
4492 2011-08-02 Yannick Moy <moy@adacore.com>
4494 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
4496 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
4497 expression is a simple expression. This check cannot be performed in
4498 the semantics, so just drop it.
4499 (P_Index_Or_Discriminant_Constraint): move check that the index or
4500 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
4501 semantics. Other cases were previously checked in the semantics.
4502 * par-ch4.adb (P_Name): move checks that a selector name is not
4503 character literal or an operator symbol to Find_Selected_Component in
4505 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
4506 declarations are not placed after later declarations in a separate
4507 procedure in Sem_Util (possibly not the best choice?), to be used both
4508 during parsing, for Ada 83 mode, and during semantic analysis, for
4510 * par-endh.adb (Check_End): move check that end label is not missing
4511 to Process_End_Label in the semantics
4512 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
4513 the special case for SPARK restriction
4514 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
4515 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
4516 parameter Force to issue the error message even on internal node (used
4517 for generated end label). Call Check_Restriction to check when an error
4518 must be issued. In SPARK mode, issue an error message even if the
4519 restriction is not set.
4520 (Check_Restriction): new procedure with an additional out parameter to
4521 inform the caller that a message has been issued
4522 * sem_aggr.adb: Minor modification of message
4523 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
4524 instead of issuing an error message directly
4525 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
4526 declarations are not placed after later declarations, by calling
4527 Check_Later_Vs_Basic_Declarations
4528 (Analyze_Subtype_Declaration): move here the check that an index or
4529 discriminant constraint must be a subtype mark. Change the check that
4530 a subtype of String must start at one so that it works on subtype marks.
4531 * sem_ch4.adb (Analyze_Call): move here the check that a named
4532 association cannot follow a positional one in a call
4533 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
4534 instead of issuing an error message directly
4535 * sem_ch8.adb (Find_Selected_Component): move here the check that a
4536 selector name is not a character literal or an operator symbol. Move
4537 here the check that the prefix of an expanded name cannot be a
4538 subprogram or a loop statement.
4539 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
4540 procedure called from parsing and semantics to check that basic
4541 declarations are not placed after later declarations
4542 (Process_End_Label): move here the check that end label is not missing
4544 2011-08-02 Arnaud Charlet <charlet@adacore.com>
4546 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
4547 representation clause in codepeer mode, since it confuses CodePeer and
4548 does not bring useful info.
4550 2011-08-02 Ed Falis <falis@adacore.com>
4552 * init.c: initialize fp hw on MILS.
4554 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4556 * errout.adb (First_Node): for bodies, return the node itself (small
4557 optimization). For other nodes, do not check source_unit if the node
4558 comes from Standard.
4560 2011-08-02 Robert Dewar <dewar@adacore.com>
4562 * exp_ch3.adb: Minor comment additions.
4563 * sem_ch13.adb: Minor reformatting.
4565 2011-08-02 Pascal Obry <obry@adacore.com>
4567 * make.adb, makeutl.adb: Removes some superfluous directory separator.
4569 2011-08-02 Robert Dewar <dewar@adacore.com>
4571 * sem_attr.adb: Minor reformatting.
4573 2011-08-02 Robert Dewar <dewar@adacore.com>
4575 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
4576 (Has_Default_Component_Value): Removed
4577 * einfo.ads Comment updates
4578 (Has_Default_Aspect): Replaces Has_Default_Value
4579 (Has_Default_Component_Value): Removed
4581 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
4583 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
4584 (Get_Simple_Init_Val): Handle Default_Value aspect
4585 (Needs_Simple_Initialization): Handle Default_Value aspect
4586 * exp_ch3.ads: Needs_Simple_Initialization
4587 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
4588 * par-prag.adb (Pragma_Default[_Component]Value) Removed
4590 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
4591 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
4592 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
4594 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4596 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
4597 package containing iteration primitives.
4598 exp_ch5.adb (Expand_Iterator_Loop): ditto.
4600 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4602 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
4603 "of", pre-analyze expression in case it is a function call with
4604 finalization actions that must be placed ahead of the loop.
4605 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
4606 on an Ada2012 iterator, insert them ahead of the rewritten loop.
4608 2011-08-02 Geert Bosch <bosch@adacore.com>
4610 * cstand.adb (Create_Float_Types): Only consider C's long double for
4611 Long_Long_Float, in addition to double.
4613 2011-08-02 Robert Dewar <dewar@adacore.com>
4615 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
4616 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
4617 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
4620 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4622 * sem_attr.adb: handle properly 'Result when it is a prefix of an
4625 2011-08-02 Javier Miranda <miranda@adacore.com>
4627 * einfo.ads, einfo.adb
4628 (Original_Access_Type): Move this attribute to Node26 since there was
4629 an undocumented use of Node21 in E_Access_Subprogram_Type entities
4630 which causes conflicts and breaks the generation of the .NET compiler.
4631 (Interface_Name): Add missing documentation on JGNAT only uses of
4634 2011-08-02 Geert Bosch <bosch@adacore.com>
4636 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
4637 (Find_Back_End_Float_Type): Likewise
4638 (Create_Back_End_Float_Types): Likewise
4639 (Create_Float_Types): Likewise
4640 (Register_Float_Type): Likewise
4641 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
4642 Nlist and split out type selection in new local Find_Base_Type function.
4643 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
4645 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
4647 2011-08-02 Robert Dewar <dewar@adacore.com>
4649 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
4651 * opt.ads: Minor comment change.
4652 * sem_ch12.adb: Minor code reorganization.
4654 2011-08-02 Gary Dismukes <dismukes@adacore.com>
4656 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
4657 subtype's list of rep items to the list on the full subtype in the case
4658 where the lists are the same.
4660 2011-08-02 Geert Bosch <bosch@adacore.com>
4662 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
4663 using the one from System.Strings, which also deallocates all strings.
4665 2011-08-02 Geert Bosch <bosch@adacore.com>
4667 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
4669 * gcc-interface/Make-lang.in: Update dependencies.
4671 2011-08-02 Olivier Hainque <hainque@adacore.com>
4673 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
4676 2011-08-02 Javier Miranda <miranda@adacore.com>
4678 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
4679 associated with anonymous access to subprograms.
4681 2011-08-02 Geert Bosch <bosch@adacore.com>
4684 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
4685 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
4686 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
4687 (Add_Symbol_Definition): Move to switch-c.adb
4688 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
4689 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
4690 (Add_Symbol_Definition): Move to switch-c.adb.
4691 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
4693 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
4695 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
4696 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
4698 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
4699 (Add_Symbol_Definition): Moved from Prepcomp.
4700 * switch-c.ads: Update copyright notice. Use String_List instead of
4701 Argument_List, removing dependency on System.OS_Lib.
4703 2011-08-02 Yannick Moy <moy@adacore.com>
4705 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
4706 mode on initialization expression which does not respect SPARK
4708 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
4709 if the tree referenced by its argument represents an initialization
4710 expression in SPARK, suitable for initializing an object in an object
4713 2011-08-02 Javier Miranda <miranda@adacore.com>
4715 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
4716 internally generated access to subprogram with its associated protected
4718 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
4720 2011-08-02 Geert Bosch <bosch@adacore.com>
4722 * cstand.adb (Register_Float_Type): Print information about type to
4723 register, if the Debug_Flag_Dot_B is set.
4724 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
4725 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
4726 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
4727 with a requested precision of more than Max_Digits digits and no more
4728 than Max_Base_Digits digits, if a range specification is present and the
4729 Predefined_Float_Types list has a suitable type to derive from.
4730 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
4731 case of type completion with pragma Import
4733 (Process_Import_Predefined_Type): Processing to complete a type
4734 with pragma Import. Currently supports floating point types only.
4735 (Set_Convention_From_Pragma): Do nothing without underlying type.
4736 (Process_Convention): Guard against absence of underlying type,
4737 which may happen when importing incomplete types.
4738 (Process_Import_Or_Interface): Handle case of importing predefined
4739 types. Tweak error message.
4741 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
4743 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
4744 functions to previous change. Reorganize code slightly.
4746 2011-08-02 Geert Bosch <bosch@adacore.com>
4748 * back_end.ads (Register_Type_Proc): New call back procedure type for
4749 allowing the back end to provide information about available types.
4750 (Register_Back_End_Types): New procedure to register back end types.
4751 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
4753 * cstand.adb (Back_End_Float_Types): New list for floating point types
4754 supported by the back end.
4755 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
4756 (Copy_Float_Type): New procedure to make new copies of predefined types.
4757 (Register_Float_Type): New call back procedure to populate the BEFT list
4758 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
4759 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
4760 (Create_Float_Types): New procedure to create entities for floating
4761 point types predefined in Standard, and put these and any remaining
4762 BEFTs on the Predefined_Float_Types list.
4763 * stand.ads (Predefined_Float_Types): New list for predefined floating
4764 point types that do not have declarations in package Standard.
4766 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
4768 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
4769 entity node for the unit containing the parameter.
4770 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
4771 (Add_Inlined_Subprogram): Likewise.
4772 * gcc-interface/Make-lang.in: Update dependencies.
4774 2011-08-02 Thomas Quinot <quinot@adacore.com>
4776 * s-stusta.adb (Print): Make sure Pos is always initialized to a
4779 2011-08-02 Geert Bosch <bosch@adacore.com>
4781 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
4783 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
4785 * sem_type.adb (Covers): Move trivial case to the top and reuse the
4786 computed value of Base_Type.
4788 2011-08-02 Yannick Moy <moy@adacore.com>
4790 * restrict.adb (Check_Restriction): issue an error for any use of
4791 class-wide, even if the No_Dispatch restriction is not set.
4792 * sem_aggr.adb: Correct typos in comments and messages in formal mode
4793 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
4794 when completing a private extension, the type named in the private part
4795 is not the same as that named in the visible part.
4796 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
4797 of an inherited primitive operations of a tagged type or type extension
4798 that returns the tagged type.
4799 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
4800 function which returns True for an implicit operation inherited by the
4801 derived type declaration for the argument type.
4802 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
4805 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4807 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
4808 Process_Bounds, to perform analysis with expansion of a range or an
4809 expression that is the iteration scheme for a loop.
4810 (Analyze_Iterator_Specification): If domain of iteration is given by a
4811 function call with a controlled result, as is the case if call returns
4812 a predefined container, ensure that finalization actions are properly
4814 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
4816 2011-08-02 Javier Miranda <miranda@adacore.com>
4818 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
4819 * gcc-interface/Make-lang.in: Update dependencies.
4821 2011-08-02 Javier Miranda <miranda@adacore.com>
4823 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
4824 determine if the analysis is performed using N or Original_Node (N).
4825 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
4826 functionality of routine Is_Variable avoids code duplication.
4827 * checks.adb (Determine_Range): Handle temporaries generated by
4828 Remove_Side_Effects.
4830 2011-08-02 Javier Miranda <miranda@adacore.com>
4832 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
4833 expansion of the condition. Required since the previous analysis was
4834 done with expansion disabled (see Resolve_Quantified_Expression) and
4835 hence checks were not inserted and record comparisons have not been
4838 2011-08-02 Ed Falis <falis@adacore.com>
4840 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
4843 2011-08-02 Bob Duff <duff@adacore.com>
4845 * opt.ads: Minor comment fix.
4847 2011-08-02 Bob Duff <duff@adacore.com>
4849 * sem_ch12.adb (Analyze_Package_Instantiation,
4850 Analyze_Subprogram_Instantiation): Turn off style checking while
4851 analyzing an instance. Whatever style checks that apply to the generic
4852 unit should apply, so it makes no sense to apply them in an instance.
4853 This was causing trouble when compiling an instance of a runtime
4854 unit that violates the -gnatyO switch.
4855 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
4856 one of the two case statements, causing spurious errors.
4858 2011-08-02 Robert Dewar <dewar@adacore.com>
4860 * uname.adb: Minor reformatting.
4861 * gnatcmd.adb: Minor reformatting.
4862 * exp_attr.adb: Minor reformatting.
4864 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4866 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
4867 No_Dispatching_Calls, do not look for the Assign primitive, because
4868 predefined primitives are not created in this case.
4870 2011-08-02 Bob Duff <duff@adacore.com>
4872 * stylesw.ads: Minor comment fixes.
4874 2011-08-02 Robert Dewar <dewar@adacore.com>
4876 * freeze.adb (Add_To_Result): New procedure.
4878 2011-08-02 Jose Ruiz <ruiz@adacore.com>
4880 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
4881 time, if the specific run-time routines for handling streams of strings
4882 are not available, use the default mechanism.
4884 2011-08-02 Arnaud Charlet <charlet@adacore.com>
4886 * s-regpat.ads: Fix typo.
4888 2011-08-02 Vincent Celier <celier@adacore.com>
4890 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
4891 not null, call it to create the in memory config project file without
4892 parsing an existing default config project file.
4894 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
4896 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
4898 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4900 * sem_elim.adb: an abstract subprogram does not need an eliminate
4901 pragma for its descendant to be eliminable.
4903 2011-08-02 Ed Falis <falis@adacore.com>
4905 * init.c: revert to handling before previous checkin for VxWorks
4906 * s-intman-vxworks.adb: delete unnecessary declarations related to
4907 using Ada interrupt facilities for handling signals.
4908 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
4909 * s-intman-vxworks.ads: Import __gnat_install_handler as
4910 Initialize_Interrupts.
4911 * s-taprop-vxworks.adb: Delete Signal_Mask.
4912 (Abort_Handler): change construction of mask to unblock exception
4915 2011-08-02 Jerome Guitton <guitton@adacore.com>
4917 * a-except-2005.adb (Raise_From_Signal_Handler): Call
4918 Debug_Raise_Exception before propagation starts.
4920 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
4922 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
4923 to Restriction_Check_Required.
4924 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
4925 * sem_res.adb (Resolve_Call): Likewise.
4926 * sem_attr.adb (Check_Stream_Attribute): Likewise.
4928 2011-08-02 Bob Duff <duff@adacore.com>
4930 * stylesw.ads: Update comment.
4931 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
4932 * errout.ads: Remove obsolete comment.
4934 2011-08-02 Javier Miranda <miranda@adacore.com>
4936 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
4937 (Set_Is_Safe_To_Reevaluate): new procedure.
4938 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
4939 assignment is allowed on safe-to-reevaluate variables.
4940 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
4941 temporary created to remove side effects in expressions that use
4942 the secondary stack as safe-to-reevaluate.
4943 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
4944 variables that are not true constants.
4946 2011-08-02 Robert Dewar <dewar@adacore.com>
4948 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
4949 sem_res.adb, sem_ch6.adb: Minor reformatting.
4951 2011-08-02 Jerome Guitton <guitton@adacore.com>
4953 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
4955 2011-08-02 Ed Schonberg <schonberg@adacore.com>
4957 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
4958 not set Overridden_Operation if subprogram is an initialization
4961 2011-08-02 Yannick Moy <moy@adacore.com>
4963 * par-ch6.adb: Correct obsolete name in comments
4964 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
4965 which takes two message arguments (existing function takes one), with
4966 second message used for continuation.
4967 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
4968 block statements that originate from a source block statement, not
4969 generated block statements
4970 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
4971 symmetry with procedure case
4972 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
4973 function to issue an error in formal mode if a package specification
4974 contains more than one tagged type or type extension.
4975 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
4976 parameters matching formals of tagged types are objects (or ancestor
4977 type conversions of objects), not general expressions. Issue an error
4978 on view conversions that are not involving ancestor conversion of an
4980 (Resolve_Type_Conversion): in formal mode, issue an error on the
4981 operand of an ancestor type conversion which is not an object
4982 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
4983 procedure so that it works also for actuals of function calls
4984 (Is_Actual_Tagged_Parameter): new function which determines if its
4985 argument is an actual parameter of a formal of tagged type in a
4987 (Is_SPARK_Object_Reference): new function which determines if the tree
4988 referenced by its argument represents an object in SPARK
4990 2011-08-02 Robert Dewar <dewar@adacore.com>
4992 * sem_ch3.adb: Minor reformatting
4993 Minor comment addition
4994 Minor error msg text change
4996 2011-08-02 Javier Miranda <miranda@adacore.com>
4998 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
4999 function. Used to be more precise when we generate a variable plus one
5000 assignment to remove side effects in the evaluation of the Bound
5002 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
5003 of the bound expression to force its re-analysis and thus expand the
5004 associated transient scope (if required). Code cleanup replacing the
5005 previous code that declared the constant entity by an invocation to
5006 routine Force_Evaluation which centralizes this work in the frontend.
5008 2011-08-02 Robert Dewar <dewar@adacore.com>
5010 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
5011 (Base_Type): Now uses improved Is_Base_Type function
5012 * einfo.ads (Base_Type): Inline this function
5014 2011-08-02 Robert Dewar <dewar@adacore.com>
5016 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
5017 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
5019 2011-08-02 Arnaud Charlet <charlet@adacore.com>
5021 * gcc-interface/Make-lang.in: Update dependencies.
5022 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
5025 2011-08-02 Yannick Moy <moy@adacore.com>
5027 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
5028 non-simple expression used in delta constraint
5029 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
5030 index constraint which is not a subtype mark
5031 * par.adb: With and use Restrict
5032 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
5033 mode on component type which is not a subtype mark and default
5034 expression on component
5035 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
5036 of string which does not have a lower index bound equal to 1
5037 (Array_Type_Declaration): issue an error in formal mode on index or
5038 component type which is not a subtype mark, and on aliased keyword on
5040 (Derived_Type_Declaration): issue an error in formal mode on interface,
5041 limited or abstract type
5042 (Record_Type_Declaration): issue an error in formal mode on interface
5043 (Record_Type_Definition): issue an error in formal mode on tagged types
5044 and type extensions not declared in the specification of a library unit
5045 package; on null non-tagged record; on variant part
5047 2011-08-02 Vincent Celier <celier@adacore.com>
5049 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
5050 not declared for qualified library project when Library_Name is not
5051 declared, but Library_Dir is.
5053 2011-08-02 Robert Dewar <dewar@adacore.com>
5055 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
5056 pragmas (affects aspects [Component_]Default_Value
5057 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
5058 component type for the resolution
5060 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5062 * einfo.adb (Base_Type): Tune implementation for speed.
5064 2011-08-02 Robert Dewar <dewar@adacore.com>
5066 * freeze.adb: Minor reformatting.
5068 2011-08-02 Thomas Quinot <quinot@adacore.com>
5070 * scos.ads: Update comments.
5072 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5074 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
5075 base type, because the parent may be a subtype of a private type whose
5076 convention is established in a private part.
5078 2011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
5080 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
5081 statement in a block when the expansion of the return expression has
5082 created a finalization chain.
5083 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
5084 with the parent node.
5085 Add N_Extended_Return_Statement to handle the case where a transient
5086 object declaration appears in the Return_Object_Declarations list of
5087 an extended return statement.
5089 2011-08-02 Matthew Gingell <gingell@adacore.com>
5091 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
5092 unused parameter 'name'.
5094 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5096 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
5097 inherited operation, check whether its alias, which is the source
5098 operastion that it renames, has been marked eliminated.
5100 2011-08-02 Javier Miranda <miranda@adacore.com>
5102 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
5103 in-mode parameter whose type is an access type since it can be used to
5104 modify its designated object. Enforce code that handles as safe an
5105 access type that is not access-to-constant but it is the result of a
5106 previous removal of side-effects.
5107 (Remove_Side_Effects): Minor code reorganization of cases which require
5108 no action. Done to incorporate documentation on new cases uncovered
5109 working in this ticket: no action needed if this routine was invoked
5110 too early and the nodes are not yet decorated.
5111 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
5112 to routine Remove_Side_Effects by calls to Force_Evaluation since they
5113 were issued with actuals that are implicitly provided by
5116 2011-08-02 Robert Dewar <dewar@adacore.com>
5118 * sem_ch3.adb, sem_res.adb: Minor reformatting.
5120 2011-08-02 Yannick Moy <moy@adacore.com>
5122 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
5123 to issue an error in formal mode on attribute not supported in this mode
5124 (Analyze_Attribute): issue errors on standard attributes not supported
5126 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
5127 comment, and issue error in formal mode on modulus which is not a power
5129 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
5131 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
5133 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
5134 operator on modular type (except 'not').
5136 2011-08-02 Robert Dewar <dewar@adacore.com>
5138 * gnat_rm.texi: Minor reformatting.
5140 2011-08-02 Arnaud Charlet <charlet@adacore.com>
5142 * s-osinte-linux.ads: Minor comment update and reformatting.
5143 * i-cexten.ads: Make this unit pure, as for its parent.
5144 Will allow its usage in more contexts if needed.
5146 2011-08-02 Robert Dewar <dewar@adacore.com>
5148 * s-utf_32.ads: Minor comment fix.
5150 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5152 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
5153 operation of a tagged synchronized type, handle the case where the
5154 controlling argument is overloaded.
5156 2011-08-02 Yannick Moy <moy@adacore.com>
5158 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
5159 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
5160 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
5161 SPARK mode and formal verification mode on processing SPARK restriction
5162 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
5163 requiring consistency checking.
5165 2011-08-02 Robert Dewar <dewar@adacore.com>
5167 * sem_res.adb: Minor reformatting.
5169 2011-08-02 Robert Dewar <dewar@adacore.com>
5171 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5172 a-cforse.ads: Remove unneeded with of Ada.Containers
5173 Remove commented out pragma Inline's
5174 Move specifications of new subprograms to the actual specs
5176 2011-08-02 Yannick Moy <moy@adacore.com>
5178 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5179 a-cforse.ads: Update comments.
5181 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5183 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
5185 2011-08-02 Robert Dewar <dewar@adacore.com>
5187 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5188 a-cforse.ads, a-cofove.ads: Minor reformatting.
5190 2011-08-02 Claire Dross <dross@adacore.com>
5192 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
5193 a-cofove.ads: Add comments.
5195 2011-08-02 Yannick Moy <moy@adacore.com>
5197 * gnat_rm.texi: Document formal containers.
5199 2011-08-02 Emmanuel Briot <briot@adacore.com>
5201 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
5204 2011-08-02 Robert Dewar <dewar@adacore.com>
5206 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
5209 2011-08-02 Robert Dewar <dewar@adacore.com>
5211 * aspects.adb: New aspects Default_Value and Default_Component_Value
5212 New format of Aspect_Names table checks for omitted entries
5213 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
5214 handling of boolean aspects for derived types.
5215 New aspects Default_Value and Default_Component_Value
5216 New format of Aspect_Names table checks for omitted entries
5217 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
5218 (Has_Default_Value): New flag
5219 (Has_Default_Component_Value): New flag
5220 (Has_Default_Value): New flag
5221 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
5223 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
5224 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
5225 Default_Value and Default_Component_Value
5226 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
5227 New aspects Default_Value and Default_Component_Value
5228 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
5229 * sprint.adb: Print N_Aspect_Specification node when called from gdb
5231 2011-08-02 Vincent Celier <celier@adacore.com>
5233 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
5234 inherit library kind.
5236 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5238 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
5241 2011-08-02 Robert Dewar <dewar@adacore.com>
5243 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
5245 2011-08-02 Yannick Moy <moy@adacore.com>
5247 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
5249 2011-08-02 Robert Dewar <dewar@adacore.com>
5251 * impunit.adb: Add comment.
5253 2011-08-02 Yannick Moy <moy@adacore.com>
5255 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
5256 qualification of aggregates in formal mode
5257 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
5259 (Resolve_Aggregate): complete the test that an aggregate is adequately
5260 qualified in formal mode
5262 2011-08-02 Pascal Obry <obry@adacore.com>
5264 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
5265 * mlib-prj.adb: Supress warning when compiling binder generated file.
5266 (Build_Library): Supress all warnings when compiling the binder
5269 2011-08-02 Yannick Moy <moy@adacore.com>
5271 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
5273 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
5274 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
5275 Add with/use clauses to make Check_Formal_Restriction visible
5277 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5279 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
5280 in-parameters when type of the generic formal is private in the generic
5281 spec and non-private in the body.
5283 2011-08-02 Claire Dross <dross@adacore.com>
5285 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
5286 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
5287 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
5288 * impunit.adb, Makefile.rtl: Take new files into account.
5290 2011-08-02 Robert Dewar <dewar@adacore.com>
5292 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
5293 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
5295 2011-08-02 Yannick Moy <moy@adacore.com>
5297 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
5299 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
5300 matching static array bounds, taking into account the special case of
5302 * sem_ch3.adb: Typo in comment.
5304 2011-08-02 Yannick Moy <moy@adacore.com>
5306 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
5307 which issues an error in formal mode if its argument node is originally
5309 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
5310 has a discriminant specification so that it does not include the case
5312 (Derived_Type_Declaration): move here the test that a derived type has a
5313 discriminant specification
5314 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
5315 first element of a component association before accessing its choices
5316 (presence of component association is not enough)
5317 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
5318 declaration is a library item before accessing the next element in a
5319 list, as library items are not member of lists
5320 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
5321 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
5322 Check_Formal_Restriction whenever possible.
5324 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5326 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
5327 reference when needed.
5329 2011-08-02 Bob Duff <duff@adacore.com>
5331 * gnat_ugn.texi: Fix typo.
5333 2011-08-02 Vincent Celier <celier@adacore.com>
5335 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
5336 archive file name. Do not use the full path name of archives for Open
5339 2011-08-02 Robert Dewar <dewar@adacore.com>
5341 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
5342 Analyze_Aspect_Specifications
5344 (Analyze_Aspect_Specifications): New handling for boolean aspects
5345 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
5346 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
5347 sequence for Analyze_Aspect_Specifications
5348 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
5349 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
5351 2011-08-02 Robert Dewar <dewar@adacore.com>
5353 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
5354 aspects, since these no longer exist.
5356 2011-08-02 Robert Dewar <dewar@adacore.com>
5358 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
5359 semicolon, do not try to see if there are aspects following it.
5360 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
5363 2011-08-02 Robert Dewar <dewar@adacore.com>
5365 * sem_ch8.adb, aspects.ads: Minor reformatting.
5367 2011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5369 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
5370 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
5372 (Analyze_Aspect_Specifications): ...here. Call above procedure.
5374 2011-08-02 Yannick Moy <moy@adacore.com>
5376 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
5377 mode on subprogram declaration outside of package specification, unless
5378 it is followed by a pragma Import
5379 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
5380 Access_Type_Declaration): issue error in formal mode on access type
5381 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
5383 (Analyze_Object_Declaration): issue error in formal mode on object
5384 declaration which does not respect SPARK restrictions
5385 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
5386 declaration which does not respect SPARK restrictions
5387 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
5388 error in formal mode on digits or delta constraint
5389 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
5390 decimal fixed point type
5391 (Derived_Type_Declaration): issue error in formal mode on derived type
5392 other than type extensions of tagged record types
5393 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
5394 with check on access definition
5395 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
5396 mode on protected definition.
5397 (Analyze_Task_Definition): issue error in formal mode on task definition
5399 2011-08-02 Robert Dewar <dewar@adacore.com>
5401 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
5403 2011-08-02 Javier Miranda <miranda@adacore.com>
5405 * sem_ch6.adb (Can_Override_Operator): New function.
5406 (Verify_Overriding_Indicator): Add missing code to check overriding
5407 indicator in operators. Fixes regression.
5408 (Check_Overriding_Indicator): Minor reformating after replacing the
5409 code that evaluates if the subprogram can override an operator by
5410 invocations to the above new function.
5412 (Write_Field26_Name): Add missing code to ensure that, following
5413 the documentation in einfo.ads, this field is not shown as attribute
5414 "Static_Initialization" on non-dispatching functions.
5416 2011-08-02 Jose Ruiz <ruiz@adacore.com>
5418 * sem_res.adb (Resolve_Call): A call to
5419 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
5420 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
5421 i.e., when the second parameter is of type Time_Span.
5423 2011-08-02 Vincent Celier <celier@adacore.com>
5425 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
5426 with an archive instead of -L<library dir> -l<library name>.
5428 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5430 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
5431 mark the base types In_Use in addition to making the operations
5434 2011-08-02 Ed Falis <falis@adacore.com>
5436 * init.c: add and setup __gnat_signal_mask for the exception signals
5437 * s-inmaop-vxworks.adb: new file.
5438 * s-intman-vxworks.adb: remove unnecessary initializations and
5440 * s-intman-vxworks.ads: remove unnecessary variable
5441 * s-taprop-vxworks.adb: simplify signal initialization
5443 2011-08-02 Robert Dewar <dewar@adacore.com>
5445 * sem_ch8.adb: Minor code reorganization, comment updates.
5447 2011-08-02 Robert Dewar <dewar@adacore.com>
5449 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
5450 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
5452 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
5453 (Matching_Static_Array_Bounds): Moved here from Sem_Res
5455 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5457 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
5458 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
5459 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
5460 use_type_clauses, to handle more efficiently use_type and use_all_type
5462 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
5463 Ada2012 Use_All_Type clause.
5464 (Use_Class_Wide_Operations): new procedure.
5466 2011-08-02 Robert Dewar <dewar@adacore.com>
5468 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
5469 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
5470 expression to expression function.
5472 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5474 * sem_ch4.adb: transform simple Ada2012 membership into equality only
5475 if types are compatible.
5477 2011-08-02 Yannick Moy <moy@adacore.com>
5479 * sem_res.adb (Matching_Static_Array_Bounds): new function which
5480 returns True if its argument array types have same dimension and same
5481 static bounds at each index.
5482 (Resolve_Actuals): issue an error in formal mode on actuals passed as
5483 OUT or IN OUT paramaters which are not view conversions in SPARK.
5484 (Resolve_Arithmetic_Op): issue an error in formal mode on
5485 multiplication or division with operands of fixed point types which are
5486 not qualified or explicitly converted.
5487 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
5488 Boolean or array type (except String) operands.
5489 (Resolve_Equality_Op): issue an error in formal mode on equality
5490 operators for array types other than String with non-matching static
5492 (Resolve_Logical_Op): issue an error in formal mode on logical operators
5493 for array types with non-matching static bounds. Factorize the code in
5494 Matching_Static_Array_Bounds.
5495 (Resolve_Qualified_Expression): issue an error in formal mode on
5496 qualified expressions for array types with non-matching static bounds.
5497 (Resolve_Type_Conversion): issue an error in formal mode on type
5498 conversion for array types with non-matching static bounds
5500 2011-08-02 Robert Dewar <dewar@adacore.com>
5502 * par-ch10.adb: Minor code reorganization (use Nkind_In).
5504 2011-08-02 Ed Schonberg <schonberg@adacore.com>
5506 * par-ch9.adb: save location of entry for proper error message.
5508 2011-08-02 Javier Miranda <miranda@adacore.com>
5510 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
5511 (Use_Full_View) which permits this routine to climb through the
5512 ancestors using the full-view of private parents.
5513 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
5514 Use_Full_View to true in calls to Is_Ancestor.
5515 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
5516 true in call to Is_Ancestor.
5517 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
5518 Use_Full_View to true in call to Is_Ancestor.
5519 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
5520 call to Is_Ancestor.
5521 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
5522 Use_Full_View to true in calls to Is_Ancestor.
5523 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
5524 Make_Select_Specific_Data_Table, Register_Primitive,
5525 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
5526 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
5527 to true in call to Is_Ancestor.
5528 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
5529 Use_Full_View to true in calls to Is_Ancestor.
5531 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
5532 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
5534 2011-08-02 Robert Dewar <dewar@adacore.com>
5536 * gnat_rm.texi: Minor reformatting.
5537 * sem_prag.adb: Minor reformatting.
5539 2011-08-02 Tristan Gingold <gingold@adacore.com>
5541 * vms_data.ads: Add VMS qualifier for -gnateP.
5543 2011-08-02 Robert Dewar <dewar@adacore.com>
5545 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
5546 * par-ch7.adb (P_Package): Proper placement of aspects for package
5548 * par-endh.adb (Check_End): Ad Is_Sloc parameter
5549 (End_Statements): Add Is_Sloc parameterr
5550 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
5551 (Check_End): Ad Is_Sloc parameter
5552 (End_Statements): Add Is_Sloc parameterr
5554 2011-08-02 Vincent Celier <celier@adacore.com>
5556 * ug_words: Add VMS qualifier equivalent to -gnateP:
5557 /SYMBOL_PREPROCESSING.
5559 2011-08-02 Jose Ruiz <ruiz@adacore.com>
5561 * gnat-style.texi: For hexadecimal numeric literals the typical
5562 grouping of digits is 4 to represent 2 bytes.
5563 A procedure spec which is split into several lines is indented two
5566 2011-08-02 Yannick Moy <moy@adacore.com>
5568 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
5569 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
5570 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
5572 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
5573 choice in array aggregate
5574 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
5576 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
5577 positional and named aggregate for record, or others in record
5578 aggregate, or multiple choice in record aggregate
5579 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
5580 array operands to logical operations AND, OR and XOR do not have the
5581 same static lower and higher bounds
5582 * sem_ch5.adb, sinfo.ads: Correct typos in comments
5584 2011-08-01 Robert Dewar <dewar@adacore.com>
5586 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
5587 Replaces Last_Source_Node_In_Sequence.
5588 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
5589 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
5590 parens and blank in string (this was inconsistently implemented).
5592 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
5593 blank in string (this was inconsistently implemented).
5595 (Set_Global_Switches): Set formal mode switches appropriately
5596 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
5598 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
5599 call Set_Error_Msg_Lang to set "spark" as language name.
5600 * par.adb: Remove unnecessary call to set formal language for errout
5601 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
5602 appropriately and call Set_Error_Msg_Lang to set "spark" as language
5604 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
5605 calls to it, moved after resolution so that types are known
5606 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
5607 result of concatenation is not of type String
5608 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
5609 concatenation is not properly restricted
5610 * gnat_rm.texi: Add doc on pragma Spark_95.
5611 * gcc-interface/Makefile.in: Remove obsolete target pairs for
5612 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
5613 * gcc-interface/Make-lang.in: Update dependencies.
5615 2011-08-01 Javier Miranda <miranda@adacore.com>
5617 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
5618 condition that detects if the overridden operation must replace an
5621 2011-08-01 Javier Miranda <miranda@adacore.com>
5623 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
5624 code declarations inserted by Insert_Actions in each alternative of the
5625 N_Case_Expression node.
5627 2011-08-01 Robert Dewar <dewar@adacore.com>
5629 * sem_ch6.adb: Minor code reorganization.
5630 * sem_util.adb: Minor reformatting.
5632 2011-08-01 Pascal Obry <obry@adacore.com>
5634 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
5635 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
5637 2011-08-01 Yannick Moy <moy@adacore.com>
5639 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
5640 literal or operator symbol which is prefixed
5641 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
5642 mode on access attributes.
5643 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
5644 that concatenation operands are properly restricted in formal mode
5645 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
5646 Analyze_Concatenation_Operand. Issue an error in formal mode if the
5647 result of the concatenation has a type different from String.
5648 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
5649 Analyze_Quantified_Expression, Analyze_Slice,
5650 Analyze_Null): issue an error in formal mode on unsupported constructs
5652 (Analyze_Block_Statement): only issue error on source block statement
5653 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
5654 function which returns the last node in a list of nodes for which
5655 Comes_From_Source returns True, if any
5656 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
5657 Last_Source_Node_In_Sequence
5658 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
5659 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
5660 mode on unsupported constructs
5661 * sem_ch9.adb Do not return after issuing error in formal mode, as the
5662 rest of the actions may be needed later on since the error is marked as
5664 * sinfo.ads: Typos in comments.
5666 2011-08-01 Pascal Obry <obry@adacore.com>
5668 * projects.texi: Minor editing.
5670 2011-08-01 Yannick Moy <moy@adacore.com>
5672 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
5673 insertion character ~~
5674 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
5675 (Set_Error_Msg_Lang): new procedure which fixes the language for use
5676 with insertion character ~~
5677 (Set_Msg_Text): treat insertion character ~~
5678 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
5679 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
5680 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
5681 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
5682 errors related to the formal language restriction not serious
5683 (insertion character |).
5684 * par.adb (Par): set formal language for error messages if needed
5685 * sem_ch6.adb (Check_Missing_Return): take into account possible
5686 generated statements at the end of the function
5687 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
5688 enumeration value to define a new pragma SPARK_95
5689 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
5690 SPARK_Version): new type and variables to store the SPARK version
5692 (SPARK_Mode): return True when SPARK_Version is set
5693 * par-prag.adb: Correct indentation
5694 (Prag): take Pragma_SPARK_95 into account
5695 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
5698 2011-08-01 Robert Dewar <dewar@adacore.com>
5700 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
5701 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
5702 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
5704 2011-08-01 Pascal Obry <obry@adacore.com>
5706 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
5707 Target_Name to Get_Path call.
5708 (Parse_Single_Project): Likewise.
5709 (Post_Parse_Context_Clause): Likewise.
5710 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
5711 Call Initialise_Project_Path with the proper Target_Name.
5712 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
5714 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
5715 with the proper Target_Name.
5716 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
5718 (Parse_Project_And_Apply_Config): Likewise.
5719 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
5720 This is fine as this part of the code is supporting only native
5722 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
5723 is fine as this part of the code is supporting only native compilation.
5725 2011-08-01 Yannick Moy <moy@adacore.com>
5727 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
5728 of homonym, unless the homonym is one of the cases allowed in SPARK
5729 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
5730 package declaration occurring after a body.
5732 2011-08-01 Robert Dewar <dewar@adacore.com>
5734 * checks.adb, exp_ch4.adb: Minor reformatting.
5736 2011-08-01 Javier Miranda <miranda@adacore.com>
5738 * einfo.ads (Access_Disp_Table): Fix documentation.
5739 (Dispatch_Table_Wrappers): Fix documentation.
5741 2011-08-01 Pascal Obry <obry@adacore.com>
5743 * prj-env.adb, prj-env.ads: Minor reformatting.
5745 2011-08-01 Yannick Moy <moy@adacore.com>
5747 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
5748 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
5749 procedures out of these packages.
5750 * errout.ads, errout.adb
5751 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
5752 procedures in of this package
5753 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
5754 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
5755 on misplaced later vs initial declarations, like in Ada 83
5756 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
5757 formal mode on attribute of private type whose full type declaration
5759 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
5760 package declaration inside a package specification
5761 (Analyze_Full_Type_Declaration): issue error in formal mode on
5762 controlled type or discriminant type
5763 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
5764 user-defined operator means that it should come from the source
5765 (New_Overloaded_Entity): issue error in formal mode on overloaded
5767 * sem_ch6.ads, sem_ch13.ads: typos in comments.
5769 2011-08-01 Thomas Quinot <quinot@adacore.com>
5771 * atree.adb: Minor reformatting.
5772 * checks.adb: Minor reformatting.
5774 2011-08-01 Vincent Celier <celier@adacore.com>
5776 * s-parame-vms-ia64.ads: Fix typo in comment
5778 * s-parame-vms-restrict.ads: Removed, unused.
5780 2011-08-01 Javier Miranda <miranda@adacore.com>
5783 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
5785 (Constrain_Index): Remove side effects in the evaluation of the bounds.
5786 * sem_ch3.ads, sem_ch3.adb
5787 (Is_Constant_Bound): New extended version of the subprogram that was
5788 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
5789 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
5790 * sem_aux.ads (Constant_Value): Fix typo in comment.
5791 * checks.adb (Generate_Index_Checks): New implementation which, for
5792 array objects with constant bounds, generates the runtime check
5793 referencing the bounds of the array type. For other cases this routine
5794 provides its previous behavior obtaining such values from the array
5796 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
5798 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
5799 we cannot have semantic interpretations of the new node.
5801 2011-08-01 Ed Schonberg <schonberg@adacore.com>
5803 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
5806 2011-08-01 Arnaud Charlet <charlet@adacore.com>
5808 * sem_ch8.adb: Minor code editing.
5809 * s-vxwext.adb: Remove trailing space.
5810 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
5811 consistency with other files.
5813 2011-08-01 Thomas Quinot <quinot@adacore.com>
5815 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
5817 2011-08-01 Ed Schonberg <schonberg@adacore.com>
5819 * par-ch10.adb: reject parameterized expressions as compilation unit.
5820 * sem_ch4.adb: handle properly conditional expression with overloaded
5821 then_clause and no else_clause.
5823 2011-08-01 Tristan Gingold <gingold@adacore.com>
5825 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
5826 like done by System.Aux_DEC.
5827 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
5829 2011-08-01 Yannick Moy <moy@adacore.com>
5831 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
5832 missing label at end of declaration (subprogram or package)
5833 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
5834 of positional and named parameter association
5835 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
5836 Error_Msg_SP which adds a prefix to the error message giving the name
5837 of the formal language analyzed
5838 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
5839 access result type in subprogram, unconstrained array as result type,.
5840 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
5842 * sem_ch8.adb: Code clean up.
5844 2011-08-01 Javier Miranda <miranda@adacore.com>
5846 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
5847 * einfo.ads (Access_Disp_Table): Fix documentation.
5848 (Dispatch_Table_Wrappers): Fix documentation.
5849 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
5850 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
5851 to enforce the documentation of this attribute.
5852 (Set_Is_Interface): Cleanup the assertion.
5853 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
5854 the Underlying_Type entity before reading attribute Access_Disp_Table.
5855 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
5856 Locate the Underlying_Type before reading attribute Access_Disp_Table.
5857 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
5858 the Underlying_Type entity before reading attribute Access_Disp_Table.
5859 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
5860 Locate the Underlying_Type entity before reading attribute
5863 2011-08-01 Ed Schonberg <schonberg@adacore.com>
5865 * s-poosiz.ads: Additional overriding indicators.
5867 2011-08-01 Yannick Moy <moy@adacore.com>
5869 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
5871 (Analyze_Iteration_Scheme): issue error in formal mode when loop
5872 parameter specification does not include a subtype mark.
5873 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
5874 formal mode on abstract subprogram.
5875 (Analyze_Subprogram_Specification): issue error in formal mode on
5876 user-defined operator.
5877 (Process_Formals): issue error in formal mode on access parameter and
5879 * sem_ch9.adb (Analyze_Abort_Statement,
5880 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
5881 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
5882 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
5883 Analyze_Requeue, Analyze_Selective_Accept,
5884 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
5885 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
5886 issue error in formal mode on user-defined raise statement.
5888 2011-08-01 Thomas Quinot <quinot@adacore.com>
5890 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
5891 declaration being hidden when overriding an implicit inherited
5893 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
5894 (-gnats), do not complain about a source file that contains only a
5897 2011-08-01 Ed Schonberg <schonberg@adacore.com>
5899 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
5900 variable if already set.
5902 2011-08-01 Arnaud Charlet <charlet@adacore.com>
5904 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
5905 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
5906 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
5907 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
5908 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
5909 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
5910 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
5911 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
5912 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
5913 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
5914 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
5915 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
5916 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
5917 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
5918 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
5919 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
5920 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
5921 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
5922 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
5923 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
5924 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
5925 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
5926 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
5927 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
5928 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
5929 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
5930 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
5931 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
5932 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
5933 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
5934 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
5935 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
5936 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
5937 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
5938 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
5939 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
5940 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
5941 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
5942 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
5943 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
5944 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
5945 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
5946 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
5947 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
5948 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
5949 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
5950 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
5951 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
5952 s-osinte-mingw.ads: Update to GPLv3 run-time license.
5953 Use GNAT instead of GNARL.
5955 2011-08-01 Bob Duff <duff@adacore.com>
5957 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
5958 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
5959 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
5962 2011-08-01 Yannick Moy <moy@adacore.com>
5964 * debug.adb (d.D) reverve flag for the SPARK mode
5965 (d.E) reverve flag for SPARK generation mode
5966 (d.F) reverve flag for Why generation mode
5967 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
5968 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
5969 functions which return True when the corresponding modes are set
5970 (Formal_Language): return "spark" or "alfa" when in formal verification
5972 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
5973 Error_Msg to prefix the error message with a tag giving the formal
5975 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
5976 message with a tag giving the formal language
5977 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
5979 (Analyze_Case_Statement): issue error in formal mode on case statement
5980 with a single "others" case alternative
5981 (Analyze_Exit_Statement): issue errors in formal mode on exit
5982 statements which do not respect SPARK restrictions
5983 (Analyze_Goto_Statement): issue error in formal mode on goto statement
5984 (Check_Unreachable_Code): always issue an error (not a warning) in
5985 formal mode on unreachable code (concerns both code after an infinite
5986 loop and after an unconditional jump, both not allowed in SPARK)
5987 * sem_ch6.adb (Analyze_Return_Statement): add call to
5988 Set_Return_Present for a procedure containing a return statement
5989 (already done for functions in Analyze_Function_Return)
5990 (Analyze_Function_Return): issue error in formal mode on extended
5991 return or if return is not last statement in function
5992 (Check_Missing_Return): issue error in formal mode if function does
5993 not end with return or if procedure contains a return
5994 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
5995 function to detect if there is an inner scope of its parameter S which
5998 2011-08-01 Thomas Quinot <quinot@adacore.com>
6000 * sem_ch6.ads: Minor reformatting.
6002 2011-08-01 Javier Miranda <miranda@adacore.com>
6004 * sem_util.adb (Abstract_Interface_List): Complete condition when
6005 processing private type declarations to avoid reading unavailable
6007 (Is_Synchronized_Tagged_Type): Complete condition when processing
6008 private extension declaration nodes to avoid reading unavailable
6011 2011-08-01 Thomas Quinot <quinot@adacore.com>
6013 * sem_ch3.adb: Minor reformatting.
6015 2011-08-01 Thomas Quinot <quinot@adacore.com>
6017 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
6018 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
6019 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
6020 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
6021 for VMS, instead parametrize the common implementation with
6022 System.Parameters declarations.
6024 2011-08-01 Eric Botcazou <ebotcazou@adacore.com>
6026 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
6028 2011-08-01 Tristan Gingold <gingold@adacore.com>
6030 * seh_init.c: Fix SEH handler installation on win64.
6032 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6034 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
6035 double analysis of an anonymous access to subprogram, because it can
6036 lead to improper sharing of profiles and a back-end crash.
6038 2011-08-01 Robert Dewar <dewar@adacore.com>
6040 * make.adb, sem_ch4.adb: Minor reformatting.
6041 * gcc-interface/Make-lang.in: Update dependencies.
6042 * sem_util.adb, exp_ch5.adb: Minor reformatting.
6044 2011-08-01 Arnaud Charlet <charlet@adacore.com>
6046 * gnat_rm.texi: Fix definition of Long_Integer.
6048 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6050 * exp_aggr.adb: check limit size of static aggregate unconditionally,
6051 to prevent storage exhaustion.
6052 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
6053 finalized is a function body, insert the cleanup code before the final
6054 return statement, to prevent spurious warnings.
6055 * s-pooglo.ads: add overriding indicator.
6057 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6059 * sem_ch4.adb (Operator_Check): improve error message when both a
6060 with_clause and a use_clause are needed to make operator usage legal.
6061 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
6062 determine whether a compilation unit is visible within an other,
6063 either through a with_clause in the current unit, or a with_clause in
6064 its library unit or one one of its parents.
6066 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6068 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
6069 over an arbitrary expression of an array or container type.
6070 * lib-xref.adb: clarify comment.
6072 2011-08-01 Bob Duff <duff@adacore.com>
6074 * einfo.ads: Minor reformatting.
6075 * debug.adb: Minor comment improvement.
6077 2011-08-01 Javier Miranda <miranda@adacore.com>
6079 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
6080 consider hidden subprograms as valid candidates.
6082 2011-08-01 Arnaud Charlet <charlet@adacore.com>
6084 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
6086 2011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
6088 * gnat_ugn.texi: Fix typo.
6090 2011-08-01 Robert Dewar <dewar@adacore.com>
6092 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
6093 lib-xref.adb: Minor reformatting
6095 2011-08-01 Gary Dismukes <dismukes@adacore.com>
6097 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
6098 when to generate a call to Move_Final_List.
6099 (Has_Controlled_Parts): Remove this function.
6101 2011-08-01 Geert Bosch <bosch@adacore.com>
6103 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
6106 2011-08-01 Thomas Quinot <quinot@adacore.com>
6108 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
6109 explicit raise of a predefined exception as Comes_From_Source if the
6110 original N_Raise_Statement comes from source.
6112 2011-08-01 Robert Dewar <dewar@adacore.com>
6114 * sinfo.ads: Add comment.
6115 * sem_ch6.adb: Minor reformatting.
6117 2011-08-01 Robert Dewar <dewar@adacore.com>
6119 * freeze.adb (Freeze_Entity): Refine check for bad component size
6120 clause to avoid rejecting confirming clause when atomic/aliased present.
6122 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6124 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
6125 better determine whether an entity reference is a write.
6126 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
6128 * lib-xref.adb (Output_References): Do no suppress a read reference at
6129 the same location as an immediately preceeding modify-reference, to
6130 handle properly in-out actuals.
6132 2011-08-01 Tristan Gingold <gingold@adacore.com>
6134 * env.c (__gnat_setenv) [VMS]: Refine previous change.
6136 2011-08-01 Quentin Ochem <ochem@adacore.com>
6138 * i-cstrin.adb (New_String): Changed implementation, now uses only the
6139 heap to compute the result.
6141 2011-08-01 Robert Dewar <dewar@adacore.com>
6143 * atree.ads: Minor reformatting.
6145 2011-08-01 Emmanuel Briot <briot@adacore.com>
6147 * g-expect.adb (Get_Command_Output): Fix memory leak.
6149 2011-08-01 Geert Bosch <bosch@adacore.com>
6151 * cstand.adb (P_Float_Type): New procedure to print the definition of
6152 predefined fpt types.
6153 (P_Mixed_Name): New procedure to print a name using mixed case
6154 (Print_Standard): Use P_Float_Type for printing floating point types
6155 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
6156 precision IEEE float.
6158 2011-08-01 Thomas Quinot <quinot@adacore.com>
6160 * sem_ch3.adb: Minor reformatting.
6162 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6164 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
6165 the completion of a generic function, insert the new body rather than
6166 rewriting the original.
6168 2011-08-01 Yannick Moy <moy@adacore.com>
6170 * sinfo.ads, errout.ads: Typos in comments.
6172 2011-08-01 Robert Dewar <dewar@adacore.com>
6174 * par-endh.adb: Minor reformatting.
6176 2011-08-01 Robert Dewar <dewar@adacore.com>
6178 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
6179 (Pre_Post_Aspects): New subtype.
6180 * par-ch12.adb (P_Generic): New syntax for aspects in packages
6181 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
6182 * par-ch7.adb (P_Package): Remove Decl parameter
6183 (P_Package): Handle new syntax for aspects (before IS)
6184 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
6186 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
6187 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
6188 (P_Package): Remove Decl parameter
6189 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
6191 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
6193 * sem_util.ads, sem_util.adb (Static_Boolean): New function
6194 * sinfo.ads: Document new syntax for aspects in packages etc.
6195 * sprint.adb: Handle new syntax of aspects before IS in package
6197 2011-08-01 Thomas Quinot <quinot@adacore.com>
6199 * atree.ads: Minor reformatting.
6200 * sem_prag.adb: Minor reformatting.
6202 2011-08-01 Robert Dewar <dewar@adacore.com>
6204 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
6205 case expr alternative.
6207 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6209 * sem_ch12.adb: Fix typo.
6211 2011-08-01 Geert Bosch <bosch@adacore.com>
6213 * sem_prag.adb (Check_No_Link_Name): New procedure.
6214 (Process_Import_Or_Interface): Use Check_No_Link_Name.
6215 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
6216 instead of Standard_Long_Long_Float_Size global. Preparation for
6217 eventual removal of per type constants.
6218 * exp_util.ads (Get_Stream_Size): New function returning the stream
6219 size value of subtype E.
6220 * exp_util.adb (Get_Stream_Size): Implement new function.
6221 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
6223 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
6225 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
6227 2011-08-01 Geert Bosch <bosch@adacore.com>
6229 * cstand.adb: Fix comments.
6230 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
6233 2011-08-01 Robert Dewar <dewar@adacore.com>
6235 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
6237 2011-08-01 Geert Bosch <bosch@adacore.com>
6239 * atree.ads: Fix comment.
6241 2011-08-01 Robert Dewar <dewar@adacore.com>
6243 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
6244 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
6245 * par.adb: Add with for Namet.Sp.
6246 * par-tchk.adb: Minor reformatting.
6248 2011-08-01 Vincent Celier <celier@adacore.com>
6250 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
6251 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
6252 of the init procedure of a SAL.
6253 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
6256 2011-08-01 Thomas Quinot <quinot@adacore.com>
6258 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
6261 2011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6263 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
6265 2011-08-01 Thomas Quinot <quinot@adacore.com>
6267 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
6268 conformant with its spec (return True only for types that have
6269 an overriding Initialize primitive operation that prevents them from
6270 having preelaborable initialization).
6271 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
6272 initialization for controlled types in Ada 2005 or later mode.
6274 2011-08-01 Robert Dewar <dewar@adacore.com>
6276 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
6278 (Same_Aspect): New function.
6279 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
6280 Type_Invariant, Precondition, Postcondition.
6281 * snames.ads-tmpl: Add Name_Type_Invariant.
6283 2011-08-01 Robert Dewar <dewar@adacore.com>
6285 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
6287 (Freeze_All_Ent): Fix error in handling inherited aspects.
6288 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
6289 already analyzed, but don't skip entire processing of a declaration,
6290 that's wrong in some cases of declarations being rewritten.
6291 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
6292 Don't delay for integer, string literals
6293 Treat predicates in usual manner for delay, remove special case code,
6295 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
6296 (Build_Predicate_Function): Update saved expression in aspect
6297 (Build_Invariant_Procedure): Update saved expression in aspect
6298 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
6299 of replacement of discriminant references if the reference is simple.
6301 2011-08-01 Robert Dewar <dewar@adacore.com>
6303 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
6304 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
6305 Static_Predicate and Dynamic_Predicate.
6306 (Build_Predicate_Function): Add processing for Static_Predicate
6307 and Dynamic_Predicate.
6308 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
6309 (From_Static_Predicate): New flag
6310 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
6312 2011-08-01 Robert Dewar <dewar@adacore.com>
6314 * usage.adb: Documentation cleanup for Ada version modes in usage.
6315 * expander.adb: Minor reformatting.
6317 2011-08-01 Robert Dewar <dewar@adacore.com>
6319 * atree.ads: Minor comment fix.
6320 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
6321 a-witeio.ads, sem_prag.adb: Minor reformatting.
6323 2011-08-01 Doug Rupp <rupp@adacore.com>
6325 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
6326 pointers. Use descrip.h header file for convenience. Add some
6329 2011-08-01 Robert Dewar <dewar@adacore.com>
6331 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
6332 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
6333 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
6335 (Check_Aspect_At_End_Of_Declarations): New procedure
6336 (Analye_Aspect_Specification): Minor changes for above procedures
6337 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
6338 specification node as well.
6340 2011-08-01 Pascal Obry <obry@adacore.com>
6342 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
6343 Windows files. Use GetFilesAttributes() in this case to check for file
6344 existence instead of returning with an error code.
6346 2011-08-01 Vincent Celier <celier@adacore.com>
6348 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
6349 High is above Source length.
6351 2011-08-01 Robert Dewar <dewar@adacore.com>
6353 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
6355 2011-08-01 Robert Dewar <dewar@adacore.com>
6357 * aspects.ads (Boolean_Aspects): New subtype.
6358 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
6359 for derived types in cases where the parent type and derived type have
6361 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
6362 with aspects when parent type also has aspects.
6363 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
6364 boolean expression at this point).
6365 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
6366 accordance with final decision on the Ada 2012 feature.
6367 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
6369 2011-08-01 Matthew Heaney <heaney@adacore.com>
6371 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
6373 2011-08-01 Pascal Obry <obry@adacore.com>
6375 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
6376 Fix Replace_Slice when High is above current string size.
6377 (Replace_Slice): Fix DL computation when High is above current
6380 2011-08-01 Gary Dismukes <dismukes@adacore.com>
6382 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
6384 2011-08-01 Matthew Heaney <heaney@adacore.com>
6386 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
6389 2011-08-01 Pascal Obry <obry@adacore.com>
6391 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
6394 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6396 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
6397 access to protected subprograms in generic bodies.
6398 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
6399 protected type, indicate that the convention of the subprogram is
6400 Convention_Protected, because it may be used in subsequent declarations
6401 within the protected declaration.
6403 2011-08-01 Vincent Celier <celier@adacore.com>
6405 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
6406 and "final" procedures when the name of the library is "ada", to avoid
6407 duplicate symbols "adainit" and "adafinal" in executables.
6409 2011-08-01 Ed Schonberg <schonberg@adacore.com>
6411 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
6412 quantified expression that appears within a postcondition and uses the
6413 Ada2012 'Result attribute.
6415 2011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6417 * init.c (__gnat_error_handler): Cast reason to int.
6418 (__gnat_install_handler): Explain sa_sigaction use.
6420 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
6422 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
6423 subprogram has copy-in copy-out parameters, try to promote the mode of
6424 the return type if it is passed in registers.
6426 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
6428 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
6429 left operand as addressable.
6431 2011-07-24 Eric Botcazou <ebotcazou@adacore.com>
6433 * gcc-interface/gigi.h (build_function_stub): Remove.
6434 (build_return_expr): Likewise.
6435 (convert_vms_descriptor): Declare.
6436 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
6437 (build_function_stub): Move to...
6438 * gcc-interface/utils2.c (build_return_expr): Move to...
6439 * gcc-interface/trans.c (build_function_stub): ...here.
6440 (build_return_expr): ...here.
6441 (Subprogram_Body_to_gnu): Add local variable for language_function.
6442 Disconnect the parameter attributes cache, if any, once done with it.
6443 Call end_subprog_body only after setting the end_locus.
6444 Build the stub associated with the function, if any, at the very end.
6445 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
6446 variables and streamline control flow.
6448 2011-07-23 Arnaud Charlet <charlet@adacore.com>
6451 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
6454 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6457 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
6458 Assign to act.sa_sigaction.
6459 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
6460 current->return_address to char * before arithmetic.
6462 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6464 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
6465 Correct argument types.
6466 Extract code from reason.
6467 (__gnat_install_handler): Assign to act.sa_sigaction.
6469 2011-07-21 Eric Botcazou <ebotcazou@adacore.com>
6471 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
6472 (GNAT1_OBJS): ...here.
6474 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
6477 * g-socthi-mingw.adb (Fill): Fix formatting.
6479 * gcc-interface/gigi.h: Move around comment.
6481 2011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6484 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
6486 2011-07-14 Florian Weimer <fw@deneb.enyo.de>
6489 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
6491 2011-07-13 Eric Botcazou <ebotcazou@adacore.com>
6493 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
6494 range comparison if Pmode is SImode.
6496 2011-07-12 Laurent GUERBY <laurent@guerby.net>
6497 Eric Botcazou <ebotcazou@adacore.com>
6499 * adadecode.c: Wrap up in extern "C" block.
6500 * adadecode.h: Likewise.
6501 * adaint.c: Likewise. Remove 'const' keyword.
6502 * adaint.h: Likewise.
6504 * atree.h: Likewise.
6506 * cstreams.c: Likewise.
6510 * final.c: Likewise.
6512 * initialize.c: Likewise.
6514 * namet.h: Likewise.
6515 * nlists.h: Likewise.
6516 * raise.c: Likewise.
6517 * raise.h: Likewise.
6518 * repinfo.h: Likewise.
6519 * seh_init.c: Likewise.
6520 * targext.c: Likewise.
6521 * tracebak.c: Likewise.
6522 * uintp.h: Likewise.
6523 * urealp.h: Likewise.
6524 * xeinfo.adb: Wrap up generated C code in extern "C" block.
6525 * xsinfo.adb: Likewise.
6526 * xsnamest.adb: Likewise.
6527 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
6528 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
6529 * gcc-interface/misc.c: Likewise.
6530 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
6531 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
6532 ada/targext.o here...
6533 (GNAT_ADA_OBJS): ...and not here.
6534 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
6535 (GNATBIND_OBJS): Reorder.
6537 2011-07-07 Richard Henderson <rth@redhat.com>
6539 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
6540 dwarf2out_frame_init.
6542 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
6544 * gcc-interface/misc.c (gnat_init): Tweak previous change.
6546 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6549 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
6551 2011-07-06 Richard Guenther <rguenther@suse.de>
6553 * gcc-interface/misc.c (gnat_init): Merge calls to
6554 build_common_tree_nodes and build_common_tree_nodes_2.
6555 Re-initialize boolean_false_node.
6557 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
6558 Olivier Hainque <hainque@adacore.com>
6559 Nicolas Setton <setton@adacore.com>
6561 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
6562 the type according to the ARTIFICIAL_P parameter.
6563 (create_type_decl): Likewise.
6564 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
6566 2011-07-01 Eric Botcazou <ebotcazou@adacore.com>
6568 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
6569 (gnatbind): Likewise.
6571 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6573 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
6575 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6577 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
6578 local variable throughout. Remove useless call to Base_Type.
6579 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
6580 Take it also into account for the volatileness of the field. Set the
6581 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
6583 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6585 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
6586 on a dereference built for a by-ref object if it has an address clause.
6588 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6590 * einfo.ads (Address_Taken): Document use for the second argument of
6591 Asm_Input and Asm_Output attributes.
6592 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
6593 argument is an entity name, then set Address_Taken on it.
6594 <Attribute_Asm_Output>: Likewise.
6595 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
6596 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
6597 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
6598 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
6600 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
6603 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
6605 2011-06-14 Joseph Myers <joseph@codesourcery.com>
6607 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
6608 (ada/utils.o): Update dependencies.
6609 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
6610 ../../../libcpp/libcpp.a.
6611 * gcc-interface/utils.c: Include common/common-target.h.
6612 (process_attributes): Use targetm_common.have_named_sections.
6614 2011-06-07 Richard Guenther <rguenther@suse.de>
6616 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
6619 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
6621 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
6622 TREE_THIS_NOTRAP flag.
6624 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
6626 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
6629 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
6631 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
6632 constants whose full view has discriminants specially.
6634 2011-06-06 Eric Botcazou <ebotcazou@adacore.com>
6636 * gcc-interface/utils.c: Include diagnostic.h.
6637 (gnat_write_global_declarations): Output debug information for all
6638 global type declarations before finalizing the compilation unit.
6639 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
6641 2011-05-25 Jakub Jelinek <jakub@redhat.com>
6643 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
6645 2011-05-25 Kai Tietz <ktietz@redhat.com>
6647 * adaint.c (__gnat_to_canonical_file_list_next): Use array
6648 initialization instead of const/none-const pointer assignment.
6650 2011-05-24 Joseph Myers <joseph@codesourcery.com>
6652 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
6653 $(EXTRA_GNAT1_OBJS).
6654 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
6655 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
6656 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
6657 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
6658 libcommon-target.a instead of prefix.o.
6660 2011-05-21 Joseph Myers <joseph@codesourcery.com>
6663 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
6665 2011-05-20 Joseph Myers <joseph@codesourcery.com>
6667 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
6668 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
6669 instead of version.o.
6671 2011-05-18 Kai Tietz <ktietz@redhat.com>
6673 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
6674 boolean_false_node instead of integer_zero_node.
6675 (convert_with_check): Likewise.
6676 * gcc-interface/decl.c (choices_to_gnu): Likewise.
6678 2011-05-12 Eric Botcazou <ebotcazou@adacore.com>
6680 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
6681 type of the parameter is an unconstrained array, convert the actual to
6682 the type of the formal in the In Out and Out cases as well.
6684 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
6686 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
6687 call build_function_type_array or build_varargs_function_type_array
6689 (create_subprog_type): Don't call build_function_type; call
6690 build_function_type_vec instead.
6692 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
6694 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
6695 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
6696 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
6698 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
6700 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
6702 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
6703 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
6705 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
6707 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
6709 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
6711 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
6712 instead of accessing TYPE_ARG_TYPES directly.
6713 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
6715 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
6718 * gcc-interface/gigi.h (get_variant_part): Declare.
6719 * gcc-interface/decl.c (get_variant_part): Make global.
6720 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
6721 types have the same constant size, are record types and T1 has a
6722 variant part while T2 doesn't.
6724 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
6726 * gcc-interface/utils.c (begin_subprog_body): Do not call
6728 (end_subprog_body): Likewise.
6730 2011-05-04 Richard Guenther <rguenther@suse.de>
6732 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
6734 (pos_to_constructor): Likewise.
6736 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
6737 Eric Botcazou <ebotcazou@adacore.com>
6739 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
6740 of build_function_type. Adjust calls to...
6741 (build_raise_check): ...this. Do not take a void_tree parameter.
6742 Call build_function_type_list instead of build_function_type.
6743 Fix head comment and swap couple of conditional blocks.
6745 2011-04-30 Eric Botcazou <ebotcazou@adacore.com>
6747 * gnatvsn.ads (Library_Version): Bump to 4.7.
6748 (Current_Year): Bump to 2011.
6750 2011-04-29 Michael Matz <matz@suse.de>
6752 * gcc-interface/misc.c (gnat_handle_option): Set
6753 warn_maybe_uninitialized.
6755 2011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
6757 * gnat_ugn.texi (Complexity Metrics Control): Update link to
6758 the Watson/McCabe paper.
6760 2011-04-23 Jim Meyering <meyering@redhat.com>
6762 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
6764 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
6766 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
6769 2011-04-22 Eric Botcazou <ebotcazou@adacore.com>
6771 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
6773 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
6774 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
6775 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
6776 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
6777 <all>: Do not set flags on the reused DECL node coming from an alias.
6778 Set DECL_IGNORED_P on the DECL node built for subprograms if they
6779 don't need debug info here...
6780 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
6781 (gigi): Adjust calls to create_subprog_decl.
6782 (build_raise_check): Likewise.
6783 (establish_gnat_vms_condition_handler): Likewise.
6784 (Compilation_Unit_to_gnu): Likewise.
6785 (gnat_to_gnu): Likewise.
6787 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
6789 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
6790 (NO_REORDER_ADAFLAGS): New variable.
6791 (EXTRA_GNATTOOLS): Always define.
6792 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
6793 Clean up and adjust list of files compiled with special options.
6794 * gcc-interface/Make-lang.in: Likewise.
6795 (ada/decl.o): Cosmetical change.
6796 (ada/misc.o): Remove dependency on $(PLUGIN_H).
6798 2011-04-20 Jim Meyering <meyering@redhat.com>
6800 * initialize.c (__gnat_initialize): Remove useless if-before-free.
6802 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
6804 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
6805 $(CFLAGS) on the link line.
6807 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
6809 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
6810 padded type built for the return type if it is unconstrained.
6812 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
6814 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
6816 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
6818 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
6819 before calling TREE_CHAIN.
6820 * gcc-interface/misc.c (gnat_init_ts): New function.
6821 (LANG_HOOKS_INIT_TS): Define.
6823 2011-04-12 Martin Jambor <mjambor@suse.cz>
6825 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
6826 instead of cgraph_node.
6828 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
6830 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
6831 alignment on fields of the RETURN type built for the Copy-In Copy-Out
6834 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
6836 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
6837 of aggregate types that contain a placeholder.
6839 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
6841 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
6843 (handle_type_generic_attribute): Likewise.
6845 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
6848 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
6850 2011-04-04 Kai Tietz <ktietz@redhat.com>
6853 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
6856 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6858 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
6859 type case, do not strip a padding type around the array type.
6861 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6863 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
6866 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6868 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
6869 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
6870 code for -feliminate-unused-debug-types.
6871 (gnat_post_options): Likewise.
6873 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6875 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
6876 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
6879 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6881 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
6882 DECL_ARTIFICIAL flag on enumeration types.
6884 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6886 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
6887 fat pointer types artificial unconditionally.
6888 <E_Array_Subtype>: Attach the base array type as a parallel type if it
6891 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6893 * gcc-interface/gigi.h (get_dummy_type): Declare.
6894 (build_dummy_unc_pointer_types): Likewise.
6895 (finish_fat_pointer_type): Likewise.
6896 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
6897 fat pointer type has been built, complete it in place.
6898 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
6899 and thin pointers. Remove useless variable.
6900 (finish_fat_pointer_type): Make global and move to...
6901 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
6902 (get_dummy_type): New function.
6903 (build_dummy_unc_pointer_types): Likewise.
6904 (gnat_pushdecl): Propage the name to the anonymous variants only.
6905 (update_pointer_to): Only adjust the pointer types in the unconstrained
6908 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6910 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
6911 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
6912 if this is a Taft amendment type and the full declaration is available.
6913 * gcc-interface/trans.c (process_type): Likewise.
6914 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
6915 (process_freeze_entity): Likewise.
6916 * gcc-interface/utils.c (dummy_global): New static variable.
6917 (gnat_write_global_declarations): If there are types declared as used
6918 at the global level, insert them in the global hash table.
6920 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6922 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
6923 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
6924 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
6926 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
6927 flag of the type accordingly.
6928 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
6930 2011-04-02 Eric Botcazou <ebotcazou@adacore.com>
6932 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
6933 finalizing types when updating the pointers to the designated type.
6934 <all>: Finalize the deferred types even if we didn't defer processing
6935 of incomplete types in this invocation.
6937 2011-04-01 Olivier Hainque <hainque@adacore.com>
6938 Nicolas Setton <setton@adacore.com>
6939 Eric Botcazou <ebotcazou@adacore.com>
6941 * gcc-interface/misc.c (gnat_descriptive_type): New function.
6942 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
6944 2011-03-28 Kai Tietz <ktietz@redhat.com>
6946 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
6948 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
6949 * system-mingw.ads (System): Change ZCX_By_Default default to True.
6951 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
6953 2011-03-28 Tristan Gingold <gingold@adacore.com>
6956 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
6957 Use ada output of gnatbind.
6958 (ada/b_gnatb.adb): Ditto.
6959 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
6960 (ada.mostlyclean, ada.stage1)
6961 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
6962 (ada.stagefeedback): Adjust.
6963 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
6964 Use ada output of gnatbind.
6965 (b_gnatm.adb): Ditto.
6966 (b_gnatl.o, b_gnatm.o): New rules.
6968 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
6970 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
6971 for the padded type built to support a specified size or alignment.
6973 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
6975 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
6976 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
6977 unconditionally to the end of the unit when the designated type is
6979 <all>: Rename local variable. Attempt to un-defer types only and do it
6980 for limited_with'ed types as well.
6981 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
6982 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
6983 consistently and remove redundant call to finalize_from_with_types.
6985 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
6987 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
6988 subprograms without a previous spec declared in the same unit.
6989 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
6990 subprograms at the end of the unit instead of at the beginning.
6991 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
6992 isn't public for the special handling of non-inline functions nested
6993 inside inline external functions.
6995 2011-03-25 Jeff Law <law@redhat.com>
6997 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
6999 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7001 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
7002 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
7003 to compute Set_Size_Depends_On_Discriminant.
7004 (Layout_Type): Call it on array types in back-end layout mode.
7005 * sem_util.adb (Requires_Transient_Scope): Return true for array
7006 types only if the size depends on the value of discriminants.
7007 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
7008 type if the RHS is a call to a function that returns an unconstrained
7009 type with default discriminant.
7011 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7013 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
7014 non-conversion to the nominal result type at the end.
7016 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7018 * gcc-interface/trans.c (create_temporary): New function taken from...
7019 (create_init_temporary): ...here. Call it.
7020 (call_to_gnu): Create the temporary for the return value early, if any.
7021 Create it for a function with copy-in/copy-out parameters if there is
7022 no target; in other cases of copy-in/copy-out, use another temporary.
7023 Push the new binding level lazily. Add and rename local variables.
7025 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7027 * gcc-interface/decl.c (validate_size): Improve comments and tweak
7029 (set_rm_size): Likewise.
7031 2011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7033 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
7034 for the padded type built in order to support a specified alignment.
7035 Fix incorrect formatting.
7037 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7040 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
7042 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7044 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
7045 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
7046 to the end of the list. Adjust recursive call. Rename local variable.
7047 If REORDER is true, reorder components of the record type.
7048 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
7049 components_to_record and adjust the parameter list.
7051 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7053 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
7054 disabled, use the variable for bounds of loop iteration scheme.
7056 2011-03-21 Kai Tietz <ktietz@redhat.com>
7059 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
7061 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
7063 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
7064 out whether the expression is read-only. Short-circuit placeholder
7065 case and rename a couple of local variables.
7067 2011-03-17 Eric Botcazou <ebotcazou@adacore.com>
7069 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
7070 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
7071 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
7072 (convert): Deal with conversions from a smaller form type specially.
7074 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
7076 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
7077 its argument, except for the special -I- switch.
7079 2011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7081 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
7084 2011-02-08 Eric Botcazou <ebotcazou@adacore.com>
7086 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
7088 2011-02-03 Eric Botcazou <ebotcazou@adacore.com>
7090 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
7092 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
7093 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
7094 instead of GNAT_FORMAL. Protect the expression against multiple uses.
7095 Do not generate the check directly, instead instantiate the template
7096 check present in the descriptor.
7097 (make_descriptor_field): Move around.
7098 (build_vms_descriptor32): Build a template check in the POINTER field.
7099 (build_vms_descriptor): Remove useless suffixes.
7100 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
7102 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
7105 * targext.c: Include target files if IN_RTS is defined.
7107 2011-01-26 Richard Guenther <rguenther@suse.de>
7110 * targext.c: Include config.h.
7111 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
7114 2011-01-04 Pascal Obry <obry@adacore.com>
7115 Eric Botcazou <ebotcazou@adacore.com>
7117 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
7119 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7121 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
7122 end-of-case on the end label and its associated gotos, if any.
7124 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7126 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
7127 expressions of the parameter cache within the statement group of
7130 2011-01-04 Olivier Hainque <hainque@adacore.com>
7131 Eric Botcazou <ebotcazou@adacore.com>
7133 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
7134 (set_end_locus_from_node): New function.
7135 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
7136 make and the function end_locus.
7137 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
7138 for the elaboration subprogram.
7139 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
7140 set the end_locus of the expression as well.
7142 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7145 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
7146 variables that are referenced in exception handlers volatile.
7150 Copyright (C) 2011 Free Software Foundation, Inc.
7152 Copying and distribution of this file, with or without modification,
7153 are permitted in any medium without royalty provided the copyright
7154 notice and this notice are preserved.