]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
2012-11-06 Paolo Carlini <paolo.carlini@oracle.com>
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
d849845a 12012-11-06 Ed Schonberg <schonberg@adacore.com>
2
3 * sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not
4 disable checks, so that flags can be properly set on expressions
5 that are not further expanded.
6
704b4aa5 72012-11-06 Robert Dewar <dewar@adacore.com>
8
9 * exp_attr.adb, sem_attr.adb: Minor reformatting.
10
aae8e592 112012-11-06 Gary Dismukes <dismukes@adacore.com>
12
13 * exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate
14 check when evaluating the attribute Valid, and issue a warning
15 about infinite recursion when the check occurs within the
16 predicate function of the prefix's subtype.
17 * exp_ch4.adb (Expand_N_In): Remove test for Is_Discrete_Type
18 when we're checking that there's no predicate check function as a
19 condition for substituting a Valid check for a scalar membership
20 test (substitution should be suppressed for any kind of scalar
21 subtype with a predicate check). Also, don't emit a predicate
22 check when the right operand is a range.
23
f6aa36b9 242012-11-06 Robert Dewar <dewar@adacore.com>
25
26 * par_sco.adb, bindgen.adb, exp_vfpt.adb, exp_vfpt.ads, exp_ch2.adb,
27 errout.adb, sem_ch8.adb: Minor reformatting.
28
292012-11-06 Hristian Kirtchev <kirtchev@adacore.com>
30
31 * einfo.adb: Include Loop_Entry_Attributes to the list of
32 Node/List/Elist10 usage.
33 (Loop_Entry_Attributes): New routine.
34 (Set_Loop_Entry_Attributes): New routine.
35 (Write_Field10_Name): Add an output string for Loop_Entry_Attributes.
36 * einfo.ads: Define new attribute Loop_Entry_Attributes along
37 with its usage in nodes.
38 (Loop_Entry_Attributes): New routine and dedicated pragma Inline.
39 (Set_Loop_Entry_Attributes): New routine and dedicated pragma Inline.
40 * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
41 Attribute_Loop_Entry here.
42 * exp_ch5.adb: Add with and use clause for Elists;
43 (Expand_Loop_Entry_Attributes): New routine.
44 (Expand_N_Loop_Statement): Add a call to Expand_Loop_Entry_Attributes.
45 * exp_prag.adb (Expand_Pragma_Loop_Assertion): Specialize the
46 search to include multiple nested loops produced by the expansion
47 of Ada 2012 array iterator.
48 * sem_attr.adb: Add with and use clause for Elists.
49 (Analyze_Attribute): Check the legality of attribute Loop_Entry.
50 (Resolve_Attribute): Nothing to do for Loop_Entry.
51 (S14_Attribute): New routine.
52 * snames.ads-tmpl: Add a comment on entries marked with
53 HiLite. Add new name Name_Loop_Entry. Add new attribute
54 Attribute_Loop_Entry.
55
a4307c4a 562012-11-06 Geert Bosch <bosch@adacore.com>
57
58 * eval_fat.adb (Machine, Succ): Fix front end to support static
59 evaluation of attributes on targets with both VAX and IEEE float.
60 * sem_util.ads, sem_util.adb (Has_Denormals, Has_Signed_Zeros):
61 New type-specific functions. Previously we used Denorm_On_Target
62 and Signed_Zeros_On_Target directly, but that doesn't work well
63 for OpenVMS where a single target supports both floating point
64 with and without signed zeros.
65 * sem_attr.adb (Attribute_Denorm, Attribute_Signed_Zeros): Use
66 new Has_Denormals and Has_Signed_Zeros functions to support both
67 IEEE and VAX floating point on a single target.
68
692012-11-06 Tristan Gingold <gingold@adacore.com>
70
71 * bindgen.adb (System_Interrupts_Used): New variable.
72 (Gen_Adainit): Declare and call
73 Install_Restricted_Handlers_Sequential if System.Interrupts is
74 used when elaboration policy is sequential.
75
762012-11-06 Ed Schonberg <schonberg@adacore.com>
77
78 * sem_ch8.adb: Complete previous change.
79
806e0cb1 802012-11-06 Tristan Gingold <gingold@adacore.com>
81
82 * fe.h (Get_Vax_Real_Literal_As_Signed): Declare.
83 * eval_fat.adb, eval_fat.ads (Decompose_Int): Move spec in package spec.
84 * exp_vfpt.adb, exp_vfpt.ads (Vax_Real_Literal_As_Signed): New function.
85 (Expand_Vax_Real_Literal): Remove.
86 * exp_ch2.adb (Expand_N_Real_Literal): Do nothing.
87 * sem_eval.adb (Expr_Value_R): Remove special Vax float case,
88 as this is not anymore a special case.
89
902012-11-06 Yannick Moy <moy@adacore.com>
91
92 * uintp.ads: Minor correction of typo in comment.
93
942012-11-06 Ed Schonberg <schonberg@adacore.com>
95
96 * sem_prag.adb (Analyze_Pragnma, case Unchecked_Union): remove
97 requirement that discriminants of an unchecked_union must have
98 defaults.
99
1002012-11-06 Vasiliy Fofanov <fofanov@adacore.com>
101
102 * projects.texi: Minor wordsmithing.
103
3713b75f 1042012-11-06 Robert Dewar <dewar@adacore.com>
105
106 * sem_ch9.adb, exp_vfpt.adb, xoscons.adb: Minor reformatting.
107
8b8f1d98 1082012-11-06 Tristan Gingold <gingold@adacore.com>
109
110 * exp_vfpt.adb: Document VAX float point layout.
111
1122012-11-06 Geert Bosch <bosch@adacore.com>
113
114 * eval_fat.adb (Machine): Don't return -0.0 on targets without
115 signed zeros.
116
1172012-11-06 Ed Schonberg <schonberg@adacore.com>
118
119 * sem_ch9.adb (Analyze_Entry_Call_Alternative,
120 Check_Triggering_Statement): Reject properly an indirect call.
121
9040d730 1222012-11-06 Pascal Obry <obry@adacore.com>
123
124 * xoscons.adb, xutil.adb, xutil.ads: Add support for post-processing.
125
64c0accb 1262012-11-06 Yannick Moy <moy@adacore.com>
127
128 * s-bignum.adb (Div_Rem): Fix another bug in step D3.
129
1302012-11-06 Tristan Gingold <gingold@adacore.com>
131
132 * s-tarest.adb (Create_Restricted_Task): Call
133 Create_Restricted_Task_Sequential in sequential case.
134
1352012-11-06 Hristian Kirtchev <kirtchev@adacore.com>
136
137 * exp_prag.adb (Expand_Pragma_Loop_Assertion): Do not rewrite the
138 pragma into a null statement as its presence is desirable in -gnatG
139 output.
140
8f553582 1412012-11-06 Ed Schonberg <schonberg@adacore.com>
142
143 * sem_ch8.adb (Check_Constrained_Object): Do nothing if the
144 renamed object is a limited record.
145
1462012-11-06 Bernard Banner <banner@adacore.com>
147
148 * sysdep.c (_getpagesize): New. Minor reformatting.
149
2d9671b9 1502012-11-06 Robert Dewar <dewar@adacore.com>
151
152 * sem_prag.adb: Minor reformatting.
153
1542012-11-06 Robert Dewar <dewar@adacore.com>
155
156 * s-bignum.adb (Div_Rem): Fix bug in step D3.
157 * uintp.adb (UI_Div_Rem): Add comment on bug in step D3.
158
72e17c21 1592012-11-06 Hristian Kirtchev <kirtchev@adacore.com>
160
161 * exp_prag.adb (Expand_Pragma_Loop_Assertion): Update the comment
162 on intended expansion. Reimplement the logic which expands the
163 termination variants.
164 (Process_Increase_Decrease): Update the parameter profile and the
165 comment related to it. Accommodate the new aggregate-like appearance of
166 the termination variants.
167 * sem_prag.adb (Analyze_Pragma): Update the syntax of pragma
168 Loop_Assertion. Reimplement the semantic analysis of the pragma
169 to accommodate the new aggregate-like variant.
170 (Check_Variant): New routine.
171 * snames.ads-tmpl: Change names Name_Decreases and Name_Increases
172 to Name_Decreasing and Name_Increasing respectively. Add name
173 Variant.
174
1752012-11-06 Ed Schonberg <schonberg@adacore.com>
176
177 * sem_eval.adb: Static evaluation of case expressions.
178
27286d2b 1792012-11-06 Robert Dewar <dewar@adacore.com>
180
181 * exp_prag.adb, impunit.adb, exp_ch9.adb, par-ch4.adb,
182 s-tarest.adb: Minor reformatting.
183
1842012-11-06 Tristan Gingold <gingold@adacore.com>
185
186 * s-tposen.ads: Minor comment update.
187
1882012-11-06 Arnaud Charlet <charlet@adacore.com>
189
190 * sysdep.c: Rename sig* wrappers to use unique names.
191
1922012-11-06 Yannick Moy <moy@adacore.com>
193
194 * exp_dbug.adb (Qualify_Entity_Name): Mark entity as having a qualified
195 name after being treated, in formal verification mode.
196
1972012-11-06 Fedor Rybin <frybin@adacore.com>
198
199 * gnat_ugn.texi: Updating gnattest section to reflect changes
200 in default behaviour of the tool.
201
d4f55b2a 2022012-11-06 Thomas Quinot <quinot@adacore.com>
203
204 * s-oscons-tmplt.c: Interfaces.C now needs to be WITH'd even
205 on platforms that do not support sockets (for the benefit of
206 subtype IOCTL_Req_T).
207
2082012-11-06 Ed Schonberg <schonberg@adacore.com>
209
210 * par-ch4.adb (P_Primary): if-expressions, case-expressions,
211 and quantified expressions are legal if surrounded by parentheses
212 from an enclosing context, such as a call or an instantiation.
213
2142012-11-06 Yannick Moy <moy@adacore.com>
215
216 * impunit.adb (Get_Kind_Of_Unit): Return appropriate kind for
217 predefined implementation files, instead of returning
218 Not_Predefined_Unit on all .adb files.
219
2202012-11-06 Tristan Gingold <gingold@adacore.com>
221
222 * exp_ch9.adb (Build_Activation_Chain_Entity): Return immediately if
223 partition elaboration policy is sequential.
224 (Build_Task_Activation_Call): Likewise. Use
225 Activate_Restricted_Tasks on restricted profile.
226 (Make_Task_Create_Call): Do not use the _Chain
227 parameter if elaboration policy is sequential. Call
228 Create_Restricted_Task_Sequential in that case.
229 * exp_ch3.adb (Build_Initialization_Call): Change condition to
230 support concurrent elaboration policy.
231 (Build_Record_Init_Proc): Likewise.
232 (Init_Formals): Likewise.
233 * bindgen.adb (Gen_Adainit): Declare Partition_Elaboration_Policy
234 and set it in generated code if the elaboration policy is
235 sequential. The procedure called to activate all tasks is now
236 named __gnat_activate_all_tasks.
237 * rtsfind.adb (RE_Activate_Restricted_Task,
238 RE_Create_Restricted_Task_Sequential): New RE_Id literals.
239 * s-tarest.adb (Create_Restricted_Task): Added to create a task without
240 adding it on an activation chain.
241 (Activate_Tasks): Has now a Chain parameter.
242 (Activate_All_Tasks_Sequential): Added. Called by the binder to
243 activate all tasks.
244 (Activate_Restricted_Tasks): Added. Called during elaboration to
245 activate tasks of the units.
246 * s-tarest.ads: Remove pragma Partition_Elaboration_Policy.
247 (Partition_Elaboration_Policy): New variable (set by the binder).
248 (Create_Restricted_Task): Revert removal of the chain parameter.
249 (Create_Restricted_Task_Sequential): New procedure.
250 (Activate_Restricted_Tasks): Revert removal.
251 (Activate_All_Tasks_Sequential): New procedure.
252
b261877a 2532012-11-06 Bernard Banner <banner@adacore.com>
254
255 * adaint.c Add file macro definitions missing on Android.
256 * adaint.h Avoid definitions related to task affinity and CPU
257 sets since this functionality is missing on the Android
258 * errno.c (__set_errno): Android already contains such a named
259 procedure so do include again.
260 * gsocket.h: Sockets not supported on Android.
261 * init.c: Avoid linux related code not supported on Android.
262 * sysdep.c (sigismember, sigaddset, sigdelset, sigemptyset,
263 sigfillset): wrapper functions since sig routines are defined
264 as inline macros on Android.
265 * terminals.c: Add stubs for terminal related functions not
266 supported on Android.
267
58621cf4 2682012-11-06 Hristian Kirtchev <kirtchev@adacore.com>
269
270 * sem_prag.adb (Analyze_Pragma): Do not
271 output the characters of an illegal argument as it may not have
272 characters to begin with.
273
2742012-11-06 Hristian Kirtchev <kirtchev@adacore.com>
275
276 * exp_prag.adb (Expand_Pragma_Loop_Assertion):
277 Change the order of argument processing to avoid disappearing
278 increase / decrease expressions.
279
80643aa6 2802012-11-06 Hristian Kirtchev <kirtchev@adacore.com>
281
282 * exp_prag.adb: Add with and use clause for Sem_Ch8.
283 (Expand_N_Pragma): Add a new variant to expand pragma Loop_Assertion.
284 (Expand_Pragma_Loop_Assertion): New routine.
285 * par-prag.adb (Prag): The semantic analysis of pragma
286 Loop_Assertion is carried out by Analyze_Pragma. No need for
287 checks in the parser.
288 * sem_prag.adb: Add a reference position value for pragma
289 Loop_Assertion in Sig_Flags.
290 (Analyze_Pragma): Add semantic analysis for pragma Loop_Assertion.
291 * snames.ads-tmpl: Add the following new names:
292 Name_Decreases Name_Increases Name_Loop_Assertion.
293 Add new pragma id Pragma_Loop_Assertion.
294
2952012-11-06 Ed Schonberg <schonberg@adacore.com>
296
297 * exp_ch5.adb: Identifier in iterator must have debug
298 information.
299
04809a66 3002012-11-06 Arnaud Charlet <charlet@adacore.com>
301
302 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
303 duplicate rules handled by Make-generated.in.
304
d2313b52 3052012-10-31 Lawrence Crowl <crowl@google.com>
306
307 * gcc-interface/utils.c (gnat_write_global_declarations):
308 Rename varpool_node to varpool_node_for_decl.
309
336fdb5e 3102012-10-30 Eric Botcazou <ebotcazou@adacore.com>
311
312 * gcc-interface/Make-lang.in: Fix and clean up rules for C files.
313
d8394522 3142012-10-29 Arnaud Charlet <charlet@adacore.com>
315
316 * gcc-interface/Makefile.in (s-oscons.ads): Adjust call to xoscons.
317
a2ce3d11 3182012-10-29 Pascal Obry <obry@adacore.com>
319
320 * xoscons.adb, Make-generated.in; The template used by xoscons is now
321 given as parameter.
322 * gcc-interface/Make-lang.in: Update dependencies.
323
3242012-10-29 Yannick Moy <moy@adacore.com>
325
326 * exp_dbug.adb (Qualify_Entity_Name): Only do renaming in formal
327 verification mode when there is a homonym.
328
ce73accb 3292012-10-29 Thomas Quinot <quinot@adacore.com>
330
331 * xoscons.adb: Minor reformatting.
332
3332012-10-29 Yannick Moy <moy@adacore.com>
334
335 * exp_alfa.adb (Expand_Alfa): Backtrack change that removed
336 qualification of names in formal verification mode. Instead,
337 the qualification should be modified.
338 * exp_dbug.adb (Qualify_Entity_Name): Modify qualification in formal
339 verification mode, so that only a suffix is added to distinguish
340 homonyms from the same scope.
341
96f971b2 3422012-10-29 Robert Dewar <dewar@adacore.com>
343
344 * gnat_rm.texi: Document that pragma Optimize_Alignment (Space) is
345 ignored with a warning for packed variable length records.
346
3472012-10-29 Thomas Quinot <quinot@adacore.com>
348
349 * socket.c, g-socthi-dummy.adb, g-socthi-dummy.ads, g-socthi-vms.adb,
350 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
351 s-oscons-tmplt.c, g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb,
352 g-socthi.ads, xoscons.adb, g-socket.adb, g-sothco.ads: Introduce an
353 appropriate subtype for IOCTL requests, since these may be signed or
354 unsigned.
355
fcee6529 3562012-10-29 Gary Dismukes <dismukes@adacore.com>
357
358 * exp_alfa.adb: Minor reformatting.
359
3602012-10-29 Robert Dewar <dewar@adacore.com>
361
362 * gnat_rm.texi, gnat_ugn.texi: Clarify documentation on maximum
363 line length style switch.
364
3652012-10-29 Robert Dewar <dewar@adacore.com>
366
367 * layout.adb (Set_Composite_Alignment): Ignore pragma
368 Optimize_Alignment (Space) for packed variable length records.
369
c2db7c54 3702012-10-29 Robert Dewar <dewar@adacore.com>
371
372 * s-bignum.adb: Minor comment change.
373
3742012-10-29 Thomas Quinot <quinot@adacore.com>
375
376 * s-oscons-tmplt.c: Fix signedness of ioctl request identifiers
377 for x86_64-freebsd.
378
3792012-10-29 Yannick Moy <moy@adacore.com>
380
381 * exp_alfa.adb (Expand_Alfa): Remove qualification of names.
382
687b5687 3832012-10-29 Robert Dewar <dewar@adacore.com>
384
385 * sem_prag.adb: Minor reformatting.
386
3872012-10-29 Robert Dewar <dewar@adacore.com>
388
389 * gnat_rm.texi: Minor rewording.
390
3912012-10-29 Javier Miranda <miranda@adacore.com>
392
393 * exp_disp.ads (Is_Expanded_Dispatching_Call): New subprogram.
394 * exp_disp.adb (Expand_Dispatching_Call): No action needed if the
395 call has been already expanded.
396 (Is_Expanded_Dispatching_Call): New subprogram.
397 * sem_disp.adb (Propagate_Tag): No action needed if the call
398 has been already expanded.
399
4002012-10-29 Hristian Kirtchev <kirtchev@adacore.com>
401
402 * exp_ch9.adb (Create_Index_And_Data): Remove local
403 variable Index_Typ and its uses. The type of the index is now
404 System.Tasking.Entry_Index. Update all related comments.
405 * rtsfind.ads: Add RE_Entry_Index in tables RE_Id and RE_Unit_Table.
406 * s-taskin.adb (Number_Of_Entries): The return type is now Entry_Index.
407 * s-taskin.ads: The index type of Task_Entry_Names_Array is now
408 Entry_Index.
409 (Number_Of_Entries): The return type is now Entry_Index.
410 * s-tpoben.adb (Number_Of_Entries): The return type is now Entry_Index.
411 * s-tpoben.ads: The index type of Protected_Entry_Names_Array
412 is now Entry_Index.
413 (Number_Of_Entries): The return type is now Entry_Index.
414
4152012-10-29 Pascal Obry <obry@adacore.com>
416
417 * gnat_ugn.texi: Add note about SEH setup on x86-windows.
418
4192012-10-29 Eric Botcazou <ebotcazou@adacore.com>
420
421 * s-bignum.adb (Allocate_Bignum): Use the exact layout of
422 Bignum_Data for the overlay.
423
8c8f204f 4242012-10-29 Thomas Quinot <quinot@adacore.com>
425
426 * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_util.ads,
427 par-prag.adb, par-util.adb, snames.ads-tmpl (Sem_Prag.Analyze_Pragma):
428 Handle new pragma Attribute_Definition.
429 (Sem_Util.Bad_Attribute): New routine, moved here
430 from par-util, so that it can be used by the above.
431 (Par_Util.Signal_Bad_Attribute): Processing moved to
432 Sem_Util.Bad_Attribute.
433
8472c0d1 4342012-10-29 Robert Dewar <dewar@adacore.com>
435
436 * s-tpoben.ads, s-taskin.ads, exp_ch3.adb: Minor reformatting.
437
4382012-10-29 Yannick Moy <moy@adacore.com>
439
440 * sem_prag.adb, gnat1drv.adb, opt.ads: Rename S14_Extensions
441 into Formal_Extensions.
442
4432012-10-29 Thomas Quinot <quinot@adacore.com>
444
445 * sem_attr.adb: Minor reformatting.
446
12e90c44 4472012-10-29 Tristan Gingold <gingold@adacore.com>
448
449 * gnat_rm.texi: Document implementation advice for Pragma
450 Partition_Elaboration_Policy.
451
4522012-10-29 Yannick Moy <moy@adacore.com>
453
454 * s-bignum.adb (Div_Rem): Reference that Algorithm_D is from
455 the second edition of TAOCP from Knuth, since the algo changed
456 in the third edition. Also correct the definition of 'd' which
457 could overflow.
458
4592012-10-29 Hristian Kirtchev <kirtchev@adacore.com>
460
461 * exp_ch3.adb (Build_Initialization_Call): Create static strings
462 which denote entry [family] names and associate them with the
463 object's Protection_Entries or ATCB.
464 (Build_Init_Statements):
465 Remove local variable Names. Do not generate the entry [family]
466 names inside the init proc because they are now static.
467 * exp_ch9.adb (Build_Entry_Names): Reimplemented. The strings
468 which denote entry [family] names are now generated statically
469 and associated with the concurrent object's Protection_Entries
470 or ATCB during initialization.
471 * exp_ch9.ads (Build_Entry_Names): Change subprogram profile
472 and associated comment on usage.
473 * rtsfind.ads: Add the following entries to tables RE_Id and
474 RE_Unit_Table:
475
476 RE_Protected_Entry_Names_Array RE_Task_Entry_Names_Array
477 RO_PE_Number_Of_Entries RO_PE_Set_Entry_Names
478 RO_ST_Number_Of_Entries RO_ST_Set_Entry_Names
479
480 Remove the following entries from tables RE_Id and RE_Unit_Table:
481
482 RO_PE_Set_Entry_Name RO_TS_Set_Entry_Name
483
484 * s-taskin.adb: Remove with clause for Ada.Unchecked_Deallocation.
485 (Free_Entry_Names_Array): Removed.
486 (Number_Of_Entries): New routine.
487 (Set_Entry_Names): New routine.
488 * s-taskin.ads: Rename type Entry_Names_Array to
489 Task_Entry_Names_Array. Rename type Entry_Names_Array_Access
490 to Task_Entry_Names_Access. Update the type of ACTB field
491 Entry_Names and add a comment on its protection status.
492 (Free_Entry_Names_Array): Removed.
493 (Number_Of_Entries): New routine.
494 (Set_Entry_Names): New routine.
495 * s-tassta.adb (Create_Task): Remove formal parameter
496 Build_Entry_Names. Do not allocate an array to hold the
497 string names of entries and families.
498 (Free_Entry_Names): Removed.
499 (Free_Task): Remove the call to Free_Entry_Names.
500 (Set_Entry_Name): Removed.
501 (Vulnerable_Free_Task): Remove the call to Free_Entry_Names.
502 * s-tassta.ads (Create_Task): Remove formal parameter
503 Build_Entry_Names along with associated comment.
504 (Set_Entry_Name): Removed.
505 * s-tpoben.adb: Remove with clause for Ada.Unchecked_Deallocation.
506 (Finalize): Remove the call to Free_Entry_Names.
507 (Free_Entry_Names): Removed.
508 (Initialize_Protection_Entries):
509 Remove formal parameter Build_Entry_Names. Do not allocate
510 an array to hold the string names of entries and families.
511 (Number_Of_Entries): New routine.
512 (Set_Entry_Name): Removed.
513 (Set_Entry_Names): New routine.
514 * s-tpoben.ads: Add types Protected_Entry_Names_Array and
515 Protected_Entry_Names_Access. Update the type of Protection_Enties
516 field Entry_Names.
517 (Initialize_Protection_Entries): Remove
518 formal parameter Build_Entry_Names along with associated comment.
519 (Number_Of_Entries): New routine.
520 (Set_Entry_Name): Removed.
521 (Set_Entry_Names): New routine.
522
5232012-10-29 Arnaud Charlet <charlet@adacore.com>
524
525 * gnat_ugn.texi: Minor typo fix.
fb261027 5262012-10-29 Yannick Moy <moy@adacore.com>
527
528 * debug.adb Associate debug switch -gnatd.V to extensions for
529 formal verification.
530 * gnat1drv.adb (Adjust_Global_Switches): Set flag S14_Extensions
531 when -gnatd.V is set.
532 * gnat_rm.texi: Remove doc for Assert_And_Cut.
533 * opt.ads Declare new flag S14_Extensions, to be set when new
534 aspects/pragmas/attributes for formal verification should be
535 accepted.
536 * sem_prag.adb (Analyze_Pragma): Check that S14_Extensions is
537 set when treating pragma Assert_And_Cut.
538
5392012-10-29 Tristan Gingold <gingold@adacore.com>
540
541 * s-tarest.ads, s-tassta.adb: Add a pragma Partition_Elaboration_Policy.
542
d797669f 5432012-10-29 Robert Dewar <dewar@adacore.com>
544
545 * freeze.adb: Minor reformatting.
546
0a1ae14d 5472012-10-29 Robert Dewar <dewar@adacore.com>
548
549 * xr_tabls.adb, xr_tabls.ads, exp_ch9.adb, snames.adb-tmpl,
550 snames.ads-tmpl, exp_ch3.adb: Minor reformatting.
551
5522012-10-29 Ed Schonberg <schonberg@adacore.com>
553
554 * sem_ch6.adb: Call Build_Subprogrm_Instance_Renamings only when
555 generating code.
556
5572012-10-29 Robert Dewar <dewar@adacore.com>
558
559 * gnat_ugn.texi: Add documentation for -gnatw.k/-gnatw.K.
560 * ug_words: Add entries for -gnatw.k/.K for [NO]STANDARD_REDEFINITION.
561 * vms_data.ads: Add entries for [NO]STANDARD_REDEFINITION.
562
f19e29b6 5632012-10-29 Tristan Gingold <gingold@adacore.com>
564
565 * exp_ch9.adb, s-tarest.ads, exp_ch3.adb: Update comments.
566
5672012-10-29 Yannick Moy <moy@adacore.com>
568
569 * gnat_rm.texi: Minor documentation addition.
570
5712012-10-29 Emmanuel Briot <briot@adacore.com>
572
573 * xr_tabls.adb, xr_tabls.ads (Add_Declaration, Add_Reference): No
574 longer assume that a parameter declaration is seen after the subprogram
575 that uses it.
576
5772012-10-29 Tristan Gingold <gingold@adacore.com>
578
579 * lib-writ.adb (Write_ALI): Emit partition elaboration policy
580 in P line.
581 * lib-writ.ads: Document partition elaboration policy indication.
582 * sem_prag.adb (Check_Arg_Is_Partition_Elaboration_Policy): New
583 procedure.
584 (Analyze_Pragma): Handle Partition_Elaboration_Policy.
585 (Sig_Flags): Add flag for Pragma_Partition_Elaboration_Policy
586 * ali.adb (Initialize_ALI): Init Partition_Elaboration_Policy_Specified.
587 (Scan_ALI): Read Ex indications.
588 * ali.ads: ALIs_Record: Add Partition_Elaboration_Policy.
589 * par-prag.adb (Prag): Add Partition_Elaboration_Policy.
590 * snames.adb-tmpl (Is_Partition_Elaboration_Policy_Name): New function.
591 * opt.ads (Partition_Elaboration_Policy): Declare.
592 (Partition_Elaboration_Policy_Sloc): Declare.
593 * bcheck.adb (Check_Consistent_Partition_Elaboration_Policy):
594 New procedure. (Check_Configuration_Consistency): Check partition
595 elaboration policy consistency.
596 * snames.ads-tmpl (Name_Partition_Elaboration_Policy): New name.
597 (First_Partition_Elaboration_Policy_Name, Name_Concurrent,
598 Name_Sequential, Last_Partition_Elaboration_Policy_Name): Likewise.
599 (Pragma_Partition_Elaboration_Policy): New literal.
600 (Is_Partition_Elaboration_Policy_Name): New function.
601
6022012-10-29 Ed Schonberg <schonberg@adacore.com>
603
604 * sem_ch6.adb (Is_Public_Subprogram_For): Handle properly
605 expression functions, which are rewritten as subprogram
606 declarations, when generating invariants for its return value
607 and in-out parameters.
608
6e3a4232 6092012-10-29 Arnaud Charlet <charlet@adacore.com>
610
611 * warnsw.adb (Set_GNAT_Mode_Warnings): Unset
612 Warn_On_Standard_Redefinition.
613
6142012-10-29 Javier Miranda <miranda@adacore.com>
615
616 * sem_ch3.adb (Derive_Progenitor_Subprograms): Complete documentation.
617
6182012-10-29 Robert Dewar <dewar@adacore.com>
619
620 * par-ch11.adb (Warn_If_Standard_Redefinition): Add calls.
621 * par-ch3.adb (P_Defining_Identifier): Call
622 Warn_If_Standard_Redefinition if not inside record definition.
623 * par-ch6.adb (Warn_If_Standard_Redefinition): Add calls.
624 * par-util.adb (Warn_If_Standard_Redefinition): New procedure.
625 * par.adb (Inside_Record_Definition): New flag.
626 (Warn_If_Standard_Redefinition): New procedure.
627 * sinfo-cn.adb (Change_Identifier_To_Defining_Identifier): Remove
628 handling of warning for redefining standard name (moved to Par*).
629
9a6a4132 6302012-10-29 Javier Miranda <miranda@adacore.com>
631
632 * sem_ch3.adb (Derive_Progenitor_Subprograms): Disable small
633 optimization in generic formal types.
634
6352012-10-29 Robert Dewar <dewar@adacore.com>
636
637 * exp_ch9.adb, exp_ch3.adb: Add comments.
638 * sem_prag.adb: Minor reformatting.
639
60774346 6402012-10-29 Tristan Gingold <gingold@adacore.com>
641
642 * bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for
643 Is_Elaborated if not referenced.
644
6452012-10-29 Tristan Gingold <gingold@adacore.com>
646
647 * exp_ch9.adb (Build_Activation_Chain_Entity): Punt in restricted
648 profile.
649 * exp_ch3.adb (Build_Initialization_Call): Do no append _Chain
650 parameter in restricted profile.
651 (Build_Init_Call_Thru): Likewise.
652 (Init_Formals): Likewise.
653 * exp_ch3.adb: Minor reformatting.
654
6ad452c6 6552012-10-29 Arnaud Charlet <charlet@adacore.com>
656
657 * usage.adb: Update usage line for -gnatw.k.
658
6592012-10-29 Yannick Moy <moy@adacore.com>
660
661 * sem_prag.adb: Code clean up.
662
7a9ab423 6632012-10-29 Vincent Celier <celier@adacore.com>
664
665 * projects.texi: Clarify documentation of attribute
666 Ignore_Source_Sub_Dirs.
667
6682012-10-29 Robert Dewar <dewar@adacore.com>
669
670 * g-sechas.adb, g-sechas.ads, exp_ch9.adb, bindgen.adb, exp_dbug.adb,
671 exp_dbug.ads: Minor reformatting.
672
4db43fab 6732012-10-29 Pascal Obry <obry@adacore.com>
674
675 * g-sechas.adb, g-sechas.ads: (Binary_Message_Digest): New subtype.
676 (Digest): New versions returning a Binary_Message_Digest.
677 (Wide_Digest): Likewise.
678
e8b5f25d 6792012-10-29 Robert Dewar <dewar@adacore.com>
680
681 * warnsw.adb: Complete previous change.
682
6832012-10-29 Tristan Gingold <gingold@adacore.com>
684
685 * bindgen.adb (Check_File_In_Partition, Check_System_Restrictions_Used):
686 Removed.
687 (Check_Dispatching_Domains_Used): Removed.
688 (Gen_Adafinal): Remove call to above procedures.
689 (Resolve_Binder_Options): Handle system restrictions and dispatching
690 domains.
691
6922012-10-29 Tristan Gingold <gingold@adacore.com>
693
694 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Remove
695 Chain parameter.
696 * exp_ch9.adb (Make_Task_Create_Call): Do not add Chain parameter
697 on restricted runtime.
698
6992012-10-29 Pascal Obry <obry@adacore.com>
700
701 * g-sechas.adb, g-sechas.ads: Minor code clean-up.
702
b9e61b2a 7032012-10-29 Ed Schonberg <schonberg@adacore.com>
704
705 * sem_aux.adb (Get_Rep_Item): Treat Priority and Interrupt_Priority
706 as equivalent, because only one of them can be specified for a
707 task, protected definition, or subprogram body.
708 * aspects.adb ((Same_Aspect): The canonical aspect of
709 Interrupt_Priority is Priority.
710
7112012-10-29 Robert Dewar <dewar@adacore.com>
712
713 * sem_ch13.adb: Minor reformatting.
714
7152012-10-29 Robert Dewar <dewar@adacore.com>
716
717 * i-cstrea.ads: Avoid redefinition of standard symbol string.
718 * prj-makr.adb: Add comment for OK redefinition of Stadard.
719 * prj.ads: Add comment for OK redefinition of Stadard.
720 * s-crtl.ads: Avoid redefinition of standard symbol string.
721 * sinfo-cn.adb (Change_Identifier_To_Defining_Identifier):
722 Generate warning for standard redefinition if
723 Warn_On_Standard_Definition set.
724 * usage.adb: Add lines for -gnatw.k and -gnatw.K
725 * warnsw.adb: Set/reset Warn_On_Standard_Redefinition
726 appropriately.
727 * warnsw.ads (Warn_On_Standard_Redefinition): New flag.
728 * s-stratt-xdr.adb: Avoid new warning.
729
7302012-10-29 Ed Schonberg <schonberg@adacore.com>
731
732 * exp_dbug.ads, exp_dbug.adb (Build_Subprogram_Instance_Renamings):
733 in the body of a subpogram instance, introduce local renamings
734 for actuals of an elementary type, so that GDB can recover the
735 values of these actuals more directly.
736
4c1fd062 7372012-10-29 Robert Dewar <dewar@adacore.com>
738
739 * sem_ch5.adb (Analyze_Loop_Statement): Add warning for identical
740 inner/outer ranges.
741
7422012-10-29 Robert Dewar <dewar@adacore.com>
743
744 * einfo.ads: Change terminology "present" to "defined" in talking
745 about whether a given field is defined for a given entity kind.
746
7472012-10-29 Bob Duff <duff@adacore.com>
748
749 * atree.ads: Minor comment fix.
750
7512012-10-29 Bob Duff <duff@adacore.com>
752
753 * sem_ch13.adb (Replace_Type_Reference): Set_Comes_From_Source.
754 Otherwise, the node is ignored by ASIS.
755 * sem_ch5.adb: Minor reformatting.
756
7572012-10-29 Thomas Quinot <quinot@adacore.com>
758
759 * exp_attr.adb, exp_dist.adb, exp_dist.ads (Build_To_Any_Call): Pass
760 an explicit Loc parameter to set the source location of generated
761 nodes.
762
7632012-10-29 Tristan Gingold <gingold@adacore.com>
764
765 * exp_ch9.adb (Build_Task_Activation_Call): Do nothing on
766 restricted profile.
767 * bindgen.adb (System_Tasking_Restricted_Stages_Used): New variable.
768 (Gen_Adainit): Declare and call Activate_Tasks when the above variable
769 is set.
770 (Resolve_Binder_Options): Set the variable.
771 * rtsfind.ads (RE_Activate_Restricted_Tasks): Removed (now unused).
772 * s-tarest.adb (Tasks_Activation_Chain): New variable.
773 (Activate_Restricted_Tasks): Removed, and replaced by ...
774 (Activate_Tasks): New procedure, to activate all tasks at
775 the end of elaboration.
776 (Create_Restricted_Tasks): Chain parameter is now unreferenced. Put
777 the created task on the Tasks_Activation_Chain list.
778 * s-tarest.ads (Activate_Restricted_Tasks): Removed.
779 (Activate_Tasks): Added.
780
7812012-10-29 Gary Dismukes <dismukes@adacore.com>
782
783 * sem_res.adb (Resolve_If_Expression): Compare subtype of the 'then'
784 expression against the subtype of the expression rather than comparing
785 base types, same as is already done for the 'else' expression.
786
ba5efa21 7872012-10-29 Steve Baird <baird@adacore.com>
788
789 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If CodePeer_Mode
790 = True and we detect that an Address specification is used to overlay
791 another object, do not set that object's Treat_As_Volatile flag.
792
7932012-10-29 Ed Schonberg <schonberg@adacore.com>
794
795 * sem_ch3.adb (Constant_Redeclaration): If the type of a
796 deferred constant has invariants, generate invariant call on
797 the initial value.
798
c92e878b 7992012-10-29 Bob Duff <duff@adacore.com>
800
801 * sem_ch13.adb (Replace_Type_Reference): Use correct sloc for
802 the new node.
803
5d12a5c7 8042012-10-29 Thomas Quinot <quinot@adacore.com>
805
806 * sem_elab.adb: Minor reformatting and code reorganization.
807
8082012-10-29 Robert Dewar <dewar@adacore.com>
809
810 * par-ch4.adb (P_Primary): Warn on bad use of unary minus.
811
8122012-10-29 Robert Dewar <dewar@adacore.com>
813
814 * s-valuti.ads, s-valuti.adb (Bad_Value): New procedure.
815 * s-valllu.adb, s-valwch.adb, s-valcha.adb, s-valint.adb,
816 s-valuns.adb, s-valrea.adb, s-valboo.adb, s-valenu.adb,
817 s-vallli.adb: Use Bad_Value everywhere.
818
8192012-10-29 Yannick Moy <moy@adacore.com>
820
821 * gnat1drv.adb (Adjust_Global_Switches): Do not suppress checks
822 in Alfa mode.
823
70a2dff4 8242012-10-29 Yannick Moy <moy@adacore.com>
825
826 * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
827 Add special case for case expression alternative.
828 (Is_Signed_Integer_Arithmetic_Op): Remove special case for case
829 expression alternative.
830 * exp_ch4.adb Minor reformatting.
831
8322012-10-29 Thomas Quinot <quinot@adacore.com>
833
834 * sem_elab.adb: Minor reformatting.
835
8362012-10-29 Bob Duff <duff@adacore.com>
837
838 * sem_res.adb: Minor: Remove redundant test.
839
060c8422 8402012-10-29 Arnaud Charlet <charlet@adacore.com>
841
ea36a184 842 * pprint.ads, pprint.adb, adabkend.ads, adabkend.adb,
843 aa_util.ads, aa_util.adb: New.
060c8422 844
51ad9863 8452012-10-23 Eric Botcazou <ebotcazou@adacore.com>
846
847 * system-linux-mipsel.ads (Stack_Check_Probes): Set to True.
848 * system-linux-mips.ads (Stack_Check_Probes): Likewise.
849 * system-linux-mips64el.ads (Stack_Check_Probes): Likewise.
850
d11be1f5 8512012-10-22 Eric Botcazou <ebotcazou@adacore.com>
852
853 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Force
854 BLKmode on the type if it is passed by reference.
855 <E_Array_Subtype>: Likewise.
856 <E_Record_Type>: Guard the call to Is_By_Reference_Type predicate.
857 <E_Record_Subtype>: Likewise.
858
04ca7a58 859 * gcc-interface/Makefile.in: Remove outdated comment and reference to
860 non-existing file.
3a74eaf9 861
789c209f 8622012-10-22 Eric Botcazou <ebotcazou@adacore.com>
863
864 * gcc-interface/utils.c (rest_of_record_type_compilation): Simplify and
865 robustify pattern machine code for masking operations.
866
eca7bb9b 8672012-10-22 Eric Botcazou <ebotcazou@adacore.com>
868
869 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: In
870 type annotation mode, break circularities introduced by AI05-0151.
871
c8d6b902 8722012-10-22 Eric Botcazou <ebotcazou@adacore.com>
873
874 * gcc-interface/trans.c (Loop_Statement_to_gnu): Use gnat_type_for_size
875 directly to obtain an unsigned version of the base type.
876
895ebc60 8772012-10-22 Eric Botcazou <ebotcazou@adacore.com>
878
879 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: Do not
880 generate the special PARM_DECL for an Out parameter in LTO mode.
881
13687c85 8822012-10-22 Eric Botcazou <ebotcazou@adacore.com>
883
884 PR bootstrap/54820
885 * gcc-interface/Make-lang.in (GCC_LINK): Remove hardcoded options.
886
f49eb158 8872012-10-15 Matthias Klose <doko@ubuntu.com>
888
889 * gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for
890 ARM Linux/GNU.
891
5ce38deb 8922012-10-05 Robert Dewar <dewar@adacore.com>
893
894 * sem_ch7.adb: Minor reformatting.
895
8962012-10-05 Ed Schonberg <schonberg@adacore.com>
897
898 * sem_prag.adb (Analyze_Pragma, case Persistent_BSS): check for
899 a duplicate pragma before Rep_Item_Too_Late to prevent spurious
900 messages about duplicate pragmas.
901
9022012-10-05 Ed Schonberg <schonberg@adacore.com>
903
904 * exp_util.adb (Find_Init_Call): If the successor of the
905 object declaration is a block, check whether it contains the
906 initialization call, because it may have been created by actuals
907 that use the secondary stack.
908
9ea61fdd 9092012-10-05 Thomas Quinot <quinot@adacore.com>
910
911 * sem_dim.adb, errout.adb, errout.ads (Analyze_Dimension_Call): Add
912 guard against abnormal tree resulting from a previously diagnosed
913 illegality.
914
9152012-10-05 Hristian Kirtchev <kirtchev@adacore.com>
916
917 * freeze.adb (Freeze_Expression): Rename local variable Cspc to Spec
918 and update all refs to it. Do not freeze an entity outside a subprogram
919 body when the original context is an expression function.
920
9212012-10-05 Robert Dewar <dewar@adacore.com>
922
923 * gnat1drv.adb (Adjust_Global_Switches): Default for overflow checking
924 is suppressed, even if backend overflow/divide checks are enabled.
925
9262012-10-05 Ed Schonberg <schonberg@adacore.com>
927
928 * einfo.adb (Set_Invariant_Procedure, Set_Predicate_Function):
929 chain properly subprograms on Subprograms_For_Type list.
930 * sem_ch13.ads; (Build_Invariant_Procedure_Declaration): new
931 procedure, to create declaration for invariant procedure
932 independently of the construction of the body, so that it can
933 be called within expression functions.
934 * sem_ch13.adb (Build_Invariant_Procedure): code cleanup. The
935 declaration may already have been generated at the point an
936 explicit invariant aspect is encountered.
937 * sem_prag.adb; (Analyze_Pragma, case Invariant): create declaration
938 for invariant procedure.
939 * sem_ch7.adb (Analyze_Package_Specification): clean up call to
940 build invariant procedure.
941 (Preserve_Full_Attributes): propagate information about invariants
942 if they appear on a completion,
943
9442012-10-05 Pascal Obry <obry@adacore.com>
945
946 * gnat_ugn.texi: Update documentation to lift Microsoft C
947 restriction.
948
5f4275e1 9492012-10-05 Robert Dewar <dewar@adacore.com>
950
951 * sem_util.adb (Has_One_Matching_Field): Handle case of lone
952 discriminant.
953
9542012-10-05 Yannick Moy <moy@adacore.com>
955
956 * checks.adb (Minimize_Eliminate_Overflow_Checks): Correct code
957 for the division operation and exponent operation. Adjust bound
958 for the mod and rem operations.
959
412f75eb 9602012-10-05 Robert Dewar <dewar@adacore.com>
961
962 * checks.adb, checks.ads, s-tassta.adb, s-stposu.adb, s-spsufi.adb,
963 s-spsufi.ads, exp_ch4.adb: Minor reformatting.
964
21a55437 9652012-10-05 Yannick Moy <moy@adacore.com>
966
967 * switch-c.adb, checks.adb, checks.ads, sem_prag.adb, exp_ch4.adb,
968 osint.adb: Minor correction of typos, and special case for Alfa mode.
969
9702012-10-05 Hristian Kirtchev <kirtchev@adacore.com>
971
972 * s-spsufi.adb: Add with clause for Ada.Unchecked_Deallocation.
973 Add with and use clauses for System.Finalization_Masters.
974 (Finalize_And_Deallocate): Add an instance of
975 Ada.Unchecked_Deallocation. Merge the code from the now obsolete
976 Finalize_Subpool into this routine.
977 * s-spsufi.ads: Add pragma Preelaborate.
978 * s-stposu.adb: Remove with clause for
979 Ada.Unchecked_Deallocation; Add with and use clauses for
980 System.Storage_Pools.Subpools.Finalization; (Finalize_Pool):
981 Update the comment on all actions takes with respect to a subpool
982 finalization. Finalize and deallocate each individual subpool.
983 (Finalize_Subpool): Removed.
984 (Free): Removed;
985 (Detach): Move from package body to spec.
986 * s-stposu.ads (Detach): Move from package body to spec.
987 (Finalize_Subpool): Removed.
988
9892012-10-05 Arnaud Charlet <charlet@adacore.com>
990
991 * s-tassta.adb: Update comments.
992 (Vulnerable_Complete_Master): If Free_On_Termination is set, do
993 nothing, and let the task free itself if not already done.
994
74275ad3 9952012-10-04 Robert Dewar <dewar@adacore.com>
996
997 * sem_res.adb (Resolve_Set_Membership): Warn on duplicates.
998
9992012-10-04 Emmanuel Briot <briot@adacore.com>
1000
1001 * g-comlin.adb (Getopt): Fix value of Full_Switch returned in case of
1002 invalid switch.
1003
10042012-10-04 Arnaud Charlet <charlet@adacore.com>
1005
1006 * gcc-interface/Make-lang.in: Update dependencies.
1007
24d00f1f 10082012-10-04 Robert Dewar <dewar@adacore.com>
1009
1010 * sem_eval.adb (Fold_Str, Fold_Uint, Fold_Ureal): Reset static
1011 expression state after Resolve call.
1012
10132012-10-04 Robert Dewar <dewar@adacore.com>
1014
1015 * sem_prag.adb (Analyze_Pragma. case Warnngs): Don't make entry
1016 in the table for Warnings Off pragmas if within an instance.
1017
10182012-10-04 Ed Schonberg <schonberg@adacore.com>
1019
1020 * sem_ch9.adb (Analyze_Entry_Body): Transfer
1021 Has_Pragma_Unreferenced flag from entry formal to corresponding
1022 entity in body, to prevent spurious warnings when pragma is
1023 present.
1024
10252012-10-04 Robert Dewar <dewar@adacore.com>
1026
1027 * s-bignum.adb (Big_Exp): Raise Storage_Error for ludicrously
1028 large results.
1029
10302012-10-04 Ed Schonberg <schonberg@adacore.com>
1031
1032 * sem_ch3.adb (Check_Duplicate_Aspects): Diagnose properly
1033 aspects that appear in the partial and the full view of a type.
1034
10352012-10-04 Robert Dewar <dewar@adacore.com>
1036
1037 * sinfo.ads (N_Return_Statement): Removed.
1038
10392012-10-04 Tristan Gingold <gingold@adacore.com>
1040
1041 * init.c (__gl_zero_cost_exceptions): Comment it as not used
1042 anymore.
1043 * bindgen.adb (Gen_Adainit): Do not emit Zero_Cost_Exceptions
1044 anymore.
1045
10462012-10-04 Thomas Quinot <quinot@adacore.com>
1047
1048 * prep.adb, prepcomp.adb, gprep.adb, opt.ads: New preprocessor switch
1049 -a (all source text preserved).
1050
0f4a8308 10512012-10-04 Vincent Celier <celier@adacore.com>
1052
1053 * prj-proc.adb (Recursive_Process): Use project directory
1054 display path name as the value of 'Project_Dir.
1055
10562012-10-04 Robert Dewar <dewar@adacore.com>
1057
1058 * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow):
1059 Deal with case where we get a bignum operand and cannot do a
1060 range analysis.
1061 * sem_eval.adb (Why_Not_Static): Deal with bignum operands
1062
10632012-10-04 Ed Schonberg <schonberg@adacore.com>
1064
1065 * sem_ch4.adb (Find_Unary_Types): Within an instance, an
1066 interpretation that involves a predefied arithmetic operator is
1067 not a candidate if the corresponding generic formal type is not
1068 a numeric type.
1069 * sem_util.ads, sem_util.adb (Corresonding_Generic_Type): If a
1070 type is a generic actual type within an instance, return the
1071 corresponding formal in the generic unit, otherwise return
1072 Any_Type.
1073
4fb5f0a0 10742012-10-04 Robert Dewar <dewar@adacore.com>
1075
1076 * checks.adb (Minimize_Eliminate_Overflow_Checks): Dont reanalyze
1077 if/case expression if nothing has changed (just reexpand). Stops
1078 case expression from generating incorrect temporary.
1079 * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow):
1080 Fix cut and paste typo for range analysis in NE (not equal) case.
1081 * sem_eval.adb (Compile_Time_Compare): Small optimization to
1082 catch some more cases.
1083 * types.ads (Suppressed_Or_Checked): New subtype of
1084 Overflow_Check_Type.
1085
95773554 10862012-10-04 Javier Miranda <miranda@adacore.com>
1087
1088 * exp_disp.adb (Set_CPP_Constructors_Old): Removed.
1089 (Set_CPP_Constructors): Code cleanup.
1090
10912012-10-04 Ed Schonberg <schonberg@adacore.com>
1092
1093 * sem_ch10.adb (Is_Ancestor_Unit): Make global, for use elsewhere.
1094 (Install_Private_with_Clauses): if clause is private and limited,
1095 do not install the limited view if the library unit is an ancestor
1096 of the unit being compiled. This unusual configuration occurs
1097 when compiling a unit DDP, when an ancestor P of DDP has a
1098 private limited with clause on a descendant of P that is itself
1099 an ancestor of DDP.
1100
57c2f209 11012012-10-04 Vincent Celier <celier@adacore.com>
1102
1103 * prj-proc.adb (Process_Package_Declaration): Use project
1104 directory display path name as the value of 'Project_Dir.
1105
11062012-10-04 Gary Dismukes <dismukes@adacore.com>
1107
1108 * exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be
1109 given by an arbitrary name, so copy the tree to make the call's actual.
1110
11112012-10-04 Robert Dewar <dewar@adacore.com>
1112
1113 * s-exnllf.adb, s-exnllf.ads: Minor reformatting.
1114
11152012-10-04 Thomas Quinot <quinot@adacore.com>
1116
1117 * exp_ch6.adb: Minor reformatting.
1118
11192012-10-04 Pascal Obry <obry@adacore.com>
1120
1121 * projects.texi: Use consistently @command{} when referencing
1122 commands. Fix typos.
1123
b6a8f264 11242012-10-03 Ed Schonberg <schonberg@adacore.com>
1125
1126 * sem_ch6.adb (New_Overloaded_Entity): call
1127 Append_Inherited_Subprogram when appropriate.
1128 * sem_dim.adb (Analyze_Dimension_Call): Do not perform dimensional
1129 analysis if call has previous semantic error.
1130 * sem_util.ads, sem_util.adb (Append_Inherited_Subprogram):
1131 new subprogram to handle properly the visibility of inherited
1132 operations that are primitives of a type extension, when the
1133 parent type and operations are declared in the same visible part.
1134
11352012-10-03 Robert Dewar <dewar@adacore.com>
1136
1137 * checks.adb (Minimize_Eliminate_Overflow_Checks): Properly
1138 handle case of top level expression within type conversion
1139 * gnat1drv.adb (Adjust_Global_Switches): Set SUPPRESSED as
1140 default for overflow checking for -gnatg mode (includes run-time).
1141 * sem_res.adb (Resolve_Type_Conversion): Avoid bogus warnings
1142 about redundant conversions from MINIMIZED/EXTENDED mode checking
1143
693dfc0f 11442012-10-03 Javier Miranda <miranda@adacore.com>
1145
1146 * exp_ch4.adb (Expand_N_Allocator_Expression): Minor code
1147 reorganization and cleanup. Done to ensure proper management of
1148 the C++ constructor covering tagged and untagged types and also
1149 non-default constructors.
1150 * exp_ch6.ads, exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator):
1151 New subprogram.
1152
b8a17a21 11532012-10-03 Gary Dismukes <dismukes@adacore.com>
1154
1155 * sem_ch6.adb: Minor typo fix.
1156
11572012-10-03 Robert Dewar <dewar@adacore.com>
1158
1159 * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
1160 Set Top_Level properly (to False) for operand of range of
1161 membership test.
1162 * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow):
1163 Fix crash with -gnato3 and membership operations.
1164 (Expand_Membership_Minimize_Eliminate_Overflow): Fix error message
1165 and wrong results for -gnato3 large expression and predicated
1166 subtype.
1167 (Expand_Membership_Minimize_Eliminate_Overflow): Use
1168 expression action node to avoid using insert actions (bombs in
1169 some cases).
1170 (Expand_Compare_Minimize_Eliminate_Overflow): Use expression action
1171 node to avoid using insert actions (bombs in some cases).
1172
11732012-10-03 Javier Miranda <miranda@adacore.com>
1174
1175 * exp_disp.adb (Set_CPP_Constructors_Old): Handle constructor of
1176 untagged type that has all its parameters with defaults and hence it
1177 covers the default constructor.
1178
691fe9e0 11792012-10-03 Yannick Moy <moy@adacore.com>
1180
1181 * checks.adb, sem_prag.adb, s-bignum.ads: Minor typo fixes.
1182
11832012-10-03 Thomas Quinot <quinot@adacore.com>
1184
1185 * g-socket.adb (Connect_Socket, version with timeout): When the
1186 newly-connected socket is reported as available for writing, check
1187 whether it has a pending asynchronous error prior to returning.
1188
11892012-10-03 Ed Schonberg <schonberg@adacore.com>
1190
1191 * sem_ch6.adb (Check_Conformance): Additional info when subtype
1192 conformance fails, due to a missing null exclusion indicatar in
1193 a formal that must match a controlling access formal.
1194
f32c377d 11952012-10-02 Ben Brosgol <brosgol@adacore.com>
1196
1197 * gnat_rm.texi: Minor editing.
1198
11992012-10-02 Ed Schonberg <schonberg@adacore.com>
1200
1201 * sem_ch6.adb (Analyze_Function_Return): Reject a return
1202 expression whose type is a local access to subprogram type.
1203
12042012-10-02 Robert Dewar <dewar@adacore.com>
1205
1206 * sem_eval.adb: Minor improvement to Compile_Time_Compare.
1207
12082012-10-02 Robert Dewar <dewar@adacore.com>
1209
1210 * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
1211 Fix base type problem that resulted in improper conversion.
1212 (Minimize_Eliminate_Overflow_Checks): Properly handle top
1213 level case to avoid unnecessary conversion to bignum or LLI.
1214 (Minimize_Eliminate_Overflow_Checks): Implement uniform two phase
1215 approach for arithmetic operators and for if/case expressions.
1216 * checks.ads: Minor comment fix.
1217 * exp_ch4.adb (Minimized_Eliminated_Overflow_Check): New function,
1218 implements a uniform way of treating minimized/eliminated checks in
1219 two phases.
1220 (Expand_Compare_Minimize_Eliminate_Overflow): Fix cut and
1221 paste error resulting in wrong results for less than in some
1222 cases. (Expand_Membership_Minimize_Eliminate_Overflow):
1223 Fix error caused by incorrect capture of operand types.
1224 (Expand_Membership_Minimize_Eliminate_Overflow): Fix error in
1225 handling of bignum case.
1226 (Expand_N_Case_Expression): Implement
1227 proper two phase handling (Expand_N_If_Expression): Implement
1228 proper two phase handling (Expand_N_Op_Abs): Implement proper
1229 two phase handling ditto for all other arithmetic operators
1230 * sem_res.adb (Resolve_If_Expression): Avoid introducing
1231 unneeded conversions.
1232
30f24d11 12332012-10-02 Robert Dewar <dewar@adacore.com>
1234
1235 * s-bignum.adb (Big_Exp): 0**0 should be 1, not 0.
1236 (Big_Exp): Fix possible error for (-1)**0.
1237 (Big_Exp): Fix error in computing 2**K for small K.
1238 (Big_Mod): Fix wrong sign for negative operands.
1239 (Div_Rem): Fix bad results for operands close to 2**63.
1240 * s-bignum.ads: Add documentation and an assertion to require
1241 LLI size to be 64 bits.
1242 * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Do not
1243 allow ELIMINATED if LLI'Size is other than 64 bits.
1244 * switch-c.adb (Scan_Switches): Do not allow -gnato3 if LLI'Size
1245 is not 64 bits.
1246 * switch.ads (Bad_Switch): Add missing pragma No_Return.
1247 * gnat_ugn.texi: Added appendix on Overflow Check Handling in GNAT.
1248
12492012-10-02 Robert Dewar <dewar@adacore.com>
1250
1251 * sem_type.adb: Minor reformatting.
1252
c1b63034 12532012-10-02 Robert Dewar <dewar@adacore.com>
1254
1255 * sem_ch8.adb: Minor reformatting.
1256
12572012-10-02 Javier Miranda <miranda@adacore.com>
1258
1259 * exp_disp.adb (Set_CPP_Constructors): Handle constructor with default
1260 parameters that covers the default constructor.
1261
12622012-10-02 Yannick Moy <moy@adacore.com>
1263
1264 * s-bignum.adb: Minor stylistic and comment corrections.
1265
12662012-10-02 Pascal Obry <obry@adacore.com>
1267
1268 * prj-util.adb (For_Interface_Sources): Iterate over all sources in
1269 aggregate library projects.
1270
a9cd46a6 12712012-10-02 Ed Schonberg <schonberg@adacore.com>
1272
1273 * sem_ch8.adb (Find_Direct_Name): The left-hand side of an
1274 assignment may designate a generalized reference.
1275
af9fed8f 12762012-10-02 Eric Botcazou <ebotcazou@adacore.com>
1277
1278 * types.h (N_Return_Statement): Delete.
1279 * gcc-interface/trans.c (gnat_to_gnu): Replace N_Return_Statement with
1280 N_Simple_Return_Statement.
1281
12822012-10-02 Ed Schonberg <schonberg@adacore.com>
1283
1284 * freeze.adb (Freeze_Entity): in a generic context, aspects must
1285 be analyzed because they may be queried subsequently within the
1286 generic unit, even if no other freezing actions are generated
1287 for an entity.
1288 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): iterator
1289 aspects must be analyzed because they are delayed aspects and
1290 the corresponding attribute definition clause may not have been
1291 analyzed yet.
1292
12932012-10-02 Yannick Moy <moy@adacore.com>
1294
1295 * gnat_rm.texi: Minor editing.
1296
ae70cd27 12972012-10-02 Robert Dewar <dewar@adacore.com>
1298
1299 * sinfo.adb, sinfo.ads, sem_util.adb, sem_util.ads, types.h,
1300 exp_ch4.adb, exp_ch6.adb: Get rid of internal use of N_Return_Statement.
1301
02eab984 13022012-10-02 Eric Botcazou <ebotcazou@adacore.com>
1303
1304 * types.h: Minor cosmetic fix.
1305
549fe569 13062012-10-02 Eric Botcazou <ebotcazou@adacore.com>
1307
1308 * gcc-interfaces/decl.c (elaborate_expression_1): Use the variable for
1309 bounds of loop iteraration scheme only for locally defined subtypes.
1310
1311 * gcc-interface/trans.c (gigi): Fix formatting.
1312 (build_return_expr): Apply the NRV optimization only for BLKmode.
1313
02eab984 13142012-10-02 Robert Dewar <dewar@adacore.com>
1315
1316 * sinfo.ads: Remove refs of N_Conditional_Expression and
1317 N_Parameterized_Expression.
1318
13192012-10-02 Thomas Quinot <quinot@adacore.com>
1320
1321 * exp_aggr.adb (Get_Component_Val): Rewrite code that computes
1322 justification of bits in enclosing word in an attempt to make
1323 it clearer.
1324
92f1631f 13252012-10-02 Robert Dewar <dewar@adacore.com>
1326
1327 * par_sco.adb, sem_ch3.adb, layout.adb, exp_ch7.adb, exp_imgv.adb,
1328 exp_util.adb, exp_util.ads, exp_attr.adb, sinfo.adb, sinfo.ads,
1329 exp_ch9.adb, style.ads, scos.ads, debug.adb, einfo.ads, scng.adb,
1330 checks.adb, checks.ads, sem.adb, par-ch4.adb, sem_util.adb, types.h,
1331 sem_res.adb, expander.adb, scans.ads, par.adb, exp_ch2.adb,
1332 gnat1drv.adb, stylesw.ads, sem_elab.adb, exp_ch4.adb, exp_ch4.ads,
1333 exp_ch6.adb, sem_ch4.adb, sem_ch4.ads, sem_ch6.adb,
1334 opt.ads, sem_eval.adb, sem_eval.ads, exp_intr.adb, sprint.adb,
1335 sprint.ads, styleg.ads: Change name Conditional_Expression to
1336 If_Expression.
1337 * gcc-interface/trans.c (gnat_to_gnu): Replace
1338 N_Conditional_Expression by N_If_Expression.
1339 * gcc-interface/Make-lang.in: Update dependencies.
1340
595e47de 13412012-10-02 Robert Dewar <dewar@adacore.com>
1342
1343 * exp_ch4.adb (Expand_N_Op_Expon): Use expression with actions
1344 for x ** 4.
1345
13462012-10-02 Ed Schonberg <schonberg@adacore.com>
1347
1348 * sem_ch5.adb: (Analyze_Iterator_Specification): If container
1349 has a variable indexing aspect, the element is a variable and
1350 is modifiable in the loop. This check is also performed when the
1351 loop is expanded, but it must be done in semantic analysis when
1352 expansion is disabled, for example for ASIS usage.
1353
13542012-10-02 Ed Schonberg <schonberg@adacore.com>
1355
1356 * lib-xref.adb (Generate_Reference): If a child subprogram
1357 has no previous spec, treat a reference to its formals (such
1358 as a parameter association) as coming from source in order to
1359 generate the proper references and enable gps navigation between
1360 reference and declaration.
1361
0326b4d4 13622012-10-02 Robert Dewar <dewar@adacore.com>
1363
1364 * checks.adb (Apply_Arithmetic_Overflow_Checked_Suppressed):
1365 New name for Apply_Arithmetic_Overflow_Normal
1366 (Apply_Arithmetic_Overflow_Minimized_Eliminated):
1367 Add handling for conditional expressions
1368 (Is_Signed_Integer_Arithmetic_Op): Now includes conditional
1369 expressions (Minimize_Eliminate_Overflow_Checks): Handle
1370 conditional expressions.
1371 * checks.ads: Minor comment fixes.
1372 * exp_ch4.adb (Expand_N_Case_Expression): Call
1373 Apply_Arithmetic_Overflow_Check (Expand_N_Conditional_Expression):
1374 Call Apply_Arithmetic_Overflow_Check
1375 * s-bignum.adb (Normalize): Remove incorrect precondition.
1376 * sem_res.adb (Resolve_Case_Expression): Set Do_Overflow_Check
1377 flag (Resolve_Conditional_Expression): Set Do_Overflow_Check flag.
1378 * sinfo.adb: Add Do_Overflow_Check for conditional expressions.
1379 * sinfo.ads: Minor documentation updates.
1380
276da501 13812012-10-02 Ed Schonberg <schonberg@adacore.com>
1382
1383 * exp_ch4.adb (Expand_N_Case_Expression): Do not introduce
1384 indirections when the type of the alternatives is an access type:
1385 more efficient, and removes anomalies when an alternative is
1386 statically null.
1387
13882012-10-02 Robert Dewar <dewar@adacore.com>
1389
1390 * aspects.ads: Minor comment addition (Invariant is a GNAT aspect).
1391
a45d946f 13922012-10-02 Robert Dewar <dewar@adacore.com>
1393
1394 * exp_ch7.adb, sem_dim.adb, sem_dim.ads, prj-part.adb, checks.adb,
1395 freeze.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting.
1396
13972012-10-02 Robert Dewar <dewar@adacore.com>
1398
1399 * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Fix
1400 typo preventing proper processing of Overflow_Checks pragmas
1401 for general case.
1402
14032012-10-02 Robert Dewar <dewar@adacore.com>
1404
1405 * exp_ch4.adb (Expand_N_Op_Mod): Fix crash in ELIMINATED overflow
1406 checks mode when bignum mode is used.
1407
14082012-10-02 Robert Dewar <dewar@adacore.com>
1409
1410 * stylesw.ads, gnat_ugn.texi: Document new style rule for NOT IN.
1411 * par-ch4.adb (P_Relational_Operator): Add style check for NOT IN.
1412 * style.ads, styleg.adb, styleg.ads (Check_Not_In): New procedure.
1413
fb0ac559 14142012-10-02 Vincent Pucci <pucci@adacore.com>
1415
1416 * sem_attr.adb (Analyze_Attribute): Check dimension for attribute
1417 Old before it gets expanded.
1418 * sem_dim.adb (Analyze_Dimension_Has_Etype): Correctly propagate
1419 dimensions for identifier.
1420
14212012-10-02 Ed Schonberg <schonberg@adacore.com>
1422
1423 * exp_ch5.adb (Expand_Iterator_Loop): Handle properly the case
1424 where the iterator type is derived locally from an instantiation
1425 of Ada.Iterators_Interface.
1426 * exp_ch7.adb (Establish_Transient_Scope): Do not create a
1427 transient scope if within the expansion of an iterator loop,
1428 because a transient block already exists.
1429
14302012-10-02 Vincent Celier <celier@adacore.com>
1431
1432 * gnatcmd.adb: Use absolute path for configuration pragmas files
1433 * make.adb (Configuration_Pragmas_Switch.Absolute_Path): Moved
1434 to Makeutl.
1435 * makeutl.ads, makeutl.adb (Absolute_Path): New function, moved from
1436 make.adb.
1437
14382012-10-02 Vincent Celier <celier@adacore.com>
1439
1440 * prj-part.adb (Post_Parse_Context_Clause): Resurrect Boolean
1441 parameter In_Limited. Check for circularity also if In_Limited
1442 is True.
1443 (Parse_Single_Project): Call Post_Parse_Context_Clause with
1444 In_Limited parameter.
1445
cac18f71 14462012-10-02 Bob Duff <duff@adacore.com>
1447
1448 * checks.adb (Apply_Predicate_Check): Disable check in -gnatc mode.
1449
14502012-10-02 Vincent Pucci <pucci@adacore.com>
1451
1452 * sem_ch6.adb (Analyze_Function_Call): Dimension propagation
1453 for function calls moved to Analyze_Dimension_Call.
1454 * sem_dim.adb (Analyze_Dimension_Call): Properly propagate the
1455 dimensions from the returned type for function calls.
1456
14572012-10-02 Vincent Celier <celier@adacore.com>
1458
1459 * gnatcmd.adb: Take into account any configuration pragma file
1460 in the project files for gnat pretty/stub/metric.
1461
14622012-10-02 Ed Schonberg <schonberg@adacore.com>
1463
1464 * sem_ch13.adb (Check_Indexing_Functions): Refine several tests
1465 on the legality of indexing aspects: Constant_Indexing functions
1466 do not have to return a reference type, and given an indexing
1467 aspect Func, not all overloadings of Func in the current scope
1468 need to be indexing functions.
1469
14702012-10-02 Vasiliy Fofanov <fofanov@adacore.com>
1471
1472 * gnat_ugn.texi: Adjust docs for overflow checks to be VMS-friendly.
1473
14742012-10-02 Vincent Celier <celier@adacore.com>
1475
1476 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
1477 -gnatox and -gnatoxx when x=0/1/2/3.
1478
3b045963 14792012-10-02 Vincent Pucci <pucci@adacore.com>
1480
1481 * sem_ch4.adb (Analyze_Indexed_Component_Form): Dimension
1482 analysis for indexed components added.
1483 * sem_ch6.adb (Analyze_Function_Call): Dimension propagation
1484 for function calls added.
1485 * sem_dim.adb (Analyze_Dimension): Call to
1486 Analyze_Dimension_Has_Etype when N is a function call.
1487 (Analyze_Dimension_Call): Don't propagate anymore the dimensions
1488 for function calls since this is now treated separately in
1489 Analyze_Dimension_Has_Etype.
1490 (Analyze_Dimension_Has_Etype): For
1491 attribute references, propagate the dimensions from the prefix.
1492 * sem_dim.ads (Copy_Dimensions): Fix comment.
1493
14942012-10-02 Hristian Kirtchev <kirtchev@adacore.com>
1495
1496 * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine.
1497 (Apply_Parameter_Aliasing_And_Validity_Checks): This routine
1498 has been split into two.
1499 (Apply_Parameter_Validity_Checks): New routine.
1500 * exp_ch6.adb (Expand_Call): Add checks to verify that actuals
1501 do not overlap. The checks are made on the caller side to overcome
1502 issues of parameter passing mechanisms.
1503 * freeze.adb (Freeze_Entity): Update call to
1504 Apply_Parameter_Aliasing_And_Validity_Checks.
1505
c9e56837 15062012-10-02 Ed Schonberg <schonberg@adacore.com>
1507
1508 * sem_ch4.adb (Is_Empty_Range): Use bounds of index type
1509 to determine whether an array is empty when optimizing
1510 a quantified expression over a null range. Use of RM_Size
1511 was incorrect. Analyze condition before constant-folding the
1512 expression to catch potential errors. Modify the error message
1513 to avoid mathematical terminology.
1514
df7590c5 15152012-10-02 Robert Dewar <dewar@adacore.com>
1516
1517 * usage.adb, gnat_rm.texi, vms_data.ads: Add entry for
1518 /OVERFLOW_CHECKS=?? generating -gnato?? for control
1519 of extended overflow checking.
1520 * ug_words: Add entry for -gnato?? for /OVERFLOW_CHECKS=??
1521 * gnat_ugn.texi: Add documentation for -gnato?? for control of overflow
1522 checking mode.
1523
15242012-10-02 Ed Schonberg <schonberg@adacore.com>
1525
1526 * sem_ch4.adb (Analyze_Quantified_Expression): If the iterator in
1527 a quantified expression is statically known to be null (e.g. a
1528 array with an empty index type) emit a warning.
1529
61016a7a 15302012-10-02 Robert Dewar <dewar@adacore.com>
1531
1532 * sem_dim.adb: Minor code reorganization.
1533 * sem_dim.ads: Add comment.
1534
15352012-10-02 Robert Dewar <dewar@adacore.com>
1536
1537 * checks.ads, exp_ch4.adb, checks.adb
1538 (Minimize_Eliminate_Overflow_Checks): Add Top_Level parameter to avoid
1539 unnecessary conversions to Bignum.
1540 Minor reformatting.
1541
15422012-10-02 Ed Schonberg <schonberg@adacore.com>
1543
1544 * sem_ch6.adb (Process_PPCs): Generate invariant checks for a
1545 return value whose type is an access type and whose designated
1546 type has invariants. Ditto for in-out parameters and in-parameters
1547 of an access type.
1548 * exp_ch3.adb (Build_Component_Invariant_Call): Add invariant check
1549 for an access component whose designated type has invariants.
1550
cf4089a8 15512012-10-01 Vincent Pucci <pucci@adacore.com>
1552
1553 * sem_aggr.adb (New_Copy_Tree_And_Copy_Dimensions): New routine.
1554 (Resolve_Record_Aggregate): New_Copy_Tree calls replaced by
1555 New_Copy_Tree_And_Copy_Dimensions calls. Move_Dimensions call
1556 replaced by Copy_Dimensions call.
1557 * sem_dim.adb (Analyze_Dimension_Component_Declaration): Don't
1558 remove the dimensions of expression in component declaration anymore.
1559 (Copy_Dimensions): New routine.
1560 (Move_Dimensions): Add call to Copy_Dimensions.
1561 * sem_dim.ads (Copy_Dimensions): New routine.
1562 (Move_Dimensions): Spec moved to body of Sem_Dim.
1563
e6281d47 15642012-10-01 Ed Schonberg <schonberg@adacore.com>
1565
1566 * checks.adb (Apply_Predicate_Check): If the predicate is a
1567 static one and the operand is static, evaluate the predicate at
1568 compile time.
1569 * sem_eval.ads, sem_eval.adb (Eval_Static_Predicate_Check): new
1570 procedure, to evaluate a static predicate check whenever possible.
1571 * sem_res.adb (Resolve_Type_Conversion): Apply predicate check
1572 on the conversion if the target type has predicates.
1573
15742012-10-01 Vincent Pucci <pucci@adacore.com>
1575
1576 * sem_dim.adb (Has_Symbols): Complain if parameter Symbol has been
1577 provided by the user in the dimension output call.
1578
2fe22c69 15792012-10-01 Robert Dewar <dewar@adacore.com>
1580
1581 * checks.adb (Apply_Divide_Checks): New name for
1582 Apply_Divide_Check (Minimize_Eliminate_Overflow_Checks):
1583 Add code to handle division (and rem and mod) properly.
1584 (Apply_Division_Check): New procedure (Apply_Divide_Checks):
1585 Use Apply_Division_Check (Apply_Divide_Checks): Use
1586 Apply_Arithmetic_Overflow_Minimized_Eliminated.
1587 * checks.ads (Apply_Divide_Checks): New name for
1588 Apply_Divide_Check, also add clearer documentation for this
1589 routine and put in alfa order.
1590 * exp_ch4.adb (Apply_Divide_Checks): New name for
1591 Apply_Divide_Check.
1592 * s-bignum.adb (To_Bignum): Handle largest negative integer
1593 properly.
1594 * sem.adb (Analyze): Handle overflow suppression correctly
1595 (Analyze_List): Handle overflow suppression correctly
1596 * sem_res.adb (Analyze_And_Resolve): Handle overflow suppression
1597 correctly.
1598
15992012-10-01 Vasiliy Fofanov <fofanov@adacore.com>
1600
1601 * s-oscons-tmplt.c, g-socket.ads: Revert previous change, breaks VMS.
1602
de922300 16032012-10-01 Robert Dewar <dewar@adacore.com>
1604
1605 * checks.adb (Minimize_Eliminate_Overflow_Checks): Changes
1606 for exponentiation.
1607 * exp_ch4.adb (Expand_N_Op_Expon): Changes for Minimize/Eliminate
1608 overflow checks.
1609 * s-bignum.adb (Compare): Fix bad precondition.
1610
16112012-10-01 Ed Schonberg <schonberg@adacore.com>
1612
1613 * sem_ch3.adb (Build_Derived_Record_Type): If the derived
1614 type has new discriminantss that constrain inherited ones, use
1615 the discriminant type in the original declaration to check for
1616 conformance, because in the presence of array components with a
1617 smaller range that are constrained by the origina discriminant,
1618 the compiler will have created a narrower subtype for that
1619 discriminant.
1620
aa4b16cb 16212012-10-01 Robert Dewar <dewar@adacore.com>
1622
1623 * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
1624 Handle case of appearing in range in membership test.
1625 * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow):
1626 New procedure (Expand_N_In): Use
1627 Expand_Membership_Minimize_Eliminate_Overflow.
1628 * rtsfind.ads: Add RE_Bignum_In_LLI_Range.
1629 * s-bignum.ads, s-bignum.adb (Bignum_In_LLI_Range): New function.
1630 * sinfo.ads, sinfo.adb (No_Minimize_Eliminate): New flag.
1631
16322012-10-01 Robert Dewar <dewar@adacore.com>
1633
1634 * uintp.ads: Minor reformatting.
1635
96a2d100 16362012-10-01 Ed Schonberg <schonberg@adacore.com>
1637
1638 * checks.adb: Improve warning message.
1639
d94b5da2 16402012-10-01 Robert Dewar <dewar@adacore.com>
1641
1642 * checks.adb: Minor reformatting.
1643
16442012-10-01 Javier Miranda <miranda@adacore.com>
1645
1646 * exp_ch3.adb (Expand_N_Object_Declaration): Suppress tag
1647 assignment for initializations that are aggregates.
1648
16492012-10-01 Robert Dewar <dewar@adacore.com>
1650
1651 * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow):
1652 New procedure.
1653
49b3a812 16542012-10-01 Robert Dewar <dewar@adacore.com>
1655
1656 * checks.adb (Minimize_Eliminate_Checks): Changes from testing.
1657 (Apply_Arithmetic_Overflow_Minimized_Eliminated): Changes
1658 from testing.
1659 * sinfo.ads: Remove note on not setting Entity field in overflow
1660 case since this is no longer true.
1661 * Makefile.rtl: Add s-bignum.o
1662
16632012-10-01 Thomas Quinot <quinot@adacore.com>
1664
1665 * Make-generated.in: Correction to previous change for s-oscons
1666 target.
1667
16682012-10-01 Thomas Quinot <quinot@adacore.com>
1669
1670 * s-bignum.adb (Allocate_Bignum): Reorganize to kill strict
1671 aliasing warning.
1672
3cce7f32 16732012-10-01 Robert Dewar <dewar@adacore.com>
1674
1675 * checks.adb (Overflow_Check_Mode): New function
1676 (Apply_Overflow_Check): New procedure (Is_Check_Suppressed):
1677 Moved here from Sem, Overflow_Check case now specially treated.
1678 * checks.ads (Overflow_Check_Mode): New function
1679 (Is_Check_Suppressed): Moved here from Sem (more logical)
1680 * exp_ch4.adb (Substitute_Valid_Check): Suppress warning about
1681 optimization if we are in MINIMIZED or ELIMINATED overflow
1682 checking mode and within an assertiom expression.
1683 * rtsfind.ads: Add entries for Bignum stuff.
1684 * s-bignum.ads, s-bignum.adb: New files.
1685 * sem.ads, sem.adb (Is_Check_Suppressed): Moved to Checks, more logical.
1686 * sem_prag.adb (Process_Suppress_Unsuppress): New behavior for
1687 Unsuppress of Overflow_Check (sets Checked instead of Minimized)
1688 * sem_res.adb: Update comments.
1689 * sinfo.ads (N_Op): Add documentation on overflow handling.
1690 * tbuild.ads, tbuild.adb (Convert_To_And_Rewrite): New procedure.
1691 * types.ads (Minimized_Or_Eliminated): New subtype.
1692
16932012-10-01 Eric Botcazou <ebotcazou@adacore.com>
1694
1695 * layout.adb (Layout_Type): Do not set twice the address size
1696 on an access-to-unconstrained array if Debug_Flag_6 is set.
1697
15e5d5ca 16982012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
1699
1700 * sem_ch3.adb (Analyze_Declarations): Remove the specialized
1701 code which prevents freezing when the declarative list contains
1702 a _postconditions body. This is no longer needed because the
1703 body is now inserted at the end of the declarations.
1704 * sem_ch6.adb (Insert_After_Last_Declaration): New routine.
1705 (Insert_Before_First_Source_Declaration): Removed.
1706 (Process_PPCs): Insert the _postconditions body at the end of
1707 the declarative list to prevent premature freezing of types that
1708 appear in the declarations.
1709
17102012-10-01 Robert Dewar <dewar@adacore.com>
1711
1712 * sem_aggr.adb, sem_dim.adb: Minor reformatting.
1713
22631b41 17142012-10-01 Ed Schonberg <schonberg@adacore.com>
1715
1716 * sem_prag.adb (Process_Convention, Process_Import_Or_Interface):
1717 Adjust test so that when the pragma comes from an aspect
1718 specification it only applies to the entity in the original
1719 declaration.
1720
17212012-10-01 Thomas Quinot <quinot@adacore.com>
1722
1723 * gnat_ugn.texi: Document new command line switch -fada-spec-parent.
1724
17252012-10-01 Thomas Quinot <quinot@adacore.com>
1726
1727 * s-oscons-tmplt.c, g-socket.ads: Minor code improvement: use gcc
1728 builtin __alignof__ to get the alignment of struct fd_set.
1729
17302012-10-01 Vincent Pucci <pucci@adacore.com>
1731
1732 * exp_ch6.adb (Expand_Call): Remove call to
1733 Remove_Dimension_In_Call.
1734 * sem_aggr.adb (Resolve_Array_Aggregate): Analyze dimension of
1735 components in array aggregate.
1736 (Resolve_Aggr_Expr): Propagate dimensions from the original expression
1737 Expr to the new created expression New_Expr when resolving the
1738 expression of a component in record aggregates.
1739 (Resolve_Record_Aggregate): Analyze
1740 dimension of components in record (or extension) aggregate.
1741 * sem_ch6.adb (Analyze_Subprogram_Specification): Analyze
1742 dimension of formals with default expressions in subprogram
1743 specification.
1744 * sem_ch8.adb (Analyze_Expanded_Name): Analyze dimension of
1745 expanded names.
1746 (Find_Selected_Component): Analyze dimension of selected component.
1747 * sem_dim.adb: Several dimension error messages reformatting.
1748 (Dimensions_Msg_Of): New flag Description_Needed in order to
1749 differentiate two different sort of dimension error messages.
1750 (Dim_Warning_For_Numeric_Literal): New routine.
1751 (Exists): New routine.
1752 (Move_Dimensions): Routine spec moved to spec file.
1753 * sem_dim.ads (String_From_Numeric_Literal): New routine.
1754 (Analyze_Dimension): Analyze dimension only when the
1755 node comes from source. Dimension analysis for expanded names added.
1756 (Analyze_Dimension_Array_Aggregate): New routine.
1757 (Analyze_Dimension_Call): New routine.
1758 (Analyze_Dimension_Component_Declaration): Warning if default
1759 expression is a numeric literal.
1760 (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine.
1761 (Analyze_Dimension_Formals): New routine.
1762 (Analyze_Dimension_Object_Declaration): Warning if default
1763 expression is a numeric literal.
1764 (Symbol_Of): Return either the dimension subtype symbol or the
1765 dimension symbol built by From_Dim_To_Str_Of_Unit_Symbols.
1766 * sem_dim.ads (Analyze_Dimension_Array_Aggregate): New routine.
1767 (Analyze_Dimension_Call): New routine.
1768 (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine.
1769 (Analyze_Dimension_Formals): New routine.
1770 (Move_Dimensions): Moved from sem_dim.adb.
1771 * s-dimmks.ads: Turn off the warnings for dimensioned object
1772 declaration. Dimensioned subtypes sorted in alphabetical
1773 order. New subtypes Area, Speed, Volume.
1774 * s-dmotpr.ads: Turn off the warnings for dimensioned object
1775 declaration.
1776 * sem_res.adb (Resolve_Call): Analyze dimension for calls.
1777
17782012-10-01 Thomas Quinot <quinot@adacore.com>
1779
1780 * Make-generated.in: Minor cleanup of all targets: use
1781 MOVE_IF_CHANGE to put generated files in place, to avoid useless
1782 recompilations.
1783
17842012-10-01 Javier Miranda <miranda@adacore.com>
1785
1786 * exp_disp.adb (Expand_Dispatching_Call): For functions returning
1787 interface types add an implicit conversion to the returned object
1788 to force the displacement of the pointer to the returned object
1789 to reference the corresponding secondary dispatch table. This
1790 is needed to handle well combined calls involving secondary
1791 dispatch tables (for example Obj.Prim1.Prim2).
1792 * exp_ch4.adb (Expand_Allocator_Expression): Declare internal
1793 access type as access to constant or access to variable depending
1794 on the context. Found working in this ticket.
1795
17962012-10-01 Ed Schonberg <schonberg@adacore.com>
1797
1798 * checks.adb (Apply_Predicate_Check): Do not apply check to
1799 actual of predicate checking procedure, to prevent infinite
1800 recursion.
1801
71e95bca 18022012-10-01 Arnaud Charlet <charlet@adacore.com>
1803
1804 * gcc-interface/Make-lang.in: Update dependencies.
1805 (GCC_LINK): Add -static-libstdc++.
1806
b6341c67 18072012-10-01 Arnaud Charlet <charlet@adacore.com>
1808
1809 * a-catizo.adb, a-stwiun.adb, a-cdlili.adb, a-cihama.adb, a-direct.adb,
1810 a-coinve.adb, a-calend.adb, a-ciorse.adb, a-coorma.adb, a-cfdlli.adb,
1811 a-stzunb-shared.adb, a-cfhase.adb, bindgen.adb, ceinfo.adb, a-tags.adb,
1812 einfo.adb, checks.adb, eval_fat.adb, a-cborma.adb, a-stwifi.adb,
1813 a-tifiio.adb, a-textio.adb, a-cidlli.adb, a-strunb-shared.adb,
1814 a-cimutr.adb, a-calcon.adb, a-exexpr-gcc.adb, a-ciormu.adb,
1815 a-stzunb.adb, a-stzsea.adb, a-ngelfu.adb, a-stzfix.adb,
1816 a-cihase.adb, a-cohama.adb, a-exetim-posix.adb, a-dirval-vms.adb,
1817 a-caldel-vms.adb, a-coorse.adb, errout.adb,
1818 a-except.adb, butil.adb, a-dirval-mingw.adb, a-cforma.adb,
1819 a-except-2005.adb, a-wtedit.adb, cstand.adb, a-stwiun-shared.adb,
1820 a-cbhama.adb, a-direio.adb, clean.adb, a-cborse.adb, back_end.adb,
1821 binde.adb, a-exexda.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb,
1822 a-coormu.adb, a-teioed.adb, a-convec.adb, a-wtenau.adb, exp_aggr.adb,
1823 a-ztedit.adb, a-cohase.adb, a-exetim-mingw.adb, bcheck.adb,
1824 a-dynpri.adb, a-cfhama.adb, a-calfor.adb, a-cbdlli.adb,
1825 a-crdlli.adb, a-cbmutr.adb, a-sequio.adb, a-ngcoar.adb, a-cforse.adb,
1826 a-strunb.adb, a-calend-vms.adb, a-clrefi.adb, a-cofove.adb,
1827 a-ztenau.adb, a-strfix.adb, a-cbhase.adb, a-stzsup.adb: Minor
1828 reformatting.
1829
91e47010 18302012-10-01 Vincent Pucci <pucci@adacore.com>
1831
1832 * s-gearop.adb (Vector_Matrix_Product): Dimensions check fixed. Index
1833 of Left in S evaluation fixed.
1834
18352012-10-01 Javier Miranda <miranda@adacore.com>
1836
1837 * sem_ch3.adb (Analyze_Declarations): Avoid
1838 premature freezing caused by the internally generated subprogram
1839 _postconditions.
1840 * checks.adb (Expr_Known_Valid): Float literals are assumed to be valid
1841 in VM targets.
1842
18432012-10-01 Thomas Quinot <quinot@adacore.com>
1844
1845 * sinput.ads, sinput.adb, sinput-l.adb sinput-c.adb (Sinput): New
1846 Instances table, tracking all generic instantiations. Source file
1847 attribute Instance replaces previous Instantiation attribute with an
1848 index into the Instances table.
1849 (Iterate_On_Instances): New generic procedure.
1850 (Create_Instantiation_Source): Record instantiations in Instances.
1851 (Tree_Read, Tree_Write): Read/write the instance table.
1852 * scils.ads, scos.adb (SCO_Instance_Table): New table, contains
1853 information copied from Sinput.Instance_Table, but self-contained
1854 within the SCO data structures.
1855 * par_sco.ads, par_sco.adb (To_Source_Location): Move to library level.
1856 (Record_Instance): New subprogram, used by...
1857 (Populate_SCO_Instance_Table): New subprogram to fill
1858 the SCO instance table from the Sinput one (called by SCO_Output).
1859 * opt.ads (Generate_SCO_Instance_Table): New option.
1860 * put_scos.adb (Write_Instance_Table): New subprogram, used by...
1861 (Put_SCOs): Dump the instance table at the end of SCO information
1862 if requested.
1863 * get_scos.adb (Get_SCOs): Read SCO_Instance_Table.
1864 * types.h: Add declaration for Instance_Id.
1865 * back_end.adb (Call_Back_End): Pass instance ids in source file
1866 information table.
1867 (Scan_Back_End_Switches): -fdebug-instances sets
1868 Opt.Generate_SCO_Instance_Table.
1869 * gcc-interface/gigi.h: File_Info_Type includes instance id.
1870 * gcc-interface/trans.c: Under -fdebug-instances, set instance
1871 id in line map from same in file info.
1872
18732012-10-01 Thomas Quinot <quinot@adacore.com>
1874
1875 * sem_elab.adb: Minor reformatting
1876 (Check_Elab_Call): Minor fix to debugging code
1877 (add special circuit for the valid case where a 'Access attribute
1878 reference is passed to Check_Elab_Call).
1879
18802012-10-01 Thomas Quinot <quinot@adacore.com>
1881
1882 * exp_ch3.adb: Minor reformatting.
1883
1bd93de5 18842012-10-01 Ed Schonberg <schonberg@adacore.com>
1885
1886 * exp_ch3.ads (Build_Array_Invariant_Proc): moved to body.
1887 * exp_ch3.adb (Build_Array_Invariant_Proc,
1888 Build_Record_Invariant_Proc): transform into functions.
1889 (Insert_Component_Invariant_Checks): for composite types that have
1890 components with specified invariants, build a checking procedure,
1891 and make into the invariant procedure of the composite type,
1892 or incorporate it into the user- defined invariant procedure if
1893 one has been created.
1894 * sem_ch3.adb (Array_Type_Declaration): Checking for invariants
1895 on the component type is defered to the expander.
1896
18972012-10-01 Thomas Quinot <quinot@adacore.com>
1898
1899 * xsnamest.adb, namet.h, sem_ch10.adb, s-oscons-tmplt.c,
1900 xoscons.adb: Minor reformatting.
1901
19022012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
1903
1904 * checks.adb (Apply_Parameter_Aliasing_And_Validity_Checks):
1905 Do not process subprogram renaminds because a) those cannot
1906 have PPC pragmas b) the renamed entity already has the PPCs.
1907 (Build_PPC_Pragma): Prepend a PPC pragma for consistency with
1908 Process_PPCs.
1909 * sem_ch6.adb (Last_Implicit_Declaration): Removed.
1910 (Process_PPCs): Insert a post condition body at the start of the
1911 declarative region of the related subprogram. This way the body
1912 will not freeze anything it shouldn't.
1913
7c443ae8 19142012-10-01 Robert Dewar <dewar@adacore.com>
1915
1916 * freeze.adb, sem_ch6.adb, opt.ads, sem_ch13.adb,
1917 exp_ch3.adb: Minor reformatting.
1918
19192012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
1920
1921 * checks.adb (Build_PPC_Pragma): A PPC pragma can now be properly
1922 associated with a subprogram body.
1923
5d3fb947 19242012-10-01 Ed Schonberg <schonberg@adacore.com>
1925
1926 * aspects.ads: Type_Invariant'class is a valid aspect.
1927 * sem_ch6.adb (Is_Public_Subprogram_For): with the exception of
1928 initialization procedures, subprograms that do not come from
1929 source are not public for the purpose of invariant checking.
1930 * sem_ch13.adb (Build_Invariant_Procedure): Handle properly the
1931 case of a non-private type in a package without a private part,
1932 when the type inherits invariants from its ancestor.
1933
19342012-10-01 Ed Schonberg <schonberg@adacore.com>
1935
1936 * exp_ch3.adb (Build_Record_Invariant_Proc): new procedure to
1937 generate a checking procedure for record types that may have
1938 components whose types have type invariants declared.
1939
4a9e7f0c 19402012-10-01 Vincent Pucci <pucci@adacore.com>
1941
1942 * system-solaris-sparcv9.ads, system-mingw.ads, system-vms_64.ads: Flag
1943 Support_Atomic_Primitives set to True.
1944
19452012-10-01 Robert Dewar <dewar@adacore.com>
1946
1947 * impunit.adb: Ada.Locales is a language defined unit.
1948
19492012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
1950
1951 * checks.adb (Apply_Parameter_Aliasing_Checks): Removed.
1952 (Apply_Parameter_Aliasing_And_Validity_Checks): New routine.
1953 (Apply_Parameter_Validity_Checks): Removed.
1954 * checks.ads (Apply_Parameter_Aliasing_Checks): Removed.
1955 (Apply_Parameter_Aliasing_And_Validity_Checks): New routine.
1956 (Apply_Parameter_Validity_Checks): Removed.
1957 * exp_ch6.adb (Expand_Call): Remove the generation of parameter
1958 aliasing checks.
1959 * freeze.adb: Remove with and use clauses for Validsw.
1960 (Freeze_Entity): Update the guard and generation of aliasing
1961 and scalar initialization checks for subprogram parameters.
1962 * opt.ads: Add new flags Check_Aliasing_Of_Parameters and
1963 Check_Validity_Of_Parameters along with comments on usage.
1964 * sem_attr.adb (Analyze_Attribute): Pragma Overlaps_Storage is
1965 no longer an Ada 2012 feature.
1966 * sem_ch4.adb: Remove with and use clauses for Checks and Validsw.
1967 (Analyze_Call): Remove the generation of aliasing checks for
1968 subprogram parameters.
1969 * sem_ch13.adb: Remove with and use clauses for Validsw.
1970 (Analyze_Aspect_Specifications): Remove the generation of scalar
1971 initialization checks.
1972 * switch-c.adb (Scan_Front_End_Switches): Add processing for
1973 -gnateA and -gnateV.
1974 * usage.adb (Usage): Add information on switches -gnateA and
1975 -gnateV. Remove information on validity switches 'l', 'L',
1976 'v' and 'V'.
1977 * validsw.adb (Reset_Validity_Check_Options): Remove the
1978 reset of flags Validity_Check_Non_Overlapping_Params
1979 and Validity_Check_Valid_Scalars_On_Params.
1980 (Save_Validity_Check_Options): Remove the processing
1981 for flags Validity_Check_Non_Overlapping_Params
1982 and Validity_Check_Valid_Scalars_On_Params.
1983 (Set_Validity_Check_Options): Remove the processing
1984 for flags Validity_Check_Non_Overlapping_Params and
1985 Validity_Check_Valid_Scalars_On_Params.
1986 * validsw.ads: Remove flags Validity_Check_Non_Overlapping_Params
1987 and Validity_Check_Valid_Scalars_On_Params along with their
1988 comments on usage.
1989
d513339a 19902012-10-01 Yannick Moy <moy@adacore.com>
1991
1992 * sem_ch13.adb (Add_Invariants): Analyze the invariant expression
1993 as an assertion expression.
1994 * sem_ch3.adb / sem_ch3.ads (Preanalyze_Assert_Expression):
1995 New procedure that wraps a call to Preanalyze_Spec_Expression
1996 for assertion expressions, so that In_Assertion_Expr can be
1997 properly adjusted.
1998 * sem_prag.adb (Analyze_PPC_In_Decl_Part
1999 Check_Precondition_Postcondition Preanalyze_CTC_Args): Call the
2000 new Preanalyze_Assert_Expression.
2001
a1c925e5 20022012-10-01 Robert Dewar <dewar@adacore.com>
2003
2004 * checks.ads: Minor reformatting.
2005
20062012-10-01 Yannick Moy <moy@adacore.com>
2007
2008 * types.ads, sem_prag.adb, sem.ads: Correct minor typos in comments.
2009
724d2bd8 20102012-10-01 Vincent Celier <celier@adacore.com>
2011
2012 * make.adb (Scan_Make_Arg): Only test for "vP" of the option
2013 includes at least 3 characters.
2014 * gnatcmd.adb (GNATCmd): Ditto.
2015
20162012-10-01 Eric Botcazou <ebotcazou@adacore.com>
2017
2018 * exp_ch7.adb, sinfo.ads: Add comments.
2019
20202012-10-01 Robert Dewar <dewar@adacore.com>
2021
2022 * checks.adb: Remove reference to Enable_Overflow_Checks Use
2023 Suppress_Options rather than Scope_Suppress.
2024 * gnat1drv.adb (Adjust_Global_Switches): Handle new overflow
2025 settings (Adjust_Global_Switches): Initialize Scope_Suppress
2026 from Suppress_Options.
2027 * opt.adb: Remove Enable_Overflow_Checks (use Suppress_Options
2028 instead).
2029 * opt.ads: Remove Overflow_Checks_Unsuppressed (not used)
2030 Remove Enable_Overflow_Checks (use Suppress_Options instead)
2031 Suppress_Options is now current setting (replaces Scope_Suppress).
2032 * osint.adb (Initialize): Deal with initializing overflow
2033 checking.
2034 * par-prag.adb: Add dummy entry for pragma Overflow_Checks.
2035 * sem.adb (Semantics): Save and restore In_Assertion_Expr Use
2036 Suppress_Options instead of Scope_Suppress.
2037 * sem.ads (In_Assertion_Expr): New flag (Scope_Suppress):
2038 Removed, use Suppress_Options instead.
2039 * sem_eval.adb (Compile_Time_Compare): Return Unknown in
2040 preanalysis mode.
2041 * sem_prag.adb (Process_Suppress_Unsuppress): Setting of
2042 Overflow_Checks_Unsuppressed removed (not used anywhere!)
2043 (Analyze_Pragma, case Check): Set In_Assertion_Expression
2044 (Analyze_Pragma, case Overflow_Checks): Implement new pragma
2045 * snames.ads-tmpl: Add names needed for handling pragma
2046 Overflow_Checks
2047 * switch-c.adb (Scan_Front_End_Switches) Handle -gnato? and
2048 -gnato?? where ? is 0-3
2049 * types.ads: Updates and fixes to comment on Suppress_Record.
2050
20512012-10-01 Vincent Celier <celier@adacore.com>
2052
2053 * prj-part.adb (Parse): Remove incorrect comment about checking
2054 imported non extending projects from and "extending all"
2055 one. Minor correction.
2056
c9e9106d 20572012-10-01 Robert Dewar <dewar@adacore.com>
2058
2059 * make.adb, exp_ch3.adb: Minor reformatting.
2060
20612012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
2062
2063 * validsw.adb (Save_Validity_Check_Options): Do not set
2064 Validity_Check_Non_Overlapping_Params and
2065 Validity_Check_Valid_Scalars_On_Params when -gnatVa is present
2066 because the related checks are deemed too aggressive.
2067
20682012-10-01 Ed Schonberg <schonberg@adacore.com>
2069
2070 * sem_util.ads sem_util.adb (Check_Internal_Protected_Use):
2071 reject use of protected procedure or entry within the body of
2072 a protected function of the same protected type, when usage is
2073 a call, an actual in an instantiation, a or prefix of 'Access.
2074 * sem_ch8.adb (Analyze_Subprogram_Renaming): Verify that target
2075 object in renaming of protected procedure is a variable, and
2076 apply Check_Internal_Protected_Use.
2077 * sem_res.adb (Analyze_Call, Analyze_Entry_Call): apply
2078 Check_Internal_Protected_Use rather than on-line code.
2079 * sem_attr.adb (Analyze_Access_Attribute): Verify that target
2080 object in accsss to protected procedure is a variable, and apply
2081 Check_Internal_Protected_Use.
2082
20832012-10-01 Gary Dismukes <dismukes@adacore.com>
2084
2085 * sem_ch4.adb (Find_Equality_Types.Try_One_Interp): Exclude the
2086 predefined interpretation from consideration if it's for a "/="
2087 operator of a tagged type. This will allow Analyze_Equality_Op to
2088 rewrite the "/=" as a logical negation of a call to the appropriate
2089 dispatching equality function. This needs to be done during
2090 analysis rather than expansion for the benefit of ASIS, which
2091 otherwise gets the unresolved N_Op_Ne operator from Standard.
2092
9e58d7ed 20932012-10-01 Thomas Quinot <quinot@adacore.com>
2094
2095 * gnatcmd.adb, make.adb (Scan_Make_Arg, Inspect_Switches): Recognize
2096 and reject an invalid parameter passed to -vP.
2097
20982012-10-01 Yannick Moy <moy@adacore.com>
2099
2100 * sem_warn.adb (Check_Infinite_Loop_Warning/Test_Ref): Improve
2101 the detection of modifications to the loop variable by noting
2102 that, if the type of variable is elementary and the condition
2103 does not contain a function call, then the condition cannot be
2104 modified by side-effects from a procedure call.
2105
21062012-10-01 Robert Dewar <dewar@adacore.com>
2107
2108 * checks.adb: Add comments.
2109
21102012-10-01 Javier Miranda <miranda@adacore.com>
2111
2112 * exp_ch3.adb (Expand_N_Object_Declaration): Improve condition catching
2113 never-ending recursion. The previous condition erroneously disabled
2114 silently the expansion of the class-wide interface object
2115 initialization in cases not involving the recursion.
2116
b73adb97 21172012-10-01 Thomas Quinot <quinot@adacore.com>
2118
2119 * make.adb: Minor documentation fix: error messages are sent to
2120 stderr, not stdout.
2121
21222012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
2123
2124 * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine.
2125 (Apply_Parameter_Validity_Checks): New routines.
2126 * exp_ch6.adb (Expand_Call): Add aliasing checks to detect
2127 overlapping objects.
2128 * freeze.adb: Add with and use clauses for Checks and Validsw.
2129 (Freeze_Entity): Add checks to detect proper initialization
2130 of scalars.
2131 * sem_ch4.adb: Add with and use clauses for Checks and Validsw.
2132 (Analyze_Call): Add aliasing checks to detect overlapping objects.
2133 * sem_ch13.adb: Add with and use clauses for Validsw.
2134 (Analyze_Aspect_Specifications): Add checks to detect proper
2135 initialization of scalars.
2136 * sem_prag.adb (Chain_PPC): Correct the extraction of the
2137 subprogram name.
2138 * sem_util.adb (Is_Object_Reference): Attribute 'Result now
2139 produces an object.
2140 * usage.adb (Usage): Add usage lines for validity switches 'l',
2141 'L', 'v' and 'V'.
2142 * validsw.adb (Reset_Validity_Check_Options): Include
2143 processing for flags Validity_Check_Non_Overlapping_Params and
2144 Validity_Check_Valid_Scalars_On_Params. Code reformatting.
2145 (Save_Validity_Check_Options): Include processing
2146 for flags Validity_Check_Non_Overlapping_Params
2147 and Validity_Check_Valid_Scalars_On_Params.
2148 (Set_Validity_Check_Options): Add processing for validity switches
2149 'a', 'l', 'L', 'n', 'v' and 'V'. Code reformatting.
2150 * validsw.ads: Add new flags Validity_Check_Non_Overlapping_Params
2151 and Validity_Check_Valid_Scalars_On_Params along with comments
2152 on usage.
2153
21542012-10-01 Thomas Quinot <quinot@adacore.com>
2155
2156 * namet.ads, xsnamest.adb, prj-env.adb, sem_warn.adb,
2157 errout.ads: Minor reformatting.
2158 * prj-part.adb: Add comment.
2159
29a9d4be 21602012-10-01 Robert Dewar <dewar@adacore.com>
2161
2162 * sinfo.ads, exp_aggr.adb, sem_ch13.adb: Minor reformatting.
2163
21642012-10-01 Ed Schonberg <schonberg@adacore.com>
2165
2166 * sem_aggr.adb (Resolve_Array_Aggregate): Handle properly
2167 component associations given by subtypes that have static
2168 predicates. Improve error message for overlapping ranges in
2169 array aggregates.
2170
21712012-10-01 Pascal Obry <obry@adacore.com>
2172
2173 * snames.ads-tmpl (Name_Link_Lib_Subdir): New constant.
2174
21752012-10-01 Ed Schonberg <schonberg@adacore.com>
2176
2177 * sem_ch9.adb (Analyze_Requeue): The target of a requeue
2178 statement on a protected entry must be a variable. This is part
2179 of AI05-0225.
2180
e1f2eb1e 21812012-09-26 Ian Lance Taylor <iant@google.com>
2182
2183 * gcc-interface/Makefile.in (LIBBACKTRACE): New variable.
2184 (LIBS): Add $(LIBBACKTRACE).
2185 (LIBDEPS): Add $(LIBBACKTRACE).
2186 (TOOLS_LIBS): Add ../../../libbacktrace/.libs/libbacktrace.a.
2187
1bb62874 21882012-09-10 Diego Novillo <dnovillo@google.com>
2189
2190 * gcc-interface/decl.c (build_subst_list): Adjust call to VEC_safe_push.
2191 (build_variant_list): Likewise.
2192 * gcc-interface/utils.c (convert): Adjust calls to VEC_quick_push.
2193
dd1d981f 21942012-09-07 Eric Botcazou <ebotcazou@adacore.com>
2195
2196 * gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to using
2197 size_type_node instead of sizetype.
2198
0ade479e 21992012-08-19 Eric Botcazou <ebotcazou@adacore.com>
2200
2201 * layout.adb (Set_Elem_Alignment): Cap the alignment of access types
2202 to that of a regular access type for non-strict-alignment platforms.
2203 * gcc-interface/utils.c (finish_fat_pointer_type): Do not set the
2204 alignment for non-strict-alignment platforms.
2205
8b8701ea 22062012-08-19 Eric Botcazou <ebotcazou@adacore.com>
2207
2208 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use proper
2209 dummy type for the temporary COMPONENT_REF built for a derived tagged
2210 type with discriminant.
2211
7a6732ec 22122012-08-14 Diego Novillo <dnovillo@google.com>
2213
2214 Merge from cxx-conversion branch. Re-implement VEC in C++.
2215
2216 * gcc-interface/trans.c (finalize_nrv_unc_r): Adjust VEC_index usage.
2217 * gcc-interface/utils.c (convert): Likewise.
2218 (remove_conversions): Likewise.
2219 * gcc-interface/utils2.c (compare_fat_pointers): Likewise.
2220 (build_unary_op): Likewise.
2221 (gnat_stabilize_reference): Likewise.
2222
12c79495 22232012-08-06 Jose Ruiz <ruiz@adacore.com>
2224
2225 * gcc-interface/Makefile.in: Add support for 32-bit VxWorks for SPARC
2226 in kernel mode.
2227
99a2d5bd 22282012-08-06 Arnaud Charlet <charlet@adacore.com>
2229
2230 * prj-attr.adb (Register_New_Package): Add missing blank.
2231
22322012-08-06 Ed Schonberg <schonberg@adacore.com>
2233
2234 * exp_aggr.adb (Is_Two_Dim_Packed_Array): New predicate,
2235 used when computing maximum size allowable to construct static
2236 aggregate.
2237
22382012-08-06 Vincent Pucci <pucci@adacore.com>
2239
2240 * freeze.adb (Freeze_Entity): Inherit_Aspects_At_Freeze_Point
2241 calls added for derived types and subtypes.
2242 * sem_aux.adb, sem_aux.ads (Get_Rep_Item, Get_Rep_Pragma,
2243 Has_Rep_Pragma): New routines.
2244 * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): New routine.
2245 * sem_ch13.adb (Analyze_Aspect_Specifications): Error message
2246 for aspect Lock_Free fixed.
2247 (Inherits_Aspects_At_Freeze_Point): New routine.
2248 * sem_ch3.adb: Several flag settings removed since inheritance
2249 of aspects must be performed at freeze point.
2250
22512012-08-06 Thomas Quinot <quinot@adacore.com>
2252
2253 * s-oscons-tmplt.c: Fix s-oscons.ads formatting on VxWorks.
2254
22552012-08-06 Vincent Pucci <pucci@adacore.com>
2256
2257 * sem_dim.adb (Analyze_Dimension_Binary_Op): Issue an error message
2258 for unknown exponent at compile-time.
2259
22602012-08-06 Gary Dismukes <dismukes@adacore.com>
2261
2262 * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Enhance
2263 comment to make it clear that the aggregate's evaluation might
2264 still involve run-time checks even though the aggregate is
2265 considered known at compile time.
2266 * sinfo.ads (Compile_Time_Known_Aggregate): Correct comment to
2267 refer to Exp_Aggr instead of Sem_Aggr.
2268
08861748 22692012-08-06 Robert Dewar <dewar@adacore.com>
2270
2271 * xoscons.adb: Minor code reorganization (remove unused variable
2272 E at line 331).
2273 * g-sercom.ads, exp_attr.adb: Minor reformatting.
2274 * sinfo.adb, sinfo.ads: Minor cleanup, remove unused flag
2275 Static_Processing_OK.
2276
22772012-08-06 Ed Schonberg <schonberg@adacore.com>
2278
2279 * sem_ch3.adb (Build_Derived_Concurrent_Type): Copy discriminant
2280 constraint when building a constrained subtype, to prevent
2281 undesirable tree sharing betweeb geberated subtype and derived
2282 type definition.
2283
22842012-08-06 Thomas Quinot <quinot@adacore.com>
2285
2286 * g-sercom-mingw.adb, s-oscons-tmplt.c: Add missing constants
2287 on Windows.
2288
22892012-08-06 Sergey Rybin <rybin@adacore.com frybin>
2290
2291 * tree_io.ads: Update ASIS_Version_Number because of the tree fix
2292 for discriminant constraints for concurrent types.
2293
b76829e9 22942012-08-06 Thomas Quinot <quinot@adacore.com>
2295
2296 * sem_ch4.adb: Minor reformatting.
2297
22982012-08-06 Thomas Quinot <quinot@adacore.com>
2299
2300 * s-oscons-tmplt.c, xoscons.adb: Per the Single UNIX Specification,
2301 types cc_t, speed_t, and tcflag_t defined in <termios.h> all are
2302 unsigned types. Add required special handling to have their correct
2303 unsigned values in s-oscons.ads.
2304
23052012-08-06 Thomas Quinot <quinot@adacore.com>
2306
2307 * par-ch13.adb: Minor reformatting.
2308
23092012-08-06 Thomas Quinot <quinot@adacore.com>
2310
2311 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb
2312 (Set): Add Local and Flow_Control settings.
2313
23142012-08-06 Ed Schonberg <schonberg@adacore.com>
2315
2316 * exp_attr.adb: Suppress saving of 'Old if assertions are not
2317 enabled.
2318
53f836d1 23192012-08-06 Yannick Moy <moy@adacore.com>
2320
2321 * sem_ch4.adb (Analyze_Selected_Component): Issue an error in
2322 Alfa mode for component not present.
2323
23242012-08-06 Thomas Quinot <quinot@adacore.com>
2325
2326 * exp_ch7.adb (Insert_Actions_In_Scope_Around): Do not
2327 use a renaming of Scope_Stack.Table (Scope_Stack.Last), as
2328 Process_Transient_Object may introduce new scopes and cause
2329 Scope_Stack.Table to be reallocated.
2330
fafc6b97 23312012-08-06 Robert Dewar <dewar@adacore.com>
2332
2333 * exp_util.adb, switch-c.adb, inline.ads, sem_ch10.adb, types.ads,
2334 checks.adb, sem_prag.adb, sem.adb, sem.ads, sem_res.adb, sem_attr.adb,
2335 gnat1drv.adb, exp_ch4.adb, exp_ch6.adb, opt.ads, osint.adb: Implement
2336 extended overflow checks (step 1).
2337 (Overflow_Check_Type, Suppress_Record, Suppress_All): New types.
2338 (Suppress_Array): Extended to include switches to control extended
2339 overflow checking (and renamed to Suppress_Record).
2340 Update all uses of Suppress_Array.
2341
23422012-08-06 Thomas Quinot <quinot@adacore.com>
2343
2344 * makeutl.ads: Minor documentation fix.
2345
23462012-08-06 Thomas Quinot <quinot@adacore.com>
2347
2348 * exp_ch7.adb: Minor reformatting.
2349
825c3598 23502012-08-06 Geert Bosch <bosch@adacore.com>
2351
2352 * a-ngelfu.adb: Change obsolete comment that this is a non-strict
2353 implementation.
2354
23552012-08-06 Steve Baird <baird@adacore.com>
2356
2357 * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): If
2358 CodePeer_Mode = True then omit exception handlers for finalization calls
2359
23602012-08-06 Robert Dewar <dewar@adacore.com>
2361
2362 * exp_aggr.adb: Minor reformatting.
2363
3f3f8d79 23642012-08-06 Robert Dewar <dewar@adacore.com>
2365
2366 * sem_ch6.adb: Remove useless flag Body_Deleted.
2367
23682012-08-06 Thomas Quinot <quinot@adacore.com>
2369
2370 * sinfo.ads (End_Span): Change default from No_Uint to Uint_0,
2371 as this is what all usage occurrences of this attribute are
2372 expecting.
2373 * uintp.adb (UI_To_Int): Add assertion to guard against calling
2374 with No_Uint.
2375
23762012-08-06 Vincent Pucci <pucci@adacore.com>
2377
7a6732ec 2378 PR ada/54125
3f3f8d79 2379 * exp_attr.adb (Expand_N_Attribute_Reference): Expand new
2380 Atomic_Always_Lock_Free attribute.
2381 * sem_attr.adb (Analyze_Attribute): Analyze new
2382 Atomic_Always_Lock_Free attribute.
2383 (Eval_Attribute): Nothing to do with new Atomic_Always_Lock_Free
2384 attribute.
2385 * sem_ch9.adb (Allows_Lock_Free_Implementation):
2386 Support_Atomic_Primitives check replaces previous erroneous
2387 size check.
2388 * sem_util.adb, sem_util.ads (Support_Atomic_Primitives):
2389 New routine.
2390 * snames.ads-tmpl: New name Name_Atomic_Always_Lock_Free and
2391 new attribute Attribute_Atomic_Always_Lock_Free defined.
2392 * s-atopri.adb: Support_Atomic_Primitives checks replaced by
2393 Atomic_Always_Lock_Free queries.
2394 * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
2395 system-hpux.ads, system-linux-alpha.ads, system-linux-hppa.ads,
2396 system-linux-ppc.ads, system-linux-s390.ads,
2397 system-linux-s390x.ads, system-linux-sh4.ads,
2398 system-linux-sparc.ads, system-lynxos178-ppc.ads,
2399 system-lynxos-ppc.ads, system-mingw.ads,
2400 system-vxworks-arm.ads, system-solaris-sparc.ads,
2401 system-solaris-sparcv9.ads, system-vms_64.ads,
2402 system-vxworks-m68k.ads, system-vxworks-mips.ads,
2403 system-vxworks-ppc.ads, system-vxworks-sparcv9.ads: Flag
2404 Support_Atomic_Primitives removed.
2405
a39ff582 24062012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
2407
2408 * sem_mech.adb (Set_Mechanisms): OUT and IN OUT parameters are
2409 now unconditionally passed by reference. IN parameters subject
2410 to convention C_Pass_By_Copy are passed by copy, otherwise they
2411 are passed by reference.
2412
24132012-08-06 Ed Schonberg <schonberg@adacore.com>
2414
2415 * sem_ch3.adb (Analyze_Object_Declaration): According to
2416 AI95-0303, protected objects with interrupt handlers can be
2417 declared in nested scopes. This is a binding interpretation,
2418 and thus applies to all versions of the compiler.
2419
24202012-08-06 Robert Dewar <dewar@adacore.com>
2421
2422 * frontend.adb, exp_aggr.adb: Minor reformatting.
2423
24242012-08-06 Thomas Quinot <quinot@adacore.com>
2425
2426 * par-endh.adb: Minor reformatting.
2427
ace3389d 24282012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
2429
2430 * exp_ch7.adb (Process_Transient_Objects): Remove obsolete loop
2431 processing related to array initialization. The expansion of
2432 loops already contains a mechanism to detect controlled objects
2433 generated by expansion and introduce a block around the loop
2434 statements for finalization purposes.
2435
24362012-08-06 Vincent Pucci <pucci@adacore.com>
2437
2438 * sem_ch13.adb: Current scope must be within
2439 or same as the scope of the entity while analysing aspect
2440 specifications at freeze point.
2441
24422012-08-06 Thomas Quinot <quinot@adacore.com>
2443
2444 * par_sco.adb: Add note about dubious SCO for TERMINATE
2445 alternative.
2446 * sem_ch8.adb, exp_ch11.adb: Minor reformatting.
2447
24482012-08-06 Ed Schonberg <schonberg@adacore.com>
2449
2450 * exp_aggr.adb (Two_Dim_Packed_Array_Handled): New procedure to
2451 transform an aggregate for a packed two-dimensional array into
2452 a one-dimensional array of constant values, in order to avoid
2453 the generation of component-by-component assignments.
2454
24552012-08-06 Thomas Quinot <quinot@adacore.com>
2456
2457 * frontend.adb: Do not attempt to process deferred configuration
2458 pragmas if the main unit failed to load, to avoid cascaded
2459 inconsistencies that can lead to a compiler crash.
2460
8ef22b90 24612012-08-06 Vincent Pucci <pucci@adacore.com>
2462
2463 * s-atopri.adb: Minor reformatting.
2464
24652012-08-06 Arnaud Charlet <charlet@adacore.com>
2466
2467 * gnat-style.texi: Clarify that all subprograms should be
2468 documented. Minor rewording.
2469
5134891e 24702012-08-06 Robert Dewar <dewar@adacore.com>
2471
2472 * aspects.ads: Define Aspect_Id_Exclude_No_Aspect.
2473 * par-ch13.adb, restrict.adb: Use Aspect_Id_Exclude_No_Aspect to
2474 simplify code.
2475
24762012-08-06 Yannick Moy <moy@adacore.com>
2477
2478 * gnat-style.texi: Update style guide for declarations.
2479
24802012-08-06 Yannick Moy <moy@adacore.com>
2481
2482 * sem_attr.adb (Analyze_Attribute): In the case for 'Old,
2483 skip a special expansion which is not needed in Alfa mode.
2484
24852012-08-06 Yannick Moy <moy@adacore.com>
2486
2487 * sem_ch5.adb (Analyze_Iterator_Specification): Do not perform
2488 an expansion of the iterator in Alfa mode.
2489
dcbac5c0 24902012-08-06 Robert Dewar <dewar@adacore.com>
2491
2492 * s-oscons-tmplt.c, sem_ch9.adb, osint.adb: Minor reformatting.
2493
24942012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
2495
2496 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Remove obsolete
2497 Alfa-specific guard. The code is a leftover from an early
2498 implementation of iterators which is no longer in use.
2499
25002012-08-06 Vincent Celier <celier@adacore.com>
2501
2502 * par-ch13.adb (Get_Aspect_Specifications): Do not consider
2503 No_Aspect when checking for a mispelled aspect.
2504
81beaf05 25052012-08-06 Robert Dewar <dewar@adacore.com>
2506
2507 * s-htable.adb: Minor reformatting.
2508
25092012-08-06 Thomas Quinot <quinot@adacore.com>
2510
2511 * s-oscons-tmplt.c, g-socket.adb (System.OS_Constants.Target_OS):
2512 Suppress warnings so that we don't have to do it at each usage.
2513
ba9b1a39 25142012-08-06 Vincent Pucci <pucci@adacore.com>
2515
2516 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
2517 Use of Known_Static_Esize instead of Known_Esize and
2518 Known_Static_RM_Size instead of Known_RM_Size in order to
2519 properly call UI_To_Int. Don't check the size of the component
2520 type in case of generic.
2521 * sem_ch9.adb (Allows_Lock_Free_Implementation):
2522 Use of Known_Static_Esize instead of Known_Esize and
2523 Known_Static_RM_Size instead of Known_RM_Size in order to properly
2524 call UI_To_Int. Don't check the size of the component type in
2525 case of generic.
2526
25272012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
2528
2529 * checks.adb (Discrete_Range_Cond): Do not try to optimize on
2530 the assumption that the type of an expression can always fit in
2531 the target type of a conversion.
2532
1094a5ca 25332012-07-30 Robert Dewar <dewar@adacore.com>
2534
2535 * bindusg.adb: Clarify file in -A lines.
2536
25372012-07-30 Robert Dewar <dewar@adacore.com>
2538
2539 * freeze.adb: Minor reformatting.
2540
25412012-07-30 Robert Dewar <dewar@adacore.com>
2542
2543 * gnatcmd.adb, makeutl.adb, makeutl.ads: Minor code reorganization.
2544
25452012-07-30 Vincent Pucci <pucci@adacore.com>
2546
2547 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Minor
2548 reformatting.
2549 * sem_ch9.adb (Allows_Lock_Free_Implementation): Minor reformatting.
2550 Capture the correct error message in case of a quantified expression.
2551
25522012-07-30 Thomas Quinot <quinot@adacore.com>
2553
2554 * g-socket.adb (Get_Socket_Option, Set_Socket_Option): On Windows, the
2555 value is a milliseconds count in a DWORD, not a struct timeval.
2556
50b3164d 25572012-07-30 Hristian Kirtchev <kirtchev@adacore.com>
2558
2559 * sem_ch12.adb (Earlier): Add local variables T1 and T2. Minor code
2560 refactoring.
2561
25622012-07-30 Thomas Quinot <quinot@adacore.com>
2563
2564 * gnatcmd.adb, make.adb, makeutl.adb, makeutl.ads
2565 (Test_If_Relative_Path): Rename to Ensure_Absolute_Path to better
2566 reflect what this subprogram does. Rename argument Including_L_Switch
2567 to For_Gnatbind, and also exempt -A from rewriting.
2568 * bindusg.adb: Document optional =file argument to gnatbind -A.
2569
25702012-07-30 Ed Schonberg <schonberg@adacore.com>
2571
2572 * freeze.adb (Freeze_Entity): Do no apply restriction check on
2573 storage pools to access to subprogram types.
2574
2beb22b1 25752012-07-30 Robert Dewar <dewar@adacore.com>
2576
2577 * par_sco.adb, a-cihama.adb, a-coinve.adb, exp_ch7.adb, a-ciorse.adb,
2578 exp_ch9.adb, sem_dim.adb, par-ch13.adb, sem_ch9.adb, a-cidlli.adb,
2579 a-cimutr.adb, freeze.adb, a-ciormu.adb, sem_res.adb, sem_attr.adb,
2580 a-cihase.adb, exp_ch4.adb, sem_ch4.adb, a-ciorma.adb,
2581 s-tasinf-linux.ads, sem_ch13.adb, a-coinho.adb: Minor reformatting.
2582 Add comments.
2583
7c3537be 25842012-07-30 Vincent Pucci <pucci@adacore.com>
2585
2586 * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict implicit
2587 dereferences of access values.
2588
2953bbc2 25892012-07-27 Iain Sandoe <iain@codesourcery.com>
2590
2591 * system-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True.
2592
2330f9c5 25932012-07-25 Eric Botcazou <ebotcazou@adacore.com>
2594
2595 * gcc-interface/utils2.c (gnat_stabilize_reference) <BIT_FIELD_REF>: Do
2596 not stabilize operand #1 and #2.
2597
c2d9cb26 25982012-07-23 Tristan Gingold <gingold@adacore.com>
2599
2600 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Use
2601 End_Label sloc when possible for sloc of the TRY_CATCH_EXPR node.
2602
26032012-07-23 Olivier Hainque <hainque@adacore.com>
2604
2605 * gcc-interface/Makefile.in: Adjust processing of Linker_Options for
2606 VxWorks.
2607 * gcc-interface/Make-lang.in: Update dependencies.
2608
8f531643 26092012-07-23 Arnaud Charlet <charlet@adacore.com>
2610
2611 * s-tasinf-linux.ads: Fix typo.
2612
26132012-07-23 Thomas Quinot <quinot@adacore.com>
2614
2615 * exp_ch7.adb, switch-m.adb, exp_ch3.adb, freeze.adb: Minor reformatting
2616
26172012-07-23 Ed Schonberg <schonberg@adacore.com>
2618
2619 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): If original
2620 loop carries an identifier, preserve it when rewriting it as a
2621 standard loop to validate exit statements that may reference
2622 that name in the body of the loop.
2623
26242012-07-23 Thomas Quinot <quinot@adacore.com>
2625
2626 * exp_ch9.adb: Minor code cleanup.
2627
094ed68e 26282012-07-23 Ed Schonberg <schonberg@adacore.com>
2629
2630 * sem_ch4.adb (Analyze_Selected_Component): When checking for
2631 potential ambiguities with class-wide operations on synchronized
2632 types, attach the copied node properly to the tree, to prevent
2633 errors during expansion.
2634
26352012-07-23 Yannick Moy <moy@adacore.com>
2636
2637 * sem_ch5.adb (Analyze_Loop_Statement): Make sure the loop body
2638 is analyzed in Alfa mode.
2639
26402012-07-23 Ed Schonberg <schonberg@adacore.com>
2641
2642 * sem_res.adb: Adjust previous change.
2643
26442012-07-23 Vincent Pucci <pucci@adacore.com>
2645
2646 * sem_ch9.adb (Allows_Lock_Free_Implementation): Flag
2647 Lock_Free_Given renames previous flag Complain. Description
2648 updated. Henceforth, catch every error messages issued by this
2649 routine when Lock_Free_Given is True. Declaration restriction
2650 updated: No non-elementary parameter instead (even in parameter)
2651 New subprogram body restrictions implemented: No allocator,
2652 no address, import or export rep items, no delay statement,
2653 no goto statement, no quantified expression and no dereference
2654 of access value.
2655
26562012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
2657
2658 * checks.adb (Determine_Range): Add local variable Btyp. Handle
2659 the case where the base type of an enumeration subtype is
2660 private. Replace all occurrences of Base_Type with Btyp.
2661 * exp_attr.adb (Attribute_Valid): Handle the case where the
2662 base type of an enumeration subtype is private. Replace all
2663 occurrences of Base_Type with Btyp.
2664 * sem_util.adb (Get_Enum_Lit_From_Pos): Add local variable
2665 Btyp. Handle the case where the base type of an enumeration
2666 subtype is private. Replace all occurrences of Base_Type with
2667 Btyp.
2668
1630f2a9 26692012-07-23 Ed Schonberg <schonberg@adacore.com>
2670
2671 * par-ch6.adb (P_Mode): in Ada 2005, a mode indicator can apply
2672 to a formal object of an anonymous access type.
2673
26742012-07-23 Ed Schonberg <schonberg@adacore.com>
2675
2676 * sem_ch4.adb (Try_Container_Indexing): A user-defined indexing
2677 aspect can have more than one index, e.g. to describe indexing
2678 of a multidimensional object.
2679
26802012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
2681
2682 * exp_ch4.adb (Apply_Accessibility_Check): Reimplemented. The check is
2683 now more complex and contains optional finalization part and mandatory
2684 deallocation part.
2685
26862012-07-23 Gary Dismukes <dismukes@adacore.com>
2687
2688 * a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, a-ciormu.adb,
2689 a-ciorse.adb, a-coinho.adb, a-coinve.adb, a-cidlli.adb: Unsuppress
2690 Accessibility_Check for Element_Type allocators.
2691
26922012-07-23 Vasiliy Fofanov <fofanov@adacore.com>
2693
2694 * projects.texi: Fix typo.
2695
26962012-07-23 Ed Schonberg <schonberg@adacore.com>
2697
2698 * sem_res.adb (Resolve_Explicit_Derenference): If prefix is
2699 overloaded, remove those interpretations whose designated type
2700 does not match the context, to avoid spurious ambiguities that
2701 may be caused by the Ada 2012 conversion rule for anonymous
2702 access types.
2703
3a72f9c3 27042012-07-23 Vincent Celier <celier@adacore.com>
2705
2706 * g-spitbo.adb (Substr (String)): Return full string and do not
2707 raise exception when Start is 1 and Len is exactly the length
2708 of the string parameter.
2709 * g-spitbo.ads: Fix spelling error in the name of exception
2710 Index_Error.
2711
27122012-07-23 Ed Schonberg <schonberg@adacore.com>
2713
2714 * par.adb: new subprogram Get_Aspect_Specifications.
2715 * par-ch6.adb (P_Subprogram): handle subprogram bodies with aspect
2716 specifications.
2717 * par-ch13.adb (Get_Aspect_Specifications): extracted from
2718 P_Aspect_Specifications. Collect aspect specifications in some
2719 legal context, but do not attach them to any declaration. Used
2720 when parsing subprogram declarations or bodies that include
2721 aspect specifications.
2722 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If aspects are
2723 present, analyze them, or reject them if the subprogram as a
2724 previous spec.
2725
27262012-07-23 Vasiliy Fofanov <fofanov@adacore.com>
2727
2728 * gnat_ugn.texi: Omit section on other platforms/runtimes support
2729 in gnattest for vms version.
2730
27312012-07-23 Ed Schonberg <schonberg@adacore.com>
2732
2733 * sem_ch13.adb (Analyze_Aspect_Specifications):
2734 Handle properly aspects that can be specified on a subprogram
2735 body: CPU, Priority, and Interrupt_Priority.
2736
27372012-07-23 Claire Dross <dross@adacore.com>
2738
2739 * a-cfdlli.ads: Switch definition of Constant_Reference_Type
2740 and Empty_List.
2741
27422012-07-23 Thomas Quinot <quinot@adacore.com>
2743
2744 * par_sco.adb (Process_Decisions.Output_Header): For the guard
2745 on an alternative in a SELECT statement, use the First_Sloc
2746 of the guard expression (not its topmost sloc) as the decision
2747 location, because this is what is referenced by dominance markers.
2748
27492012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
2750
2751 * exp_ch7.adb (Requires_Hooking): Examine the original expression
2752 of an object declaration node because a function call that
2753 returns on the secondary stack may have been rewritten into
2754 something else.
2755
27562012-07-23 Vincent Pucci <pucci@adacore.com>
2757
2758 * sem_dim.adb (Analyze_Dimension_Has_Etype): For identifier, propagate
2759 dimension when entity is a non-dimensionless constant.
2760 (Analyze_Dimension_Object_Declaration): Propagate
2761 dimension from the expression to the entity when type is a
2762 dimensioned type and object is a constant.
2763
27642012-07-23 Ed Schonberg <schonberg@adacore.com>
2765
2766 * sem_attr.adb (Analyze_Attribute, case 'Old): if the prefix
2767 is not an entity name, expand at once so that code generated by
2768 the expansion of the prefix is not generated before the constant
2769 that captures the old value is properly inserted and analyzed.
2770
27712012-07-23 Thomas Quinot <quinot@adacore.com>
2772
2773 * exp_ch9.adb (Ensure_Statement_Present): Mark generated NULL
2774 statement as Comes_From_Source so that GIGI does not eliminate it.
2775
549ddc37 27762012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
2777
2778 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now
2779 a local variable. Retrieve the related instance when processing
2780 a subprogram instantiation. Such instances appear as wrapper
2781 packages.
2782
27832012-07-23 Vincent Pucci <pucci@adacore.com>
2784
2785 * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
2786 system-hpux.ads, system-linux-alpha.ads,
2787 system-linux-hppa.ads, system-linux-ppc.ads,
2788 system-linux-s390.ads, system-linux-s390x.ads,
2789 system-linux-sh4.ads, system-linux-sparc.ads,
2790 system-lynxos-ppc.ads, system-mingw.ads,
2791 system-solaris-sparc.ads, system-solaris-sparcv9.ads,
2792 system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads,
2793 system-vxworks-mips.ads, system-vxworks-ppc.ads,
2794 system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False.
2795 * system-darwin-x86.ads, system-darwin-x86_64.ads,
2796 system-freebsd-x86.ads, system-freebsd-x86_64.ads,
2797 system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads,
2798 system-linux-x86_64.ads, system-lynxos-x86.ads,
2799 system-mingw-x86_64.ads, system-solaris-x86.ads,
2800 system-solaris-x86_64.ads, system-vms-ia64.ads,
2801 system-vxworks-x86.ads: Support_Atomic_Primitives set to True.
2802 * s-atopri.adb (Lock_Free_Read_X): New body.
2803 (Lock_Free_Try_Write_X): Support_Atomic_Primitives check added.
2804 (Lock_Free_Try_Write_64): New body.
2805 * s-atopri.ads: New type uint.
2806 (Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic
2807 import.
2808 (Lock_Free_Read_X): Body moved to s-atopri.adb.
2809 (Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X
2810 routines.
2811 * targparm.adb: New enumeration literal SAP
2812 (Support_Atomic_Primitives) for type Targparm_Tags. New constant
2813 SAP_Str. New component SAP_Str'Access for array Targparm_Str.
2814 (Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target
2815 flag.
2816 * targparm.ads: New back-end code generation flag
2817 Support_Atomic_Primitives_On_Target
2818
28192012-07-23 Vincent Pucci <pucci@adacore.com>
2820
2821 * gnat_ugn.texi: Dimensionality checking documentation updated.
2822
28232012-07-23 Ed Schonberg <schonberg@adacore.com>
2824
2825 * sem_prag.adb (Make_Inline): If the pragma applies to a
2826 subprogram renaming, set inline flags on both the renamed entity
2827 and on the renaming, so that some ASIS queries can be handled
2828 consistently in the absence of expansion.
2829
d6a9dc1e 28302012-07-23 Fedor Rybin <frybin@adacore.com>
2831
2832 * gnat_ugn.texi: Removing obsolete limitation of gnattest
2833 to support only ada05. Updating gnattest support for other
2834 platforms/run-times section to reflect the usage of taget
2835 prefix in gnattest calls. Fixing missed obsolete --stub-default
2836 option name.
2837
28382012-07-23 Robert Dewar <dewar@adacore.com>
2839
2840 * uintp.adb: Minor reformatting.
2841
28422012-07-23 Olivier Hainque <hainque@adacore.com>
2843
2844 * system-vxworks-ppc.ads: Replace the default
2845 Linker_Options requesting crtbe by a commented out request for
2846 -nostartfiles.
2847
28482012-07-23 Vincent Celier <celier@adacore.com>
2849
2850 * prj-nmsc.adb (Check_Naming): Do not get the exceptions names
2851 in a virtual project.
2852
c7dbb79e 28532012-07-23 Robert Dewar <dewar@adacore.com>
2854
2855 * layout.adb, sem_prag.adb, sem.ads, freeze.adb,
2856 switch-m.adb, exp_disp.adb, system-vxworks-ppc.ads, exp_ch6.adb: Minor
2857 reformatting.
2858
1831dae0 28592012-07-23 Tristan Gingold <gingold@adacore.com>
2860
2861 * gcc-interface/trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set
2862 location on TRY_CATCH_EXPR.
2863
be42dbce 28642012-07-19 Eric Botcazou <ebotcazou@adacore.com>
2865
2866 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Try to ensure
2867 that an object of CW type initialized to a value is sufficiently
2868 aligned for this value.
2869
061ad733 28702012-07-19 Eric Botcazou <ebotcazou@adacore.com>
2871
2872 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Do not
2873 look up the REP part of the base type in advance. Deal with that of
2874 the variant types.
2875 (get_rep_part): Be prepared for record types with fields.
2876
5df7fe69 28772012-07-18 Eric Botcazou <ebotcazou@adacore.com>
2878
2879 * gcc-interface/trans.c (stmt_group_may_fallthru): New function.
2880 (gnat_to_gnu) <N_Block_Statement>: Use it to find out whether the
2881 block needs to be translated.
2882
eb87f0fd 28832012-07-17 Tristan Gingold <gingold@adacore.com>
2884
2885 * gnat_rm.texi: Adjust previous change.
2886
28872012-07-17 Ed Schonberg <schonberg@adacore.com>
2888
2889 * sem_prag.adb (Process_Import_Or_Interface): If the pragma
2890 comes from an aspect, it applies to the corresponding entity
2891 without further check.
2892
28932012-07-17 Olivier Hainque <hainque@adacore.com>
2894
2895 * initialize.c (__gnat_initialize for VxWorks): Remove section with
2896 call to __gnat_vxw_setup_for_eh.
2897 * system-vxworks-ppc.ads: Add -auto-register to -crtbe, relying
2898 on the VxWorks constructor mechanism for network loaded modules
2899 by default.
2900
29012012-07-17 Tristan Gingold <gingold@adacore.com>
2902
2903 * adaint.c: Minor reformatting.
2904
29052012-07-17 Pascal Obry <obry@adacore.com>
2906
2907 * s-regexp.adb (Adjust): Fix access violation in Adjust.
2908
29092012-07-17 Ed Schonberg <schonberg@adacore.com>
2910
2911 * freeze.adb (Freeze_Entity): Warn if an imported subprogram
2912 has pre/post conditions, because these will not be enforced.
2913
29142012-07-17 Eric Botcazou <ebotcazou@adacore.com>
2915
2916 * exp_ch7.adb (Process_Transient_Objects): Put all the
2917 finalization blocks and the final raise statement into a wrapper
2918 block.
2919
29202012-07-17 Vincent Pucci <pucci@adacore.com>
2921
2922 * s-atopri.adb (Lock_Free_Try_Write_X): Atomic_Compare_Exchange_X
2923 replaced by Sync_Compare_And_Swap_X.
2924 (Lock_Free_Try_Write_64): Removed.
2925 * s-atopri.ads (Sync_Compare_And_Swap_X): Replaces previous
2926 routine Atomic_Compare_Exchange_X.
2927 (Lock_Free_Read_64): Renaming of Atomic_Load_64.
2928 (Lock_Free_Try_Write_64): Renaming of Sync_Compare_And_Swap_64.
2929
29302012-07-17 Vincent Celier <celier@adacore.com>
2931
2932 * switch-m.adb (Normalize_Compiler_Switches): Recognize new
2933 switches -gnatn1 and -gnatn2.
2934
29352012-07-17 Vincent Pucci <pucci@adacore.com>
2936
2937 * gnat_ugn.texi: GNAT dimensionality checking
2938 documentation updated with System.Dim.Mks modifications.
2939
29402012-07-17 Ed Schonberg <schonberg@adacore.com>
2941
2942 * exp_ch3.adb: sloc of array init_proc is sloc of type declaration.
2943
29442012-07-17 Tristan Gingold <gingold@adacore.com>
2945
2946 * raise-gcc.c (get_call_site_action_for): Remove useless init
2947 expression for p.
2948 (get_action_description_for): Do not overwrite action->kind.
2949
29502012-07-17 Hristian Kirtchev <kirtchev@adacore.com>
2951
2952 * exp_attr.adb (Expand_N_Attribute_Reference): Add local variables Attr
2953 and Conversion_Added. Add local constant Typ.
2954 Retrieve the original attribute after the arithmetic check
2955 machinery has modified the node. Add a conversion to the target
2956 type when the prefix of attribute Max_Size_In_Storage_Elements
2957 is a controlled type.
2958
29592012-07-17 Gary Dismukes <dismukes@adacore.com>
2960
2961 * exp_ch6.adb (Expand_Inlined_Call): For each actual parameter
2962 of mode 'out' or 'in out' that denotes an entity, reset
2963 Last_Assignment on the entity so that any assignments to the
2964 corresponding formal in the inlining will not trigger spurious
2965 warnings about overwriting assignments.
2966
2ff0322d 29672012-07-17 Robert Dewar <dewar@adacore.com>
2968
2969 * s-assert.ads: Fix comments to make it clear that this is used
2970 for all assertions, not just pragma Assert.
2971
29722012-07-17 Jerome Guitton <guitton@adacore.com>
2973
2974 * par_sco.ads: Minor typo fix.
2975
29762012-07-17 Gary Dismukes <dismukes@adacore.com>
2977
2978 * layout.adb (Layout_Type): In the case where the target is
2979 AAMP, use 32 bits (a single pointer) rather than 64 bits for an
2980 anonymous access-to-subprogram type if the type is library-level
2981 and Is_Local_Anonymous_Access is True.
2982
29832012-07-17 Jose Ruiz <ruiz@adacore.com>
2984
2985 * s-tassta.adb, s-tarest.adb (Create_Task, Create_Restricted_Task,
2986 Initialize): Add comments explaining that the CPU affinity value that
2987 is passed to the run-time library can be either Unspecified_CPU, to
2988 indicate that the task inherits the affinity of its activating task,
2989 or a value in the range of CPU_Range but no greater than Number_Of_CPUs.
2990
29912012-07-17 Javier Miranda <miranda@adacore.com>
2992
2993 * exp_disp.adb (Make_DT): Remove decoration of Ada.Tags entities.
2994 (Make_Tags): Add decoration of Ada.Tags entities.
2995
29962012-07-17 Ed Schonberg <schonberg@adacore.com>
2997
2998 * sem_ch6.adb (Check_Statement_Sequence): When locating the
2999 last significant statement in a sequence, ignore iserted nodes
3000 that typically come from expansion of controlled operations.
3001
30022012-07-17 Tristan Gingold <gingold@adacore.com>
3003
3004 * gnat_rm.texi: Document foreign exceptions.
3005
fc34391d 30062012-07-17 Robert Dewar <dewar@adacore.com>
3007
3008 * sem_prag.adb, treepr.ads: Minor reformatting.
3009
e22bc81a 30102012-07-17 Robert Dewar <dewar@adacore.com>
3011
3012 * exp_ch9.adb: Minor code reorganization.
3013 * exp_ch3.adb: Minor code improvement.
3014
30152012-07-17 Tristan Gingold <gingold@adacore.com>
3016
3017 * seh_init.c (__gnat_SEH_error_handler): Not compiled anymore
3018 on Windows 64 (+ SEH), as it is unused.
3019
e22bc81a 30202012-07-17 Javier Miranda <miranda@adacore.com>
3021
3022 * sem_prag.adb (CPP_Class): Transform obsolescent pragma CPP_Class into
3023 CPP convention automatically.
3024
4be5aafb 30252012-07-16 Tristan Gingold <gingold@adacore.com>
3026
3027 * gcc-interface/decl.c (intrin_return_compatible_p): Map Address to
3028 void *.
3029
e3cb8202 30302012-07-16 Thomas Quinot <quinot@adacore.com>
3031
3032 * exp_ch9.adb (Ensure_Statement_Present): New subprogram.
3033 (Expand_N_Asynchronous_Select,
3034 Expand_N_Selective_Accept.Process_Accept_Alternative,
3035 Expand_N_Selective_Accept.Process_Delay_Alternative,
3036 Expand_N_Timed_Entry_Call): For an alternative with no trailing
3037 statements, introduce a null statement to carry the sloc of
3038 the initial special statement (accept, delay, or entry call)
3039 in the alternative, for coverage analysis purposes.
3040
30412012-07-16 Thomas Quinot <quinot@adacore.com>
3042
3043 * sem_eval.adb (In_Subrange_Of): Fix typo in test for scalar
3044 arguments.
3045
85377c9b 30462012-07-16 Robert Dewar <dewar@adacore.com>
3047
3048 * a-exexpr.adb, freeze.adb, a-exexpr-gcc.adb, a-except-2005.adb,
3049 sem_eval.adb, s-fileio.adb: Minor reformatting.
3050
30512012-07-16 Javier Miranda <miranda@adacore.com>
3052
3053 * sem_prag.adb (Analyze_Pragma): Remove support for obsolescent
3054 pragma CPP_Class.
3055 * sem_ch13.adb (Analyze_Freeze_Entity): Add missing error on Ada
3056 derivations of CPP types. Found updating the tests affected by
3057 the removal of pragma CPP_Class.
3058
30592012-07-16 Thomas Quinot <quinot@adacore.com>
3060
3061 * back_end.adb: Minor reformatting.
3062
30632012-07-16 Thomas Quinot <quinot@adacore.com>
3064
3065 * exp_ch9.adb (Expand_N_Selective_Accept.Process_Accept_Alternative):
3066 Remove junk test that was always true. For the case of no statements
3067 following the ACCEPT, jump directly to End_Lab instead of
3068 introducing an intermediate jump.
3069 (Expand_N_Selective_Accept.Process_Delay_Alternative): Fix
3070 predicate testing for presence of statements following the DELAY.
3071 that was always true. For the case of no statements following
3072 the ACCEPT, jump directly to End_Lab instead of introducing an
3073 intermediate jump.
3074 (Expand_N_Selective_Accept): Fix incorrect insertion point for
3075 end label.
3076
b3d5d0ad 30772012-07-16 Thomas Quinot <quinot@adacore.com>
3078
3079 * gnat_rm.texi: Minor documentation improvements.
3080
30812012-07-16 Yannick Moy <moy@adacore.com>
3082
3083 * sem_ch13.adb (Analyze_Aspect_Specifications): Allow Pre
3084 and Pre'Class aspects on the same declaration.
3085 * sem_prag.adb (Chain_PPC): Allow Pre and Pre'Class aspects on the
3086 same hierarchy of primitive operations.
3087
204c9c3d 30882012-07-16 Thomas Quinot <quinot@adacore.com>
3089
3090 * freeze.adb (Check_Component_Storage_Order): Do not reject a
3091 nested composite with different scalar storage order if it is
3092 byte aligned.
3093
30942012-07-16 Thomas Quinot <quinot@adacore.com>
3095
3096 * gnat_rm.texi: Update documentation for Scalar_Storage_Order.
3097
30982012-07-16 Tristan Gingold <gingold@adacore.com>
3099
3100 * a-exexpr.adb (Propagate_Exception): Adjust call to
3101 Exception_Traces procedures.
3102 * a-exexpr-gcc.adb (Setup_Current_Excep): Now a
3103 function that returns an access to the Ada occurrence.
3104 (Propagate_GCC_Exception): Adjust calls.
3105 * raise.h (struct Exception_Occurrence): Declare.
3106 * a-exextr.adb: Remove useless pragma. (Notify_Handled_Exception,
3107 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate):
3108 Add Excep parameter.
3109 * a-except.adb (Notify_Handled_Exception,
3110 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate):
3111 Add Excep parameter.
3112 (Process_Raise_Exception): Adjust calls.
3113 * a-except-2005.adb (Notify_Handled_Exception,
3114 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): Add
3115 Excep parameter.
3116 (Raise_Exception): Calls Raise_Exception_Always.
3117 * raise-gcc.c (__gnat_setup_current_excep,
3118 __gnat_notify_handled_exception)
3119 (__gnat_notify_unhandled_exception): Adjust declarations.
3120 (PERSONALITY_FUNCTION): Adjust calls.
3121 (__gnat_personality_seh0): Remove warning.
3122
31232012-07-16 Javier Miranda <miranda@adacore.com>
3124
3125 * sem_eval.adb (Test_Expression_Is_Foldable): Adding documentation.
3126 (Eval_Relational_Op): Adding documentation.
3127
9f661339 31282012-07-16 Robert Dewar <dewar@adacore.com>
3129
3130 * freeze.adb, g-debpoo.adb, exp_ch3.adb: Minor reformatting.
3131
31322012-07-16 Thomas Quinot <quinot@adacore.com>
3133
3134 * s-oscons-tmplt.c: Add definitions of E2BIG and EILSEQ.
3135
31362012-07-16 Tristan Gingold <gingold@adacore.com>
3137
3138 * a-exexpr.adb (Propagate_Continue): New function replacing
3139 Raise_Current_Excep.
3140 (Allocate_Occurrence): New function.
3141 (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
3142 * a-exexpr-gcc.adb (GNAT_GCC_Exception): Occurrence component
3143 is now aliased.
3144 (To_GCC_Exception): Convert from Address.
3145 (Allocate_Occurrence): Allocate an Unwind exception occurrence.
3146 (Setup_Current_Excep): Fill the machine occurrence in case of
3147 foreign exception.
3148 (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
3149 * a-except.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
3150 Excep parameter.
3151 (Raise_Exception, Raise_Exception_Always,
3152 Raise_Exception_No_Defer): Adjust calls to the above procedures.
3153 (Raise_From_Signal_Handler, Raise_With_Location_And_Msg)
3154 (Rcheck_PE_Finalize_Raised_Exception): Likewise.
3155 * a-except-2005.adb (Set_Exception_C_Msg, Set_Exception_Msg):
3156 add Excep parameter.
3157 (Propagate_Exception): Likewise.
3158 (Allocate_Occurrence): New function.
3159 (Raise_Current_Excep): Removed.
3160 (Complete_Occurrence): New function to save the call chain.
3161 (Complete_And_Propagate_Occurrence): New procedure.
3162 (Create_Occurrence_From_Signal_Handler): New function to build an
3163 occurrence without propagating it.
3164 (Create_Machine_Occurrence_From_Signal_Handler): Likewise, but
3165 return the machine occurrence.
3166 (Raise_From_Signal_Handler): Use Create_Occurrence_From_Signal_Handler.
3167 (Raise_Exception, Raise_Exception_Always, Raise_Exception_No_Defer):
3168 Adjust calls to the above procedures. Allocate the occurrence at
3169 the beginning.
3170 (Raise_With_Location_And_Msg, Raise_With_Msg)
3171 (Rcheck_PE_Finalize_Raised_Exceptionm Reraise): Likewise.
3172 (Reraise_Occurrence): Use Reraise_Occurrence_Always.
3173 (Reraise_Occurrence_Always): Use Reraise_Occurrence_No_Defer.
3174 (Reraise_Occurrence_No_Defer): Preserve machine occurrence.
3175 (Save_Occurrence): Do not save machine occurrence.
3176 * a-except-2005.ads (Exception_Occurrence): Add Machine_Occurrence
3177 component.
3178 (Null_Occurrence): Consider it.
3179 * a-exexda.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
3180 Excep parameter.
3181
31822012-07-16 Tristan Gingold <gingold@adacore.com>
3183
3184 * seh_init.c (__gnat_map_SEH): New function extracted from
3185 __gnat_SEH_error_handler.
3186 * raise-gcc.c: __gnat_personality_seh0: Directly transforms
3187 Windows system exception into GCC one when possible, in order
3188 to save stack room (particularly useful when Storage_Error will
3189 be propagated).
3190
1398e762 31912012-07-16 Robert Dewar <dewar@adacore.com>
3192
3193 * a-direct.adb, g-dirope.adb: Minor reformatting.
3194
31952012-07-16 Tristan Gingold <gingold@adacore.com>
3196
3197 * a-except.ads, a-except-2005.ads: Remove outdated comment.
3198
31992012-07-16 Robert Dewar <dewar@adacore.com>
3200
3201 * sem_ch6.adb (Subprogram_Name_Greater): Fix algorithm to
3202 conform to documentation.
3203
32042012-07-16 Ed Schonberg <schonberg@adacore.com>
3205
3206 * gnat1drv.adb (Check_Library_Items): Removed, no longer used.
3207
32082012-07-16 Ed Schonberg <schonberg@adacore.com>
3209
3210 * sem_ch3.adb (Array_Type_Declaration): if component type has
3211 invariants, the array type itself requires an invariant procedure.
3212 * exp_ch3.ads, exp_ch3.adb (Build_Array_Invariant_Proc): new
3213 procedure, to build a checking procedure that applies the
3214 invariant check on some type T to each component of an array
3215 of T's. Code is similar to the construction of the init_proc
3216 for an array, and handles multidimensional arrays by recursing
3217 over successive dimensions.
3218
32192012-07-16 Hristian Kirtchev <kirtchev@adacore.com>
3220
3221 * g-debpoo.adb: Revert previous change.
3222
32232012-07-16 Hristian Kirtchev <kirtchev@adacore.com>
3224
3225 * freeze.adb (Freeze_Entity): Insert the itype reference to a
3226 library-level class-wide subtype after the freeze node of the
3227 equivalent record type.
3228
0c6c84ba 32292012-07-16 Pascal Obry <obry@adacore.com>
3230
3231 * s-crtl.ads (mkdir): New routine, support encoding.
3232 * adaint.h (__gnat_mkdir): Update spec to pass encoding.
3233 * mkdir.c (__gnat_mkdir): Add encoding parameter.
3234 * a-direct.adb (Create_Directory): Use CRTL.mkdir, parse encoding
3235 in form parameter.
3236 * g-dirope.adb (Make_Dir): Update to pass encoding parameter.
3237
32382012-07-16 Pascal Obry <obry@adacore.com>
3239
3240 * adaint.c: Minor reformatting.
3241
b9ed1410 32422012-07-16 Steven Bosscher <steven@gcc.gnu.org>
3243
3244 * gcc-interface/utils.c: Include timevar.h.
3245 * Make-lang.in: Fix dependencies.
3246
cf883842 32472012-07-16 Vasiliy Fofanov <fofanov@adacore.com>
3248
3249 * ug_words, vms_data.ads: Document VMS qualifiers for -gnatn1/2
3250 switches.
3251
32522012-07-16 Bob Duff <duff@adacore.com>
3253
3254 * sinfo.ads: Minor comment fix.
3255
32562012-07-16 Bob Duff <duff@adacore.com>
3257
3258 * sem_elab.adb (Within_Elaborate_All): Walk the with clauses to
3259 find pragmas Elaborate_All that may be found in the transitive
3260 closure of the dependences.
3261
f50256f3 32622012-07-16 Robert Dewar <dewar@adacore.com>
3263
3264 * exp_pakd.adb, freeze.adb, sem_util.adb, vms_data.ads: Minor
3265 reformatting.
3266
d0685419 32672012-07-12 Vasiliy Fofanov <fofanov@adacore.com>
3268
3269 * vms_data.ads: Add VMS qualifiers for -gnatn1/2 switches.
3270
32712012-07-12 Thomas Quinot <quinot@adacore.com>
3272
3273 * exp_ch5.adb, exp_pakd.adb, rtsfind.ads, freeze.adb, sem_util.adb,
3274 sem_util.ads, exp_aggr.adb
3275 (Exp_Aggr.Packed_Array_Aggregate_Handled): Simplify processing
3276 for reverse storage order aggregate.
3277 (Exp_Pakd.Byte_Swap): New utility routine used by...
3278 (Exp_Pakd.Expand_Bit_Packed_Element_Set,
3279 Expand_Packed_Element_Reference): For the case of a free-standing
3280 packed array with reverse storage order, perform byte swapping.
3281 (Rtsfind): Make new entities RE_Bswap_{16,32,64} available.
3282 (Freeze.Check_Component_Storage_Order): New utility routine
3283 to enforce legality rules for nested composite types whose
3284 enclosing composite has an explicitly defined Scalar_Storage_Order
3285 attribute.
3286 (Sem_Util.In_Reverse_Storage_Order_Object): Renamed from
3287 Sem_Util.In_Reverse_Storage_Order_Record, as SSO now applies to
3288 array types as well.
3289 (Exp_Ch5.Expand_Assign_Array): Remove now unnecessary kludge
3290 for change of scalar storage order in assignments. The Lhs and
3291 Rhs now always have the same scalar storage order.
3292
32932012-07-12 Hristian Kirtchev <kirtchev@adacore.com>
3294
3295 * g-debpoo.adb (Allocate): Add local constant
3296 No_Element. Initialize the allocated memory chunk to No_Element.
3297
32982012-07-12 Ed Schonberg <schonberg@adacore.com>
3299
3300 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly
3301 the case of an instance of a child unit where a formal derived
3302 type DT is an extension of a type T declared in a parent unit,
3303 and the actual in the instance of the child is the type T declared
3304 in the parent instance, and that actual is not a derived type.
3305
33062012-07-12 Eric Botcazou <ebotcazou@adacore.com>
3307 Tristan Gingold <gingold@adacore.com>
3308
3309 * system-hpux-ia64.ads: Enable ZCX by default.
3310 * gcc-interface/Makefile.in: Use alternate stack on ia64-hpux.
3311 Change soext to .so.
3312
aee191ca 33132012-07-12 Robert Dewar <dewar@adacore.com>
3314
3315 * s-atopri.adb, s-atopri.ads: Minor reformatting.
3316
33172012-07-12 Robert Dewar <dewar@adacore.com>
3318
3319 * ali.adb: Add circuitry to read new named form of restrictions lines.
3320 * debug.adb: Add doc for new -gnatd.R switch (used positional
3321 notation for output of restrictions data in ali file).
3322 * lib-writ.adb: Implement new named format for restrictions lines.
3323 * lib-writ.ads: Add documentation for new named format for
3324 restrictions in ali files.
3325 * restrict.adb, restrict.ads, sem_prag.adb: Update comments.
3326 * rident.ads: Go back to withing System.Rident
3327 * s-rident.ads: Add extensive comment on dealing with consistency
3328 checking.
3329
33302012-07-12 Thomas Quinot <quinot@adacore.com>
3331
3332 * par_sco.adb, scos.ads: Emit detailed SCOs for SELECT statements.
3333
da2e82e9 33342012-07-12 Robert Dewar <dewar@adacore.com>
3335
3336 * sem_disp.adb: Minor reformatting
3337 * s-bytswa.ads: Minor comment update.
3338
33392012-07-12 Vincent Pucci <pucci@adacore.com>
3340
3341 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
3342 Atomic_Load_N replaced by Lock_Free_Read_N. Atomic_Compare_Exchange_N
3343 replaced by Lock_Free_Try_Write_N.
3344 Renaming of several local variables. For
3345 procedure, Expected_Comp declaration moved to the declaration
3346 list of the procedure.
3347 * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
3348 RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
3349 RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
3350 RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64,
3351 RE_Atomic_Synchronize, RE_Relaxed removed. RE_Lock_Free_Read_8,
3352 RE_Lock_Free_Read_16, RE_Lock_Free_Read_32, RE_Lock_Free_Read_64,
3353 RE_Lock_Free_Try_Write_8, RE_Lock_Free_Try_Write_16,
3354 RE_Lock_Free_Try_Write_32, RE_Lock_Free_Try_Write_64 added.
3355 * s-atopri.adb: New file.
3356 * s-atopri.ads (Atomic_Compare_Exchange_8): Renaming of
3357 parameters. Import primitive __sync_val_compare_and_swap_1.
3358 (Atomic_Compare_Exchange_16): Renaming of parameters.
3359 Import primitive __sync_val_compare_and_swap_2.
3360 (Atomic_Compare_Exchange_32): Renaming of parameters.
3361 Import primitive __sync_val_compare_and_swap_4.
3362 (Atomic_Compare_Exchange_64): Renaming of parameters. Import
3363 primitive __sync_val_compare_and_swap_8.
3364 (Atomic_Load_8): Ptr renames parameter X.
3365 (Atomic_Load_16): Ptr renames parameter X.
3366 (Atomic_Load_32): Ptr renames parameter X.
3367 (Atomic_Load_64): Ptr renames parameter X.
3368 (Lock_Free_Read_8): New routine.
3369 (Lock_Free_Read_16): New routine.
3370 (Lock_Free_Read_32): New routine.
3371 (Lock_Free_Read_64): New routine.
3372 (Lock_Free_Try_Write_8): New routine.
3373 (Lock_Free_Try_Write_16): New routine.
3374 (Lock_Free_Try_Write_32): New routine.
3375 (Lock_Free_Try_Write_64): New routine.
3376
10381db1 33772012-07-12 Robert Dewar <dewar@adacore.com>
3378
3379 * exp_attr.adb, exp_ch9.adb, sem_ch9.adb, exp_aggr.adb: Minor
3380 reformatting.
3381
33822012-07-12 Vincent Pucci <pucci@adacore.com>
3383
3384 * sem_dim.adb (Analyze_Dimension_Function_Call): Reformatting of error
3385 msgs for elementary functions.
3386
33872012-07-12 Vincent Pucci <pucci@adacore.com>
3388
3389 * sem_attr.adb (Eval_Attribute): Minor reformatting.
3390
33912012-07-12 Pascal Obry <obry@adacore.com>
3392
3393 * prj-nmsc.adb (Check_Library_Attributes): Allow the same library
3394 project in different project tree (different aggregated projects).
3395
33962012-07-12 Thomas Quinot <quinot@adacore.com>
3397
3398 * s-bytswa.adb, g-bytswa.adb, g-bytswa.ads, s-bytswa.ads: Further
3399 reorganization of byte swapping routines.
3400
34012012-07-12 Ed Schonberg <schonberg@adacore.com>
3402
3403 * sem_disp.adb (Check_Dispatching_Context): Refine legality
3404 checks on tagg indeterminate calls to abstract operations,
3405 that appear in the context of other calls.
3406
d0a9ea3b 34072012-07-12 Thomas Quinot <quinot@adacore.com>
3408
3409 * s-bytswa.adb (Swapped2.Bswap16): Remove local function,
3410 no longer needed.
3411
34122012-07-12 Javier Miranda <miranda@adacore.com>
3413
3414 * exp_attr.adb (Expand_N_Attribute_Reference): For
3415 attributes 'access, 'unchecked_access and 'unrestricted_access,
3416 iff the current instance reference is located in a protected
3417 subprogram or entry then rewrite the access attribute to be the
3418 name of the "_object" parameter.
3419
34202012-07-12 Tristan Gingold <gingold@adacore.com>
3421
3422 * raise.h: Revert previous patch: structure is used in init.c
3423 by vms.
3424
34252012-07-12 Vincent Celier <celier@adacore.com>
3426
3427 * make.adb (Binding_Phase): If --subdirs was used, but not
3428 -P, change the working directory to the specified subdirectory
3429 before invoking gnatbind.
3430 (Linking_Phase): If --subdirs was used, but not -P, change the working
3431 directory to the specified subdirectory before invoking gnatlink.
3432
34332012-07-12 Vincent Pucci <pucci@adacore.com>
3434
3435 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
3436 For a procedure, instead of replacing each Comp reference by a
3437 reference to Current_Comp, make a renaming Comp of Current_Comp
3438 that rewrites the original renaming generated by the compiler
3439 during the analysis. Move the declarations of the procedure
3440 inside the generated block.
3441 (Process_Stmts): Moved in the body
3442 of Build_Lock_Free_Unprotected_Subprogram_Body.
3443 (Process_Node):
3444 Moved in the body of Build_Lock_Free_Unprotected_Subprogram_Body.
3445 * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict any
3446 non-elementary out parameters in protected procedures.
3447
34482012-07-12 Thomas Quinot <quinot@adacore.com>
3449
3450 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
3451 Scalar_Storage_Order): Attribute applies to base type only.
3452
9e6a9b40 34532012-07-12 Ed Schonberg <schonberg@adacore.com>
3454
3455 * exp_aggr.adb (Convert_To_Positional): Increase acceptable size
3456 of static aggregate when Static_Elaboration_Desired is requested.
3457 Add a warning if the request cannot be satisfied either because
3458 some components or some array bounds are non-static.
3459
34602012-07-12 Thomas Quinot <quinot@adacore.com>
3461
3462 * exp_pakd.adb: Minor reformatting.
3463
34642012-07-12 Tristan Gingold <gingold@adacore.com>
3465
3466 * tracebak.c: Fix warnings.
3467 * raise-gcc.c (__gnat_adjust_context): New function
3468 (__gnat_personality_seh0): Call __gnat_adjust_context to adjust
3469 PC in machine frame for exceptions that occur in the current
3470 function.
3471
34722012-07-12 Thomas Quinot <quinot@adacore.com>
3473
3474 * g-bytswa.adb, g-bytswa.ads, s-bytswa.adb, s-bytswa.ads, Makefile.rtl:
3475 Move GNAT.Byte_Swapping to System (with a renaming under GNAT)
3476 so that it is usable in expanded code.
3477
34782012-07-12 Tristan Gingold <gingold@adacore.com>
3479
3480 * s-osinte-hpux.ads: Increase alternate stack size on hpux.
3481
f893f3ac 34822012-07-12 Javier Miranda <miranda@adacore.com>
3483
3484 * exp_ch3.adb (Make_Neq_Body): Fix typo in comment.
3485
34862012-07-12 Eric Botcazou <ebotcazou@adacore.com>
3487
3488 * tb-gcc.c (trace_callback): On IA-64/HP-UX, use workaround only
3489 if USE_LIBUNWIND_EXCEPTIONS is defined.
3490 * init.c: Further tweaks for IA-64/HP-UX.
3491
34922012-07-12 Tristan Gingold <gingold@adacore.com>
3493
3494 * raise-gcc.c: Do not include unwind-dw2-fde.h. Adjust comments.
3495 (db_region_for): Second argument is ip. Do not recompute ip.
3496 (action_kind): Remove typedef, add unhandler enum const.
3497 (action_descriptor): Adjust type of kind field.
3498 (db_action_for): Second argument is ip, do not recompute it.
3499 (get_call_site_action_for): First argument is call_site, do not
3500 recompute it. Remove useless return.
3501 (is_handled_by): Now return enum action_kind.
3502 Handle GNAT_ALL_OTHERS first.
3503 Return unhandler for GNAT_UNHANDLED_OTHERS.
3504 (get_action_description_for): First argument is now ip, do not
3505 recompute it. Adjust code for call to is_handled_by.
3506 (__gnat_notify_unhandled_exception): Add prototype.
3507 (PERSONALITY_FUNCTION): Call get_ip_from_context. Adjust calls.
3508 Handle unhandler case.
3509 (__gnat_cleanupunwind_handler): Add comments, add
3510 ATTRIBUTE_UNUSED on arguments.
3511 (__gnat_Unwind_RaiseException, __gnat_Unwind_ForcedUnwind): Define
3512 only once.
3513 * raise.h: Makes struct Exception_Data opaque.
3514
addebd97 35152012-07-12 Robert Dewar <dewar@adacore.com>
3516
3517 * make.adb, sem_ch9.adb, prj.adb, s-rident.ads, snames.ads-tmpl: Minor
3518 reformatting.
3519
35202012-07-12 Javier Miranda <miranda@adacore.com>
3521
3522 * exp_ch3.adb (Is_User_Defined_Equality): New subprogram.
3523 (Make_Neq_Body): New subprogram.
3524 (Make_Predefined_Primitive_Specs): Adding local variable
3525 Has_Predef_Eq_ Renaming to ensure that we enable the machinery
3526 which handles renamings of predefined primitive operators.
3527
3bf14af0 35282012-07-09 Pascal Obry <obry@adacore.com>
3529
3530 * prj.adb (For_Every_Project_Imported_Context): Make sure we
3531 callback with the project having sources.
3532 Minor reformatting.
3533
35342012-07-09 Eric Botcazou <ebotcazou@adacore.com>
3535
3536 * make.adb: Fix typo.
3537
155cbed1 35382012-07-09 Vincent Pucci <pucci@adacore.com>
3539
3540 * sem_ch9.adb (Check_Node): Allow attributes
3541 that denote static function for lock-free implementation.
3542 (Is_Static_Function): New routine.
3543
35442012-07-09 Tristan Gingold <gingold@adacore.com>
3545
3546 * tracebak.c: Adjust skip_frames on Win64.
3547
35482012-07-09 Tristan Gingold <gingold@adacore.com>
3549
3550 * init.c: Add __gnat_adjust_context_for_raise for ia64/hpux.
3551 * raise-gcc.c: __gnat_cleanupunwind_handler: Do not call
3552 _Unwind_GetGR on hpux when using libgcc unwinder. Part of
3553
35542012-07-09 Vincent Pucci <pucci@adacore.com>
3555
3556 * exp_attr.adb, sem_attr.adb: Minor reformatting.
3557 * par-ch13.adb, par-ch4.adb, par-util.adb: Reformatting
3558 considering that internal attribute names are not defined anymore
3559 in the main attribute names list.
3560 * snames.adb-tmpl (Get_Attribute_Id): Special processinf
3561 for names CPU, Dispatching_Domain and Interrupt_Priority.
3562 (Is_Internal_Attribute_Name): Minor reformatting.
3563 * snames.ads-tmpl: New list of internal attribute names. Internal
3564 attributes moved at the end of the attribute Id list.
3565
1f526845 35662012-07-09 Robert Dewar <dewar@adacore.com>
3567
3568 * freeze.adb: Minor code reorganization (use Ekind_In).
3569 * exp_attr.adb, sem_ch9.adb par-ch4.adb, s-taprop-mingw.adb,
3570 sem_attr.adb, exp_ch8.adb, snames.adb-tmpl, par-util.adb,
3571 sem_ch13.adb, snames.ads-tmpl: Minor reformatting.
3572
35732012-07-09 Tristan Gingold <gingold@adacore.com>
3574
3575 * raise-gcc.c: Adjust previous patch.
3576
35772012-07-09 Vincent Celier <celier@adacore.com>
3578
3579 * make.adb (Compilation_Phase): Do not build libraries in
3580 Codepeer mode (do not call Library_Phase).
3581
e2f8db26 35822012-07-09 Ed Schonberg <schonberg@adacore.com>
3583
3584 * sem_ch13.adb: Extend previous change to elementary types.
3585
35862012-07-09 Javier Miranda <miranda@adacore.com>
3587
3588 * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Reverse
3589 previous patch since unconditionally handling as renaming_as_body
3590 renamings of predefined dispatching equality and unequality operator
3591 cause visibility problems with private overridings of the equality
3592 operator (see ACATS C854001).
3593
35942012-07-09 Vincent Pucci <pucci@adacore.com>
3595
3596 * exp_attr.adb (Signal_Bad_Attribute): Raise Program_Error in
3597 case of internal attribute names (already rejected by the parser).
3598 * par-ch13.adb (P_Representation_Clause): Complain if an internal
3599 attribute name that comes from source occurs.
3600 * par-ch4.adb (P_Name): Complain if an internal attribute name
3601 occurs in the context of an attribute reference.
3602 * par-util.adb (Signal_Bad_Attribute): Don't complain about
3603 mispelling attribute with internal attributes.
3604 * sem_attr.adb (Analyze_Attribute): Raise Program_Error in case
3605 of internal attribute names (already rejected by the parser).
3606 * snames.adb-tmpl (Is_Internal_Attribute_Name): New routine.
3607 * snames.ads-tmpl: Attributes CPU, Dispatching_Domain and
3608 Interrupt_Priority are marked as INT attributes since they
3609 don't denote real attribute and are only used internally in
3610 the compiler.
3611 (Is_Internal_Attribute_Name): New routine.
3612
f117057b 36132012-07-09 Thomas Quinot <quinot@adacore.com>
3614
3615 * einfo.adb (Set_Reverse_Storage_Order): Update assertion,
3616 flag is now valid for array types as well.
3617
36182012-07-09 Tristan Gingold <gingold@adacore.com>
3619
3620 * tracebak.c: Implement __gnat_backtrace for Win64 SEH.
3621
36222012-07-09 Robert Dewar <dewar@adacore.com>
3623
3624 * einfo.ads: Minor reformatting.
3625
36262012-07-09 Javier Miranda <miranda@adacore.com>
3627
3628 * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Handle as
3629 renaming_as_body renamings of predefined dispatching equality
3630 and unequality operators.
3631
36322012-07-09 Robert Dewar <dewar@adacore.com>
3633
3634 * rident.ads: Do not instantiate r-ident.ads, this is now an
3635 independent unit.
3636
36372012-07-09 Javier Miranda <miranda@adacore.com>
3638
3639 * exp_disp.adb (Write_DT): Avoid runtime crash of this debugging
3640 routine.
3641 * sem_disp.adb (Find_Dispatching_Time): Protect this routine
3642 against partially decorated entities.
3643
36442012-07-09 Ed Schonberg <schonberg@adacore.com>
3645
3646 * sem_ch13.adb (Check_Size): Reject a size clause that specifies
3647 a value greater than Int'Last for a scalar type.
3648
36492012-07-09 Vincent Pucci <pucci@adacore.com>
3650
3651 * sem_ch9.adb (Allows_Lock_Free_Implementation): type must support
3652 atomic operation moved to the protected body case. No non-elementary
3653 out parameter moved to the protected declaration case. Functions have
3654 only one lock-free restriction.
3655 (Analyze_Protected_Type_Declaration): Issue a warning when
3656 Priority given with Lock_Free.
3657
36582012-07-09 Vincent Pucci <pucci@adacore.com>
3659
3660 * sem_dim.adb: Grammar of aspect Dimension fixed.
3661
36622012-07-09 Vincent Pucci <pucci@adacore.com>
3663
3664 * freeze.adb (Freeze_Record_Type): Code reorg in order to avoid
3665 pushing and popping the scope stack whenever a delayed aspect occurs.
3666
36672012-07-09 Gary Dismukes <dismukes@adacore.com>
3668
3669 * s-os_lib.ads: Remove pragma Elaborate_Body, as
3670 this is now unnecessary due to recently added pragma Preelaborate.
3671
36722012-07-09 Jose Ruiz <ruiz@adacore.com>
3673
3674 * s-taprop-mingw.adb (Set_Priority): Remove the code that was
3675 previously in place to reorder the ready queue when a task drops
3676 its priority due to the loss of inherited priority.
3677
b43a5770 36782012-07-09 Robert Dewar <dewar@adacore.com>
3679
3680 * layout.adb, i-cstrea.ads, a-ststio.ads, prj-util.ads, sem_cat.adb,
3681 s-commun.ads, s-ficobl.ads, s-os_lib.ads, s-fileio.ads: Minor
3682 reformatting.
3683
36842012-07-09 Eric Botcazou <ebotcazou@adacore.com>
3685
3686 * raise-gcc.c: Update comments. Fix typo.
3687
36882012-07-09 Thomas Quinot <quinot@adacore.com>
3689
3690 * einfo.adb, einfo.ads, sem_attr.adb, sem_ch13.adb: Attribute
3691 Scalar_Storage_Order can be defined or queried for array types as well
3692 as record types.
3693
a940e5c9 36942012-07-09 Tristan Gingold <gingold@adacore.com>
3695
3696 * a-exexpr-gcc.adb (CleanupUnwind_Handler): Now imported from
3697 raise-gcc.c
3698 * raise-gcc.c (__gnat_cleanupunwind_handler): Defined.
3699 Strictly follow the ABI convention on ia64.
3700
37012012-07-09 Gary Dismukes <dismukes@adacore.com>
3702
3703 * a-ststio.ads: Add pragma Preelaborate, per AI05-0283.
3704 * i-cstrea.ads (max_path_len): Change from variable to deferred
3705 constant to allow it to be used as a bound in string component
3706 in type System.File_IO.Temp_File_Record.
3707 * s-os_lib.ads, s-commun.ads, s-ficobl.ads, s-fileio.ads: Add pragma
3708 Preelaborate.
3709 * s-fileio.adb (Get_Case_Sensitive): Move function inside
3710 procedure Open.
3711 (File_Names_Case_Sensitive): Move variable inside
3712 procedure Open, to avoid violation of Preelaborate restriction
3713 (due to call to Get_Case_Sensitive).
3714
37152012-07-09 Ed Schonberg <schonberg@adacore.com>
3716
3717 * layout.adb (Set_Elem_Alignment): Protect against meaningless
3718 size clause, to prevent overflow in internal computation of
3719 alignment.
3720
6b34a333 37212012-07-09 Robert Dewar <dewar@adacore.com>
3722
3723 * freeze.adb, prj-util.adb, prj-util.ads, sem_ch13.adb: Minor
3724 reformatting.
3725
37262012-07-09 Gary Dismukes <dismukes@adacore.com>
3727
3728 * sem_cat.adb (Check_Categorization_Dependencies):
3729 Allow dependence of both Remote_Types and Remote_Call_Interface
3730 declarations (not just Remote_Types units) on preelaborated
3731 units, but require that the dependence be made via a private
3732 with_clause. Issue a specialized error message.
3733
960a0aad 37342012-07-09 Pascal Obry <obry@adacore.com>
3735
3736 * prj-util.adb, prj-util.ads (For_Interface_Sources): New routine.
3737
84ed7523 37382012-07-09 Tristan Gingold <gingold@adacore.com>
3739
3740 * seh_init.c (__gnat_SEH_error_handler): On Win64 and SEH,
3741 return for unknown exceptions.
3742 * raise-gcc.c (__gnat_personality_seh0): Call __gnat_SEH_error_handler.
3743
37442012-07-09 Joel Brobecker <brobecker@adacore.com brobecker>
3745
3746 * exp_dbug.ads (No_Dollar_In_Label): Delete.
3747
37482012-07-09 Vincent Pucci <pucci@adacore.com>
3749
3750 * sem_ch13.adb (Check_Overloaded_Name): New routine.
3751
37522012-07-09 Vincent Pucci <pucci@adacore.com>
3753
3754 * freeze.adb (Freeze_Record_Type): Analyze the delayed aspects of the
3755 components in a record type.
3756
37572012-07-09 Pascal Obry <obry@adacore.com>
3758
3759 * prj-util.ads: Minor reformatting.
3760
00c092f4 37612012-07-09 Tristan Gingold <gingold@adacore.com>
3762
3763 * raise-gcc.c (db_indent): Simplify style, improve comments.
3764 Remove !IN_RTS part (dead).
3765
37662012-07-09 Robert Dewar <dewar@adacore.com>
3767
3768 * usage.adb: Minor change to format of -gnatn line.
3769
37702012-07-09 Tristan Gingold <gingold@adacore.com>
3771
3772 * a-exexpr-gcc.adb: Reorder routine.
3773
e4c87fa5 37742012-07-09 Vincent Celier <celier@adacore.com>
3775
3776 * lib-writ.ads: Add documentation for the Z lines (implicitly
3777 withed units) and Y lines (limited withed units).
3778
37792012-07-09 Robert Dewar <dewar@adacore.com>
3780
3781 * lib.ads, exp_attr.adb, exp_ch9.adb, sem_dim.adb, sem_ch9.adb,
3782 sem_prag.adb, sem_ch12.adb, mlib-utl.adb, freeze.adb, sem_res.adb,
3783 sem_attr.adb, sem_case.adb, gnatlink.adb, exp_ch4.adb, sem_ch6.adb,
3784 sem_elim.adb, s-dimmks.ads, sem_ch13.adb: Minor code clean ups.
3785
37862012-07-09 Eric Botcazou <ebotcazou@adacore.com>
3787
3788 * gnat_ugn.texi (Switches for gcc): Document -gnatn[12] only
3789 lightly in the summary and more thoroughly in inlining section.
3790 (Performance Considerations): Document -gnatn[12] in inlining
3791 section.
3792
37932012-07-09 Tristan Gingold <gingold@adacore.com>
3794
3795 * a-exexpr-gcc.adb (Unhandled_Except_Handler): New procedure.
3796 (Unhandled_Others_Value): New const.
3797 * raise-gcc.c (GNAT_UNHANDLED_OTHERS): Define.
3798 (action_descriptor): Remove ttype_entry.
3799 (get_action_description_for): Do not assign ttype_entry.
3800 (is_handled_by): Consider GNAT_UNHANDLED_OTHERS.
3801
c1a30d6c 38022012-07-03 Eric Botcazou <ebotcazou@adacore.com>
3803
3804 * gcc-interface/trans.c (Call_to_gnu): Robustify test for function case
3805 if the CICO mechanism is used.
3806
0ceb8ef3 38072012-07-03 Eric Botcazou <ebotcazou@adacore.com>
3808
3809 * gcc-interface/utils2.c (build_simple_component_ref): Do not look
3810 through an extension if the type contains a placeholder.
3811
265200d0 38122012-07-03 Eric Botcazou <ebotcazou@adacore.com>
3813
3814 * exp_disp.adb (Expand_Dispatching_Call): Propagate the convention on
3815 the designated subprogram type and also set Is_Dispatch_Table_Entity.
3816 (Expand_Interface_Thunk): Propagate the convention on the thunk.
3817 (Set_CPP_Constructors_Old): Set Is_Constructor and Convention_CPP on
3818 the internal view of the constructors.
3819 (Set_CPP_Constructors): Likewise.
3820 * sem_prag.adb (Analyze_Pragma) <Pragma_CPP_Constructor>: Set the
3821 convention on the function.
3822 * gcc-interface/gigi.h (is_cplusplus_method): Declare.
3823 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
3824 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the `thiscall'
3825 calling convention
3826 (get_minimal_subprog_decl): Likewise.
3827 (is_cplusplus_method): New predicate.
3828 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Issue an
3829 error on access to C++ constructor or member function.
3830
66f0b044 38312012-07-03 Eric Botcazou <ebotcazou@adacore.com>
3832
3833 * gcc-interface/utils.c (gnat_pushdecl): Set TYPE_CONTEXT for types
3834 attached to a TYPE_DECL.
3835
06ef5f86 38362012-06-26 Vincent Pucci <pucci@adacore.com>
3837
3838 * exp_ch3.adb (Build_Init_Statements): Don't check the parents
3839 in the Rep Item Chain of the task for aspects Interrupt_Priority,
3840 Priority, CPU and Dispatching_Domain.
3841 * exp_ch9.adb (Expand_N_Task_Type_Declaration): fields _Priority,
3842 _CPU and _Domain are present in the corresponding record type
3843 only if the task entity has a pragma, attribute definition
3844 clause or aspect specification.
3845 (Make_Initialize_Protection): Don't check the parents in the Rep Item
3846 Chain of the task for aspects Interrupt_Priority, Priority, CPU and
3847 Dispatching_Domain.
3848 * freeze.adb (Freeze_Entity): Use of Evaluate_Aspects_At_Freeze_Point
3849 call replaced by Analyze_Aspects_At_Freeze_Point.
3850 * sem_ch13.adb, sem_ch13.ads (Analyze_Aspects_At_Freeze_Point):
3851 Renaming of Evaluate_Aspects_At_Freeze_Point.
3852
38532012-06-26 Yannick Moy <moy@adacore.com>
3854
3855 * sem_attr.adb (Analyze_Attribute): Detect if 'Old is used outside a
3856 postcondition, and issue an error in such a case.
3857
38582012-06-26 Yannick Moy <moy@adacore.com>
3859
3860 * gnat_rm.texi: Minor editing.
3861
38622012-06-26 Tristan Gingold <gingold@adacore.com>
3863
3864 * raise-gcc.c: Minor cleanup: remove unused prototype.
3865 * seh_init.c: Do not create an image wide unwind info to catch
3866 SEH when SEH unwind info are emitted by the compiler.
3867
367b1459 38682012-06-19 Steven Bosscher <steven@gcc.gnu.org>
3869
3870 * gcc-interface/trans.c: Include target.h.
3871 (gigi): Try to put out .ident with targetm.asm_out.output_ident.
3872 Remove uses of ASM_OUTPUT_IDENT.
3873 * gcc-interface/Make-lang.in: Fix dependencies.
3874
ffda9ae3 38752012-06-15 Eric Botcazou <ebotcazou@adacore.com>
3876
3877 PR ada/53592
3878 * gcc-interface/gigi.h (maybe_vector_array): Make static inline.
3879 * gcc-interface/utils.c (maybe_vector_array): Delete.
3880 * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the
3881 array object as addressable if it has vector type and is on the LHS.
3882
bc0dfc8d 38832012-06-15 Eric Botcazou <ebotcazou@adacore.com>
3884
3885 PR middle-end/53590
3886 * gcc-interface/misc.c (gnat_init_options_struct): Set
3887 opts->x_flag_delete_dead_exceptions to 1.
3888
d3544834 38892012-06-14 Jose Ruiz <ruiz@adacore.com>
3890
3891 * gcc-interface/Make-lang.in (ada.install-common, ada.uninstall):
3892 Use the prefix specified with the --program-prefix configure option
3893 to determine the install name of the Ada tools.
3894 (ada.all.cross): Use a for loop to iterate over the set of Ada tools
3895 instead of duplicate the same processing.
3896 Update dependencies.
3897
2b184b2f 38982012-06-14 Vincent Pucci <pucci@adacore.com>
3899
3900 * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_Symbol
3901 call replaced by Expand_Put_Call_With_Symbol call.
3902 * sem_dim.adb: New fields Unit_Names, Unit_Symbols
3903 and Dim_Symbols for record type System_Type.
3904 (From_Dimension_To_String_Of_Symbols): Removed.
3905 (From_Dim_To_Str_Of_Dim_Symbols): Renames previous
3906 routine From_Dimension_To_String_Of_Symbols.
3907 (From_Dim_To_Str_Of_Unit_Symbols): New routine.
3908 (Analyze_Aspect_Dimension): argument Symbol in aspect
3909 Dimension aggregate is optional. Named association implemented.
3910 (Has_Compile_Time_Known_Expressions): Removed.
3911 (Analyze_Aspect_Dimension_System): New
3912 component Dim_Symbol in each Dimension aggregate in
3913 aspect Dimension_System. Named associations implemented.
3914 (Add_Dimension_Vector_To_Buffer): Removed.
3915 (Add_Whole_To_Buffer): Removed.
3916 (Expand_Put_Call_With_Dimension_Symbol.): Removed.
3917 (Expand_Put_Call_With_Symbol): Renames previous routine
3918 Expand_Put_Call_With_Dimension_Symbol.
3919 (Has_Dimension_Symbols): Removed.
3920 (Has_Symbols): Renames previous routine
3921 Has_Dimension_Symbols. (Store_String_Oexpon): New routine.
3922 * sem_dim.ads (Expand_Put_Call_With_Dimension_Symbol.): Removed.
3923 (Expand_Put_Call_With_Symbol): Renames previous routine
3924 Expand_Put_Call_With_Dimension_Symbol.
3925 * s-diflio.adb, s-diinio.adb (Put): Symbol renames Symbols.
3926 (Put_Dim_Of): New routines.
3927 * s-diflio.ads, s-diinio.ads: documentation updated.
3928 (Put): Symbol renames Symbols.
3929 (Put_Dim_Of): New routines.
3930 * s-dim.ads: documentation updated.
3931 * s-dimmks.ads: dimensioned type and subtypes updated.
3932 * snames.ads-tmpl: Name_Dim_Symbol, Name_Put_Dim_Of, Name_Symbol,
3933 and Name_Unit_Symbol added. Name_Symbols removed.
3934
39352012-06-14 Vincent Pucci <pucci@adacore.com>
3936
3937 * freeze.adb (In_Exp_Body): Expression function case added.
3938 (Freeze_Expression): Insert the Freeze_Nodes
3939 list before the correct current scope in case of a quantified
3940 expression.
3941
39422012-06-14 Pascal Obry <obry@adacore.com>
3943
3944 * projects.texi: Document the Install package for gprinstall.
39452012-06-14 Ed Schonberg <schonberg@adacore.com>
3946
3947 * sem_elim.adb (Check_For_Eliminated_Subprogram): Do not check within
3948 a default expression.
3949 * sem_res.adb (Resolve_Call): simplify code.
3950
39512012-06-14 Ed Schonberg <schonberg@adacore.com>
3952
3953 * sem_case.adb (Check, Issue_Msg): within an instance, non-other
3954 values in a variant part or a case expression do not have to
3955 belong to the actual subtype.
3956
39572012-06-14 Ed Schonberg <schonberg@adacore.com>
3958
3959 * sem_ch12.adb (Validate_Derived_Type_Instance): If parent is
3960 an interface type, check whether it is itself a previous formal
3961 already instantiated in the current list of actuals.
3962
39632012-06-14 Ed Schonberg <schonberg@adacore.com>
3964
3965 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): The
3966 expression for a stream attribute is a name that may be overloaded
3967 with other declarations. To determine whether it matches the
3968 aspect at the freeze point, it is necessary to verify that one
3969 of its interpretations matches.
3970
caf125ce 39712012-06-14 Robert Dewar <dewar@adacore.com>
3972
3973 * exp_ch7.adb, exp_util.adb, sem_aux.ads, exp_ch9.adb,
3974 sem_ch10.adb, freeze.adb, sem_util.adb, exp_ch4.adb,
3975 s-taprop-dummy.adb: Minor reformatting.
3976
39772012-06-14 Vincent Pucci <pucci@adacore.com>
3978
3979 * exp_attr.adb (Expand_N_Attribute_Reference): Lock_Free
3980 attribute case added.
3981 * par-prag.adb (Prag): Lock_Free pragma case added.
3982 * sem_attr.adb (Analyze_Attribute_Reference): Lock_Free attribute
3983 case added.
3984 * sem_ch13.adb (Analyze_Aspect_Specifications): Record_Rep_Item
3985 call added for Aspect_Lock_Free.
3986 * sem_ch9.adb (Allows_Lock_Free_Implementation): New Lock_Free
3987 error messages for subprogram bodies.
3988 (Lock_Free_Disabled): New routine.
3989 (Analyze_Protected_Body): Call to Lock_Free_Disabled added.
3990 * sem_prag.adb (Analyze_Pragma): Lock_Free pragma case added.
3991 * snames.adb-tmpl (Get_Pragma_Id): Name_Lock_Free case added.
3992 (Is_Pragma_Name): Name_Lock_Free case added.
3993 * snames.ads-tmpl: Attribute_Lock_Free and Pragma_Lock_Free added.
3994
39952012-06-14 Ed Schonberg <schonberg@adacore.com>
3996
3997 * a-coorma.adb, a-cborma.adb, a-cbhama.adb, a-ciorma.adb: Add missing
3998 aliased keyword.
3999
40002012-06-14 Bob Duff <duff@adacore.com>
4001
4002 * lib.ads, lib.adb, sem.adb (Write_Unit_Info): Move this
4003 procedure from Sem body to Lib spec, so it can be used for
4004 debugging elsewhere.
4005
40062012-06-14 Ed Schonberg <schonberg@adacore.com>
4007
4008 * sem_ch6.adb (Check_Conformance): Add Ada 2012 check on mode
4009 conformance: "aliased" must apply to both or neither formal
4010 parameters.
4011
2fec2b51 40122012-06-14 Gary Dismukes <dismukes@adacore.com>
4013
4014 * exp_ch9.adb: Minor reformatting.
4015
40162012-06-14 Thomas Quinot <quinot@adacore.com>
4017
4018 * freeze.adb (Freeze_Record_Type): Warn about useless bit order
4019 specification [when there's no component clause] regardless
4020 of whether the specified bit order is reversed or not.
4021
40222012-06-14 Tristan Gingold <gingold@adacore.com>
4023
4024 * raise-gcc.c (__gnat_personality_seh0): New function.
4025
40262012-06-14 Tristan Gingold <gingold@adacore.com>
4027
4028 * gnatname.adb (Gnatname): Make sure that dynamic table
4029 argument_data is initialized.
4030
40312012-06-14 Robert Dewar <dewar@adacore.com>
4032
4033 * sem_aux.adb: Minor code reorganization.
4034
89b3b365 40352012-06-14 Vincent Pucci <pucci@adacore.com>
4036
4037 * einfo.adb einfo.ads (Get_Rep_Item): Removed.
4038 (Get_Rep_Item_For_Entity): Removed.
4039 (Get_Rep_Pragma): Removed.
4040 (Get_Rep_Pragma_For_Entity): Removed.
4041 (Has_Rep_Item): Removed.
4042 (Has_Rep_Pragma): Removed.
4043 (Has_Rep_Pragma_For_Entity): Removed.
4044 * exp_ch9.adb (Expand_N_Task_Type_Declaration):
4045 Has_Rep_Pragma_For_Entity replaced by Has_Rep_Pragma
4046 and Get_Rep_Pragma_For_Entity replaced by Get_Rep_Pragma.
4047 (Make_Task_Create_Call): Has_Rep_Pragma_For_Entity replaced
4048 by Has_Rep_Pragma and Get_Rep_Pragma_For_Entity replaced by
4049 Get_Rep_Pragma.
4050 * exp_intr.adb: Dependency to Sem_Aux added for call to Get_Rep_Pragma.
4051 * sem_aux.adb (Get_Rep_Item): New routine.
4052 (Get_Rep_Pragma): New routine.
4053 (Has_Rep_Item): New routine.
4054 (Has_Rep_Pragma): New routine.
4055 (Nearest_Ancestor): Minor reformatting.
4056 * sem_aux.ads (Get_Rep_Item): New routine.
4057 (Get_Rep_Pragma): New routine.
4058 (Has_Rep_Item): New routine.
4059 (Has_Rep_Pragma): New routine.
4060 * sem_ch13.adb (Duplicate_Clause): Restore original error messages.
4061 * sem_eval.adb (Subtypes_Statically_Match): Get_Rep_Item_For_Entity
4062 replaced by Get_Rep_Item.
4063 * sem_prag.adb (Analyze_Pragma): Restore original error messages.
4064 (Check_Duplicate_Pragma): Restore original error messages.
4065
714e7f2d 40662012-06-14 Ed Schonberg <schonberg@adacore.com>
4067
4068 * sem_util.adb (Is_Object_Reference): in Ada 2012, qualified
4069 expressions are valid names.
4070
40712012-06-14 Ed Schonberg <schonberg@adacore.com>
4072
4073 * sem_ch10.adb (Analyze_Compilation_Unit): If the unit is an
4074 instantiation do not emit warnings for obsolescent units. The
4075 warnings belong on the corresponding generic.
4076
40772012-06-14 Hristian Kirtchev <kirtchev@adacore.com>
4078
4079 * einfo.adb: Update the usage of Node15.
4080 (Return_Flag_Or_Transient_Decl): Removed.
4081 (Set_Return_Flag_Or_Transient_Decl): Removed.
4082 (Set_Status_Flag_Or_Transient_Decl): New routine.
4083 (Status_Flag_Or_Transient_Decl): New routine.
4084 (Write_Field15_Name): Update the output for variables and constants.
4085 * einfo.ads: Remove attribute
4086 Return_Flag_Or_Transient_Decl along with occurrences in nodes.
4087 (Return_Flag_Or_Transient_Decl): Removed along with pragma Inline.
4088 (Set_Return_Flag_Or_Transient_Decl): Removed along with pragma Inline.
4089 (Set_Status_Flag_Or_Transient_Decl): New routine along with pragma
4090 Inline.
4091 (Status_Flag_Or_Transient_Decl): New routine along with pragma Inline.
4092 * exp_ch4.adb (Create_Alternative): New routine.
4093 (Expand_N_Conditional_Expression): Handle the case
4094 where at least one of the conditional expression
4095 alternatives prodices a controlled temporary by means of a function
4096 call.
4097 (Is_Controlled_Function_Call): New routine.
4098 (Process_Transient_Object): Update the call to
4099 Set_Return_Flag_Or_Transient_Decl.
4100 * exp_ch6.adb (Enclosing_Context): New routine.
4101 (Expand_N_Extended_Return_Statement): Update all calls to
4102 Set_Return_Flag_Or_Transient_Decl.
4103 (Expand_Ctrl_Function_Call): Prohibit the finalization of a controlled
4104 function result when the context is a conditional expression.
4105 * exp_ch7.adb (Process_Declarations): Update all calls to
4106 Return_Flag_Or_Transient_Decl. Add processing for intermediate
4107 results of conditional expressions where one of the alternatives
4108 uses a controlled function call.
4109 (Process_Object_Declaration): Update all calls to
4110 Return_Flag_Or_Transient_Decl and rearrange the logic to process
4111 "hook" objects first.
4112 (Process_Transient_Objects): Update the call to
4113 Set_Return_Flag_Or_Transient_Decl.
4114 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean,
4115 Boolean)): Update all calls to Return_Flag_Or_Transient_Decl. Add
4116 detection for intermediate results of conditional expressions
4117 where one of the alternatives uses a controlled function call.
4118
39854e56 41192012-06-13 Eric Botcazou <ebotcazou@adacore.com>
ab19f7e4 4120
39854e56 4121 Revert
4122 2012-05-19 Eric Botcazou <ebotcazou@adacore.com>
4123
4124 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
4125 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
4126 calling convention
4127 (get_minimal_subprog_decl): Likewise.
4128 (gnat_first_param_is_class): New predicate.
ab19f7e4 4129
17631aa0 41302012-06-12 Robert Dewar <dewar@adacore.com>
4131
4132 * gcc-interface/Make-lang.in: Update dependencies.
4133 * sem_ch9.ads, einfo.adb, einfo.ads, sem_prag.adb, freeze.adb,
4134 sem_util.adb, sem_ch13.adb, sem_ch13.ads, exp_ch3.adb: Add comments.
4135 Minor reformatting.
4136
41372012-06-12 Ed Schonberg <schonberg@adacore.com>
4138
4139 * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove code that
4140 implements AI05-0296, because the actual may be overloaded.
4141 * sem_ch8.adb (Analyze_Subprogram_Renaming): and move it here,
4142 to be applied once the actual subprogram is properly resolved.
4143
89f1e35c 41442012-06-12 Robert Dewar <dewar@adacore.com>
4145
4146 * switch-c.adb, a-exexpr-gcc.adb: Minor reformatting.
4147
41482012-06-12 Vincent Pucci <pucci@adacore.com>
4149
4150 * checks.adb (Tag_Checks_Suppressed): Remove Kill_Tag_Checks check.
4151 * einfo.adb (Universal_Aliasing): Apply to the implementation
4152 base type instead of the base type.
4153 (Get_Rep_Item_For_Entity):
4154 Return a pragma if the pragma node is not present in the Rep
4155 Item chain of the parent.
4156 (Kill_Tag_Checks): Removed (unused flag).
4157 (Set_Kill_Tag_Checks): Removed.
4158 (Get_First_Rep_Item): New routine.
4159 (Get_Rep_Pragma_For_Entity): New routine.
4160 (Has_Rep_Item): New routine.
4161 (Has_Rep_Pragma_For_Entity): New routine.
4162 (Present_In_Rep_Item): New routine.
4163 * einfo.ads (Kill_Tag_Checks): Removed.
4164 (Set_Kill_Tag_Checks): Removed.
4165 (Get_First_Rep_Item): New routine.
4166 (Get_Rep_Pragma_For_Entity): New routine.
4167 (Has_Rep_Item): New routine.
4168 (Has_Rep_Pragma_For_Entity): New routine.
4169 (Present_In_Rep_Item): New routine.
4170 * exp_attr.adb, sem_attr.adb: Attribute_CPU,
4171 Attribute_Dispatching_Domain and Attribute_Interrupt_Priority
4172 case added.
4173 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause): For
4174 attribute Storage_Size, insert the new assignement statement
4175 after the Size variable declaration.
4176 * exp_ch3.adb (Build_Init_Statements): Fill the CPU,
4177 Dispatching_Domain, Priority and Size components with the Rep
4178 Item expression (if any).
4179 * exp_ch9.adb (Expand_N_Task_Type_Declaration): _CPU,
4180 _Priority, _Domain fields are always present in the
4181 corresponding record type.
4182 (Find_Task_Or_Protected_Pragma): Removed.
4183 (Get_Relative_Deadline_Pragma): New routine.
4184 (Make_Initialize_Protection): Find_Task_Or_Protected_Pragma removed.
4185 (Make_Task_Create_Call): Check CPU, Size or
4186 Dispatching_Domain Rep Item is present using new routine Has_Rep_Item.
4187 * freeze.adb (Freeze_All): Push_Scope_And_Install_Discriminants
4188 and Uninstall_Discriminants_And_Pop_Scope calls added.
4189 (Freeze_Entity): Evaluate_Aspects_At_Freeze_Point call added.
4190 * sem_aux.adb (Nearest_Ancestor): Retrieve the nearest ancestor
4191 for private derived types.
4192 * sem_ch13.adb (Analyze_Aspect_Specifications): Clean-up
4193 and reordering. Delay analysis for all aspects (except some
4194 peculiar cases).
4195 (Analyze_Attribute_Definition_Clause):
4196 Attribute_CPU, Attribute_Dispatching_Domain,
4197 Interrupt_Priority and Attribute_Priority cases added.
4198 (Analyze_Freeze_Entity): Push_Scope_And_Install_Discriminants
4199 and Uninstall_Discriminants_And_Pop_Scope calls added.
4200 (Check_Aspect_At_Freeze_Point): Reordering and clean-up.
4201 (Duplicate_Clause): Issue an explicit error msg when the current
4202 clause duplicates an aspect specification, an attribute definition
4203 clause or a pragma.
4204 (Evaluate_Aspects_At_Freeze_Point): New routine.
4205 * sem_ch13.ads (Evaluate_Aspects_At_Freeze_Point): New routine.
4206 * sem_ch9.adb, sem_ch9.ads (Install_Discriminants): New routine.
4207 (Push_Scope_And_Install_Discriminants): New routine.
4208 (Uninstall_Discriminants): New routine.
4209 (Uninstall_Discriminants_And_Pop_Scope): New routine.
4210 * sem_prag.adb (Check_Duplicate_Pragma): Issue an explicit error
4211 msg when the current pragma duplicates an aspect specification,
4212 an attribute definition clause or a pragma.
4213 (Analyze_Pragma): Remove use of flags Has_Pragma_CPU,
4214 Has_Pragma_Priority and Has_Pragma_Dispatching_Domain.
4215 * sem_util.adb (Compile_Time_Constraint_Error): Don't complain
4216 about the type if the corresponding concurrent type doesn't come
4217 from source.
4218 * sinfo.adb, sinfo.ads (Has_Pragma_CPU): Removed.
4219 (Has_Pragma_Dispatching_Domain): Removed.
4220 (Has_Pragma_Priority): Removed.
4221 (Has_Task_Info_Pragma): Removed.
4222 (Has_Task_Name_Pragma): Removed.
4223 (Set_Has_Pragma_CPU): Removed.
4224 (Set_Has_Pragma_Dispatching_Domain): Removed.
4225 (Set_Has_Pragma_Priority): Removed.
4226 (Set_Has_Task_Info_Pragma): Removed.
4227 (Set_Has_Task_Name_Pragma): Removed.
4228 * snames.adb-tmpl (Get_Pragma_Id): Pragma_CPU,
4229 Pragma_Dispatching_Domain and Pragma_Interrupt_Priority added.
4230 (Is_Pragma_Name): Name_CPU, Name_Dispatching_Domain and
4231 Name_Interrupt_Priority added.
4232 * snames.ads-tmpl: Name_Dispatching_Domain, Name_CPU
4233 and Name_Interrupt_Priority moved to the list of
4234 Attribute_Name. Attribute_CPU, Attribute_Dispatching_Domain and
4235 Attribute_Interrupt_Priority added. Pragma_Dispatching_Domain,
4236 Pragma_CPU and Pragma_Interrupt_Priority moved to the end of
4237 the Pragma_Name list.
4238
a5e7b481 42392012-06-12 Arnaud Charlet <charlet@adacore.com>
4240
4241 * xref_lib.adb (Get_Full_Type): Add support for 'G'.
4242
42432012-06-12 Tristan Gingold <gingold@adacore.com>
4244
4245 * a-exexpr-gcc.adb (Unwind_Exception): Add 4 more private fields.
4246
42472012-06-12 Fedor Rybin <frybin@adacore.com>
4248
4249 * gnat_ugn.texi: Update doc on gnattest.
4250
42512012-06-12 Robert Dewar <dewar@adacore.com>
4252
4253 * sem_ch12.adb: Add comments.
4254
3e031dbf 42552012-06-12 Robert Dewar <dewar@adacore.com>
4256
4257 * switch-c.adb, inline.adb, usage.adb, opt.ads: Minor reformatting.
4258
6a8773aa 42592012-06-12 Robert Dewar <dewar@adacore.com>
4260
4261 * sem_ch12.adb: Minor reformatting.
4262
42632012-06-12 Eric Botcazou <ebotcazou@adacore.com>
4264
4265 * opt.ads (Inline_Level): New variable.
4266 * gnat1drv.adb (Adjust_Global_Switches): Set it based on optimization
4267 level if it has not been set by the user.
4268 * switch-c.adb (Scan_Front_End_Switches): Accept -gnatn1 and -gnatn2
4269 and set Inline_Level accordingly.
4270 * inline.adb (Add_Inlined_Body): Declate new Inline_Level_Type type.
4271 (Must_Inline): Return Inline_Level_T instead of Boolean to indicate
4272 whether the package of the inlined subprogram must be compiled.
4273 If Inline_Level is set to 1, only compile packages of subprograms
4274 directly called from the main unit.
4275 * usage.adb (Usage): Adjust line for -gnatn switch.
4276 * gnat_ugn.texi (Switches for gcc): Document -gnatn1 and -gnatn2.
4277
56381e22 42782012-06-12 Ed Schonberg <schonberg@adacore.com>
4279
4280 * sem_ch12.adb (Instantiate_Formal_Subprogram): Do not apply
4281 AI05-296 if the actual is overloaded. In this case The rule must
4282 be applied after resolution, in Analyze_Subprogram_Renaming.
4283
a96d5239 42842012-06-12 Robert Dewar <dewar@adacore.com>
4285
4286 * stringt.adb: Minor reformatting.
4287
42882012-06-12 Robert Dewar <dewar@adacore.com>
4289
4290 * ali-util.adb, stringt.ads: Minor reformatting.
4291
42922012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
4293
4294 * exp_ch7.adb (Process_Declarations): Handle the case where
4295 the original context has been wrapped in a block to avoid
4296 interference between exception handlers and At_End handlers.
4297 (Wrap_HSS_In_Block): Mark the block which contains the original
4298 statements of the context as being a finalization wrapper.
4299 * sinfo.adb (Is_Finalization_Wrapper): New routine.
4300 (Set_Is_Finalization_Wrapper): New routine.
4301
4302 * sinfo.ads: Add new attribute Is_Finalization_Wrapper applicable
4303 to block statemnts.
4304 (Is_Finalization_Wrapper): New routine with corresponding pragma Inline.
4305 (Set_Is_Finalization_Wrapper): New routine with corresponding pragma
4306 Inline.
4307
43082012-06-12 Steve Baird <baird@adacore.com>
4309
4310 * gnat1drv.adb (Adjust_Global_Switches): No longer need to set
4311 Exception_Extra_Info in CodePeer_Mode.
4312
37d19a65 43132012-06-12 Robert Dewar <dewar@adacore.com>
4314
4315 * sem_dist.adb, exp_ch7.adb, sem_type.adb, exp_attr.adb,
4316 sinfo.ads, sem_ch7.adb, exp_alfa.adb, sem_scil.adb, sem_ch12.adb,
4317 sem_util.adb, sem_res.adb, sem_attr.adb, sem_elab.adb, exp_ch6.adb,
4318 sem_ch4.adb, sem_warn.adb, scil_ll.adb, exp_cg.adb: Minor code
4319 reorganization.
4320
43212012-06-12 Eric Botcazou <ebotcazou@adacore.com>
4322
4323 * s-tasini.ads: Minor fix in comment.
4324
43252012-06-12 Thomas Quinot <quinot@adacore.com>
4326
4327 * freeze.adb (Freeze_Record_Type): Warn on record with
4328 Scalar_Storage_Order if there is no placed component.
4329
43302012-06-12 Thomas Quinot <quinot@adacore.com>
4331
4332 * sem_ch3.adb: Minor comment fix.
4333
43342012-06-12 Vincent Celier <celier@adacore.com>
4335
4336 * ali-util.adb (Time_Stamp_Mismatch): In minimal recompilation
4337 mode, use Stringt Mark and Release to avoid growing the Stringt
4338 internal tables uselessly.
4339 * stringt.adb (Strings_Last): New global variable
4340 (String_Chars_Last): New global variable.
4341 (Mark, Release): New procedures.
4342 * stringt.ads (Mark, Release) New procedures.
4343
f0224186 43442012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
4345
4346 * exp_ch7.adb (Process_Transient_Objects): Renamed constant
4347 Requires_Hooking to Must_Hook and replace all occurrences of the name.
4348 (Requires_Hooking): New routine. Detect all contexts that require
4349 transient variable export to the outer finalizer due to a potential
4350 exception.
4351
73c6a422 43522012-06-12 Ed Schonberg <schonberg@adacore.com>
4353
4354 * sem_ch12.adb: Small adjustment.
4355
43562012-06-12 Vincent Celier <celier@adacore.com>
4357
4358 * vms_cmds.ads (Command_Type): New enumeration value Test
4359 * vms_conv.adb (Initialize): Add component at index Test in
4360 Command_List
4361 * vms_data.ads (Test_Switches): New global variable for the
4362 switches of gnattest, currently empty.
4363
eb827c82 43642012-06-12 Ed Schonberg <schonberg@adacore.com>
4365
4366 * sem_ch3.adb (Analyze_Subtype_Declaration): if an incomplete
4367 type is tagged, so is a subtype of it.
4368 * sem_ch12.adb (Validate_Actual_Subprogram): implement AI05-0296,
4369 concerning freeze rules in the presence of formal incomplete
4370 types: a formal abstract subprogram cannot have an incomplete
4371 controlling type, and the profile of the actual subprogram does
4372 not freeze if it includes an incomplete untagged type.
4373
41d55ffb 43742012-06-12 Robert Dewar <dewar@adacore.com>
4375
4376 * a-direct.adb: Minor reformatting.
4377
43782012-06-12 Robert Dewar <dewar@adacore.com>
4379
4380 * gnat_ugn.texi: Add missing documentation for -gnatw.v and
4381 -gnatw.V.
4382
43832012-06-12 Thomas Quinot <quinot@adacore.com>
4384
4385 * sem_ch7.adb, sem_prag.adb, sem_ch12.adb, sem_ch4.adb,
4386 sem_ch13.adb: Minor rewording of error messages for unchecked unions.
4387
1d8c4b77 43882012-06-12 Robert Dewar <dewar@adacore.com>
4389
4390 * lib-xref.ads: Minor reformatting.
4391
43922012-06-12 Pascal Obry <obry@adacore.com>
4393
4394 * a-direct.adb (Delete_File): Delete symbolic links silently
4395 instead of raising the Name_Error exception when the symbolic
4396 link is pointing to a non existent file.
4397
b11ac6d5 43982012-06-12 Robert Dewar <dewar@adacore.com>
4399
4400 * xref_lib.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.
4401
44022012-06-12 Javier Miranda <miranda@adacore.com>
4403
4404 * lib-xref.ads Adding missing documentation.
4405
fc211e7d 44062012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
4407
4408 * exp_ch7.adb (Create_Finalizer): Add the
4409 exception reraise mechanism at the very end of the finalizer
4410 statements. This placement ensures that all objects are finalized,
4411 the secondary stack mark released and aborts undeferred before
4412 propagating an exception.
4413
44142012-06-12 Ed Schonberg <schonberg@adacore.com>
4415
4416 * sem_ch10.adb (Remove_Unit_From_Visibility): if the unit is a
4417 wrapper package. remove from visibility the original subprogram
4418 instance.
4419
44202012-06-12 Javier Miranda <miranda@adacore.com>
4421
4422 * sem_prag.adb (Process_Convention): Generate reference to entity
4423 exported to foreign language. Needed for GPS navigation.
4424 * xref_lib.adb (Parse_Identifier_Info): Parse exported entities.
4425 * lib-xref (Output_References): Output exported entities.
4426
44272012-06-12 Pascal Obry <obry@adacore.com>
4428
4429 * prj-attr.adb: Add install package and corresponding attributes.
4430 * snames.ads-tmpl (Name_Active): New constant.
4431 (Name_Exec_Subdir): Likewise.
4432 (Name_Install): Likewise.
4433 (Name_Lib_Subdir): Likewise.
4434 (Name_Project_Subdir): Likewise.
4435 (Name_Sources_Subdir): Likewise.
4436
44372012-06-12 Bob Duff <duff@adacore.com>
4438
4439 * sem_res.adb (Check_Infinite_Recursion):
4440 Suppress spurious warning on recursion after "raise with ...".
4441
608b54ce 44422012-06-12 Thomas Quinot <quinot@adacore.com>
4443
4444 * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Do
4445 not crash on illegal unchecked union that is a null record.
4446
44472012-06-12 Thomas Quinot <quinot@adacore.com>
4448
4449 * exp_ch4.adb (Has_Inferable_Discriminants): Reorganize code to
4450 treat implicit dereferences with a constrained unchecked union
4451 nominal subtype as having inferable discriminants.
4452
b6a174b7 44532012-06-12 Robert Dewar <dewar@adacore.com>
4454
4455 * sem_ch6.adb: Minor reformatting.
4456
44572012-06-12 Eric Botcazou <ebotcazou@adacore.com>
4458
4459 * gnat_ugn.texi: Couple of minor corrections.
4460
44612012-06-12 Thomas Quinot <quinot@adacore.com>
4462
4463 * sem_prag.adb (Check_Variant): An empty component list is not
4464 illegal in an unchecked union variant.
4465
5bf9d771 44662012-06-12 Gary Dismukes <dismukes@adacore.com>
4467
4468 * projects.texi: Remove comments.
4469
44702012-06-12 Thomas Quinot <quinot@adacore.com>
4471
4472 * back_end.adb (Scan_Back_End_Switches): Treat -fdump-scos as
4473 synonym of -gnateS.
4474 (gnat_post_options): Disable gimple-based SCO generator.
4475 * gnat_ugn.texi: Document that -gnateS is an obsolete synonym
4476 of -fdump-scos.
4477
44782012-06-12 Ed Schonberg <schonberg@adacore.com>
4479
4480 * sem_ch6.adb (Different_Generic_Profile): new predicate for
4481 Find_Corresponding_Spec, to handle a rare case of accidental
4482 overloading in an instance, when the profile of a subprogram body
4483 that depends on a formal type becomes compatible with that of
4484 a homonym whose profile in the generic mentions the actual type.
4485
44862012-06-12 Thomas Quinot <quinot@adacore.com>
4487
4488 * gnat1drv.adb: Minor reformatting.
4489
f4f8b6b5 44902012-06-12 Ed Schonberg <schonberg@adacore.com>
4491
4492 * sem_util.adb (Build_Explicit_Dereference): If the expression
4493 is an entity, ensure that the type of the expression is the same
4494 as that of the entity.
4495
44962012-06-12 Pat Rogers <rogers@adacore.com>
4497
4498 * projects.texi: Corrected instances of the word "build" that
4499 should be "built" instead. Other similar changes and minor
4500 punctuation changes.
4501
a5a64273 45022012-06-12 Eric Botcazou <ebotcazou@adacore.com>
4503
4504 * sem_util.adb (Is_Atomic_Object): Return true for an atomic
4505 component as well as a prefix which is an atomic component.
4506
45072012-06-12 Ed Schonberg <schonberg@adacore.com>
4508
4509 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): revert previous
4510 patch. The processing of interfacing aspects now generates a
4511 proper Ada 2005 pragma.
4512 * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
4513 Pragma_Import): revert previous patch. The processing of
4514 interfacing aspects now generates a proper Ada 2005 pragma.
4515 * sem_ch13.adb (Analyze_Aspect_Specifications): generate proper
4516 pragam for aspects Convention, Import and Export. Scan list
4517 of aspects to collect link name and external name if present,
4518 and verify that a complete pragma can be generated.
4519
39854e56 45202012-06-11 Olivier Hainque <hainque@adacore.com>
4521
4522 * gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Remove
4523 $(PIC_FLAG_FOR_TARGET).
4524 (gnatlib-shared-default): Add $(PIC_FLAG_FOR_TARGET) to
4525 GNATLIBCFLAGS_FOR_C passed to gnatlib.
4526 (gnatlib-shared-win32): Likewise.
4527 (gnatlib-shared-darwin): Likewise.
4528 (gnatlib-shared-dual-win32): Pass PIC_FLAG_FOR_TARGET to
4529 gnatlib-shared-win32.
4530
7016287f 45312012-06-11 Eric Botcazou <ebotcazou@adacore.com>
4532
4533 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Convert GNU_SIZE
4534 to units before invoking allocatable_size_p on it.
4535 Remove orphaned comment. Do not use ssize_int.
4536 <E_Record_Subtype>: Traverse list in original order. Minor tweak.
4537 (allocatable_size_p): Adjust and simplify.
4538 (build_subst_list): Use consistent terminology throughout.
4539 (build_variant_list): Likewise. Traverse list in original order.
4540 (create_field_decl_from): Likewise.
4541 (copy_and_substitute_in_size): Likewise.
4542 (create_variant_part_from): Add comment about field list order.
4543 * gcc-interface/utils.c (build_vms_descriptor): Do not use ssize_int.
4544 * gcc-interface/utils2.c (build_allocator): Likewise.
4545
e45f3812 45462012-06-11 Eric Botcazou <ebotcazou@adacore.com>
4547
4548 * gcc-interface/trans.c (Identifier_to_gnu): Test Is_Elementary_Type
4549 instead of Is_Scalar_Type for a constant with an address clause.
4550 Do not return the underlying constant for a constant used by reference
4551 if it holds the address of a constant and an lvalue is required.
4552
f29f9ff7 45532012-06-11 Eric Botcazou <ebotcazou@adacore.com>
4554
4555 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not specifically deal
4556 with external constants wrt force_global here...
4557 <E_Constant>: ...but here instead.
4558 * gcc-interface/utils.c (gnat_pushdecl): Do not put external DECLs onto
4559 the list of global DECLs.
4560
5382f1dd 45612012-06-11 Eric Botcazou <ebotcazou@adacore.com>
4562
4563 * gcc-interface/decl.c (gnat_to_gnu_entity): Translate the Esize on
4564 entry only for elementary types and abort if it is too large.
4565 <E_Record_Type>: Make sure the Esize is known before using it.
4566
dff12c10 45672012-06-04 Steven Bosscher <steven@gcc.gnu.org>
4568
4569 * gcc-interface/utils2.c: Do not include output.h.
4570 * gcc-interface/Make-lang.in: Fix dependencies.
4571
7843e4bc 45722012-05-29 Michael Matz <matz@suse.de>
4573
4574 * gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl.
4575
b429b8a7 45762012-05-26 Eric Botcazou <ebotcazou@adacore.com>
4577
4578 * gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'.
4579 (build_variant_list): Adjust to above renaming.
4580 (gnat_to_gnu_entity) <E_Record_Subtype>: Likewise. Give a unique name
4581 to the type of the variant containers.
4582 (create_variant_part_from): Likewise. Give a unique name to the type
4583 of the variant part.
4584
8ffcff2e 45852012-05-25 Eric Botcazou <ebotcazou@adacore.com>
4586
4587 PR ada/52362
4588 * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
4589 (__gnat_using_gnu_linker): Delete.
4590 * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
4591 Declare Object_File_Option string constant and Using_GNU_response_file
4592 boolean constant.
be3c7aa1 4593 (Process_Binder_File): ...instead of here. Delete Using_GNU_Linker,
4594 Opening and Closing local variables. Do not handle the GNU linker
8ffcff2e 4595 specially.
be3c7aa1 4596 (Write_RF): New procedure to write into the response file. Escape some
4597 characters if a GNU response file is used. Keep track of error status.
4598 Invoke Write_RF to write into the response file. Delete the file only
8ffcff2e 4599 if the link was successful.
4600 * mlib-utl.adb: Do not `with' package System.
be3c7aa1 4601 (Gcc): Likewise. Declare Object_File_Option string constant and
8ffcff2e 4602 Using_GNU_response_file boolean constant.
be3c7aa1 4603 (Write_RF): Take a string instead of address and length. Escape some
8ffcff2e 4604 characters if a GNU response file is used.
be3c7aa1 4605 Invoke Write_RF to write into the response file. Delete the file only
4606 if the link was successful. Do not warn if it cannot be deleted.
8ffcff2e 4607
a7688838 46082012-05-20 Eric Botcazou <ebotcazou@adacore.com>
4609
4610 * gcc-interface/utils.c (gnat_write_global_declarations): Put a name
4611 on the dummy global variable.
4612
20a8df10 46132012-05-19 Eric Botcazou <ebotcazou@adacore.com>
4614
4615 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
4616 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
4617 calling convention
4618 (get_minimal_subprog_decl): Likewise.
4619 (gnat_first_param_is_class): New predicate.
4620
4621 * gcc-interface/misc.c (gnat_handle_option): Fix formatting.
4622 * gcc-interface/Makefile.in: Likewise.
4623
4b1fdfcc 46242012-05-18 Eric Botcazou <ebotcazou@adacore.com>
4625
4626 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at
4627 global level with unconstrained nominal subtype and a non-fixed size,
4628 make a variable for the size.
4629
5b4a2ac8 46302012-05-15 Andris Pavenis <andris.pavenis@iki.fi>
4631
4632 PR ada/52494
4633 * s-taprop-dummy.adb (Specific): New package.
4634
0b105f04 46352012-05-15 Olivier Hainque <hainque@adacore.com>
4636
4637 * gcc-interface/Make-lang.in (COMMON_FLAGS_TO_PASS): Use WARN_CFLAGS
4638 instead of trying to mimic it.
4639
7eb0e22f 46402012-05-15 Robert Dewar <dewar@adacore.com>
4641
4642 * sem_ch5.adb, sem_util.adb, s-stposu.adb, exp_ch4.adb: Minor
4643 reformatting.
4644
46452012-05-15 Geert Bosch <bosch@adacore.com>
4646
4647 * uintp.adb (UI_Rem): Remove optimizations, as they are complex and are
4648 not needed.
4649 (Sum_Digits): Remove, no longer used.
4650 (Sum_Double_Digits): Likewise.
4651
46522012-05-15 Yannick Moy <moy@adacore.com>
4653
4654 * aspects.ads: Minor typo.
4655
46562012-05-15 Thomas Quinot <quinot@adacore.com>
4657
4658 * gnat_rm.texi (Scalar_Storage_Order): Fix RM reference.
4659 * sem_ch13.adb: Minor comment fix: incorrect RM reference.
4660
46612012-05-15 Eric Botcazou <ebotcazou@adacore.com>
4662
4663 * sem_prag.adb (Process_Atomic_Shared_Volatile): Propagate
4664 atomicity from an object to its underlying type only if it
4665 is composite.
4666
18923d61 46672012-05-15 Ed Schonberg <schonberg@adacore.com>
4668
4669 * sem_ch5.adb (Analyze_Iterator_Specification): Set kind of
4670 loop variable after pre-analysis of iterator name, to prevent
4671 premature usage of loop variable.
4672
46732012-05-15 Ed Schonberg <schonberg@adacore.com>
4674
4675 * sem_util.adb (Is_Variable): In Ada 2012, an explicit
4676 dereference that is a rewriting of an expression whose type has
4677 a declared Implicit_Derenference aspect is a variable.
4678
30d0732d 46792012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
4680
4681 * exp_ch4.adb (Insert_Dereference_Action): Reimplemented. The
4682 routine performs address and size adjustments for dereferences
4683 of heap-allocated controlled objects. This manipulation is needed
4684 in order to restore the original state of the memory at the time
4685 it was allocated by the finalization machinery.
4686 * rtsfind.ads: Add RE_Adjust_Controlled_Dereference to tables
4687 RE_Id and RE_Unit_Table.
4688 * sinfo.adb (Has_Dereference_Action): New routine.
4689 (Set_Has_Dereference_Action): New routine.
4690 * sinfo.ads: Add new semantic flag Has_Dereference_Action along
4691 its association in nodes.
4692 (Has_Dereference_Action): New routine and pragma Inline.
4693 (Set_Has_Dereference_Action): New routine and pragma Inline.
4694 * s-stposu.ads, s-stposu.adb (Adjust_Controlled_Dereference): New
4695 routine.
4696
b98fca2b 46972012-05-15 Thomas Quinot <quinot@adacore.com>
4698
4699 * uintp.adb (Image_Uint): Use UI_Div_Rem to get quotient and
4700 remainder of U / Base in a single operation.
4701
47022012-05-15 Robert Dewar <dewar@adacore.com>
4703
4704 * exp_ch5.adb, inline.adb, sem_ch10.adb, prj.ads, sem_util.adb,
4705 a-ngelfu.ads, exp_ch4.adb, exp_ch6.adb, aspects.ads, sem_ch6.adb,
4706 vms_data.ads, exp_ch3.adb, prj-env.adb: Minor reformatting.
4707
7dc534ca 47082012-05-15 Thomas Quinot <quinot@adacore.com>
4709
4710 * exp_ch4.adb (Has_Inferable_Discriminants): For a qualified
4711 expression, use correct node for test on the subtype denoted by
4712 the subtype mark.
4713
47142012-05-15 Eric Botcazou <ebotcazou@adacore.com>
4715
4716 * inline.adb (Scope_In_Main_Unit): Rename into...
4717 (In_Main_Unit_Or_Subunit): ...this. Also return
4718 true if the subprogram is within a subunit of the
4719 main unit.
4720 (Add_Inlined_Body): Adjust for above renaming.
4721 (Add_Inlined_Subprogram): Likewise. Pass the subprogram directly.
4722 (Analyze_Inlined_Bodies): Really set aside inlined subprograms
4723 not handled by Add_Inlined_Body.
4724
984d005d 47252012-05-15 Ed Schonberg <schonberg@adacore.com>
4726
4727 * sem_ch10.adb (Expand_With_Clause): In the context of a generic
4728 package declaration, a private with-clause on a child unit implies
4729 that the implicit with clauses on its parents are private as well.
4730
47312012-05-15 Javier Miranda <miranda@adacore.com>
4732
4733 * sem_ch6.adb (Is_Interface_Conformant): Add missing call to
4734 Base_Type to handle subtypes.
4735 * exp_ch6.adb (Expand_Call): For calls located in thunks handle
4736 unchecked conversions of access types found in actuals.
4737 * exp_disp.adb (Expand_Interface_Thunk): Add missing unchecked
4738 conversion to actuals whose type is an access type. Done to
4739 avoid reporting spurious errors.
4740
47412012-05-15 Vincent Celier <celier@adacore.com>
4742
4743 * prj-env.adb (Create_Mapping): Ignore sources that are
4744 suppressed (Create_Mapping_File.Process): Ditto
4745 * prj-nmsc.adb (Add_Source): Update to take into
4746 account suppressed files that may hide inherited sources.
4747 (Mark_Excluded_Sources): Mark excluded sources of the current
4748 project as suppressed.
4749 * prj.ads (Source_Data): New Boolean component Suppressed,
4750 defaulted to False
4751
47522012-05-15 Thomas Quinot <quinot@adacore.com>
4753
4754 * exp_intr.adb: Minor reformatting.
4755
47562012-05-15 Thomas Quinot <quinot@adacore.com>
4757
4758 * gnat_rm.texi: Document attribute Scalar_Storage_Order.
4759
47602012-05-15 Javier Miranda <miranda@adacore.com>
4761
4762 * exp_ch3.adb (Build_Offset_To_Top): Modify the
4763 expansion of the offset_to_top functions to ensure that their
4764 profile is conformant with the profile specified in Ada.Tags. No
4765 change in functionality.
4766
47672012-05-15 Eric Botcazou <ebotcazou@adacore.com>
4768
4769 * inline.adb (Subp_Info): Remove Count and Next_Nopred
4770 components, add Processed component and move around Next component.
4771 (Add_Call): Reverse meaning of Successors table to the natural one.
4772 (Add_Inlined_Body): Do not inline a package if it is in the main unit.
4773 (Add_Inlined_Subprogram): Do not add the subprogram to the list if the
4774 package is in the main unit. Do not recurse on the successors.
4775 (Add_Subp): Adjust to new contents of Subp_Info.
4776 (Analyze_Inlined_Bodies): Do not attempt
4777 to compute a topological order on the list of inlined subprograms,
4778 but compute the transitive closure from the main unit instead.
4779 (Get_Code_Unit_Entity): Always return the spec for a package.
4780
77416989 47812012-05-15 Yannick Moy <moy@adacore.com>
4782
4783 * aspects.ads: Minor addition of comments to provide info on
4784 how to add new aspects.
4785
47862012-05-15 Thomas Quinot <quinot@adacore.com>
4787
4788 * osint.ads: Minor reformatting.
4789
47902012-05-15 Thomas Quinot <quinot@adacore.com>
4791
4792 * exp_ch5.adb, exp_pakd.adb, sem_util.adb, sem_util.ads
4793 (Expand_Assign_Array): Handle the case of a packed bit array within a
4794 record with reverse storage order (assign element by element in that
4795 case).
4796 (In_Reverse_Storage_Order_Record): New subprogram,
4797 code extracted from Exp_Pakd.
4798
47992012-05-15 Yannick Moy <moy@adacore.com>
4800
4801 * a-ngelfu.ads: Add postconditions using Ada 2012
4802 aspect syntax, reflecting some of the RM requirements for these
4803 functions, from Annex A.5.1 or G.2.4.
4804
48052012-05-15 Thomas Quinot <quinot@adacore.com>
4806
4807 * adaint.c: Minor fix: move misplaced comment.
4808
48092012-05-15 Doug Rupp <rupp@adacore.com>
4810
4811 * vms_data.ads: Enhance help for /IMMEDIATE_ERRORS to discourage
4812 use by customers.
4813
e1cedbae 48142012-05-15 Tristan Gingold <gingold@adacore.com>
4815
4816 * a-exextr.adb: Add comment.
4817
48182012-05-15 Ed Schonberg <schonberg@adacore.com>
4819
4820 * sem_ch3.adb: Minor reformatting (remove long dead code).
4821
48222012-05-15 Ed Schonberg <schonberg@adacore.com>
4823
4824 * aspects.adb, aspects.ads: Add aspects for Convention, Export,
4825 External_Name, Import, and Link_Name.
4826 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): if the
4827 pragma comes from an aspect specification, the entity is the
4828 first argument.
4829 * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
4830 Pragma_Import): if the pragma comes from an aspect specification,
4831 the entity is the first argument, and the second has the value
4832 True by default.
4833 * sem_ch13.adb (Analyze_Aspect_Specifications): generate pragam
4834 for aspect Convention. Add placeholders for Link_Name and
4835 External_Name.
4836
0703c8dc 48372012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
4838
4839 * exp_ch9.adb (Expand_N_Asynchronous_Select): Extract the statements
4840 of the abortable part and triggering alternative after being processed
4841 for controlled objects.
4842 (Expand_N_Timed_Entry_Call): Code and comment reformatting.
4843
48442012-05-15 Robert Dewar <dewar@adacore.com>
4845
4846 * sem_util.adb: Minor code reorganization.
4847
6121886e 48482012-05-15 Robert Dewar <dewar@adacore.com>
4849
4850 * exp_ch7.adb, exp_ch11.adb, exp_ch11.ads: Minor reformatting.
4851
48522012-05-15 Thomas Quinot <quinot@adacore.com>
4853
4854 * sem_res.adb (Resolve): Enforce E.2.2(11/2) and E.2.2(12) for
4855 'Unrestricted_Access and 'Unchecked_Access (not just 'Access):
4856 even in those cases, a remote access type may only designate a
4857 remote subprogram.
4858
48592012-05-15 Thomas Quinot <quinot@adacore.com>
4860
4861 * sem_util.adb, sem_util.ads, sem_cat.adb: Minor refactoring.
4862 (Enclosing_Lib_Unit_Node): Rename to Enclosing_Comp_Unit_Node.
4863
48642012-05-15 Ed Schonberg <schonberg@adacore.com>
4865
4866 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove obsolete
4867 checks on nested inlined subprograms.
4868
48692012-05-15 Tristan Gingold <gingold@adacore.com>
4870
4871 * fe.h (Get_RT_Exception_Name): Declare.
4872
48732012-05-15 Tristan Gingold <gingold@adacore.com>
4874
4875 * raise-gcc.c (db_region_for): Use %p + cast to avoid warnings.
4876 (get_region_description_for): Likewise.
4877 (db_action_for): Likewise.
4878 (get_call_site_action_for): Likewise.
4879 (get_ttype_entry_for): Remove useless 'const'.
4880 (PERSONALITY_FUNCTION): Add ATTRIBUTE_UNUSED on uw_exception_class.
4881
48822012-05-15 Tristan Gingold <gingold@adacore.com>
4883
4884 * a-exextr.adb (Unhandled_Exception_Terminate): Save occurrence
4885 on the stack to avoid a dynamic memory allocation.
4886
48872012-05-15 Bob Duff <duff@adacore.com>
4888
4889 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Move initialization of
4890 E_Stats and D_Stats after Process_Statements_For_Controlled_Objects,
4891 because those calls can destroy the Statements list.
4892
f92ebffb 48932012-05-15 Tristan Gingold <gingold@adacore.com>
4894
4895 * fe.h (Get_RT_Exception_Name): Define.
4896 * types.ads (RT_Exception_Code): Update comment.
4897 * exp_ch11.adb, exp_ch11.ads (Get_RT_Exception_Name): New
4898 procedure to get the name of the rcheck subprograms.
4899 * a-except-2005.adb (Rcheck_xx): Rename.
4900 * a-except.adb Likewise, but also keep the old Rcheck_nn routines
4901 for bootstrap.
4902 * arith64.c (__gnat_mulv64): Use __gnat_rcheck_CE_Overflow_Check
4903 instead of __gnat_rcheck_10.
4904 * gcc-interface/trans.c (build_raise_check): Use Get_RT_Exception_Name
4905 to create the __gnat_rcheck routines name.
4906 * gcc-interface/Make-lang.in: Update dependencies.
4907
c075f76a 49082012-05-15 Tristan Gingold <gingold@adacore.com>
4909
4910 * exp_ch7.adb (Build_Exception_Handler): Save current
4911 occurrence only if -gnateE.
4912 (Build_Object_Declaration): Declare E_Id only if -gnateE.
4913 (Build_Raise_Statement): Call Raise_From_Controlled_Operation only if
4914 -gnateE (else raise PE).
4915 * s-soflin.adb (Save_Library_Occurrence): Handle null occurrence
4916 access.
4917 * a-except-2005.adb (Reraise_Library_Exception_If_Any): Call
4918 Raise_From_Controlled_Operation only if the saved occurrence is
4919 not null, otherwise raise PE.
4920
49212012-05-15 Yannick Moy <moy@adacore.com>
4922
4923 * exp_alfa.ads: Add comments describing the Alfa mode.
4924
504c14e8 49252012-05-15 Tristan Gingold <gingold@adacore.com>
4926
4927 * s-soflin.ads, s-soflin.adb (Save_Library_Occurrence): Parameter
4928 E is now of type Exception_Occurrence_Access.
4929 * exp_ch7.ads, exp_ch7.adb (Build_Exception_Handler): Adjust generated
4930 call to Save_Library_Occurrence.
4931
49322012-05-15 Thomas Quinot <quinot@adacore.com>
4933
4934 * exp_ch4.adb (Rewrite_Coextension): Use Insert_Action to
4935 insert temporary variable decl at the proper place in the tree.
4936
e3489cff 49372012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
4938
4939 * g-calend.adb (Split_At_Locale): New routine.
4940 (Time_Of_At_Locale): New routine.
4941 * g-calend.ads (Split_At_Locale): New routine.
4942 (Time_Of_At_Locale): New routine.
4943
49442012-05-15 Gary Dismukes <dismukes@adacore.com>
4945
4946 * a-except.ads: Minor reformatting.
4947
49482012-05-15 Ed Schonberg <schonberg@adacore.com>
4949
4950 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the loop
4951 parameter specification is part of a quantified expression, and it
4952 already carries a type, do not repeat the analysis to preserve
4953 type information: a range attribute reference may have been
4954 rewritten as a range with static bounds, and its re-analysis may
4955 type it as Integer by default, instead of the original index type.
4956
49572012-05-15 Robert Dewar <dewar@adacore.com>
4958
4959 * s-osprim-mingw.adb: Minor reformatting.
4960
3c7975d3 49612012-05-15 Arnaud Charlet <charlet@adacore.com>
4962
4963 * a-except.adb, a-except.ads (Reraise_Library_Exception_If_Any): New.
4964 Mark this unit preelaborate.
4965 * s-soflin.ads: Make package Preelaborate.
4966
1825e275 49672012-05-15 Robert Dewar <dewar@adacore.com>
4968
4969 * s-osprim-mingw.adb, sem_eval.adb, a-calend-vms.ads: Minor reformatting
4970
fa5c1550 49712012-05-15 Ed Schonberg <schonberg@adacore.com>
4972
4973 * sem_eval.adb (Subtypes_Statically_Match): In Ada 2012, static
4974 matching requires matching of static subtype predicates as well.
4975
49762012-05-15 Ed Schonberg <schonberg@adacore.com>
4977
4978 * sem_case.adb (Analyze_Choices): If the subtype of the
4979 expression has a non-static predicate, the case alternatives
4980 must cover the base type.
4981
49822012-05-15 Tristan Gingold <gingold@adacore.com>
4983
4984 * a-calend-vms.ads: Add pragma export to Split and Time_Of.
4985 Merge comments from a-calend.ads to minimize differences.
4986
49872012-05-15 Sergey Rybin <rybin@adacore.com frybin>
4988
4989 * gnat_ugn.texi: gnatmetric: add a small example that demonstrates
4990 the difference between control coupling and unit coupling.
4991
49922012-05-15 Tristan Gingold <gingold@adacore.com>
4993
4994 * bindgen.adb (Gen_Header): Remove code to emit LE_Set.
4995 (Gen_Finalize_Library): Replace test with
4996 a call to __gnat_reraise_library_exception_if_any.
4997 * s-soflin.ads (Library_Exception): Do not export.
4998 (Library_Exception_Set): Likewise.
4999 * a-except-2005.ads, a-except-2005.adb
5000 (Reraise_Library_Exception_If_Any): New procedure.
5001
f39ac8d7 50022012-05-15 Geert Bosch <bosch@adacore.com>
5003
5004 * sem_ch9.adb (Allows_Lock_Free_Implementation): out or in out
5005 parameters can be access types as well, not just scalar types,
5006 so relax the test to Is_Elementary_Type.
5007
50082012-05-15 Bob Duff <duff@adacore.com>
5009
5010 * s-atacco.ads s-atacco.adb: Replace pragma Elaborate_Body
5011 with pragma No_Body.
5012 (Xyz): Remove Xyz, which is apparently unnecessary.
5013
50142012-05-15 Tristan Gingold <gingold@adacore.com>
5015
5016 * a-calend-vms.adb: Complete previous change.
5017
50182012-05-15 Bob Duff <duff@adacore.com>
5019
5020 * s-win32.ads: Minor comment fix.
5021 * s-osprim-mingw.adb: Minor editing.
5022
a16536f8 50232012-05-15 Robert Dewar <dewar@adacore.com>
5024
5025 * exp_ch9.adb, sem_ch9.adb, sem_ch13.adb: Minor reformatting.
5026
7413d80d 50272012-05-15 Robert Dewar <dewar@adacore.com>
5028
5029 * g-comlin.adb, g-comlin.ads: Minor reformatting.
5030
50312012-05-15 Vincent Pucci <pucci@adacore.com>
5032
5033 * aspects.adb, aspects.adb: Reordering of the Aspect_Idi list. New
5034 aspect Aspect_Lock_Free.
5035 * einfo.adb, einfo.ads: New flag Uses_Lock_Free (flag 188).
5036 (Set_Uses_Lock_Free): New routine.
5037 (Uses_Lock_Free): New routine.
5038 * exp_ch7.adb (Is_Simple_Protected_Type): Return False for
5039 lock-free implementation.
5040 * exp_ch9.adb (Allows_Lock_Free_Implementation): Moved to Sem_Ch9.
5041 (Build_Lock_Free_Unprotected_Subprogram_Body): Protected
5042 procedure uses __sync_synchronise. Check both Object_Size
5043 and Value_Size.
5044 (Expand_N_Protected_Body): Lock_Free_Active
5045 renames Lock_Free_On.
5046 (Expand_N_Protected_Type_Declaration):
5047 _Object field removed for lock-free implementation.
5048 (Install_Private_Data_Declarations): Protection object removed
5049 for lock-free implementation.
5050 (Make_Initialize_Protection):
5051 Protection object initialization removed for lock-free implementation.
5052 * rtsfind.ads: RE_Atomic_Synchronize and RE_Relaxed added.
5053 * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect_Lock_Free
5054 analysis added.
5055 * sem_ch9.adb (Allows_Lock_Free_Implementation): New routine.
5056 (Analyze_Protected_Body): Allows_Lock_Free_Implementation call added.
5057 (Analyze_Protected_Type_Declaration):
5058 Allows_Lock_Free_Implementation call added.
5059 (Analyze_Single_Protected_Declaration): Second analysis of
5060 aspects removed.
5061 * s-atopri.ads: Header added.
5062 (Atomic_Synchronize): New routine.
5063
50642012-05-15 Robert Dewar <dewar@adacore.com>
5065
5066 * exp_ch7.ads: Add comment.
5067
f74ffaae 50682012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
5069
5070 * a-calend.adb (Day_Of_Week): The routine once again treats
5071 all dates as historic. (Formatting_Operations.Split): All
5072 calls to UTC_Time_Offset are now controlled through formal
5073 parameter Is_Historic. (Formatting_Operations.Time_Of):
5074 All calls to UTC_Time_Offset are now handled through
5075 formal parameter Is_Historic.
5076 (Split): Update the call to Formatting_Operations.Split.
5077 (Time_Of): Update the call to Formatting_Operations.Time_Of.
5078 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
5079 (To_Strict_Tm): Update the call to Formatting_Operations.Split.
5080 * a-calend.ads (Split): Add new formal Is_Historic along with
5081 comment on usage. This routine is now exported for the purposes
5082 of GNAT.Calendar.Locale.
5083 (Time_Of): Remove defaults. Add new
5084 formal Is_Historic along with comment on usage. This routine is
5085 now exported for the purposes of GNAT.Calendar.Locale.
5086 * a-calend-vms.adb (Split): Update the call to
5087 Formatting_Operations.Split.
5088 (Time_Of): Update the call to Formatting_Operations.Time_Of.
5089 * a-calend-vms.ads (Split): Add new formal Is_Historic along
5090 with comment on usage. (Time_Of): Remove defaults. Add new
5091 formal Is_Historic along with comment on usage.
5092 * a-calfor.adb (Split): Update the call to
5093 Formatting_Operations.Split.
5094 (Time_Of): Update the call to Formatting_Operations.Time_Of.
f74ffaae 5095
50962012-05-15 Vincent Celier <celier@adacore.com>
5097
5098 * prj-nmsc.adb (Add_Source): Always add the source if it is
5099 excluded, to avoid incorrect duplicate checks.
5100
51012012-05-15 Yannick Moy <moy@adacore.com>
5102
5103 * sem_aux.ads: Correct typo.
5104 * sem_eval.adb (Compile_Time_Known_Value): Return False in Alfa
5105 mode for a deferred constant when outside of the scope of its
5106 full view.
5107
51082012-05-15 Emmanuel Briot <briot@adacore.com>
5109
5110 * g-comlin.adb, g-comlin.ads (Define_Switch): Allow specifying the name
5111 of the argument, for the automatic help message.
5112 (Getopt): do not systematically initialize switches with string values
5113 to the empty string, when the user has already specified a default.
5114
258a168d 51152012-05-14 Bernd Schmidt <bernds@codesourcery.com>
5116
5117 * gcc-interface/utils.c (DEF_ATTR_STRING): New.
5118
d3b7ee7c 51192012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
5120
5121 PR 53063
5122 * gcc-interface/misc.c: Include opts.h and options.h before tm.h.
5123 (gnat_handle_option): Call lang-specific generated function.
5124
4584d89f 51252012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
5126
5127 * gcc-interface/lang.opt (I): Comment out help text with no effect.
5128 (nostdinc): Comment out help text with no effect.
5129
bcd59a2b 51302012-05-12 Eric Botcazou <ebotcazou@adacore.com>
5131
5132 * gcc-interface/Makefile.in (TOOLS_LIBS): Add ../../ggc-none.o.
5133
fbb6fbd8 51342012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
5135
5136 PR 53063
5137 * gcc-interface/misc.c (gnat_parse_file): Move before ...
5138 (gnat_handle_option): ... this. Use handle_generated_option.
5139
5a1fe2db 51402012-05-10 Richard Guenther <rguenther@suse.de>
5141
5142 * gcc-interface/cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use.
5143
d349f8a8 51442012-05-06 Tristan Gingold <gingold@adacore.com>
5145
5146 * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
5147
647b2843 51482012-05-06 Eric Botcazou <ebotcazou@adacore.com>
5149
5150 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
5151 case, use the padded type if the renamed object has an unconstrained
5152 type with default discriminant.
5153
7e48d3e6 51542012-05-06 Eric Botcazou <ebotcazou@adacore.com>
5155
5156 * gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant
5157 conditions with only one bound.
647b2843 5158 (Raise_Error_to_gnu): Likewise. New function extracted from...
5159 (gnat_to_gnu) <N_Raise_Constraint_Error>: ...here. Call above function
7e48d3e6 5160 in regular mode only.
5161
cd3ef822 51622012-05-06 Eric Botcazou <ebotcazou@adacore.com>
5163
5164 * gcc-interface/misc.c (gnat_post_options): Disable caret by default.
5165
76cb9822 51662012-05-06 Eric Botcazou <ebotcazou@adacore.com>
5167
5168 * gcc-interface/gigi.h (make_packable_type): Declare.
5169 (make_type_from_size): Likewise.
5170 (relate_alias_sets): Likewise.
5171 (maybe_pad_type): Adjust.
5172 (init_gnat_to_gnu): Delete.
5173 (destroy_gnat_to_gnu): Likewise.
5174 (init_dummy_type): Likewise.
5175 (destroy_dummy_type): Likewise.
5176 (init_gnat_utils): Declare.
5177 (destroy_gnat_utils): Likewise.
5178 (ceil_pow2): New inline function.
5179 * gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2.
5180 <object>: Pass True for the final processing of alignment and size.
5181 <E_Subprogram_Type>: Only create the TYPE_DECL for a padded return
5182 type if necessary.
5183 (round_up_to_align): Delete.
5184 (ceil_alignment): Likewise.
5185 (relate_alias_sets): Move to...
5186 (make_aligning_type): Likewise.
5187 (make_packable_type): Likewise.
5188 (maybe_pad_type): Likewise.
5189 (make_type_from_size): Likewise.
5190 * gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete.
5191 (struct pad_type_hash): New type.
5192 (pad_type_hash_table): New static variable.
5193 (init_gnat_to_gnu): Merge into...
5194 (init_dummy_type): Likewise.
5195 (init_gnat_utils): ...this. New function.
5196 (destroy_gnat_to_gnu): Merge into...
5197 (destroy_dummy_type): Likewise.
5198 (destroy_gnat_utils): ...this. New function.
5199 (pad_type_hash_marked_p): New function.
5200 (pad_type_hash_hash): Likewise.
5201 (pad_type_hash_eq): Likewise.
5202 (relate_alias_sets): ...here.
5203 (make_aligning_type): Likewise.
5204 (make_packable_type): Likewise.
5205 (maybe_pad_type): Likewise. Change same_rm_size parameter into
5206 set_rm_size; do not set TYPE_ADA_SIZE if it is false. Do not set
5207 null as Ada size. Do not set TYPE_VOLATILE on the padded type. If it
5208 is complete and has constant size, canonicalize it. Bail out earlier
5209 if a warning need not be issued.
5210 (make_type_from_size): Likewise.
5211 <INTEGER_TYPE>: Bail out if size is too large
5212 (gnat_types_compatible_p): Do not deal with padded types.
5213 (convert): Compare main variants for padded types.
5214 * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils.
5215 (gnat_to_gnu): Do not convert at the end for a call to a function that
5216 returns an unconstrained type with default discriminant.
5217 (Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects.
5218 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise.
5219 Do not use the padded type if it is BLKmode and the inner type is
5220 non-BLKmode.
5221
38b1f0b0 52222012-05-02 Pascal Obry <obry@adacore.com>
5223
5224 Revert
5225 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com>
5226
fb824021 5227 * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
5228 Windows-specific make variable.
5229 (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
5230 (install-gnatlib): Respect the above during installation when set,
5231 and also install any windows import library that has been built.
5232 (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
5233 build a corresponding import library.
5234
cf951b1a 52352012-04-30 Jan Hubicka <jh@suse.cz>
5236
5237 * gcc-interface/utils.c (rest_of_subprog_body_compilation): Update
5238 comment.
5239 (gnat_write_global_declarations): Use finalize_compilation_unit.
5240
147e3036 52412012-04-30 Eric Botcazou <ebotcazou@adacore.com>
5242
5243 * gcc-interface/decl.c (gnat_to_gnu_entity): In type annotation mode,
5244 do not adjust the size of a tagged type if there is a representation
5245 clause on it. Otherwise, round the adjustment up to the alignment
5246 of the first field and use the appropriate helper routine.
5247 (maybe_pad_type): Do not warn in type annotation mode on a tagged type.
5248 (gnat_to_gnu_field): Do not error out under the same circumstances.
5249 (annotate_rep): In type annotation mode, do not adjust the offset of
5250 components of a tagged type with representation clause. Otherwise,
5251 round the adjustment up to the alignment of the first field.
5252
81f9f420 52532012-04-30 Eric Botcazou <ebotcazou@adacore.com>
5254
5255 * gcc-interface/utils.c (finish_record_type): Force the traditional GCC
5256 layout for bitfields on the type if it is packed or has a representation
5257 clause and an alternate layout is available.
5258
5154a747 52592012-04-30 Eric Botcazou <ebotcazou@adacore.com>
5260
5261 * gcc-interface/gigi.h (mark_out_of_scope): Delete.
5262 (destroy_gnat_to_gnu): Declare.
5263 (destroy_dummy_type): Likewise.
5264 * gcc-interface/decl.c (mark_out_of_scope): Delete.
5265 * gcc-interface/utils.c (destroy_gnat_to_gnu): New function.
5266 (destroy_dummy_type): Likewise.
5267 * gcc-interface/trans.c (gnat_validate_uc_list): New variable.
5268 (gigi): Call validate_unchecked_conversion on gnat_validate_uc_list
147e3036 5269 after the translation is completed. Call destroy_gnat_to_gnu and
5154a747 5270 destroy_dummy_type at the end.
5271 (Subprogram_Body_to_gnu): Do not call mark_out_of_scope.
5272 (gnat_to_gnu) <N_Block_Statement>: Likewise.
5273 <N_Validate_Unchecked_Conversion>: Do not process the node, only push
5274 it onto gnat_validate_uc_list.
5275 (validate_unchecked_conversion): New function.
5276
a18430a0 52772012-04-26 Tristan Gingold <gingold@adacore.com>
5278
5279 * gcc-interface/Make-lang.in: Update dependencies.
5280 Remove s-traceb and tracebak objects from gnat1 and gnatbind (not used).
5281 Remove s-tasdeb and s-vaflop rules (not used).
5282
52832012-04-26 Olivier Hainque <hainque@adacore.com>
5284
5285 * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Default to
5286 DOUBLE_TYPE_SIZE instead of LONG_DOUBLE_TYPE_SIZE.
5287
52882012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
5289
5290 * a-calend.adb (Day_Of_Week): Keep the internal
5291 usage of UTC_Time_Offset consistent with Time_Of and Split.
5292
ce3e25d6 52932012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
5294
5295 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Do not freeze
5296 the loop variable while preanalyzing a quantified expression.
5297
52982012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
5299
5300 * a-calend.adb (Split, Time_Of): Rename parameter Is_Ada_05
5301 to Use_TZ to better illustrate its function. Update all
5302 references to the parameter.
5303 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
5304 * a-calend.ads (Split, Time_Of): Rename parameter Is_Ada_05
5305 to Use_TZ to better illustrate its function. Update the related
5306 comment on usage.
5307 * a-calend-vms.adb (Split, Time_Of): Rename parameter
5308 Is_Ada_05 to Use_TZ to better illustrate its function. Update
5309 all references to the parameter.
5310 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
5311 * a-calend-vms.ads (Split, Time_Of): Rename parameter Is_Ada_05
5312 to Use_TZ to better illustrate its function. Update the related
5313 comment on usage.
5314 * a-calfor.adb (Split, Time_Of): Update the call to
5315 Formatting_Operations.Time_Of.
5316 * sysdep.c (__gnat_localtime_tzoff): Dereference pointer
5317 "is_historic" and rewrite the check as a comparison. Add a
5318 comment on flag values.
5319
53202012-04-26 Robert Dewar <dewar@adacore.com>
5321
5322 * exp_ch2.adb, sem_ch8.adb: Minor reformatting.
5323
53242012-04-26 Vasiliy Fofanov <fofanov@adacore.com>
5325
5326 * a-stzunb-shared.adb, gnat_ugn.texi, a-strunb-shared.adb,
5327 a-strunb-shared.ads, uintp.adb, a-stwiun-shared.adb,
5328 a-stwiun-shared.ads, a-cbhama.ads, vms_data.ads, a-cobove.adb,
5329 a-convec.adb, sem_ch13.adb, a-cbhase.ads: Fix common misuses of the
5330 word "then" where "than" should be used in English.
5331
75f7f24d 53322012-04-26 Robert Dewar <dewar@adacore.com>
5333
5334 * sem_ch5.adb (Check_Unreachable_Code): Skip past pragmas.
5335
53362012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
5337
5338 * s-finroo.ads: Remove with clause for
5339 Ada.Streams. Type Root_Controlled is now abstract tagged null
5340 record. Remove internal package Stream_Attributes. Root_Controlled
5341 doesn't need stream attribute redeclaration and avoids the
5342 dependency on streams.
5343
53442012-04-26 Tristan Gingold <gingold@adacore.com>
5345
5346 * adaint.c (to_host_path_spec): Removed (unused).
5347 Minor reformatting.
5348
53492012-04-26 Steve Baird <baird@adacore.com>
5350
5351 * gnat_rm.texi Improve description of Valid_Scalars attribute.
5352
53532012-04-26 Ed Schonberg <schonberg@adacore.com>
5354
5355 * sem_ch6.adb (Can_Override_Operator): If the formal is a
5356 generic type the operator cannot be overriding.
5357
53582012-04-26 Ed Schonberg <schonberg@adacore.com>
5359
5360 * sem_ch8.adb (Spec_Reloaded_For_Body): Check whether the type
5361 is declared in a package specification, and current unit is the
5362 corresponding package body. The use clauses themselves may be
5363 within a nested package.
5364
53652012-04-26 Bob Duff <duff@adacore.com>
5366
5367 * exp_ch2.adb (Param_Entity): Take into account the case where
5368 the type of the entry parameter has a representation clause.
5369
a9469533 53702012-04-26 Ed Schonberg <schonberg@adacore.com>
5371
5372 * gnat_ugn.texi: Tweak dimensionality doc.
5373
53742012-04-26 Robert Dewar <dewar@adacore.com>
5375
5376 * sem_eval.adb: Minor reformatting.
5377
0a4dc67b 53782012-04-26 Robert Dewar <dewar@adacore.com>
5379
5380 * einfo.adb, einfo.ads, sem_res.adb, sem_ch4.adb,
5381 sem_eval.adb: Minor reformatting.
5382
53832012-04-26 Thomas Quinot <quinot@adacore.com>
5384
5385 * freeze.adb: Minor change in error wording.
5386
53872012-04-26 Ed Schonberg <schonberg@adacore.com>
5388
5389 * gnat_ugn.texi: Documentation on dimensional analysis.
5390
53912012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
5392
5393 * einfo.adb, einfo.ads: Remove synthesized attribute
5394 Proper_First_Index along with its associations in various nodes.
5395 (Proper_First_Index): Removed.
5396 * sem_ch4.adb (Analyze_Slice): Alphabetize constants. Add new
5397 local variable Index_Type. The index type of a string literal
5398 subtype is that of the stored low bound.
5399 * sem_eval (Get_Static_Length): Remove the use of Proper_First_Index.
5400 * sem_res.adb (Resolve_Slice): Alphabetize constants. Add
5401 new local variable Index_Type. The index type of a
5402 string literal subtype is that of the stored low bound.
5403 (Set_String_Literal_Subtype): Code reformatting.
5404
cae6218b 54052012-04-26 Robert Dewar <dewar@adacore.com>
5406
5407 * exp_aggr.adb: Minor reformatting.
5408
54092012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
5410
5411 * exp_ch7.adb (Expand_Cleanup_Actions): Update the call to
5412 Requires_Cleanup_Actions.
5413 * exp_util.adb (Requires_Cleanup_Actions (List_Id; Boolean;
5414 Boolean)): Rename formal parameter For_Package to Lib_Level to
5415 better reflect its purpose. Update the related comment and all
5416 occurrences of For_Package in the body.
5417 (Requires_Cleanup_Actions
5418 (Node_Id; Boolean)): Add new formal parameter Lib_Level. Add
5419 local constant At_Lib_Level to keep monitor whether the path
5420 taken from the top-most context to the current construct involves
5421 package constructs. Update all calls to Requires_Cleanup_Actions.
5422 * exp_util.ads (Requires_Cleanup_Actions): Add new formal
5423 parameter Lib_Level and associated comment.
5424
54252012-04-26 Ed Schonberg <schonberg@adacore.com>
5426
5427 * sem_ch6.adb (Process_Formals): If the type of the formal is
5428 a non null access type, mark the generated subtype as having a
5429 delayed freeze only if the designated type is not frozen yet.
5430
54312012-04-26 Vincent Celier <celier@adacore.com>
5432
5433 * prj-attr.adb: New package Clean with attributes
5434 Object_Artifact_Extensions and Source_Artifact_Extensions.
5435 * prj-nmsc.adb (Process_Clean): Process new package Clean
5436 * prj.ads (Language_Config): New components
5437 Clean_Object_Artifacts and Clean_Source_Artifacts.
5438 * snames.ads-tmpl: New standard names Clean,
5439 Object_Artifact_Extensions and Source_Artifact_Extensions.
5440
a60794e6 54412012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
5442
5443 * einfo.adb (Proper_First_Index): Moved from Sem_Util.
5444 * einfo.ads: Add new synthesized attribute Proper_First_Index
5445 along with usage in nodes.
5446 (Proper_First_Index): Moved from Sem_Util.
5447 * sem_util.ads, sem_util.adb (Proper_First_Index): Moved to Einfo.
5448
54492012-04-26 Gary Dismukes <dismukes@adacore.com>
5450
5451 * layout.adb (Layout_Component_List): Test for the case of a
5452 single variant and the size of its component list was computed
5453 as an integer literal, and use that size (which is in bits)
5454 as is rather than converting to storage units.
5455
54562012-04-26 Robert Dewar <dewar@adacore.com>
5457
5458 * exp_aggr.adb: Minor reformatting.
5459
2884c9d1 54602012-04-26 Robert Dewar <dewar@adacore.com>
5461
5462 * sem_util.adb: Minor reformatting.
5463
54642012-04-26 Thomas Quinot <quinot@adacore.com>
5465
5466 * exp_aggr.adb, exp_pakd.adb (Setup_Inline_Packed_Array_Reference,
5467 Packed_Array_Aggregate_Handled.Get_Component_Val):
5468 Reverse bit numbering within PAT when Reverse_Storage_Order
5469 applies to the enclosing record.
5470
54712012-04-26 Thomas Quinot <quinot@adacore.com>
5472
5473 * freeze.adb (Freeze_Record_Type): Improve error message for
5474 Scalar_Storage_Order inconsistent with Bit_Order.
5475
f572eafb 54762012-04-25 Gary Dismukes <dismukes@adacore.com>
5477
5478 * exp_ch9.adb: Add comments on the usage of the
5479 lock-free data structures.
5480
54812012-04-25 Vincent Pucci <pucci@adacore.com>
5482
5483 * exp_intr.adb (Expand_Shift): Convert the left
5484 operand and the operator when the type of the call differs from
5485 the type of the operator.
5486
54872012-04-25 Geert Bosch <bosch@adacore.com>
5488
5489 * stand.ads: Minor comment fix.
5490
54912012-04-25 Hristian Kirtchev <kirtchev@adacore.com>
5492
5493 * sem_ch4.adb (Analyze_Slice): Handle the case where the prefix
5494 is a string literal. Retrieve the first index from the base type
5495 when slicing a string literal.
5496 * sem_ch12.adb (Check_Private_View): Move the initialization
5497 of the type inside the loop to reflect the changing index.
5498 * sem_eval.adb (Eval_Relational_Op): Retrieve the first index
5499 from the base type when dealing with a string literal.
5500 * sem_res.adb (Resolve_Slice): Retrieve the first index from
5501 the base type when slicing a string literal.
5502 * sem_util.adb (Is_Internally_Generated_Renaming): New routine.
5503 (Is_Object_Reference): String literals may act
5504 as object references only when they are renamed internally.
5505 (Proper_First_Index): New routine.
5506 * sem_util.ads (Proper_First_Index): New routine.
5507
e12ab46d 55082012-04-25 Robert Dewar <dewar@adacore.com>
5509
5510 * sem_ch3.adb, csinfo.adb, lib-writ.adb, sem_ch12.adb,
5511 lib-xref.adb: Minor reformatting.
5512
55132012-04-25 Hristian Kirtchev <kirtchev@adacore.com>
5514
5515 * exp_ch9.adb: Rename Lock_Free_Sub_Type
5516 to Lock_Free_Subprogram. Remove type Subprogram_Id.
5517 Rename LF_Sub_Table to Lock_Free_Subprogram_Table.
5518 (Allow_Lock_Free_Implementation): Renamed to
5519 Allows_Lock_Free_Implementation. Update the comment on
5520 lock-free restrictions. Code clean up and restructuring.
5521 (Build_Lock_Free_Protected_Subprogram_Body): Update the
5522 profile and related comments. Code clean up and restructuring.
5523 (Build_Lock_Free_Unprotected_Subprogram_Body): Update the
5524 profile and related comments. Code clean up and restructuring.
5525 (Comp_Of): Removed.
5526
841fbb5a 55272012-04-25 Vincent Celier <celier@adacore.com>
5528
5529 * sem_ch12.adb (Inherit_Context): Compare library units, not
5530 names of units, when checking if a unit is already in the context.
5531
55322012-04-25 Thomas Quinot <quinot@adacore.com>
5533
5534 * sem_ch3.adb: Reverse_Storage_Order must be propagated to
5535 untagged derived record types.
5536
55372012-04-25 Ed Schonberg <schonberg@adacore.com>
5538
5539 * lib-xref.adb: Adjust position of end label.
5540
ff2a5ada 55412012-04-22 Jan Hubicka <jh@suse.cz>
5542
5543 * gcc-interface/utils.c (gnat_write_global_declarations): Do not mark
5544 needed node.
5545
8efa224a 55462012-04-20 Jan Hubicka <jh@suse.cz>
5547
5548 * gcc-interface/utils.c (gnat_write_global_declarations): Update for new
5549 force_output placement.
5550
7d0d0ce1 55512012-04-14 Jan Hubicka <jh@suse.cz>
5552
5553 * gcc-interface/trans.c (finalize_nrv): Update field referenced for new
5554 cgraph/varpool layout.
5555
e6b3ff04 55562012-04-09 Mike Stump <mikestump@comcast.net>
5557
5558 * a-assert.ads: Remove execute permission.
5559 * a-chacon.ads: Likewise.
5560 * a-coteio.ads: Likewise.
5561 * a-envvar.ads: Likewise.
5562 * a-exetim-mingw.ads: Likewise.
5563 * a-fzteio.ads: Likewise.
5564 * a-izteio.ads: Likewise.
5565 * a-lcteio.ads: Likewise.
5566 * a-llctio.ads: Likewise.
5567 * a-scteio.ads: Likewise.
5568 * a-suenco.ads: Likewise.
5569 * a-suenst.ads: Likewise.
5570 * a-suewst.ads: Likewise.
5571 * a-suezst.ads: Likewise.
5572 * a-tirsfi.ads: Likewise.
5573 * a-wichha.ads: Likewise.
5574 * a-zchara.ads: Likewise.
5575 * a-zchhan.ads: Likewise.
5576 * a-zchuni.ads: Likewise.
5577 * a-zrstfi.ads: Likewise.
5578 * aspects.ads: Likewise.
5579 * g-byorma.ads: Likewise.
5580 * g-decstr.ads: Likewise.
5581 * g-encstr.ads: Likewise.
5582 * g-spchge.ads: Likewise.
5583 * g-u3spch.ads: Likewise.
5584 * g-wispch.ads: Likewise.
5585 * g-zspche.ads: Likewise.
5586 * namet-sp.ads: Likewise.
5587 * s-os_lib.ads: Likewise.
5588 * s-regexp.ads: Likewise.
5589 * s-regpat.ads: Likewise.
5590 * s-string.ads: Likewise.
5591 * s-tasloc.ads: Likewise.
5592 * s-utf_32.ads: Likewise.
5593 * sem_aux.ads: Likewise.
5594 * a-assert.adb: Likewise.
5595 * a-chacon.adb: Likewise.
5596 * a-envvar.adb: Likewise.
5597 * a-exetim-mingw.adb: Likewise.
5598 * a-suenco.adb: Likewise.
5599 * a-suenst.adb: Likewise.
5600 * a-suewst.adb: Likewise.
5601 * a-suezst.adb: Likewise.
5602 * a-tirsfi.adb: Likewise.
5603 * a-wichha.adb: Likewise.
5604 * a-zchhan.adb: Likewise.
5605 * a-zchuni.adb: Likewise.
5606 * a-zrstfi.adb: Likewise.
5607 * aspects.adb: Likewise.
5608 * g-byorma.adb: Likewise.
5609 * g-decstr.adb: Likewise.
5610 * g-encstr.adb: Likewise.
5611 * g-spchge.adb: Likewise.
5612 * g-u3spch.adb: Likewise.
5613 * g-wispch.adb: Likewise.
5614 * g-zspche.adb: Likewise.
5615 * namet-sp.adb: Likewise.
5616 * s-except.adb: Likewise.
5617 * s-inmaop-vxworks.adb: Likewise.
5618 * s-os_lib.adb: Likewise.
5619 * s-regexp.adb: Likewise.
5620 * s-regpat.adb: Likewise.
5621 * s-string.adb: Likewise.
5622 * s-tasloc.adb: Likewise.
5623 * s-utf_32.adb: Likewise.
5624 * s-wchcon.adb: Likewise.
5625 * sem_aux.adb: Likewise.
5626
2a9b01cb 56272012-04-02 Robert Dewar <dewar@adacore.com>
5628
5629 * s-atopri.ads: Minor reformatting.
5630
56312012-04-02 Thomas Quinot <quinot@adacore.com>
5632
5633 * sem_util.adb: Minor reformatting, minor code cleanup.
5634
56352012-04-02 Ed Schonberg <schonberg@adacore.com>
5636
5637 * lib-xref.adb (Generate_Reference): For a reference to an
5638 operator symbol, set the sloc to point to the first character
5639 of the operator name, and not to the initial quaote.
5640 (Output_References): Ditto for the definition of an operator
5641 symbol.
5642
56432012-04-02 Vincent Celier <celier@adacore.com>
5644
5645 * ali.adb (Scan_Ali): Recognize Z lines. Set
5646 Implicit_With_From_Instantiation to True in the With_Record for
5647 Z lines.
5648 * ali.ads (With_Record): New Boolean component
5649 Implicit_With_From_Instantiation, defaulted to False.
5650 * csinfo.adb: Indicate that Implicit_With_From_Instantiation
5651 is special
5652 * lib-writ.adb (Write_ALI): New array Implicit_With.
5653 (Collect_Withs): Set Implicit_With for the unit is it is not Yes.
5654 (Write_With_Lines): Write a Z line instead of a W line if
5655 Implicit_With is Yes for the unit.
5656 * sem_ch12.adb (Inherit_Context): Only add a unit in the context
5657 if it is not there yet.
5658 * sinfo.ads: New flag Implicit_With_From_Instantiation (Flag12)
5659 added.
5660
7a19298b 56612012-04-02 Yannick Moy <moy@adacore.com>
5662
5663 * osint.adb, osint.ads (Add_Default_Search_Dirs): Add library
5664 search dirs in file specified with option -gnateO.
5665
56662012-04-02 Robert Dewar <dewar@adacore.com>
5667
5668 * sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb: Minor
5669 reformatting.
5670
56712012-04-02 Olivier Hainque <hainque@adacore.com>
5672
5673 * g-sse.ads: Add x86-solaris and x86_64-darwin to the set of
5674 platforms where the use of this spec is supported. Add current
5675 year to the copyright notice.
5676 * gcc-interfaces/Makefile.in: Add g-sse.o and g-ssvety.o to
5677 EXTRA_GNATRTL_NONTASKING_OBJS on x86 32/64 targets that support
5678 it and where they were missing (x86-solaris, x86-freebsd,
5679 x86_64-freebsd, and x86-darwin).
5680
56812012-04-02 Gary Dismukes <dismukes@adacore.com>
5682
5683 * bindgen.adb (Gen_Ada_Init): When compiling for the AAMP small
5684 library, where we no longer suppress the Standard_Library,
5685 generate an empty body rather than the usual generation of
5686 assignments to imported globals, since those aren't present in
5687 the small library.
5688
56892012-04-02 Ed Schonberg <schonberg@adacore.com>
5690
5691 * sinfo.ads: Minor documentation fix.
5692
56932012-04-02 Hristian Kirtchev <kirtchev@adacore.com>
5694
5695 * sem_res.adb (Resolve_Conditional_Expression): Add local variables
5696 Else_Typ and Then_Typ. Add missing type conversions to the "then" and
5697 "else" expressions when their respective types are scalar.
5698
56992012-04-02 Vincent Pucci <pucci@adacore.com>
5700
5701 * exp_ch9.adb: Reordering of the local subprograms. New Table
5702 for the lock free implementation that maps each protected
5703 subprograms with the protected component it references.
5704 (Allow_Lock_Free_Implementation): New routine. Check if
5705 the protected body enables the lock free implementation.
5706 (Build_Lock_Free_Protected_Subprogram_Body): New routine.
5707 (Build_Lock_Free_Unprotected_Subprogram_Body): New routine.
5708 (Comp_Of): New routine.
5709 * Makefile.rtl: Add s-atopri.o
5710 * debug.adb: New compiler debug flag -gnatd9 for lock free
5711 implementation.
5712 * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
5713 RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
5714 RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
5715 RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, RE_Uint8,
5716 RE_Uint16, RE_Uint32, RE_Uint64 added.
5717 * s-atropi.ads: New file. Defines atomic primitives used
5718 by the lock free implementation.
5719
0baac39e 57202012-04-02 Emmanuel Briot <briot@adacore.com>
5721
5722 * g-expect.adb (Expect_Internal): Fix leak of the input file descriptor.
5723
57242012-04-02 Hristian Kirtchev <kirtchev@adacore.com>
5725
5726 * exp_ch4.adb (Expand_N_Quantified_Expression): Reimplemented.
5727 The expansion no longer uses the copy of the original QE created
5728 during analysis.
5729 * sem.adb (Analyze): Add processing for loop parameter specifications.
5730 * sem_ch4.adb (Analyze_Quantified_Expression): Reimplemented. The
5731 routine no longer creates a copy of the original QE. All
5732 constituents of a QE are now preanalyzed and resolved.
5733 * sem_ch5.adb (Analyze_Iteration_Scheme): Remove the guard which
5734 bypasses all processing when the iteration scheme is related to a
5735 QE. Relovate the code which analyzes loop parameter specifications
5736 to a separate routine. (Analyze_Iterator_Specification):
5737 Preanalyze the iterator name. This action was originally
5738 done in Analyze_Iteration_Scheme. Update the check which
5739 detects an iterator specification in the context of a QE.
5740 (Analyze_Loop_Parameter_Specification): New routine. This
5741 procedure allows for a stand-alone analysis of a loop parameter
5742 specification without the need of a parent iteration scheme. Add
5743 code to update the type of the loop variable when the range
5744 generates an itype and the context is a QE.
5745 (Pre_Analyze_Range): Renamed to Preanalyze_Range. Update all references
5746 to the routine.
5747 * sem_ch5.ads: Code reformatting.
5748 (Analyze_Loop_Parameter_Specification): New routine.
5749 * sem_ch6.adb (Fully_Conformant_Expressions): Detect a case
5750 when establishing conformance between two QEs utilizing different
5751 specifications.
5752 * sem_res.adb (Proper_Current_Scope): New routine.
5753 (Resolve): Do not resolve a QE as there is nothing to be done now.
5754 Ignore any loop scopes generated for QEs when detecting an expression
5755 function as the scopes are cosmetic and do not appear in the tree.
5756 (Resolve_Quantified_Expression): Removed. All resolution of
5757 QE constituents is now performed during analysis. This ensures
5758 that loop variables appearing in array aggregates are properly
5759 resolved.
5760
57612012-04-02 Ed Schonberg <schonberg@adacore.com>
5762
5763 * sem_util.adb (Build_Default_Subtype): If the base type is
5764 private and its full view is available, use the full view in
5765 the subtype declaration.
5766
d94b1a63 57672012-04-02 Jose Ruiz <ruiz@adacore.com>
5768
5769 * gnat_ugn.texi: Add some minimal documentation about how to
5770 use GNATtest for cross platforms.
5771
57722012-04-02 Vincent Celier <celier@adacore.com>
5773
5774 * opt.ads (Object_Path_File_Name): New variable.
5775 * prj-attr.adb: New Compiler attribute Object_Path_Switches.
5776 * prj-nmsc.adb (Process_Compiler): Recognize new attribute
5777 Object_Path_Switches.
5778 * snames.ads-tmpl: New standard name Object_Path_Switches.
5779 * switch-c.adb (Scan_Front_End_Switches): Recognize new switch
5780 -gnateO= and put its value in Opt.Object_Path_File_Name.
5781
849f127a 57822012-04-02 Hristian Kirtchev <kirtchev@adacore.com>
5783
5784 * exp_ch7.adb (Process_Declarations): Detect a case where
5785 a source object was initialized by another source object,
5786 but the expression was rewritten as a class-wide conversion
5787 of Ada.Tags.Displace.
5788 * exp_util.adb (Initialized_By_Ctrl_Function): Removed.
5789 (Is_Controlled_Function_Call): New routine.
5790 (Is_Displacement_Of_Ctrl_Function_Result): Removed.
5791 (Is_Displacement_Of_Object_Or_Function_Result): New routine.
5792 (Is_Source_Object): New routine.
5793 (Requires_Cleanup_Actions): Detect a case where a source object was
5794 initialized by another source object, but the expression was rewritten
5795 as a class-wide conversion of Ada.Tags.Displace.
5796 * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed.
5797 (Is_Displacement_Of_Object_Or_Function_Result): New routine.
5798
57992012-04-02 Ed Schonberg <schonberg@adacore.com>
5800
5801 * sem_res.adb (Resolve_Call): A call to an expression function
5802 does not freeze if it appears in a different scope from the
5803 expression function itself. Such calls appear in the generated
5804 bodies of other expression functions, or in pre/postconditions
5805 of subsequent subprograms.
5806
98564bfc 58072012-04-02 Yannick Moy <moy@adacore.com>
5808
5809 * lib-xref-alfa.adb: Code clean up.
5810
58112012-04-02 Ed Schonberg <schonberg@adacore.com>
5812
5813 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Do not suppress
5814 style checks, because the subprogram instance itself may contain
5815 violations of syle rules.
5816 * style.adb (Missing_Overriding): Check for missing overriding
5817 indicator on a subprogram instance.
5818
58192012-04-02 Hristian Kirtchev <kirtchev@adacore.com>
5820
5821 * sem_ch6.adb (Last_Implicit_Declaration): New routine.
5822 (Process_PPCs): Insert the body of _postconditions after the
5823 last internally generated declaration. This ensures that actual
5824 subtypes created for formal parameters are visible and properly
5825 frozen as _postconditions may reference them.
5826
d52c146a 58272012-04-02 Robert Dewar <dewar@adacore.com>
5828
5829 * einfo.adb (First_Component_Or_Discriminant) Now applies to
5830 all types with discriminants, not just records.
5831 * exp_attr.adb (Expand_N_Attribute): Add Scalar_Values handling
5832 for arrays, scalars and non-variant records.
5833 * sem_attr.adb (Analyze_Attribute): Handle Valid_Scalars
5834 * sem_attr.ads (Valid_Scalars): Update description
5835 * sem_util.ads, sem_util.adb (No_Scalar_Parts): New function.
5836
af403aef 58372012-03-31 Eric Botcazou <ebotcazou@adacore.com>
5838
5839 Revert
5840 2012-03-25 Eric Botcazou <ebotcazou@adacore.com>
5841
5842 * gcc-interface/decl.c (SS_MARK_NAME): New define.
5843 (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
5844 whose name is SS_MARK_NAME.
5845
d5be9f38 58462012-03-30 Robert Dewar <dewar@adacore.com>
5847
5848 * exp_ch5.adb, sem_util.adb, exp_ch4.adb: Minor comment updates.
5849
58502012-03-30 Yannick Moy <moy@adacore.com>
5851
5852 * lib-xref-alfa.adb (Add_Alfa_File): Treat possibly 2 units at the same
5853 time, putting all scopes in the same Alfa file.
5854 (Add_Alfa_Xrefs): Correct errors in comparison function. Correct value
5855 of Def component.
5856 (Collect_Alfa): Possibly pass 2 units to Add_Alfa_File.
5857
81dd521a 58582012-03-30 Hristian Kirtchev <kirtchev@adacore.com>
5859
5860 * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Handle a case where
5861 a build-in-place call appears as Prefix'Reference'Reference.
5862
58632012-03-30 Yannick Moy <moy@adacore.com>
5864
5865 * lib-xref-alfa.adb: Minor refactoring to remove internal package.
5866
58672012-03-30 Hristian Kirtchev <kirtchev@adacore.com>
5868
5869 * sem_ch5.adb (Analyze_Iteration_Scheme): Preanalyze the subtype
5870 definition of a loop when the context is a quantified expression.
5871
58722012-03-30 Vincent Celier <celier@adacore.com>
5873
5874 * prj.ads: Minor comment update.
5875
8b22ebf6 58762012-03-30 Yannick Moy <moy@adacore.com>
5877
5878 * lib-xref-alfa.adb, alloc.ads, lib-xref.ads: Minor addition of
5879 comments and refactoring.
5880
6ab9aa28 58812012-03-30 Robert Dewar <dewar@adacore.com>
5882
5883 * lib-xref.adb, lib-xref-alfa.adb: Minor reformatting & code
5884 reorganization.
5885
96b0dd1e 58862012-03-30 Yannick Moy <moy@adacore.com>
5887
5888 * lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit
5889 instead of Get_Source_Unit to get file for reference.
5890 (Traverse_Compilation_Unit): Do not add scopes for generic units.
5891 * lib-xref.adb (Generate_Reference): Use Get_Code_Unit instead
5892 of Get_Source_Unit to get file for reference.
5893 * sem_ch12.adb (Analyze_Package_Instantiation): Enable
5894 instantiation in Alfa mode.
5895
14980c45 58962012-03-30 Hristian Kirtchev <kirtchev@adacore.com>
5897
5898 * exp_ch7.adb (Process_Declarations): Replace
5899 the call to Is_Null_Access_BIP_Func_Call with
5900 Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
5901 * exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed.
5902 (Is_Secondary_Stack_BIP_Func_Call): New routine.
5903 (Requires_Cleanup_Actions): Replace
5904 the call to Is_Null_Access_BIP_Func_Call with
5905 Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
5906 * exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed.
5907 (Is_Secondary_Stack_BIP_Func_Call): New routine.
5908
59092012-03-30 Yannick Moy <moy@adacore.com>
5910
5911 * lib-xref-alfa.adb, lib-xref.adb: Code clean ups.
5912
b4d9f546 59132012-03-30 Gary Dismukes <dismukes@adacore.com>
5914
5915 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a
5916 loop entity which is rewritten as a renaming
5917 of the indexed array, explicitly mark the entity as needing
5918 debug info so that Materialize entity will be set later by
5919 Debug_Renaming_Declaration when the renaming is expanded.
5920
59212012-03-30 Robert Dewar <dewar@adacore.com>
5922
5923 * sem_attr.ads: Update comment.
5924
d0d085af 59252012-03-30 Vincent Celier <celier@adacore.com>
5926
5927 * prj.ads: New Dependency_Kind: ALI_Closure.
5928
59292012-03-30 Thomas Quinot <quinot@adacore.com>
5930
5931 * exp_pakd.adb: Minor reformatting.
5932
00a8e50e 59332012-03-30 Yannick Moy <moy@adacore.com>
5934
5935 * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence
5936 of compilation unit for unit in Sdep_Table.
5937
9f071888 59382012-03-30 Thomas Quinot <quinot@adacore.com>
5939
5940 * freeze.adb (Freeze_Record_Type): For a type with reversed bit
5941 order and reversed storage order, disable front-end relayout.
5942
db056468 59432012-03-25 Eric Botcazou <ebotcazou@adacore.com>
5944
5945 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Copy
5946 the TYPE_PACKED flag from the base type.
5947
3a4b0b99 59482012-03-25 Eric Botcazou <ebotcazou@adacore.com>
5949
5950 * gcc-interface/decl.c (SS_MARK_NAME): New define.
5951 (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
5952 whose name is SS_MARK_NAME.
5953
ae16f71d 59542012-03-25 Eric Botcazou <ebotcazou@adacore.com>
5955
5956 * gcc-interface/utils.c (add_parallel_type): Take a TYPE instead of a
5957 DECL and adjust. Move around.
5958 (has_parallel_type): New predicate.
5959 (rest_of_record_type_compilation): Return early if the type already
5960 has a parallel type.
5961 * gcc-interface/gigi.h (add_parallel_type): Adjust.
5962 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes.
5963
96e7147a 59642012-03-25 Eric Botcazou <ebotcazou@adacore.com>
5965
5966 * gcc-interface/utils.c (finish_record_type): Return early for padded
5967 types and tidy up.
5968
fbd95193 59692012-03-20 Arnaud Charlet <charlet@adacore.com>
5970
5971 * hlo.ads, hlo.adb: Removed, no longer used.
5972 * gcc-interface/Make-lang.in: Remove hlo.o. Update dependencies.
5973 * gcc-interface/Makefile.in: Remove EXTRA_LIBGNAT_SRCS (temporarly)
5974 and compute it from EXTRA_LIBGNAT_OBJS.
5975 Clean up comments, reorder LIBGNAT_SRCS and LIBGNAT_OBJS.
5976
0a13aca8 59772012-03-20 Yannick Moy <moy@adacore.com>
5978
5979 * gnat_rm.texi, sem_attr.ads: Update documentation.
5980
9b8df6be 59812012-03-19 Yannick Moy <moy@adacore.com>
5982
5983 * sem_ch6.adb: Minor code clean up.
5984
59852012-03-19 Vincent Celier <celier@adacore.com>
5986
5987 * make.adb (Scan_Make_Arg): Make sure all significant -m switches
5988 on the command line are counted.
5989
59902012-03-19 Robert Dewar <dewar@adacore.com>
5991
5992 * sem_elab.adb (Generate_Elab_Warnings): Fix spec, fix attribute
5993 reference case
5994
59952012-03-19 Robert Dewar <dewar@adacore.com>
5996
5997 * par-ch4.adb (Check_Bad_Exp): New procedure
5998
59992012-03-19 Robert Dewar <dewar@adacore.com>
6000
6001 * exp_attr.adb, sem_attr.adb, sem_attr.ads, snames.ads-tmpl: Add
6002 initial framework for Valid_Scalars attribute.
6003
60042012-03-19 Robert Dewar <dewar@adacore.com>
6005
6006 * scng.adb (Scan): Recognize incorrect preprocessor directive
6007
60082012-03-19 Robert Dewar <dewar@adacore.com>
6009
6010 * atree.adb (Allocate_Initialize_Node): Use Num_Extension_Nodes
6011 * atree.ads (Num_Extension_Nodes): New variable
6012 * debug.adb: New debug flag -gnatd.N
6013 * gnat1drv.adb (Adjust_Global_Switches): Adjust
6014 Num_Extension_Nodes if -gnatd.N set
6015
60162012-03-19 Eric Botcazou <ebotcazou@adacore.com>
6017
6018 * einfo.ads: Minor update to First_Rep_Item and Has_Gigi_Rep_Item
6019 descriptions.
6020
60212012-03-19 Robert Dewar <dewar@adacore.com>
6022
6023 * opt.ads: Remove HLO_Active flag.
6024 * sem.adb: Remove call of high level optimizer.
6025 * sem.ads (New_Nodes_OK): Removed.
6026 * sem_ch10.adb: Remove references to New_Nodes_OK.
6027 * switch-c.adb: Remove handling of -gnatH switch.
6028
e6ae24fa 60292012-03-19 Yannick Moy <moy@adacore.com>
6030
6031 * sem_ch6.adb (Check_Subprogram_Contract): Do not emit warnings
6032 on trivially True or False postconditions and Ensures components
6033 of contract-cases.
6034
60352012-03-19 Robert Dewar <dewar@adacore.com>
6036
6037 * gnat_ugn.texi: Fix index entry for -gnatei (now we have
6038 ug_words entry).
6039
eede3b44 60402012-03-19 Hristian Kirtchev <kirtchev@adacore.com>
6041
6042 * sem_ch3.adb (Get_Discriminant_Value): Instead of looking
6043 at the immediate correcponsing discriminant, traverse a
6044 potential chain of discriminants produced by type derivations.
6045 (Root_Corresponding_Discriminant): Traverse a chain of inherited
6046 discriminants and return the topmost discriminant.
6047
60482012-03-19 Bob Duff <duff@adacore.com>
6049
6050 * debug.adb: Minor comment change.
6051 * gnat_ugn.texi: Update documentation for elaboration regarding
6052 indirect calls.
6053
60542012-03-19 Gary Dismukes <dismukes@adacore.com>
6055
6056 * exp_ch3.adb (Expand_N_Object_Declaration): In
6057 the case of an object of a class-wide interface type, where the
6058 declaration is rewritten as a renaming, call Set_Debug_Info_Needed
6059 on the renaming entity so that Materialize_Entity will be
6060 set. Also, change existing call (for other than interface cases)
6061 to call Set_Debug_Info_Needed rather than Set_Needs_Debug_Info
6062 (as specified for that flag).
6063
efe1035c 60642012-03-19 Hristian Kirtchev <kirtchev@adacore.com>
6065
6066 * sem_ch4.adb (Analyze_Allocator): Detect an allocator generated
6067 by the build-in-place machinery where the designated type is
6068 indefinite, but the underlying type is not. Do not emit errors
6069 related to missing initialization in this case.
6070
60712012-03-19 Robert Dewar <dewar@adacore.com>
6072
6073 * gnat_ugn.texi: Add documentation for -gnateinnn switch.
6074 * sem_elab.adb, put_alfa.adb, lib-xref-alfa.adb: Minor reformatting.
6075 * sem_prag.adb: Minor comment update.
6076
de2e6464 60772012-03-15 Robert Dewar <dewar@adacore.com>
6078
6079 * errout.ads: Add entry for translating -gnateinn to
6080 /MAX_INSTANTIATIONS for VMS.
6081 * hostparm.ads (Max_Instantiations): Moved to Opt.
6082 * opt.ads (Maximum_Instantiations): Moved from Hostparm, and renamed.
6083 * sem_ch12.adb (Maximum_Instantiations): New name of
6084 Max_Instantiations (Analyze_Package_Instantiation): Change error
6085 msg for too many instantiations (mention -gnateinn switch).
6086 * switch-c.adb (Scan_Front_End_Switches): Implement -gnateinn switch.
6087 * switch.ads: Minor comment update.
6088 * usage.adb (Usage): Output line for -maxeinn switch.
6089 * vms_data.ads: Add entry for MAX_INSTANTIATIONS (-gnateinn).
6090
60912012-03-15 Yannick Moy <moy@adacore.com>
6092
6093 * alfa.ads Update the decription of ALI sections.
6094 (Alfa_File_Record): Add a component Unit_File_Name to store the
6095 unit file name for subunits.
6096 * get_alfa.adb, put_alfa.adb Adapt to the possible presence of
6097 a unit file name.
6098 * lib-xref-alfa.adb (Add_Alfa_File): For subunits, retrieve the
6099 file name of the unit.
6100
61012012-03-15 Yannick Moy <moy@adacore.com>
6102
6103 * sem_ch6.adb (Check_Subprogram_Contract): Do
6104 not issue warning on missing 'Result in postcondition if all
6105 postconditions and contract-cases already get a warning for only
6106 referring to pre-state.
6107
61082012-03-15 Bob Duff <duff@adacore.com>
6109
6110 * debug.adb: Add new debug switch -gnatd.U, which disables the
6111 support added below, in case someone trips over a cycle, and needs
6112 to disable this.
6113 * sem_attr.adb (Analyze_Access_Attribute):
6114 Treat Subp'Access as a call for elaboration purposes.
6115 * sem_elab.ads, sem_elab.adb (Check_Elab_Call): Add support
6116 for Subp'Access.
6117
239fc533 61182012-03-15 Vincent Pucci <pucci@adacore.com>
6119
6120 * sem.ads, sem.adb (Preanalyze): New routine.
6121 * sem_ch4.adb (Analyze_Quantified_Expression): Call to the
6122 Preanalyze routine in Sem added. Renaming of Needs_Expansion
6123 into Need_Preanalysis.
6124 * sem_ch6.adb (Preanalyze): Removed.
6125
fc859004 61262012-03-15 Robert Dewar <dewar@adacore.com>
6127
6128 * sem_ch4.adb (Analyze_Quantified_Expression): Add comment.
6129 * sem_prag.adb: Minor comment additions.
6130 * sem_attr.adb (Check_First_Last_Valid): Make sure prefix type
6131 is frozen.
6132
ef3d7c7d 61332012-03-15 Vincent Pucci <pucci@adacore.com>
6134
6135 * sem_ch4.adb (Analyze_Quantified_Expression):
6136 Preanalyze the condition when the quantified expression will be
6137 further expanded.
6138
61392012-03-15 Yannick Moy <moy@adacore.com>
6140
6141 * sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, sem_ch6.adb,
6142 sem_warn.adb: Minor refactoring, renaming Case_Pragma in CTC_Pragma,
6143 to refer to both Test_Case pragma and Contract_Case pragma (same
6144 acronym as in Spec_CTC_List).
6145
defed25d 61462012-03-15 Robert Dewar <dewar@adacore.com>
6147
6148 * sem_prag.adb, sem_prag.ads, sem_util.ads, sem_attr.adb, sem_ch6.adb,
6149 sem_warn.adb: Minor reformatting.
6150
469bbc18 61512012-03-15 Hristian Kirtchev <kirtchev@adacore.com>
6152
6153 * exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over
6154 selector names as the function call always appears at the top selected
6155 component.
6156
61572012-03-15 Ed Schonberg <schonberg@adacore.com>
6158
6159 * sem_ch12.adb (Validate_Access_Subprogram_Instance): keep
6160 Mode_Conformance check for older versions of the language.
6161
61622012-03-15 Yannick Moy <moy@adacore.com>
6163
6164 * gnat_ugn.texi Document the extension of option -gnatw.t.
6165 * sem_ch3.adb (Analyze_Declaration): Check for suspicious
6166 contracts only after contract cases have been semantically
6167 analyzed.
6168 * sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures
6169 components of contract cases for detecting suspicious contracts.
6170
fad014fe 61712012-03-15 Yannick Moy <moy@adacore.com>
6172
6173 * aspects.adb, aspects.ads (Aspect_Id): New GNAT aspect
6174 Aspect_Contract_Case.
6175 * gnat_rm.texi Document the new pragma/aspect
6176 Contract_Case. Correct the documentation of the existing
6177 pragma/aspect Test_Case with the new semantics.
6178 * sem_attr.adb (Analyze_Attribute): Allow use of 'Result in the
6179 Ensures component of a Contract_Case pragma.
6180 * sem_ch13.adb (Analyze_Aspect_Specifications): Check new aspect
6181 and translate it into a pragma.
6182 (Check_Aspect_At_Freeze_Point): Take into account the new aspect.
6183 * sem_ch3.adb, sinfo.adb, sinfo.ads Renaming of TC (for test case)
6184 into CTC (for contract and test case).
6185 * sem_ch6.adb (Process_PPCs): Generate Check pragmas from
6186 Contract_Case pragmas, similarly to what is done already for
6187 postconditions.
6188 * sem_prag.adb, sem_prag.ads (Check_Contract_Or_Test_Case):
6189 Renaming of Check_Test_Case.
6190 (Analyze_Pragma, Sig_Flags): Take into account the new pragma.
6191 * sem_util.adb, sem_util.ads Renaming to take into account the
6192 new pragma, so that functions which applied only to Test_Case
6193 now apply to both Test_Case and Contract_Case.
6194 * par-prag.adb, sem_warn.adb, snames.ads-tmpl Take into account
6195 the new pragma.
6196
3b8208fd 61972012-03-15 Robert Dewar <dewar@adacore.com>
6198
6199 * sem_ch6.ads: Minor comment updates.
6200 * sem_ch12.adb: Minor comment clarification.
6201
ad3ac5aa 62022012-03-15 Robert Dewar <dewar@adacore.com>
6203
6204 * sem_ch5.adb: Minor reformatting.
6205
62062012-03-15 Ed Schonberg <schonberg@adacore.com>
6207
6208 * exp_ch3.adb (Expand_N_Object_Declaration): When rewriting the
6209 declaration of a class-wide object, retain the Ekind to prevent
6210 subsequent misuse of constants.
6211
62122012-03-15 Yannick Moy <moy@adacore.com>
6213
6214 * gnat_rm.texi, gnat_ugn.texi: Minor correction of invariant
6215 terminology.
6216
62172012-03-15 Hristian Kirtchev <kirtchev@adacore.com>
6218
6219 * exp_util.adb (Initialized_By_Ctrl_Function): Add code to
6220 process the case when a function call appears in object.operation
6221 format.
6222
62232012-03-15 Ed Schonberg <schonberg@adacore.com>
6224
6225 * sem_ch6.ads, sem_ch6.adb (Check_Subtype_Conformant): add
6226 Get_Inst formal, so that conformance within an instantiation
6227 follows renamings of formals. This is similar to what is already
6228 done in Check_Mode_conformant.
6229 * sem_ch12.adb (Vailidate_Access_Subprogram_Instance): check that
6230 formal and actual are subtype conformant. Previously only mode
6231 conformance was required.
6232
1b24a6cb 62332012-03-15 Robert Dewar <dewar@adacore.com>
6234
6235 * par-ch6.adb, einfo.ads, sem_eval.adb, sem_eval.ads,
6236 sem_case.adb: Minor reformatting.
6237
62382012-03-15 Robert Dewar <dewar@adacore.com>
6239
6240 * exp_attr.adb (Expand_N_Attribute_Reference): Add handling
6241 of First_Valid/Last_Valid.
6242 * sem_attr.adb (Check_First_Last_Valid): New procedure
6243 (Analyze_Attribute): Add handling of First_Valid and Last_Valid
6244 (Eval_Attribute): ditto.
6245 * snames.ads-tmpl: Add entries for First_Valid and Last_Valid.
6246
62472012-03-15 Ed Schonberg <schonberg@adacore.com>
6248
6249 * exp_ch5.adb (Expand_Predicated_Loop): Suppress warnings on
6250 loop variable, for the unusual case where the range has a single
6251 element and the loop variable has no visible assignment to it.
6252
62532012-03-15 Vincent Pucci <pucci@adacore.com>
6254
6255 * exp_ch4.adb (Expand_N_Quantified_Expression): Expand the
6256 original quantified expression node.
6257 * sem_ch4.adb (Analyze_Quantified_Expression): Properly analyze
6258 the quantified expression and preserve the original non-analyzed
6259 quantified expression when an expansion is needed.
6260 * sem_ch5.adb (Analyze_Iteration_Scheme): Special treatment
6261 for quantified expressions.
6262 (Analyze_Iterator_Specification): Special treatment for quantified
6263 expressions.
6264
62652012-03-15 Ed Falis <falis@adacore.com>
6266
6267 * s-vxwork-ppc.ads: Update FP_CONTEXT so name of former pad
6268 field matches VxWorks headers.
6269
5641963c 62702012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6271
6272 * gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
6273
6274 * a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
6275 s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
6276 s-osinte-irix.ads, s-proinf-irix-athread.adb,
6277 s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
6278 system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
6279 Remove.
6280
6281 * adaint.c [__mips && __sgi]: Remove.
6282 (__gnat_number_of_cpus) [__mips && __sgi]: Remove.
6283 [IS_CROSS && !(__mips && __sgi)]: Remove.
6284 * adaint.h [sgi && _LFAPI]: Remove.
6285 * cstreams.c (__gnat_full_name) [sgi]: Remove.
6286 * env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
6287 (__gnat_clearenv) [__mips && __sgi]: Remove.
6288 * errno.c (_SGI_MP_SOURCE): Remove.
6289 * gsocket.h [sgi]: Remove.
6290 * init.c: Remove IRIX reference.
6291 [sgi]: Remove.
6292 * link.c [sgi]: Remove.
6293 * s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
6294 (main) [__mips && __sgi] (MAX_tv_sec): Don't define.
6295 (CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
6296 * sysdep.c [sgi]: Remove.
6297 (getc_immediate_common) [sgi]: Remove.
6298 (__gnat_localtime_tzoff) [sgi]: Remove.
6299 * terminals.c [__mips && __sgi] (IRIX): Don't define.
6300 [IRIX] (USE_GETPTY): Don't define.
6301 (allocate_pty_desc) [USE_GETPTY]: Remove.
6302
6303 * g-traceb.ads: Remove IRIX reference.
6304 * g-trasym.ads: Likewise.
6305 * memtrack.adb: Likewise.
6306 * s-interr-sigaction.adb: Likewise.
6307
6308 * gnat_rm.texi (Implementation Advice): Remove SGI info.
6309 (Implementation Defined Characteristics): Likewise.
6310 * gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
6311 Remove.
6312 (Irix-Specific Considerations): Remove.
6313
cb30e799 63142012-03-13 Tristan Gingold <gingold@adacore.com>
6315
6316 * gcc-interface/gigi.h (flag_vms_malloc64): Refine condition.
6317
1e958bb8 63182012-03-13 Tristan Gingold <gingold@adacore.com>
6319
6320 * sysdep.c: Adjust condition after removal of __osf__.
6321
dd0cd1e4 63222012-03-12 Eric Botcazou <ebotcazou@adacore.com>
6323
6324 * gcc-interface/gigi.h (shift_unc_components_for_thin_pointers): Kill.
6325 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove call
6326 to above function.
6327 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Adjust
6328 handling of thin pointers.
6329 <Attr_Descriptor_Size>: Likewise.
6330 (gnat_to_gnu) <N_Free_Statement>: Likewise.
6331 * gcc-interface/utils.c (shift_unc_components_for_thin_pointers): Kill.
6332 (convert_to_fat_pointer): Adjust handling of thin pointers.
6333 (convert) <POINTER_TYPE>: Likewise.
6334 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.
6335
126b6848 63362012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6337
6338 * gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
6339 * a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
6340 s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
6341 s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
6342 system-tru64.ads: Remove.
6343
6344 * adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
6345 Remove.
6346 [IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
6347 * env.c [__alpha__ && __osf__]: Remove.
6348 * gsocket.h (_OSF_SOURCE): Remove.
6349 (HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
6350 * init.c [__alpha__ && __osf__]: Remove.
6351 * link.c [__osf__]: Remove.
6352 * s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
6353 [__osf__ && !_SS_MAXSIZE]: Remove.
6354 * sysdep.c [__osf__]: Remove.
6355 * terminals.c [__alpha__ && __osf__]: Remove.
6356 [OSF1]: Remove.
6357
6358 * g-traceb.ads: Remove Tru64 reference.
6359 * g-trasym.ads: Likewise.
6360 * gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
6361 (Summary of Run-Time Configurations): Likewise.
6362 * memtrack.adb: Likewise.
6363
8f852c44 63642012-03-12 Tristan Gingold <gingold@adacore.com>
6365
6366 * gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64
6367 instead of TARGET_MALLOC64.
6368 * gcc-interface/gigi.h (flag_vms_malloc64): Define instead
6369 of TARGET_MALLOC64.
6370
1b989431 63712012-03-09 Robert Dewar <dewar@adacore.com>
6372
6373 * a-direct.adb, comperr.adb, freeze.adb: Minor reformatting.
6374
63752012-03-09 Arnaud Charlet <charlet@adacore.com>
6376
6377 * s-taskin.adb (Initialize_ATCB): Set Task_Image_Len to
6378 0 so that we never access this field uninitialized (e.g. in
6379 Task_Primitives.Operations.Enter_Task for the environment task).
6380
63812012-03-09 Vincent Pucci <pucci@adacore.com>
6382
6383 * exp_ch5.adb (Expand_Iterator_Loop):
6384 Call to Expand_Iterator_Loop_Over_Array added.
6385 (Expand_Iterator_Loop_Over_Array): New routine. Expansion of
6386 "of" iterator loop over arrays. Multidimensional array case added.
6387
63882012-03-09 Eric Botcazou <ebotcazou@adacore.com>
6389
6390 * uintp.ads: Fix minor pasto in comment.
6391
b7b74740 63922012-03-09 Vasiliy Fofanov <fofanov@adacore.com>
6393
6394 * a-direct.adb: Do not strip the trailing directory separator
6395 from path, as this is already done inside Normalize_Pathname;
6396 doing it again produces the wrong result on Windows for the
6397 drive's root dir (i.e. "X:\" becomes "X:").
6398
63992012-03-09 Thomas Quinot <quinot@adacore.com>
6400
6401 * exp_attr.adb, freeze.adb, sem_attr.adb, aspects.adb, aspects.ads,
6402 sem_ch13.adb, snames.ads-tmpl (Exp_Attr.Expand_N_Attribute_Reference):
6403 Add Attribute_Scalar_Storage_Order.
6404 (Sem_Attr.Analyze_Attribute, Eval_Attribute): Ditto.
6405 (Aspects): Add Aspect_Scalar_Storage_Order (Snames): Add
6406 Name_Scalar_Storage_Order and Attribute_Scalar_Storage_Order.
6407 (Sem_Ch13.Analyze_Attribute_Definition_Clause): Add processing
6408 for Scalar_Storage_Order.
6409 (Freeze): If Scalar_Storage_Order is specified, check that it
6410 is compatible with Bit_Order.
6411
385d80fe 64122012-03-09 Robert Dewar <dewar@adacore.com>
6413
6414 * s-osinte-linux.ads, sem_util.adb, s-taprop-linux.adb, exp_ch4.adb,
6415 a-strsup.ads, sem_ch6.adb, a-stwisu.ads, exp_ch3.adb,
6416 a-stzsup.ads: Minor reformatting.
6417
64182012-03-09 Thomas Quinot <quinot@adacore.com>
6419
6420 * s-ransee-vms.adb: Minor reformatting.
6421
64222012-03-09 Arnaud Charlet <charlet@adacore.com>
6423
6424 * comperr.adb (Delete_SCIL_Files): Fix handling of
6425 N_Package_Renaming_Declaration and N_Generic_Package_Declaration.
6426
2608e824 64272012-03-09 Javier Miranda <miranda@adacore.com>
6428
6429 * sem_ch6.adb (Check_Body_To_Inline): In AAMP and VM targets
6430 use frontend inlining at all optimization levels.
6431 * sem_util.adb (Must_Inline): In AAMP and VM targets, given that
6432 there is no inlining support in the backend, use also frontend
6433 inlining when compiling with optimizations enabled.
6434 * exp_ch6.adb (Expand_Call): Minor code reorganization.
6435
7b4b0e11 64362012-03-09 Eric Botcazou <ebotcazou@adacore.com>
6437
6438 * gcc-interface/ada-tree.h (TYPE_VAX_FLOATING_POINT_P): Move around.
6439 (TYPE_UNCONSTRAINED_ARRAY): Adjust comment.
6440 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Tidy
6441 up. Add comment and use canonical predicate for thin pointers.
6442 (gnat_to_gnu) <N_Free_Statement>: Tidy up and reorder. Add comment
6443 and use canonical predicate for thin pointers.
6444 * gcc-interface/utils.c (convert_to_fat_pointer): Remove superfluous
6445 'else' and use standard name.
6446 (convert_to_thin_pointer): Delete.
6447 (convert) <POINTER_TYPE>: Do the difference in sizetype directly and
6448 change obsolete idioms. Do not call above function.
6449 (unchecked_convert): Fix formatting.
6450 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: In the thin
6451 pointer case, use byte_position to get the field position.
6452
a9e7ff04 64532012-03-07 Eric Botcazou <ebotcazou@adacore.com>
6454
6455 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the
6456 DECL node built for a type which has a non-trivial equivalent type.
6457
3fb9f0d4 64582012-03-07 Eric Botcazou <ebotcazou@adacore.com>
6459
6460 * gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete.
6461 * gcc-interface/decl.c (defer_finalize_level): Likewise.
6462 (defer_finalize_list): Likewise.
6463 (gnat_to_gnu_entity): Delete references to above variables and do not
6464 call rest_of_type_decl_compilation.
6465 (rest_of_type_decl_compilation): Delete.
6466 (rest_of_type_decl_compilation_no_defer): Likewise.
6467 * gcc-interface/utils.c (rest_of_record_type_compilation): Do not call
6468 rest_of_type_decl_compilation.
6469 (create_type_decl): Likewise.
6470 (update_pointer_to): Likewise.
6471
97995ac1 64722012-03-07 Eric Botcazou <ebotcazou@adacore.com>
6473
6474 * gcc-interface/trans.c (Identifier_to_gnu): Don't unshare initializer.
6475 (add_decl_expr): Mark external DECLs as used.
6476 * gcc-interface/utils.c (convert) <CONSTRUCTOR>: Copy the vector.
6477
4e2b92f6 64782012-03-07 Tristan Gingold <gingold@adacore.com>
6479
6480 * s-ransee-vms.adb: New file.
6481 * gcc-interface/Makefile.in: Use s-ransee-vms.adb on VMS.
6482 * gcc-interface/Make-lang.in: Update dependencies.
6483
de4993fc 64842012-03-07 Bob Duff <duff@adacore.com>
6485
6486 * rtsfind.ads: Add support for finding Super_String types.
6487 * sem_util.ads, sem_util.adb (Is_Bounded_String): New function
6488 to determine whether a given type is a bounded string type.
6489 (Is_Fully_Initialized_Type): Return True for bounded
6490 string types, to suppress bogus warnings.
6491 * exp_ch4.adb (Expand_Composite_Equality): Special case for bounded
6492 strings: equality composes. This allows us to remove default values in
6493 super strings.
6494 * a-strsup.ads, a-stwisu.ads, a-stzsup.ads: Update comments.
6495 * exp_ch3.adb (Expand_Freeze_Record_Type): Comment.
6496
019bce56 64972012-03-07 Robert Dewar <dewar@adacore.com>
6498
6499 * sem_util.adb, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb: Minor
6500 reformatting.
6501
65022012-03-07 Sergey Rybin <rybin@adacore.com frybin>
6503
6504 * gnat_ugn.texi: gnatpp: fix paragraph about sources with
6505 preprocessor directives.
6506
65072012-03-07 Arnaud Charlet <charlet@adacore.com>
6508
6509 * s-osinte-linux.ads, s-taprop-linux.adb (prctl): New function.
6510 (Enter_Task): Call prctl when relevant.
6511
65122012-03-07 Tristan Gingold <gingold@adacore.com>
6513
6514 * s-osinte-vms.ads: pthread_mutex_setname_np: new function.
6515
50cab70b 65162012-03-07 Ed Schonberg <schonberg@adacore.com>
6517
6518 * sem_ch6.adb (Process_Formals): a generic subprogram with
6519 a formal incomplete type does not require a freeze node.
6520
65212012-03-07 Bob Duff <duff@adacore.com>
6522
6523 * sem_util.ads: Minor reformatting.
6524
65252012-03-07 Geert Bosch <bosch@adacore.com>
6526
6527 * targparm.ads: New target parameter Atomic_Sync_Default,
6528 defaulting to True.
6529 * targparm.adb (Get_Target_Parameters): Add processing for
6530 Atomic_Sync_Default.
6531 * gnat1drv.adb (Adjust_Global_Switches): Adjust Supress_Options
6532 based on ASD.
6533
9ef23ec9 65342012-03-07 Javier Miranda <miranda@adacore.com>
6535
6536 * sem_ch3.adb (Analyze_Object_Declaration): If the object
6537 declaration has an init expression then stop the analysis of the
6538 object declaration if the expression which initializes the object
6539 is a call to an inlined function which returns an unconstrained
6540 and has been expanded into a procedure call.
6541 * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Add missing
6542 support to handle selected components.
6543 * sem_ch6.ads (Cannot_Inline): Adding parameter Is_Serious plus
6544 documentation.
6545 * sem_ch6.adb (Check_And_Build_Body_To_Inline): New
6546 subprogram which implements the checks required by the
6547 new rules for frontend inlining and builds the body to inline.
6548 (Analyze_Subprogram_Body_Helper): Move code that
6549 checks inlining of subprogram that has nested subprogram
6550 to Check_And_Build_Body_To_Inline. Replace call to
6551 Build_Body_To_Inline by call to the new subprogram
6552 Check_And_Build_Body_To_Inline.
6553 (Cannot_Inline): New implementation.
6554 * sem_ch12.adb (Analyze_Package_Instantiation.Must_Inline_Subp):
6555 New subprogram.
6556 * sem_util.ad[sb] (Must_Inline): New subprogram.
6557 (Returns_Unconstrained_Type): New subprogram.
6558 * sem_res.adb (Resolve_Call): Do not create a transient scope
6559 for inlined calls.
6560 * inline.ads (Analyzing_Inlined_Bodies): Remove unreferenced variable.
6561 * inline.adb (Analyze_Inlined_Bodies, Initialize): Remove setting
6562 to false the variable Analyzing_Inlined_Bodies. Fix comments.
6563 * exp_ch4.adb (Expand_N_Allocator): Fix handling of finalization master.
6564 * exp_ch6.ads (List_Inlining_Info): New subprogram.
6565 * exp_ch6.adb (Expand_Call.Do_Inline): New subprogram.
6566 (Expand_Call.Do_Inline_Always): New subprogram.
6567 (In_Unfrozen_Instance): Move the declaration of this subprogram.
6568 (Expand_Inlined_Call.Reset_Dispatching_Calls): New subprogram.
6569 (Expand_Inlined_Call): Adding new support for inlining functions
6570 that return unconstrained types.
6571 (List_Inlining_Info): New subprogram.
6572 * debug.adb Document flags -gnatd.j and -gnatd.k
6573 * gnat1drv.adb Add call to generate the new listing of inlined
6574 calls and calls passed to the backend.
6575
73692538 65762012-03-07 Robert Dewar <dewar@adacore.com>
6577
6578 * sem_ch5.adb, s-vaflop.adb, s-taprop-vms.adb, exp_ch6.adb,
6579 s-gearop.adb, sem_ch6.adb, g-trasym.adb: Minor reformatting.
6580
65812012-03-07 Javier Miranda <miranda@adacore.com>
6582
6583 * a-ngrear.ads: Add documentation.
6584
3ae6bcd5 65852012-03-07 Tristan Gingold <gingold@adacore.com>
6586
6587 * s-taprop-vms.adb (Create_Task): set thread name.
6588 * s-osinte-vms.ads (pthread_attr_setname_np): Declare.
6589
65902012-03-07 Arnaud Charlet <charlet@adacore.com>
6591
6592 * g-trasym.adb: Minor reformatting.
6593
65942012-03-07 Robert Dewar <dewar@adacore.com>
6595
6596 * a-ngrear.ads: Minor addition of ??? comment.
6597
44e15e2b 65982012-03-07 Gary Dismukes <dismukes@adacore.com>
6599
6600 * exp_ch4.adb (Apply_Accessibility_Check): Call
6601 Remove_Side_Effects in the build-in-place case, to ensure that
6602 we capture the call and don't end up with two calls.
6603
66042012-03-07 Javier Miranda <miranda@adacore.com>
6605
6606 * exp_ch6.adb (Expand_Inlined_Call): Skip inlining of functions
6607 that return unconstrained types using an extended return statement
6608 since the support for inlining these functions has not been yet
6609 added to the frontend.
6610 * s-vaflop.adb, s-vaflop-vms-alpha.adb: Code reorganization.
6611 * a-ngrear.ads: Replace all the Inline_Always pragmas by pragma
6612 Inline.
6613 * a-ngrear.adb (Eigenvalues, Transpose): Restructured to use
6614 extended return statement.
6615 * a-strsup.adb, a-stzsup.adb, a-stwisu.adb (Concat, Super_Slice,
6616 Super_To_String): Restructured to use extended return statement.
6617 * a-chahan.adb (To_Basic, To_Lower, To_Upper): Restructured to
6618 use extended return statement.
6619 * s-gearop.adb (Diagonal, Matrix_Elementwise_Operation,
6620 Vector_Elementwise_Operation, Matrix_Elementwise_Operation,
6621 Matrix_Matrix_Scalar_Elementwise_Operation,
6622 Vector_Vector_Elementwise_Operation,
6623 Vector_Vector_Scalar_Elementwise_Operation,
6624 Matrix_Scalar_Elementwise_Operation,
6625 Vector_Scalar_Elementwise_Operation,
6626 Scalar_Matrix_Elementwise_Operation,
6627 Scalar_Vector_Elementwise_Operation, Matrix_Matrix_Product,
6628 Matrix_Vector_Product, Outer_Product, Unit_Matrix, Unit_Vector,
6629 Vector_Matrix_Product): Restructured to use extended return
6630 statement.
6631
66322012-03-07 Vincent Pucci <pucci@adacore.com>
6633
6634 * sem_ch5.adb (One_Bound): Minor reformatting.
6635
66362012-03-07 Tristan Gingold <gingold@adacore.com>
6637
6638 * s-osinte-vms-ia64.adb, s-osinte-vms-ia64.ads, s-osinte-vms.adb,
6639 s-osinte-vms.ads, gcc-interface/Makefile.in: Merge s-osinte-vms and
6640 s-osinte-vms-ia64.
6641
301d5ec3 66422012-03-07 Ed Schonberg <schonberg@adacore.com>
6643
6644 * checks.adb (Apply_Predicate_Check): Do not generate a predicate
6645 check is the context is an internally generated type-specific
6646 function.
6647 * sem_ch6.adb (Process_PPCs); the formals of internally generated
6648 type-specific functions do not get assertion checks.
6649
66502012-03-07 Yannick Moy <moy@adacore.com>
6651
6652 * gnat_rm.texi: Minor renaming of title.
6653 * gnat_ugn.texi: Minor correction.
6654
66552012-03-07 Vincent Pucci <pucci@adacore.com>
6656
6657 * exp_ch4.adb (Expand_N_Quantified_Expression): Minor
6658 reformating.
6659 * sem_ch4.adb (Analyze_Quantified_Expression): Creation and
6660 analysis of the iteration scheme added in all cases.
6661 * sem_ch5.adb (Analyze_Iteration_Scheme): Minor reformating.
6662 (Analyze_Iterator_Specification): Minor reformating.
6663 * sem_res.adb (Resolve_Quantified_Expression): Resolution of
6664 the condition added in all cases.
6665
19a5cf04 66662012-03-07 Thomas Quinot <quinot@adacore.com>
6667
6668 * einfo.adb, einfo.ads: Add flag Reverse_Storage_Order.
6669
66702012-03-07 Yannick Moy <moy@adacore.com>
6671
6672 * gnat_rm.texi, gnat_ugn.texi: Rewording of GNAT UG and GNAT RM to
6673 account for Ada 2012 assertions, and their pragma counterparts in GNAT.
6674
66752012-03-07 Thomas Quinot <quinot@adacore.com>
6676
6677 * exp_attr.adb, sem_attr.adb: Minor reformatting.
6678
66792012-03-07 Bob Duff <duff@adacore.com>
6680
6681 * hostparm.ads (Max_Instantiations): Increase parameter.
6682
66832012-03-07 Bob Duff <duff@adacore.com>
6684
6685 * par-prag.adb: Minor code rearrangement.
6686
66872012-03-07 Bob Duff <duff@adacore.com>
6688
6689 * a-strsup.ads, a-stwisu.ads, a-stzsup.ads (Super_String):
6690 Remove default initial value for Data. It is no longer needed
6691 because "=" now composes properly for untagged records. This
6692 default has caused efficiency problems.
6693
66942012-03-07 Ed Schonberg <schonberg@adacore.com>
6695
6696 * sem_res.adb (Resolve_Actuals): If the actual is a selected
6697 component of an anonymous access type, whose prefix is a variable,
6698 treat the variable as if it may be modified by the call, to
6699 suppress spurious warnings that a variable might be declared as
6700 a constant.
6701
7f93d5de 67022012-03-07 Thomas Quinot <quinot@adacore.com>
6703
6704 * einfo.adb, einfo.ads: Remove unused entity flags.
6705
dc9027bc 67062012-03-07 Eric Botcazou <ebotcazou@adacore.com>
6707
6708 * gnat_ugn.texi (Inline Assembler): Fix swapping of Input and
6709 Output operands throughout.
6710
67112012-03-07 Hristian Kirtchev <kirtchev@adacore.com>
6712
6713 * sem_ch12.adb (Earlier): When two nodes come from the same
6714 generic instantiation, compare their locations. Otherwise always
6715 use the top level locations of the nodes.
6716
67172012-03-07 Thomas Quinot <quinot@adacore.com>
6718
6719 * einfo.ads, sem_prag.adb: Minor reformatting.
6720
581134a4 67212012-03-05 Jason Merrill <jason@redhat.com>
6722
6723 * gcc-interface/Make-lang.in (doc/gnat_ugn.texi): Build xgnatugn
6724 before using it.
6725
4b7b019d 67262012-03-04 Eric Botcazou <ebotcazou@adacore.com>
6727
6728 * gnatvsn.ads (Library_Version): Bump to 4.8.
6729
70d595c8 67302012-03-03 H.J. Lu <hongjiu.lu@intel.com>
6731
6732 * init.c (__gnat_adjust_context_for_raise): Also check
6733 "orq $0x0,(%esp)" for x32.
6734
4b7b019d 6735 * link.c (__gnat_default_libgcc_subdir): Set to libx32 for x32.
70d595c8 6736
6737 * gcc-interface/Makefile.in (arch): Set to x32 if MULTISUBDIR
4b7b019d 6738 is /x32 and add support for x32.
70d595c8 6739
ffb4f309 67402012-02-29 Eric Botcazou <ebotcazou@adacore.com>
6741
6742 * gcc-interface/decl.c (components_to_record): Add ARTIFICIAL parameter
6f9d8b76 6743 and set TYPE_ARTIFICIAL according to it. Adjust recursive call.
ffb4f309 6744 (gnat_to_gnu_entity) <E_Record_Type>: Adjust call to above function.
6745 * gcc-interface/utils.c (rest_of_record_type_compilation): Do not
6746 invoke rest_of_type_decl_compilation on the parallel type, if any.
6747
a2862f76 67482012-02-29 Eric Botcazou <ebotcazou@adacore.com>
6749
6750 * gcc-interface/utils.c (gnat_write_global_declarations): Make sure the
6751 dummy global built for global types is preserved.
6752
e770c5fc 67532012-02-27 Tristan Gingold <gingold@adacore.com>
6754
6755 * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
6756 E_Array_Type]: Reuse dummy fat type for gnu_ptr_template and
6757 gnu_template_type.
6758
a3b35344 67592012-02-27 Eric Botcazou <ebotcazou@adacore.com>
6760
6761 * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.
6762 (TYPE_BY_REFERENCE_P): New flag.
6763 (TYPE_IS_BY_REFERENCE_P): New macro.
6764 (TYPE_DUMMY_P): Add checking and remove VOID_TYPE.
6765 (TYPE_IS_DUMMY_P): Adjust for above change.
6766 * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P
6767 and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE.
6768 (gnat_to_gnu_param): Likewise.
6769 (maybe_pad_type): Likewise.
6770 (make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P.
6771 * gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P
6772 instead of TREE_ADDRESSABLE.
6773 * gcc-interface/trans.c (finalize_nrv): Likewise.
6774 (call_to_gnu): Likewise. Do not create a temporary for return values
6775 with by-reference type here.
6776 (gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P.
6777 (gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant
6778 CONSTRUCTORs and calls.
6779 * gcc-interface/utils.c (make_dummy_type): Get the equivalent type of
6780 the underlying type and use it throughout. Use TYPE_IS_BY_REFERENCE_P
6781 instead of TREE_ADDRESSABLE.
6782 * gcc-interface/utils2.c (build_cond_expr): Deal with by-reference
6783 types explicitly.
6784
6b5f97e1 67852012-02-27 Eric Botcazou <ebotcazou@adacore.com>
6786
6787 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Revert previous
6788 change that creates a special VAR_DECL for debugging purposes. For an
6789 aliased object with an unconstrained nominal subtype, make its type a
6790 thin reference to the underlying object.
6791 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Deal with
6792 expressions built for the initialization of above objects.
6793
7ef88902 67942012-02-24 Dave Korn <dave.korn.cygwin@gmail.com>
6795
6796 * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
6797 Windows-specific make variable.
6798 (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
6799 (install-gnatlib): Respect the above during installation when set,
6800 and also install any windows import library that has been built.
6801 (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
6802 build a corresponding import library.
6803
ad6b44d8 68042012-02-22 Robert Dewar <dewar@adacore.com>
6805
6806 * exp_util.adb, make.adb, sem_dim.adb, sem_ch4.adb, exp_disp.adb: Minor
6807 reformatting.
6808
68092012-02-22 Geert Bosch <bosch@adacore.com>
6810
6811 * g-bytswa-x86.adb, g-bytswa.adb, gcc-interface/Makefile.in: Remove
6812 x86-specific version of byteswap and use GCC builtins instead.
6813
68142012-02-22 Tristan Gingold <gingold@adacore.com>
6815
6816 * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
6817 E_Array_Type]: Translate component ealier.
6818
68192012-02-22 Robert Dewar <dewar@adacore.com>
6820
6821 * par-ch3.adb (P_Signed_Integer_Type_Definition): Specialize
6822 error message for 'Range.
6823
110e0530 68242012-02-22 Pascal Obry <obry@adacore.com>
6825
6826 * s-taprop-mingw.adb (Finalize_TCB): Do not wait on thread handle as
6827 this is our own thread.
6828
68292012-02-22 Sergey Rybin <rybin@adacore.com frybin>
6830
6831 * tree_io.ads: Update ASIS_Version_Number because of the changes
6832 in Snames.
6833
68342012-02-22 Hristian Kirtchev <kirtchev@adacore.com>
6835
38b1f0b0 6836 * exp_ch7.adb (Create_Finalizer): Suppress elaboration checks on
110e0530 6837 stack-related finalizers.
6838
68392012-02-22 Ed Schonberg <schonberg@adacore.com>
6840
6841 * sem_ch6.adb (Analyze_Expression_Function): If the construct
6842 is a completion, indicate that its formals are the formals of
6843 a completion, and as such do not get a cross- reference entry.
6844 (Analyze_Subprogram_Specification): Do not generate a definition
6845 for the entity of an expression function, because it may be a
6846 completion. Definition will be generated if needed when analyzing
6847 the generated subprogram declaration.
6848
68492012-02-22 Vincent Celier <celier@adacore.com>
6850
6851 * make.adb (Check): When checking if an object file is in the
6852 correct object directory, get the unit name from a previous call
6853 to Check_Source_Info_In_ALI.
6854 * makeutl.adb (Check_Source_Info_In_ALI): Return the name of
6855 the unit when everything is OK, otherwise return No_Name.
6856 * makeutl.ads (Check_Source_Info_In_ALI): Return Name_Id instead
6857 of Boolean
6858
68592012-02-22 Ed Schonberg <schonberg@adacore.com>
6860
6861 * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): In an
6862 instance, the operator is visible if an operand is of some
6863 numeric type which is not in use or directly visible, and the
6864 other operand is a numeric literal.
6865
68662012-02-22 Tristan Gingold <gingold@adacore.com>
6867
6868 * init.c: Minor code clean up.
6869 * gcc-interface/Make-lang.in: Update dependencies.
6870
68712012-02-22 Arnaud Charlet <charlet@adacore.com>
6872
6873 * gnatlink.adb (Gnatlink): Use -gnatcC in CodePeer_Node,
6874 otherwise GCC will generate an object file.
6875
68762012-02-22 Vincent Celier <celier@adacore.com>
6877
6878 * projects.texi: Correct typo related to "**" in Source_Dirs.
6879
61aeebff 68802012-02-22 Steve Baird <baird@adacore.com>
6881
6882 * sem_prag.adb (Analyze_PPC_In_Decl_Part): Clean up generation of
6883 error message text.
6884
bb5dfacc 68852012-02-22 Vincent Pucci <pucci@adacore.com>
6886
6887 * rtsfind.adb (Get_Unit_Name): Ada_Numerics_Child and
6888 System_Dim_Child cases added.
6889 * rtsfind.ads: Ada_Numerics,
6890 Ada_Numerics_Generic_Elementary_Functions, System_Dim,
6891 System_Dim_Float_IO and System_Dim_Integer_IO added to the list
6892 of RTU_Id. Ada_Numerics_Child and System_Dim_Child added as
6893 new RTU_Id subtypes.
6894 * sem_dim.adb (Is_Dim_IO_Package_Entity): Use of
6895 Rtsfind to verify the package entity is located either
6896 in System.Dim.Integer_IO or in System.Dim.Float_IO.
6897 (Is_Dim_IO_Package_Instantiation): Minor
6898 changes. (Is_Elementary_Function_Call): Removed.
6899 (Is_Elementary_Function_Entity): New routine.
6900 (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity call added.
6901 * snames.ads-tmpl: Name_Dim and Name_Generic_Elementary_Functions
6902 removed.
6903
69042012-02-22 Vincent Pucci <pucci@adacore.com>
6905
6906 * sem_prag.adb: Minor reformatting.
6907
69082012-02-22 Ed Schonberg <schonberg@adacore.com>
6909
6910 * sem_ch3.adb (Find_Type_Name): When analyzing a private type
6911 declaration that is the completion of a tagged incomplete type, do
6912 not associate the class-wide type already created with the private
6913 type to prevent order-of-elaboration issues in the back-end.
6914 * exp_disp.adb (Find_Specific_Type): Find specific type of
6915 a class-wide type, and handle the case of an incomplete type
6916 coming either from a limited_with clause or from an incomplete
6917 type declaration. Used when expanding a dispatchin call and
6918 generating tag checks (minor refactoring).
6919
a58d632f 69202012-02-22 Robert Dewar <dewar@adacore.com>
6921
6922 * exp_ch5.adb: Add comment.
6923 * sem_ch12.adb, exp_ch6.adb: minor reformatting
6924
4e104ca3 69252012-02-22 Ed Schonberg <schonberg@adacore.com>
6926
6927 * freeze.adb (Freeze_Entity): Do not perform type layout within
6928 a generic unit.
6929
69302012-02-22 Eric Botcazou <ebotcazou@adacore.com>
6931
6932 * init.c (__gnat_error_handler) [Linux]: Map SIGBUS to
6933 Storage_Error.
6934
69352012-02-22 Ed Schonberg <schonberg@adacore.com>
6936
6937 * exp_ch5.adb (Expand_N_Assignment_Statement): Reject an
6938 assignment to a classwide type whose type is limited, as
6939 can happen in an instantiation in programs that run afoul or
6940 AI05-0087.
6941
b3ba409d 69422012-02-17 Ed Schonberg <schonberg@adacore.com>
6943
6944 * exp_ch6.adb (Legal_Copy): If layout is not
6945 determined in the front-end, do not emit error message when
6946 by-reference actual is potentially unaligned.
6947 * gcc-interface/decl.c (gnat_to_gnu_field): Better error message for
6948 illegal representation clause on tagged or aliased component, or on
6949 by-reference type with forced alignment.
6950
69512012-02-17 Nicolas Roche <roche@adacore.com>
6952
6953 * gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is
6954 propagated by gnatlib-sjlj and gnatlib-zcx targets.
6955 * gcc-interface/Make-lang.in: Update dependencies.
6956
69572012-02-17 Thomas Quinot <quinot@adacore.com>
6958
6959 * sem_ch12.adb (Analyze_Package_Instantiation): For an
6960 instantiation in an RCI library unit, omit the instance body
6961 if the RCI library unit is the instance itself (E.2.3(18)),
6962 but include the body if the instantiation is within the RCI
6963 declaration (12.3(12)).
6964
0fe91713 69652012-02-17 Steve Baird <baird@adacore.com>
6966
6967 * sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and
6968 Post'Class aspects can only be specified for a primitive operation
6969 of a tagged type.
6970
0b0eb1f6 69712012-02-17 Yannick Moy <moy@adacore.com>
6972
6973 * gnat_rm.texi: Minor shuffling.
6974
69752012-02-17 Ed Schonberg <schonberg@adacore.com>
6976
6977 * aspects.adb: Expression functions can carry pre/postconditions.
6978 * par-ch6.adb (P_Subprogram): look for optional pre/postconditions
6979 in an expression function.
6980 * sem_prag (Check_Precondition_Postcondition): legal on expression
6981 functions.
6982
69832012-02-17 Vincent Pucci <pucci@adacore.com>
6984
6985 * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb,
6986 * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb,
6987 * a-convec.adb, a-coorma.adb (Adjust): New routine.
6988 (Constant_Reference): Increment Busy and Lock counters.
6989 (Reference): Increase Busy and Lock counters.
6990 (Finalize): New routine.
6991 * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb:
6992 (Adjust): New routine. (Constant_Reference): Increment Busy
6993 and Lock counters.
6994 (Finalize): New routine.
6995 * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads,
6996 * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads,
6997 * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads,
6998 * a-coorma.ads, a-coorse: Controlled component added to the
6999 reference types.
7000
70012012-02-17 Robert Dewar <dewar@adacore.com>
7002
7003 * restrict.adb (Check_Restriction): Add special handling for
7004 No_Obsolescent_Features.
7005
70062012-02-17 Hristian Kirtchev <kirtchev@adacore.com>
7007
7008 * exp_util.adb (Find_Finalize_Address): When dealing with an
7009 internally built full view for a type with unknown discriminants,
7010 use the original record type.
7011
5491cb1c 70122012-02-17 Robert Dewar <dewar@adacore.com>
7013
7014 * sem_dim.adb: Minor reformatting.
7015
70162012-02-17 Yannick Moy <moy@adacore.com>
7017
7018 * gnat_rm.texi: Minor rewording.
7019
6a84a367 70202012-02-17 Thomas Quinot <quinot@adacore.com>
7021
7022 * sem_aggr.adb: Minor reformatting.
7023
70242012-02-17 Robert Dewar <dewar@adacore.com>
7025
7026 * gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case.
7027
70282012-02-17 Vincent Pucci <pucci@adacore.com>
7029
7030 * sem_dim.adb (Is_Dim_IO_Package_Entity): New routine.
7031 (Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity
7032 call added.
7033 (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity
7034 call added.
7035 * s-dim.ads: Make package Pure.
7036
70372012-02-17 Gary Dismukes <dismukes@adacore.com>
7038
7039 * prj-nmsc.adb: Minor reformatting.
7040
70412012-02-17 Yannick Moy <moy@adacore.com>
7042
7043 * gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions.
7044
5f31c6f3 70452012-02-17 Yannick Moy <moy@adacore.com>
7046
7047 * gnat_ugn.texi: Fix typos.
7048
70492012-02-17 Pascal Obry <obry@adacore.com>
7050
7051 * prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an
7052 aggregate is not Externally_Built.
7053
70542012-02-17 Ed Schonberg <schonberg@adacore.com>
7055
7056 * sem_aggr.adb (Resolve_Record_Aggregate): If a composite
7057 component has a box association, copy the default value using
7058 the current scope as the scope of internal types, to prevent
7059 scoping anomalies in gigi.
7060
09ad6da2 70612012-02-17 Robert Dewar <dewar@adacore.com>
7062
7063 * sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb,
7064 sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb,
7065 exp_intr.adb, s-os_lib.adb: Minor reformatting.
7066
70672012-02-17 Ed Schonberg <schonberg@adacore.com>
7068
7069 * sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the
7070 old operation is abstract, the relevant type is not abstract,
7071 and the new subprogram fails to override.
7072
09188bfe 70732012-02-15 Eric Botcazou <ebotcazou@adacore.com>
7074
7075 * gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the
7076 type of the result to the end and execute it for a deferred constant of
7077 a discriminated type whose full view can be elaborated statically.
7078
47219e5b 70792012-02-15 Eric Botcazou <ebotcazou@adacore.com>
7080
7081 * gcc-interface/trans.c (gnat_to_gnu) <N_Qualified_Expression>: If the
7082 type is tagged, mark it as used for debugging purposes.
7083 <N_Allocator>: Likewise for a qualified expression.
7084
824ae42b 70852012-02-15 Eric Botcazou <ebotcazou@adacore.com>
7086
7087 * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
7088 return value in the by-reference return type case if this isn't the
47219e5b 7089 expression of an object declaration. Tidy up.
824ae42b 7090
f4a78d12 70912012-02-09 Tristan Gingold <gingold@adacore.com>
7092
7093 * gcc-interface/Makefile.in: Remove .sym rule (not used).
7094 Remove adamsg.o object (requires native message compiler).
7095 * init.c (CMA$_EXIT_THREAD, MTH$_FLOOVEMAT, SS$_INTDIV): Define as a
7096 macro instead of as extern int.
7097 (ADA$_ALREADY_OPEN, ADA$_CONSTRAINT_ERRO, ADA$_DATA_ERROR)
7098 (ADA$_DEVICE_ERROR, ADA$_END_ERROR, ADA$_FAC_MODE_MISMAT)
7099 (ADA$_IOSYSFAILED, ADA$_KEYSIZERR, ADA$_KEY_MISMATCH)
7100 (ADA$_LAYOUT_ERROR, ADA$_LINEXCMRS, ADA$_MAXLINEXC)
7101 (ADA$_MODE_ERROR, ADA$_MRN_MISMATCH, ADA$_MRS_MISMATCH)
7102 (ADA$_NAME_ERROR, ADA$_NOT_OPEN, ADA$_ORG_MISMATCH)
7103 (ADA$_PROGRAM_ERROR, ADA$_RAT_MISMATCH, ADA$_RFM_MISMATCH)
7104 (ADA$_STAOVF, ADA$_STATUS_ERROR, ADA$_STORAGE_ERROR)
7105 (ADA$_UNSUPPORTED, ADA$_USE_ERROR): Likewise.
7106 (struct cond_except): Field cond is now an unsigned int.
7107 (dec_ada_cond_except_table): Adjust.
7108 (cond_except_table): Likewise.
7109 (cond_resignal_table): Likewise.
7110 (__gnat_default_resignal_p): Fix style.
7111
70db3df9 71122012-02-08 Vincent Celier <celier@adacore.com>
7113
7114 * gcc-interface/Make-lang.in: Add g-byorma.o to gnatbind objects
7115 (g-buorma is now imported by sinput).
7116 Update dependencies.
7117 * scn.adb (Initialize_Scanner): Call Check_For_BOM
7118 * sinput-p.adb (Source_File_Is_Subunit): Call Check_For_BOM
7119 * sinput.adb: New procedure Check_For_BOM
7120 * sinput.ads: New procedure Check_For_BOM
7121
71222012-02-08 Vincent Pucci <pucci@adacore.com>
7123
7124 * impunit.adb: Dimension package names updated
7125 * Makefile.rtl: s-dim added
7126 * sem_dim.adb (Is_Procedure_Put_Call): minor changes
7127 (Is_Dim_IO_Package_Instantiation): minor changes
7128 * sem_dim.ads: minor changes in comments
7129 * snames.ads-tmpl: Name_Dim added Name_Dim_Float_IO and
7130 Name_Dim_Integer_IO removed
7131 * s-dim.ads: New package. Define the dimension terminology.
7132 * s-diflio.adb, s-diinio.adb, s-dimkio.ads, s-dimmks.ads,
7133 * s-dmotpr.ads: Package names updated.
7134 * s-diflio.ads, s-diinio.ads: Documentation added and package
7135 names updated.
7136
71372012-02-08 Gary Dismukes <dismukes@adacore.com>
7138
7139 * gcc-interface/utils2.c (build_call_alloc_dealloc_proc): Revise test
7140 for storage pools to test for an underlying record type rather than
7141 testing Is_Tagged_Type, so that simple storage pools will be handled
7142 the same as normal Ada storage pools.
7143
b15003c3 71442012-02-08 Yannick Moy <moy@adacore.com>
7145
7146 * gnat_rm.texi: Minor reshuffling to place restriction at
7147 appropriate place.
7148
71492012-02-08 Bob Duff <duff@adacore.com>
7150
7151 * warnsw.adb (Set_Warning_Switch): Set Warn_On_Suspicious_Modulus_Value
7152 False for '-gnatwA', to suppress these warnings.
7153
71542012-02-08 Vincent Celier <celier@adacore.com>
7155
7156 * sinput-p.adb (Source_File_Is_Subunit): Check for BOM before
7157 starting to scan, so that UTF8 encoding is taken into account.
7158
71592012-02-08 Arnaud Charlet <charlet@adacore.com>
7160
7161 * s-tasren.adb, s-tasren.ads (Internal_Complete_Rendezvous): New
7162 function.
7163 (Complete_Rendezvous): Now call Internal_Complete_Rendezvous.
7164 (Exceptional_Complete_Rendezvous): Mark No_Return.
7165
71662012-02-08 Eric Botcazou <ebotcazou@adacore.com>
7167
7168 * exp_aggr.adb (Compile_Time_Known_Composite_Value):
7169 New predicate to compute whether a composite value can be
7170 evaluated at compile time.
7171 (Component_Not_OK_For_Backend): Use Compile_Time_Known_Value for all
7172 expressions of elementary type and Compile_Time_Known_Composite_Value
7173 for all other expressions.
7174 (Expand_Record_Aggregate): Convert to assignments in the case
7175 of a type with mutable components if the aggregate cannot be
7176 built statically.
7177
71782012-02-08 Gary Dismukes <dismukes@adacore.com>
7179
7180 * aspects.ads (type Aspect_Id): Add Simple_Storage_Pool_Type.
7181 (Impl_Defined_Aspects): Add association for
7182 Aspect_Simple_Storage_Pool_Type.
7183 (Aspect_Names): Add
7184 association for Aspect_Simple_Storage_Pool_Type.
7185 * aspects.adb:
7186 (Canonical_Aspect): Add association for Simple_Storage_Pool_Type.
7187 * exp_attr.adb (Expand_N_Attribute_Reference):
7188 Change name to Name_Simple_Storage_Pool_Type.
7189 * exp_ch4.adb (Expand_N_Allocator): Change
7190 name to Name_Simple_Storage_Pool_Type.
7191 * exp_intr.adb (Expand_Unc_Deallocation): Change name to
7192 Name_Simple_Storage_Pool_Type. * freeze.adb (Freeze_Entity):
7193 Change names to Name_Simple_Storage_Pool_Type. * par-prag.adb:
7194 Change names to Name_Simple_Storage_Pool_Type. * sem_attr.adb:
7195 (Analyze_Attribute): Change name to Name_Simple_Storage_Pool_Type.
7196 * sem_ch13.adb (Analyze_Attribute_Definition_Clause):
7197 Change name to Name_Simple_Storage_Pool_Type.
7198 * sem_prag.adb:
7199 (Analyze_Pragma): Change name to Name_Simple_Storage_Pool_Type.
7200 (Sig_Flags): Change name to Name_Simple_Storage_Pool_Type.
7201 * sem_res.adb (Resolve_Allocator): Change name to
7202 Name_Simple_Storage_Pool_Type. * snames.ads-tmpl:
7203 (Name_Simple_Storage_Pool_Type): New name constant.
7204 (type Pragma_Id): Change name to Name_Simple_Storage_Pool_Type and
7205 move to main pragma section because it no longer matches the
7206 attribute name.
7207 * snames.adb-tmpl (Get_Pragma_Id): Remove test for
7208 Name_Simple_Storage_Pool.
7209 (Is_Pragma_Name): Remove test for Name_Simple_Storage_Pool.
7210
72112012-02-08 Robert Dewar <dewar@adacore.com>
7212
7213 * gnat_ugn.texi: Add some clarification to -gnatwA and -gnatws.
7214
2006ed41 72152012-02-08 Pascal Obry <obry@adacore.com>
7216
7217 * prj.adb (Compute_All_Imported_Projects): Use new
7218 For_Project_And_Aggregated_Context to ensure proper context is
7219 used for encapsulated aggregate libraries.
7220 * prj-proc.adb (Recursive_Process): Call
7221 Process_Aggregated_Projects earlier to ensure that all dependent
7222 projects are set with the proper encapsulated status.
7223
72242012-02-08 Pascal Obry <obry@adacore.com>
7225
7226 * s-os_lib.adb (Normalize_Arguments): Properly escape last \ in null
7227 terminated string.
7228
51d8eafc 72292012-02-08 Pascal Obry <obry@adacore.com>
7230
7231 * prj.ads, prj.adb (For_Project_And_Aggregated_Context): New
7232 generic routine with a context parameter.
7233
b55f7641 72342012-02-08 Robert Dewar <dewar@adacore.com>
7235
7236 * a-coinve.adb, sem_util.adb, sem_ch8.adb, a-cobove.adb,
7237 a-convec.adb: Minor reformatting and code reorganization.
7238
72392012-02-08 Steve Baird <baird@adacore.com>
7240
7241 * sem_cat.adb (In_Preelaborated_Unit): A child
7242 unit instantiation does not inherit preelaboration requirements
7243 from its parent.
7244
72452012-02-08 Gary Dismukes <dismukes@adacore.com>
7246
7247 * aspects.ads (type Aspect_Id): Add Aspect_Simple_Storage_Pool.
7248 (Impl_Defined_Aspects): Add entry for Aspect_Simple_Storage_Pool.
7249 (Aspect_Argument): Add Name entry for Aspect_Simple_Storage_Pool.
7250 (Aspect_Names): Add entry for Aspect_Simple_Storage_Pool.
7251 * aspects.adb (Canonical_Aspect): Add entry for
7252 Aspect_Simple_Storage_Pool.
7253 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of
7254 Attribute_Simple_Storage_Pool in the same way as Storage_Pool
7255 (add conversion, analyze/resolve). For the Storage_Size attribute,
7256 for the simple pool case, locate and use the simple pool type's
7257 Storage_Size function (if any), otherwise evaluate to zero.
7258 * exp_ch4.adb (Expand_N_Allocator): In the case of an allocator
7259 for an access type with an associated simple storage pool,
7260 locate and use the pool type's Allocate.
7261 * exp_intr.adb (Expand_Unc_Deallocation): In the case where the
7262 access type has a simple storage pool, locate the pool type's
7263 Deallocate procedure (if present) and use it as the procedure
7264 to call on the Free operation.
7265 * freeze.adb (Freeze_Entity): In the case of a full type for
7266 a private type defined with pragma Simple_Storage_Pool, check
7267 that the full type is also appropriate for the pragma. For
7268 a simple storage pool type, validate that the operations
7269 Allocate, Deallocate (if present), and Storage_Size
7270 (if present) are defined with appropriate expected profiles.
7271 (Validate_Simple_Pool_Op_Formal): New procedure
7272 (Validate_Simple_Pool_Operation): New procedure Add with and
7273 use of Rtsfind.
7274 * par-prag.adb: Add Pragma_Simple_Storage_Pool to case statement
7275 (no action required).
7276 * sem_attr.adb (Analyze_Attribute): For the case of the
7277 Storage_Pool attribute, give a warning if the prefix type has an
7278 associated simple storage pool, and rewrite the attribute as a
7279 raise of Program_Error. In the case of the Simple_Storage_Pool
7280 attribute, check that the prefix type has an associated simple
7281 storage pool, and set the attribute type to the pool's type.
7282 * sem_ch13.adb (Analyze_Aspect_Specifications): Add
7283 Aspect_Simple_Storage_Pool case choice.
7284 (Analyze_Attribute_Definition_Clause): Add
7285 Aspect_Simple_Storage_Pool to case for Ignore_Rep_Clauses
7286 (no action). Add handling for Simple_Storage_Pool attribute
7287 definition, requiring the name to denote a simple storage pool
7288 object.
7289 (Check_Aspect_At_Freeze_Point): For a simple storage pool
7290 aspect, set the type to that of the name specified for the aspect.
7291 * sem_prag.adb (Analyze_Pragma): Add handling for pragma
7292 Simple_Storage_Pool, requiring that it applies to a library-level
7293 type declared in a package declaration that is a limited private
7294 or limited record type.
7295 * sem_res.adb (Resolve_Allocator): Flag an attempt to call a
7296 build-in-place function in an allocator for an access type with
7297 a simple storage pool as unsupported.
7298 * snames.ads-tmpl: Add Name_Simple_Storage_Pool.
7299 (type Attribute_Id): Add Attribute_Simple_Storage_Pool.
7300 (type Pragma_Id): Add Pragma_Simple_Storage_Pool.
7301 * snames.adb-tmpl (Get_Pragma_Id): Handle case of
7302 Name_Simple_Storage_Pool.
7303 (Is_Pragma_Name): Return True for Name_Simple_Storage_Pool.
7304
73052012-02-08 Cyrille Comar <comar@adacore.com>
7306
7307 * projects.texi: Clarify doc for interfaces.
7308
346b8434 73092012-02-07 Eric Botcazou <ebotcazou@adacore.com>
7310
7311 * gcc-interface/Make-lang.in (GCC_LINKERFLAGS): New variable.
7312 (GCC_LINK): Use it.
7313
2a0abb3a 73142012-02-01 Tristan Gingold <gingold@adacore.com>
7315
7316 * gcc-interface/trans.c (Loop_Statement_to_gnu): Use sizetype
7317 instead of size_type_node.
7318
62b2aa7d 73192012-01-30 Nicolas Roche <roche@adacore.com>
7320
7321 * gcc-interface/Make-lang.in: Update dependencies.
7322 * gcc-interface/Makefile.in: Use system-vxworks-system-ppc-mils.ads
7323 when needed.
7324 Remove Linker_Options -crtbe when building sjlj run-time.
7325
9deff044 73262012-01-30 Robert Dewar <dewar@adacore.com>
7327
7328 * sem.adb (Analyze): Call Analyze_Mod for N_Op_Mod mode.
7329 * sem_ch3.adb (Modular_Type_Declaration): Warn on mod value of
7330 form 2 * small-literal.
7331 * sem_ch4.adb (Analyze_Mod): New procedure (warn on suspicious
7332 mod value).
7333 * sem_ch4.ads (Analyze_Mod): New procedure.
7334
73352012-01-30 Ed Schonberg <schonberg@adacore.com>
7336
7337 * sem_ch6.adb: sem_ch6.adb (Analyze_Expression_Function): Copy
7338 types and return expression when building spec for implicit
7339 body, to preserve global references that may be present in an
7340 instantiation.
7341
73422012-01-30 Matthew Heaney <heaney@adacore.com>
7343
7344 * a-convec.adb, a-coinve.adb, a-cobove.adb (Sort,
7345 Reverse_Elements): Check for cursor tampering.
7346
73472012-01-30 Ed Schonberg <schonberg@adacore.com>
7348
7349 * sem_util.adb (Is_Fully_Initialized_Type): In Ada 2012, a
7350 type with aspect Default_Value or Default_Component_Value is
7351 fully initialized, and use of variables of such types do not
7352 generate warnings.
7353
73542012-01-30 Javier Miranda <miranda@adacore.com>
7355
7356PR ada/15846
7357 * sem_ch8.adb (Analyze_Subprogram_Renaming):
7358 Handle self-renaming when the renamed entity is referenced using
7359 its expanded name.
7360
73612012-01-30 Vincent Celier <celier@adacore.com>
7362
7363 * projects.texi: Add documentation for attribute Interfaces.
7364
516da07f 73652012-01-30 Hristian Kirtchev <kirtchev@adacore.com>
7366
7367 * exp_ch7.adb (Build_Finalizer_Call): Set loc again.
7368 * exp_ch11.adb (Expand_At_End_Handler): Do not provide a source
7369 location for the wrapped call to the original AT_END routine
7370 and the subsequent return statement.
7371
73722012-01-30 Pascal Obry <obry@adacore.com>
7373
7374 * s-rannum.adb: Minor reformatting.
7375
73762012-01-30 Hristian Kirtchev <kirtchev@adacore.com>
7377
7378 * a-calend-vms.adb, a-calend.adb: Increment the number of leap seconds
7379 to 25 and add the hard time value for 2012-06-30.
7380
30fe3fdc 73812012-01-30 Robert Dewar <dewar@adacore.com>
7382
7383 * a-strhas.ads, einfo.adb, einfo.ads, exp_ch7.adb, exp_ch9.adb,
7384 freeze.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-proc.adb, s-llflex.ads,
7385 s-ransee.adb, s-ransee.ads, sem_ch13.adb, sem_dim.adb, sem_prag.adb:
7386 Minor reformatting/code reorganization.
7387
27121718 73882012-01-30 Thomas Quinot <quinot@adacore.com>
7389
7390 * s-rannum.adb, s-ransee.adb, s-ransee.ads (Get_Seed): Return
7391 Unsigned_64 rather than Duration.
7392 (System.Random_Numbers.Reset): Use full value of seed
7393 (do not truncate sub-second bits).
7394
73952012-01-30 Thomas Quinot <quinot@adacore.com>
7396
7397 * sem_cat.adb, sem_ch12.adb: Minor reformatting.
7398
7b9b2f05 73992012-01-30 Yannick Moy <moy@adacore.com>
7400
7401 * gnat_ugn.texi: Minor correction of GNAT UG, to take into
7402 account changes to -gnatwa and more recent warnings.
7403
74042012-01-30 Hristian Kirtchev <kirtchev@adacore.com>
7405
7406 * exp_ch7.adb (Build_Finalizer_Call): Do not provide a source
7407 location when creating a call to a finalizer.
7408 * exp_ch11.adb (Expand_Exception_Handlers): Do not provide
7409 a source location for the first actual of Save_Occurrence for
7410 consistency sake.
7411
74122012-01-30 Ed Schonberg <schonberg@adacore.com>
7413
7414 * einfo.ads, einfo,adb: New attribute on scalar types:
7415 Default_Aspect_Value New attribute on array types:
7416 Default_Aspect_Component_Value Move attribute Related_Array_Object
7417 to a different position to accomodate new aspect attributes.
7418 * freeze.adb (Freeze_Entity): Use new attributes to retrieve value
7419 of defaults set with an aspect specification, rather than using
7420 the list of aspects attached to the type, to prevent issues with
7421 partial views.
7422 * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
7423 Default_Value and Default_Component _Value, store corresponding
7424 expression in type entity.
7425 (Check_Aspect_At_End_Of_Declaration): If the default aspects
7426 are declared on the full view, use the full view to resolve the
7427 correseponding expression.
7428 * exp_ch3.adb (Init_Component): Use attribute
7429 Default_Aspect_Component_Value to perform default initialization,
7430 rather than relying on the rep item list for the type.
7431 (Get_Simple_Init_Val): Ditto.
7432
013c9832 74332012-01-30 Thomas Quinot <quinot@adacore.com>
7434
7435 * a-strhas.ads: Document risk of collision attack.
7436
74372012-01-30 Yannick Moy <moy@adacore.com>
7438
7439 * gnat_ugn.texi: Minor update wrt warning switches.
7440
9f64ee09 74412012-01-30 Vincent Celier <celier@adacore.com>
7442
7443 * prj-nmsc.adb (Check_Interfaces): Report an error when a
7444 unit from Library_Interface is not a unit of the project.
7445
74462012-01-30 Vincent Pucci <pucci@adacore.com>
7447
7448 * sem_prag.adb (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Parent
7449 links fixed inside PPC pragmas.
7450 * sem_ch12.adb: Move call to Make_Aspect_For_PPC_In_Gen_Sub_Decl.
7451
74522012-01-30 Thomas Quinot <quinot@adacore.com>
7453
7454 * s-ransee.ads: Minor reformatting.
7455
9f269bd8 74562012-01-30 Pascal Obry <obry@adacore.com>
7457
7458 * prj.ads, prj.adb (For_Each_Source): Add support for skipping
7459 sources coming from an encapsulated library.
7460
74612012-01-30 Ed Schonberg <schonberg@adacore.com>
7462
7463 * sem_ch3.adb (Process-Full_View): fix typo.
7464 * sem_ch13.adb (Aalyze_Aspect_Specifications): if predicates
7465 appear on a private type and the full view is available, ensure
7466 existence of freeze node for full view.
7467 (Build_Predicate_Function): Attach predicate function to both
7468 views of a private type.
7469
74702012-01-30 Vincent Celier <celier@adacore.com>
7471
7472 * prj-nmsc.adb (Check_Interfaces): Compute the Lib_Interface_ALIs
7473 for the project if either attribute Library_Interface or
7474 Interfaces is declared.
7475 (Check_Stand_Alone_Library): Use Lib_Interface_ALIs computed in
7476 Check_Interfaces.
7477
a82d9bf4 74782012-01-30 Pascal Obry <obry@adacore.com>
7479
7480 * prj-proc.adb (Recursive_Process): Set From_Encapsulated_Lib
7481 boolean value to true in the process list created by this routine.
7482 * prj.ads (Project_List_Element): New field From_Encapsulated_Lib.
7483 Continued work for KA06-021.
7484 * prj.adb (Compute_All_Imported_Projects): Set
7485 From_Encapsulated_Lib boolean flag.
7486
caad910a 74872012-01-30 Vincent Pucci <pucci@adacore.com>
7488
7489 * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Minor
7490 code clean up.
7491 * s-diflio.ads: Minor change.
7492
74932012-01-30 Javier Miranda <miranda@adacore.com>
7494
7495 * exp_ch9.adb (Build_Dispatching_Requeue): Add missing call
7496 to Get_Entry_Index. Required to generate code which provides
7497 the correct value of Entry_Index in the target entry.
7498
74992012-01-30 Nicolas Roche <roche@adacore.com>
7500
7501 * system-vxworks-ppc.ads: Add pragma Linker_Options -crtbe to
7502 fix issue with zcx on VxWorks5.
7503
75042012-01-30 Pascal Obry <obry@adacore.com>
7505
7506 * prj.ads, prj.adb (For_Every_Project_Imported): Remove
7507 In_Aggregate_Lib.
7508 (For_Every_Project_Imported_Context): New generic routine with
7509 a context parameter.
7510 * prj-nmsc.adb: Revert to use For_Every_Project_Imported Avoid
7511 distributed complexity.
7512 * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: Ditto.
7513
04e29e1d 75142012-01-30 Thomas Quinot <quinot@adacore.com>
7515
7516 * exp_aggr.adb (Expand_Record_Aggregate): After creating the
7517 _parent aggregate for an extension aggregate, check whether it
7518 requires delayed (top-down) expansion.
7519
75202012-01-30 Vincent Pucci <pucci@adacore.com>
7521
7522 * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Rewritten.
7523 * snames.ads-tmpl: Name_Item and Name_Symbols added.
7524 * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads: Rename
7525 and change the position of parameter Symbols in every Put routine.
7526 * s-dimmks.ads: Convert long float type Mks_Type into long
7527 long float.
7528 * s-llflex.ads: Modifications in comments.
7529
75302012-01-30 Hristian Kirtchev <kirtchev@adacore.com>
7531
7532 * sem_ch12.adb (Earlier): Do not use the
7533 top level source locations of the two input nodes.
7534
daa6a3ae 75352012-01-30 Robert Dewar <dewar@adacore.com>
7536
7537 * einfo.ads, sem_prag.adb, sem_attr.adb, aspects.ads,
7538 sem_cat.adb, sem_aggr.adb, exp_aggr.adb: Minor reformatting.
7539
14cf7fa7 75402012-01-30 Robert Dewar <dewar@adacore.com>
7541
7542 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting.
7543
75442012-01-30 Olivier Hainque <hainque@adacore.com>
7545
7546 * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Add rule for r1 back +
7547 comments.
7548
75492012-01-30 Thomas Quinot <quinot@adacore.com>
7550
7551 * gnat_rm.texi, sem_dist.adb, sem_dist.ads, einfo.ads, sem_prag.adb,
7552 sem_ch12.adb, sem_attr.adb, aspects.adb, aspects.ads, par-prag.adb,
7553 sem_cat.adb, snames.ads-tmpl (Sem_Dist.Is_Valid_Remote_Object_Type):
7554 New subprogram (extracted from
7555 Sem_Cat.Validate_Remote_Access_Object_Type_Declaration).
7556 (Einfo.Is_Remote_Types): Now applies to generic types. Update
7557 documentation accordingly.
7558 (Sem_Ch12.Analyze_Associations): A RACW type is acceptable as
7559 actual for a formal type to which a pragma Remote_Access_Type
7560 applies.
7561 (Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect
7562 Remote_Access_Type.
7563 (Sem_Attr.Analyze_Attribute, case Stub_Type): Attribute can
7564 be applied to a generic type if pragma Remote_Access_Type
7565 applies, in which case the type of the attribute is
7566 System.Partition_Interface.RACW_Stub_Type.
7567
bfa2a0ba 75682012-01-27 Eric Botcazou <ebotcazou@adacore.com>
7569
7570 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set
7571 an alignment on fields of the RETURN type built for the CICO mechanism.
7572
0c1dfc4b 75732012-01-27 Eric Botcazou <ebotcazou@adacore.com>
7574
7575 * gcc-interface/trans.c (gnat_to_gnu): Avoid making a SAVE_EXPR for
7576 a call to a function that returns an unconstrained type with default
bfa2a0ba 7577 discriminant. Similarly, avoid doing the conversion to the nominal
0c1dfc4b 7578 result type in this case.
7579
587b5d75 75802012-01-27 Eric Botcazou <ebotcazou@adacore.com>
7581
7582 * gcc-interface/ada-tree.h (DECL_ALIASED_P): New flag.
7583 * gcc-interface/decl.c (is_variable_size): Rename to...
7584 (type_has_variable_size): ...this.
7585 (adjust_packed): Adjust to above renaming.
7586 (gnat_to_gnu_field): Set DECL_ALIASED_P on the field.
7587 (field_is_artificial): New predicate.
7588 (field_is_aliased): Likewise.
7589 (field_has_self_size): Likewise.
7590 (field_has_variable_size): Likewise.
7591 (components_to_record): Record information for the final layout during
7592 the first pass on fields.
7593 If there is an aliased field placed after a field whose length depends
7594 on discriminants, put all the fields of the latter sort, last.
7595
15bd2796 75962012-01-27 Eric Botcazou <ebotcazou@adacore.com>
7597
7598 * gcc-interface/gigi.h (get_minimal_subprog_decl): Declare.
7599 * gcc-interface/decl.c (get_minimal_subprog_decl): New function.
7600 * gcc-interface/trans.c (Attribute_to_gnu): Use it for the prefix of an
7601 Access-like attribute in a dispatch table if the subprogram is public.
7602
7e9d30ae 76032012-01-27 Eric Botcazou <ebotcazou@adacore.com>
7604
7605 * gcc-interface/gigi.h (create_label_decl): Adjust.
7606 * gcc-interface/utils.c (create_label_decl): Add GNAT_NODE parameter
7607 and invoke gnat_pushdecl on it. Remove obsolete settings.
7608 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Label>: Adjust call to
7609 create_label_decl.
7610 * gcc-interface/trans.c (gnat_to_gnu) <N_Null): Likewise. Ignore the
7611 label for debugging purposes.
7612
48954d78 76132012-01-27 Eric Botcazou <ebotcazou@adacore.com>
7614
7615 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an aliased
7616 object with an unconstrained nominal subtype and if optimization isn't
7617 enabled, create a special VAR_DECL for debugging purposes.
7618
4db325e6 76192012-01-23 Robert Dewar <dewar@adacore.com>
7620
7621 * sem_prag.ads, sem_prag.adb: Minor reformatting.
7622
76232012-01-23 Robert Dewar <dewar@adacore.com>
7624
7625 * sem_ch13.adb (Analyze_Aspect_Specifications): Check for
7626 language defined aspect applied to renaming or formal type
7627 declaration (not permitted)
7628
76292012-01-23 Matthew Heaney <heaney@adacore.com>
7630
7631 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Vet): Replaced
7632 comment with pragma Assert.
7633
cf46479c 76342012-01-23 Vincent Pucci <pucci@adacore.com>
7635
7636 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
7637 to Make_Aspect_For_PPC_In_Gen_Sub_Decl added in ASIS mode.
7638 * sem_prag.adb, sem_prag.ads (Make_Aspect_For_PPC_In_Gen_Sub_Decl): New
7639 routine. In ASIS mode, convert any PPC pragmas into aspects in generic
7640 subprogram declaration in order to enable the analysis of PPC boolean
7641 expressions.
7642
24f0ba72 76432012-01-23 Robert Dewar <dewar@adacore.com>
7644
7645 * sem_ch3.adb (Analyze_Object_Declaration): Properly
7646 handle Current_Value for volatile variables (also propagate
7647 Treat_As_Volatile from type to object).
7648
76492012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
7650
7651 * sem_ch12.adb (Install_Body): Detect the case
7652 where the enclosing context is a package with a stub body that
7653 has already been replaced by the actual body. In such cases,
7654 the freeze node for the enclosing context must be inserted after
7655 the real body.
7656
76572012-01-23 Ed Schonberg <schonberg@adacore.com>
7658
7659 * sem_prag.adb (Analyze_Pragma, case Debug): Freeze the called
7660 subprogram before expanding the pragma into an if-statement with
7661 a block, to ensure that when the subprogram is null its body is
7662 properly generated before expansion.
7663
362e5ece 76642012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
7665
7666 * sem_ch12.adb (Analyze_Associations): Alphabetize local variables and
7667 constants. Rename Actual_Types to Actuals_To_Freeze. Rename Next_Formal
7668 to Saved_Formal.
7669 Freeze all eligible subprograms which appear as actuals in
7670 the instantiation.
7671 (Has_Fully_Defined_Profile): New routine.
7672 (Renames_Standard_Subprogram): New routine.
7673 (Earlier): Add local variable N. Comment update. Do not use source
7674 locations when trying to determine whether one node precedes another.
7675
76762012-01-23 Gary Dismukes <dismukes@adacore.com>
7677
7678 * exp_ch4.adb (Expand_Concatenate): In the case
7679 where the result of a concatentation can be null, set the to
7680 result have both the low and high bounds of the right operand (not
7681 just the high bound, as was the case prior to this fix). Also,
7682 fix the saved high bound setting (Last_Opnd_High_Bound) in the
7683 empty string literal case (should have been low bound minus one,
7684 rather than plus one).
7685
76862012-01-23 Thomas Quinot <quinot@adacore.com>
7687
7688 * scos.ads, put_scos.adb, get_scos.adb (Get_SCOs, Put_SCOs): Do not
7689 omit statement SCOs for disabled pragmas.
7690
dee4c239 76912012-01-23 Matthew Heaney <heaney@adacore.com>
7692
7693 * a-cohase.ads, a-cihase.ads, a-cbhase.ads, a-coorse.ads,
7694 a-ciorse.ads, a-cborse.ads, a-cohama.ads, a-cihama.ads, a-cbhama.ads,
7695 a-coorma.ads, a-ciorma.ads, a-cborma.ads, a-cdlili.ads, a-cidlli.ads,
7696 a-cbdlli.ads, a-convec.ads, a-coinve.ads, a-cobove.ads (Cursor'Read,
7697 Cursor'Write): Declare in private part.
7698 (Reference_Type'Read, Reference_Type'Write): Ditto.
7699 (Constant_Reference_Type'Read, Constant_Reference_Type'Write): Ditto.
7700
25122b4c 77012012-01-23 Robert Dewar <dewar@adacore.com>
7702
7703 * a-catizo.ads, a-calend.adb, a-calend.ads, par-ch13.adb: Minor
7704 reformatting.
7705
98108069 77062012-01-23 Ed Schonberg <schonberg@adacore.com>
7707
7708 * sem_ch6.adb (Analyze_Subprogram_Declaration): Do not set the
7709 Corresponding_Body on a defaulted null formal subprogram.
7710 * sem_ch12.adb (Check_Formal_Package_Instance): No check needed
7711 on a defaulted formal subprogram that is a null procedure.
7712
77132012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
7714
7715 * exp_ch9.adb: Update the comments involving pragma Implemented.
7716 * sem_ch3.adb (Check_Pragma_Implemented (Entity_Id)): Add local
7717 constant Subp_Alias and local variable Impl_Subp. Properly
7718 handle aliases of synchronized wrappers. Code cleanup.
7719 (Check_Pragma_Implemented (Entity_Id; Entity_Id)): Add
7720 Name_Optional as part of the condition.
7721 * sem_prag.adb (Analyze_Pragma): Add "Optional" as one of the
7722 valid choices of implementation kind.
7723 (Check_Arg_Is_One_Of): New routine.
7724 * snames.ads-tmlp: Add Name_Optional.
7725
77262012-01-23 Ed Schonberg <schonberg@adacore.com>
7727
7728 * par-ch13.adb: Better error recovery in illegal aspect
7729 specification.
7730
77312012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
7732
7733 * a-calend.adb: Add with clause for Interfaces.C. Add constant
7734 Unix_Max.
7735 (Day_Of_Week): Call the internal UTC_Time_Offset.
7736 (Split): Call the internal UTC_Time_Offset.
7737 (Time_Of): Call the internal UTC_Time_Offset.
7738 (Time_Zone_Operations.UTC_Time_Offset): Call internal UTC_Time_Offset.
7739 (UTC_Time_Offset): New library-level routine.
7740 * a-calend.ads (UTC_Time_Offset): Remove parameter
7741 Is_Historic. Update related comment on usage.
7742 * a-catizo.adb (UTC_Time_Offset): Removed.
7743 (UTC_Time_Offset (Time)): Call Time_Zone_Operations.UTC_Time_Offset.
7744 * a-caltizo.ads (UTC_Time_Offset): Removed.
7745 (UTC_Time_Offset (Time)): Add back the default expression of parameter
7746 Date.
7747
f65e883c 77482012-01-23 Robert Dewar <dewar@adacore.com>
7749
7750 * sprint.ads, sprint.adb (Sprint_Node_List): Add New_Lines parameter
7751 (pg,po,ps): Make sure each entry starts on new line.
7752
77532012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
7754
7755 * a-calend.ads, a-calend.adb: Define types int and int_Pointer. Update
7756 the parameter profile of procedure localtime_tzoff and its associated
7757 comment.
7758 (Day_Of_Week): Do not treat the input date as historical
7759 with respect to time zones.
7760 (Split): Do not treat the input
7761 date as historical with respect to time zones. (Time_Of): Do
7762 not treat the input constituents as forming a historical date
7763 with respect to time zones.
7764 (UTC_Time_Offset): Add new formal
7765 parameter Is_Historic. Add local variable Flag. Update the call
7766 to localtime_tzoff.
7767 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): New routine.
7768 (UTC_Time_Offset (Time)): Update the call to
7769 Time_Zone_Operations.UTC_Time_Offset.
7770 * sysdep.c (__gnat_localtime_tzoff): Update parameter
7771 profile. Split the processing of offsets on Windows into two - one
7772 part of historic time stamps and the other for the current time.
7773
6d852e2b 77742012-01-23 Robert Dewar <dewar@adacore.com>
7775
7776 * a-calend.adb: Minor reformatting.
7777
77782012-01-23 Ed Schonberg <schonberg@adacore.com>
7779
7780 * exp_ch9.adb, sem_ch9.adb: Handle array of access to synchronized
7781 interface in requeue statement.
7782
77832012-01-23 Cyrille Comar <comar@adacore.com>
7784
7785 * projects.texi: Remove references to main units and replace
7786 with references to main programs to be coherent with the
7787 documentation.
7788
cb9cb2d7 77892012-01-23 Robert Dewar <dewar@adacore.com>
7790
7791 * s-utf_32.adb: Minor reformatting.
7792
77932012-01-23 Vincent Celier <celier@adacore.com>
7794
7795 * snames.ads-tmpl: Minor comment addition Indicate that
7796 Name_Library_Encapsulated_Options is only used in gprbuild.
7797
49213728 77982012-01-23 Robert Dewar <dewar@adacore.com>
7799
7800 * sem_ch10.adb (Analyze_Subunit): Properly save/restore cunit
7801 restrictions.
7802
78032012-01-23 Ed Schonberg <schonberg@adacore.com>
7804
7805 * snames.ads-tmpl: Add Name_Synchronization.
7806 * aspects.ads, aspects.adb: Add Aspect_Synchronization to
7807 enumeration type and related maps.
7808 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle Aspect
7809 Synchronization, build corresponding pragma Implemented.
7810 * sem_util.adb (Implementation_Kind): Handle both explicit and
7811 implicit pragma_argument association to retrieve the given
7812 synchronization mode.
7813
bc3646ef 78142012-01-23 Robert Dewar <dewar@adacore.com>
7815
7816 * sem_ch10.adb, errout.adb: Minor reformatting.
7817
78182012-01-23 Ed Schonberg <schonberg@adacore.com>
7819
7820 * sem_res.adb (Resolve_Actuals): An actual in a call to an
7821 Ada 2012 Reference function does not lead to a dangerous order
7822 dependence.
7823
6daf2e31 78242012-01-23 Gary Dismukes <dismukes@adacore.com>
7825
7826 * exp_util.adb (Is_Iterated_Container): Test
7827 Is_Entity_Name when searching for calls to the default iterator,
7828 to avoid blowing up on indirect calls which have an explicit
7829 dereference as the call name.
7830
78312012-01-23 Thomas Quinot <quinot@adacore.com>
7832
7833 * errout.adb (Set_Msg_Node): For an N_Expanded_Name, output
7834 the complete expanded name, rather than just its Selector_Name.
7835
78362012-01-23 Thomas Quinot <quinot@adacore.com>
7837
7838 * a-textio.adb (Put): Rewrite one-parameter Character version to
7839 just call the two-parameter one with Current_Out.
7840
2691091b 78412012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
7842
7843 * freeze.adb (Check_Current_Instance): Issue an
7844 error when the prefix of 'Unchecked_Access or 'Access does not
7845 denote a legal aliased view of a type.
7846 (Freeze_Record_Type): Do not halt the processing of record components
7847 once the Has_Controlled_Component is set as this bypasses the remaining
7848 checks.
7849 (Is_Aliased_View_Of_Type): New routine.
7850
78512012-01-23 Thomas Quinot <quinot@adacore.com>
7852
7853 * errout.ads, freeze.adb: Minor reformatting.
7854
78552012-01-23 Thomas Quinot <quinot@adacore.com>
7856
7857 * sem_ch10.adb, sem_prag.adb: Remove redundant apostrophes in error
7858 messages.
7859
78602012-01-23 Olivier Hainque <hainque@adacore.com>
7861
7862 * adadecode.c (__gnat_decode): Deal with empty input early,
7863 preventing potential erroneous memory access later on.
7864
465cee25 78652012-01-21 Eric Botcazou <ebotcazou@adacore.com>
7866
7867 PR ada/46192
7868 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the case of a
7869 renaming, preserve the volatileness through the indirection, if any.
7870
cfe97a8d 78712012-01-14 Andreas Schwab <schwab@linux-m68k.org>
7872
7873 * gcc-interface/Makefile.in (OSCONS_EXTRACT): Add
7874 $(GNATLIBCFLAGS).
7875
ae8e99a3 78762012-01-10 Pascal Obry <obry@adacore.com>
7877
7878 * prj-nmsc.adb (Check_Library_Attributes):
7879 Kill check for object/source directories for aggregate libraries.
7880
78812012-01-10 Matthew Heaney <heaney@adacore.com>
7882
7883 * a-cdlili.adb, a-cdlili.ads, a-cihama.adb, a-cihama.ads, a-coinve.adb,
7884 a-coinve.ads, a-ciorse.adb, a-ciorse.ads, a-coorma.adb, a-coorma.ads,
7885 a-cborma.adb, a-cborma.ads, a-cidlli.adb, a-cidlli.ads, a-cimutr.adb,
7886 a-cimutr.ads, a-cihase.adb, a-cihase.ads, a-cohama.adb, a-cohama.ads,
7887 a-coorse.adb, a-coorse.ads, a-cbhama.adb, a-cbhama.ads, a-cborse.adb,
7888 a-cborse.ads, a-comutr.adb, a-comutr.ads, a-ciorma.adb, a-cobove.adb,
7889 a-ciorma.ads, a-cobove.ads, a-convec.adb, a-convec.ads, a-cohase.adb,
7890 a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbmutr.adb, a-cbmutr.ads,
7891 a-cbhase.adb, a-cbhase.ads (Reference, Constant_Reference): Declare
7892 container parameter as aliased in/in out.
7893 Code clean ups.
7894
78952012-01-10 Bob Duff <duff@adacore.com>
7896
7897 * s-os_lib.ads: Improve comment.
7898
78992012-01-10 Geert Bosch <bosch@adacore.com>
7900
7901 * s-gearop.adb (Forward_Eliminate): Avoid improper aliasing
7902 for complex Scalar.
7903
43537c96 79042012-01-10 Bob Duff <duff@adacore.com>
7905
7906 * sem_intr.adb (Check_Shift): Use RM_Size instead of Esize, when
7907 checking that the 'Size is correct. If the type is "mod 2**12",
7908 for example, it's illegal, but Esize is the 'Object_Size, which
7909 will be something like 16 or 32, so the error ('Size = 12) was
7910 not detected.
7911 * gnat_rm.texi: Improve documentation of shift
7912 and rotate intrinsics.
7913
79142012-01-10 Pascal Obry <obry@adacore.com>
7915
7916 * prj.adb (For_Every_Project_Imported): Fix
7917 implementation to make sure we return each project only once
7918 for aggragte libraries. It is fine to return a project twice for
7919 aggregate projects, this was the case as a Project_Id is different
7920 in each project tree. The new implementation use a table based on
7921 the project name to ensure proper detection of duplicate project
7922 in aggregate library. A new context is then created to continue
7923 retrurning duplicate project for aggregate libraries.
7924
5c0db21d 79252012-01-09 Eric Botcazou <ebotcazou@adacore.com>
7926
7927 * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
7928 return value in the variable-sized return type case if the target is
7929 an array with fixed size. However, do not create it if this is the
7930 expression of an object declaration.
7931
2f7233cb 79322012-01-09 Eric Botcazou <ebotcazou@adacore.com>
7933
7934 * gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko.
7935
c8e4bf42 79362012-01-06 Robert Dewar <dewar@adacore.com>
7937
7938 * a-wichha.ads, a-wichun.ads, a-zchhan.ads, a-zchuni.ads,
7939 s-utf_32.ads: Add pragma Pure
7940 * s-utf_32.adb: Suppress warnings on non-static constants (now
7941 that this is Pure).
7942
79432012-01-06 Bob Duff <duff@adacore.com>
7944
7945 * s-rpc.ads (Read, Write): Add overriding indicators.
7946
79472012-01-06 Robert Dewar <dewar@adacore.com>
7948
7949 * gnat_rm.texi: Add documentation for conventions
7950 Ada_Pass_By_Copy and Ada_Pass_By_Reference.
7951
79522012-01-06 Gary Dismukes <dismukes@adacore.com>
7953
7954 * a-tienio.adb (Put): Add exception message on
7955 raise statements. Remove unneeded blocks and object declarations.
7956
79572012-01-06 Robert Dewar <dewar@adacore.com>
7958
7959 * sem_prag.adb: Minor reformatting.
7960
79612012-01-06 Ed Schonberg <schonberg@adacore.com>
7962
7963 * sinfo.ads, sinfo.adb (Has_Prefixed_Call): New flag to indicate
7964 that a selected component within a generic unit has been resolved
7965 as a prefixed call with local references.
7966 * sem_ch3.adb (Is_Visible_Component): In an instance body a selected
7967 component is always visible.
7968 * sem_ch4.adb (Analyze_Selected_Component): If the node is a
7969 prefixed call in an instance, do not look for visible components
7970 of the type.
7971 * sem_ch12.adb (Reset_Entity): If a selected component has resolved
7972 to a prefixed call, mark the node accordingly when prefix and
7973 selector are local references.
7974
4e6fa7c5 79752012-01-02 Eric Botcazou <ebotcazou@adacore.com>
7976
7977 * gnatvsn.ads (Current_Year): Bump to 2012.
7dfbd804 7978\f
8dfa851a 7979Copyright (C) 2012 Free Software Foundation, Inc.
7dfbd804 7980
7981Copying and distribution of this file, with or without modification,
7982are permitted in any medium without royalty provided the copyright
7983notice and this notice are preserved.