1 2010-11-27 Eric Botcazou <ebotcazou@adacore.com>
3 * gnatvsn.adb (Version_String): Change type to C-like array of chars.
4 (Gnat_Version_String): Adjust to above change.
6 2010-11-18 Eric Botcazou <ebotcazou@adacore.com>
8 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Also
9 use return-by-invisible-reference if the return type is By_Reference.
10 Tidy up and skip the processing of the return type if it is void.
12 2010-11-17 Joseph Myers <joseph@codesourcery.com>
14 * gcc-interface/misc.c (gnat_parse_file): Take no arguments.
16 2010-11-17 Eric Botcazou <ebotcazou@adacore.com>
18 * gcc-interface/trans.c (addressable_p): Rewrite obsolete paragraph in
21 2010-11-12 Joseph Myers <joseph@codesourcery.com>
23 * gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTS_H).
24 * gcc-interface/misc.c (gnat_handle_option): Take location_t parameter.
26 2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
28 * gcc-interface/trans.c (gigi): Don't set 'pure' flag on SJLJ routines.
29 * gcc-interface/utils2.c (compare_arrays): Add LOC parameter. Set it
30 directly on all the comparison expressions.
31 (build_binary_op): Pass input_location to compare_arrays.
33 2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
35 * gcc-interface/trans.c (lvalue_required_p) <N_Type_Conversion>): Look
36 through it for elementary types as well.
37 <N_Unchecked_Type_Conversion>: Adjust to above change.
38 <N_Allocator>: Likewise.
39 (gnat_to_gnu): Do not attempt to rewrite boolean literals.
41 2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
43 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set DECL_ARTIFICIAL
44 on the reused DECL node coming from a renamed object.
45 Set DECL_IGNORED_P on the DECL node built for renaming entities if they
46 don't need debug info.
48 2010-11-09 Eric Botcazou <ebotcazou@adacore.com>
50 * gcc-interface/utils.c (save_gnu_tree): Improve comments.
51 (get_gnu_tree): Likewise.
53 2010-11-09 Eric Botcazou <ebotcazou@adacore.com>
55 * gcc-interface/decl.c (finish_fat_pointer_type): New function.
56 (gnat_to_gnu_entity) <E_Array_Type>: Use it to build the fat pointer
58 <E_Access_Type>: Likewise.
60 2010-11-02 Eric Botcazou <ebotcazou@adacore.com>
62 * gcc-interface/gigi.h (add_stmt_force): Declare.
63 (add_stmt_with_node_force): Likewise.
64 * gcc-interface/trans.c (Attribute_to_gnu): Don't set TREE_SIDE_EFFECTS
65 on the SAVE_EXPR built for cached expressions of parameter attributes.
66 (Subprogram_Body_to_gnu): Force evaluation of the SAVE_EXPR built for
67 cached expressions of parameter attributes.
68 (add_stmt_force): New function.
69 (add_stmt_with_node_force): Likewise.
71 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
73 * gcc-interface/trans.c (gigi): Fix formatting issues.
74 (build_raise_check): Likewise.
75 (gnat_to_gnu): Likewise.
76 * gcc-interface/utils2.c (build_call_raise_range): Likewise.
77 (build_call_raise_column): Likewise.
79 2010-10-26 Robert Dewar <dewar@adacore.com>
81 * exp_ch5.adb, exp_prag.adb, sem_ch3.adb, exp_atag.adb, layout.adb,
82 sem_dist.adb, exp_ch7.adb, exp_util.adb, exp_attr.adb, exp_ch9.adb,
83 sem_ch10.adb, checks.adb, sem_prag.adb, par-endh.adb, sem_ch12.adb,
84 exp_smem.adb, sem_attr.adb, exp_ch4.adb, exp_ch6.adb, exp_ch8.adb,
85 sem_ch6.adb, exp_disp.adb, exp_aggr.adb, exp_dist.adb, sem_ch13.adb,
86 par-ch3.adb, par-ch5.adb, exp_strm.adb, exp_ch3.adb: Minor reformatting
87 * opt.ads: Minor comment fix.
89 2010-10-26 Vincent Celier <celier@adacore.com>
91 * gnat_ugn.texi: Document option -s for gnatlink.
93 2010-10-26 Robert Dewar <dewar@adacore.com>
95 * opt.ads: Move documentation on checksum stuff here from prj-nmsc
96 * prj-nmsc.adb (Process_Project_Level_Array_Attributes): Move
97 documentation on checksum versions to opt.ads.
99 2010-10-26 Vincent Celier <celier@adacore.com>
101 * opt.ads (Checksum_Accumulate_Token_Checksum): New Boolean flag,
103 (Checksum_GNAT_6_3): New name of Old_Checksums
104 (Checksum_GNAT_5_03): New name of Old_Old_Checksums
105 * prj-nmsc.adb (Process_Project_Level_Array_Attributes): Adapt to new
107 Set Checksum_Accumulate_Token_Checksum to False if GNAT version is 5.03
109 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3): New name of procedure
110 Accumulate_Token_Checksum_Old.
111 (Accumulate_Token_Checksum_GNAT_5_03): New name of procedure
112 Accumulate_Token_Checksum_Old_Old.
113 (Nlit): Call Accumulate_Token_Checksum only if
114 Opt.Checksum_Accumulate_Token_Checksum is True.
117 2010-10-26 Robert Dewar <dewar@adacore.com>
119 * sem_ch13.adb (Build_Invariant_Procedure): New calling sequence.
120 (Build_Invariant_Procedure): Properly handle analysis of invariant
121 expression with proper end-of-visible-decls visibility.
122 * sem_ch13.ads (Build_Invariant_Procedure): Changed calling sequence.
123 * sem_ch3.adb (Process_Full_View): Don't build invariant procedure
125 (Analyze_Private_Extension_Declaration): Propagate invariant flags.
126 * sem_ch7.adb (Analyze_Package_Specification): Build invariant
129 2010-10-26 Vincent Celier <celier@adacore.com>
131 * opt.ads (Old_Checksums, Old_Old_Checksums): New Boolean flags,
133 * prj-nmsc.adb (Process_Project_Level_Array_Attributes): When
134 processing attribute Toolchain_Version ("Ada"), set Opt.Old_Checksums
135 and Opt.Old_Old_Checksums depending on the GNAT version.
136 * scng.adb (Accumulate_Token_Checksum_Old): New procedure.
137 (Accumulate_Token_Checksum_Old_Old): New procedure.
138 (Scan): For keywords, when Opt.Old_Checksums is True, call one of the
139 alternative procedures Accumulate_Token_Checksum_Old or
140 Accumulate_Token_Checksum_Old_Old, instead of Accumulate_Token_Checksum.
142 2010-10-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
144 * gcc-interface/utils2.c (build_compound_expr): New function.
145 * gcc-interface/gigi.h (build_compound_expr): Declare it.
146 * gcc-interface/trans.c (Attribute_to_gnu, call_to_gnu): Use it.
147 (gnat_to_gnu, case N_Expression_With_Actions): Likewise.
149 2010-10-26 Javier Miranda <miranda@adacore.com>
151 * sem_prag.adb (Process_Import_Or_Interface): Skip primitives of
152 interface types when processing all the entities in the homonym chain
153 that are declared in the same declarative part.
155 2010-10-26 Ed Schonberg <schonberg@adacore.com>
157 * sem_ch3.adb (Process_Range_In_Decl): If the range is part of a
158 quantified expression, the insertion point for range checks will be
159 arbitrarily far in the tree.
160 * sem_ch5.adb (One_Bound): Use Insert_Actions for the declaration of
161 the temporary that holds the value of the bounds.
162 * sem_res.adb (Resolve_Quantified_Expressions): Disable expansion of
163 condition until the full expression is expanded.
165 2010-10-26 Robert Dewar <dewar@adacore.com>
167 * opt.ads: Comment fix.
168 * sem_cat.adb: Treat categorization errors as warnings in GNAT Mode.
169 * switch-c.adb: GNAT Mode does not set
170 Treat_Categorization_Errors_As_Warnings.
172 2010-10-26 Ed Schonberg <schonberg@adacore.com>
174 * sem_ch8.adb (Analyze_Subprogram_Renaming): Improve warning when an
175 operator renames another one with a different name.
177 2010-10-26 Thomas Quinot <quinot@adacore.com>
179 * exp_ch4.adb, exp_pakd.adb: Minor reformatting.
181 2010-10-26 Bob Duff <duff@adacore.com>
183 * namet.adb: Improve hash function.
185 2010-10-26 Thomas Quinot <quinot@adacore.com>
187 * sem_disp.adb: Minor reformatting.
189 2010-10-26 Robert Dewar <dewar@adacore.com>
191 * sem_ch3.adb, sem_ch4.adb, sem_disp.adb, switch-c.adb: Minor
193 * gnat_ugn.texi: Document -gnateP switch.
195 2010-10-26 Robert Dewar <dewar@adacore.com>
197 * opt.ads (Treat_Categorization_Errors_As_Warnings): New flag
198 * sem_cat.adb (Check_Categorization_Dependencies):
199 Use Check_Categorization_Dependencies
200 * switch-c.adb: GNAT Mode sets Treat_Categorization_Errors_As_Warnings
201 -gnateP sets Treat_Categorization_Errors_As_Warnings
202 * usage.adb: Add line for -gnateP switch
204 2010-10-26 Javier Miranda <miranda@adacore.com>
206 * sem_ch3.adb (Add_Internal_Interface_Entities): Handle primitives
207 inherited from the parent that cover interface primitives.
208 (Derive_Progenitor_Subprograms): Handle primitives inherited from
209 the parent that cover interface primitives.
210 * sem_disp.adb (Find_Primitive_Covering_Interface): When searching in
211 the list of primitives of the type extend the test to include inherited
213 * sem_ch6.ads (Is_Interface_Conformant): Add missing documentation.
214 * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Add missing
215 barrier to the loop searching for explicit overriding primitives.
216 * sem_ch4.adb (Analyze_Indexed_Component_Form): Add missing barrier
217 before accessing attribute Entity.
219 2010-10-26 Bob Duff <duff@adacore.com>
221 * make.adb: Call Namet.Finalize, so we can get statistics.
223 2010-10-26 Geert Bosch <bosch@adacore.com>
225 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the subprogram_body
226 node to determine wether the subprogram is a rewritten parameterized
229 2010-10-26 Robert Dewar <dewar@adacore.com>
231 * opt.ads: Minor code reorganization. Alphabetize Warning switches.
233 2010-10-26 Robert Dewar <dewar@adacore.com>
235 * sem_res.adb, xsinfo.adb: Minor reformatting.
237 2010-10-26 Bob Duff <duff@adacore.com>
239 * namet.adb (Finalize): More cleanup of statistics printouts.
241 2010-10-26 Robert Dewar <dewar@adacore.com>
243 * ceinfo.adb: Minor reformatting.
245 2010-10-26 Javier Miranda <miranda@adacore.com>
247 * sem_ch6.adb (Check_Overriding_Indicator, New_Overloaded_Entity): When
248 setting attribute Overridden_Operation do not reference the entities
249 generated by Derive_Subprograms but their aliased entity (which
250 is the primitive inherited from the parent type).
252 2010-10-26 Bob Duff <duff@adacore.com>
254 * namet.adb, namet.ads: Minor cleanup.
256 2010-10-26 Arnaud Charlet <charlet@adacore.com>
258 * gcc-interface/Make-lang.in: Update dependencies.
260 2010-10-26 Robert Dewar <dewar@adacore.com>
262 * einfo.ads, einfo.adb (Is_Base_Type): New function, use it where
264 * exp_ch6.adb, exp_dbug.adb, exp_disp.adb, freeze.adb, lib-xref.adb,
265 sem_aux.adb, sem_ch3.adb, sem_ch7.adb, sem_ch8.adb (Is_Base_Type): Use
266 this new abstraction where appropriate.
268 2010-10-26 Ed Schonberg <schonberg@adacore.com>
270 * sem_ch12.adb: Code clean up.
272 2010-10-26 Paul Hilfinger <hilfinger@adacore.com>
274 * exp_dbug.ads: Document effect of 'pragma Unchecked_Union' on
277 2010-10-26 Ed Schonberg <schonberg@adacore.com>
279 * sem_util.adb (Note_Possible_Modification): If the target of an
280 assignment is the bound variable in an iterator, the domain of
281 iteration, i.e. array or container, is modified as well.
283 2010-10-26 Bob Duff <duff@adacore.com>
285 * Make-generated.in: Make the relevant make targets depend on
286 ceinfo.adb and csinfo.adb.
287 * csinfo.adb, ceinfo.adb: Make sure it raises an exception on failure,
288 so when called from xeinfo, the failure will be noticed.
289 * sinfo.ads: Update comments to reflect the fact that xsinfo runs csinfo
290 * xsinfo.adb, xeinfo.adb: Run ceinfo to check for errors. Close files.
292 2010-10-26 Ed Schonberg <schonberg@adacore.com>
294 * exp_ch4.adb: Set properly parent field of operands of concatenation.
296 2010-10-26 Ed Schonberg <schonberg@adacore.com>
298 * sem_res.adb (Check_Infinite_Recursion): A recursive call within a
299 conditional expression or a case expression should not generate an
300 infinite recursion warning.
302 2010-10-26 Javier Miranda <miranda@adacore.com>
304 * einfo.ads, einfo.adb (Is_Overriding_Operation): Removed.
305 (Set_Is_Overriding_Operation): Removed.
306 * sem_ch3.adb (Check_Abstract_Overriding): Remove redundant call to
307 Is_Overriding_Operation.
308 * exp_ch7.adb (Check_Visibly_Controlled): Remove redundant call to
309 Is_Overriding_Operation.
310 * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Remove redundant
311 call to Set_Is_Overriding_Operation.
312 * sem_util.adb (Collect_Primitive_Operations): Replace test on
313 Is_Overriding_Operation by test on the presence of attribute
314 Overridden_Operation.
315 (Original_Corresponding_Operation): Remove redundant call to attribute
316 Is_Overriding_Operation.
317 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove
318 redundant call to Is_Overriding_Operation.
319 (Verify_Overriding_Indicator): Replace several occurrences of test on
320 Is_Overriding_Operation by test on the presence of attribute
321 Overridden_Operation.
322 (Check_Convention): Replace test on Is_Overriding_Operation by test on
323 the presence of Overridden_Operation.
324 (Check_Overriding_Indicator): Add missing decoration of attribute
325 Overridden_Operation. Minor code cleanup.
326 (New_Overloaded_Entity): Replace occurrence of test on
327 Is_Overriding_Operation by test on the presence of attribute
328 Overridden_Operation. Remove redundant setting of attribute
329 Is_Overriding_Operation plus minor code reorganization.
330 Add missing decoration of attribute Overridden_Operation.
331 * sem_elim.adb (Set_Eliminated): Replace test on
332 Is_Overriding_Operation by test on the presence of Overridden_Operation.
333 * sem_ch8.adb (Analyze_Subprogram_Renaming): Replace test on
334 Is_Overriding_Operation by test on the presence of
335 Overridden_Operation. Remove a redundant test on attribute
336 Is_Overriding_Operation.
337 * lib-xref.adb (Generate_Reference): Replace test on
338 Is_Overriding_Operation by test on the presence of Overridden_Operation.
339 (Output_References): Replace test on Is_Overriding_Operation by test on
340 the presence of Overridden_Operation.
341 * sem_disp.adb (Override_Dispatching_Operation): Replace test on
342 Is_Overriding_Operation by test on the presence of Overridden_Operation.
343 Add missing decoration of attribute Overridden_Operation.
345 2010-10-26 Robert Dewar <dewar@adacore.com>
347 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Properly check
350 2010-10-26 Bob Duff <duff@adacore.com>
352 * sem_res.adb (Resolve_Actuals): In case of certain
353 internally-generated type conversions (created by OK_Convert_To, so the
354 Conversion_OK flag is set), avoid fetching the component type when it's
355 not really an array type, but a private type completed by an array type.
357 2010-10-26 Ed Schonberg <schonberg@adacore.com>
359 * sem_ch5.adb: Adjust format of error message.
361 2010-10-26 Robert Dewar <dewar@adacore.com>
363 * einfo.ads, einfo.adb (OK_To_Reference): Removed, no longer used.
364 * exp_util.adb (Side_Effect_Free): Put in safety barrier in code to
365 detect renamings to avoid problems with invariants.
366 * sem_ch13.adb (Replace_Type_References_Generic): New procedure
367 (Build_Invariant_Procedure): Use Replace_Type_Reference_Generic
368 (Build_Predicate_Function): Use Replace_Type_Reference_Generic
369 * sem_res.adb, sem_ch8.adb, sem_ch4.adb (OK_To_Reference): Remove
370 references, flag is no longer set.
372 2010-10-26 Vincent Celier <celier@adacore.com>
374 * prj.ads (Source_Data): New Boolean component Initialized, defaulted
375 to False, set to True when Source_Data is completely initialized.
376 * prj-env.adb: Minor comment fix.
378 2010-10-26 Robert Dewar <dewar@adacore.com>
380 * sem_case.adb, sem_ch6.adb, sem_util.adb: Minor reformatting.
382 2010-10-26 Ed Schonberg <schonberg@adacore.com>
384 * sem_ch5.adb (Analyze_Iteration_Scheme): Diagnose attempt to use thew
385 form "for X in A" when A is an array object. This form is only intended
387 * sem_eval.adb: Fix reference to non-existing field of type conversion
389 * sem_case.adb (Check_Choices): Improve error reporting for overlapping
390 choices in case statements.
392 2010-10-26 Gary Dismukes <dismukes@adacore.com>
394 * exp_disp.adb (Expand_Interface_Actuals): When expanding an actual for
395 a class-wide interface formal that involves applying a displacement
396 conversion to the actual, check for the case of calling a build-in-place
397 function and handle generation of the implicit BIP parameters (call
398 Make_Build_In_Place_Call_In_Anonymous_Context).
399 Add with and use of Exp_Ch6.
401 2010-10-26 Robert Dewar <dewar@adacore.com>
403 * sem_prag.adb, sem_cat.ads: Minor reformatting.
405 2010-10-26 Sergey Rybin <rybin@adacore.com>
407 * vms_data.ads: Define VMS qualifier for gnatelim '--ignore' option
409 2010-10-26 Thomas Quinot <quinot@adacore.com>
411 * sem_util.adb (Has_Preelaborable_Initialization.Check_Components):
412 For a discriminant, use Discriminant_Default_Value rather than
413 Expression (Declaration_Node (D)).
415 2010-10-26 Geert Bosch <bosch@adacore.com>
417 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Parameterized
418 expressions don't need a spec, even when style checks require
419 subprograms to have one.
421 2010-10-26 Arnaud Charlet <charlet@adacore.com>
423 * gnatvsn.ads: Update comments.
425 2010-10-26 Matthew Heaney <heaney@adacore.com>
427 * Makefile.rtl, impunit.adb: Add bounded hashed set and bounded hashed
429 * a-cohata.ads: Add declaration of generic package for bounded hash
431 * a-chtgbo.ads, a-chtgbo.adb, a-chtgbk.ads, a-chtgbk.adb, a-cbhase.ads,
432 a-cbhase.adb, a-cbhama.ads, a-cbhama.adb: New files.
434 2010-10-26 Ed Schonberg <schonberg@adacore.com>
436 * sem_warn.adb: Improve warning message on overlapping actuals.
438 2010-10-26 Thomas Quinot <quinot@adacore.com>
440 * sem_ch4.adb, exp_dist.adb: Minor reformatting.
442 2010-10-26 Vincent Celier <celier@adacore.com>
444 * makeusg.adb (Makeusg): Add lines for switches -vl, -vm and -vh.
446 2010-10-26 Robert Dewar <dewar@adacore.com>
448 * exp_ch3.adb (Expand_N_Object_Declaration): Move generation of
449 predicate check to analyzer, since too much rewriting occurs in the
451 * sem_ch13.adb (Build_Predicate_Function): Change calling sequence, and
452 change the order in which things are done to fix several errors in
453 dealing with qualification of the type name.
454 (Build_Static_Predicate): Built static predicate after full analysis
455 of the body. This is necessary to fix several problems.
456 * sem_ch3.adb (Analyze_Object_Declaration): Move predicate check here
457 from expander, since too much expansion occurs in the analyzer to leave
459 (Analyze_Object_Declaration): Change parameter Include_Null to new name
460 Include_Implicit in Is_Partially_Initialized_Type call.
461 (Analyze_Subtype_Declaration): Make sure predicates are proapagated in
462 some strange cases of internal subtype generation.
463 * sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type): Change
464 Include_Null to Include_Implicit, now includes the case of
467 2010-10-26 Sergey Rybin <rybin@adacore.com>
469 * gnat_rm.texi: Revise the documentation for pragma Eliminate.
471 2010-10-26 Matthew Heaney <heaney@adacore.com>
473 * Makefile.rtl, impunit.adb: Added bounded list container.
474 * a-cbdlli.ads, a-cbdlli.adb: New file.
476 2010-10-25 Eric Botcazou <ebotcazou@adacore.com>
478 * gcc-interface/utils2.c: Include flags.h and remove prototypes.
479 (build_unary_op) <TRUTH_NOT_EXPR>: When not optimizing, fold the result
480 of the call to invert_truthvalue_loc.
481 * gcc-interface/Make-lang.in (utils2.o): Add $(FLAGS_H).
483 2010-10-25 Eric Botcazou <ebotcazou@adacore.com>
485 * gcc-interface/utils.c (update_pointer_to): Clear TYPE_POINTER_TO and
486 TYPE_REFERENCE_TO of the old type after redirecting its pointer and
489 2010-10-25 Eric Botcazou <ebotcazou@adacore.com>
491 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not set
492 TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
494 2010-10-25 Jose Ruiz <ruiz@adacore.com>
496 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for powerpc-linux):
497 Reorganize target pairs so that it works on linux and ElinOS.
499 2010-10-25 Pascal Obry <obry@adacore.com>
501 * adaint.c (__gnat_file_time_name_attr): Use GetFileAttributesEx to get
502 the timestamp. A bit faster than opening/closing the file.
503 (__gnat_stat_to_attr): Remove kludge for Windows.
504 (__gnat_file_exists_attr): Likewise.
505 The timestamp is now retreived using GetFileAttributesEx as faster.
507 2010-10-25 Javier Miranda <miranda@adacore.com>
509 * sem_ch3.adb (Derive_Interface_Subprogram): New subprogram.
510 (Derive_Subprograms): For abstract private types transfer to the full
511 view entities of uncovered interface primitives. Required because if
512 the interface primitives are left in the private part of the package
513 they will be decorated as hidden when the analysis of the enclosing
514 package completes (and hence the interface primitive is not visible
515 for dispatching calls).
517 2010-10-25 Matthew Heaney <heaney@adacore.com>
519 * Makefile.rtl, impunit.adb: Added bounded set and bounded map
521 * a-crbltr.ads: Added declaration of generic package for bounded tree
523 * a-rbtgbo.ads, a-rbtgbo.adb, a-rbtgbk.ads, a-rbtgbk.adb, a-btgbso.ads,
524 a-btgbso.adb, a-cborse.ads, a-cborse.adb, a-cborma.ads, a-cborma.adb:
527 2010-10-25 Thomas Quinot <quinot@adacore.com>
529 * sem_util.adb: Minor reformatting.
530 * usage.adb: Fix usage line for -gnatwh.
532 2010-10-25 Thomas Quinot <quinot@adacore.com>
534 * sem_ch12.adb (Analyze_Package_Instantiation): For an
535 instantiation in an RCI spec, omit package body if instantiation comes
536 from source, even as a nested
538 * exp_dist.adb (Add_Calling_Stubs_To_Declarations,
539 *_Support.Add_Receiving_Stubs_To_Declarations): Handle the case of
540 nested packages, package instantiations and subprogram instantiations.
542 2010-10-25 Robert Dewar <dewar@adacore.com>
544 * exp_ch5.adb (Expand_Predicated_Loop): Remove code for loop through
545 non-static predicate, since we agree not to allow this.
546 (Expand_Predicated_Loop): Properlay handle false predicate (null
547 list in Static_Predicate field.
548 * sem_ch13.adb (Build_Static_Predicate): Extensive changes to clean up
549 handling of more general predicate forms.
551 2010-10-25 Robert Dewar <dewar@adacore.com>
553 * sem_ch4.adb, sem_util.adb: Minor reformatting.
554 * sem_ch8.adb (Find_Selected_Component): Allow selection from instance
555 of type in predicate or invariant expression.
557 2010-10-25 Pascal Obry <obry@adacore.com>
559 * adaint.c (__gnat_stat_to_attr): Can set the timestamp on Windows now.
561 (__gnat_stat): Rewrite Win32 version.
563 2010-10-25 Robert Dewar <dewar@adacore.com>
565 * sem_warn.adb, einfo.ads, exp_ch4.adb: Minor comment fix
566 * sem_case.adb: Comment clarification for loops through false
568 * sem_util.adb: Minor reformatting
569 (Check_Order_Dependence): Fix bad double blank in error message
571 2010-10-25 Ed Schonberg <schonberg@adacore.com>
573 * sem_ch4.adb (Analyze_Membership_Op): in Ada_2012 a membership
574 operation can have a single alternative that is a value of the type.
575 Rewrite operation as an equality test.
577 2010-10-25 Matthew Heaney <heaney@adacore.com>
579 * Makefile.rtl, impunit.adb: Added a-cobove (bounded vector container)
581 * a-contai.ads: Added declaration of Capacity_Error exception.
582 * a-cobove.ads, a-cobove.adb: New files.
584 2010-10-25 Thomas Quinot <quinot@adacore.com>
586 * uname.adb: Revert previous change, no longer needed after change
589 2010-10-25 Thomas Quinot <quinot@adacore.com>
591 * scos.ads: Minor comment fix.
593 2010-10-25 Ed Schonberg <schonberg@adacore.com>
595 * sem_ch5.adb (Analyze_Assignment_Statement): Check dangerous order
597 * sem_ch6.adb (Analyze_Procedure_Call_Statement): Ditto.
598 * sem_res.adb (Analyze_Actuals): Add actual to list of actuals for
599 current construct, for subsequent order dependence checking.
600 (Resolve): Check order dependence on expressions that are not
602 * sem_util.adb (Check_Order_Dependence): Code cleanup, to correspond
603 to latest version of AI05-144-2.
604 * sem_warn.adb (Warn_On_Overlapping_Actuals): Code cleanup.
606 2010-10-25 Robert Dewar <dewar@adacore.com>
608 * sem_ch13.adb (Build_Static_Predicate): Moved out of
609 Build_Predicate_Function.
610 (Build_Static_Predicate): Complet rewrite for more general predicates
612 2010-10-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
613 Eric Botcazou <ebotcazou@adacore.com>
615 * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Function): Allow
616 In Out/Out parameters for functions.
617 * gcc-interface/trans.c (gnu_return_var_stack): New variable.
618 (create_init_temporary): New static function.
619 (Subprogram_Body_to_gnu): Handle In Out/Out parameters for functions.
620 (call_to_gnu): Likewise. Use create_init_temporary in order to create
621 temporaries for unaligned parameters and return value. If there is an
622 unaligned In Out or Out parameter passed by reference, push a binding
623 level if not already done. If a binding level has been pushed and the
624 call is returning a value, create the call statement.
625 (gnat_to_gnu) <N_Return_Statement>: Handle In Out/Out parameters for
628 2010-10-22 Ben Brosgol <brosgol@adacore.com>
630 * gnat_rm.texi: Add chapter on Ada 2012 support.
632 2010-10-22 Robert Dewar <dewar@adacore.com>
634 * sem_ch12.adb: Minor reformatting.
636 2010-10-22 Thomas Quinot <quinot@adacore.com>
638 * exp_dist.adb: Mark missing case of nested package when expanding
641 2010-10-22 Ed Schonberg <schonberg@adacore.com>
643 * par-ch10.adb: Discard incomplete with_clause.
645 2010-10-22 Robert Dewar <dewar@adacore.com>
647 * checks.adb (Enable_Range_Check): Remove code suppressing range check
648 if static predicate present, not needed.
649 * exp_attr.adb (Expand_Pred_Succ): Check Suppress_Assignment_Checks flag
650 * exp_ch3.adb (Expand_N_Object_Declaration): Check
651 Suppress_Assignment_Checks flag.
652 * exp_ch4.adb (Expand_N_In): Make some corrections for proper handling
653 of ranges when predicates are present.
654 * exp_ch5.adb (Expand_Predicated_Loop): New procedure
655 (Expand_N_Assignment_Statement): Check Suppress_Assignment_Checks flag
656 (Expand_N_Loop_Statement): Handle loops over predicated types
657 * sem_case.adb (Analyze_Choices): Remove extra blank in error message.
658 * sem_ch13.adb (Build_Predicate_Function.Add_Call): Suppress info
659 message for inheritance if within a generic instance, not useful there!
660 (Build_Static_Predicate): Optimize test in predicate function
661 based on static ranges determined.
662 * sem_ch5.adb (Analyze_Iteration_Scheme): Error for loop through
663 subtype with non-static predicate.
664 * sinfo.ads, sinfo.adb (Suppress_Assignment_Checks): New flag.
666 2010-10-22 Thomas Quinot <quinot@adacore.com>
668 * uname.adb (Get_Unit_Name.Add_Node_Name): If encountering an error
669 node in the unit name, propagate Program_Error to guard against
672 2010-10-22 Javier Miranda <miranda@adacore.com>
674 * sem_ch8.adb (Find_Selected_Component): Do not generate a subtype for
675 selected components of dispatch table wrappers.
677 2010-10-22 Ed Schonberg <schonberg@adacore.com>
679 * exp_ch9.adb (Make_Initialize_Protection): A protected type that
680 implements an interface must be treated as if it has entries, to
681 support dispatching select statements.
683 2010-10-22 Robert Dewar <dewar@adacore.com>
685 * sem_aggr.adb, sem_ch3.adb: Minor reformatting.
687 2010-10-22 Javier Miranda <miranda@adacore.com>
689 * sem_aggr.adb (Resolve_Array_Aggregate.Add): If the type of the
690 aggregate has a non standard representation the attributes 'Val and
691 'Pos expand into function calls and the resulting expression is
692 considered non-safe for reevaluation by the backend. Relocate it into
693 a constant temporary to indicate to the backend that it is side
696 2010-10-22 Ed Schonberg <schonberg@adacore.com>
698 * sem_ch3.adb (Build_Concurrent_Derived_Type): Create declaration for
699 derived corresponding record type only when expansion is enabled.
701 2010-10-22 Robert Dewar <dewar@adacore.com>
703 * sem_case.adb, sem_attr.adb (Bad_Predicated_Subtype_Use): Change order
705 * sem_ch13.adb (Build_Predicate_Function): Don't give inheritance
706 messages for generic actual subtypes.
707 * sem_ch9.adb, sem_res.adb, sem_util.adb, sem_util.ads, sem_ch3.adb
708 (Bad_Predicated_Subtype_Use): Use this procedure.
710 2010-10-22 Robert Dewar <dewar@adacore.com>
712 * sem_ch5.adb: Minor reformatting.
714 2010-10-22 Robert Dewar <dewar@adacore.com>
716 * a-except-2005.adb (Rmsg_18): New message text.
717 * a-except.adb (Rmsg_18): New message text.
718 * atree.adb (List25): New function
719 (Set_List25): New procedure
720 * atree.ads (List25): New function
721 (Set_List25): New procedure
722 * einfo.adb (Static_Predicate): Is now a list
723 (OK_To_Reference): Present in all entities
724 * einfo.ads (Static_Predicate): Is now a list
725 (OK_To_Reference): Applies to all entities
726 * exp_ch13.adb (Build_Predicate_Function): Moved to Sem_Ch13
727 * sem_attr.adb (Bad_Attribute_For_Predicate): Call
728 Bad_Predicated_Subtype_Use.
729 * sem_case.ads, sem_case.adb: Major surgery to deal with predicated
731 * sem_ch13.adb (Build_Predicate_Function): Moved from Exp_Ch13 to
733 (Build_Static_Predicate): New procedure handles static predicates.
734 * sem_ch3.adb (Analyze_Subtype_Declaration): Delay freeze on subtype
735 with no constraint if ancestor subtype has predicates.
736 (Analyze_Variant_Part): New calling sequence for Analyze_Choices
737 * sem_ch4.adb (Junk_Operand): Don't complain about OK_To_Reference
739 (Analyze_Case_Expression): New calling sequence for Analyze_Choices
740 * sem_ch5.adb (Analyze_Case_Statement): New calling sequence for
742 * sem_util.ads, sem_util.adb (Bad_Predicated_Subtype_Use): New procedure
743 * types.ads (PE_Bad_Predicated_Generic_Type): Replaces
744 PE_Bad_Attribute_For_Predicate.
745 * atree.h: Add definition of List25.
747 2010-10-22 Jerome Lambourg <lambourg@adacore.com>
749 * gnatlink.adb (Process_Binder_File): Remove CLI-specific code, now
751 (Gnatlink): Remove CLI-specific code, moved to dotnet-ld
752 * bindgen.adb (Gen_Object_Files_Options): Do not issue -L switches with
753 the .NET compiler, useless and unsupported.
755 2010-10-22 Robert Dewar <dewar@adacore.com>
757 * sem_util.ads (Get_Num_Lit_From_Pos): Fix errors in documentation,
758 this returns a Node_Id for a reference to the entity, not the entity
761 2010-10-22 Ed Schonberg <schonberg@adacore.com>
763 * sem_ch5.adb (Analyze_Iteration_Scheme): use Insert_Actions when
764 bounds require a temporary.
766 2010-10-22 Robert Dewar <dewar@adacore.com>
768 * sem_ch4.adb: Minor reformatting.
769 * sinfo.ads: Minor comment fixes for Ada 2012 syntax.
771 2010-10-22 Robert Dewar <dewar@adacore.com>
773 * par-ch5.adb: Minor reformatting.
774 * gcc-interface/Make-lang.in: Update dependencies.
776 2010-10-22 Robert Dewar <dewar@adacore.com>
778 * a-except.adb, a-except-2005.adb: Add new Rcheck entry.
779 * exp_ch13.adb (Add_Call): Make sure subtype is marked with
780 Has_Predicates set to True if it inherits predicates.
781 * sem_attr.adb: Handle 'First/'Last/'Range for predicated types
782 * types.ads (PE_Bad_Attribute_For_Predicate): New reason code
783 * types.h: Add new Rcheck entry.
784 * einfo.ads, einfo.adb (Static_Predicate): New field.
785 Minor code reorganization (file float routines in proper section)
786 Fix bad field name in comments.
788 2010-10-22 Robert Dewar <dewar@adacore.com>
790 * sem_eval.adb (Subtypes_Statically_Compatible): Check null exclusion
793 2010-10-22 Vincent Celier <celier@adacore.com>
795 * prj-conf.adb (Get_Config_Switches): Detect if there is at least one
796 declaration of IDE'Compiler_Command for one of the language in the main
798 (Do_Autoconf): If there were at least one Compiler_Command declared and
799 no target, invoke gprconfig with --target=all instead of the normalized
802 2010-10-22 Robert Dewar <dewar@adacore.com>
804 * par-ch4.adb: Update syntax in comments for Ada 2012.
805 * sinfo.ads: Update syntax in comments for Ada 2012
806 * par-ch3.adb (Check_Restricted_Expression): Remove "in Ada 2012 mode"
809 2010-10-22 Gary Dismukes <dismukes@adacore.com>
811 * sem_ch3.adb (Check_Or_Process_Discriminants): In Ada 2012, allow
812 limited tagged types to have defaulted discriminants. Customize the
813 error message for the Ada 2012 case.
814 (Process_Discriminants): In Ada 2012, allow limited tagged types to have
815 defaulted discriminants. Customize the error message for the Ada 2012
817 * sem_ch6.adb (Create_Extra_Formals): Suppress creation of the extra
818 formal for out formals of discriminated types in the case where the
819 underlying type is a limited tagged type.
820 * exp_attr.adb (Expand_N_Attribute_Reference, case
821 Attribute_Constrained): Return True for 'Constrained when the
822 underlying type of the prefix is a limited tagged type.
824 2010-10-22 Thomas Quinot <quinot@adacore.com>
826 * sem_ch3.adb (Complete_Private_Subtype): The full view of the subtype
827 may already have a rep item chain inherited from the full view of the
828 base type, so do not overwrite it when propagating rep items from the
829 partial view of the subtype.
830 * sem_ch3.adb: Minor code reorganization. Minor reformatting.
832 2010-10-22 Sergey Rybin <rybin@adacore.com>
834 * gnat_ugn.texi (gnatmetric): Remove description of debug option.
836 2010-10-22 Tristan Gingold <gingold@adacore.com>
838 * adaint.c (__gnat_number_of_cpus): Add implementation for VMS.
840 2010-10-22 Ed Schonberg <schonberg@adacore.com>
842 * par-ch5.adb: Set properly starting sloc of loop parameter.
844 2010-10-22 Ed Schonberg <schonberg@adacore.com>
846 * sem_util.adb (May_Be_Lvalue): An actual in a function call can be an
847 lvalue in Ada2012, if the function has in-out parameters.
849 2010-10-22 Robert Dewar <dewar@adacore.com>
851 * cstand.adb, einfo.adb, exp_attr.adb, sem_prag.adb, sem_vfpt.adb,
852 sem_ch10.adb: Minor reformatting.
854 2010-10-22 Sergey Rybin <rybin@adacore.com>
856 * gnat_ugn.texi: Remove most of the content of gnatcheck chapter.
858 2010-10-22 Ed Schonberg <schonberg@adacore.com>
860 * sem_attr.adb: Handle indexed P'old.
862 2010-10-22 Geert Bosch <bosch@adacore.com>
864 * cstand.adb (Build_Float_Type): Set Float_Rep according to platform.
865 * einfo.ads (Float_Rep): New attribute.
866 (Float_Rep_Kind): Move from body. Add comments.
867 * einfo.adb (Float_Rep_Kind): Move to spec
868 (Float_Rep): Now a real field instead of local function.
869 (Set_Float_Rep): New procedure to set floating point representation
870 (Set_Vax_Float): Remove.
871 (Write_Entity_Flags): Remove Vax_Float flag.
872 (Write_Field10_Name): Add E_Floating_Point_Type case for Float_Rep.
873 * exp_attr.adb (Attribute_Valid): Use case statement for representation
875 * sem_ch3.adb (Build_Derived_Numeric_Type,
876 Floating_Point_Type_Declaration): Set Float_Rep instead of Vax_Float
878 * sem_util.ads, sem_util.adb (Is_AAMP_Float): Remove.
879 * sem_vfpt.adb (Set_D_Float, Set_F_Float, Set_G_Float, Set_IEEE_Long,
880 Set_IEEE_Short): Set Float_Rep instead of Vax_Float attribute.
882 2010-10-22 Robert Dewar <dewar@adacore.com>
884 * sprint.adb: Minor reformatting.
886 2010-10-22 Robert Dewar <dewar@adacore.com>
888 * exp_ch3.adb (Expand_N_Object_Declaration): Do required predicate
890 * sem_ch3.adb (Complete_Private_Subtype): Propagate predicates to full
892 * sem_ch6.adb (Invariants_Or_Predicates_Present): New name for
894 (Process_PPCs): Handle predicates generating post conditions
895 * sem_util.adb (Is_Partially_Initialized_Type): Add
896 Include_Null parameter.
897 * sem_util.ads (Is_Partially_Initialized_Type): Add
898 Include_Null parameter.
900 2010-10-22 Sergey Rybin <rybin@adacore.com>
902 * gnat_ugn.texi (gnatelim): Add description for '--ignore' option
904 2010-10-22 Thomas Quinot <quinot@adacore.com>
906 * sem_prag.adb (Check_First_Subtype): Specialize error messages for
907 case where argument is not a type.
909 2010-10-22 Robert Dewar <dewar@adacore.com>
911 * exp_ch5.adb, par-ch4.adb, par-ch5.adb, sem_ch5.adb, sinfo.ads: Minor
914 2010-10-22 Arnaud Charlet <charlet@adacore.com>
916 * a-locale.adb: Minor code clean up.
918 2010-10-22 Thomas Quinot <quinot@adacore.com>
920 * exp_ch4.adb: Minor code reorganization and factoring.
922 2010-10-22 Thomas Quinot <quinot@adacore.com>
924 * exp_ch5.adb, sem_ch5.adb, sinfo.ads, snames.ads-tmpl, par-ch5.adb:
927 2010-10-22 Geert Bosch <bosch@adacore.com>
929 * stand.ads: Fix typo in comment.
931 2010-10-22 Ed Schonberg <schonberg@adacore.com>
933 * sem_ch6.adb: Enable in-out parameter for functions.
935 2010-10-22 Ed Schonberg <schonberg@adacore.com>
937 * sem_ch4.adb (Analyze_Quantified_Expression): Handle properly loop
938 iterators that are transformed into container iterators after analysis.
939 * exp_ch4.adb (Expand_N_Quantified_Expression): Handle properly both
940 iterator forms before rewriting as a loop.
942 2010-10-22 Brett Porter <porter@adacore.com>
944 * a-locale.adb, a-locale.ads, locales.c: New files.
945 * Makefile.rtl: Add a-locale
946 * gcc-interface/Makefile.in: Add locales.c
948 2010-10-22 Robert Dewar <dewar@adacore.com>
950 * sem_util.ads, sem_util.adb, sem_aux.ads, sem_aux.adb
951 (Is_Generic_Formal): Moved from Sem_Util to Sem_Aux.
953 2010-10-22 Ed Schonberg <schonberg@adacore.com>
955 * exp_ch5.adb (Expand_Iterator_Loop): New subprogram, implements new
956 iterator forms over arrays and containers, in loops and quantified
958 * exp_util.adb (Insert_Actions): include N_Iterator_Specification.
959 * par-ch4.adb (P_Quantified_Expression): Handle iterator specifications.
960 * par-ch5.adb (P_Iterator_Specification): New subprogram. Modify
961 P_Iteration_Scheme to handle both loop forms.
962 * sem.adb: Handle N_Iterator_Specification.
963 * sem_ch5.adb, sem_ch5.ads (Analyze_Iterator_Specification): New
965 * sinfo.adb, sinfo.ads: New node N_Iterator_Specification.
966 N_Iteration_Scheme can now include an Iterator_Specification. Ditto
967 for N_Quantified_Expression.
968 * snames.ads-tmpl: Add names Cursor, Element, Element_Type, No_Element,
969 and Previous, to support iterators over predefined containers.
970 * sprint.adb: Handle N_Iterator_Specification.
972 2010-10-22 Thomas Quinot <quinot@adacore.com>
974 * sem_prag.adb, sem_ch12.adb, sem_util.adb, sem_util.ads
975 (Is_Generic_Formal): Move from body of Sem_Ch12 to Sem_Util.
976 (Check_Arg_Is_Local_Name): Fix check in the case of a pragma appearing
977 immediately after a library unit.
978 (Analyze_Pragma, case Preelaborable_Initialization): Pragma may apply to
979 a formal derived type.
981 2010-10-22 Geert Bosch <bosch@adacore.com>
983 * gcc-interface/Make-lang.in: Remove ttypef.ads
984 * checks.adb: Use Machine_Mantissa_Value and Machine_Radix_Value instead
985 of Machine_Mantissa and Machine_Radix.
986 * cstand.adb (P_Float_Range): Directly print the Type_Low_Bound and
987 Type_High_Bound of the type, instead of choosing constants from Ttypef.
988 (Set_Float_Bounds): Compute the bounds based on Machine_Radix_Value,
989 Machine_Emax_Value and Machine_Mantissa_Value instead of special-casing
991 * einfo.ads (Machine_Emax_Value, Machine_Emin_Value,
992 Machine_Mantissa_Value, Machine_Radix_Value, Model_Emin_Value,
993 Model_Epsilon_Value, Model_Mantissa_Value, Model_Small_Value,
994 Safe_Emax_Value, Safe_First_Value, Safe_Last_Value): Add new
995 synthesized floating point attributes.
996 * einfo.adb (Float_Rep): Determine the kind of floating point
997 representation used for a given type.
998 (Machine_Emax_Value, Machine_Emin_Value, Machine_Mantissa_Value,
999 Machine_Radix_Value): Implement based on Float_Rep_Kind of a type and
1000 the number of digits in the type.
1001 (Model_Emin_Value, Model_Epsilon_Value, Model_Mantissa_Value,
1002 Model_Small_Value, Safe_Emax_Value, Safe_First_Value, Safe_Last_Value):
1003 Implement new synthesized floating point attributes based on the various
1005 * eval_fat.ads: Remove Machine_Mantissa and Machine_Radix.
1006 * eval_fat.adb (Machine_Mantissa, Machine_Radix): Remove. Use the
1007 Machine_Mantissa_Value and Machine_Radix_Value functions instead.
1008 * exp_vfpt.adb (VAXFF_Digits, VAXDF_Digits, VAXFG_Digits): Define local
1009 constants, instead of using constants from Ttypef.
1010 * gnat_rm.texi: Reword comments referencing Ttypef.
1011 * sem_attr.ads: Reword comment referencing Ttypef.
1012 * sem_attr.adb (Float_Attribute_Universal_Integer,
1013 Float_Attribute_Universal_Real): Remove.
1014 (Attribute_Machine_Emax, Attribute_Machine_Emin,
1015 Attribute_Machine_Mantissa, Attribute_Model_Epsilon,
1016 Attribute_Model_Mantissa, Attribute_Model_Small, Attribute_Safe_Emax,
1017 Attribute_Safe_First, Attribute_Safe_Last, Model_Small_Value): Use
1018 attributes in Einfo instead of Float_Attribute_Universal_Real and
1019 Float_Attribute_Universal_Integer and all explicit constants.
1020 * sem_util.ads, sem_util.adb (Real_Convert): Remove.
1021 * sem_vfpt.adb (VAXDF_Digits, VAXFF_Digits, VAXGF_Digits, IEEEL_Digits,
1022 IEEES_Digits): New local constants, in order to remove dependency on
1024 * tbuild.ads (Make_Float_Literal): New function.
1025 * tbuild.adb (Make_Float_Literal): New function to create a new
1026 N_Real_Literal, constructing it as simple as possible for best
1027 output of constants in -gnatS.
1028 * ttypef.ads: Remove.
1030 2010-10-22 Robert Dewar <dewar@adacore.com>
1032 * checks.adb (Apply_Predicate_Check): Remove attempt at optimization
1033 when subtype is the same, caused legitimate checks to be missed.
1034 * exp_ch13.adb (Build_Predicate_Function): Use Nearest_Ancestor to get
1035 inheritance from right entity.
1036 * freeze.adb (Freeze_Entity): Use Nearest_Ancestor to freeze in the
1037 derived type case if the ancestor type has predicates.
1038 * sem_aux.ads, sem_aux.adb (Nearest_Ancestor): New function.
1039 * sem_prag.adb (Check_Enabled): Minor code reorganization.
1041 2010-10-22 Arnaud Charlet <charlet@adacore.com>
1043 * gcc-interface/utils.c, gcc-interface/gigi.h: Minor reformatting.
1045 2010-10-22 Thomas Quinot <quinot@adacore.com>
1047 * einfo.ads (Declaration_Node): Clarify documentation, in particular
1048 regarding what is returned for subprogram entities.
1050 2010-10-22 Arnaud Charlet <charlet@adacore.com>
1052 * exp_attr.adb (Make_Range_Test): Generate a Range node instead of
1053 explicit comparisons, generates simpler expanded code.
1054 * a-except-2005.adb (Rcheck_06_Ext): New.
1055 * gcc-interface/trans.c (gigi, gnat_to_gnu): Handle validity checks
1057 * gcc-interface/Make-lang.in: Update dependencies.
1059 2010-10-22 Robert Dewar <dewar@adacore.com>
1061 * sem_ch3.adb (Array_Type_Declaration): Error for subtype wi predicate
1063 (Constrain_Index): Error of subtype wi predicate in index constraint
1064 * sem_ch9.adb (Analyze_Entry_Declaration): Error of subtype wi
1065 predicate in entry family.
1066 * sem_res.adb (Resolve_Slice): Error of type wi predicate in slice.
1068 2010-10-22 Javier Miranda <miranda@adacore.com>
1070 * sem_util.ads, sem_util.adb (Collect_Parents): New subprogram.
1071 (Original_Corresponding_Operation): New subprogram.
1072 (Visible_Ancestors): New subprogram.
1073 * sem_ch6.adb (New_Overloaded_Entity): Handle new case of dispatching
1074 operation that overrides a hidden inherited primitive.
1075 * sem_disp.adb (Find_Hidden_Overridden_Primitive): New subprogram.
1076 (Check_Dispatching_Operation): if the new dispatching operation
1077 does not override a visible primtive then check if it overrides
1078 some hidden inherited primitive.
1080 2010-10-22 Ed Schonberg <schonberg@adacore.com>
1082 * sem_ch10.adb (Analyze_With_Clause): If the parent_unit_name in a with
1083 clause is a child unit that denotes a renaming, replace the
1084 parent_unit_name with a reference to the renamed unit, because the
1085 prefix is irrelevant to subsequent visibility..
1087 2010-10-22 Robert Dewar <dewar@adacore.com>
1089 * einfo.ads, einfo.adb (Has_Predicates): Flag is now on all entities
1091 * exp_ch13.adb (Build_Predicate_Function): Output info msgs for
1093 * sem_ch13.adb (Analyze_Aspect_Specifications): Make sure we have a
1094 freeze node for entities for which a predicate is specified.
1095 (Analyze_Aspect_Specifications): Avoid duplicate calls
1096 * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove attempt to avoid
1097 duplicate calls to Analye_Aspect_Specifications.
1099 2010-10-22 Thomas Quinot <quinot@adacore.com>
1101 * a-exextr.adb, atree.ads, freeze.adb: Minor reformatting.
1103 2010-10-21 Robert Dewar <dewar@adacore.com>
1105 * sem_ch3.adb: Minor reformatting.
1107 2010-10-21 Thomas Quinot <quinot@adacore.com>
1109 * einfo.ads (Next_Girder_Discriminant): Remove obsolete description for
1112 2010-10-21 Nicolas Roche <roche@adacore.com>
1114 * gnatmem.adb, memroot.adb, memroot.ads, gmem.c,
1115 gcc-interface/Makefile.in: Remove gnatmem specific files.
1117 2010-10-21 Thomas Quinot <quinot@adacore.com>
1119 * sem_res.adb, exp_ch13.adb: Minor reformatting.
1121 2010-10-21 Thomas Quinot <quinot@adacore.com>
1123 * sem_ch3.adb (Check_Or_Process_Discriminant): Reject illegal attempt
1124 to provide a tagged full view as the completion of an untagged partial
1125 view if the partial view has a discriminant with default.
1127 2010-10-21 Arnaud Charlet <charlet@adacore.com>
1129 * gcc-interface/Make-lang.in: Update dependencies.
1131 2010-10-21 Robert Dewar <dewar@adacore.com>
1133 * checks.ads, checks.adb (Apply_Predicate_Check): New procedure
1134 Minor code reorganization.
1135 * einfo.adb (Has_Predicates): Fix assertion.
1136 * exp_ch13.adb (Build_Predicate_Function): Move from Sem_Ch13 spec to
1138 (Expand_N_Freeze_Entity): Call build predicate function.
1139 * exp_ch4.adb (Expand_N_Type_Conversion): Add predicate check.
1140 * exp_ch5.adb (Expand_N_Assignment_Statement): Add predicate check.
1141 * exp_prag.adb (Expand_Pragma_Check): Use all lower case for name of
1143 * freeze.adb (Freeze_Entity): Move building of predicate function to
1145 * sem_ch13.adb (Build_Predicate_Function): Move from Sem_Ch13 to
1147 * sem_ch13.ads (Build_Predicate_Function): Move from Sem_Ch13 to
1149 * sem_ch3.adb (Analyze_Declarations): Remove call to build predicate
1151 * sem_res.adb (Resolve_Actuals): Apply predicate check.
1153 2010-10-21 Robert Dewar <dewar@adacore.com>
1155 * einfo.ads, einfo.adb: Replace Predicate_Procedure by
1156 Predicate_Functions.
1157 * exp_ch4.adb (Expand_N_In): Handle predicates.
1158 * exp_util.ads, exp_util.adb (Make_Predicate_Call): New function.
1159 (Make_Predicate_Check): New function.
1160 * freeze.adb (Freee_Entity): Build predicate function if needed.
1161 * sem_ch13.adb (Build_Predicate_Function): New procedure.
1162 (Analyze_Aspect_Specifications): No third argument for Predicate pragma
1163 built from Predicate aspect.
1164 * sem_ch13.ads (Build_Predicate_Function): New procedure.
1165 * sem_ch3.adb: Add handling for predicates.
1166 * sem_eval.adb (Eval_Membership_Op): Never static if predicate
1168 * sem_prag.adb (Analye_Pragma, case Predicate): Does not take a third
1171 2010-10-21 Robert Dewar <dewar@adacore.com>
1173 * einfo.ads, einfo.adb: Add handling of predicates.
1174 Rework handling of invariants.
1175 * exp_ch3.adb, exp_ch4.adb, exp_util.adb, sem_ch6.adb: Minor changes to
1176 handing of invariants.
1177 * par-prag.adb: Add dummy entry for pragma Predicate
1178 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for
1180 * sem_prag.adb: Add implementation of pragma Predicate.
1181 * snames.ads-tmpl: Add entries for pragma Predicate.
1183 2010-10-21 Robert Dewar <dewar@adacore.com>
1185 * elists.adb: Minor reformatting.
1187 2010-10-21 Geert Bosch <bosch@adacore.com>
1189 * urealp.adb (UR_Write): Write hexadecimal constants with exponent 1 as
1190 decimal constants, and write any others using the exponent notation.
1191 Minor reformatting throughout
1192 (Store_Ureal_Normalized): New function (minor code reorganization)
1194 2010-10-21 Robert Dewar <dewar@adacore.com>
1196 * einfo.ads, xeinfo.adb: Minor reformatting.
1197 * s-stalib.ads: Minor comment fixes.
1199 2010-10-21 Ed Schonberg <schonberg@adacore.com>
1201 * sem_ch6.adb (Enter_Overloaded_Entity): Refine warning message about
1202 hiding, to remove noise warnings about hiding predefined operators.
1204 2010-10-21 Emmanuel Briot <briot@adacore.com>
1206 * g-comlin.adb (Add_Switch): Fix handling of switches with no separator
1207 when the parameter has length 1.
1209 2010-10-21 Jose Ruiz <ruiz@adacore.com>
1211 * sem_prag.adb (Set_Ravenscar_Profile): Enforce the restrictions of no
1212 dependence on Ada.Execution_Time.Timers,
1213 Ada.Execution_Time.Group_Budget, and
1214 System.Multiprocessors.Dispatching_Domains which are part of the
1216 * impunit.adb (Non_Imp_File_Names_05): Add the file "a-etgrbu" to the
1217 list of Ada 2005 files for package Ada.Execution_Time.Group_Budgets.
1218 (Non_Imp_File_Names_12): Add the file "s-mudido" to the list of Ada 2012
1219 files for package System.Mutiprocessors.Dispatching_Domains.
1221 2010-10-21 Tristan Gingold <gingold@adacore.com>
1223 * ug_words, vms_data.ads: Define the VMS qualifier for -gnateE.
1225 2010-10-21 Thomas Quinot <quinot@adacore.com>
1227 * sem_ch3.ads (Process_Discriminants): Clarify cases where this is
1228 called for a completion.
1230 2010-10-21 Geert Bosch <bosch@adacore.com>
1232 * uintp.ads: Expand image buffer to have enough room for 128-bit values
1233 * urealp.ads (UR_Write): Write constants in base 16 in hexadecimal
1234 notation; either as fixed point literal or in canonical radix 16
1235 floating point form.
1237 2010-10-21 Robert Dewar <dewar@adacore.com>
1239 * a-cgaaso.ads, a-tags.ads, exp_ch3.adb, exp_attr.adb, exp_ch4.adb,
1240 exp_ch3.ads, exp_ch7.adb, exp_ch9.adb, exp_disp.adb, exp_disp.ads,
1241 exp_dist.adb, exp_util.adb, layout.adb, lib-xref.adb, lib.ads,
1242 prep.adb, prj-strt.adb, s-ststop.adb, s-taskin.ads, s-tataat.ads,
1243 sem_aggr.adb, sem_attr.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb,
1244 sem_ch4.ads, sem_ch5.adb, sem_res.adb, sem_util.adb, einfo.adb,
1245 g-sothco.ads, make.adb: Minor reformatting
1247 2010-10-21 Vincent Celier <celier@adacore.com>
1249 * vms_data.ads: Add new qualifiers /SRC_INFO= and
1250 /UNCHECKED_SHARED_LIB_IMPORTS for GNAT COMPILE.
1251 Correct qualifier /SRC_INFO= for GNAT MAKE
1253 2010-10-21 Ed Schonberg <schonberg@adacore.com>
1255 * exp_aggr.adb (Flatten): An association for a subtype may be an
1257 (Safe_Left_Hand_Side): An unchecked conversion is part of a safe
1258 left-hand side if the expression is.
1259 (Is_Safe_Index): new predicate
1260 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Indicate that the
1261 generated Rep_To_Pos function is a Pure_Function.
1263 2010-10-21 Robert Dewar <dewar@adacore.com>
1265 * gnat_rm.texi: Document Invariant pragma.
1267 2010-10-21 Javier Miranda <miranda@adacore.com>
1269 * exp_ch5.adb: Update comment.
1271 2010-10-21 Robert Dewar <dewar@adacore.com>
1273 * sem_ch13.adb (Build_Invariant_Procedure): Remove commented out code
1274 for interfaces, since invariants are not allowed on interfaces in any
1277 2010-10-21 Javier Miranda <miranda@adacore.com>
1279 * sem_attr.adb (Resolve_Attribute): After replacing the range attribute
1280 node with a range expression ensure that its evaluation will not have
1282 * exp_ch5.adb (Expand_Assign_Array): Propagate the Parent to the
1283 unchecked conversion node generated to handle assignment of private
1284 types. Required to allow climbing the subtree if Insert_Action is
1287 2010-10-21 Robert Dewar <dewar@adacore.com>
1289 * par-ch3.adb (P_Interface_Type_Definition): Allow for possibility of
1290 aspect clause presence terminating the type definition.
1292 2010-10-21 Robert Dewar <dewar@adacore.com>
1294 * exp_ch4.adb, exp_intr.adb, par-ch4.adb, scn.adb, sem_ch4.adb,
1295 sem_res.adb, sem_util.adb, sinfo.ads, a-except-2005.adb: Minor
1297 * snames.ads-tmpl: Add note on Name_Some (not a reserved keyword).
1299 2010-10-21 Geert Bosch <bosch@adacore.com>
1301 * ttypef.ads: Further cleanup of Safe_XXX float attributes.
1303 2010-10-19 Ed Schonberg <schonberg@adacore.com>
1305 * exp_ch4.adb, exp_ch4.ads (Expand_Quantified_Expression): New procedure
1306 * exp_util.adb (Insert_Actions): Include Quantified_Expression.
1307 * expander.adb: Call Expand_Qualified_Expression.
1308 * par.adb: New procedure P_Quantified_Expression. Make
1309 P_Loop_Parameter_Specification global for use in quantified expressions.
1310 * par-ch3.adb (P_Subtype_Mark_Resync): Allow "some" as an identifier if
1312 * par-ch4.adb: New procedure P_Quantified_Expression.
1313 * par-ch5.adb: P_Loop_Parameter_Specification is now global.
1314 * scans.adb, scans.ads: Introduce token Some. For now leave as
1316 * scn.adb (Scan_Reserved_Identifier): For earlier versions of Ada,
1317 treat Some as a regular identifier.
1318 * sem.adb: Call Analyze_Quantified_Expression.
1319 * sem_ch4.adb, sem_ch4.ads: New procedure Analyze_Quantified_Expression.
1320 * sem_ch5.adb, sem_ch5.ads: Analyze_Iteration_Scheme is public, for use
1321 in quantified expressions.
1322 * sem_res.adb: New procedure Resolve_Qualified_Expression.
1323 * sinfo.adb, sinfo.ads: New node N_Quantified_Expression
1324 * snames.ads-tmpl: New name Some.
1325 * sprint.adb: Output quantified_expression.
1327 2010-10-19 Robert Dewar <dewar@adacore.com>
1329 * a-exexda.adb: Minor reformatting
1330 Minor code reorganization.
1332 2010-10-19 Robert Dewar <dewar@adacore.com>
1334 * sem_eval.adb: Minor reformatting.
1336 2010-10-19 Tristan Gingold <gingold@adacore.com>
1338 * exp_ch4.adb (Expand_N_And_Op, Expand_N_Or_Op, Expand_N_Xor_Op): Call
1339 Expand_Intrinsic_Call if the function is intrinsic.
1340 * exp_intr_adb (Expand_Binary_Operator): Handle VMS case for logical
1341 binary operator on the unsigned_quadword record.
1342 * exp_intr.ads (Expand_Intrinsic_Call): Update comments.
1344 2010-10-19 Geert Bosch <bosch@adacore.com>
1346 * gnat_rm.texi (pragma Float_Representation): Fix typo.
1348 2010-10-19 Arnaud Charlet <charlet@adacore.com>
1350 * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnateE.
1351 * fe.h (Exception_Extra_Info): Declare.
1352 * usage.adb (usage): Add -gnateE doc.
1353 * checks.adb (Install_Null_Excluding_Check): Use better sloc.
1354 * sem_util.adb (Insert_Explicit_Dereference): Ditto.
1355 * gnat_ugn.texi: Document -gnateE switch.
1356 * a-except.adb (Set_Exception_C_Msg): New parameter Column.
1357 * a-except-2005.adb (Set_Exception_C_Msg): New parameter Column.
1358 (Raise_Constraint_Error_Msg): Ditto.
1359 (Image): New helper function.
1360 (Rcheck_00_Ext, Rcheck_05_Ext, Rcheck_12_Ext): New procedure with more
1361 detailed exception information.
1362 Adjust calls to Set_Exception_C_Msg and Raise_Constraint_Error_Msg.
1363 * a-exexda.adb (Set_Exception_C_Msg): New parameter Column.
1364 * opt.ads (Exception_Extra_Info): New flag.
1365 * gcc-interface/utils.c (gnat_raise_decls_ext): New.
1366 * gcc-interface/utils2.c (build_call_raise_range,
1367 build_call_raise_column): New functions.
1368 * gcc-interface/gigi.h (exception_info_kind, gnat_raise_decls_ext,
1369 build_call_raise_range, build_call_raise_column): Declare.
1370 gcc-interface/trans.c (build_raise_check): New function.
1371 (gigi): Initialize gnat_raise_decls_ext.
1372 (gnat_to_gnu): Add initial support for -gnateE switch.
1373 * gcc-interface/Make-lang.in: Update dependencies.
1375 2010-10-19 Geert Bosch <bosch@adacore.com>
1377 * ttypef.ads: Change VAXDF_Last to be -VAXDF_First, as type is
1380 2010-10-19 Robert Dewar <dewar@adacore.com>
1382 * atree.h (Field29): Fix incorrect definition.
1383 * einfo.adb (Invariant_Procedure): New attribute
1384 (Has_Invariants): New flag
1385 (Has_Inheritable_Invariants): New flag
1386 (OK_To_Reference): New flag
1387 Minor code reorganization (use Next_Rep_Item function)
1388 * einfo.ads (Invariant_Procedure): New attribute
1389 (Has_Invariants): New flag
1390 (Has_Inheritable_Invariants): New flag
1391 (OK_To_Reference): New flag
1392 * exp_ch3.adb (Expand_N_Object_Declaration): Add check for invariant
1393 * exp_ch4.adb (Expand_N_Type_Conversion): Check invariant on type
1394 conversion. Minor reformatting.
1395 * exp_util.ads, exp_util.adb (Make_Invariant_Call): New procedure.
1396 * opt.ads (List_Inherited_Aspects): New name for List_Inherited_Pre_Post
1397 * par-prag.adb: Add dummy entry for pragma Invariant.
1398 * sem_ch13.adb (Build_Invariant_Procedure): New procedure
1399 (Analyze_Aspect_Specification): Add support for Invariant aspect
1400 * sem_ch13.ads (Build_Invariant_Procedure): New procedure
1401 * sem_ch3.adb (Build_Derived_Type): Propagate invariant information
1402 (Process_Full_View): Deal with invariants, building invariant procedure
1404 * sem_ch6.adb (Process_PPCs): Add processing of invariants
1405 * sem_ch7.adb (Analyze_Package_Specification): Build invariant
1407 * sem_prag.adb: Implement pragma Invariant.
1408 * sem_res.adb (Resolve_Entity_Name): Allow type reference if
1409 OK_To_Reference set.
1410 * sem_warn.adb (List_Inherited_Aspects): New name for
1411 List_Inherited_Pre_Post.
1412 * snames.ads-tmpl: Add entries for pragma Invariant.
1413 * treepr.adb (Print_Entity_Information): Add handling of Field29.
1414 * usage.adb: Warning .l/.L applies to invariant as well as pre/post.
1416 2010-10-19 Javier Miranda <miranda@adacore.com>
1418 * par-ch4.adb: Update documentation of Ada 2012 syntax rules for
1421 2010-10-19 Bob Duff <duff@adacore.com>
1423 * sem_attr.adb (Eval_Attribute): Implement Max_Alignment_For_Allocation
1425 * exp_attr.adb (Expand_N_Attribute_Reference): Add
1426 Attribute_Max_Alignment_For_Allocation to the case statement.
1427 * snames.ads-tmpl (Name_Max_Alignment_For_Allocation,
1428 Attribute_Max_Alignment_For_Allocation): New attribute name.
1430 2010-10-19 Ed Schonberg <schonberg@adacore.com>
1432 * sem_ch3.adb (OK_For_Limited_Init_In_05): a call to an access to
1433 parameterless function appears syntactically as an explicit dereference.
1435 2010-10-19 Thomas Quinot <quinot@adacore.com>
1437 * sem_ch8.adb, sem_ch12.adb, opt.ads, sem_ch6.adb, sem_res.adb,
1438 i-cexten.ads, exp_disp.adb, exp_ch4.adb, exp_ch9.adb: Minor reformatting
1440 2010-10-19 Thomas Quinot <quinot@adacore.com>
1442 * sem_util.adb (Collect_Primitive_Operations): A function with an
1443 anonymous access result designating T is a primitive operation of T.
1445 2010-10-19 Tristan Gingold <gingold@adacore.com>
1447 * init.c: On Alpha/VMS, only adjust PC for HPARITH.
1449 2010-10-19 Tristan Gingold <gingold@adacore.com>
1451 * sem_attr.adb (Eval_Attribute): Handle Attribute_Ref, which can be
1454 2010-10-19 Ed Schonberg <schonberg@adacore.com>
1456 * sem_ch12.adb (Check_Generic_Child_Unit): Handle properly the case of
1457 an instantiation of a renaming of the implicit generic child that
1458 appears within an instance of its parent.
1460 2010-10-19 Thomas Quinot <quinot@adacore.com>
1462 * exp_ch9.adb: Minor reformatting.
1463 * einfo.adb, einfo.ads, atree.adb, atree.ads, exp_dist.adb, atree.h:
1464 (Referenced_Object): Remove unused entity attribute.
1465 (Direct_Primitive_Operations): Move to Elist10, this is set for all
1466 tagged types, including synchronous ones, so can't use field15 which is
1467 used as Storage_Size_Variable for task types and Entry_Bodies_Array for
1469 (Add_RACW_Primitive_Declarations_And_Bodies): Remove bogus guard
1470 against Concurrent_Types (we must handle the case of a RACW designating
1471 a class-wide private synchronous type).
1472 Use Direct_Primitive_Operations, not Primitive_Operations, since we
1473 really want the former.
1475 2010-10-19 Bob Duff <duff@adacore.com>
1477 * sem_ch8.adb (Pop_Scope): Change "return;" to "raise Program_Error;".
1479 2010-10-19 Javier Miranda <miranda@adacore.com>
1481 * exp_ch4.adb (Expand_Set_Membership.Make_Cond): Add missing support
1484 2010-10-19 Thomas Quinot <quinot@adacore.com>
1486 * einfo.ads, atree.ads: Minor comment fixes.
1488 2010-10-18 Bob Duff <duff@adacore.com>
1490 * sinfo.ads, sinfo.adb: Modify comment about adding fields to be more
1491 correct, and to be in a more convenient order.
1492 (Default_Storage_Pool): New field of N_Compilation_Unit_Aux, for
1493 recording the Default_Storage_Pool for a parent library unit.
1494 * einfo.ads (Etype): Document the case in which Etype can be Empty.
1495 * sem_prag.adb (Pragma_Default_Storage_Pool): Analyze the new
1496 Default_Storage_Pool pragma.
1497 * sem.ads (Save_Default_Storage_Pool): Save area for push/pop scopes.
1498 * gnat_ugn.texi: Document Default_Storage_Pool as a new configuration
1500 * freeze.adb (Freeze_Entity): When freezing an access type, take into
1501 account any Default_Storage_Pool pragma that applies. We have to do
1502 this at the freezing point, because up until that point, a Storage_Pool
1503 or Storage_Size clause could occur, which should override the
1504 Default_Storage_Pool.
1505 * par-prag.adb: Add this pragma to the list of pragmas handled entirely
1507 * sem_ch8.adb (Push_Scope, Pop_Scope): Save and restore the
1508 Default_Storage_Pool information.
1509 * opt.ads (Default_Pool, Default_Pool_Config): New globals for recording
1510 currently-applicable Default_Storage_Pool pragmas.
1511 * opt.adb: Save/restore the globals as appropriate.
1512 * snames.ads-tmpl (Name_Default_Storage_Pool,
1513 Pragma_Default_Storage_Pool): New pragma name.
1515 2010-10-18 Vincent Celier <celier@adacore.com>
1517 * make.adb (Switches_Of): Put the spec and body suffix in canonical
1520 2010-10-18 Ed Schonberg <schonberg@adacore.com>
1522 * sem_ch13.adb (Analyze_Aspect_Specifications): If subprogram is at the
1523 library level, the pre/postconditions must be treated as global
1524 declarations, i.e. placed on the Aux_Decl nodes of the compilation unit.
1525 * freeze.adb (Freeze_Expression): If the expression is at library level
1526 there is no enclosing record to check.
1528 2010-10-18 Javier Miranda <miranda@adacore.com>
1530 * sem_ch3.ads (Find_Type_Name): Add documentation.
1531 * sem_ch3.adb (Analyze_Full_Type_Declaration): Code cleanup because the
1532 propagation of the class-wide entity is now done by routine
1533 Find_Type_Name to factorize this code.
1534 (Analyze_Private_Extension_Declaration): Handle private type that
1535 completes an incomplete type.
1536 (Tag_Mismatch): Add error message for tag mismatch in a private type
1537 declaration that completes an incomplete type.
1538 (Find_Type_Name): Handle completion of incomplete type by means of
1539 a private declaration. Generate an error if a tagged incomplete type
1540 is completed by an untagged private type.
1541 * sem_ch7.adb (New_Private_Type): Handle private type that completes an
1543 * einfo.ads (Full_View): Add documentation.
1545 2010-10-18 Ed Schonberg <schonberg@adacore.com>
1547 * sem_ch12.adb (Analyze_Formal_Package_Declaration): If the package is
1548 a renaming, generate a reference for it before analyzing the renamed
1549 entity, to prevent spurious warnings.
1551 2010-10-18 Jose Ruiz <ruiz@adacore.com>
1553 * adaint.c (__gnat_pthread_setaffinity_np,
1554 __gnat_pthread_attr_setaffinity_np): Remove wrappers, no longer needed.
1555 * s-osinte-linux.ads (pthread_setaffinity_np,
1556 pthread_attr_setaffinity_np): Remove use of wrappers.
1557 * s-taprop-linux.adb (Create_Task, Initialize): Restore check to verify
1558 whether the affinity functionality is available in the OS.
1559 * gcc-interface/utils.c: Set TREE_STATIC on functions only when there
1562 2010-10-18 Robert Dewar <dewar@adacore.com>
1564 * einfo.ads, einfo.adb: Minor reformatting.
1565 * gnat_ugn.texi, ug_words: Add missing entries, fix typos.
1567 2010-10-18 Emmanuel Briot <briot@adacore.com>
1569 * g-comlin.adb (Is_In_Config): When the switch accepts either a space
1570 or equal, we output an equal every time.
1572 2010-10-18 Ed Schonberg <schonberg@adacore.com>
1574 * sem_res.adb (Resolve_Entry_Call): Handle call to an entry family
1575 member when pre/post conditions are present.
1576 * exp_ch9.adb (Build_PPC_Wrapper): The PPC_Wrapper for an entry family
1577 includes an index parameter, and the name of the enclosed entry call is
1578 an indexed component.
1580 2010-10-18 Robert Dewar <dewar@adacore.com>
1582 * einfo.ads, einfo.adb: Minor reformatting.
1584 2010-10-18 Jose Ruiz <ruiz@adacore.com>
1586 * adaint.c (__gnat_pthread_setaffinity_np,
1587 __gnat_pthread_attr_setaffinity_np): Add these wrappers which check the
1588 availability of the underlying OS functionality before calling.
1589 * s-osinte-linux.ads (pthread_setaffinity_np,
1590 pthread_attr_setaffinity_np): Call a wrapper instead of the OS function
1591 to perform a check of its availability.
1592 * s-taprop-linux.adb (Create_Task): Remove the check to verify whether
1593 the affinity functionality is available in the OS. Now done in a wrapper
1594 * gcc-interface/Makefile.in: Remove vmshandler.asm, unused.
1595 * gcc-interface/Make-lang.in: Update dependencies.
1597 2010-10-18 Robert Dewar <dewar@adacore.com>
1599 * sinfo.ads, sinfo.adb: Change Has_Pragma_CPU to Flag14 (Flag10 is
1602 2010-10-18 Robert Dewar <dewar@adacore.com>
1604 * s-stausa.adb, s-taprop-linux.adb, s-taprop-mingw.adb, s-tassta.ads:
1607 2010-10-18 Robert Dewar <dewar@adacore.com>
1609 * exp_strm.adb (Build_Elementary_Input_Call): Check
1610 No_Default_Stream_Attributes.
1611 (Build_Elementary_Write_Call): Check No_Default_Stream_Attributes
1612 * s-rident.ads: Add restriction No_Default_Stream_Attributes
1613 Put restriction No_Allocators_After_Elaboration in alpha order
1615 2010-10-18 Jose Ruiz <ruiz@adacore.com>
1617 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add field corresponding
1618 to the affinity when expanding the task declaration.
1619 (Make_Task_Create_Call): Add the affinity parameter to the call to
1621 * sem_prag.adb (Analyze_Pragma): Add the analysis for pragma CPU,
1622 taking into account the case when it applies to a subprogram (only for
1623 main and with static expression) or to a task.
1624 * par_prag.adb:(Prag): Make pragma CPU a valid one.
1625 * snames.ads-tmpl (Name_uCPU, Name_CPU): Add these new name identifiers
1626 used by the expander for handling the affinity parameter when creating
1628 (Pragma_Id): Add Pragma_CPU as a valid one.
1629 * rtsfind.ads (RTU_Id): Make System_Multiprocessors accesible.
1630 (RE_Id, RE_Unit_Table): Make the entities RE_CPU_Range and
1631 RE_Unspecified_CPU visible.
1632 * sinfo.ads, sinfo.adb (Has_Pragma_CPU, Set_Has_Pragma_CPU): Add these
1633 two subprograms to set/get the flag indicating whether there is a
1634 pragma CPU which applies to the entity.
1635 * lib.ads, lib.adb (Unit_Record, Default_Main_CPU, Main_CPU,
1636 Set_Main_CPU): Add the field Main_CPU to Unit_Record to store the value
1637 of the affinity associated to the main subprogram (if any).
1638 Default_Main_CPU is used when no affinity is set. Subprograms
1639 Set_Main_CPU and Main_CPU are added to set/get the affinity of the main
1641 * ali.ads, ali.adb (ALIs_Record): Add field Main_CPU to contain the
1642 value of the affinity of the main subprogram.
1643 (Scan_ALI): Get the affinity of the main subprogram (encoded as C=XX in
1645 * lib-writ.ads, lib-writ.adb (M_Parameters): Encode the affinity of the
1646 main subprogram in the M (main) line using C=XX.
1647 * lib-load.adb (Create_Dummy_Package_Unit, Load_Main_Source,
1648 Load_Unit): Add new field Main_CPU.
1649 * bindgen.adb (Gen_Adainit_Ada, Gen_Adainit_C): Add the code to pass
1650 the affinity of the main subprogram to the run time.
1651 * s-taskin.ads (Common_ATCB): Add the field Base_CPU to store the
1653 (Unspecified_CPU): Add this constant to identify the case when no
1654 affinity is set for tasks.
1655 * s-taskin.adb (Initialize_ATCB): Store the value coming from pragma
1656 CPU in the common part of the ATCB.
1657 (Initialize): Store the value coming from pragma CPU (for the
1658 environment task) in the common part of the ATCB.
1659 * s-tassta.ads, s-tassta.adb (Create_Task): Add the affinity specified
1660 by pragma CPU to the ATCB.
1661 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add the affinity
1662 specified by pragma CPU to the ATCB.
1663 * s-tporft.adb (Register_Foreign_Thread): Add the new affinity
1664 parameter to the call to Initialize_ATCB.
1665 * s-taprop-linux.adb (Create_Task): Change the attributes of the thread
1666 to include the task affinity before creation. Additionally, the
1667 affinity selected with Task_Info is also enforced changing the
1668 attributes at task creation time, instead of changing it after creation.
1669 (Initialize): Change the affinity of the environment task if required
1671 * s-osinte-linux.ads (pthread_setaffinity_np): Instead of using a
1672 wrapper to check whether the function is available or not, use a weak
1674 (pthread_attr_setaffinity_np): Add the import of this function which is
1675 used to change the affinity in the attributes used to create a thread.
1676 * adaint.c (__gnat_pthread_attr_setaffinity_np): Remove this wrapper.
1677 It was used to check whether the pthread function was available or not,
1678 but the use of a weak symbol handles this situation in a cleaner way.
1679 * s-taprop-mingw.adb (Create_Task, Initialize): Change the affinity of
1680 tasks (including the environment task) if required by a pragma CPU.
1681 * s-taprop-solaris.adb (Enter_Task): Change the affinity of tasks
1682 (including the environment task) if required by a pragma CPU.
1683 * s-taprop-vxworks.adb (Create_Task, Initialize): Change the affinity
1684 of tasks (including the environment task) if required by a pragma CPU.
1685 * init.c (__gl_main_cpu): Make this value visible to the run time. It
1686 will pass the affinity of the environment task.
1688 2010-10-18 Javier Miranda <miranda@adacore.com>
1690 * einfo.adb (Direct_Primitive_Operations): Complete assertion.
1692 2010-10-18 Vincent Celier <celier@adacore.com>
1694 * prj.ads (Source_Data): New Boolean flag In_The_Queue.
1696 2010-10-18 Tristan Gingold <gingold@adacore.com>
1698 * s-stausa.ads: Add the Top parameter to Initialize_Analyzer.
1699 * s-stausa.adb: Use the top parameter. In Fill_Stack, use the
1701 * s-tassta.adb (Task_Wrapper): Call Initialize_Analyzer after Enter_Task
1702 so that Pri_Stack_Info.Limit can be set and used.
1704 2010-10-18 Robert Dewar <dewar@adacore.com>
1706 * einfo.ads: Minor reformatting.
1707 * sem_res.adb (Resolve_Allocator): Add test for violating
1708 No_Anonymous_Allocators.
1710 2010-10-18 Robert Dewar <dewar@adacore.com>
1712 * prj-nmsc.adb, prj.adb, sem_res.adb: Minor reformatting.
1714 2010-10-18 Ed Schonberg <schonberg@adacore.com>
1716 * sem_util.adb (Insert_Explicit_Dereference): If operand is a selected
1717 component, we generate a reference to the ultimate prefix when it is an
1718 entity name. We must place the reference on the identifier for that
1719 prefix, and not on the operand itself, to prevent spurious extra
1720 references in the ali file.
1722 2010-10-18 Vincent Celier <celier@adacore.com>
1724 * projects.texi: Add documentation for attribute Ignore_Source_Sub_Dirs
1726 2010-10-18 Ed Schonberg <schonberg@adacore.com>
1728 * einfo.ads, einfo.adb: New attribute PPC_Wrapper for entries and entry
1729 families. Denotes a procedure that performs pre/postcondition checks
1730 and then performs the entry call.
1731 * sem_res.adb (Resolve_Entry_Call): If the entry has
1732 pre/postconditions, replace call with a call to the PPC_Wrapper of the
1734 * exp_ch9.adb (Build_PPC_Wrapper): new procedure.
1735 (Expand_N_Entry_Declaration, Expand_N_Protected_Type_Declaration): call
1736 Build_PPC_Wrapper for all entries in task and protected definitions.
1738 2010-10-18 Tristan Gingold <gingold@adacore.com>
1740 * init.c: Add __gnat_set_stack_guard_page and __gnat_set_stack_limit.
1741 Implement stack limitation on VMS.
1744 2010-10-18 Vincent Celier <celier@adacore.com>
1746 * prj.adb (Is_Compilable): Do not modify Source.Compilable until the
1747 source record has been initialized.
1749 2010-10-18 Robert Dewar <dewar@adacore.com>
1751 * einfo.adb: Minor code reorganization (Primitive_Operations is a
1752 synthesized attribute routine and was in the wrong place).
1754 2010-10-18 Tristan Gingold <gingold@adacore.com>
1756 * init.c: Indentation, and minor changes to more closely follow GNU
1757 style rules. Make more variable statics.
1759 2010-10-18 Vincent Celier <celier@adacore.com>
1761 * prj.adb (Is_Compilable): On first call for a source, cache value in
1762 component Compilable.
1763 * prj.ads (Source_Data): New component Compilable, to cache the value
1764 returned by function Is_Compilable.
1766 2010-10-18 Vincent Celier <celier@adacore.com>
1768 * prj-attr.adb: New project level attribute Ignore_Source_Sub_Dirs.
1769 * prj-nmsc.adb (Expand_Subdirectory_Pattern): New string list parameter
1771 (Recursive_Find_Dirs): Do not consider subdirectories listed in Ignore.
1772 (Get_Directories): Call Find_Source_Dirs with the string list
1773 indicated by attribute Ignore_Source_Sub_Dirs.
1774 * snames.ads-tmpl: New standard name Ignore_Source_Sub_Dirs.
1776 2010-10-18 Javier Miranda <miranda@adacore.com>
1778 * einfo.ads, einfo.adb (Primitive_Operations): New synthesized
1780 (Direct_Primitive_Operations): Renaming of old Primitive_Operations.
1781 (Set_Direct_Primitive_Operations): Renaming of old
1782 Set_Primitive_Operations. Update documentation
1783 * sem_ch3.adb, exp_util.adb, sem_ch7.adb, sem_ch8.adb, exp_ch3.adb:
1784 Replace occurrences of Set_Primitive_Operations by
1785 Set_Direct_Primitive_Operations.
1786 * sem_cat.adb (Validate_RACW_Primitives): No action needed for tagged
1788 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
1789 process primitives of concurrent types.
1790 * lib-xref.adb (Generate_Prim_Op_References): Minor code cleanup.
1792 2010-10-18 Eric Botcazou <ebotcazou@adacore.com>
1794 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Use Freeze_Before.
1795 (Expand_Protected_Object_Reference): Likewise.
1796 * sem_attr.adb (Resolve_Attribute): Likewise.
1797 * sem_ch3.adb (Analyze_Subtype_Declaration): Likewise.
1798 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
1800 2010-10-18 Arnaud Charlet <charlet@adacore.com>
1802 * g-comlin.adb (Get_Switches): Prevent dereferencing null Config.
1804 2010-10-18 Robert Dewar <dewar@adacore.com>
1806 * aspects.ads, aspects.adb: Add entries for aspects
1807 Read/Write/Input/Output.
1808 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for
1809 handling aspects Read/Write/Input/Output.
1811 2010-10-18 Robert Dewar <dewar@adacore.com>
1813 * sem_util.adb (Note_Possible_Modification): Do not give warning for
1814 use of pragma Unmodified unless we are sure this is a modification.
1816 2010-10-18 Tristan Gingold <gingold@adacore.com>
1818 * sysdep.c: Add __gnat_get_stack_bounds.
1819 * s-taprop-mingw.adb Call __gnat_get_stack_bounds to set Pri_Stack_Info.
1821 2010-10-18 Robert Dewar <dewar@adacore.com>
1823 * a-assert.ads: Fix bad name in header.
1824 * sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch10.adb: Minor
1826 * exp_aggr.adb: Fix typo in comment.
1828 2010-10-18 Javier Miranda <miranda@adacore.com>
1830 * exp_util.adb (Side_Effect_Free): Code clean up.
1832 2010-10-18 Ed Schonberg <schonberg@adacore.com>
1834 * sem_ch8.adb (Is_Primitive_Operator_In_Use): Renamed from
1835 Is_Primitive_Operator. When ending the scope of a use package scope, a
1836 primitive operator remains in use if the base type has a current use
1839 2010-10-18 Javier Miranda <miranda@adacore.com>
1841 * einfo.ads (Is_Dynamic_Support): Add missing support for limited
1842 private types whose full-view is a task type.
1843 * sem_util.adb (Enclosing_Subprogram): Add missing support for limited
1844 private types whose full-view is a task type.
1845 * exp_ch7.adb (Find_Final_List): Minor code cleanup replacing code by
1846 function Nearest_Dynamic_Scope which provides the needed functionality.
1848 2010-10-18 Arnaud Charlet <charlet@adacore.com>
1850 * sem_prag.adb (Set_Exported): Do not generate error when exporting a
1851 variable with an address clause in codepeer mode.
1853 2010-10-18 Robert Dewar <dewar@adacore.com>
1855 * g-trasym-vms-ia64.adb: Minor reformatting.
1857 2010-10-18 Thomas Quinot <quinot@adacore.com>
1859 * sem_type.adb (Covers): If either argument is Standard_Void_Type and
1860 the other isn't, return False early.
1862 2010-10-18 Ed Falis <falis@adacore.com>
1864 * s-vxwext-rtp.ads, s-vxext-rtp.adb: Adapt for missing APIs for RTPs in
1867 2010-10-18 Robert Dewar <dewar@adacore.com>
1869 * sem_disp.ads: Minor comment update.
1871 2010-10-18 Robert Dewar <dewar@adacore.com>
1873 * einfo.ads, einfo.adb (Spec_PPC_List): Is now present in Entries
1874 * sem_ch3.adb (Analyze_Declarations): Add processing for delaying
1875 visibility analysis of precondition and postcondition pragmas (and
1877 * sem_ch6.adb (Process_PPCs): Add handling of inherited Pre'Class
1879 * sem_ch7.adb (Analyze_Package_Specification): Remove special handling
1880 of pre/post conditions (no longer needed).
1881 * sem_disp.adb (Inherit_Subprograms): Deal with interface case.
1882 * sem_prag.adb (Analyze_PPC_In_Decl_Part): Remove analysis of message
1883 argument, since this is now done in the main processing for
1884 pre/postcondition pragmas when they are first seen.
1885 (Chain_PPC): Pre'Class and Post'Class now handled properly
1886 (Chain_PPC): Handle Pre/Post aspects for entries
1887 (Check_Precondition_Postcondition): Handle entry declaration case
1888 (Check_Precondition_Postcondition): Handle delay of visibility analysis
1889 (Check_Precondition_Postcondition): Preanalyze message argument if
1892 2010-10-18 Robert Dewar <dewar@adacore.com>
1894 * g-trasym-vms-ia64.adb, prj-nmsc.adb, prj.ads: Minor reformatting.
1896 2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
1898 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set
1899 TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
1900 * gcc-interface/trans.c (Identifier_to_gnu): Set TREE_THIS_NOTRAP on
1901 the INDIRECT_REF node built for objects used by reference.
1902 * gcc-interface/utils2.c (build_binary_op): Add short-circuit for
1903 constant result. Set TREE_THIS_NOTRAP on ARRAY_REF and ARRAY_RANGE_REF.
1904 (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.
1906 2010-10-13 Richard Henderson <rth@redhat.com>
1908 * gcc-interface/misc.c (gnat_eh_personality): Update call to
1909 build_personality_function.
1910 * raise-gcc.c (PERSONALITY_FUNCTION): Change to match other languages;
1911 use__gnat_personality_{v,sj}0.
1913 2010-10-12 Vincent Celier <celier@adacore.com>
1915 * prj-nmsc.adb (Add_Source): Put source in hash table Source_Files_HT
1916 (Process_Exceptions_File_Based): Use hash table Source_Files_HT instead
1917 of iterating through all sources of the project.
1918 * prj.adb (Free): Reset hash table Source_Files_HT
1919 (Reset): Reset hash table Source_Files_HT
1920 * prj.ads (Source_Data): New component Next_With_File_Name
1921 (Source_Files_Htable): New hash table
1922 (Project_Tree_Data): New component Source_Files_HT
1924 2010-10-12 Tristan Gingold <gingold@adacore.com>
1926 * g-trasym-vms-ia64.adb: Use the documented API.
1927 * gcc-interface/Makefile.in: Always set NO_REORDER_ADAFLAGS.
1928 * gcc-interface/Make-lang.in: Update dependencies.
1930 2010-10-12 Thomas Quinot <quinot@adacore.com>
1932 * rtsfind.ads, exp_dist.adb, exp_dist.ads (Build_General_Calling_Stubs,
1933 PolyORB case): Request is now a controlled type: we can declare the
1934 request on the stack, and we do not need explicit cleanup actions
1937 2010-10-12 Bob Duff <duff@adacore.com>
1939 * s-rident.ads (Profile_Info): This variable is now constant.
1941 2010-10-12 Emmanuel Briot <briot@adacore.com>
1943 * g-comlin.adb, g-comlin.ads (Define_Switch): Put back (unused)
1944 parameter Separator for backward compatibility.
1946 2010-10-12 Robert Dewar <dewar@adacore.com>
1948 * sem_ch9.adb, par-ch9.adb, impunit.adb: Minor reformatting.
1950 2010-10-12 Vincent Celier <celier@adacore.com>
1952 * debug.adb: Put detailed documentation for gnatmake switch -dm.
1954 2010-10-12 Vincent Celier <celier@adacore.com>
1956 * gnat1drv.adb: When the compiler is invoked for a spec that needs aw
1957 body, do not generate an ALI file if neither -gnatc nor -gnatQ is used.
1959 2010-10-12 Arnaud Charlet <charlet@adacore.com>
1961 * g-comlin.adb (Foreach_Switch): Make this procedure generic to avoid
1964 2010-10-12 Robert Dewar <dewar@adacore.com>
1966 * debug.adb: Add comment.
1967 * gnatcmd.adb, sem_ch6.adb, switch-m.adb: Minor reformatting.
1969 2010-10-12 Javier Miranda <miranda@adacore.com>
1971 * exp_util.adb (Side_Effect_Free): Return true for object renaming
1972 declarations that were previously generated by Remove_Side_Effects.
1974 2010-10-12 Emmanuel Briot <briot@adacore.com>
1976 * xref_lib.adb (Get_Full_Type): Display "private variable" instead of
1977 "???" when an entity is defined as "*" in the ALI file.
1978 * g-comlin.ads, g-comlin.adb: Fix handling of null parameters.
1981 2010-10-12 Emmanuel Briot <briot@adacore.com>
1983 * g-comlin.adb, g-comlin.ads (Display_Help, Getopt, Current_Section,
1984 Set_Usage): New subprograms.
1985 (Define_Switch): Change profile to add support for help messages and
1988 2010-10-12 Javier Miranda <miranda@adacore.com>
1990 * sem_ch6.adb (New_Overloaded_Entity): Add missing decoration of
1991 attribute Overridden_Operation in predefined dispatching primitives.
1993 2010-10-12 Emmanuel Briot <briot@adacore.com>
1995 * g-comlin.adb, g-comlin.ads (Add_Switch): Raise an exception when a
1996 command line configuration exists and we specify an invalid section.
1998 2010-10-12 Robert Dewar <dewar@adacore.com>
2000 * sem_ch6.adb (Process_PPCs): Fix error in inheriting Pre'Class when no
2001 exception messages are generated.
2002 (Process_PPCs): Fix error in inheriting Pre'Class.
2004 2010-10-12 Jose Ruiz <ruiz@adacore.com>
2006 * gnatcmd.adb: Use response file for GNATstack.
2007 (Check_Files): Pass the list of ci files for GNATstack using a response
2008 file to avoid problems with command line length.
2009 Factor out the code handling response file into a new procedure named
2010 Add_To_Response_File.
2012 2010-10-12 Vincent Celier <celier@adacore.com>
2014 * debug.adb: For gnatmake, document the meaning of -dm
2015 * make.adb (Gnatmake): If -dm is used, indicate the maximum number of
2016 simultaneous compilations.
2017 * switch-m.adb (Scan_Make_Switches): Allow -j0, meaning as many
2018 simultaneous compilations as the number of processors.
2020 2010-10-12 Joseph Myers <joseph@codesourcery.com>
2022 * gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTIONS_H)
2023 instead of options.h.
2025 2010-10-12 Robert Dewar <dewar@adacore.com>
2027 * gnat_rm.texi: Clarify that 'Old can be used in preconditions and
2028 postcondition pragmas.
2030 2010-10-12 Robert Dewar <dewar@adacore.com>
2032 * errout.ads, erroutc.adb: The # insertion now handles from in place of
2034 * exp_prag.adb (Expand_Pragma_Check): Suppress generated default
2035 message if new switch Exception_Locations_Suppressed is set.
2036 (Expand_Pragma_Check): Revised wording for default message for case
2037 of precondition or postcondition.
2038 * namet.ads, namet.adb (Build_Location_String): New procedure.
2039 * opt.ads (List_Inherited_Pre_Post): New flag.
2040 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Add call to
2041 list inherited pre/post aspects.
2042 * sem_ch13.adb (Analyze_Aspect_Specification): Improve generation of
2043 messages for precondition/postcondition cases.
2044 * sem_ch6.adb (Process_PPCs): General cleanup, and list inherited PPC's
2045 if flag List_Inherited_Pre_Post is set True.
2046 (Process_PPCs): Add initial handling for inherited preconditions
2047 (List_Inherited_Pre_Post_Aspects): New procedure
2048 * sem_ch6.ads (List_Inherited_Pre_Post_Aspects): New procedure
2049 * sem_disp.adb (Inherited_Subprograms): New function
2050 * sem_disp.ads (Inherited_Subprograms): New function
2051 * sem_prag.adb (Check_Duplicate_Pragma): Clean up handling of
2053 (Check_Precondition_Postcondition): Check for inherited aspects
2054 * sem_warn.adb: Process -gnatw.l/w.L setting List_Inherited_Pre_Post
2055 * sinfo.ads, sinfo.adb (Split_PPC): New flag.
2056 * sinput.ads, sinput.adb (Build_Location_String): New function.
2057 * usage.adb: Add line for -gnatw.l/-gnatw.L
2059 2010-10-12 Javier Miranda <miranda@adacore.com>
2061 * exp_util.adb (Remove_Side_Effects): Remove wrong code.
2063 2010-10-12 Arnaud Charlet <charlet@adacore.com>
2065 * xref_lib.adb: Add handling of j/J letters.
2067 2010-10-12 Pascal Obry <obry@adacore.com>
2069 * adaint.c (__gnat_number_of_cpus): Add implementation for Windows.
2071 2010-10-12 Arnaud Charlet <charlet@adacore.com>
2073 * make.adb (Globalize): New procedure.
2074 (Compile): Set Do_Codepeer_Globalize_Step when -gnatC is used.
2075 (Gnatmake): Call Globalize when needed.
2076 (Process_Restrictions_Or_Restriction_Warnings): Ignore Restrictions
2077 pragmas in CodePeer mode.
2078 (Adjust_Global_Switches): Set No_Initialize_Scalars in CodePeer mode,
2079 to generate simpler and consistent code.
2081 2010-10-12 Bob Duff <duff@adacore.com>
2083 * exp_util.adb (Remove_Side_Effects): Disable previous change,
2084 can cause side effects to be duplicated.
2086 2010-10-12 Robert Dewar <dewar@adacore.com>
2088 * sem_ch6.adb (Process_PPCs): Handle inherited postconditions.
2090 2010-10-12 Arnaud Charlet <charlet@adacore.com>
2092 * exp_disp.adb (Set_All_DT_Position): Disable emit error message on
2093 abstract inherited private operation in CodePeer mode.
2095 2010-10-12 Thomas Quinot <quinot@adacore.com>
2097 * a-exetim.ads: Minor reformatting.
2098 * g-socket.ads (Port_Type): Better definition corresponding to the
2099 actual standard range.
2100 * exp_ch5.adb: Add comment.
2101 * sem_aux.adb: Minor reformatting.
2103 2010-10-12 Ed Schonberg <schonberg@adacore.com>
2105 * sem_ch12.adb (Copy_Generic_Node): If node is a string literal, remove
2106 string_literal_subtype so that a new one can be constructed in the
2107 scope of the instance.
2109 2010-10-12 Robert Dewar <dewar@adacore.com>
2111 * exp_ch9.adb (Has_Pragma_Priority): New name for Has_Priority_Pragma
2112 * gnat_rm.texi (pragma Suppress_All): Document new placement rules
2113 * par-prag.adb (P_Pragma, case Suppress_All): Set
2114 Has_Pragma_Suppress_All flag.
2115 * sem_prag.adb (Has_Pragma_Priority): New name for Has_Priority_Pragma
2116 (Analyze_Pragma, case Suppress_All): Remove placement check
2117 (Process_Compilation_Unit_Pragmas): Use Has_Pragma_Suppress_All flag
2118 * sem_prag.ads (Process_Compilation_Unit_Pragmas): Update documentation
2119 * sinfo.adb (Has_Pragma_Suppress_All): New flag
2120 (Has_Pragma_Priority): New name for Has_Priority_Pragma
2121 * sinfo.ads (Has_Pragma_Suppress_All): New flag
2122 (Has_Pragma_Priority): New name for Has_Priority_Pragma
2124 2010-10-12 Arnaud Charlet <charlet@adacore.com>
2126 * lib-xref.ads: Mark j/J as reserved for C++ classes.
2128 2010-10-12 Jose Ruiz <ruiz@adacore.com>
2130 * a-exetim-default.ads, a-exetim-posix.adb: New.
2131 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for linux): Use the
2132 POSIX Realtime support to implement CPU clocks.
2133 (EXTRA_GNATRTL_TASKING_OBJS for linux): Add the a-exetim.o object
2134 to the tasking library.
2135 (THREADSLIB): Make the POSIX.1b Realtime Extensions library (librt)
2136 available for shared libraries.
2137 * gcc-interface/Make-lang.in: Update dependencies.
2139 2010-10-12 Robert Dewar <dewar@adacore.com>
2141 * sem_ch13.adb (Analyze_Aspect_Specifications): For Pre/Post, break
2142 apart expressions with AND THEN clauses into separate pragmas.
2143 * sinput.ads, sinput.adab (Get_Logical_Line_Number_Img): New function.
2145 2010-10-12 Robert Dewar <dewar@adacore.com>
2147 * par-ch13.adb (P_Aspect_Specifications): Fix handling of 'Class
2149 * sem_ch13.adb (Analyze_Aspect_Specifications): Fix bad Sloc on aspects
2150 * sem_prag.adb (Fix_Error): Only change pragma names for pragmas from
2152 (Check_Optional_Identifier): Handle case of direct arguments
2153 (Chain_PPC): Test for abstract case, giving appropriate messages
2154 * sinfo.ads, sinfo.adb (Class_Present): Allowed on N_Pragma node
2156 2010-10-12 Robert Dewar <dewar@adacore.com>
2158 * par-endh.adb (Check_End): Don't swallow semicolon or aspects after
2160 * sem_attr.adb (Eval_Attribute): Code clean up.
2162 2010-10-12 Robert Dewar <dewar@adacore.com>
2164 * par-ch12.adb (P_Formal_Private_Type_Definition): Improve error
2165 messages and recovery for case of out of order Abstract/Tagged/Private
2167 * par-ch3.adb (P_Type_Declaration): Improve error messages and recovery
2168 for case of out of order Abstract/Tagged/Private keywords.
2170 2010-10-12 Ed Schonberg <schonberg@adacore.com>
2172 * inline.adb (Analyze_Inlined_Bodies): Restrict previous change to case
2173 where child unit is main unit of compilation.
2175 2010-10-12 Robert Dewar <dewar@adacore.com>
2177 * aspects.ads, aspects.adb (Move_Aspects): New procedure.
2178 * atree.ads, atree.adb: (New_Copy): Does not copy aspect specifications
2179 * sinfo.ads, par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb,
2180 par-endh.adb, par-ch13.adb, par-ch12.adb: Modify grammar to include
2181 aspect specifications.
2182 Recognize aspect specifications for all cases
2183 * par.adb: Recognize aspect specifications for all cases
2184 * sem_ch12.ads, sem_ch12.adb (Copy_Generic_Node): Copies aspect
2186 * sem_ch3.adb (Analyze_Subtype_Declaration): Improve patch to freeze
2187 generic actual types (was missing some guards before).
2188 * sem_ch9.adb (Analyze_Single_Protected_Declaration): Copy aspects to
2190 (Analyze_Single_Task_Declaration): Copy aspects to generated object
2192 2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
2194 * usage.adb (usage): Adjust line for -gnatn switch.
2196 2010-10-12 Robert Dewar <dewar@adacore.com>
2198 * sem_attr.adb (Eval_Attribute): Only leave change active for aspect
2201 2010-10-12 Ed Schonberg <schonberg@adacore.com>
2203 * sem_ch6.adb (Analyze_Subprogram_Declaration): If this is a
2204 declaration of a null procedure resolve the types of the profile of the
2205 generated null body now.
2207 2010-10-11 Robert Dewar <dewar@adacore.com>
2209 * debug.adb: Remove d.A flag to delay address clause (not needed any
2210 more). Add d.A flag to enable tree read/write of aspect spec hash table
2211 * sem_ch13.adb (Analyze_Aspect_Specifications): Properly delay address
2213 (Rep_Item_Too_Late): No need for special processing for delayed rep
2214 items (and it caused difficulties in the address case).
2215 * tree_gen.adb: Only write aspect spec hash table if -gnatd.A is set
2216 * tree_in.adb: Only write aspect spec hash table if -gnatd.A is set
2218 2010-10-11 Pat Rogers <rogers@adacore.com>
2220 * gnat_ugn.texi: Minor editing.
2222 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
2224 * gcc-interface/utils2.c (gnat_build_constructor): Use VEC_qsort.
2226 2010-10-11 Robert Dewar <dewar@adacore.com>
2228 * g-htable.ads (Get_First): New procedural version for Simple_HTable
2229 (Get_Next): New procedural version for Simple_HTable
2230 * s-htable.adb (Get_First): New procedural version for Simple_HTable
2231 (Get_Next): New procedural version for Simple_HTable
2232 * s-htable.ads (Get_First): New procedural version for Simple_HTable
2233 (Get_Next): New procedural version for Simple_HTable
2235 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2237 * sem_aggr.adb (Propagate_Discriminants): To gather the components of a
2238 variant part, use the association list of the subaggregate, which
2239 already includes the values of the needed discriminants.
2241 2010-10-11 Robert Dewar <dewar@adacore.com>
2243 * aspects.ads, aspects.adb: Changes to accomodate aspect delay
2244 (Tree_Write): New procedure.
2245 * atree.ads, atree.adb: Flag3 is now Has_Aspects and applies to all
2247 * atree.h: Flag3 is now Has_Aspects and applies to all nodes
2248 * debug.adb: Add debug flag gnatd.A
2249 * einfo.adb (Has_Delayed_Aspects): New flag
2250 (Get_Rep_Item_For_Entity): New function
2251 * einfo.ads (Has_Delayed_Aspects): New flag
2252 (Get_Rep_Item_For_Entity): New function
2253 * exp_ch13.adb (Expand_N_Freeze_Entity): Insert delayed aspects into
2255 * exp_ch3.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb: New calling
2256 sequence for Freeze_Entity.
2257 * freeze.ads, freeze.adb (Freeze_Entity): Takes node rather than source
2258 ptr. All calls are changed to this new interface.
2259 (Freeze_And_Append): Same change
2260 (Freeze_Entity): Evaluate deferred aspects
2261 * sem_attr.adb: New calling sequence for Freeze_Entity
2262 (Eval_Attribute): Don't try to evaluate attributes of unfrozen types
2263 when we are in spec expression preanalysis mode.
2264 * sem_ch10.adb: New calling sequence for Freeze_Entity
2265 * sem_ch11.adb: Simplify analysis of aspect specifications now that the
2266 flag Has_Aspects applies to all nodes (no need to save aspects).
2267 * sem_ch12.adb: Simplify analysis of aspect specifications now that the
2268 flag Has_Aspects applies to all nodes (no need to save aspects).
2269 * sem_ch13.adb (Analyze_Aspect_Specifications): Major rewrite to
2270 accomodate delaying aspect evaluation to the freeze point.
2271 (Duplicate_Clause): Simplify using Get_Rep_Item_For_Entity, and also
2272 accomodate delayed aspects.
2273 (Rep_Item_Too_Late): Deal with delayed aspects case
2274 * sem_ch13.ads (Rep_Item_Too_Late): Document handling of delayed
2276 * sem_ch3.adb (Analyze_Subtype_Declaration): Make sure that generic
2277 actual types are properly frozen (this is needed because of the new
2278 check in Eval_Attribute that declines to evaluate attributes
2279 for unfrozen types).
2280 Simplify analysis of aspect specifications now that the flag
2281 Has_Aspects applies to all nodes (no need to save aspects).
2282 * sem_ch3.ads (Preanalyze_Spec_Expression): Note use for delayed
2284 * sem_ch5.adb: Simplify analysis of aspect specifications now that the
2285 flag Has_Aspects applies to all nodes (no need to save aspects).
2286 New calling sequence for Freeze_Entity.
2287 * sem_ch9.adb, sem_ch7.adb, sem_ch6.adb: Simplify analysis of aspect
2288 specifications now that the flag Has_Aspects applies to all nodes
2289 (no need to save aspects).
2290 New calling sequence for Freeze_Entity
2291 * sem_prag.adb (Check_Duplicate_Pragma): Simplify using
2292 Get_Rep_Item_For_Entity
2293 (Get_Pragma_Arg): Moved to Sinfo
2294 * sinfo.ads, sinfo.adb (Aspect_Rep_Item_: New field
2295 (Is_Delayed_Aspect): New flag
2296 (Next_Rep_Item): Document use for aspects
2297 (Get_Pragma_Arg): Moved here from Sem_Prag
2298 * sprint.adb (Sprint_Aspect_Specifications): Now called after semicolon
2299 is output and removes semicolon (simplifies interface).
2300 (Sprint_Node_Actual): Simplify handling of aspects now that Has_Aspects
2301 applies to any node.
2302 * tree_gen.adb: Write contents of Aspect_Specifications hash table
2303 * tree_in.adb: Read and initialize Aspect_Specifications hash table
2304 * treepr.adb (Print_Node): Print Has_Aspects flag
2305 (Print_Node): Print Aspect_Specifications in Has_Aspects set
2306 * xtreeprs.adb: Remove obsolete references to Flag1,2,3
2308 2010-10-11 Robert Dewar <dewar@adacore.com>
2310 * aspects.ads, aspects.adb: Major revision of this package for 2nd
2311 stage of aspects implementation.
2312 * gcc-interface/Make-lang.in: Add entry for aspects.o
2313 * gcc-interface/Makefile.in: Add aspects.o to GNATMAKE_OBJS
2314 * par-ch13.adb (Aspect_Specifications_Present): New function
2315 (P_Aspect_Specifications): New procedure
2316 * par-ch3.adb (P_Type_Declaration): Handle aspect specifications
2317 (P_Derived_Type_Def_Or_Private_Ext_Decl): Handle aspect specifications
2318 (P_Identifier_Declarations): Handle aspect specifications
2319 (P_Component_Items): Handle aspect specifications
2320 (P_Subtype_Declaration): Handle aspect specifications
2321 * par-ch6.adb (P_Subprogram): Handle aspect specifications
2322 * par-ch9.adb (P_Entry_Declaration): Handle aspect specifications
2323 * par.adb (Aspect_Specifications_Present): New function
2324 (P_Aspect_Specifications): New procedure
2325 * sem.adb (Analyze_Full_Type_Declaration): New name for
2326 Analyze_Type_Declaration.
2327 (Analyze_Formal_Package_Declaration): New name (add _Declaration)
2328 (Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
2329 (Analyze_Protected_Type_Declaration): New name (add _Declaration)
2330 (Analyze_Single_Protected_Declaration): New name (add _Declaration)
2331 (Analyze_Single_Task_Declaration): New name (add _Declaration)
2332 (Analyze_Task_Type_Declaration): New name (add _Declaration)
2333 * sem_cat.adb (Analyze_Full_Type_Declaration): New name for
2334 Analyze_Type_Declaration.
2335 * sem_ch11.adb (Analyze_Exception_Declaration): Analyze aspect
2337 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Handle aspect
2339 (Analyze_Formal_Package_Declaration): New name (add _Declaration)
2340 (Analyze_Formal_Package_Declaration): Handle aspect specifications
2341 (Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
2342 (Analyze_Formal_Subprogram_Declaration): Handle aspect specifications
2343 (Analyze_Formal_Type_Declaration): Handle aspect specifications
2344 (Analyze_Generic_Package_Declaration): Handle aspect specifications
2345 (Analyze_Generic_Subprogram_Declaration): Handle aspect specifications
2346 (Analyze_Package_Instantiation): Handle aspect specifications
2347 (Analyze_Subprogram_Instantiation): Handle aspect specifications
2348 * sem_ch12.ads (Analyze_Formal_Package_Declaration): New name (add
2350 (Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
2351 * sem_ch13.adb (Analyze_Aspect_Specifications): New procedure
2352 (Duplicate_Clause): New function, calls to this function are added to
2353 processing for all aspects.
2354 * sem_ch13.ads (Analyze_Aspect_Specifications): New procedure
2355 * sem_ch3.adb (Analyze_Full_Type_Declaration): New name for
2356 Analyze_Type_Declaration.
2357 * sem_ch3.ads (Analyze_Full_Type_Declaration): New name for
2358 Analyze_Type_Declaration.
2359 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Analyze aspect
2361 (Analyze_Subprogram_Declaration): Analyze aspect specifications
2362 * sem_ch7.adb (Analyze_Package_Declaration): Analyze aspect
2364 (Analyze_Private_Type_Declaration): Analyze aspect specifications
2365 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Analyze aspect
2367 (Analyze_Protected_Type_Declaration): New name (add _Declaration)
2368 (Analyze_Single_Protected_Declaration): Analyze aspect specifications
2369 (Analyze_Single_Protected_Declaration): New name (add _Declaration)
2370 (Analyze_Single_Task_Declaration): Analyze aspect specifications
2371 (Analyze_Single_Task_Declaration): New name (add _Declaration)
2372 (Analyze_Task_Type_Declaration): Analyze aspect specifications
2373 (Analyze_Task_Type_Declaration): New name (add _Declaration)
2374 * sem_ch9.ads (Analyze_Protected_Type_Declaration): New name (add
2376 (Analyze_Single_Protected_Declaration): New name (add _Declaration)
2377 (Analyze_Single_Task_Declaration): New name (add _Declaration)
2378 (Analyze_Task_Type_Declaration): New name (add _Declaration)
2379 * sem_prag.adb: Use Get_Pragma_Arg systematically so that we do not
2380 have to generate unnecessary pragma argument associations (this matches
2382 Throughout do changes to accomodate aspect specifications, including
2383 specializing messages, handling the case of not going through all
2384 homonyms, and allowing for cancellation.
2385 * sinfo.ads, sinfo.adb: Clean up obsolete documentation for Flag1,2,3
2386 (Aspect_Cancel): New flag
2387 (From_Aspect_Specification): New flag
2388 (First_Aspect): Removed flag
2389 (Last_Aspect): Removed flag
2390 * sprint.adb (Sprint_Aspect_Specifications): New procedure
2391 (Sprint_Node_Actual): Add calls to Sprint_Aspect_Specifications
2393 2010-10-11 Bob Duff <duff@adacore.com>
2395 * sem_res.adb (Resolve_Actuals): Minor change to warning messages so
2396 they match in Ada 95, 2005, and 2012 modes, in the case where the
2397 language didn't change. Same thing for the run-time exception message.
2399 2010-10-11 Javier Miranda <miranda@adacore.com>
2401 * debug.adb Document that switch -gnatd.p enables the CIL verifier.
2403 2010-10-11 Robert Dewar <dewar@adacore.com>
2405 * s-htable.adb: Minor reformatting.
2407 2010-10-11 Javier Miranda <miranda@adacore.com>
2409 * debug.adb: Update comment.
2411 2010-10-11 Vincent Celier <celier@adacore.com>
2413 * gnatcmd.adb (GNATCmd): Set Opt.Unchecked_Shared_Lib_Imports to True
2414 unconditionally as for "gnat make" the projects are not processed in
2417 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2419 * sem_ch10.ads, sem_ch10.adb (Load_Needed_Body): Add parameter to
2420 suppress semantic analysis of the body when inlining, prior to
2421 verifying that the body does not have a with_clause on a descendant
2423 * inline.adb (Analyze_Inlined_Bodies): Do not inline a body if it has a
2424 with_clause on a descendant.
2425 (Scope_In_Main_Unit): Simplify.
2427 2010-10-11 Robert Dewar <dewar@adacore.com>
2429 * exp_ch6.adb, freeze.adb: Minor reformatting.
2431 2010-10-11 Vincent Celier <celier@adacore.com>
2433 * gnatcmd.adb (GNATCmd): For all tools other than gnatmake, allow
2434 shared library projects to import projects that are not shared library
2437 2010-10-11 Javier Miranda <miranda@adacore.com>
2439 * debug.adb: Document that switch -gnatd.o generates the CIL listing.
2441 2010-10-11 Arnaud Charlet <charlet@adacore.com>
2443 * sem_prag.adb (Process_Suppress_Unsuppress): Only ignore
2444 Suppress/Unsuppress pragmas in codepeer mode on user code.
2446 2010-10-11 Javier Miranda <miranda@adacore.com>
2448 * exp_ch6.adb (Expand_Call): For VM platforms, add missing expansion of
2449 tag check in case of dispatching call through "=".
2451 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2453 * sem_ch3.adb (Access_Subprogram_Declaration): In Ada2012 an incomplete
2454 type is legal in the profile of any basic declaration.
2455 * sem_ch6.adb (Analyze_Return_Type, Process_Formals): In Ada2012 an
2456 incomplete type, including a limited view of a type, is legal in the
2457 profile of any subprogram declaration.
2458 If the type is tagged, its use is also legal in a body.
2459 * sem_ch10.adb (Install_Limited_With_Clause): Do not process context
2461 (Install_Limited_Withed_Unit): Refine legality checks when both the
2462 limited and the non-limited view of a package are visible in the
2464 If this is not an error case, the limited view is ignored.
2465 freeze.adb (Freeze_Entity): In Ada2012, an incomplete type is legal in
2466 access to subprogram declarations
2468 2010-10-11 Robert Dewar <dewar@adacore.com>
2470 * exp_ch6.adb: Code clean up.
2471 * exp_util.adb: Minor reformatting.
2473 2010-10-11 Arnaud Charlet <charlet@adacore.com>
2475 * sem_ch3.adb, exp_ch6.adb
2476 (Make_Build_In_Place_Call_In_Anonymous_Context,
2477 Make_Build_In_Place_Call_In_Assignment,
2478 Make_Build_In_Place_Call_In_Object_Declaration): Fix calls to
2479 Add_Task_Actuals_To_Build_In_Place_Call in case of No_Task_Hierarchy
2481 (Access_Definition): Add missing handling of No_Task_Hierarchy.
2483 2010-10-11 Javier Miranda <miranda@adacore.com>
2485 * exp_util.adb (Remove_Side_Effects): No action needed for renamings of
2486 class-wide expressions.
2488 2010-10-11 Arnaud Charlet <charlet@adacore.com>
2490 * xr_tabls.adb, sem_res.adb: Minor reformatting
2492 2010-10-11 Arnaud Charlet <charlet@adacore.com>
2494 * gnat_rm.texi, exp_attr.adb, sem_attr.adb, sem_attr.ads,
2495 snames.ads-tmpl (Analyze_Attribute, Expand_N_Attribute_Reference): Add
2496 handling of Attribute_Ref. Add missing blanks in some error messages.
2497 (Attribute_Ref, Name_Ref): Declare.
2498 Document 'Ref attribute.
2500 2010-10-11 Robert Dewar <dewar@adacore.com>
2502 * sem_attr.adb: Minor reformatting.
2504 2010-10-11 Javier Miranda <miranda@adacore.com>
2506 * sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading
2507 package System.Aux_Dec in VM platforms.
2509 2010-10-11 Arnaud Charlet <charlet@adacore.com>
2511 * sem_prag.adb (Process_Suppress_Unsuppress): Ignore
2512 Suppress/Unsuppress pragmas in codepeer mode.
2513 (Analyze_Pragma [Pragma_Suppress_All]): Do not generate error message
2515 * einfo.ads: Fix typo.
2517 2010-10-11 Emmanuel Briot <briot@adacore.com>
2519 * sinfo.adb: Use GNAT.HTable rather than System.HTable.
2520 * prj-nmsc.adb: Minor reformatting.
2522 2010-10-11 Thomas Quinot <quinot@adacore.com>
2524 * sem_attr.adb (Type_Key): Code simplification.
2526 2010-10-11 Tristan Gingold <gingold@adacore.com>
2528 * gcc-interface/utils2.c (maybe_wrap_malloc): Fix crash when allocating
2529 very large object on VMS.
2531 2010-10-11 Javier Miranda <miranda@adacore.com>
2533 * sem_ch10.adb (Analyze_With_Clause): Add missing test to ensure
2534 availability of attribute Instance_Spec.
2536 2010-10-11 Arnaud Charlet <charlet@adacore.com>
2538 * gnat1drv.adb (Adjust_Global_Switches): Disable codepeer mode if
2539 checking syntax only or in ASIS mode.
2541 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2543 * sem_ch6.adb (Check_Delayed_Subprogram): Abstract subprograms may also
2544 need a freeze node if some type in the profile has one.
2545 * gcc-interface/trans.c (case N_Abstract_Subprogram_Declaration): If
2546 entity has a freeze node, defer elaboration.
2548 2010-10-11 Emmanuel Briot <briot@adacore.com>
2550 * prj-nmsc.adb (Check_Aggregate_Project): Add support for finding all
2551 aggregated projects.
2553 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2555 * sem_res.adb (Resolve_Entry_Call): Generate 's' reference for entry
2557 * sem_ch6.adb: Diagnose additional error condition.
2559 2010-10-11 Bob Duff <duff@adacore.com>
2561 * par.adb (Par): Clarify wording of certain error messages.
2563 2010-10-11 Gary Dismukes <dismukes@adacore.com>
2565 * sem_disp.adb (Check_Dispatching_Operation): Revise test for warning
2566 about nondispatching subprograms to use In_Same_List (reducing use of
2569 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2571 * xr_tabls.adb, sem_res.adb, lib-xref.adb, lib-xref.ads: Use s for
2572 reference in a static call.
2574 2010-10-11 Steve Baird <baird@adacore.com>
2576 * exp_attr.adb (Expand_N_Attribute_Reference, case Type_Key): Type_Key
2577 attribute should always be transformed into a string literal in
2579 * par-ch4.adb: Type_Key attribute's type is String; update value of
2580 Is_Parameterless_Attribute constant to reflect this.
2581 * sem_attr.adb (Analyze_Attribute): Recognize Type_Key attribute and
2582 rewrite it as a string literal (attribute value is always known
2584 * snames.ads-tmpl: Add entries for Type_Key attribute.
2586 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2588 * lib-xref.adb (Output_References): Common handling for objects and
2589 formals of an anonymous access type.
2591 2010-10-11 Eric Botcazou <ebotcazou@adacore.com>
2593 * make.adb (Scan_Make_Arg): Also pass -O to both compiler and linker.
2595 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2597 * sem_ch6.adb: Fix check for illegal equality declaration in Ada2012
2599 2010-10-11 Gary Dismukes <dismukes@adacore.com>
2601 * sem_disp.adb (Check_Dispatching_Operation): When testing for issuing
2602 a warning about subprograms of a tagged type not being dispatching,
2603 limit this to cases where the tagged type and the subprogram are
2604 declared within the same declaration list.
2606 2010-10-11 Jerome Lambourg <lambourg@adacore.com>
2608 * projects.texi, prj-attr.adb: Add new attribute documentation_dir.
2610 2010-10-11 Bob Duff <duff@adacore.com>
2612 * par-ch9.adb, sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, impunit.adb,
2613 impunit.ads, sem_ch5.adb, sem_type.adb, exp_imgv.adb, exp_util.adb,
2614 switch-c.adb, exp_attr.adb, exp_ch9.adb, par-ch11.adb, usage.adb,
2615 sem_ch9.adb, sem_ch10.adb, scng.adb, checks.adb, sem_prag.adb,
2616 sem_ch12.adb, par-ch2.adb, freeze.adb, par-ch4.adb, sem_util.adb,
2617 sem_res.adb, sem_attr.adb, par-ch6.adb, exp_ch4.adb, exp_ch6.adb,
2618 sem_ch4.adb, exp_ch8.adb, par-ch10.adb, sem_ch6.adb, par-prag.adb,
2619 exp_disp.adb, par-ch12.adb, sem_ch8.adb, snames.adb-tmpl, opt.ads,
2620 exp_aggr.adb, sem_cat.adb, sem_ch13.adb, par-ch3.adb, exp_strm.adb,
2621 exp_cg.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb: Use Ada_2005
2622 instead of Ada_05 (Ada_Version_Type).
2624 2010-10-11 Bob Duff <duff@adacore.com>
2626 * sem_aggr.adb, impunit.adb, impunit.ads, switch-c.adb, usage.adb,
2627 sem_ch10.adb, sem_prag.adb, sem_ch12.adb, par-ch4.adb, par-ch6.adb,
2628 par-ch8.adb, exp_ch4.adb, sem_ch4.adb, sem_ch6.adb, par-prag.adb,
2629 opt.ads, par-ch3.adb, lib-xref.adb: Use Ada_2012 instead of Ada_12
2632 2010-10-11 Javier Miranda <miranda@adacore.com>
2634 * exp_util.adb (Safe_Prefixed_Reference): If the prefix is an explicit
2635 dereference then do not exclude dereferences of access-to-constant
2636 types to handle them as constant view of variables (and hence remove
2637 side effects when required).
2638 * sem_res.adb (Resolve_Slice): Ensure that side effects in the bounds
2639 are properly handled.
2641 2010-10-11 Robert Dewar <dewar@adacore.com>
2643 * sem_prag.adb, sem_aggr.adb, sprint.adb: Minor reformatting.
2645 2010-10-11 Javier Miranda <miranda@adacore.com>
2647 * exp_ch5.ads, exp_ch6.ads (Expand_N_Extended_Return_Statement): Moved
2649 (Expand_N_Simple_Return_Statement): Moved to exp_ch6.
2650 * exp_ch5.adb, exp_ch6.adb (Expand_Non_Function_Return): Moved to
2652 (Expand_Simple_Function_Return): Move to exp_ch6.
2653 (Expand_N_Extended_Return_Statement): Moved to exp_ch6.
2654 (Expand_N_Simple_Return_Statement): Moved to exp_ch6.
2656 2010-10-11 Robert Dewar <dewar@adacore.com>
2658 * snames.ads-tmpl: Add names for aspects.
2659 * aspects.ads, aspects.adb: New.
2660 * gcc-interface/Make-lang.in: Update dependencies.
2661 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2663 * exp_ch6.adb (Expand_Actuals): If an actual is the current instance of
2664 a task type, it must be replaced with a reference to Self.
2666 2010-10-11 Vincent Celier <celier@adacore.com>
2668 * adaint.h: Add prototype for function __gnat_create_output_file_new.
2670 2010-10-11 Javier Miranda <miranda@adacore.com>
2672 * sem_aggr.adb (Collect_Aggr_Bounds): Remove side effects of collected
2675 2010-10-11 Arnaud Charlet <charlet@adacore.com>
2677 * sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Do not emit error
2678 for AI05-0033 in CodePeer mode.
2680 2010-10-11 Robert Dewar <dewar@adacore.com>
2682 * atree.h, atree.ads, atree.adb (Flag3): New flag (replaces Unused_1)
2683 * csinfo.adb: Aspect_Specifications is a new special field
2684 * einfo.adb (Flag3): New unused flag
2685 * exp_util.adb (Insert_Actions): Add processing for
2686 N_Aspect_Specification.
2687 * sem.adb: Add entry for N_Aspect_Specification.
2688 * sinfo.ads, sinfo.adb (N_Aspect_Specification): New node
2689 (Has_Aspect_Specifications): New flag
2690 (Permits_Aspect_Specifications): New function
2691 (Aspect_Specifications): New function
2692 (Set_Aspect_Specifications): New procedure
2693 * sprint.adb (Sprint_Node): Put N_At_Clause in proper alpha order
2694 (Sprint_Node): Add dummy entry for N_Aspect_Specification
2695 * treepr.adb (Flag3): New flag to be listed
2697 2010-10-11 Vincent Celier <celier@adacore.com>
2699 * adaint.c: Minor reformatting.
2701 2010-10-11 Robert Dewar <dewar@adacore.com>
2703 * sem_ch6.adb, s-htable.ads: Minor reformatting.
2705 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2707 * sem_ch4.adb (Analyze_Selected_Component): If the selector is
2708 invisible in an instantiation, and both the formal and the actual are
2709 private extensions of the same type, look for the desired component in
2710 the proper view of the parent type.
2712 2010-10-11 Vincent Celier <celier@adacore.com>
2714 * adaint.c (__gnat_number_of_cpus): Add implementation for Solaris,
2715 AIX, Tru64, Darwin, IRIX and HP-UX.
2717 2010-10-11 Robert Dewar <dewar@adacore.com>
2719 * a-textio.adb: Minor reformatting
2721 2010-10-11 Robert Dewar <dewar@adacore.com>
2723 * a-suesen.ads, a-suenst.ads,
2724 a-suesen.adb, a-suenst.adb,
2725 a-suewse.adb, a-suewst.adb,
2726 a-suewse.ads, a-suewst.ads,
2727 a-suezse.ads, a-suezst.ads,
2728 a-suezse.adb, a-suezst.adb: New name for string encoding packages.
2729 * impunit.adb: New names for string encoding units
2730 * Makefile.rtl: New names for string encoding units
2731 * rtsfind.ads: Minor code reorganization.
2733 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2735 * exp_ch5.adb: Code clean up.
2737 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2739 * sem_ch6.adb (Check_Limited_Return): Specialize warning on limited
2740 returns when in a generic context.
2741 (Analyze_Function_Return): ditto.
2743 2010-10-11 Robert Dewar <dewar@adacore.com>
2745 * s-multip.ads: Fix header.
2746 * sem_ch3.adb, s-multip.adb, a-tigeli.adb: Minor reformatting.
2748 2010-10-11 Vincent Celier <celier@adacore.com>
2750 * Makefile.rtl: Add s-multip.
2751 * adaint.c: New function __gnat_number_of_cpus, implemented for Linux,
2752 defaulting to 1 for other platforms.
2753 * adaint.h: New function __gnat_number_of_cpus.
2754 * impunit.adb (Non_Imp_File_Names_12): New file list for Ada 2012,
2755 with a single component "s-multip".
2756 * impunit.ads (Kind_Of_Unit): New enumerated value Ada_12_Unit for Ada
2758 * rtsfind.ads (RTU_Id): New enumerated value System_Multiprocessors
2759 * s-multip.ads, s-multip.adb: New Ada 2012 package.
2760 * sem_ch10.adb (Analyze_With_Clause): Check also Ada 2012 units.
2762 2010-10-11 Javier Miranda <miranda@adacore.com>
2764 * a-textio.adb: Move new implementation of Get_Line to a subunit.
2765 * a-tigeli.adb: New subunit containing the implementation of Get_Line.
2767 2010-10-11 Ed Schonberg <schonberg@adacore.com>
2769 * sem_aux.adb: Code clean up.
2771 2010-10-11 Robert Dewar <dewar@adacore.com>
2773 * sem_ch3.adb, sem_aux.adb, sem_ch6.adb: Minor reformatting
2775 2010-10-11 Robert Dewar <dewar@adacore.com>
2777 * einfo.adb, atree.h, atree.ads, atree.adb: Define seven new flags
2778 Flag248-Flag254. Define new field Field29.
2780 2010-10-10 Olivier Hainque <hainque@adacore.com>
2781 Eric Botcazou <ebotcazou@adacore.com>
2783 * gcc-interface/lang.opt (gdwarf+): Remove.
2784 * gcc-interface/gigi.h (get_parallel_type): Likewise
2785 * gcc-interface/misc.c (gnat_dwarf_extensions): Likewise.
2786 (gnat_handle_option): Remove OPT_gdwarfplus case.
2787 (gnat_post_options): Remove setting of use_gnu_debug_info_extensions
2788 from gnat_dwarf_extensions.
2789 * gcc-interface/trans.c (gigi): Remove -gdwarf+ initializations.
2790 * gcc-interface/utils.c (get_parallel_type): Remove.
2792 2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
2794 * gcc-interface/trans.c (gnat_to_gnu) <N_Not_In>: Use
2795 invert_truthvalue_loc instead of invert_truthvalue.
2796 * gcc-interface/utils2.c (build_binary_op) <NE_EXPR>: Likewise.
2797 (build_unary_op) <TRUTH_NOT_EXPR>: Likewise.
2799 2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
2801 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
2802 assertion on the types of the parameters. Use KIND local variable.
2803 <E_Incomplete_Type>: Likewise.
2805 2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
2807 * gcc-interface/ada-tree.h (DECL_BY_DOUBLE_REF_P): New macro.
2808 * gcc-interface/gigi.h (annotate_object): Add BY_DOUBLE_REF parameter.
2809 * gcc-interface/decl.c (annotate_object): Likewise and handle it.
2810 (gnat_to_gnu_entity): Adjust calls to annotate_object.
2811 (gnat_to_gnu_param): If fat pointer types are passed by reference on
2812 the target, pass them by explicit reference.
2813 * gcc-interface/misc.c (default_pass_by_ref): Fix type of constant.
2814 * gcc-interface/trans.c (Identifier_to_gnu): Do DECL_BY_DOUBLE_REF_P.
2815 (Subprogram_Body_to_gnu): Adjust call to annotate_object.
2816 (call_to_gnu): Handle DECL_BY_DOUBLE_REF_P.
2817 * gcc-interface/utils.c (convert_vms_descriptor): Add BY_REF parameter
2819 (build_function_stub): Iterate on the parameters of the subprogram in
2820 lieu of on the argument types. Adjust call to convert_vms_descriptor.
2822 2010-10-09 Eric Botcazou <ebotcazou@adacore.com>
2824 * gcc-interface/misc.c: Delete prototypes.
2825 (gnat_init_options): Use local variable.
2826 (lang_hooks): Move to the end of the file.
2828 2010-10-08 Joseph Myers <joseph@codesourcery.com>
2830 * gcc-interface/misc.c (gnat_init_options_struct): New. Split out
2831 from gnat_init_options.
2832 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2834 2010-10-08 Ed Schonberg <schonberg@adacore.com>
2836 * sem_aux.adb: Cleanup Is_Immutably_Limited_Type.
2838 2010-10-08 Robert Dewar <dewar@adacore.com>
2840 * exp_ch3.adb: Minor reformatting.
2841 * exp_ch5.adb: Add comment.
2843 2010-10-08 Robert Dewar <dewar@adacore.com>
2845 * sem_prag.adb (Check_Duplicate_Pragma): Check for entity match
2846 * gcc-interface/Make-lang.in: Update dependencies.
2847 * einfo.ads: Minor reformatting.
2849 2010-10-08 Ed Schonberg <schonberg@adacore.com>
2851 * exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, sem_aux.adb,
2852 sem_aux.ads, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
2853 exp_ch3.adb: Change Is_Inherently_Limited_Type to
2854 Is_Immutably_Limited_Type to accord with new RM terminology.
2855 * sem_aux.adb (Is_Immutably_Limited_Type): A type that is a descendant
2856 of a formal limited private type is not immutably limited in a generic
2859 2010-10-08 Robert Dewar <dewar@adacore.com>
2861 * sem_prag.adb (Check_Duplicate_Pragma): New procedure
2862 Add calls to this new procedure where appropriate
2864 2010-10-08 Vincent Celier <celier@adacore.com>
2866 * a-textio.adb (Get_Chunk): Code clean up.
2868 2010-10-08 Robert Dewar <dewar@adacore.com>
2870 * a-strbou.ads, a-strfix.adb, a-strfix.ads, a-strsea.adb, a-strsea.ads,
2871 a-strsup.adb, a-strsup.ads, a-strunb-shared.adb, a-strunb-shared.ads,
2872 a-strunb.adb, a-strunb.ads, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
2873 a-stwise.adb, a-stwise.ads, a-stwisu.adb, a-stwisu.ads,
2874 a-stwiun-shared.adb, a-stwiun-shared.ads, a-stwiun.adb, a-stwiun.ads,
2875 a-stzbou.ads, a-stzfix.adb, a-stzfix.ads, a-stzsea.adb, a-stzsea.ads,
2876 a-stzsup.adb, a-stzsup.ads, a-stzunb-shared.adb, a-stzunb-shared.ads,
2877 a-stzunb.adb, a-stzunb.ads (Find_Token): New version with From
2880 2010-10-08 Robert Dewar <dewar@adacore.com>
2882 * sem_cat.adb (Check_Categorization_Dependencies): Remote types
2883 packages can depend on preleborated packages.
2885 2010-10-08 Robert Dewar <dewar@adacore.com>
2887 * sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Pragmas
2888 Interrupt_Handler and Attach_Handler not allowed in generics.
2890 2010-10-08 Robert Dewar <dewar@adacore.com>
2892 * ali.adb: Set Allocator_In_Body if AB parameter present on M line
2893 * ali.ads (Allocator_In_Body): New flag
2894 * bcheck.adb (Check_Consistent_Restrictions): Handle case of main
2895 program violating No_Allocators_After_Elaboration restriction.
2896 * gnatbind.adb (No_Restriction_List): Add entries for
2897 No_Anonymous_Allocators, and No_Allocators_After_Elaboration.
2898 * lib-load.adb: Initialize Has_Allocator flag
2899 * lib-writ.adb: Initialize Has_Allocator flag
2900 (M_Parameters): Set AB switch if Has_Allocator flag set
2901 * lib-writ.ads: Document AB flag on M line
2902 * lib.adb (Has_Allocator): New function
2903 (Set_Has_Allocator): New procedure
2904 * lib.ads (Has_Allocator): New function
2905 (Set_Has_Allocator): New procedure
2906 (Has_Allocator): New flag in Unit_Record
2907 * sem_ch4.adb (Analyze_Allocator): Add processing for
2908 No_Allocators_After_Elaboration.
2910 2010-10-08 Geert Bosch <bosch@adacore.com>
2912 * a-textio.adb (Get_Line): Rewrite to use fgets instead of fgetc.
2914 2010-10-08 Javier Miranda <miranda@adacore.com>
2916 * sem_prag.adb (Analyze_Pragma): Relax semantic rule of
2917 Java_Constructors because in the JRE library we generate occurrences
2918 in which the "this" parameter is not the first formal.
2920 2010-10-08 Robert Dewar <dewar@adacore.com>
2922 * par-ch3.adb: Minor reformatting.
2924 2010-10-08 Javier Miranda <miranda@adacore.com>
2926 * exp_disp.adb (Make_DT): Do not generate dispatch tables for CIL/Java
2929 2010-10-08 Robert Dewar <dewar@adacore.com>
2931 * par-ch8.adb (P_Use_Type_Clause): Recognize ALL keyword in Ada 2012
2933 * sinfo.adb (Use_Type_Clause): Add All_Present flag.
2934 * sinfo.ads (Use_Type_Clause): Add All_Present flag.
2935 * s-rident.ads: Add entry for No_Allocators_After_Elaboration,
2936 No_Anonymous_Allocators.
2938 2010-10-08 Vincent Celier <celier@adacore.com>
2940 * bindgen.adb (Gen_Restrictions_Ada): No new line after last
2941 restriction, so that the last comma is always replaced with a left
2944 2010-10-08 Javier Miranda <miranda@adacore.com>
2946 * sem_prag.adb (Analyze_Pragma): Add specific check on the type of the
2947 first formal of delegates.
2949 2010-10-08 Robert Dewar <dewar@adacore.com>
2951 * sem_aggr.adb: Minor reformatting.
2953 2010-10-08 Robert Dewar <dewar@adacore.com>
2955 * exp_imgv.adb (Expand_Image_Attribute): Handle special calling
2956 sequence for soft hyphen for Character'Image case.
2957 * rtsfind.ads (Image_Character_05): New entry
2958 * s-imgcha.adb (Image_Character_05): New procedurew
2959 * s-imgcha.ads (Image_Character_05): New procedure
2960 * s-imgwch.adb (Image_Wide_Character): Deal with Ada 2005 soft hyphen
2962 * s-valcha.adb (Value_Character): Recognize SOFT_HYPHEN for 16#AD#
2963 * sem_attr.adb (Eval_Attribute, case Width): Handle soft_hyphen name
2966 2010-10-08 Robert Dewar <dewar@adacore.com>
2968 * sem_attr.adb (Eval_Attribute, case Width): Avoid ludicrous long loop
2969 for case of Wide_[Wide_]Character.
2971 2010-10-08 Robert Dewar <dewar@adacore.com>
2973 * exp_ch3.adb: Minor reformating
2974 Minor code reorganization.
2976 2010-10-08 Javier Miranda <miranda@adacore.com>
2978 * sem_prag.adb (Analyze_Pragma): Add missing checks on wrong use of
2979 pragmas CIL_Constructor and Java_Constructor.
2980 * exp_ch3.adb (Expand_Freeze_Record_Type): Do not generate the
2981 predefined primitives for CIL/Java tagged types.
2983 2010-10-08 Robert Dewar <dewar@adacore.com>
2985 * sem_ch6.adb: Minor reformatting.
2987 2010-10-08 Robert Dewar <dewar@adacore.com>
2989 * gnat1drv.adb: Add call to Validate_Independence.
2990 * par-prag.adb: Add dummy entries for Independent,
2991 Independent_Componentsa.
2992 * sem_ch13.adb (Validate_Independence): New procedure
2993 (Initialize): Initialize address clause and independence check tables
2994 * sem_ch13.ads (Independence_Checks): New table
2995 (Validate_Independence): New procedure
2996 * sem_prag.adb: Add processing for pragma Independent[_Components]
2997 * snames.ads-tmpl: Add entries for pragma Independent[_Components]
2999 2010-10-08 Ed Schonberg <schonberg@adacore.com>
3001 * sem_aggr.adb (Propagate_Discriminants): When expanding an aggregate
3002 component with box initialization, if the component is a variant record
3003 use the values of the discriminants to select the proper variant for
3004 further box initialization.
3006 2010-10-08 Thomas Quinot <quinot@adacore.com>
3008 * xsnames.adb: Remove obsolete file.
3009 * make.adb, sem_ch8.adb, einfo.ads: Minor reformatting.
3011 2010-10-08 Ed Schonberg <schonberg@adacore.com>
3013 * exp_aggr.adb: Complete previous change.
3015 2010-10-08 Ed Schonberg <schonberg@adacore.com>
3017 * sem_ch6.adb (Check_Return_Subtype): The subtype indication in an
3018 extended return must match statically the return subtype of the
3019 enclosing function if the type is an elementary type or if it is
3022 2010-10-08 Vincent Celier <celier@adacore.com>
3024 * prj-nmsc.adb (Add_Source): Report all duplicate units and source file
3025 names. Do not report the same duplicate unit several times.
3026 * prj.ads (Source_Data): New Boolean component Duplicate_Unit,
3027 defaulted to False, to avoid reporting the same unit as duplicate
3030 2010-10-08 Ed Schonberg <schonberg@adacore.com>
3032 * sem_aggr.adb (Resolve_Array_Aggregate): If the expression in an
3033 others choice is a literal, analyze it to enable later optimizations.
3034 * exp_aggr.adb (Expand_Record_Aggregate): An aggregate with static size
3035 and components can be handled by the backend even if it is of a limited
3038 2010-10-08 Arnaud Charlet <charlet@adacore.com>
3040 * a-rttiev.adb (task Timer): Since this package may be elaborated
3041 before System.Interrupt, we need to call Setup_Interrupt_Mask
3042 explicitly to ensure that this task has the proper signal mask.
3044 2010-10-08 Robert Dewar <dewar@adacore.com>
3046 * freeze.adb (Freeze_Entity): For array case, move some processing for
3047 pragma Pack, Component_Size clause and atomic/volatile components here
3048 instead of trying to do the job in Sem_Ch13 and Freeze.
3049 * layout.adb: Use new Addressable function
3050 * sem_ch13.adb (Analyze_Attribute_Representation_Clause, case
3051 Component_Size): Move some handling to freeze point in
3052 Freeze.Freeze_Entity.
3053 * sem_prag.adb (Analyze_pragma, case Pack): Move some handling to
3054 freeze point in Freese.Freeze_Entity.
3055 * sem_util.ads, sem_util.adb (Addressable): New function.
3057 2010-10-08 Robert Dewar <dewar@adacore.com>
3059 * sprint.adb: Minor reformatting.
3061 2010-10-08 Javier Miranda <miranda@adacore.com>
3063 * exp_ch4.adb (Real_Range_Check): Declare temporary as constant.
3065 2010-10-08 Robert Dewar <dewar@adacore.com>
3067 * sem_ch3.adb: Minor reformatting.
3069 2010-10-08 Vincent Celier <celier@adacore.com>
3071 * ali-util.adb (Get_File_Checksum): Make sure that external_as_list is
3072 not a reserved word.
3073 * prj-proc.adb (Expression): Process string list external references.
3074 * prj-strt.adb (External_Reference): Parse external_as_list external
3076 * prj-tree.ads (Expression_Kind_Of): Allowed for N_External_Value nodes
3077 (Set_Expression_Kind_Of): Ditto
3078 * prj.adb (Initialize): Set external_as_list as a reserved word
3079 * projects.texi: Document new string external reference
3081 * scans.ads (Token_Type): New token Tok_External_As_List
3082 * snames.ads-tmpl: New standard name Name_External_As_List
3084 2010-10-08 Thomas Quinot <quinot@adacore.com>
3086 * sem_prag.adb: Minor reformatting.
3088 2010-10-08 Ed Schonberg <schonberg@adacore.com>
3090 * sem_ch3.adb (Derived_Type_Declaration): In the private part of an
3091 instance, it is legal to derive from a non-limited actual when the
3092 formal type is untagged limited.
3093 * sem_ch12.adb (Instantiate_Type): For a formal private type, use
3094 analyzed formal as Generic_Parent_Type, to simplify later checks.
3096 2010-10-08 Ed Schonberg <schonberg@adacore.com>
3098 * sem_res.adb (Insert_Default): If default value is already a
3099 raise_constraint_error do not rewrite it as new raise node, to prevent
3100 infinite loops in the warning removal machinery.
3102 2010-10-08 Robert Dewar <dewar@adacore.com>
3104 * sem_util.adb, sem_prag.adb: Minor reformatting
3106 2010-10-08 Hristian Kirtchev <kirtchev@adacore.com>
3108 * gnat_rm.texi: Remove the section on pragma Implemented_By_Entry.
3109 Add section on pragma Implemented.
3111 2010-10-08 Ed Schonberg <schonberg@adacore.com>
3113 * sem_ch3.adb (Derive_Subprogram): If an abstract extension has a
3114 concrete parent with a concrete constructor, the inherited constructor
3115 is abstract even if the derived type is a null extension.
3117 2010-10-08 Thomas Quinot <quinot@adacore.com>
3119 * sem_ch4.adb: Minor reformatting.
3121 2010-10-08 Hristian Kirtchev <kirtchev@adacore.com>
3123 * einfo.adb: Flag 232 (formerly Implemented_By_Entry) is now unused.
3124 (Implemented_By_Entry): Removed.
3125 (Set_Implemented_By_Entry): Removed.
3126 (Write_Entity_Flags): Remove the output for Implemented_By_Entry.
3127 * einfo.ads: Remove Implemented_By_Entry and its usage in entities.
3128 (Implemented_By_Entry): Removed along with its associated pragma.
3129 (Set_Implemented_By_Entry): Removed along with its associated pragma.
3130 * exp_ch9.adb: Alphabetize with and use clauses of Exp_Ch9.
3131 (Build_Dispatching_Call_Equivalent): New routine.
3132 (Build_Dispatching_Requeue): New routine.
3133 (Build_Dispatching_Requeue_To_Any): New routine.
3134 (Build_Normal_Requeue): New routine.
3135 (Build_Skip_Statement): New routine.
3136 (Expand_N_Requeue_Statement): Rewritten. The logic has been split into
3137 several subroutines.
3138 * par-prag.adb: Replace Pragma_Implemented_By_Entry by
3140 * sem_ch3.adb (Check_Abstract_Overriding): Perform checks concerning
3142 (Check_Pragma_Implemented): New routines.
3143 (Inherit_Pragma_Implemented): New routine.
3144 * sem_ch9.adb (Analyze_Requeue): Update the predicate which detects a
3145 dispatching requeue.
3146 * sem_prag.adb: Update array Sig_Flags by removing Implemented_By_Entry
3147 and adding Implemented.
3148 (Ada_2012_Pragma): New routine.
3149 (Analyze_Pragma, case Implemented): Perform all necessary checks
3150 concerning pragma Implemented and register the pragma as a
3151 representation item with the procedure_LOCAL_NAME.
3152 (Analyze_Pragma, case Implemented_By_Entry): Removed.
3153 * sem_util.adb (Implementation_Kind): New routine.
3154 * sem_util.ads (Implementation_Kind): New routine.
3155 * snames.ads-tmpl: Remove Name_Implemented_By_Entry and add
3156 Name_Implemented. Remove pragma name Pragma_Implemented_By_Entry and
3157 add Pragma_Implemented. Add special names By_Any, By_Entry and
3158 By_Protected_Procedure.
3160 2010-10-08 Javier Miranda <miranda@adacore.com>
3162 * exp_ch3.adb (Expand_Freeeze_Record_Type): Code cleanup: remove local
3163 variable Has_Static_DT by invocation of function Building_Static_DT.
3165 2010-10-08 Vincent Celier <celier@adacore.com>
3167 * g-dirope.adb (Remove_Dir): Do not change the current directory when
3168 doing a recursive remove of a subdirectory.
3170 2010-10-08 Javier Miranda <miranda@adacore.com>
3172 * exp_ch6.ad (Freeze_Subprogram): Factorize code.
3173 * exp_disp.adb (Make_Secondary_DT): Factorize code.
3174 (Make_DT): Factorize code.
3176 2010-10-08 Robert Dewar <dewar@adacore.com>
3178 * sem_ch4.adb: Minor reformatting.
3180 2010-10-08 Robert Dewar <dewar@adacore.com>
3182 * sem_ch6.adb (Check_Conformance): Check null exclusion match for full
3185 2010-10-08 Thomas Quinot <quinot@adacore.com>
3187 * sem_ch12.adb (Instantiate_Object): Rename Formal_Id to Gen_Obj, for
3188 consistency with Gen_T in Instantiate_Type.
3189 Introduce constant A_Gen_Obj to avoid repeated queries for
3190 Defining_Identifier (Analyzed_Formal).
3192 2010-10-08 Vincent Celier <celier@adacore.com>
3194 * prj-nmsc.adb: Minor comment fix.
3196 2010-10-07 Robert Dewar <dewar@adacore.com>
3198 * sem_prag.adb, sem_ch13.adb: Implement AI05-0012-1/02.
3199 * gcc-interface/Make-lang.in: Update dependencies.
3201 2010-10-07 Ed Schonberg <schonberg@adacore.com>
3203 * sem_ch12.ad: (Instantiate_Object): For an in-out formal of a child
3204 unit, if the type of the formal is declared in a parent unit and is not
3205 a formal itself, the actual must be located from an enclosing parent
3206 instance by normal visibility.
3208 2010-10-07 Ed Schonberg <schonberg@adacore.com>
3210 * sem_ch4.adb (Analyze_Allocator): In Ada 2012, a null_exclusion
3211 indicator is illegal for an uninitialized allocator.
3213 2010-10-07 Robert Dewar <dewar@adacore.com>
3215 * sem_prag.adb (Analyze_Attribute_Definition_Clause, case
3216 Component_Size): Complete previous change.
3218 2010-10-07 Vincent Celier <celier@adacore.com>
3220 * scng.adb (Scan): Call Accumulate_Token_Checksum for Tok_Identifier,
3221 even for keywords, to avoid having the checksum to depend on the Ada
3224 2010-10-07 Gary Dismukes <dismukes@adacore.com>
3226 * sem_aggr.adb, sem_ch12.adb, sem_ch6.adb, par-ch5.adb,
3227 exp_ch3.adb: Minor reformatting.
3229 2010-10-07 Robert Dewar <dewar@adacore.com>
3231 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
3232 Component_Size): It is now illegal to give an incorrect component size
3233 clause in the case of aliased or atomic components.
3234 * sem_prag.adb (Analyze_Pragma, case Pack): It is now illegal to give
3235 an effective pragma Pack in the case of aliased or atomic components.
3237 2010-10-07 Steve Baird <baird@adacore.com>
3239 * exp_ch4.adb (Expand_N_Allocator): Do not bypass expansion
3240 in the case of a violation of an active No_Task_Hierarchy restriction.
3242 2010-10-07 Ed Schonberg <schonberg@adacore.com>
3244 * sem_ch12.adb (Validate_Derived_Type_Instance): If a formal derived
3245 type is non-limited, an actual for it cannot be limited.
3247 2010-10-07 Robert Dewar <dewar@adacore.com>
3249 * einfo.ads (No_Pool_Assigned): Update documentation.
3250 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
3251 Storage_Size): We only set No_Pool_Assigned if the expression is a
3252 static constant and zero.
3253 * sem_res.adb (Resolve_Allocator): Allocation from empty storage pool
3254 should be an error not a warning.
3256 2010-10-07 Ed Schonberg <schonberg@adacore.com>
3258 * exp_aggr.adb (Expand_Array_Aggregate): Recognize additional cases
3259 where an aggregate in an assignment can be built directly into the
3260 target, and does not require the creation of a temporary that may
3263 2010-10-07 Ed Schonberg <schonberg@adacore.com>
3265 * sem_aggr.adb (Analyze_Record_Aggregate): In Ada2012, a choice list
3266 in a record aggregate can correspond to several components of
3267 anonymous access types, as long as the designated subtypes match.
3269 2010-10-07 Robert Dewar <dewar@adacore.com>
3271 * gnat_rm.texi, exp_util.adb, sinfo.adb, sinfo.ads, sem_ch12.adb,
3272 sem.adb, gnat_ugn.texi, sem_util.ads, par-ch6.adb, targparm.ads,
3273 restrict.adb, sem_ch6.adb, sem_ch6.ads, sprint.adb, i-c.ads: Change
3274 spelling parametrize(d) => parameterize(d).
3276 2010-10-07 Robert Dewar <dewar@adacore.com>
3278 * sem_ch12.adb: Add comment.
3279 * sem_ch6.adb: Minor reformatting.
3281 2010-10-07 Robert Dewar <dewar@adacore.com>
3283 * par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb, par-ch10.adb: Add
3284 Pexp to Pf_Rec constants
3285 (P_Subprogram): Expression is always enclosed in parentheses
3286 * par.adb (Pf_Rec): add Pexp flag for parametrized expression
3287 * sinfo.ads (N_Parametrized_Expression): Expression must be in parens
3289 2010-10-07 Ed Schonberg <schonberg@adacore.com>
3291 * sem_ch6.adb (Analyze_Subprogram_Specification): Implement Ada2012
3292 checks on functions that return an abstract type or have a controlling
3293 result whose designated type is an abstract type.
3294 (Check_Private_Overriding): Implement Ada2012 checks on functions
3295 declared in the private part, if an abstract type is involved.
3296 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): In Ada2012,
3297 reject a generic function that returns an abstract type.
3298 * exp_ch5.adb (Expand_Simple_Function_Return): in Ada2012, if a
3299 function has a controlling access result, check that the tag of the
3300 return value matches the designated type of the return expression.
3302 2010-10-07 Robert Dewar <dewar@adacore.com>
3304 * par-ch6.adb: Fix error in handling of parametrized expressions.
3305 * par-ch4.adb (P_Name): Allow qualified expression as name in Ada 2012
3307 (P_Simple_Expression): Better message for qualified expression prefix
3308 * s-crc32.adb: Minor reformatting.
3309 * exp_intr.adb (Expand_Unc_Deallocation): Remove test for empty
3310 storage pool (this test is moved to Sem_Intr).
3311 * sem_intr.adb (Check_Intrinsic_Call): Add check for deallocation from
3312 empty storage pool, moved here from Exp_Intr and made into error.
3313 (Check_Intrinsic_Call): Remove assumption in generating not-null free
3314 warning that the name of the instantiation is Free.
3315 * sinput.adb (Tree_Read): Document use of illegal free call allowed in
3317 * types.ads: Remove storage size clauses from big types (since we may
3318 need to do deallocations, which are now illegal for empty pools).
3320 2010-10-07 Sergey Rybin <rybin@adacore.com>
3322 * gnat_ugn.texi: Add missing word.
3324 2010-10-07 Robert Dewar <dewar@adacore.com>
3326 * exp_util.adb (Insert_Actions): Add handling of
3327 N_Parametrized_Expression.
3328 * par-ch6.adb (P_Subprogram): Add parsing of parametrized expression
3329 * sem.adb: Add entry for N_Parametrized_Expression
3330 * sem_ch6.adb (Analyze_Parametrized_Expression): New procedure
3331 * sem_ch6.ads (Analyze_Parametrized_Expression): New procedure
3332 * sinfo.ads, sinfo.adb: Add N_Parametrized_Expression
3333 * sprint.adb (Sprint_Node): Add handling for N_Parametrized_Expression
3334 * par-ch4.adb: Minor reformatting.
3336 2010-10-07 Robert Dewar <dewar@adacore.com>
3338 * scng.adb (Skip_Other_Format_Characters): New procedure
3339 (Start_Of_Wide_Character): New procedure
3340 (Scan): Use Start_Of_Wide_Character where appropriate
3341 (Scan): Improve error message for other_format chars in identifier
3342 (Scan): Allow other_format chars between tokens
3344 2010-10-07 Javier Miranda <miranda@adacore.com>
3346 * exp_util.adb (Safe_Prefixed_Reference): When removing side effects,
3347 Add missing support for explicit dereferences.
3349 2010-10-07 Robert Dewar <dewar@adacore.com>
3351 * par-ch10.adb, par-ch3.adb, par.adb: Minor reformatting.
3353 2010-10-07 Robert Dewar <dewar@adacore.com>
3355 * exp_disp.adb, exp_dist.adb, exp_util.ads, exp_util.adb,
3356 exp_ch11.adb: Rename Full_Qualified_Name to Fully_Qualified_Name_String
3357 * sem_util.adb, sem_util.ads (Full_Qualified_Name): Moved to
3358 Exp_Util.Fully_Qualified_Name_String.
3360 2010-10-07 Robert Dewar <dewar@adacore.com>
3362 * rtsfind.ads: Add entry for Ada.Real_Time.Timing_Events.Set_Handler
3363 * sem_res.adb (Resolve_Call): A call to
3364 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
3365 No_Relative_Delay (AI-0211).
3367 2010-10-07 Ed Schonberg <schonberg@adacore.com>