OSDN Git Service

config/
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * gnatvsn.adb (Version_String): Change type to C-like array of chars.
4         (Gnat_Version_String): Adjust to above change.
5
6 2010-11-18  Eric Botcazou  <ebotcazou@adacore.com>
7
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.
11
12 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
13
14         * gcc-interface/misc.c (gnat_parse_file): Take no arguments.
15
16 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
17
18         * gcc-interface/trans.c (addressable_p): Rewrite obsolete paragraph in
19         head comment.
20
21 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
22
23         * gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTS_H).
24         * gcc-interface/misc.c (gnat_handle_option): Take location_t parameter.
25
26 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
27
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.
32
33 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
34
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.
40
41 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
42
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.
47
48 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
49
50         * gcc-interface/utils.c (save_gnu_tree): Improve comments.
51         (get_gnu_tree): Likewise.
52
53 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
54
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
57         type.
58         <E_Access_Type>: Likewise.
59
60 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
61
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.
70
71 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
72
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.
78
79 2010-10-26  Robert Dewar  <dewar@adacore.com>
80
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.
88
89 2010-10-26  Vincent Celier  <celier@adacore.com>
90
91         * gnat_ugn.texi: Document option -s for gnatlink.
92
93 2010-10-26  Robert Dewar  <dewar@adacore.com>
94
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.
98
99 2010-10-26  Vincent Celier  <celier@adacore.com>
100
101         * opt.ads (Checksum_Accumulate_Token_Checksum): New Boolean flag,
102         defaulted to True.
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
106         names of Opt flags.
107         Set Checksum_Accumulate_Token_Checksum to False if GNAT version is 5.03
108         or before.
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.
115         (Scan): Ditto
116
117 2010-10-26  Robert Dewar  <dewar@adacore.com>
118
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
124         (too late).
125         (Analyze_Private_Extension_Declaration): Propagate invariant flags.
126         * sem_ch7.adb (Analyze_Package_Specification): Build invariant
127         procedures.
128
129 2010-10-26  Vincent Celier  <celier@adacore.com>
130
131         * opt.ads (Old_Checksums, Old_Old_Checksums): New Boolean flags,
132         defaulted to False.
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.
141
142 2010-10-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
143
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. 
148
149 2010-10-26  Javier Miranda  <miranda@adacore.com>
150
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.
154
155 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
156
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.
164
165 2010-10-26  Robert Dewar  <dewar@adacore.com>
166
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.
171
172 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
173
174         * sem_ch8.adb (Analyze_Subprogram_Renaming): Improve warning when an
175         operator renames another one with a different name.
176
177 2010-10-26  Thomas Quinot  <quinot@adacore.com>
178
179         * exp_ch4.adb, exp_pakd.adb: Minor reformatting.
180
181 2010-10-26  Bob Duff  <duff@adacore.com>
182
183         * namet.adb: Improve hash function.
184
185 2010-10-26  Thomas Quinot  <quinot@adacore.com>
186
187         * sem_disp.adb: Minor reformatting.
188
189 2010-10-26  Robert Dewar  <dewar@adacore.com>
190
191         * sem_ch3.adb, sem_ch4.adb, sem_disp.adb, switch-c.adb: Minor
192         reformatting.
193         * gnat_ugn.texi: Document -gnateP switch.
194
195 2010-10-26  Robert Dewar  <dewar@adacore.com>
196
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
203
204 2010-10-26  Javier Miranda  <miranda@adacore.com>
205
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
212         private primitives.
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.
218
219 2010-10-26  Bob Duff  <duff@adacore.com>
220
221         * make.adb: Call Namet.Finalize, so we can get statistics.
222
223 2010-10-26  Geert Bosch  <bosch@adacore.com>
224
225         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the subprogram_body
226         node to determine wether the subprogram is a rewritten parameterized
227         expression.
228
229 2010-10-26  Robert Dewar  <dewar@adacore.com>
230
231         * opt.ads: Minor code reorganization.  Alphabetize Warning switches.
232
233 2010-10-26  Robert Dewar  <dewar@adacore.com>
234
235         * sem_res.adb, xsinfo.adb: Minor reformatting.
236
237 2010-10-26  Bob Duff  <duff@adacore.com>
238
239         * namet.adb (Finalize): More cleanup of statistics printouts.
240
241 2010-10-26  Robert Dewar  <dewar@adacore.com>
242
243         * ceinfo.adb: Minor reformatting.
244
245 2010-10-26  Javier Miranda  <miranda@adacore.com>
246
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).
251
252 2010-10-26  Bob Duff  <duff@adacore.com>
253
254         * namet.adb, namet.ads: Minor cleanup.
255
256 2010-10-26  Arnaud Charlet  <charlet@adacore.com>
257
258         * gcc-interface/Make-lang.in: Update dependencies.
259
260 2010-10-26  Robert Dewar  <dewar@adacore.com>
261
262         * einfo.ads, einfo.adb (Is_Base_Type): New function, use it where
263         appropriate.
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.
267
268 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
269
270         * sem_ch12.adb: Code clean up.
271
272 2010-10-26  Paul Hilfinger  <hilfinger@adacore.com>
273
274         * exp_dbug.ads: Document effect of 'pragma Unchecked_Union' on
275         debugging data.
276
277 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
278
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.
282
283 2010-10-26  Bob Duff  <duff@adacore.com>
284
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.
291
292 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
293
294         * exp_ch4.adb: Set properly parent field of operands of concatenation.
295
296 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
297
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.
301
302 2010-10-26  Javier Miranda  <miranda@adacore.com>
303
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.
344
345 2010-10-26  Robert Dewar  <dewar@adacore.com>
346
347         * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Properly check
348         RM 13.4.1(10).
349
350 2010-10-26  Bob Duff  <duff@adacore.com>
351
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.
356
357 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
358
359         * sem_ch5.adb: Adjust format of error message.
360
361 2010-10-26  Robert Dewar  <dewar@adacore.com>
362
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.
371
372 2010-10-26  Vincent Celier  <celier@adacore.com>
373
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.
377
378 2010-10-26  Robert Dewar  <dewar@adacore.com>
379
380         * sem_case.adb, sem_ch6.adb, sem_util.adb: Minor reformatting.
381
382 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
383
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
386         for containers.
387         * sem_eval.adb: Fix reference to non-existing field of type conversion
388         node.
389         * sem_case.adb (Check_Choices): Improve error reporting for overlapping
390         choices in case statements.
391
392 2010-10-26  Gary Dismukes  <dismukes@adacore.com>
393
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.
400
401 2010-10-26  Robert Dewar  <dewar@adacore.com>
402
403         * sem_prag.adb, sem_cat.ads: Minor reformatting.
404
405 2010-10-26  Sergey Rybin  <rybin@adacore.com>
406
407         * vms_data.ads: Define VMS qualifier for gnatelim '--ignore' option
408
409 2010-10-26  Thomas Quinot  <quinot@adacore.com>
410
411         * sem_util.adb (Has_Preelaborable_Initialization.Check_Components):
412         For a discriminant, use Discriminant_Default_Value rather than
413         Expression (Declaration_Node (D)).
414
415 2010-10-26  Geert Bosch  <bosch@adacore.com>
416
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.
420
421 2010-10-26  Arnaud Charlet  <charlet@adacore.com>
422
423         * gnatvsn.ads: Update comments.
424
425 2010-10-26  Matthew Heaney  <heaney@adacore.com>
426
427         * Makefile.rtl, impunit.adb: Add bounded hashed set and bounded hashed
428         map containers.
429         * a-cohata.ads: Add declaration of generic package for bounded hash
430         table types.
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.
433
434 2010-10-26  Ed Schonberg  <schonberg@adacore.com>
435
436         * sem_warn.adb: Improve warning message on overlapping actuals.
437
438 2010-10-26  Thomas Quinot  <quinot@adacore.com>
439
440         * sem_ch4.adb, exp_dist.adb: Minor reformatting.
441
442 2010-10-26  Vincent Celier  <celier@adacore.com>
443
444         * makeusg.adb (Makeusg): Add lines for switches -vl, -vm and -vh.
445
446 2010-10-26  Robert Dewar  <dewar@adacore.com>
447
448         * exp_ch3.adb (Expand_N_Object_Declaration): Move generation of
449         predicate check to analyzer, since too much rewriting occurs in the
450         analyzer.
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
458         it that late.
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
465         discriminants.
466
467 2010-10-26  Sergey Rybin  <rybin@adacore.com>
468
469         * gnat_rm.texi: Revise the documentation for pragma Eliminate. 
470
471 2010-10-26  Matthew Heaney  <heaney@adacore.com>
472
473         * Makefile.rtl, impunit.adb: Added bounded list container.
474         * a-cbdlli.ads, a-cbdlli.adb: New file.
475
476 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
477
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).
482
483 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
484
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
487         reference types.
488
489 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
490
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.
493
494 2010-10-25  Jose Ruiz  <ruiz@adacore.com>
495
496         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for powerpc-linux):
497         Reorganize target pairs so that it works on linux and ElinOS.
498
499 2010-10-25  Pascal Obry  <obry@adacore.com>
500         
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.
506
507 2010-10-25  Javier Miranda  <miranda@adacore.com>
508
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).
516
517 2010-10-25  Matthew Heaney  <heaney@adacore.com>
518
519         * Makefile.rtl, impunit.adb: Added bounded set and bounded map
520         containers.
521         * a-crbltr.ads: Added declaration of generic package for bounded tree
522         types.
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:
525         New.
526
527 2010-10-25  Thomas Quinot  <quinot@adacore.com>
528
529         * sem_util.adb: Minor reformatting.
530         * usage.adb: Fix usage line for -gnatwh.
531
532 2010-10-25  Thomas Quinot  <quinot@adacore.com>
533
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
537         package.
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.
541
542 2010-10-25  Robert Dewar  <dewar@adacore.com>
543
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.
550
551 2010-10-25  Robert Dewar  <dewar@adacore.com>
552
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.
556
557 2010-10-25  Pascal Obry  <obry@adacore.com>
558
559         * adaint.c (__gnat_stat_to_attr): Can set the timestamp on Windows now.
560         (f2t): New routine.
561         (__gnat_stat): Rewrite Win32 version.
562
563 2010-10-25  Robert Dewar  <dewar@adacore.com>
564
565         * sem_warn.adb, einfo.ads, exp_ch4.adb: Minor comment fix
566         * sem_case.adb: Comment clarification for loops through false
567         predicates.
568         * sem_util.adb: Minor reformatting
569         (Check_Order_Dependence): Fix bad double blank in error message
570
571 2010-10-25  Ed Schonberg  <schonberg@adacore.com>
572
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.
576
577 2010-10-25  Matthew Heaney  <heaney@adacore.com>
578
579         * Makefile.rtl, impunit.adb: Added a-cobove (bounded vector container)
580         to lists.
581         * a-contai.ads: Added declaration of Capacity_Error exception.
582         * a-cobove.ads, a-cobove.adb: New files.
583
584 2010-10-25  Thomas Quinot  <quinot@adacore.com>
585
586         * uname.adb: Revert previous change, no longer needed after change
587         in par-ch10.adb.
588
589 2010-10-25  Thomas Quinot  <quinot@adacore.com>
590
591         * scos.ads: Minor comment fix.
592
593 2010-10-25  Ed Schonberg  <schonberg@adacore.com>
594
595         * sem_ch5.adb (Analyze_Assignment_Statement): Check dangerous order
596         dependence.
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
601         subexpressions.
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.
605
606 2010-10-25  Robert Dewar  <dewar@adacore.com>
607
608         * sem_ch13.adb (Build_Static_Predicate): Moved out of
609         Build_Predicate_Function.
610         (Build_Static_Predicate): Complet rewrite for more general predicates
611
612 2010-10-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
613             Eric Botcazou  <ebotcazou@adacore.com>
614
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
626         functions.
627
628 2010-10-22  Ben Brosgol  <brosgol@adacore.com>
629
630         * gnat_rm.texi: Add chapter on Ada 2012 support.
631
632 2010-10-22  Robert Dewar  <dewar@adacore.com>
633
634         * sem_ch12.adb: Minor reformatting.
635
636 2010-10-22  Thomas Quinot  <quinot@adacore.com>
637
638         * exp_dist.adb: Mark missing case of nested package when expanding
639         stubs.
640
641 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
642
643         * par-ch10.adb: Discard incomplete with_clause.
644
645 2010-10-22  Robert Dewar  <dewar@adacore.com>
646
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.
665
666 2010-10-22  Thomas Quinot  <quinot@adacore.com>
667
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
670         cascaded errors.
671
672 2010-10-22  Javier Miranda  <miranda@adacore.com>
673
674         * sem_ch8.adb (Find_Selected_Component): Do not generate a subtype for
675         selected components of dispatch table wrappers.
676
677 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
678
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.
682
683 2010-10-22  Robert Dewar  <dewar@adacore.com>
684
685         * sem_aggr.adb, sem_ch3.adb: Minor reformatting.
686
687 2010-10-22  Javier Miranda  <miranda@adacore.com>
688
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
694         effects free.
695
696 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
697
698         * sem_ch3.adb (Build_Concurrent_Derived_Type): Create declaration for
699         derived corresponding record type only when expansion is enabled.
700
701 2010-10-22  Robert Dewar  <dewar@adacore.com>
702
703         * sem_case.adb, sem_attr.adb (Bad_Predicated_Subtype_Use): Change order
704         of parameters.
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.
709
710 2010-10-22  Robert Dewar  <dewar@adacore.com>
711
712         * sem_ch5.adb: Minor reformatting.
713
714 2010-10-22  Robert Dewar  <dewar@adacore.com>
715
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
730         subtype case.
731         * sem_ch13.adb (Build_Predicate_Function): Moved from Exp_Ch13 to
732         Sem_Ch13.
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
738         entity.
739         (Analyze_Case_Expression): New calling sequence for Analyze_Choices
740         * sem_ch5.adb (Analyze_Case_Statement): New calling sequence for
741         Analyze_Choices.
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.
746
747 2010-10-22  Jerome Lambourg  <lambourg@adacore.com>
748
749         * gnatlink.adb (Process_Binder_File): Remove CLI-specific code, now
750         moved to dotnet-ld.
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.
754
755 2010-10-22  Robert Dewar  <dewar@adacore.com>
756
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
759         itself!
760
761 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
762
763         * sem_ch5.adb (Analyze_Iteration_Scheme): use Insert_Actions when
764         bounds require a temporary.
765
766 2010-10-22  Robert Dewar  <dewar@adacore.com>
767
768         * sem_ch4.adb: Minor reformatting.
769         * sinfo.ads: Minor comment fixes for Ada 2012 syntax.
770
771 2010-10-22  Robert Dewar  <dewar@adacore.com>
772
773         * par-ch5.adb: Minor reformatting.
774         * gcc-interface/Make-lang.in: Update dependencies.
775
776 2010-10-22  Robert Dewar  <dewar@adacore.com>
777
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.
787
788 2010-10-22  Robert Dewar  <dewar@adacore.com>
789
790         * sem_eval.adb (Subtypes_Statically_Compatible): Check null exclusion
791         case.
792
793 2010-10-22  Vincent Celier  <celier@adacore.com>
794
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
797         project.
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
800         host name.
801
802 2010-10-22  Robert Dewar  <dewar@adacore.com>
803
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"
807         from msg.
808
809 2010-10-22  Gary Dismukes  <dismukes@adacore.com>
810
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
816         case.
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.
823
824 2010-10-22  Thomas Quinot  <quinot@adacore.com>
825
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.
831
832 2010-10-22  Sergey Rybin  <rybin@adacore.com>
833
834         * gnat_ugn.texi (gnatmetric): Remove description of debug option.
835
836 2010-10-22  Tristan Gingold  <gingold@adacore.com>
837
838         * adaint.c (__gnat_number_of_cpus): Add implementation for VMS.
839
840 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
841
842         * par-ch5.adb: Set properly starting sloc of loop parameter.
843
844 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
845
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.
848
849 2010-10-22  Robert Dewar  <dewar@adacore.com>
850
851         * cstand.adb, einfo.adb, exp_attr.adb, sem_prag.adb, sem_vfpt.adb,
852         sem_ch10.adb: Minor reformatting.
853
854 2010-10-22  Sergey Rybin  <rybin@adacore.com>
855
856         * gnat_ugn.texi: Remove most of the content of gnatcheck chapter.
857
858 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
859
860         * sem_attr.adb: Handle indexed P'old.
861
862 2010-10-22  Geert Bosch  <bosch@adacore.com>
863
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
874         specific processing.
875         * sem_ch3.adb (Build_Derived_Numeric_Type,
876         Floating_Point_Type_Declaration): Set Float_Rep instead of Vax_Float
877         attribute.
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.
881
882 2010-10-22  Robert Dewar  <dewar@adacore.com>
883
884         * sprint.adb: Minor reformatting.
885
886 2010-10-22  Robert Dewar  <dewar@adacore.com>
887
888         * exp_ch3.adb (Expand_N_Object_Declaration): Do required predicate
889         checks.
890         * sem_ch3.adb (Complete_Private_Subtype): Propagate predicates to full
891         view.
892         * sem_ch6.adb (Invariants_Or_Predicates_Present): New name for
893         Invariants_Present.
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.
899
900 2010-10-22  Sergey Rybin  <rybin@adacore.com>
901
902         * gnat_ugn.texi (gnatelim): Add description for '--ignore' option
903
904 2010-10-22  Thomas Quinot  <quinot@adacore.com>
905
906         * sem_prag.adb (Check_First_Subtype): Specialize error messages for
907         case where argument is not a type.
908
909 2010-10-22  Robert Dewar  <dewar@adacore.com>
910
911         * exp_ch5.adb, par-ch4.adb, par-ch5.adb, sem_ch5.adb, sinfo.ads: Minor
912         reformatting.
913
914 2010-10-22  Arnaud Charlet  <charlet@adacore.com>
915
916         * a-locale.adb: Minor code clean up.
917
918 2010-10-22  Thomas Quinot  <quinot@adacore.com>
919
920         * exp_ch4.adb: Minor code reorganization and factoring.
921
922 2010-10-22  Thomas Quinot  <quinot@adacore.com>
923
924         * exp_ch5.adb, sem_ch5.adb, sinfo.ads, snames.ads-tmpl, par-ch5.adb:
925         Minor reformatting.
926
927 2010-10-22  Geert Bosch  <bosch@adacore.com>
928
929         * stand.ads: Fix typo in comment.
930
931 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
932
933         * sem_ch6.adb: Enable in-out parameter for functions.
934
935 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
936
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.
941
942 2010-10-22  Brett Porter  <porter@adacore.com>
943
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
947
948 2010-10-22  Robert Dewar  <dewar@adacore.com>
949
950         * sem_util.ads, sem_util.adb, sem_aux.ads, sem_aux.adb
951         (Is_Generic_Formal): Moved from Sem_Util to Sem_Aux.
952
953 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
954
955         * exp_ch5.adb (Expand_Iterator_Loop): New subprogram, implements new
956         iterator forms over arrays and containers, in loops and quantified
957         expressions.
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
964         subprogram.
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.
971
972 2010-10-22  Thomas Quinot  <quinot@adacore.com>
973
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.
980
981 2010-10-22  Geert Bosch  <bosch@adacore.com>
982
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
990         each type.
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
1004         machine attributes.
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
1023         Ttypef.
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.
1029
1030 2010-10-22  Robert Dewar  <dewar@adacore.com>
1031
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.
1040
1041 2010-10-22  Arnaud Charlet  <charlet@adacore.com>
1042
1043         * gcc-interface/utils.c, gcc-interface/gigi.h: Minor reformatting.
1044
1045 2010-10-22  Thomas Quinot  <quinot@adacore.com>
1046
1047         * einfo.ads (Declaration_Node): Clarify documentation, in particular
1048         regarding what is returned for subprogram entities.
1049
1050 2010-10-22  Arnaud Charlet  <charlet@adacore.com>
1051
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
1056         like range checks.
1057         * gcc-interface/Make-lang.in: Update dependencies.
1058
1059 2010-10-22  Robert Dewar  <dewar@adacore.com>
1060
1061         * sem_ch3.adb (Array_Type_Declaration): Error for subtype wi predicate
1062         for index type
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.
1067
1068 2010-10-22  Javier Miranda  <miranda@adacore.com>
1069
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.
1079
1080 2010-10-22  Ed Schonberg  <schonberg@adacore.com>
1081
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..
1086
1087 2010-10-22  Robert Dewar  <dewar@adacore.com>
1088
1089         * einfo.ads, einfo.adb (Has_Predicates): Flag is now on all entities
1090         (simplifies code).
1091         * exp_ch13.adb (Build_Predicate_Function): Output info msgs for
1092         inheritance.
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.
1098
1099 2010-10-22  Thomas Quinot  <quinot@adacore.com>
1100
1101         * a-exextr.adb, atree.ads, freeze.adb: Minor reformatting.
1102
1103 2010-10-21  Robert Dewar  <dewar@adacore.com>
1104
1105         * sem_ch3.adb: Minor reformatting.
1106
1107 2010-10-21  Thomas Quinot  <quinot@adacore.com>
1108
1109         * einfo.ads (Next_Girder_Discriminant): Remove obsolete description for
1110         removed routine.
1111
1112 2010-10-21  Nicolas Roche  <roche@adacore.com>
1113
1114         * gnatmem.adb, memroot.adb, memroot.ads, gmem.c,
1115         gcc-interface/Makefile.in: Remove gnatmem specific files.
1116
1117 2010-10-21  Thomas Quinot  <quinot@adacore.com>
1118
1119         * sem_res.adb, exp_ch13.adb: Minor reformatting.
1120
1121 2010-10-21  Thomas Quinot  <quinot@adacore.com>
1122
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.
1126
1127 2010-10-21  Arnaud Charlet  <charlet@adacore.com>
1128
1129         * gcc-interface/Make-lang.in: Update dependencies.
1130
1131 2010-10-21  Robert Dewar  <dewar@adacore.com>
1132
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
1137         Exp_Ch13 body.
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
1142         check.
1143         * freeze.adb (Freeze_Entity): Move building of predicate function to
1144         Exp_Ch13.
1145         * sem_ch13.adb (Build_Predicate_Function): Move from Sem_Ch13 to
1146         Exp_Ch13.
1147         * sem_ch13.ads (Build_Predicate_Function): Move from Sem_Ch13 to
1148         Exp_Ch13.
1149         * sem_ch3.adb (Analyze_Declarations): Remove call to build predicate
1150         function.
1151         * sem_res.adb (Resolve_Actuals): Apply predicate check.
1152
1153 2010-10-21  Robert Dewar  <dewar@adacore.com>
1154
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
1167         functions around.
1168         * sem_prag.adb (Analye_Pragma, case Predicate): Does not take a third
1169         argument.
1170
1171 2010-10-21  Robert Dewar  <dewar@adacore.com>
1172
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
1179         Predicate aspects.
1180         * sem_prag.adb: Add implementation of pragma Predicate.
1181         * snames.ads-tmpl: Add entries for pragma Predicate.
1182
1183 2010-10-21  Robert Dewar  <dewar@adacore.com>
1184
1185         * elists.adb: Minor reformatting.
1186
1187 2010-10-21  Geert Bosch  <bosch@adacore.com>
1188
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)
1193
1194 2010-10-21  Robert Dewar  <dewar@adacore.com>
1195
1196         * einfo.ads, xeinfo.adb: Minor reformatting.
1197         * s-stalib.ads: Minor comment fixes.
1198
1199 2010-10-21  Ed Schonberg  <schonberg@adacore.com>
1200
1201         * sem_ch6.adb (Enter_Overloaded_Entity): Refine warning message about
1202         hiding, to remove noise warnings about hiding predefined operators.
1203
1204 2010-10-21  Emmanuel Briot  <briot@adacore.com>
1205
1206         * g-comlin.adb (Add_Switch): Fix handling of switches with no separator
1207         when the parameter has length 1.
1208
1209 2010-10-21  Jose Ruiz  <ruiz@adacore.com>
1210
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
1215         Ravenscar Profile.
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.
1220
1221 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1222
1223         * ug_words, vms_data.ads: Define the VMS qualifier for -gnateE.
1224
1225 2010-10-21  Thomas Quinot  <quinot@adacore.com>
1226
1227         * sem_ch3.ads (Process_Discriminants): Clarify cases where this is
1228         called for a completion.
1229
1230 2010-10-21  Geert Bosch  <bosch@adacore.com>
1231
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.
1236
1237 2010-10-21  Robert Dewar  <dewar@adacore.com>
1238
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
1246
1247 2010-10-21  Vincent Celier  <celier@adacore.com>
1248
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
1252
1253 2010-10-21  Ed Schonberg  <schonberg@adacore.com>
1254
1255         * exp_aggr.adb (Flatten): An association for a subtype may be an
1256         expanded name.
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.
1262
1263 2010-10-21  Robert Dewar  <dewar@adacore.com>
1264
1265         * gnat_rm.texi: Document Invariant pragma.
1266
1267 2010-10-21  Javier Miranda  <miranda@adacore.com>
1268
1269         * exp_ch5.adb: Update comment.
1270
1271 2010-10-21  Robert Dewar  <dewar@adacore.com>
1272
1273         * sem_ch13.adb (Build_Invariant_Procedure): Remove commented out code
1274         for interfaces, since invariants are not allowed on interfaces in any
1275         case.
1276
1277 2010-10-21  Javier Miranda  <miranda@adacore.com>
1278
1279         * sem_attr.adb (Resolve_Attribute): After replacing the range attribute
1280         node with a range expression ensure that its evaluation will not have
1281         side effects.
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
1285         invoked later.
1286
1287 2010-10-21  Robert Dewar  <dewar@adacore.com>
1288
1289         * par-ch3.adb (P_Interface_Type_Definition): Allow for possibility of
1290         aspect clause presence terminating the type definition.
1291
1292 2010-10-21  Robert Dewar  <dewar@adacore.com>
1293
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
1296         reformatting.
1297         * snames.ads-tmpl: Add note on Name_Some (not a reserved keyword).
1298
1299 2010-10-21  Geert Bosch  <bosch@adacore.com>
1300
1301         * ttypef.ads: Further cleanup of Safe_XXX float attributes.
1302
1303 2010-10-19  Ed Schonberg  <schonberg@adacore.com>
1304
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
1311         version < Ada2012.
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
1315         unreserved.
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.
1326
1327 2010-10-19  Robert Dewar  <dewar@adacore.com>
1328
1329         * a-exexda.adb: Minor reformatting
1330         Minor code reorganization.
1331
1332 2010-10-19  Robert Dewar  <dewar@adacore.com>
1333
1334         * sem_eval.adb: Minor reformatting.
1335
1336 2010-10-19  Tristan Gingold  <gingold@adacore.com>
1337
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.
1343
1344 2010-10-19  Geert Bosch  <bosch@adacore.com>
1345
1346         * gnat_rm.texi (pragma Float_Representation): Fix typo.
1347
1348 2010-10-19  Arnaud Charlet  <charlet@adacore.com>
1349
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.
1374
1375 2010-10-19  Geert Bosch  <bosch@adacore.com>
1376
1377         * ttypef.ads: Change VAXDF_Last to be -VAXDF_First, as type is
1378         symmetric.
1379
1380 2010-10-19  Robert Dewar  <dewar@adacore.com>
1381
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
1403         Minor reformatting
1404         * sem_ch6.adb (Process_PPCs): Add processing of invariants
1405         * sem_ch7.adb (Analyze_Package_Specification): Build invariant
1406         procedures.
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.
1415
1416 2010-10-19  Javier Miranda  <miranda@adacore.com>
1417
1418         * par-ch4.adb: Update documentation of Ada 2012 syntax rules for
1419         membership test.
1420
1421 2010-10-19  Bob Duff  <duff@adacore.com>
1422
1423         * sem_attr.adb (Eval_Attribute): Implement Max_Alignment_For_Allocation
1424         attribute.
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.
1429
1430 2010-10-19  Ed Schonberg  <schonberg@adacore.com>
1431
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.
1434
1435 2010-10-19  Thomas Quinot  <quinot@adacore.com>
1436
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
1439
1440 2010-10-19  Thomas Quinot  <quinot@adacore.com>
1441
1442         * sem_util.adb (Collect_Primitive_Operations): A function with an
1443         anonymous access result designating T is a primitive operation of T.
1444
1445 2010-10-19  Tristan Gingold  <gingold@adacore.com>
1446
1447         * init.c: On Alpha/VMS, only adjust PC for HPARITH.
1448
1449 2010-10-19  Tristan Gingold  <gingold@adacore.com>
1450
1451         * sem_attr.adb (Eval_Attribute): Handle Attribute_Ref, which can be
1452         evaluated on VMS.
1453
1454 2010-10-19  Ed Schonberg  <schonberg@adacore.com>
1455
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.
1459
1460 2010-10-19  Thomas Quinot  <quinot@adacore.com>
1461
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
1468         protected types.
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.
1474
1475 2010-10-19  Bob Duff  <duff@adacore.com>
1476
1477         * sem_ch8.adb (Pop_Scope): Change "return;" to "raise Program_Error;".
1478
1479 2010-10-19  Javier Miranda  <miranda@adacore.com>
1480
1481         * exp_ch4.adb (Expand_Set_Membership.Make_Cond): Add missing support
1482         for N_Range nodes.
1483
1484 2010-10-19  Thomas Quinot  <quinot@adacore.com>
1485
1486         * einfo.ads, atree.ads: Minor comment fixes.
1487
1488 2010-10-18  Bob Duff  <duff@adacore.com>
1489
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
1499         pragma.
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
1506         during semantics.
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.
1514
1515 2010-10-18  Vincent Celier  <celier@adacore.com>
1516
1517         * make.adb (Switches_Of): Put the spec and body suffix in canonical
1518         case.
1519
1520 2010-10-18  Ed Schonberg  <schonberg@adacore.com>
1521
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.
1527
1528 2010-10-18  Javier Miranda  <miranda@adacore.com>
1529
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
1542         incomplete type.
1543         * einfo.ads (Full_View): Add documentation.
1544
1545 2010-10-18  Ed Schonberg  <schonberg@adacore.com>
1546
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.
1550
1551 2010-10-18  Jose Ruiz  <ruiz@adacore.com>
1552
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
1560         are defined.
1561
1562 2010-10-18  Robert Dewar  <dewar@adacore.com>
1563
1564         * einfo.ads, einfo.adb: Minor reformatting.
1565         * gnat_ugn.texi, ug_words: Add missing entries, fix typos.
1566
1567 2010-10-18  Emmanuel Briot  <briot@adacore.com>
1568
1569         * g-comlin.adb (Is_In_Config): When the switch accepts either a space
1570         or equal, we output an equal every time.
1571
1572 2010-10-18  Ed Schonberg  <schonberg@adacore.com>
1573
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.
1579
1580 2010-10-18  Robert Dewar  <dewar@adacore.com>
1581
1582         * einfo.ads, einfo.adb: Minor reformatting.
1583
1584 2010-10-18  Jose Ruiz  <ruiz@adacore.com>
1585
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.
1596
1597 2010-10-18  Robert Dewar  <dewar@adacore.com>
1598
1599         * sinfo.ads, sinfo.adb: Change Has_Pragma_CPU to Flag14 (Flag10 is
1600         standard field).
1601
1602 2010-10-18  Robert Dewar  <dewar@adacore.com>
1603
1604         * s-stausa.adb, s-taprop-linux.adb, s-taprop-mingw.adb, s-tassta.ads:
1605         Minor reformatting.
1606
1607 2010-10-18  Robert Dewar  <dewar@adacore.com>
1608
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
1614
1615 2010-10-18  Jose Ruiz  <ruiz@adacore.com>
1616
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
1620         create task.
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
1627         a task.
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
1640         subprogram.
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
1644         the M line).
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
1652         affinity.
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
1670         by a pragma CPU.
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
1673         symbol.
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.
1687
1688 2010-10-18  Javier Miranda  <miranda@adacore.com>
1689
1690         * einfo.adb (Direct_Primitive_Operations): Complete assertion.
1691
1692 2010-10-18  Vincent Celier  <celier@adacore.com>
1693
1694         * prj.ads (Source_Data): New Boolean flag In_The_Queue.
1695
1696 2010-10-18  Tristan Gingold  <gingold@adacore.com>
1697
1698         * s-stausa.ads: Add the Top parameter to Initialize_Analyzer.
1699         * s-stausa.adb: Use the top parameter.  In Fill_Stack, use the
1700         stack top if known.
1701         * s-tassta.adb (Task_Wrapper): Call Initialize_Analyzer after Enter_Task
1702         so that Pri_Stack_Info.Limit can be set and used.
1703
1704 2010-10-18  Robert Dewar  <dewar@adacore.com>
1705
1706         * einfo.ads: Minor reformatting.
1707         * sem_res.adb (Resolve_Allocator): Add test for violating
1708         No_Anonymous_Allocators.
1709
1710 2010-10-18  Robert Dewar  <dewar@adacore.com>
1711
1712         * prj-nmsc.adb, prj.adb, sem_res.adb: Minor reformatting.
1713
1714 2010-10-18  Ed Schonberg  <schonberg@adacore.com>
1715
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.
1721
1722 2010-10-18  Vincent Celier  <celier@adacore.com>
1723
1724         * projects.texi: Add documentation for attribute Ignore_Source_Sub_Dirs
1725
1726 2010-10-18  Ed Schonberg  <schonberg@adacore.com>
1727
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
1733         entry.
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.
1737
1738 2010-10-18  Tristan Gingold  <gingold@adacore.com>
1739
1740         * init.c: Add __gnat_set_stack_guard_page and __gnat_set_stack_limit.
1741         Implement stack limitation on VMS.
1742         Minor reformatting.
1743
1744 2010-10-18  Vincent Celier  <celier@adacore.com>
1745
1746         * prj.adb (Is_Compilable): Do not modify Source.Compilable until the
1747         source record has been initialized.
1748
1749 2010-10-18  Robert Dewar  <dewar@adacore.com>
1750
1751         * einfo.adb: Minor code reorganization (Primitive_Operations is a
1752         synthesized attribute routine and was in the wrong place).
1753
1754 2010-10-18  Tristan Gingold  <gingold@adacore.com>
1755
1756         * init.c: Indentation, and minor changes to more closely follow GNU
1757         style rules.  Make more variable statics.
1758
1759 2010-10-18  Vincent Celier  <celier@adacore.com>
1760
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.
1765
1766 2010-10-18  Vincent Celier  <celier@adacore.com>
1767
1768         * prj-attr.adb: New project level attribute Ignore_Source_Sub_Dirs.
1769         * prj-nmsc.adb (Expand_Subdirectory_Pattern): New string list parameter
1770         Ignore.
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.
1775
1776 2010-10-18  Javier Miranda  <miranda@adacore.com>
1777
1778         * einfo.ads, einfo.adb (Primitive_Operations): New synthesized
1779         attribute.
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
1787         concurrent types.
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.
1791
1792 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
1793
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.
1799
1800 2010-10-18  Arnaud Charlet  <charlet@adacore.com>
1801
1802         * g-comlin.adb (Get_Switches): Prevent dereferencing null Config.
1803
1804 2010-10-18  Robert Dewar  <dewar@adacore.com>
1805
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.
1810
1811 2010-10-18  Robert Dewar  <dewar@adacore.com>
1812
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.
1815
1816 2010-10-18  Tristan Gingold  <gingold@adacore.com>
1817
1818         * sysdep.c: Add __gnat_get_stack_bounds.
1819         * s-taprop-mingw.adb Call __gnat_get_stack_bounds to set Pri_Stack_Info.
1820
1821 2010-10-18  Robert Dewar  <dewar@adacore.com>
1822
1823         * a-assert.ads: Fix bad name in header.
1824         * sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch10.adb: Minor
1825         reformatting.
1826         * exp_aggr.adb: Fix typo in comment.
1827
1828 2010-10-18  Javier Miranda  <miranda@adacore.com>
1829
1830         * exp_util.adb (Side_Effect_Free): Code clean up.
1831
1832 2010-10-18  Ed Schonberg  <schonberg@adacore.com>
1833
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
1837         (type) clause.
1838
1839 2010-10-18  Javier Miranda  <miranda@adacore.com>
1840
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.
1847
1848 2010-10-18  Arnaud Charlet  <charlet@adacore.com>
1849
1850         * sem_prag.adb (Set_Exported): Do not generate error when exporting a
1851         variable with an address clause in codepeer mode.
1852
1853 2010-10-18  Robert Dewar  <dewar@adacore.com>
1854
1855         * g-trasym-vms-ia64.adb: Minor reformatting.
1856
1857 2010-10-18  Thomas Quinot  <quinot@adacore.com>
1858
1859         * sem_type.adb (Covers): If either argument is Standard_Void_Type and
1860         the other isn't, return False early.
1861
1862 2010-10-18  Ed Falis  <falis@adacore.com>
1863
1864         * s-vxwext-rtp.ads, s-vxext-rtp.adb: Adapt for missing APIs for RTPs in
1865         VxWorks Cert.
1866
1867 2010-10-18  Robert Dewar  <dewar@adacore.com>
1868
1869         * sem_disp.ads: Minor comment update.
1870
1871 2010-10-18  Robert Dewar  <dewar@adacore.com>
1872
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
1876         Pre/Post aspects).
1877         * sem_ch6.adb (Process_PPCs): Add handling of inherited Pre'Class
1878         aspects.
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
1890         present.
1891
1892 2010-10-18  Robert Dewar  <dewar@adacore.com>
1893
1894         * g-trasym-vms-ia64.adb, prj-nmsc.adb, prj.ads: Minor reformatting.
1895
1896 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1897
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.
1905
1906 2010-10-13  Richard Henderson  <rth@redhat.com>
1907
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.
1912
1913 2010-10-12  Vincent Celier  <celier@adacore.com>
1914
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
1923
1924 2010-10-12  Tristan Gingold  <gingold@adacore.com>
1925
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.
1929
1930 2010-10-12  Thomas Quinot  <quinot@adacore.com>
1931
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
1935         anymore.
1936
1937 2010-10-12  Bob Duff  <duff@adacore.com>
1938
1939         * s-rident.ads (Profile_Info): This variable is now constant.
1940
1941 2010-10-12  Emmanuel Briot  <briot@adacore.com>
1942
1943         * g-comlin.adb, g-comlin.ads (Define_Switch): Put back (unused)
1944         parameter Separator for backward compatibility.
1945
1946 2010-10-12  Robert Dewar  <dewar@adacore.com>
1947
1948         * sem_ch9.adb, par-ch9.adb, impunit.adb: Minor reformatting.
1949
1950 2010-10-12  Vincent Celier  <celier@adacore.com>
1951
1952         * debug.adb: Put detailed documentation for gnatmake switch -dm.
1953
1954 2010-10-12  Vincent Celier  <celier@adacore.com>
1955
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.
1958
1959 2010-10-12  Arnaud Charlet  <charlet@adacore.com>
1960
1961         * g-comlin.adb (Foreach_Switch): Make this procedure generic to avoid
1962         using 'Access.
1963
1964 2010-10-12  Robert Dewar  <dewar@adacore.com>
1965
1966         * debug.adb: Add comment.
1967         * gnatcmd.adb, sem_ch6.adb, switch-m.adb: Minor reformatting.
1968
1969 2010-10-12  Javier Miranda  <miranda@adacore.com>
1970
1971         * exp_util.adb (Side_Effect_Free): Return true for object renaming
1972         declarations that were previously generated by Remove_Side_Effects.
1973
1974 2010-10-12  Emmanuel Briot  <briot@adacore.com>
1975
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.
1979         Minor reformatting.
1980
1981 2010-10-12  Emmanuel Briot  <briot@adacore.com>
1982
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
1986         long switches.
1987
1988 2010-10-12  Javier Miranda  <miranda@adacore.com>
1989
1990         * sem_ch6.adb (New_Overloaded_Entity): Add missing decoration of
1991         attribute Overridden_Operation in predefined dispatching primitives. 
1992
1993 2010-10-12  Emmanuel Briot  <briot@adacore.com>
1994
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.
1997
1998 2010-10-12  Robert Dewar  <dewar@adacore.com>
1999
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.
2003
2004 2010-10-12  Jose Ruiz  <ruiz@adacore.com>
2005
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.
2011
2012 2010-10-12  Vincent Celier  <celier@adacore.com>
2013
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.
2019
2020 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
2021
2022         * gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTIONS_H)
2023         instead of options.h.
2024
2025 2010-10-12  Robert Dewar  <dewar@adacore.com>
2026
2027         * gnat_rm.texi: Clarify that 'Old can be used in preconditions and
2028         postcondition pragmas.
2029
2030 2010-10-12  Robert Dewar  <dewar@adacore.com>
2031
2032         * errout.ads, erroutc.adb: The # insertion now handles from in place of
2033         at.
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
2052         pre/postcondition.
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
2058
2059 2010-10-12  Javier Miranda  <miranda@adacore.com>
2060
2061         * exp_util.adb (Remove_Side_Effects): Remove wrong code.
2062
2063 2010-10-12  Arnaud Charlet  <charlet@adacore.com>
2064
2065         * xref_lib.adb: Add handling of j/J letters.
2066
2067 2010-10-12  Pascal Obry  <obry@adacore.com>
2068
2069         * adaint.c (__gnat_number_of_cpus): Add implementation for Windows.
2070
2071 2010-10-12  Arnaud Charlet  <charlet@adacore.com>
2072
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.
2080
2081 2010-10-12  Bob Duff  <duff@adacore.com>
2082
2083         * exp_util.adb (Remove_Side_Effects): Disable previous change,
2084         can cause side effects to be duplicated.
2085
2086 2010-10-12  Robert Dewar  <dewar@adacore.com>
2087
2088         * sem_ch6.adb (Process_PPCs): Handle inherited postconditions.
2089
2090 2010-10-12  Arnaud Charlet  <charlet@adacore.com>
2091
2092         * exp_disp.adb (Set_All_DT_Position): Disable emit error message on
2093         abstract inherited private operation in CodePeer mode.
2094
2095 2010-10-12  Thomas Quinot  <quinot@adacore.com>
2096
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.
2102
2103 2010-10-12  Ed Schonberg  <schonberg@adacore.com>
2104
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.
2108
2109 2010-10-12  Robert Dewar  <dewar@adacore.com>
2110
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
2123
2124 2010-10-12  Arnaud Charlet  <charlet@adacore.com>
2125
2126         * lib-xref.ads: Mark j/J as reserved for C++ classes.
2127
2128 2010-10-12  Jose Ruiz  <ruiz@adacore.com>
2129
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.
2138
2139 2010-10-12  Robert Dewar  <dewar@adacore.com>
2140
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.
2144
2145 2010-10-12  Robert Dewar  <dewar@adacore.com>
2146
2147         * par-ch13.adb (P_Aspect_Specifications): Fix handling of 'Class
2148         aspects.
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
2151         aspects.
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
2155
2156 2010-10-12  Robert Dewar  <dewar@adacore.com>
2157
2158         * par-endh.adb (Check_End): Don't swallow semicolon or aspects after
2159         END RECORD.
2160         * sem_attr.adb (Eval_Attribute): Code clean up.
2161
2162 2010-10-12  Robert Dewar  <dewar@adacore.com>
2163
2164         * par-ch12.adb (P_Formal_Private_Type_Definition): Improve error
2165         messages and recovery for case of out of order Abstract/Tagged/Private
2166         keywords.
2167         * par-ch3.adb (P_Type_Declaration): Improve error messages and recovery
2168         for case of out of order Abstract/Tagged/Private keywords.
2169
2170 2010-10-12  Ed Schonberg  <schonberg@adacore.com>
2171
2172         * inline.adb (Analyze_Inlined_Bodies): Restrict previous change to case
2173         where child unit is main unit of compilation.
2174
2175 2010-10-12  Robert Dewar  <dewar@adacore.com>
2176
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
2185         specifications.
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
2189         generated object
2190         (Analyze_Single_Task_Declaration): Copy aspects to generated object
2191
2192 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
2193
2194         * usage.adb (usage): Adjust line for -gnatn switch.
2195
2196 2010-10-12  Robert Dewar  <dewar@adacore.com>
2197
2198         * sem_attr.adb (Eval_Attribute): Only leave change active for aspect
2199         spec case.
2200
2201 2010-10-12  Ed Schonberg  <schonberg@adacore.com>
2202
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.
2206
2207 2010-10-11  Robert Dewar  <dewar@adacore.com>
2208
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
2212         clause.
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
2217
2218 2010-10-11  Pat Rogers  <rogers@adacore.com>
2219
2220         * gnat_ugn.texi: Minor editing.
2221
2222 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
2223
2224         * gcc-interface/utils2.c (gnat_build_constructor): Use VEC_qsort.
2225
2226 2010-10-11  Robert Dewar  <dewar@adacore.com>
2227
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
2234
2235 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2236
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.
2240
2241 2010-10-11  Robert Dewar  <dewar@adacore.com>
2242
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
2246         nodes.
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
2254         tree.
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
2275         aspects.
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
2283         aspects.
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
2307
2308 2010-10-11  Robert Dewar  <dewar@adacore.com>
2309
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
2336         specifications.
2337         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Handle aspect
2338         specifications.
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
2349         _Declaration).
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
2360         specifications.
2361         (Analyze_Subprogram_Declaration): Analyze aspect specifications
2362         * sem_ch7.adb (Analyze_Package_Declaration): Analyze aspect
2363         specifications.
2364         (Analyze_Private_Type_Declaration): Analyze aspect specifications
2365         * sem_ch9.adb (Analyze_Protected_Type_Declaration): Analyze aspect
2366         specifications.
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
2375         _Declaration).
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
2381         the doc).
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
2392
2393 2010-10-11  Bob Duff  <duff@adacore.com>
2394
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.
2398
2399 2010-10-11  Javier Miranda  <miranda@adacore.com>
2400
2401         * debug.adb Document that switch -gnatd.p enables the CIL verifier.
2402
2403 2010-10-11  Robert Dewar  <dewar@adacore.com>
2404
2405         * s-htable.adb: Minor reformatting.
2406
2407 2010-10-11  Javier Miranda  <miranda@adacore.com>
2408
2409         * debug.adb: Update comment.
2410
2411 2010-10-11  Vincent Celier  <celier@adacore.com>
2412
2413         * gnatcmd.adb (GNATCmd): Set Opt.Unchecked_Shared_Lib_Imports to True
2414         unconditionally as for "gnat make" the projects are not processed in
2415         the GNAT driver.
2416
2417 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2418
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
2422         unit.
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.
2426
2427 2010-10-11  Robert Dewar  <dewar@adacore.com>
2428
2429         * exp_ch6.adb, freeze.adb: Minor reformatting.
2430
2431 2010-10-11  Vincent Celier  <celier@adacore.com>
2432
2433         * gnatcmd.adb (GNATCmd): For all tools other than gnatmake, allow
2434         shared library projects to import projects that are not shared library
2435         projects.
2436
2437 2010-10-11  Javier Miranda  <miranda@adacore.com>
2438
2439         * debug.adb: Document that switch -gnatd.o generates the CIL listing.
2440
2441 2010-10-11  Arnaud Charlet  <charlet@adacore.com>
2442
2443         * sem_prag.adb (Process_Suppress_Unsuppress): Only ignore
2444         Suppress/Unsuppress pragmas in codepeer mode on user code.
2445
2446 2010-10-11  Javier Miranda  <miranda@adacore.com>
2447
2448         * exp_ch6.adb (Expand_Call): For VM platforms, add missing expansion of
2449         tag check in case of dispatching call through "=".
2450
2451 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2452
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
2460         item if misplaced.
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
2463         context of a unit.
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
2467
2468 2010-10-11  Robert Dewar  <dewar@adacore.com>
2469
2470         * exp_ch6.adb: Code clean up.
2471         * exp_util.adb: Minor reformatting.
2472
2473 2010-10-11  Arnaud Charlet  <charlet@adacore.com>
2474
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
2480         restriction.
2481         (Access_Definition): Add missing handling of No_Task_Hierarchy.
2482
2483 2010-10-11  Javier Miranda  <miranda@adacore.com>
2484
2485         * exp_util.adb (Remove_Side_Effects): No action needed for renamings of
2486         class-wide expressions.
2487
2488 2010-10-11  Arnaud Charlet  <charlet@adacore.com>
2489
2490         * xr_tabls.adb, sem_res.adb: Minor reformatting
2491
2492 2010-10-11  Arnaud Charlet  <charlet@adacore.com>
2493
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.
2499
2500 2010-10-11  Robert Dewar  <dewar@adacore.com>
2501
2502         * sem_attr.adb: Minor reformatting.
2503
2504 2010-10-11  Javier Miranda  <miranda@adacore.com>
2505
2506         * sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading
2507         package System.Aux_Dec in VM platforms.
2508
2509 2010-10-11  Arnaud Charlet  <charlet@adacore.com>
2510
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
2514         in codepeer mode.
2515         * einfo.ads: Fix typo.
2516
2517 2010-10-11  Emmanuel Briot  <briot@adacore.com>
2518
2519         * sinfo.adb: Use GNAT.HTable rather than System.HTable.
2520         * prj-nmsc.adb: Minor reformatting.
2521
2522 2010-10-11  Thomas Quinot  <quinot@adacore.com>
2523
2524         * sem_attr.adb (Type_Key): Code simplification.
2525
2526 2010-10-11  Tristan Gingold  <gingold@adacore.com>
2527
2528         * gcc-interface/utils2.c (maybe_wrap_malloc): Fix crash when allocating
2529         very large object on VMS.
2530
2531 2010-10-11  Javier Miranda  <miranda@adacore.com>
2532
2533         * sem_ch10.adb (Analyze_With_Clause): Add missing test to ensure
2534         availability of attribute Instance_Spec.
2535
2536 2010-10-11  Arnaud Charlet  <charlet@adacore.com>
2537
2538         * gnat1drv.adb (Adjust_Global_Switches): Disable codepeer mode if
2539         checking syntax only or in ASIS mode.
2540
2541 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2542
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.
2547
2548 2010-10-11  Emmanuel Briot  <briot@adacore.com>
2549
2550         * prj-nmsc.adb (Check_Aggregate_Project): Add support for finding all
2551         aggregated projects.
2552
2553 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2554
2555         * sem_res.adb (Resolve_Entry_Call): Generate 's' reference for entry
2556         call.
2557         * sem_ch6.adb: Diagnose additional error condition.
2558
2559 2010-10-11  Bob Duff  <duff@adacore.com>
2560
2561         * par.adb (Par): Clarify wording of certain error messages.
2562
2563 2010-10-11  Gary Dismukes  <dismukes@adacore.com>
2564
2565         * sem_disp.adb (Check_Dispatching_Operation): Revise test for warning
2566         about nondispatching subprograms to use In_Same_List (reducing use of
2567         Parent links).
2568
2569 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2570
2571         * xr_tabls.adb, sem_res.adb, lib-xref.adb, lib-xref.ads: Use s for
2572         reference in a static call.
2573
2574 2010-10-11  Steve Baird  <baird@adacore.com>
2575
2576         * exp_attr.adb (Expand_N_Attribute_Reference, case Type_Key): Type_Key
2577         attribute should always be transformed into a string literal in
2578         Analyze_Attribute.
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
2583         statically).
2584         * snames.ads-tmpl: Add entries for Type_Key attribute.
2585
2586 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2587
2588         * lib-xref.adb (Output_References): Common handling for objects and
2589         formals of an anonymous access type.
2590
2591 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
2592
2593         * make.adb (Scan_Make_Arg): Also pass -O to both compiler and linker.
2594
2595 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2596
2597         * sem_ch6.adb: Fix check for illegal equality declaration in Ada2012
2598
2599 2010-10-11  Gary Dismukes  <dismukes@adacore.com>
2600
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.
2605
2606 2010-10-11  Jerome Lambourg  <lambourg@adacore.com>
2607
2608         * projects.texi, prj-attr.adb: Add new attribute documentation_dir.
2609
2610 2010-10-11  Bob Duff  <duff@adacore.com>
2611
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).
2623
2624 2010-10-11  Bob Duff  <duff@adacore.com>
2625
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
2630         (Ada_Version_Type).
2631
2632 2010-10-11  Javier Miranda  <miranda@adacore.com>
2633
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.
2640
2641 2010-10-11  Robert Dewar  <dewar@adacore.com>
2642
2643         * sem_prag.adb, sem_aggr.adb, sprint.adb: Minor reformatting.
2644
2645 2010-10-11  Javier Miranda  <miranda@adacore.com>
2646
2647         * exp_ch5.ads, exp_ch6.ads (Expand_N_Extended_Return_Statement): Moved
2648         to exp_ch6.
2649         (Expand_N_Simple_Return_Statement): Moved to exp_ch6.
2650         * exp_ch5.adb, exp_ch6.adb (Expand_Non_Function_Return): Moved to
2651         exp_ch6.
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.
2655
2656 2010-10-11  Robert Dewar  <dewar@adacore.com>
2657
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>
2662
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.
2665
2666 2010-10-11  Vincent Celier  <celier@adacore.com>
2667
2668         * adaint.h: Add prototype for function __gnat_create_output_file_new.
2669
2670 2010-10-11  Javier Miranda  <miranda@adacore.com>
2671
2672         * sem_aggr.adb (Collect_Aggr_Bounds): Remove side effects of collected
2673         aggregate bounds.
2674
2675 2010-10-11  Arnaud Charlet  <charlet@adacore.com>
2676
2677         * sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Do not emit error
2678         for AI05-0033 in CodePeer mode.
2679
2680 2010-10-11  Robert Dewar  <dewar@adacore.com>
2681
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
2696
2697 2010-10-11  Vincent Celier  <celier@adacore.com>
2698
2699         * adaint.c: Minor reformatting.
2700
2701 2010-10-11  Robert Dewar  <dewar@adacore.com>
2702
2703         * sem_ch6.adb, s-htable.ads: Minor reformatting.
2704
2705 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2706
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.
2711
2712 2010-10-11  Vincent Celier  <celier@adacore.com>
2713
2714         * adaint.c (__gnat_number_of_cpus): Add implementation for Solaris,
2715         AIX, Tru64, Darwin, IRIX and HP-UX.
2716
2717 2010-10-11  Robert Dewar  <dewar@adacore.com>
2718
2719         * a-textio.adb: Minor reformatting
2720
2721 2010-10-11  Robert Dewar  <dewar@adacore.com>
2722
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.
2732
2733 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2734
2735         * exp_ch5.adb: Code clean up.
2736
2737 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2738
2739         * sem_ch6.adb (Check_Limited_Return): Specialize warning on limited
2740         returns when in a generic context.
2741         (Analyze_Function_Return): ditto.
2742
2743 2010-10-11  Robert Dewar  <dewar@adacore.com>
2744
2745         * s-multip.ads: Fix header.
2746         * sem_ch3.adb, s-multip.adb, a-tigeli.adb: Minor reformatting.
2747
2748 2010-10-11  Vincent Celier  <celier@adacore.com>
2749
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
2757         2012.
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.
2761
2762 2010-10-11  Javier Miranda  <miranda@adacore.com>
2763
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.
2766
2767 2010-10-11  Ed Schonberg  <schonberg@adacore.com>
2768
2769         * sem_aux.adb: Code clean up.
2770
2771 2010-10-11  Robert Dewar  <dewar@adacore.com>
2772
2773         * sem_ch3.adb, sem_aux.adb, sem_ch6.adb: Minor reformatting
2774
2775 2010-10-11  Robert Dewar  <dewar@adacore.com>
2776
2777         * einfo.adb, atree.h, atree.ads, atree.adb: Define seven new flags
2778         Flag248-Flag254.  Define new field Field29.
2779
2780 2010-10-10  Olivier Hainque  <hainque@adacore.com>
2781             Eric Botcazou  <ebotcazou@adacore.com>
2782
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.
2791
2792 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2793
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.
2798
2799 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2800
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.
2804
2805 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2806
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
2818         and handle it.
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.
2821
2822 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2823
2824         * gcc-interface/misc.c: Delete prototypes.
2825         (gnat_init_options): Use local variable.
2826         (lang_hooks): Move to the end of the file.
2827
2828 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
2829
2830         * gcc-interface/misc.c (gnat_init_options_struct): New.  Split out
2831         from gnat_init_options.
2832         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2833
2834 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
2835
2836         * sem_aux.adb: Cleanup Is_Immutably_Limited_Type.
2837
2838 2010-10-08  Robert Dewar  <dewar@adacore.com>
2839
2840         * exp_ch3.adb: Minor reformatting.
2841         * exp_ch5.adb: Add comment.
2842
2843 2010-10-08  Robert Dewar  <dewar@adacore.com>
2844
2845         * sem_prag.adb (Check_Duplicate_Pragma): Check for entity match
2846         * gcc-interface/Make-lang.in: Update dependencies.
2847         * einfo.ads: Minor reformatting.
2848
2849 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
2850
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
2857         body.
2858
2859 2010-10-08  Robert Dewar  <dewar@adacore.com>
2860
2861         * sem_prag.adb (Check_Duplicate_Pragma): New procedure
2862         Add calls to this new procedure where appropriate
2863
2864 2010-10-08  Vincent Celier  <celier@adacore.com>
2865
2866         * a-textio.adb (Get_Chunk): Code clean up.
2867
2868 2010-10-08  Robert Dewar  <dewar@adacore.com>
2869
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
2878         parameter.
2879
2880 2010-10-08  Robert Dewar  <dewar@adacore.com>
2881
2882         * sem_cat.adb (Check_Categorization_Dependencies): Remote types
2883         packages can depend on preleborated packages.
2884
2885 2010-10-08  Robert Dewar  <dewar@adacore.com>
2886
2887         * sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Pragmas
2888         Interrupt_Handler and Attach_Handler not allowed in generics.
2889
2890 2010-10-08  Robert Dewar  <dewar@adacore.com>
2891
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.
2909
2910 2010-10-08  Geert Bosch  <bosch@adacore.com>
2911
2912         * a-textio.adb (Get_Line): Rewrite to use fgets instead of fgetc.
2913
2914 2010-10-08  Javier Miranda  <miranda@adacore.com>
2915
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.
2919
2920 2010-10-08  Robert Dewar  <dewar@adacore.com>
2921
2922         * par-ch3.adb: Minor reformatting.
2923
2924 2010-10-08  Javier Miranda  <miranda@adacore.com>
2925
2926         * exp_disp.adb (Make_DT): Do not generate dispatch tables for CIL/Java
2927         types.
2928
2929 2010-10-08  Robert Dewar  <dewar@adacore.com>
2930
2931         * par-ch8.adb (P_Use_Type_Clause): Recognize ALL keyword in Ada 2012
2932         mode.
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.
2937
2938 2010-10-08  Vincent Celier  <celier@adacore.com>
2939
2940         * bindgen.adb (Gen_Restrictions_Ada): No new line after last
2941         restriction, so that the last comma is always replaced with a left
2942         parenthesis.
2943
2944 2010-10-08  Javier Miranda  <miranda@adacore.com>
2945
2946         * sem_prag.adb (Analyze_Pragma): Add specific check on the type of the
2947         first formal of delegates.
2948
2949 2010-10-08  Robert Dewar  <dewar@adacore.com>
2950
2951         * sem_aggr.adb: Minor reformatting.
2952
2953 2010-10-08  Robert Dewar  <dewar@adacore.com>
2954
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
2961         case.
2962         * s-valcha.adb (Value_Character): Recognize SOFT_HYPHEN for 16#AD#
2963         * sem_attr.adb (Eval_Attribute, case Width): Handle soft_hyphen name
2964         properly.
2965
2966 2010-10-08  Robert Dewar  <dewar@adacore.com>
2967
2968         * sem_attr.adb (Eval_Attribute, case Width): Avoid ludicrous long loop
2969         for case of Wide_[Wide_]Character.
2970
2971 2010-10-08  Robert Dewar  <dewar@adacore.com>
2972
2973         * exp_ch3.adb: Minor reformating
2974         Minor code reorganization.
2975
2976 2010-10-08  Javier Miranda  <miranda@adacore.com>
2977
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.
2982
2983 2010-10-08  Robert Dewar  <dewar@adacore.com>
2984
2985         * sem_ch6.adb: Minor reformatting.
2986
2987 2010-10-08  Robert Dewar  <dewar@adacore.com>
2988
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]
2998
2999 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
3000
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.
3005
3006 2010-10-08  Thomas Quinot  <quinot@adacore.com>
3007
3008         * xsnames.adb: Remove obsolete file.
3009         * make.adb, sem_ch8.adb, einfo.ads: Minor reformatting.
3010
3011 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
3012
3013         * exp_aggr.adb: Complete previous change.
3014
3015 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
3016
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
3020         constrained.
3021
3022 2010-10-08  Vincent Celier  <celier@adacore.com>
3023
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
3028         several times.
3029
3030 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
3031
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
3036         type.
3037
3038 2010-10-08  Arnaud Charlet  <charlet@adacore.com>
3039
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.
3043
3044 2010-10-08  Robert Dewar  <dewar@adacore.com>
3045
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.
3056
3057 2010-10-08  Robert Dewar  <dewar@adacore.com>
3058
3059         * sprint.adb: Minor reformatting.
3060
3061 2010-10-08  Javier Miranda  <miranda@adacore.com>
3062
3063         * exp_ch4.adb (Real_Range_Check): Declare temporary as constant.
3064
3065 2010-10-08  Robert Dewar  <dewar@adacore.com>
3066
3067         * sem_ch3.adb: Minor reformatting.
3068
3069 2010-10-08  Vincent Celier  <celier@adacore.com>
3070
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
3075         references.
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
3080         external_as_list.
3081         * scans.ads (Token_Type): New token Tok_External_As_List
3082         * snames.ads-tmpl: New standard name Name_External_As_List
3083
3084 2010-10-08  Thomas Quinot  <quinot@adacore.com>
3085
3086         * sem_prag.adb: Minor reformatting.
3087
3088 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
3089
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.
3095
3096 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
3097
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.
3101
3102 2010-10-08  Robert Dewar  <dewar@adacore.com>
3103
3104         * sem_util.adb, sem_prag.adb: Minor reformatting
3105
3106 2010-10-08  Hristian Kirtchev  <kirtchev@adacore.com>
3107
3108         * gnat_rm.texi: Remove the section on pragma Implemented_By_Entry.
3109         Add section on pragma Implemented.
3110
3111 2010-10-08  Ed Schonberg  <schonberg@adacore.com>
3112
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.
3116
3117 2010-10-08  Thomas Quinot  <quinot@adacore.com>
3118
3119         * sem_ch4.adb: Minor reformatting.
3120
3121 2010-10-08  Hristian Kirtchev  <kirtchev@adacore.com>
3122
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
3139         Pragma_Implemented.
3140         * sem_ch3.adb (Check_Abstract_Overriding): Perform checks concerning
3141         pragma Implemented.
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.
3159
3160 2010-10-08  Javier Miranda  <miranda@adacore.com>
3161
3162         * exp_ch3.adb (Expand_Freeeze_Record_Type): Code cleanup: remove local
3163         variable Has_Static_DT by invocation of function Building_Static_DT.
3164
3165 2010-10-08  Vincent Celier  <celier@adacore.com>
3166
3167         * g-dirope.adb (Remove_Dir): Do not change the current directory when
3168         doing a recursive remove of a subdirectory.
3169
3170 2010-10-08  Javier Miranda  <miranda@adacore.com>
3171
3172         * exp_ch6.ad (Freeze_Subprogram): Factorize code.
3173         * exp_disp.adb (Make_Secondary_DT): Factorize code.
3174         (Make_DT): Factorize code.
3175
3176 2010-10-08  Robert Dewar  <dewar@adacore.com>
3177
3178         * sem_ch4.adb: Minor reformatting.
3179
3180 2010-10-08  Robert Dewar  <dewar@adacore.com>
3181
3182         * sem_ch6.adb (Check_Conformance): Check null exclusion match for full
3183         conformance.
3184
3185 2010-10-08  Thomas Quinot  <quinot@adacore.com>
3186
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).
3191
3192 2010-10-08  Vincent Celier  <celier@adacore.com>
3193
3194         * prj-nmsc.adb: Minor comment fix.
3195
3196 2010-10-07  Robert Dewar  <dewar@adacore.com>
3197
3198         * sem_prag.adb, sem_ch13.adb: Implement AI05-0012-1/02.
3199         * gcc-interface/Make-lang.in: Update dependencies.
3200
3201 2010-10-07  Ed Schonberg  <schonberg@adacore.com>
3202
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.
3207
3208 2010-10-07  Ed Schonberg  <schonberg@adacore.com>
3209
3210         * sem_ch4.adb (Analyze_Allocator): In Ada 2012, a null_exclusion
3211         indicator is illegal for an uninitialized allocator.
3212
3213 2010-10-07  Robert Dewar  <dewar@adacore.com>
3214
3215         * sem_prag.adb (Analyze_Attribute_Definition_Clause, case
3216         Component_Size): Complete previous change.
3217
3218 2010-10-07  Vincent Celier  <celier@adacore.com>
3219
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
3222         version.
3223
3224 2010-10-07  Gary Dismukes  <dismukes@adacore.com>
3225
3226         * sem_aggr.adb, sem_ch12.adb, sem_ch6.adb, par-ch5.adb,
3227         exp_ch3.adb: Minor reformatting.
3228
3229 2010-10-07  Robert Dewar  <dewar@adacore.com>
3230
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.
3236
3237 2010-10-07  Steve Baird  <baird@adacore.com>
3238
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.
3241
3242 2010-10-07  Ed Schonberg  <schonberg@adacore.com>
3243
3244         * sem_ch12.adb (Validate_Derived_Type_Instance): If a formal derived
3245         type is non-limited, an actual for it cannot be limited.
3246
3247 2010-10-07  Robert Dewar  <dewar@adacore.com>
3248
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.
3255
3256 2010-10-07  Ed Schonberg  <schonberg@adacore.com>
3257
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
3261         overflow the stack.
3262
3263 2010-10-07  Ed Schonberg  <schonberg@adacore.com>
3264
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.
3268
3269 2010-10-07  Robert Dewar  <dewar@adacore.com>
3270
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).
3275
3276 2010-10-07  Robert Dewar  <dewar@adacore.com>
3277
3278         * sem_ch12.adb: Add comment.
3279         * sem_ch6.adb: Minor reformatting.
3280
3281 2010-10-07  Robert Dewar  <dewar@adacore.com>
3282
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
3288
3289 2010-10-07  Ed Schonberg  <schonberg@adacore.com>
3290
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.
3301
3302 2010-10-07  Robert Dewar  <dewar@adacore.com>
3303
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
3306         mode.
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
3316         GNAT mode.
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).
3319
3320 2010-10-07  Sergey Rybin  <rybin@adacore.com>
3321
3322         * gnat_ugn.texi: Add missing word.
3323
3324 2010-10-07  Robert Dewar  <dewar@adacore.com>
3325
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.
3335
3336 2010-10-07  Robert Dewar  <dewar@adacore.com>
3337
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
3343
3344 2010-10-07  Javier Miranda  <miranda@adacore.com>
3345
3346         * exp_util.adb (Safe_Prefixed_Reference): When removing side effects,
3347         Add missing support for explicit dereferences.
3348
3349 2010-10-07  Robert Dewar  <dewar@adacore.com>
3350
3351         * par-ch10.adb, par-ch3.adb, par.adb: Minor reformatting.
3352
3353 2010-10-07  Robert Dewar  <dewar@adacore.com>
3354
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.
3359
3360 2010-10-07  Robert Dewar  <dewar@adacore.com>
3361
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).
3366
3367 2010-10-07  Ed Schonberg  <schonberg@adacore.com>
3368