OSDN Git Service

2012-07-17 Tristan Gingold <gingold@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2012-07-17  Tristan Gingold  <gingold@adacore.com>
2
3         * gnat_rm.texi: Adjust previous change.
4
5 2012-07-17  Ed Schonberg  <schonberg@adacore.com>
6
7         * sem_prag.adb (Process_Import_Or_Interface): If the pragma
8         comes from an aspect, it applies to the corresponding entity
9         without further check.
10
11 2012-07-17  Olivier Hainque  <hainque@adacore.com>
12
13         * initialize.c (__gnat_initialize for VxWorks): Remove section with
14         call to __gnat_vxw_setup_for_eh.
15         * system-vxworks-ppc.ads: Add -auto-register to -crtbe, relying
16         on the VxWorks constructor mechanism for network loaded modules
17         by default.
18
19 2012-07-17  Tristan Gingold  <gingold@adacore.com>
20
21         * adaint.c: Minor reformatting.
22
23 2012-07-17  Pascal Obry  <obry@adacore.com>
24
25         * s-regexp.adb (Adjust): Fix access violation in Adjust.
26
27 2012-07-17  Ed Schonberg  <schonberg@adacore.com>
28
29         * freeze.adb (Freeze_Entity): Warn if an imported subprogram
30         has pre/post conditions, because these will not be enforced.
31
32 2012-07-17  Eric Botcazou  <ebotcazou@adacore.com>
33
34         * exp_ch7.adb (Process_Transient_Objects): Put all the
35         finalization blocks and the final raise statement into a wrapper
36         block.
37
38 2012-07-17  Vincent Pucci  <pucci@adacore.com>
39
40         * s-atopri.adb (Lock_Free_Try_Write_X): Atomic_Compare_Exchange_X
41         replaced by Sync_Compare_And_Swap_X.
42         (Lock_Free_Try_Write_64): Removed.
43         * s-atopri.ads (Sync_Compare_And_Swap_X): Replaces previous
44         routine Atomic_Compare_Exchange_X.
45         (Lock_Free_Read_64): Renaming of Atomic_Load_64.
46         (Lock_Free_Try_Write_64): Renaming of Sync_Compare_And_Swap_64.
47
48 2012-07-17  Vincent Celier  <celier@adacore.com>
49
50         * switch-m.adb (Normalize_Compiler_Switches): Recognize new
51         switches -gnatn1 and -gnatn2.
52
53 2012-07-17  Vincent Pucci  <pucci@adacore.com>
54
55         * gnat_ugn.texi: GNAT dimensionality checking
56         documentation updated with System.Dim.Mks modifications.
57
58 2012-07-17  Ed Schonberg  <schonberg@adacore.com>
59
60         * exp_ch3.adb: sloc of array init_proc is sloc of type declaration.
61
62 2012-07-17  Tristan Gingold  <gingold@adacore.com>
63
64         * raise-gcc.c (get_call_site_action_for): Remove useless init
65         expression for p.
66         (get_action_description_for): Do not overwrite action->kind.
67
68 2012-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
69
70         * exp_attr.adb (Expand_N_Attribute_Reference): Add local variables Attr
71         and Conversion_Added.  Add local constant Typ.
72         Retrieve the original attribute after the arithmetic check
73         machinery has modified the node. Add a conversion to the target
74         type when the prefix of attribute Max_Size_In_Storage_Elements
75         is a controlled type.
76
77 2012-07-17  Gary Dismukes  <dismukes@adacore.com>
78
79         * exp_ch6.adb (Expand_Inlined_Call): For each actual parameter
80         of mode 'out' or 'in out' that denotes an entity, reset
81         Last_Assignment on the entity so that any assignments to the
82         corresponding formal in the inlining will not trigger spurious
83         warnings about overwriting assignments.
84
85 2012-07-17  Robert Dewar  <dewar@adacore.com>
86
87         * s-assert.ads: Fix comments to make it clear that this is used
88         for all assertions, not just pragma Assert.
89
90 2012-07-17  Jerome Guitton  <guitton@adacore.com>
91
92         * par_sco.ads: Minor typo fix.
93
94 2012-07-17  Gary Dismukes  <dismukes@adacore.com>
95
96         * layout.adb (Layout_Type): In the case where the target is
97         AAMP, use 32 bits (a single pointer) rather than 64 bits for an
98         anonymous access-to-subprogram type if the type is library-level
99         and Is_Local_Anonymous_Access is True.
100
101 2012-07-17  Jose Ruiz  <ruiz@adacore.com>
102
103         * s-tassta.adb, s-tarest.adb (Create_Task, Create_Restricted_Task,
104         Initialize): Add comments explaining that the CPU affinity value that
105         is passed to the run-time library can be either Unspecified_CPU, to
106         indicate that the task inherits the affinity of its activating task,
107         or a value in the range of CPU_Range but no greater than Number_Of_CPUs.
108
109 2012-07-17  Javier Miranda  <miranda@adacore.com>
110
111         * exp_disp.adb (Make_DT): Remove decoration of Ada.Tags entities.
112         (Make_Tags): Add decoration of Ada.Tags entities.
113
114 2012-07-17  Ed Schonberg  <schonberg@adacore.com>
115
116         * sem_ch6.adb (Check_Statement_Sequence): When locating the
117         last significant statement in a sequence, ignore iserted nodes
118         that typically come from expansion of controlled operations.
119
120 2012-07-17  Tristan Gingold  <gingold@adacore.com>
121
122         * gnat_rm.texi: Document foreign exceptions.
123
124 2012-07-17  Robert Dewar  <dewar@adacore.com>
125
126         * sem_prag.adb, treepr.ads: Minor reformatting.
127
128 2012-07-17  Robert Dewar  <dewar@adacore.com>
129
130         * exp_ch9.adb: Minor code reorganization.
131         * exp_ch3.adb: Minor code improvement.
132
133 2012-07-17  Tristan Gingold  <gingold@adacore.com>
134
135         * seh_init.c (__gnat_SEH_error_handler): Not compiled anymore
136         on Windows 64 (+ SEH), as it is unused.
137
138 2012-07-17  Javier Miranda  <miranda@adacore.com>
139
140         * sem_prag.adb (CPP_Class): Transform obsolescent pragma CPP_Class into
141         CPP convention automatically.
142
143 2012-07-16  Tristan Gingold  <gingold@adacore.com>
144
145         * gcc-interface/decl.c (intrin_return_compatible_p): Map Address to
146         void *.
147
148 2012-07-16  Thomas Quinot  <quinot@adacore.com>
149
150         * exp_ch9.adb (Ensure_Statement_Present): New subprogram.
151         (Expand_N_Asynchronous_Select,
152         Expand_N_Selective_Accept.Process_Accept_Alternative,
153         Expand_N_Selective_Accept.Process_Delay_Alternative,
154         Expand_N_Timed_Entry_Call): For an alternative with no trailing
155         statements, introduce a null statement to carry the sloc of
156         the initial special statement (accept, delay, or entry call)
157         in the alternative, for coverage analysis purposes.
158
159 2012-07-16  Thomas Quinot  <quinot@adacore.com>
160
161         * sem_eval.adb (In_Subrange_Of): Fix typo in test for scalar
162         arguments.
163
164 2012-07-16  Robert Dewar  <dewar@adacore.com>
165
166         * a-exexpr.adb, freeze.adb, a-exexpr-gcc.adb, a-except-2005.adb,
167         sem_eval.adb, s-fileio.adb: Minor reformatting.
168
169 2012-07-16  Javier Miranda  <miranda@adacore.com>
170
171         * sem_prag.adb (Analyze_Pragma): Remove support for obsolescent
172         pragma CPP_Class.
173         * sem_ch13.adb (Analyze_Freeze_Entity): Add missing error on Ada
174         derivations of CPP types.  Found updating the tests affected by
175         the removal of pragma CPP_Class.
176
177 2012-07-16  Thomas Quinot  <quinot@adacore.com>
178
179         * back_end.adb: Minor reformatting.
180
181 2012-07-16  Thomas Quinot  <quinot@adacore.com>
182
183         * exp_ch9.adb (Expand_N_Selective_Accept.Process_Accept_Alternative):
184         Remove junk test that was always true. For the case of no statements
185         following the ACCEPT, jump directly to End_Lab instead of
186         introducing an intermediate jump.
187         (Expand_N_Selective_Accept.Process_Delay_Alternative): Fix
188         predicate testing for presence of statements following the DELAY.
189         that was always true. For the case of no statements following
190         the ACCEPT, jump directly to End_Lab instead of introducing an
191         intermediate jump.
192         (Expand_N_Selective_Accept): Fix incorrect insertion point for
193         end label.
194
195 2012-07-16  Thomas Quinot  <quinot@adacore.com>
196
197         * gnat_rm.texi: Minor documentation improvements.
198
199 2012-07-16  Yannick Moy  <moy@adacore.com>
200
201         * sem_ch13.adb (Analyze_Aspect_Specifications): Allow Pre
202         and Pre'Class aspects on the same declaration.
203         * sem_prag.adb (Chain_PPC): Allow Pre and Pre'Class aspects on the
204         same hierarchy of primitive operations.
205
206 2012-07-16  Thomas Quinot  <quinot@adacore.com>
207
208         * freeze.adb (Check_Component_Storage_Order): Do not reject a
209         nested composite with different scalar storage order if it is
210         byte aligned.
211
212 2012-07-16  Thomas Quinot  <quinot@adacore.com>
213
214         * gnat_rm.texi: Update documentation for Scalar_Storage_Order.
215
216 2012-07-16  Tristan Gingold  <gingold@adacore.com>
217
218         * a-exexpr.adb (Propagate_Exception): Adjust call to
219         Exception_Traces procedures.
220         * a-exexpr-gcc.adb (Setup_Current_Excep): Now a
221         function that returns an access to the Ada occurrence.
222         (Propagate_GCC_Exception): Adjust calls.
223         * raise.h (struct Exception_Occurrence): Declare.
224         * a-exextr.adb: Remove useless pragma.  (Notify_Handled_Exception,
225         Notify_Unhandled_Exception) (Unhandled_Exception_Terminate):
226         Add Excep parameter.
227         * a-except.adb (Notify_Handled_Exception,
228         Notify_Unhandled_Exception) (Unhandled_Exception_Terminate):
229         Add Excep parameter.
230         (Process_Raise_Exception): Adjust calls.
231         * a-except-2005.adb (Notify_Handled_Exception,
232         Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): Add
233         Excep parameter.
234         (Raise_Exception): Calls Raise_Exception_Always.
235         * raise-gcc.c (__gnat_setup_current_excep,
236         __gnat_notify_handled_exception)
237         (__gnat_notify_unhandled_exception): Adjust declarations.
238         (PERSONALITY_FUNCTION): Adjust calls.
239         (__gnat_personality_seh0): Remove warning.
240
241 2012-07-16  Javier Miranda  <miranda@adacore.com>
242
243         * sem_eval.adb (Test_Expression_Is_Foldable): Adding documentation.
244         (Eval_Relational_Op): Adding documentation.
245
246 2012-07-16  Robert Dewar  <dewar@adacore.com>
247
248         * freeze.adb, g-debpoo.adb, exp_ch3.adb: Minor reformatting.
249
250 2012-07-16  Thomas Quinot  <quinot@adacore.com>
251
252         * s-oscons-tmplt.c: Add definitions of E2BIG and EILSEQ.
253
254 2012-07-16  Tristan Gingold  <gingold@adacore.com>
255
256         * a-exexpr.adb (Propagate_Continue): New function replacing
257         Raise_Current_Excep.
258         (Allocate_Occurrence): New function.
259         (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
260         * a-exexpr-gcc.adb (GNAT_GCC_Exception): Occurrence component
261         is now aliased.
262         (To_GCC_Exception): Convert from Address.
263         (Allocate_Occurrence): Allocate an Unwind exception occurrence.
264         (Setup_Current_Excep): Fill the machine occurrence in case of
265         foreign exception.
266         (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
267         * a-except.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
268         Excep parameter.
269         (Raise_Exception, Raise_Exception_Always,
270         Raise_Exception_No_Defer): Adjust calls to the above procedures.
271         (Raise_From_Signal_Handler, Raise_With_Location_And_Msg)
272         (Rcheck_PE_Finalize_Raised_Exception): Likewise.
273         * a-except-2005.adb (Set_Exception_C_Msg, Set_Exception_Msg):
274         add Excep parameter.
275         (Propagate_Exception): Likewise.
276         (Allocate_Occurrence): New function.
277         (Raise_Current_Excep): Removed.
278         (Complete_Occurrence): New function to save the call chain.
279         (Complete_And_Propagate_Occurrence): New procedure.
280         (Create_Occurrence_From_Signal_Handler): New function to build an
281         occurrence without propagating it.
282         (Create_Machine_Occurrence_From_Signal_Handler): Likewise, but
283         return the machine occurrence.
284         (Raise_From_Signal_Handler): Use Create_Occurrence_From_Signal_Handler.
285         (Raise_Exception, Raise_Exception_Always, Raise_Exception_No_Defer):
286         Adjust calls to the above procedures. Allocate the occurrence at
287         the beginning.
288         (Raise_With_Location_And_Msg, Raise_With_Msg)
289         (Rcheck_PE_Finalize_Raised_Exceptionm Reraise): Likewise.
290         (Reraise_Occurrence): Use Reraise_Occurrence_Always.
291         (Reraise_Occurrence_Always): Use Reraise_Occurrence_No_Defer.
292         (Reraise_Occurrence_No_Defer): Preserve machine occurrence.
293         (Save_Occurrence): Do not save machine occurrence.
294         * a-except-2005.ads (Exception_Occurrence): Add Machine_Occurrence
295         component.
296         (Null_Occurrence): Consider it.
297         * a-exexda.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
298         Excep parameter.
299
300 2012-07-16  Tristan Gingold  <gingold@adacore.com>
301
302         * seh_init.c (__gnat_map_SEH): New function extracted from
303         __gnat_SEH_error_handler.
304         * raise-gcc.c: __gnat_personality_seh0: Directly transforms
305         Windows system exception into GCC one when possible, in order
306         to save stack room (particularly useful when Storage_Error will
307         be propagated).
308
309 2012-07-16  Robert Dewar  <dewar@adacore.com>
310
311         * a-direct.adb, g-dirope.adb: Minor reformatting.
312
313 2012-07-16  Tristan Gingold  <gingold@adacore.com>
314
315         * a-except.ads, a-except-2005.ads: Remove outdated comment.
316
317 2012-07-16  Robert Dewar  <dewar@adacore.com>
318
319         * sem_ch6.adb (Subprogram_Name_Greater): Fix algorithm to
320         conform to documentation.
321
322 2012-07-16  Ed Schonberg  <schonberg@adacore.com>
323
324         * gnat1drv.adb (Check_Library_Items): Removed, no longer used.
325
326 2012-07-16  Ed Schonberg  <schonberg@adacore.com>
327
328         * sem_ch3.adb (Array_Type_Declaration): if component type has
329         invariants, the array type itself requires an invariant procedure.
330         * exp_ch3.ads, exp_ch3.adb (Build_Array_Invariant_Proc): new
331         procedure, to build a checking procedure that applies the
332         invariant check on some type T to each component of an array
333         of T's.  Code is similar to the construction of the init_proc
334         for an array, and handles multidimensional arrays by recursing
335         over successive dimensions.
336
337 2012-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
338
339         * g-debpoo.adb: Revert previous change.
340
341 2012-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
342
343         * freeze.adb (Freeze_Entity): Insert the itype reference to a
344         library-level class-wide subtype after the freeze node of the
345         equivalent record type.
346
347 2012-07-16  Pascal Obry  <obry@adacore.com>
348
349         * s-crtl.ads (mkdir): New routine, support encoding.
350         * adaint.h (__gnat_mkdir): Update spec to pass encoding.
351         * mkdir.c (__gnat_mkdir): Add encoding parameter.
352         * a-direct.adb (Create_Directory): Use CRTL.mkdir, parse encoding
353         in form parameter.
354         * g-dirope.adb (Make_Dir): Update to pass encoding parameter.
355
356 2012-07-16  Pascal Obry  <obry@adacore.com>
357
358         * adaint.c: Minor reformatting.
359
360 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
361
362         * gcc-interface/utils.c: Include timevar.h.
363         * Make-lang.in: Fix dependencies.
364
365 2012-07-16  Vasiliy Fofanov  <fofanov@adacore.com>
366
367         * ug_words, vms_data.ads: Document VMS qualifiers for -gnatn1/2
368         switches.
369
370 2012-07-16  Bob Duff  <duff@adacore.com>
371
372         * sinfo.ads: Minor comment fix.
373
374 2012-07-16  Bob Duff  <duff@adacore.com>
375
376         * sem_elab.adb (Within_Elaborate_All): Walk the with clauses to
377         find pragmas Elaborate_All that may be found in the transitive
378         closure of the dependences.
379
380 2012-07-16  Robert Dewar  <dewar@adacore.com>
381
382         * exp_pakd.adb, freeze.adb, sem_util.adb, vms_data.ads: Minor
383         reformatting.
384
385 2012-07-12  Vasiliy Fofanov  <fofanov@adacore.com>
386
387         * vms_data.ads: Add VMS qualifiers for -gnatn1/2 switches.
388
389 2012-07-12  Thomas Quinot  <quinot@adacore.com>
390
391         * exp_ch5.adb, exp_pakd.adb, rtsfind.ads, freeze.adb, sem_util.adb,
392         sem_util.ads, exp_aggr.adb
393         (Exp_Aggr.Packed_Array_Aggregate_Handled): Simplify processing
394         for reverse storage order aggregate.
395         (Exp_Pakd.Byte_Swap): New utility routine used by...
396         (Exp_Pakd.Expand_Bit_Packed_Element_Set,
397         Expand_Packed_Element_Reference): For the case of a free-standing
398         packed array with reverse storage order, perform byte swapping.
399         (Rtsfind): Make new entities RE_Bswap_{16,32,64} available.
400         (Freeze.Check_Component_Storage_Order): New utility routine
401         to enforce legality rules for nested composite types whose
402         enclosing composite has an explicitly defined Scalar_Storage_Order
403         attribute.
404         (Sem_Util.In_Reverse_Storage_Order_Object): Renamed from
405         Sem_Util.In_Reverse_Storage_Order_Record, as SSO now applies to
406         array types as well.
407         (Exp_Ch5.Expand_Assign_Array): Remove now unnecessary kludge
408         for change of scalar storage order in assignments. The Lhs and
409         Rhs now always have the same scalar storage order.
410
411 2012-07-12  Hristian Kirtchev  <kirtchev@adacore.com>
412
413         * g-debpoo.adb (Allocate): Add local constant
414         No_Element. Initialize the allocated memory chunk to No_Element.
415
416 2012-07-12  Ed Schonberg  <schonberg@adacore.com>
417
418         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly
419         the case of an instance of a child unit where a formal derived
420         type DT is an extension of a type T declared in a parent unit,
421         and the actual in the instance of the child is the type T declared
422         in the parent instance, and that actual is not a derived type.
423
424 2012-07-12  Eric Botcazou  <ebotcazou@adacore.com>
425             Tristan Gingold  <gingold@adacore.com>
426
427         * system-hpux-ia64.ads: Enable ZCX by default.
428         * gcc-interface/Makefile.in: Use alternate stack on ia64-hpux.
429         Change soext to .so.
430
431 2012-07-12  Robert Dewar  <dewar@adacore.com>
432
433         * s-atopri.adb, s-atopri.ads: Minor reformatting.
434
435 2012-07-12  Robert Dewar  <dewar@adacore.com>
436
437         * ali.adb: Add circuitry to read new named form of restrictions lines.
438         * debug.adb: Add doc for new -gnatd.R switch (used positional
439         notation for output of restrictions data in ali file).
440         * lib-writ.adb: Implement new named format for restrictions lines.
441         * lib-writ.ads: Add documentation for new named format for
442         restrictions in ali files.
443         * restrict.adb, restrict.ads, sem_prag.adb: Update comments.
444         * rident.ads: Go back to withing System.Rident
445         * s-rident.ads: Add extensive comment on dealing with consistency
446         checking.
447
448 2012-07-12  Thomas Quinot  <quinot@adacore.com>
449
450         * par_sco.adb, scos.ads: Emit detailed SCOs for SELECT statements.
451
452 2012-07-12  Robert Dewar  <dewar@adacore.com>
453
454         * sem_disp.adb: Minor reformatting
455         * s-bytswa.ads: Minor comment update.
456
457 2012-07-12  Vincent Pucci  <pucci@adacore.com>
458
459         * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
460         Atomic_Load_N replaced by Lock_Free_Read_N. Atomic_Compare_Exchange_N
461         replaced by Lock_Free_Try_Write_N.
462         Renaming of several local variables. For
463         procedure, Expected_Comp declaration moved to the declaration
464         list of the procedure.
465         * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
466         RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
467         RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
468         RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64,
469         RE_Atomic_Synchronize, RE_Relaxed removed.  RE_Lock_Free_Read_8,
470         RE_Lock_Free_Read_16, RE_Lock_Free_Read_32, RE_Lock_Free_Read_64,
471         RE_Lock_Free_Try_Write_8, RE_Lock_Free_Try_Write_16,
472         RE_Lock_Free_Try_Write_32, RE_Lock_Free_Try_Write_64 added.
473         * s-atopri.adb: New file.
474         * s-atopri.ads (Atomic_Compare_Exchange_8): Renaming of
475         parameters.  Import primitive __sync_val_compare_and_swap_1.
476         (Atomic_Compare_Exchange_16): Renaming of parameters.
477         Import primitive __sync_val_compare_and_swap_2.
478         (Atomic_Compare_Exchange_32): Renaming of parameters.
479         Import primitive __sync_val_compare_and_swap_4.
480         (Atomic_Compare_Exchange_64): Renaming of parameters.  Import
481         primitive __sync_val_compare_and_swap_8.
482         (Atomic_Load_8): Ptr renames parameter X.
483         (Atomic_Load_16): Ptr renames parameter X.
484         (Atomic_Load_32): Ptr renames parameter X.
485         (Atomic_Load_64): Ptr renames parameter X.
486         (Lock_Free_Read_8): New routine.
487         (Lock_Free_Read_16): New routine.
488         (Lock_Free_Read_32): New routine.
489         (Lock_Free_Read_64): New routine.
490         (Lock_Free_Try_Write_8): New routine.
491         (Lock_Free_Try_Write_16): New routine.
492         (Lock_Free_Try_Write_32): New routine.
493         (Lock_Free_Try_Write_64): New routine.
494
495 2012-07-12  Robert Dewar  <dewar@adacore.com>
496
497         * exp_attr.adb, exp_ch9.adb, sem_ch9.adb, exp_aggr.adb: Minor
498         reformatting.
499
500 2012-07-12  Vincent Pucci  <pucci@adacore.com>
501
502         * sem_dim.adb (Analyze_Dimension_Function_Call): Reformatting of error
503         msgs for elementary functions.
504
505 2012-07-12  Vincent Pucci  <pucci@adacore.com>
506
507         * sem_attr.adb (Eval_Attribute): Minor reformatting.
508
509 2012-07-12  Pascal Obry  <obry@adacore.com>
510
511         * prj-nmsc.adb (Check_Library_Attributes): Allow the same library
512         project in different project tree (different aggregated projects).
513
514 2012-07-12  Thomas Quinot  <quinot@adacore.com>
515
516         * s-bytswa.adb, g-bytswa.adb, g-bytswa.ads, s-bytswa.ads: Further
517         reorganization of byte swapping routines.
518
519 2012-07-12  Ed Schonberg  <schonberg@adacore.com>
520
521         * sem_disp.adb (Check_Dispatching_Context): Refine legality
522         checks on tagg indeterminate calls to abstract operations,
523         that appear in the context of other calls.
524
525 2012-07-12  Thomas Quinot  <quinot@adacore.com>
526
527         * s-bytswa.adb (Swapped2.Bswap16): Remove local function,
528         no longer needed.
529
530 2012-07-12  Javier Miranda  <miranda@adacore.com>
531
532         * exp_attr.adb (Expand_N_Attribute_Reference): For
533         attributes 'access, 'unchecked_access and 'unrestricted_access,
534         iff the current instance reference is located in a protected
535         subprogram or entry then rewrite the access attribute to be the
536         name of the "_object" parameter.
537
538 2012-07-12  Tristan Gingold  <gingold@adacore.com>
539
540         * raise.h: Revert previous patch: structure is used in init.c
541         by vms.
542
543 2012-07-12  Vincent Celier  <celier@adacore.com>
544
545         * make.adb (Binding_Phase): If --subdirs was used, but not
546         -P, change the working directory to the specified subdirectory
547         before invoking gnatbind.
548         (Linking_Phase): If --subdirs was used, but not -P, change the working
549         directory to the specified subdirectory before invoking gnatlink.
550
551 2012-07-12  Vincent Pucci  <pucci@adacore.com>
552
553         * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
554         For a procedure, instead of replacing each Comp reference by a
555         reference to Current_Comp, make a renaming Comp of Current_Comp
556         that rewrites the original renaming generated by the compiler
557         during the analysis. Move the declarations of the procedure
558         inside the generated block.
559         (Process_Stmts): Moved in the body
560         of Build_Lock_Free_Unprotected_Subprogram_Body.
561         (Process_Node):
562         Moved in the body of Build_Lock_Free_Unprotected_Subprogram_Body.
563         * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict any
564         non-elementary out parameters in protected procedures.
565
566 2012-07-12  Thomas Quinot  <quinot@adacore.com>
567
568         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
569         Scalar_Storage_Order): Attribute applies to base type only.
570
571 2012-07-12  Ed Schonberg  <schonberg@adacore.com>
572
573         * exp_aggr.adb (Convert_To_Positional): Increase acceptable size
574         of static aggregate when Static_Elaboration_Desired is requested.
575         Add a warning if the request cannot be satisfied either because
576         some components or some array bounds are non-static.
577
578 2012-07-12  Thomas Quinot  <quinot@adacore.com>
579
580         * exp_pakd.adb: Minor reformatting.
581
582 2012-07-12  Tristan Gingold  <gingold@adacore.com>
583
584         * tracebak.c: Fix warnings.
585         * raise-gcc.c (__gnat_adjust_context): New function
586         (__gnat_personality_seh0): Call __gnat_adjust_context to adjust
587         PC in machine frame for exceptions that occur in the current
588         function.
589
590 2012-07-12  Thomas Quinot  <quinot@adacore.com>
591
592         * g-bytswa.adb, g-bytswa.ads, s-bytswa.adb, s-bytswa.ads, Makefile.rtl:
593         Move GNAT.Byte_Swapping to System (with a renaming under GNAT)
594         so that it is usable in expanded code.
595
596 2012-07-12  Tristan Gingold  <gingold@adacore.com>
597
598         * s-osinte-hpux.ads: Increase alternate stack size on hpux.
599
600 2012-07-12  Javier Miranda  <miranda@adacore.com>
601
602         * exp_ch3.adb (Make_Neq_Body): Fix typo in comment.
603
604 2012-07-12  Eric Botcazou  <ebotcazou@adacore.com>
605
606         * tb-gcc.c (trace_callback): On IA-64/HP-UX, use workaround only
607         if USE_LIBUNWIND_EXCEPTIONS is defined.
608         * init.c: Further tweaks for IA-64/HP-UX.
609
610 2012-07-12  Tristan Gingold  <gingold@adacore.com>
611
612         * raise-gcc.c: Do not include unwind-dw2-fde.h. Adjust comments.
613         (db_region_for): Second argument is ip.  Do not recompute ip.
614         (action_kind): Remove typedef, add unhandler enum const.
615         (action_descriptor): Adjust type of kind field.
616         (db_action_for): Second argument is ip, do not recompute it.
617         (get_call_site_action_for): First argument is call_site, do not
618         recompute it.  Remove useless return.
619         (is_handled_by): Now return enum action_kind.
620         Handle GNAT_ALL_OTHERS first.
621         Return unhandler for GNAT_UNHANDLED_OTHERS.
622         (get_action_description_for): First argument is now ip, do not
623         recompute it.  Adjust code for call to is_handled_by.
624         (__gnat_notify_unhandled_exception): Add prototype.
625         (PERSONALITY_FUNCTION): Call get_ip_from_context.  Adjust calls.
626         Handle unhandler case.
627         (__gnat_cleanupunwind_handler): Add comments, add
628         ATTRIBUTE_UNUSED on arguments.
629         (__gnat_Unwind_RaiseException, __gnat_Unwind_ForcedUnwind): Define
630         only once.
631         * raise.h: Makes struct Exception_Data opaque.
632
633 2012-07-12  Robert Dewar  <dewar@adacore.com>
634
635         * make.adb, sem_ch9.adb, prj.adb, s-rident.ads, snames.ads-tmpl: Minor
636         reformatting.
637
638 2012-07-12  Javier Miranda  <miranda@adacore.com>
639
640         * exp_ch3.adb (Is_User_Defined_Equality): New subprogram.
641         (Make_Neq_Body): New subprogram.
642         (Make_Predefined_Primitive_Specs): Adding local variable
643         Has_Predef_Eq_ Renaming to ensure that we enable the machinery
644         which handles renamings of predefined primitive operators.
645
646 2012-07-09  Pascal Obry  <obry@adacore.com>
647
648         * prj.adb (For_Every_Project_Imported_Context): Make sure we
649         callback with the project having sources.
650         Minor reformatting.
651
652 2012-07-09  Eric Botcazou  <ebotcazou@adacore.com>
653
654         * make.adb: Fix typo.
655
656 2012-07-09  Vincent Pucci  <pucci@adacore.com>
657
658         * sem_ch9.adb (Check_Node): Allow attributes
659         that denote static function for lock-free implementation.
660         (Is_Static_Function): New routine.
661
662 2012-07-09  Tristan Gingold  <gingold@adacore.com>
663
664         * tracebak.c: Adjust skip_frames on Win64.
665
666 2012-07-09  Tristan Gingold  <gingold@adacore.com>
667
668         * init.c: Add __gnat_adjust_context_for_raise for ia64/hpux.
669         * raise-gcc.c: __gnat_cleanupunwind_handler: Do not call
670         _Unwind_GetGR on hpux when using libgcc unwinder.  Part of
671
672 2012-07-09  Vincent Pucci  <pucci@adacore.com>
673
674         * exp_attr.adb, sem_attr.adb: Minor reformatting.
675         * par-ch13.adb, par-ch4.adb, par-util.adb: Reformatting
676         considering that internal attribute names are not defined anymore
677         in the main attribute names list.
678         * snames.adb-tmpl (Get_Attribute_Id): Special processinf
679         for names CPU, Dispatching_Domain and Interrupt_Priority.
680         (Is_Internal_Attribute_Name): Minor reformatting.
681         * snames.ads-tmpl: New list of internal attribute names. Internal
682         attributes moved at the end of the attribute Id list.
683
684 2012-07-09  Robert Dewar  <dewar@adacore.com>
685
686         * freeze.adb: Minor code reorganization (use Ekind_In).
687         * exp_attr.adb, sem_ch9.adb par-ch4.adb, s-taprop-mingw.adb,
688         sem_attr.adb, exp_ch8.adb, snames.adb-tmpl, par-util.adb,
689         sem_ch13.adb, snames.ads-tmpl: Minor reformatting.
690
691 2012-07-09  Tristan Gingold  <gingold@adacore.com>
692
693         * raise-gcc.c: Adjust previous patch.
694
695 2012-07-09  Vincent Celier  <celier@adacore.com>
696
697         * make.adb (Compilation_Phase): Do not build libraries in
698         Codepeer mode (do not call Library_Phase).
699
700 2012-07-09  Ed Schonberg  <schonberg@adacore.com>
701
702         * sem_ch13.adb: Extend previous change to elementary types.
703
704 2012-07-09  Javier Miranda  <miranda@adacore.com>
705
706         * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Reverse
707         previous patch since unconditionally handling as renaming_as_body
708         renamings of predefined dispatching equality and unequality operator
709         cause visibility problems with private overridings of the equality
710         operator (see ACATS C854001).
711
712 2012-07-09  Vincent Pucci  <pucci@adacore.com>
713
714         * exp_attr.adb (Signal_Bad_Attribute): Raise Program_Error in
715         case of internal attribute names (already rejected by the parser).
716         * par-ch13.adb (P_Representation_Clause): Complain if an internal
717         attribute name that comes from source occurs.
718         * par-ch4.adb (P_Name): Complain if an internal attribute name
719         occurs in the context of an attribute reference.
720         * par-util.adb (Signal_Bad_Attribute): Don't complain about
721         mispelling attribute with internal attributes.
722         * sem_attr.adb (Analyze_Attribute): Raise Program_Error in case
723         of internal attribute names (already rejected by the parser).
724         * snames.adb-tmpl (Is_Internal_Attribute_Name): New routine.
725         * snames.ads-tmpl: Attributes CPU, Dispatching_Domain and
726         Interrupt_Priority are marked as INT attributes since they
727         don't denote real attribute and are only used internally in
728         the compiler.
729         (Is_Internal_Attribute_Name): New routine.
730
731 2012-07-09  Thomas Quinot  <quinot@adacore.com>
732
733         * einfo.adb (Set_Reverse_Storage_Order): Update assertion,
734         flag is now valid for array types as well.
735
736 2012-07-09  Tristan Gingold  <gingold@adacore.com>
737
738         * tracebak.c: Implement __gnat_backtrace for Win64 SEH.
739
740 2012-07-09  Robert Dewar  <dewar@adacore.com>
741
742         * einfo.ads: Minor reformatting.
743
744 2012-07-09  Javier Miranda  <miranda@adacore.com>
745
746         * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Handle as
747         renaming_as_body renamings of predefined dispatching equality
748         and unequality operators.
749
750 2012-07-09  Robert Dewar  <dewar@adacore.com>
751
752         * rident.ads: Do not instantiate r-ident.ads, this is now an
753         independent unit.
754
755 2012-07-09  Javier Miranda  <miranda@adacore.com>
756
757         * exp_disp.adb (Write_DT): Avoid runtime crash of this debugging
758         routine.
759         * sem_disp.adb (Find_Dispatching_Time): Protect this routine
760         against partially decorated entities.
761
762 2012-07-09  Ed Schonberg  <schonberg@adacore.com>
763
764         * sem_ch13.adb (Check_Size): Reject a size clause that specifies
765         a value greater than Int'Last for a scalar type.
766
767 2012-07-09  Vincent Pucci  <pucci@adacore.com>
768
769         * sem_ch9.adb (Allows_Lock_Free_Implementation): type must support
770         atomic operation moved to the protected body case. No non-elementary
771         out parameter moved to the protected declaration case. Functions have
772         only one lock-free restriction.
773         (Analyze_Protected_Type_Declaration): Issue a warning when
774         Priority given with Lock_Free.
775
776 2012-07-09  Vincent Pucci  <pucci@adacore.com>
777
778         * sem_dim.adb: Grammar of aspect Dimension fixed.
779
780 2012-07-09  Vincent Pucci  <pucci@adacore.com>
781
782         * freeze.adb (Freeze_Record_Type): Code reorg in order to avoid
783         pushing and popping the scope stack whenever a delayed aspect occurs.
784
785 2012-07-09  Gary Dismukes  <dismukes@adacore.com>
786
787         * s-os_lib.ads: Remove pragma Elaborate_Body, as
788         this is now unnecessary due to recently added pragma Preelaborate.
789
790 2012-07-09  Jose Ruiz  <ruiz@adacore.com>
791
792         * s-taprop-mingw.adb (Set_Priority): Remove the code that was
793         previously in place to reorder the ready queue when a task drops
794         its priority due to the loss of inherited priority.
795
796 2012-07-09  Robert Dewar  <dewar@adacore.com>
797
798         * layout.adb, i-cstrea.ads, a-ststio.ads, prj-util.ads, sem_cat.adb,
799         s-commun.ads, s-ficobl.ads, s-os_lib.ads, s-fileio.ads: Minor
800         reformatting.
801
802 2012-07-09  Eric Botcazou  <ebotcazou@adacore.com>
803
804         * raise-gcc.c: Update comments. Fix typo.
805
806 2012-07-09  Thomas Quinot  <quinot@adacore.com>
807
808         * einfo.adb, einfo.ads, sem_attr.adb, sem_ch13.adb: Attribute
809         Scalar_Storage_Order can be defined or queried for array types as well
810         as record types.
811
812 2012-07-09  Tristan Gingold  <gingold@adacore.com>
813
814         * a-exexpr-gcc.adb (CleanupUnwind_Handler): Now imported from
815         raise-gcc.c
816         * raise-gcc.c (__gnat_cleanupunwind_handler): Defined.
817         Strictly follow the ABI convention on ia64.
818
819 2012-07-09  Gary Dismukes  <dismukes@adacore.com>
820
821         * a-ststio.ads: Add pragma Preelaborate, per AI05-0283.
822         * i-cstrea.ads (max_path_len): Change from variable to deferred
823         constant to allow it to be used as a bound in string component
824         in type System.File_IO.Temp_File_Record.
825         * s-os_lib.ads, s-commun.ads, s-ficobl.ads, s-fileio.ads: Add pragma
826         Preelaborate.
827         * s-fileio.adb (Get_Case_Sensitive): Move function inside
828         procedure Open.
829         (File_Names_Case_Sensitive): Move variable inside
830         procedure Open, to avoid violation of Preelaborate restriction
831         (due to call to Get_Case_Sensitive).
832
833 2012-07-09  Ed Schonberg  <schonberg@adacore.com>
834
835         * layout.adb (Set_Elem_Alignment): Protect against meaningless
836         size clause, to prevent overflow in internal computation of
837         alignment.
838
839 2012-07-09  Robert Dewar  <dewar@adacore.com>
840
841         * freeze.adb, prj-util.adb, prj-util.ads, sem_ch13.adb: Minor
842         reformatting.
843
844 2012-07-09  Gary Dismukes  <dismukes@adacore.com>
845
846         * sem_cat.adb (Check_Categorization_Dependencies):
847         Allow dependence of both Remote_Types and Remote_Call_Interface
848         declarations (not just Remote_Types units) on preelaborated
849         units, but require that the dependence be made via a private
850         with_clause. Issue a specialized error message.
851
852 2012-07-09  Pascal Obry  <obry@adacore.com>
853
854         * prj-util.adb, prj-util.ads (For_Interface_Sources): New routine.
855
856 2012-07-09  Tristan Gingold  <gingold@adacore.com>
857
858         * seh_init.c (__gnat_SEH_error_handler): On Win64 and SEH,
859         return for unknown exceptions.
860         * raise-gcc.c (__gnat_personality_seh0): Call __gnat_SEH_error_handler.
861
862 2012-07-09  Joel Brobecker  <brobecker@adacore.com brobecker>
863
864         * exp_dbug.ads (No_Dollar_In_Label): Delete.
865
866 2012-07-09  Vincent Pucci  <pucci@adacore.com>
867
868         * sem_ch13.adb (Check_Overloaded_Name): New routine.
869
870 2012-07-09  Vincent Pucci  <pucci@adacore.com>
871
872         * freeze.adb (Freeze_Record_Type): Analyze the delayed aspects of the
873         components in a record type.
874
875 2012-07-09  Pascal Obry  <obry@adacore.com>
876
877         * prj-util.ads: Minor reformatting.
878
879 2012-07-09  Tristan Gingold  <gingold@adacore.com>
880
881         * raise-gcc.c (db_indent): Simplify style, improve comments.
882         Remove !IN_RTS part (dead).
883
884 2012-07-09  Robert Dewar  <dewar@adacore.com>
885
886         * usage.adb: Minor change to format of -gnatn line.
887
888 2012-07-09  Tristan Gingold  <gingold@adacore.com>
889
890         * a-exexpr-gcc.adb: Reorder routine.
891
892 2012-07-09  Vincent Celier  <celier@adacore.com>
893
894         * lib-writ.ads: Add documentation for the Z lines (implicitly
895         withed units) and Y lines (limited withed units).
896
897 2012-07-09  Robert Dewar  <dewar@adacore.com>
898
899         * lib.ads, exp_attr.adb, exp_ch9.adb, sem_dim.adb, sem_ch9.adb,
900         sem_prag.adb, sem_ch12.adb, mlib-utl.adb, freeze.adb, sem_res.adb,
901         sem_attr.adb, sem_case.adb, gnatlink.adb, exp_ch4.adb, sem_ch6.adb,
902         sem_elim.adb, s-dimmks.ads, sem_ch13.adb: Minor code clean ups.
903
904 2012-07-09  Eric Botcazou  <ebotcazou@adacore.com>
905
906         * gnat_ugn.texi (Switches for gcc): Document -gnatn[12] only
907         lightly in the summary and more thoroughly in inlining section.
908         (Performance Considerations): Document -gnatn[12] in inlining
909         section.
910
911 2012-07-09  Tristan Gingold  <gingold@adacore.com>
912
913         * a-exexpr-gcc.adb (Unhandled_Except_Handler): New procedure.
914         (Unhandled_Others_Value): New const.
915         * raise-gcc.c (GNAT_UNHANDLED_OTHERS): Define.
916         (action_descriptor): Remove ttype_entry.
917         (get_action_description_for): Do not assign ttype_entry.
918         (is_handled_by): Consider GNAT_UNHANDLED_OTHERS.
919
920 2012-07-03  Eric Botcazou  <ebotcazou@adacore.com>
921
922         * gcc-interface/trans.c (Call_to_gnu): Robustify test for function case
923         if the CICO mechanism is used.
924
925 2012-07-03  Eric Botcazou  <ebotcazou@adacore.com>
926
927         * gcc-interface/utils2.c (build_simple_component_ref): Do not look
928         through an extension if the type contains a placeholder.
929
930 2012-07-03  Eric Botcazou  <ebotcazou@adacore.com>
931
932         * exp_disp.adb (Expand_Dispatching_Call): Propagate the convention on
933         the designated subprogram type and also set Is_Dispatch_Table_Entity.
934         (Expand_Interface_Thunk): Propagate the convention on the thunk.
935         (Set_CPP_Constructors_Old): Set Is_Constructor and Convention_CPP on
936         the internal view of the constructors.
937         (Set_CPP_Constructors): Likewise.
938         * sem_prag.adb (Analyze_Pragma) <Pragma_CPP_Constructor>: Set the
939         convention on the function.
940         * gcc-interface/gigi.h (is_cplusplus_method): Declare.
941         * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
942         (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the `thiscall'
943         calling convention
944         (get_minimal_subprog_decl): Likewise.
945         (is_cplusplus_method): New predicate.
946         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Issue an
947         error on access to C++ constructor or member function.
948
949 2012-07-03  Eric Botcazou  <ebotcazou@adacore.com>
950
951         * gcc-interface/utils.c (gnat_pushdecl): Set TYPE_CONTEXT for types
952         attached to a TYPE_DECL.
953
954 2012-06-26  Vincent Pucci  <pucci@adacore.com>
955
956         * exp_ch3.adb (Build_Init_Statements): Don't check the parents
957         in the Rep Item Chain of the task for aspects Interrupt_Priority,
958         Priority, CPU and Dispatching_Domain.
959         * exp_ch9.adb (Expand_N_Task_Type_Declaration): fields _Priority,
960         _CPU and _Domain are present in the corresponding record type
961         only if the task entity has a pragma, attribute definition
962         clause or aspect specification.
963         (Make_Initialize_Protection): Don't check the parents in the Rep Item
964         Chain of the task for aspects Interrupt_Priority, Priority, CPU and
965         Dispatching_Domain.
966         * freeze.adb (Freeze_Entity): Use of Evaluate_Aspects_At_Freeze_Point
967         call replaced by Analyze_Aspects_At_Freeze_Point.
968         * sem_ch13.adb, sem_ch13.ads (Analyze_Aspects_At_Freeze_Point):
969         Renaming of Evaluate_Aspects_At_Freeze_Point.
970
971 2012-06-26  Yannick Moy  <moy@adacore.com>
972
973         * sem_attr.adb (Analyze_Attribute): Detect if 'Old is used outside a
974         postcondition, and issue an error in such a case.
975
976 2012-06-26  Yannick Moy  <moy@adacore.com>
977
978         * gnat_rm.texi: Minor editing.
979
980 2012-06-26  Tristan Gingold  <gingold@adacore.com>
981
982         * raise-gcc.c: Minor cleanup: remove unused prototype.
983         * seh_init.c: Do not create an image wide unwind info to catch
984         SEH when SEH unwind info are emitted by the compiler.
985
986 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
987
988         * gcc-interface/trans.c: Include target.h.
989         (gigi): Try to put out .ident with targetm.asm_out.output_ident.
990         Remove uses of ASM_OUTPUT_IDENT.
991         * gcc-interface/Make-lang.in: Fix dependencies.
992
993 2012-06-15  Eric Botcazou  <ebotcazou@adacore.com>
994
995         PR ada/53592
996         * gcc-interface/gigi.h (maybe_vector_array): Make static inline.
997         * gcc-interface/utils.c (maybe_vector_array): Delete.
998         * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the
999         array object as addressable if it has vector type and is on the LHS.
1000
1001 2012-06-15  Eric Botcazou  <ebotcazou@adacore.com>
1002
1003         PR middle-end/53590
1004         * gcc-interface/misc.c (gnat_init_options_struct): Set
1005         opts->x_flag_delete_dead_exceptions to 1.
1006
1007 2012-06-14  Jose Ruiz  <ruiz@adacore.com>
1008
1009         * gcc-interface/Make-lang.in (ada.install-common, ada.uninstall):
1010         Use the prefix specified with the --program-prefix configure option
1011         to determine the install name of the Ada tools.
1012         (ada.all.cross): Use a for loop to iterate over the set of Ada tools
1013         instead of duplicate the same processing.
1014         Update dependencies.
1015
1016 2012-06-14  Vincent Pucci  <pucci@adacore.com>
1017
1018         * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_Symbol
1019         call replaced by Expand_Put_Call_With_Symbol call.
1020         * sem_dim.adb: New fields Unit_Names, Unit_Symbols
1021         and Dim_Symbols for record type System_Type.
1022         (From_Dimension_To_String_Of_Symbols): Removed.
1023         (From_Dim_To_Str_Of_Dim_Symbols): Renames previous
1024         routine From_Dimension_To_String_Of_Symbols.
1025         (From_Dim_To_Str_Of_Unit_Symbols): New routine.
1026         (Analyze_Aspect_Dimension): argument Symbol in aspect
1027         Dimension aggregate is optional. Named association implemented.
1028         (Has_Compile_Time_Known_Expressions): Removed.
1029         (Analyze_Aspect_Dimension_System): New
1030         component Dim_Symbol in each Dimension aggregate in
1031         aspect Dimension_System. Named associations implemented.
1032         (Add_Dimension_Vector_To_Buffer): Removed.
1033         (Add_Whole_To_Buffer): Removed.
1034         (Expand_Put_Call_With_Dimension_Symbol.): Removed.
1035         (Expand_Put_Call_With_Symbol): Renames previous routine
1036         Expand_Put_Call_With_Dimension_Symbol.
1037         (Has_Dimension_Symbols): Removed.
1038         (Has_Symbols): Renames previous routine
1039         Has_Dimension_Symbols.  (Store_String_Oexpon): New routine.
1040         * sem_dim.ads (Expand_Put_Call_With_Dimension_Symbol.): Removed.
1041         (Expand_Put_Call_With_Symbol): Renames previous routine
1042         Expand_Put_Call_With_Dimension_Symbol.
1043         * s-diflio.adb, s-diinio.adb (Put): Symbol renames Symbols.
1044         (Put_Dim_Of): New routines.
1045         * s-diflio.ads, s-diinio.ads: documentation updated.
1046         (Put): Symbol renames Symbols.
1047         (Put_Dim_Of): New routines.
1048         * s-dim.ads: documentation updated.
1049         * s-dimmks.ads: dimensioned type and subtypes updated.
1050         * snames.ads-tmpl: Name_Dim_Symbol, Name_Put_Dim_Of, Name_Symbol,
1051         and Name_Unit_Symbol added. Name_Symbols removed.
1052
1053 2012-06-14  Vincent Pucci  <pucci@adacore.com>
1054
1055         * freeze.adb (In_Exp_Body): Expression function case added.
1056         (Freeze_Expression): Insert the Freeze_Nodes
1057         list before the correct current scope in case of a quantified
1058         expression.
1059
1060 2012-06-14  Pascal Obry  <obry@adacore.com>
1061
1062         * projects.texi: Document the Install package for gprinstall.
1063 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
1064
1065         * sem_elim.adb (Check_For_Eliminated_Subprogram): Do not check within
1066         a default expression.
1067         * sem_res.adb (Resolve_Call): simplify code.
1068
1069 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
1070
1071         * sem_case.adb (Check, Issue_Msg): within an instance, non-other
1072         values in a variant part or a case expression do not have to
1073         belong to the actual subtype.
1074
1075 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
1076
1077         * sem_ch12.adb (Validate_Derived_Type_Instance): If parent is
1078         an interface type, check whether it is itself a previous formal
1079         already instantiated in the current list of actuals.
1080
1081 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
1082
1083         * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): The
1084         expression for a stream attribute is a name that may be overloaded
1085         with other declarations. To determine whether it matches the
1086         aspect at the freeze point, it is necessary to verify that one
1087         of its interpretations matches.
1088
1089 2012-06-14  Robert Dewar  <dewar@adacore.com>
1090
1091         * exp_ch7.adb, exp_util.adb, sem_aux.ads, exp_ch9.adb,
1092         sem_ch10.adb, freeze.adb, sem_util.adb, exp_ch4.adb,
1093         s-taprop-dummy.adb: Minor reformatting.
1094
1095 2012-06-14  Vincent Pucci  <pucci@adacore.com>
1096
1097         * exp_attr.adb (Expand_N_Attribute_Reference): Lock_Free
1098         attribute case added.
1099         * par-prag.adb (Prag): Lock_Free pragma case added.
1100         * sem_attr.adb (Analyze_Attribute_Reference): Lock_Free attribute
1101         case added.
1102         * sem_ch13.adb (Analyze_Aspect_Specifications): Record_Rep_Item
1103         call added for Aspect_Lock_Free.
1104         * sem_ch9.adb (Allows_Lock_Free_Implementation): New Lock_Free
1105         error messages for subprogram bodies.
1106         (Lock_Free_Disabled): New routine.
1107         (Analyze_Protected_Body): Call to Lock_Free_Disabled added.
1108         * sem_prag.adb (Analyze_Pragma): Lock_Free pragma case added.
1109         * snames.adb-tmpl (Get_Pragma_Id): Name_Lock_Free case added.
1110         (Is_Pragma_Name): Name_Lock_Free case added.
1111         * snames.ads-tmpl: Attribute_Lock_Free and Pragma_Lock_Free added.
1112
1113 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
1114
1115         * a-coorma.adb, a-cborma.adb, a-cbhama.adb, a-ciorma.adb: Add missing
1116         aliased keyword.
1117
1118 2012-06-14  Bob Duff  <duff@adacore.com>
1119
1120         * lib.ads, lib.adb, sem.adb (Write_Unit_Info): Move this
1121         procedure from Sem body to Lib spec, so it can be used for
1122         debugging elsewhere.
1123
1124 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
1125
1126         * sem_ch6.adb (Check_Conformance): Add Ada 2012 check on mode
1127         conformance: "aliased" must apply to both or neither formal
1128         parameters.
1129
1130 2012-06-14  Gary Dismukes  <dismukes@adacore.com>
1131
1132         * exp_ch9.adb: Minor reformatting.
1133
1134 2012-06-14  Thomas Quinot  <quinot@adacore.com>
1135
1136         * freeze.adb (Freeze_Record_Type): Warn about useless bit order
1137         specification [when there's no component clause] regardless
1138         of whether the specified bit order is reversed or not.
1139
1140 2012-06-14  Tristan Gingold  <gingold@adacore.com>
1141
1142         * raise-gcc.c (__gnat_personality_seh0): New function.
1143
1144 2012-06-14  Tristan Gingold  <gingold@adacore.com>
1145
1146         * gnatname.adb (Gnatname): Make sure that dynamic table
1147         argument_data is initialized.
1148
1149 2012-06-14  Robert Dewar  <dewar@adacore.com>
1150
1151         * sem_aux.adb: Minor code reorganization.
1152
1153 2012-06-14  Vincent Pucci  <pucci@adacore.com>
1154
1155         * einfo.adb einfo.ads (Get_Rep_Item): Removed.
1156         (Get_Rep_Item_For_Entity): Removed.
1157         (Get_Rep_Pragma): Removed.
1158         (Get_Rep_Pragma_For_Entity): Removed.
1159         (Has_Rep_Item): Removed.
1160         (Has_Rep_Pragma): Removed.
1161         (Has_Rep_Pragma_For_Entity): Removed.
1162         * exp_ch9.adb (Expand_N_Task_Type_Declaration):
1163         Has_Rep_Pragma_For_Entity replaced by Has_Rep_Pragma
1164         and Get_Rep_Pragma_For_Entity replaced by Get_Rep_Pragma.
1165         (Make_Task_Create_Call): Has_Rep_Pragma_For_Entity replaced
1166         by Has_Rep_Pragma and Get_Rep_Pragma_For_Entity replaced by
1167         Get_Rep_Pragma.
1168         * exp_intr.adb: Dependency to Sem_Aux added for call to Get_Rep_Pragma.
1169         * sem_aux.adb (Get_Rep_Item): New routine.
1170         (Get_Rep_Pragma): New routine.
1171         (Has_Rep_Item): New routine.
1172         (Has_Rep_Pragma): New routine.
1173         (Nearest_Ancestor): Minor reformatting.
1174         * sem_aux.ads (Get_Rep_Item): New routine.
1175         (Get_Rep_Pragma): New routine.
1176         (Has_Rep_Item): New routine.
1177         (Has_Rep_Pragma): New routine.
1178         * sem_ch13.adb (Duplicate_Clause): Restore original error messages.
1179         * sem_eval.adb (Subtypes_Statically_Match): Get_Rep_Item_For_Entity
1180         replaced by Get_Rep_Item.
1181         * sem_prag.adb (Analyze_Pragma): Restore original error messages.
1182         (Check_Duplicate_Pragma): Restore original error messages.
1183
1184 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
1185
1186         * sem_util.adb (Is_Object_Reference): in Ada 2012, qualified
1187         expressions are valid names.
1188
1189 2012-06-14  Ed Schonberg  <schonberg@adacore.com>
1190
1191         * sem_ch10.adb (Analyze_Compilation_Unit): If the unit is an
1192         instantiation do not emit warnings for obsolescent units. The
1193         warnings belong on the corresponding generic.
1194
1195 2012-06-14  Hristian Kirtchev  <kirtchev@adacore.com>
1196
1197         * einfo.adb: Update the usage of Node15.
1198         (Return_Flag_Or_Transient_Decl): Removed.
1199         (Set_Return_Flag_Or_Transient_Decl): Removed.
1200         (Set_Status_Flag_Or_Transient_Decl): New routine.
1201         (Status_Flag_Or_Transient_Decl): New routine.
1202         (Write_Field15_Name): Update the output for variables and constants.
1203         * einfo.ads: Remove attribute
1204         Return_Flag_Or_Transient_Decl along with occurrences in nodes.
1205         (Return_Flag_Or_Transient_Decl): Removed along with pragma Inline.
1206         (Set_Return_Flag_Or_Transient_Decl): Removed along with pragma Inline.
1207         (Set_Status_Flag_Or_Transient_Decl): New routine along with pragma
1208         Inline.
1209         (Status_Flag_Or_Transient_Decl): New routine along with pragma Inline.
1210         * exp_ch4.adb (Create_Alternative): New routine.
1211         (Expand_N_Conditional_Expression): Handle the case
1212         where at least one of the conditional expression
1213         alternatives prodices a controlled temporary by means of a function
1214         call.
1215         (Is_Controlled_Function_Call): New routine.
1216         (Process_Transient_Object): Update the call to
1217         Set_Return_Flag_Or_Transient_Decl.
1218         * exp_ch6.adb (Enclosing_Context): New routine.
1219         (Expand_N_Extended_Return_Statement): Update all calls to
1220         Set_Return_Flag_Or_Transient_Decl.
1221         (Expand_Ctrl_Function_Call): Prohibit the finalization of a controlled
1222         function result when the context is a conditional expression.
1223         * exp_ch7.adb (Process_Declarations): Update all calls to
1224         Return_Flag_Or_Transient_Decl. Add processing for intermediate
1225         results of conditional expressions where one of the alternatives
1226         uses a controlled function call.
1227         (Process_Object_Declaration): Update all calls to
1228         Return_Flag_Or_Transient_Decl and rearrange the logic to process
1229         "hook" objects first.
1230         (Process_Transient_Objects): Update the call to
1231         Set_Return_Flag_Or_Transient_Decl.
1232         * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean,
1233         Boolean)): Update all calls to Return_Flag_Or_Transient_Decl. Add
1234         detection for intermediate results of conditional expressions
1235         where one of the alternatives uses a controlled function call.
1236
1237 2012-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1238
1239         Revert
1240         2012-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1241
1242         * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
1243         (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
1244         calling convention
1245         (get_minimal_subprog_decl): Likewise.
1246         (gnat_first_param_is_class): New predicate.
1247
1248 2012-06-12  Robert Dewar  <dewar@adacore.com>
1249
1250         * gcc-interface/Make-lang.in: Update dependencies.
1251         * sem_ch9.ads, einfo.adb, einfo.ads, sem_prag.adb, freeze.adb,
1252         sem_util.adb, sem_ch13.adb, sem_ch13.ads, exp_ch3.adb: Add comments.
1253         Minor reformatting.
1254
1255 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
1256
1257         * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove code that
1258         implements AI05-0296, because the actual may be overloaded.
1259         * sem_ch8.adb (Analyze_Subprogram_Renaming): and move it here,
1260         to be applied once the actual subprogram is properly resolved.
1261
1262 2012-06-12  Robert Dewar  <dewar@adacore.com>
1263
1264         * switch-c.adb, a-exexpr-gcc.adb: Minor reformatting.
1265
1266 2012-06-12  Vincent Pucci  <pucci@adacore.com>
1267
1268         * checks.adb (Tag_Checks_Suppressed): Remove Kill_Tag_Checks check.
1269         * einfo.adb (Universal_Aliasing): Apply to the implementation
1270         base type instead of the base type.
1271         (Get_Rep_Item_For_Entity):
1272         Return a pragma if the pragma node is not present in the Rep
1273         Item chain of the parent.
1274         (Kill_Tag_Checks): Removed (unused flag).
1275         (Set_Kill_Tag_Checks): Removed.
1276         (Get_First_Rep_Item): New routine.
1277         (Get_Rep_Pragma_For_Entity): New routine.
1278         (Has_Rep_Item): New routine.
1279         (Has_Rep_Pragma_For_Entity): New routine.
1280         (Present_In_Rep_Item): New routine.
1281         * einfo.ads (Kill_Tag_Checks): Removed.
1282         (Set_Kill_Tag_Checks): Removed.
1283         (Get_First_Rep_Item): New routine.
1284         (Get_Rep_Pragma_For_Entity): New routine.
1285         (Has_Rep_Item): New routine.
1286         (Has_Rep_Pragma_For_Entity): New routine.
1287         (Present_In_Rep_Item): New routine.
1288         * exp_attr.adb, sem_attr.adb: Attribute_CPU,
1289         Attribute_Dispatching_Domain and Attribute_Interrupt_Priority
1290         case added.
1291         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause): For
1292         attribute Storage_Size, insert the new assignement statement
1293         after the Size variable declaration.
1294         * exp_ch3.adb (Build_Init_Statements): Fill the CPU,
1295         Dispatching_Domain, Priority and Size components with the Rep
1296         Item expression (if any).
1297         * exp_ch9.adb (Expand_N_Task_Type_Declaration): _CPU,
1298         _Priority, _Domain fields are always present in the
1299         corresponding record type.
1300         (Find_Task_Or_Protected_Pragma): Removed.
1301         (Get_Relative_Deadline_Pragma): New routine.
1302         (Make_Initialize_Protection): Find_Task_Or_Protected_Pragma removed.
1303         (Make_Task_Create_Call): Check CPU, Size or
1304         Dispatching_Domain Rep Item is present using new routine Has_Rep_Item.
1305         * freeze.adb (Freeze_All): Push_Scope_And_Install_Discriminants
1306         and Uninstall_Discriminants_And_Pop_Scope calls added.
1307         (Freeze_Entity): Evaluate_Aspects_At_Freeze_Point call added.
1308         * sem_aux.adb (Nearest_Ancestor): Retrieve the nearest ancestor
1309         for private derived types.
1310         * sem_ch13.adb (Analyze_Aspect_Specifications): Clean-up
1311         and reordering. Delay analysis for all aspects (except some
1312         peculiar cases).
1313         (Analyze_Attribute_Definition_Clause):
1314         Attribute_CPU, Attribute_Dispatching_Domain,
1315         Interrupt_Priority and Attribute_Priority cases added.
1316         (Analyze_Freeze_Entity): Push_Scope_And_Install_Discriminants
1317         and Uninstall_Discriminants_And_Pop_Scope calls added.
1318         (Check_Aspect_At_Freeze_Point): Reordering and clean-up.
1319         (Duplicate_Clause): Issue an explicit error msg when the current
1320         clause duplicates an aspect specification, an attribute definition
1321         clause or a pragma.
1322         (Evaluate_Aspects_At_Freeze_Point): New routine.
1323         * sem_ch13.ads (Evaluate_Aspects_At_Freeze_Point): New routine.
1324         * sem_ch9.adb, sem_ch9.ads (Install_Discriminants): New routine.
1325         (Push_Scope_And_Install_Discriminants): New routine.
1326         (Uninstall_Discriminants): New routine.
1327         (Uninstall_Discriminants_And_Pop_Scope): New routine.
1328         * sem_prag.adb (Check_Duplicate_Pragma): Issue an explicit error
1329         msg when the current pragma duplicates an aspect specification,
1330         an attribute definition clause or a pragma.
1331         (Analyze_Pragma): Remove use of flags Has_Pragma_CPU,
1332         Has_Pragma_Priority and Has_Pragma_Dispatching_Domain.
1333         * sem_util.adb (Compile_Time_Constraint_Error): Don't complain
1334         about the type if the corresponding concurrent type doesn't come
1335         from source.
1336         * sinfo.adb, sinfo.ads (Has_Pragma_CPU): Removed.
1337         (Has_Pragma_Dispatching_Domain): Removed.
1338         (Has_Pragma_Priority): Removed.
1339         (Has_Task_Info_Pragma): Removed.
1340         (Has_Task_Name_Pragma): Removed.
1341         (Set_Has_Pragma_CPU): Removed.
1342         (Set_Has_Pragma_Dispatching_Domain): Removed.
1343         (Set_Has_Pragma_Priority): Removed.
1344         (Set_Has_Task_Info_Pragma): Removed.
1345         (Set_Has_Task_Name_Pragma): Removed.
1346         * snames.adb-tmpl (Get_Pragma_Id): Pragma_CPU,
1347         Pragma_Dispatching_Domain and Pragma_Interrupt_Priority added.
1348         (Is_Pragma_Name): Name_CPU, Name_Dispatching_Domain and
1349         Name_Interrupt_Priority added.
1350         * snames.ads-tmpl: Name_Dispatching_Domain, Name_CPU
1351         and Name_Interrupt_Priority moved to the list of
1352         Attribute_Name. Attribute_CPU, Attribute_Dispatching_Domain and
1353         Attribute_Interrupt_Priority added.  Pragma_Dispatching_Domain,
1354         Pragma_CPU and Pragma_Interrupt_Priority moved to the end of
1355         the Pragma_Name list.
1356
1357 2012-06-12  Arnaud Charlet  <charlet@adacore.com>
1358
1359         * xref_lib.adb (Get_Full_Type): Add support for 'G'.
1360
1361 2012-06-12  Tristan Gingold  <gingold@adacore.com>
1362
1363         * a-exexpr-gcc.adb (Unwind_Exception): Add 4 more private fields.
1364
1365 2012-06-12  Fedor Rybin  <frybin@adacore.com>
1366
1367         * gnat_ugn.texi: Update doc on gnattest.
1368
1369 2012-06-12  Robert Dewar  <dewar@adacore.com>
1370
1371         * sem_ch12.adb: Add comments.
1372
1373 2012-06-12  Robert Dewar  <dewar@adacore.com>
1374
1375         * switch-c.adb, inline.adb, usage.adb, opt.ads: Minor reformatting.
1376
1377 2012-06-12  Robert Dewar  <dewar@adacore.com>
1378
1379         * sem_ch12.adb: Minor reformatting.
1380
1381 2012-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1382
1383         * opt.ads (Inline_Level): New variable.
1384         * gnat1drv.adb (Adjust_Global_Switches): Set it based on optimization
1385         level if it has not been set by the user.
1386         * switch-c.adb (Scan_Front_End_Switches): Accept -gnatn1 and -gnatn2
1387         and set Inline_Level accordingly.
1388         * inline.adb (Add_Inlined_Body): Declate new Inline_Level_Type type.
1389         (Must_Inline): Return Inline_Level_T instead of Boolean to indicate
1390         whether the package of the inlined subprogram must be compiled.
1391         If Inline_Level is set to 1, only compile packages of subprograms
1392         directly called from the main unit.
1393         * usage.adb (Usage): Adjust line for -gnatn switch.
1394         * gnat_ugn.texi (Switches for gcc): Document -gnatn1 and -gnatn2.
1395
1396 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
1397
1398         * sem_ch12.adb (Instantiate_Formal_Subprogram): Do not apply
1399         AI05-296 if the actual is overloaded. In this case The rule must
1400         be applied after resolution, in Analyze_Subprogram_Renaming.
1401
1402 2012-06-12  Robert Dewar  <dewar@adacore.com>
1403
1404         * stringt.adb: Minor reformatting.
1405
1406 2012-06-12  Robert Dewar  <dewar@adacore.com>
1407
1408         * ali-util.adb, stringt.ads: Minor reformatting.
1409
1410 2012-06-12  Hristian Kirtchev  <kirtchev@adacore.com>
1411
1412         * exp_ch7.adb (Process_Declarations): Handle the case where
1413         the original context has been wrapped in a block to avoid
1414         interference between exception handlers and At_End handlers.
1415         (Wrap_HSS_In_Block): Mark the block which contains the original
1416         statements of the context as being a finalization wrapper.
1417         * sinfo.adb (Is_Finalization_Wrapper): New routine.
1418         (Set_Is_Finalization_Wrapper): New routine.
1419
1420         * sinfo.ads: Add new attribute Is_Finalization_Wrapper applicable
1421         to block statemnts.
1422         (Is_Finalization_Wrapper): New routine with corresponding pragma Inline.
1423         (Set_Is_Finalization_Wrapper): New routine with corresponding pragma
1424         Inline.
1425
1426 2012-06-12  Steve Baird  <baird@adacore.com>
1427
1428         * gnat1drv.adb (Adjust_Global_Switches): No longer need to set
1429         Exception_Extra_Info in CodePeer_Mode.
1430
1431 2012-06-12  Robert Dewar  <dewar@adacore.com>
1432
1433         * sem_dist.adb, exp_ch7.adb, sem_type.adb, exp_attr.adb,
1434         sinfo.ads, sem_ch7.adb, exp_alfa.adb, sem_scil.adb, sem_ch12.adb,
1435         sem_util.adb, sem_res.adb, sem_attr.adb, sem_elab.adb, exp_ch6.adb,
1436         sem_ch4.adb, sem_warn.adb, scil_ll.adb, exp_cg.adb: Minor code
1437         reorganization.
1438
1439 2012-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1440
1441         * s-tasini.ads: Minor fix in comment.
1442
1443 2012-06-12  Thomas Quinot  <quinot@adacore.com>
1444
1445         * freeze.adb (Freeze_Record_Type): Warn on record with
1446         Scalar_Storage_Order if there is no placed component.
1447
1448 2012-06-12  Thomas Quinot  <quinot@adacore.com>
1449
1450         * sem_ch3.adb: Minor comment fix.
1451
1452 2012-06-12  Vincent Celier  <celier@adacore.com>
1453
1454         * ali-util.adb (Time_Stamp_Mismatch): In minimal recompilation
1455         mode, use Stringt Mark and Release to avoid growing the Stringt
1456         internal tables uselessly.
1457         * stringt.adb (Strings_Last): New global variable
1458         (String_Chars_Last): New global variable.
1459         (Mark, Release): New procedures.
1460         * stringt.ads (Mark, Release) New procedures.
1461
1462 2012-06-12  Hristian Kirtchev  <kirtchev@adacore.com>
1463
1464         * exp_ch7.adb (Process_Transient_Objects): Renamed constant
1465         Requires_Hooking to Must_Hook and replace all occurrences of the name.
1466         (Requires_Hooking): New routine. Detect all contexts that require
1467         transient variable export to the outer finalizer due to a potential
1468         exception.
1469
1470 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
1471
1472         * sem_ch12.adb: Small adjustment.
1473
1474 2012-06-12  Vincent Celier  <celier@adacore.com>
1475
1476         * vms_cmds.ads (Command_Type): New enumeration value Test
1477         * vms_conv.adb (Initialize): Add component at index Test in
1478         Command_List
1479         * vms_data.ads (Test_Switches): New global variable for the
1480         switches of gnattest, currently empty.
1481
1482 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
1483
1484         * sem_ch3.adb (Analyze_Subtype_Declaration): if an incomplete
1485         type is tagged, so is a subtype of it.
1486         * sem_ch12.adb (Validate_Actual_Subprogram): implement AI05-0296,
1487         concerning freeze rules in the presence of formal incomplete
1488         types: a formal abstract subprogram cannot have an incomplete
1489         controlling type, and the profile of the actual subprogram does
1490         not freeze if it includes an incomplete untagged type.
1491
1492 2012-06-12  Robert Dewar  <dewar@adacore.com>
1493
1494         * a-direct.adb: Minor reformatting.
1495
1496 2012-06-12  Robert Dewar  <dewar@adacore.com>
1497
1498         * gnat_ugn.texi: Add missing documentation for -gnatw.v and
1499         -gnatw.V.
1500
1501 2012-06-12  Thomas Quinot  <quinot@adacore.com>
1502
1503         * sem_ch7.adb, sem_prag.adb, sem_ch12.adb, sem_ch4.adb,
1504         sem_ch13.adb: Minor rewording of error messages for unchecked unions.
1505
1506 2012-06-12  Robert Dewar  <dewar@adacore.com>
1507
1508         * lib-xref.ads: Minor reformatting.
1509
1510 2012-06-12  Pascal Obry  <obry@adacore.com>
1511
1512         * a-direct.adb (Delete_File): Delete symbolic links silently
1513         instead of raising the Name_Error exception when the symbolic
1514         link is pointing to a non existent file.
1515
1516 2012-06-12  Robert Dewar  <dewar@adacore.com>
1517
1518         * xref_lib.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.
1519
1520 2012-06-12  Javier Miranda  <miranda@adacore.com>
1521
1522         * lib-xref.ads Adding missing documentation.
1523
1524 2012-06-12  Hristian Kirtchev  <kirtchev@adacore.com>
1525
1526         * exp_ch7.adb (Create_Finalizer): Add the
1527         exception reraise mechanism at the very end of the finalizer
1528         statements. This placement ensures that all objects are finalized,
1529         the secondary stack mark released and aborts undeferred before
1530         propagating an exception.
1531
1532 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
1533
1534         * sem_ch10.adb (Remove_Unit_From_Visibility): if the unit is a
1535         wrapper package. remove from visibility the original subprogram
1536         instance.
1537
1538 2012-06-12  Javier Miranda  <miranda@adacore.com>
1539
1540         * sem_prag.adb (Process_Convention): Generate reference to entity
1541         exported to foreign language. Needed for GPS navigation.
1542         * xref_lib.adb (Parse_Identifier_Info): Parse exported entities.
1543         * lib-xref (Output_References): Output exported entities.
1544
1545 2012-06-12  Pascal Obry  <obry@adacore.com>
1546
1547         * prj-attr.adb: Add install package and corresponding attributes.
1548         * snames.ads-tmpl (Name_Active): New constant.
1549         (Name_Exec_Subdir): Likewise.
1550         (Name_Install): Likewise.
1551         (Name_Lib_Subdir): Likewise.
1552         (Name_Project_Subdir): Likewise.
1553         (Name_Sources_Subdir): Likewise.
1554
1555 2012-06-12  Bob Duff  <duff@adacore.com>
1556
1557         * sem_res.adb (Check_Infinite_Recursion):
1558         Suppress spurious warning on recursion after "raise with ...".
1559
1560 2012-06-12  Thomas Quinot  <quinot@adacore.com>
1561
1562         * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Do
1563         not crash on illegal unchecked union that is a null record.
1564
1565 2012-06-12  Thomas Quinot  <quinot@adacore.com>
1566
1567         * exp_ch4.adb (Has_Inferable_Discriminants): Reorganize code to
1568         treat implicit dereferences with a constrained unchecked union
1569         nominal subtype as having inferable discriminants. 
1570
1571 2012-06-12  Robert Dewar  <dewar@adacore.com>
1572
1573         * sem_ch6.adb: Minor reformatting.
1574
1575 2012-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1576
1577         * gnat_ugn.texi: Couple of minor corrections.
1578
1579 2012-06-12  Thomas Quinot  <quinot@adacore.com>
1580
1581         * sem_prag.adb (Check_Variant): An empty component list is not
1582         illegal in an unchecked union variant.
1583
1584 2012-06-12  Gary Dismukes  <dismukes@adacore.com>
1585
1586         * projects.texi: Remove comments.
1587
1588 2012-06-12  Thomas Quinot  <quinot@adacore.com>
1589
1590         * back_end.adb (Scan_Back_End_Switches): Treat -fdump-scos as
1591         synonym of -gnateS.
1592         (gnat_post_options): Disable gimple-based SCO generator.
1593         * gnat_ugn.texi: Document that -gnateS is an obsolete synonym
1594         of -fdump-scos.
1595
1596 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
1597
1598         * sem_ch6.adb (Different_Generic_Profile): new predicate for
1599         Find_Corresponding_Spec, to handle a rare case of accidental
1600         overloading in an instance, when the profile of a subprogram body
1601         that depends on a formal type becomes compatible with that of
1602         a homonym whose profile in the generic mentions the actual type.
1603
1604 2012-06-12  Thomas Quinot  <quinot@adacore.com>
1605
1606         * gnat1drv.adb: Minor reformatting.
1607
1608 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
1609
1610         * sem_util.adb (Build_Explicit_Dereference): If the expression
1611         is an entity, ensure that the type of the expression is the same
1612         as that of the entity.
1613
1614 2012-06-12  Pat Rogers  <rogers@adacore.com>
1615
1616         * projects.texi: Corrected instances of the word "build" that
1617         should be "built" instead. Other similar changes and minor
1618         punctuation changes.
1619
1620 2012-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1621
1622         * sem_util.adb (Is_Atomic_Object): Return true for an atomic
1623         component as well as a prefix which is an atomic component.
1624
1625 2012-06-12  Ed Schonberg  <schonberg@adacore.com>
1626
1627         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): revert previous
1628         patch. The processing of interfacing aspects now generates a
1629         proper Ada 2005 pragma.
1630         * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
1631         Pragma_Import): revert previous patch.  The processing of
1632         interfacing aspects now generates a proper Ada 2005 pragma.
1633         * sem_ch13.adb (Analyze_Aspect_Specifications): generate proper
1634         pragam for aspects Convention, Import and Export. Scan list
1635         of aspects to collect link name and external name if present,
1636         and verify that a complete pragma can be generated.
1637
1638 2012-06-11  Olivier Hainque  <hainque@adacore.com>
1639
1640         * gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Remove
1641         $(PIC_FLAG_FOR_TARGET).
1642         (gnatlib-shared-default): Add $(PIC_FLAG_FOR_TARGET) to
1643         GNATLIBCFLAGS_FOR_C passed to gnatlib.
1644         (gnatlib-shared-win32): Likewise.
1645         (gnatlib-shared-darwin): Likewise.
1646         (gnatlib-shared-dual-win32): Pass PIC_FLAG_FOR_TARGET to
1647         gnatlib-shared-win32.
1648
1649 2012-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1650
1651         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Convert GNU_SIZE
1652         to units before invoking allocatable_size_p on it.
1653         Remove orphaned comment.  Do not use ssize_int.
1654         <E_Record_Subtype>: Traverse list in original order.  Minor tweak.
1655         (allocatable_size_p): Adjust and simplify.
1656         (build_subst_list): Use consistent terminology throughout.
1657         (build_variant_list): Likewise.  Traverse list in original order.
1658         (create_field_decl_from): Likewise.
1659         (copy_and_substitute_in_size): Likewise.
1660         (create_variant_part_from): Add comment about field list order.
1661         * gcc-interface/utils.c (build_vms_descriptor): Do not use ssize_int.
1662         * gcc-interface/utils2.c (build_allocator): Likewise.
1663
1664 2012-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1665
1666         * gcc-interface/trans.c (Identifier_to_gnu): Test Is_Elementary_Type
1667         instead of Is_Scalar_Type for a constant with an address clause.
1668         Do not return the underlying constant for a constant used by reference
1669         if it holds the address of a constant and an lvalue is required.
1670
1671 2012-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1672
1673         * gcc-interface/decl.c (gnat_to_gnu_entity): Do not specifically deal
1674         with external constants wrt force_global here...
1675         <E_Constant>: ...but here instead.
1676         * gcc-interface/utils.c (gnat_pushdecl): Do not put external DECLs onto
1677         the list of global DECLs.
1678
1679 2012-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1680
1681         * gcc-interface/decl.c (gnat_to_gnu_entity): Translate the Esize on
1682         entry only for elementary types and abort if it is too large.
1683         <E_Record_Type>: Make sure the Esize is known before using it.
1684
1685 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
1686
1687         * gcc-interface/utils2.c: Do not include output.h.
1688         * gcc-interface/Make-lang.in: Fix dependencies.
1689
1690 2012-05-29  Michael Matz  <matz@suse.de>
1691
1692         * gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl.
1693
1694 2012-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1695
1696         * gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'.
1697         (build_variant_list): Adjust to above renaming.
1698         (gnat_to_gnu_entity) <E_Record_Subtype>: Likewise.  Give a unique name
1699         to the type of the variant containers.
1700         (create_variant_part_from): Likewise.  Give a unique name to the type
1701         of the variant part.
1702
1703 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1704
1705         PR ada/52362
1706         * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
1707         (__gnat_using_gnu_linker): Delete.
1708         * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
1709         Declare Object_File_Option string constant and Using_GNU_response_file
1710         boolean constant.
1711         (Process_Binder_File): ...instead of here.  Delete Using_GNU_Linker,
1712         Opening and Closing local variables.  Do not handle the GNU linker
1713         specially.
1714         (Write_RF): New procedure to write into the response file.  Escape some
1715         characters if a GNU response file is used.  Keep track of error status.
1716         Invoke Write_RF to write into the response file.  Delete the file only
1717         if the link was successful.
1718         * mlib-utl.adb: Do not `with' package System.
1719         (Gcc): Likewise.  Declare Object_File_Option string constant and
1720         Using_GNU_response_file boolean constant.
1721         (Write_RF): Take a string instead of address and length.  Escape some
1722         characters if a GNU response file is used.
1723         Invoke Write_RF to write into the response file.  Delete the file only
1724         if the link was successful.  Do not warn if it cannot be deleted.
1725
1726 2012-05-20  Eric Botcazou  <ebotcazou@adacore.com>
1727
1728         * gcc-interface/utils.c (gnat_write_global_declarations): Put a name
1729         on the dummy global variable.
1730
1731 2012-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1732
1733         * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
1734         (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
1735         calling convention
1736         (get_minimal_subprog_decl): Likewise.
1737         (gnat_first_param_is_class): New predicate.
1738
1739         * gcc-interface/misc.c (gnat_handle_option): Fix formatting.
1740         * gcc-interface/Makefile.in: Likewise.
1741
1742 2012-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1743
1744         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at
1745         global level with unconstrained nominal subtype and a non-fixed size,
1746         make a variable for the size.
1747
1748 2012-05-15  Andris Pavenis  <andris.pavenis@iki.fi>
1749
1750         PR ada/52494
1751         * s-taprop-dummy.adb (Specific): New package.
1752
1753 2012-05-15  Olivier Hainque  <hainque@adacore.com>
1754
1755         * gcc-interface/Make-lang.in (COMMON_FLAGS_TO_PASS): Use WARN_CFLAGS
1756         instead of trying to mimic it.
1757
1758 2012-05-15  Robert Dewar  <dewar@adacore.com>
1759
1760         * sem_ch5.adb, sem_util.adb, s-stposu.adb, exp_ch4.adb: Minor
1761         reformatting.
1762
1763 2012-05-15  Geert Bosch  <bosch@adacore.com>
1764
1765         * uintp.adb (UI_Rem): Remove optimizations, as they are complex and are
1766         not needed.
1767         (Sum_Digits): Remove, no longer used.
1768         (Sum_Double_Digits): Likewise.
1769
1770 2012-05-15  Yannick Moy  <moy@adacore.com>
1771
1772         * aspects.ads: Minor typo.
1773
1774 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1775
1776         * gnat_rm.texi (Scalar_Storage_Order): Fix RM reference.
1777         * sem_ch13.adb: Minor comment fix: incorrect RM reference.
1778
1779 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1780
1781         * sem_prag.adb (Process_Atomic_Shared_Volatile): Propagate
1782         atomicity from an object to its underlying type only if it
1783         is composite.
1784
1785 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
1786
1787         * sem_ch5.adb (Analyze_Iterator_Specification): Set kind of
1788         loop variable after pre-analysis of iterator name, to prevent
1789         premature usage of loop variable.
1790
1791 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
1792
1793         * sem_util.adb (Is_Variable): In Ada 2012, an explicit
1794         dereference that is a rewriting of an expression whose type has
1795         a declared Implicit_Derenference aspect is a variable.
1796
1797 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
1798
1799         * exp_ch4.adb (Insert_Dereference_Action): Reimplemented. The
1800         routine performs address and size adjustments for dereferences
1801         of heap-allocated controlled objects. This manipulation is needed
1802         in order to restore the original state of the memory at the time
1803         it was allocated by the finalization machinery.
1804         * rtsfind.ads: Add RE_Adjust_Controlled_Dereference to tables
1805         RE_Id and RE_Unit_Table.
1806         * sinfo.adb (Has_Dereference_Action): New routine.
1807         (Set_Has_Dereference_Action): New routine.
1808         * sinfo.ads: Add new semantic flag Has_Dereference_Action along
1809         its association in nodes.
1810         (Has_Dereference_Action): New routine and pragma Inline.
1811         (Set_Has_Dereference_Action): New routine and pragma Inline.
1812         * s-stposu.ads, s-stposu.adb (Adjust_Controlled_Dereference): New
1813         routine.
1814
1815 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1816
1817         * uintp.adb (Image_Uint): Use UI_Div_Rem to get quotient and
1818         remainder of U / Base in a single operation.
1819
1820 2012-05-15  Robert Dewar  <dewar@adacore.com>
1821
1822         * exp_ch5.adb, inline.adb, sem_ch10.adb, prj.ads, sem_util.adb,
1823         a-ngelfu.ads, exp_ch4.adb, exp_ch6.adb, aspects.ads, sem_ch6.adb,
1824         vms_data.ads, exp_ch3.adb, prj-env.adb: Minor reformatting.
1825
1826 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1827
1828         * exp_ch4.adb (Has_Inferable_Discriminants): For a qualified
1829         expression, use correct node for test on the subtype denoted by
1830         the subtype mark.
1831
1832 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1833
1834         * inline.adb (Scope_In_Main_Unit): Rename into...
1835         (In_Main_Unit_Or_Subunit): ...this.  Also return
1836         true if the subprogram is within a subunit of the
1837         main unit.
1838         (Add_Inlined_Body): Adjust for above renaming.
1839         (Add_Inlined_Subprogram): Likewise.  Pass the subprogram directly.
1840         (Analyze_Inlined_Bodies): Really set aside inlined subprograms
1841         not handled by Add_Inlined_Body.
1842
1843 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
1844
1845         * sem_ch10.adb (Expand_With_Clause): In the context of a generic
1846         package declaration, a private with-clause on a child unit implies
1847         that the implicit with clauses on its parents are private as well.
1848
1849 2012-05-15  Javier Miranda  <miranda@adacore.com>
1850
1851         * sem_ch6.adb (Is_Interface_Conformant): Add missing call to
1852         Base_Type to handle subtypes.
1853         * exp_ch6.adb (Expand_Call): For calls located in thunks handle
1854         unchecked conversions of access types found in actuals.
1855         * exp_disp.adb (Expand_Interface_Thunk): Add missing unchecked
1856         conversion to actuals whose type is an access type. Done to
1857         avoid reporting spurious errors.
1858
1859 2012-05-15  Vincent Celier  <celier@adacore.com>
1860
1861         * prj-env.adb (Create_Mapping): Ignore sources that are
1862         suppressed (Create_Mapping_File.Process): Ditto
1863         * prj-nmsc.adb (Add_Source): Update to take into
1864         account suppressed files that may hide inherited sources.
1865         (Mark_Excluded_Sources): Mark excluded sources of the current
1866         project as suppressed.
1867         * prj.ads (Source_Data): New Boolean component Suppressed,
1868         defaulted to False
1869
1870 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1871
1872         * exp_intr.adb: Minor reformatting.
1873
1874 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1875
1876         * gnat_rm.texi: Document attribute Scalar_Storage_Order.
1877
1878 2012-05-15  Javier Miranda  <miranda@adacore.com>
1879
1880         * exp_ch3.adb (Build_Offset_To_Top): Modify the
1881         expansion of the offset_to_top functions to ensure that their
1882         profile is conformant with the profile specified in Ada.Tags. No
1883         change in functionality.
1884
1885 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1886
1887         * inline.adb (Subp_Info): Remove Count and Next_Nopred
1888         components, add Processed component and move around Next component.
1889         (Add_Call): Reverse meaning of Successors table to the natural one.
1890         (Add_Inlined_Body): Do not inline a package if it is in the main unit.
1891         (Add_Inlined_Subprogram): Do not add the subprogram to the list if the
1892         package is in the main unit. Do not recurse on the successors.
1893         (Add_Subp): Adjust to new contents of Subp_Info.
1894         (Analyze_Inlined_Bodies): Do not attempt
1895         to compute a topological order on the list of inlined subprograms,
1896         but compute the transitive closure from the main unit instead.
1897         (Get_Code_Unit_Entity): Always return the spec for a package.
1898
1899 2012-05-15  Yannick Moy  <moy@adacore.com>
1900
1901         * aspects.ads: Minor addition of comments to provide info on
1902         how to add new aspects.
1903
1904 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1905
1906         * osint.ads: Minor reformatting.
1907
1908 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1909
1910         * exp_ch5.adb, exp_pakd.adb, sem_util.adb, sem_util.ads
1911         (Expand_Assign_Array): Handle the case of a packed bit array within a
1912         record with reverse storage order (assign element by element in that
1913         case).
1914         (In_Reverse_Storage_Order_Record): New subprogram,
1915         code extracted from Exp_Pakd.
1916
1917 2012-05-15  Yannick Moy  <moy@adacore.com>
1918
1919         * a-ngelfu.ads: Add postconditions using Ada 2012
1920         aspect syntax, reflecting some of the RM requirements for these
1921         functions, from Annex A.5.1 or G.2.4.
1922
1923 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1924
1925         * adaint.c: Minor fix: move misplaced comment.
1926
1927 2012-05-15  Doug Rupp  <rupp@adacore.com>
1928
1929         * vms_data.ads: Enhance help for /IMMEDIATE_ERRORS to discourage
1930         use by customers.
1931
1932 2012-05-15  Tristan Gingold  <gingold@adacore.com>
1933
1934         * a-exextr.adb: Add comment.
1935
1936 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
1937
1938         * sem_ch3.adb: Minor reformatting (remove long dead code).
1939
1940 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
1941
1942         * aspects.adb, aspects.ads: Add aspects for Convention, Export,
1943         External_Name, Import, and Link_Name.
1944         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): if the
1945         pragma comes from an aspect specification, the entity is the
1946         first argument.
1947         * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
1948         Pragma_Import): if the pragma comes from an aspect specification,
1949         the entity is the first argument, and the second has the value
1950         True by default.
1951         * sem_ch13.adb (Analyze_Aspect_Specifications): generate pragam
1952         for aspect Convention. Add placeholders for Link_Name and
1953         External_Name.
1954
1955 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
1956
1957         * exp_ch9.adb (Expand_N_Asynchronous_Select): Extract the statements
1958         of the abortable part and triggering alternative after being processed
1959         for controlled objects.
1960         (Expand_N_Timed_Entry_Call): Code and comment reformatting.
1961
1962 2012-05-15  Robert Dewar  <dewar@adacore.com>
1963
1964         * sem_util.adb: Minor code reorganization.
1965
1966 2012-05-15  Robert Dewar  <dewar@adacore.com>
1967
1968         * exp_ch7.adb, exp_ch11.adb, exp_ch11.ads: Minor reformatting.
1969
1970 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1971
1972         * sem_res.adb (Resolve): Enforce E.2.2(11/2) and E.2.2(12) for
1973         'Unrestricted_Access and 'Unchecked_Access (not just 'Access):
1974         even in those cases, a remote access type may only designate a
1975         remote subprogram.
1976
1977 2012-05-15  Thomas Quinot  <quinot@adacore.com>
1978
1979         * sem_util.adb, sem_util.ads, sem_cat.adb: Minor refactoring.
1980         (Enclosing_Lib_Unit_Node): Rename to Enclosing_Comp_Unit_Node.
1981
1982 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
1983
1984         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove obsolete
1985         checks on nested inlined subprograms.
1986
1987 2012-05-15  Tristan Gingold  <gingold@adacore.com>
1988
1989         * fe.h (Get_RT_Exception_Name): Declare.
1990
1991 2012-05-15  Tristan Gingold  <gingold@adacore.com>
1992
1993         * raise-gcc.c (db_region_for): Use %p + cast to avoid warnings.
1994         (get_region_description_for): Likewise.
1995         (db_action_for): Likewise.
1996         (get_call_site_action_for): Likewise.
1997         (get_ttype_entry_for): Remove useless 'const'.
1998         (PERSONALITY_FUNCTION): Add ATTRIBUTE_UNUSED on uw_exception_class.
1999
2000 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2001
2002         * a-exextr.adb (Unhandled_Exception_Terminate): Save occurrence
2003         on the stack to avoid a dynamic memory allocation.
2004
2005 2012-05-15  Bob Duff  <duff@adacore.com>
2006
2007         * exp_ch9.adb (Expand_N_Timed_Entry_Call): Move initialization of
2008         E_Stats and D_Stats after Process_Statements_For_Controlled_Objects,
2009         because those calls can destroy the Statements list.
2010
2011 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2012
2013         * fe.h (Get_RT_Exception_Name): Define.
2014         * types.ads (RT_Exception_Code): Update comment.
2015         * exp_ch11.adb, exp_ch11.ads (Get_RT_Exception_Name): New
2016         procedure to get the name of the rcheck subprograms.
2017         * a-except-2005.adb (Rcheck_xx): Rename.
2018         * a-except.adb Likewise, but also keep the old Rcheck_nn routines
2019         for bootstrap.
2020         * arith64.c (__gnat_mulv64): Use __gnat_rcheck_CE_Overflow_Check
2021         instead of __gnat_rcheck_10.
2022         * gcc-interface/trans.c (build_raise_check): Use Get_RT_Exception_Name
2023         to create the __gnat_rcheck routines name.
2024         * gcc-interface/Make-lang.in: Update dependencies.
2025
2026 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2027
2028         * exp_ch7.adb (Build_Exception_Handler): Save current
2029         occurrence only if -gnateE.
2030         (Build_Object_Declaration): Declare E_Id only if -gnateE.
2031         (Build_Raise_Statement): Call Raise_From_Controlled_Operation only if
2032         -gnateE (else raise PE).
2033         * s-soflin.adb (Save_Library_Occurrence): Handle null occurrence
2034         access.
2035         * a-except-2005.adb (Reraise_Library_Exception_If_Any): Call
2036         Raise_From_Controlled_Operation only if the saved occurrence is
2037         not null, otherwise raise PE.
2038
2039 2012-05-15  Yannick Moy  <moy@adacore.com>
2040
2041         * exp_alfa.ads: Add comments describing the Alfa mode.
2042
2043 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2044
2045         * s-soflin.ads, s-soflin.adb (Save_Library_Occurrence): Parameter
2046         E is now of type Exception_Occurrence_Access.
2047         * exp_ch7.ads, exp_ch7.adb (Build_Exception_Handler): Adjust generated
2048         call to Save_Library_Occurrence.
2049
2050 2012-05-15  Thomas Quinot  <quinot@adacore.com>
2051
2052         * exp_ch4.adb (Rewrite_Coextension): Use Insert_Action to
2053         insert temporary variable decl at the proper place in the tree.
2054
2055 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
2056
2057         * g-calend.adb (Split_At_Locale): New routine.
2058         (Time_Of_At_Locale): New routine.
2059         * g-calend.ads (Split_At_Locale): New routine.
2060         (Time_Of_At_Locale): New routine.
2061
2062 2012-05-15  Gary Dismukes  <dismukes@adacore.com>
2063
2064         * a-except.ads: Minor reformatting.
2065
2066 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
2067
2068         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the loop
2069         parameter specification is part of a quantified expression, and it
2070         already carries a type, do not repeat the analysis to preserve
2071         type information: a range attribute reference may have been
2072         rewritten as a range with static bounds, and its re-analysis may
2073         type it as Integer by default, instead of the original index type.
2074
2075 2012-05-15  Robert Dewar  <dewar@adacore.com>
2076
2077         * s-osprim-mingw.adb: Minor reformatting.
2078
2079 2012-05-15  Arnaud Charlet  <charlet@adacore.com>
2080
2081         * a-except.adb, a-except.ads (Reraise_Library_Exception_If_Any): New.
2082         Mark this unit preelaborate.
2083         * s-soflin.ads: Make package Preelaborate.
2084
2085 2012-05-15  Robert Dewar  <dewar@adacore.com>
2086
2087         * s-osprim-mingw.adb, sem_eval.adb, a-calend-vms.ads: Minor reformatting
2088
2089 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
2090
2091         * sem_eval.adb (Subtypes_Statically_Match): In Ada 2012, static
2092         matching requires matching of static subtype predicates as well.
2093
2094 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
2095
2096         * sem_case.adb (Analyze_Choices): If the subtype of the
2097         expression has a non-static predicate, the case alternatives
2098         must cover the base type.
2099
2100 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2101
2102         * a-calend-vms.ads: Add pragma export to Split and Time_Of.
2103         Merge comments from a-calend.ads to minimize differences.
2104
2105 2012-05-15  Sergey Rybin  <rybin@adacore.com frybin>
2106
2107         * gnat_ugn.texi: gnatmetric: add a small example that demonstrates
2108         the difference between control coupling and unit coupling.
2109
2110 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2111
2112         * bindgen.adb (Gen_Header): Remove code to emit LE_Set.
2113         (Gen_Finalize_Library): Replace test with
2114         a call to __gnat_reraise_library_exception_if_any.
2115         * s-soflin.ads (Library_Exception): Do not export.
2116         (Library_Exception_Set): Likewise.
2117         * a-except-2005.ads, a-except-2005.adb
2118         (Reraise_Library_Exception_If_Any): New procedure.
2119
2120 2012-05-15  Geert Bosch  <bosch@adacore.com>
2121
2122         * sem_ch9.adb (Allows_Lock_Free_Implementation): out or in out
2123         parameters can be access types as well, not just scalar types,
2124         so relax the test to Is_Elementary_Type.
2125
2126 2012-05-15  Bob Duff  <duff@adacore.com>
2127
2128         * s-atacco.ads s-atacco.adb: Replace pragma Elaborate_Body
2129         with pragma No_Body.
2130         (Xyz): Remove Xyz, which is apparently unnecessary.
2131
2132 2012-05-15  Tristan Gingold  <gingold@adacore.com>
2133
2134         * a-calend-vms.adb: Complete previous change.
2135
2136 2012-05-15  Bob Duff  <duff@adacore.com>
2137
2138         * s-win32.ads: Minor comment fix.
2139         * s-osprim-mingw.adb: Minor editing.
2140
2141 2012-05-15  Robert Dewar  <dewar@adacore.com>
2142
2143         * exp_ch9.adb, sem_ch9.adb, sem_ch13.adb: Minor reformatting.
2144
2145 2012-05-15  Robert Dewar  <dewar@adacore.com>
2146
2147         * g-comlin.adb, g-comlin.ads: Minor reformatting.
2148
2149 2012-05-15  Vincent Pucci  <pucci@adacore.com>
2150
2151         * aspects.adb, aspects.adb: Reordering of the Aspect_Idi list. New
2152         aspect Aspect_Lock_Free.
2153         * einfo.adb, einfo.ads: New flag Uses_Lock_Free (flag 188).
2154         (Set_Uses_Lock_Free): New routine.
2155         (Uses_Lock_Free): New routine.
2156         * exp_ch7.adb (Is_Simple_Protected_Type): Return False for
2157         lock-free implementation.
2158         * exp_ch9.adb (Allows_Lock_Free_Implementation): Moved to Sem_Ch9.
2159         (Build_Lock_Free_Unprotected_Subprogram_Body): Protected
2160         procedure uses __sync_synchronise. Check both Object_Size
2161         and Value_Size.
2162         (Expand_N_Protected_Body): Lock_Free_Active
2163         renames Lock_Free_On.
2164         (Expand_N_Protected_Type_Declaration):
2165         _Object field removed for lock-free implementation.
2166         (Install_Private_Data_Declarations): Protection object removed
2167         for lock-free implementation.
2168         (Make_Initialize_Protection):
2169         Protection object initialization removed for lock-free implementation.
2170         * rtsfind.ads: RE_Atomic_Synchronize and RE_Relaxed added.
2171         * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect_Lock_Free
2172         analysis added.
2173         * sem_ch9.adb (Allows_Lock_Free_Implementation): New routine.
2174         (Analyze_Protected_Body): Allows_Lock_Free_Implementation call added.
2175         (Analyze_Protected_Type_Declaration):
2176         Allows_Lock_Free_Implementation call added.
2177         (Analyze_Single_Protected_Declaration): Second analysis of
2178         aspects removed.
2179         * s-atopri.ads: Header added.
2180         (Atomic_Synchronize): New routine.
2181
2182 2012-05-15  Robert Dewar  <dewar@adacore.com>
2183
2184         * exp_ch7.ads: Add comment.
2185
2186 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
2187
2188         * a-calend.adb (Day_Of_Week): The routine once again treats
2189         all dates as historic.  (Formatting_Operations.Split): All
2190         calls to UTC_Time_Offset are now controlled through formal
2191         parameter Is_Historic.  (Formatting_Operations.Time_Of):
2192         All calls to UTC_Time_Offset are now handled through
2193         formal parameter Is_Historic.
2194         (Split): Update the call to Formatting_Operations.Split.
2195         (Time_Of): Update the call to Formatting_Operations.Time_Of.
2196         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
2197         (To_Strict_Tm): Update the call to Formatting_Operations.Split.
2198         * a-calend.ads (Split): Add new formal Is_Historic along with
2199         comment on usage. This routine is now exported for the purposes
2200         of GNAT.Calendar.Locale.
2201         (Time_Of): Remove defaults. Add new
2202         formal Is_Historic along with comment on usage. This routine is
2203         now exported for the purposes of GNAT.Calendar.Locale.
2204         * a-calend-vms.adb (Split): Update the call to
2205         Formatting_Operations.Split.
2206         (Time_Of): Update the call to Formatting_Operations.Time_Of.
2207         * a-calend-vms.ads (Split): Add new formal Is_Historic along
2208         with comment on usage.  (Time_Of): Remove defaults. Add new
2209         formal Is_Historic along with comment on usage.
2210         * a-calfor.adb (Split): Update the call to
2211         Formatting_Operations.Split.
2212         (Time_Of): Update the call to Formatting_Operations.Time_Of.
2213
2214 2012-05-15  Vincent Celier  <celier@adacore.com>
2215
2216         * prj-nmsc.adb (Add_Source): Always add the source if it is
2217         excluded, to avoid incorrect duplicate checks.
2218
2219 2012-05-15  Yannick Moy  <moy@adacore.com>
2220
2221         * sem_aux.ads: Correct typo.
2222         * sem_eval.adb (Compile_Time_Known_Value): Return False in Alfa
2223         mode for a deferred constant when outside of the scope of its
2224         full view.
2225
2226 2012-05-15  Emmanuel Briot  <briot@adacore.com>
2227
2228         * g-comlin.adb, g-comlin.ads (Define_Switch): Allow specifying the name
2229         of the argument, for the automatic help message.
2230         (Getopt): do not systematically initialize switches with string values
2231         to the empty string, when the user has already specified a default.
2232
2233 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
2234
2235         * gcc-interface/utils.c (DEF_ATTR_STRING): New.
2236
2237 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2238
2239         PR 53063
2240         * gcc-interface/misc.c: Include opts.h and options.h before tm.h.
2241         (gnat_handle_option): Call lang-specific generated function.
2242
2243 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2244
2245         * gcc-interface/lang.opt (I): Comment out help text with no effect.
2246         (nostdinc): Comment out help text with no effect.
2247
2248 2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>
2249
2250         * gcc-interface/Makefile.in (TOOLS_LIBS): Add ../../ggc-none.o.
2251
2252 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2253
2254         PR 53063
2255         * gcc-interface/misc.c (gnat_parse_file): Move before ...
2256         (gnat_handle_option): ... this. Use handle_generated_option.
2257
2258 2012-05-10  Richard Guenther  <rguenther@suse.de>
2259
2260         * gcc-interface/cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use.
2261
2262 2012-05-06  Tristan Gingold  <gingold@adacore.com>
2263
2264         * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
2265
2266 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
2267
2268         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
2269         case, use the padded type if the renamed object has an unconstrained
2270         type with default discriminant.
2271
2272 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
2273
2274         * gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant
2275         conditions with only one bound.
2276         (Raise_Error_to_gnu): Likewise.  New function extracted from...
2277         (gnat_to_gnu) <N_Raise_Constraint_Error>: ...here.  Call above function
2278         in regular mode only.
2279
2280 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
2281
2282         * gcc-interface/misc.c (gnat_post_options): Disable caret by default.
2283
2284 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
2285
2286         * gcc-interface/gigi.h (make_packable_type): Declare.
2287         (make_type_from_size): Likewise.
2288         (relate_alias_sets): Likewise.
2289         (maybe_pad_type): Adjust.
2290         (init_gnat_to_gnu): Delete.
2291         (destroy_gnat_to_gnu): Likewise.
2292         (init_dummy_type): Likewise.
2293         (destroy_dummy_type): Likewise.
2294         (init_gnat_utils): Declare.
2295         (destroy_gnat_utils): Likewise.
2296         (ceil_pow2): New inline function.
2297         * gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2.
2298         <object>: Pass True for the final processing of alignment and size.
2299         <E_Subprogram_Type>: Only create the TYPE_DECL for a padded return
2300         type if necessary.
2301         (round_up_to_align): Delete.
2302         (ceil_alignment): Likewise.
2303         (relate_alias_sets): Move to...
2304         (make_aligning_type): Likewise.
2305         (make_packable_type): Likewise.
2306         (maybe_pad_type): Likewise.
2307         (make_type_from_size): Likewise.
2308         * gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete.
2309         (struct pad_type_hash): New type.
2310         (pad_type_hash_table): New static variable.
2311         (init_gnat_to_gnu): Merge into...
2312         (init_dummy_type): Likewise.
2313         (init_gnat_utils): ...this.  New function.
2314         (destroy_gnat_to_gnu): Merge into...
2315         (destroy_dummy_type): Likewise.
2316         (destroy_gnat_utils): ...this.  New function.
2317         (pad_type_hash_marked_p): New function.
2318         (pad_type_hash_hash): Likewise.
2319         (pad_type_hash_eq): Likewise.
2320         (relate_alias_sets): ...here.
2321         (make_aligning_type): Likewise.
2322         (make_packable_type): Likewise.
2323         (maybe_pad_type): Likewise.  Change same_rm_size parameter into
2324         set_rm_size; do not set TYPE_ADA_SIZE if it is false.  Do not set
2325         null as Ada size.  Do not set TYPE_VOLATILE on the padded type.  If it
2326         is complete and has constant size, canonicalize it.  Bail out earlier
2327         if a warning need not be issued.
2328         (make_type_from_size): Likewise.
2329         <INTEGER_TYPE>: Bail out if size is too large
2330         (gnat_types_compatible_p): Do not deal with padded types.
2331         (convert): Compare main variants for padded types.
2332         * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils.
2333         (gnat_to_gnu): Do not convert at the end for a call to a function that
2334         returns an unconstrained type with default discriminant.
2335         (Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects.
2336         * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise.
2337         Do not use the padded type if it is BLKmode and the inner type is
2338         non-BLKmode.
2339
2340 2012-05-02  Pascal Obry  <obry@adacore.com>
2341
2342         Revert
2343         2012-02-24  Dave Korn  <dave.korn.cygwin@gmail.com>
2344
2345         * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
2346         Windows-specific make variable.
2347         (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
2348         (install-gnatlib): Respect the above during installation when set,
2349         and also install any windows import library that has been built.
2350         (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
2351         build a corresponding import library.
2352
2353 2012-04-30  Jan Hubicka  <jh@suse.cz>
2354
2355         * gcc-interface/utils.c (rest_of_subprog_body_compilation): Update
2356         comment.
2357         (gnat_write_global_declarations): Use finalize_compilation_unit.
2358
2359 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2360
2361         * gcc-interface/decl.c (gnat_to_gnu_entity): In type annotation mode,
2362         do not adjust the size of a tagged type if there is a representation
2363         clause on it.  Otherwise, round the adjustment up to the alignment
2364         of the first field and use the appropriate helper routine.
2365         (maybe_pad_type): Do not warn in type annotation mode on a tagged type.
2366         (gnat_to_gnu_field): Do not error out under the same circumstances.
2367         (annotate_rep): In type annotation mode, do not adjust the offset of
2368         components of a tagged type with representation clause.  Otherwise,
2369         round the adjustment up to the alignment of the first field.
2370
2371 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2372
2373         * gcc-interface/utils.c (finish_record_type): Force the traditional GCC
2374         layout for bitfields on the type if it is packed or has a representation
2375         clause and an alternate layout is available.
2376
2377 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2378
2379         * gcc-interface/gigi.h (mark_out_of_scope): Delete.
2380         (destroy_gnat_to_gnu): Declare.
2381         (destroy_dummy_type): Likewise.
2382         * gcc-interface/decl.c (mark_out_of_scope): Delete.
2383         * gcc-interface/utils.c (destroy_gnat_to_gnu): New function.
2384         (destroy_dummy_type): Likewise.
2385         * gcc-interface/trans.c (gnat_validate_uc_list): New variable.
2386         (gigi): Call validate_unchecked_conversion on gnat_validate_uc_list
2387         after the translation is completed.  Call destroy_gnat_to_gnu and
2388         destroy_dummy_type at the end.
2389         (Subprogram_Body_to_gnu): Do not call mark_out_of_scope.
2390         (gnat_to_gnu) <N_Block_Statement>: Likewise.
2391         <N_Validate_Unchecked_Conversion>: Do not process the node, only push
2392         it onto gnat_validate_uc_list.
2393         (validate_unchecked_conversion): New function.
2394
2395 2012-04-26  Tristan Gingold  <gingold@adacore.com>
2396
2397         * gcc-interface/Make-lang.in: Update dependencies.
2398         Remove s-traceb and tracebak objects from gnat1 and gnatbind (not used).
2399         Remove s-tasdeb and s-vaflop rules (not used).
2400
2401 2012-04-26  Olivier Hainque  <hainque@adacore.com>
2402
2403         * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Default to
2404         DOUBLE_TYPE_SIZE instead of LONG_DOUBLE_TYPE_SIZE.
2405
2406 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
2407
2408         * a-calend.adb (Day_Of_Week): Keep the internal
2409         usage of UTC_Time_Offset consistent with Time_Of and Split.
2410
2411 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
2412
2413         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Do not freeze
2414         the loop variable while preanalyzing a quantified expression.
2415
2416 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
2417
2418         * a-calend.adb (Split, Time_Of): Rename parameter Is_Ada_05
2419         to Use_TZ to better illustrate its function. Update all
2420         references to the parameter.
2421         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
2422         * a-calend.ads (Split, Time_Of): Rename parameter Is_Ada_05
2423         to Use_TZ to better illustrate its function. Update the related
2424         comment on usage.
2425         * a-calend-vms.adb (Split, Time_Of): Rename parameter
2426         Is_Ada_05 to Use_TZ to better illustrate its function. Update
2427         all references to the parameter.
2428         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
2429         * a-calend-vms.ads (Split, Time_Of): Rename parameter Is_Ada_05
2430         to Use_TZ to better illustrate its function. Update the related
2431         comment on usage.
2432         * a-calfor.adb (Split, Time_Of): Update the call to
2433         Formatting_Operations.Time_Of.
2434         * sysdep.c (__gnat_localtime_tzoff): Dereference pointer
2435         "is_historic" and rewrite the check as a comparison. Add a
2436         comment on flag values.
2437
2438 2012-04-26  Robert Dewar  <dewar@adacore.com>
2439
2440         * exp_ch2.adb, sem_ch8.adb: Minor reformatting.
2441
2442 2012-04-26  Vasiliy Fofanov  <fofanov@adacore.com>
2443
2444         * a-stzunb-shared.adb, gnat_ugn.texi, a-strunb-shared.adb,
2445         a-strunb-shared.ads, uintp.adb, a-stwiun-shared.adb,
2446         a-stwiun-shared.ads, a-cbhama.ads, vms_data.ads, a-cobove.adb,
2447         a-convec.adb, sem_ch13.adb, a-cbhase.ads: Fix common misuses of the
2448         word "then" where "than" should be used in English.
2449
2450 2012-04-26  Robert Dewar  <dewar@adacore.com>
2451
2452         * sem_ch5.adb (Check_Unreachable_Code): Skip past pragmas.
2453
2454 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
2455
2456         * s-finroo.ads: Remove with clause for
2457         Ada.Streams. Type Root_Controlled is now abstract tagged null
2458         record. Remove internal package Stream_Attributes. Root_Controlled
2459         doesn't need stream attribute redeclaration and avoids the
2460         dependency on streams.
2461
2462 2012-04-26  Tristan Gingold  <gingold@adacore.com>
2463
2464         * adaint.c (to_host_path_spec): Removed (unused).
2465         Minor reformatting.
2466
2467 2012-04-26  Steve Baird  <baird@adacore.com>
2468
2469         * gnat_rm.texi Improve description of Valid_Scalars attribute.
2470
2471 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
2472
2473         * sem_ch6.adb (Can_Override_Operator): If the formal is a
2474         generic type the operator cannot be overriding.
2475
2476 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
2477
2478         * sem_ch8.adb (Spec_Reloaded_For_Body): Check whether the type
2479         is declared in a package specification, and current unit is the
2480         corresponding package body. The use clauses themselves may be
2481         within a nested package.
2482
2483 2012-04-26  Bob Duff  <duff@adacore.com>
2484
2485         * exp_ch2.adb (Param_Entity): Take into account the case where
2486         the type of the entry parameter has a representation clause.
2487
2488 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
2489
2490         * gnat_ugn.texi: Tweak dimensionality doc.
2491
2492 2012-04-26  Robert Dewar  <dewar@adacore.com>
2493
2494         * sem_eval.adb: Minor reformatting.
2495
2496 2012-04-26  Robert Dewar  <dewar@adacore.com>
2497
2498         * einfo.adb, einfo.ads, sem_res.adb, sem_ch4.adb,
2499         sem_eval.adb: Minor reformatting.
2500
2501 2012-04-26  Thomas Quinot  <quinot@adacore.com>
2502
2503         * freeze.adb: Minor change in error wording.
2504
2505 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
2506
2507         * gnat_ugn.texi: Documentation on dimensional analysis.
2508
2509 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
2510
2511         * einfo.adb, einfo.ads: Remove synthesized attribute
2512         Proper_First_Index along with its associations in various nodes.
2513         (Proper_First_Index): Removed.
2514         * sem_ch4.adb (Analyze_Slice): Alphabetize constants. Add new
2515         local variable Index_Type. The index type of a string literal
2516         subtype is that of the stored low bound.
2517         * sem_eval (Get_Static_Length): Remove the use of Proper_First_Index.
2518         * sem_res.adb (Resolve_Slice): Alphabetize constants. Add
2519         new local variable Index_Type. The index type of a
2520         string literal subtype is that of the stored low bound.
2521         (Set_String_Literal_Subtype): Code reformatting.
2522
2523 2012-04-26  Robert Dewar  <dewar@adacore.com>
2524
2525         * exp_aggr.adb: Minor reformatting.
2526
2527 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
2528
2529         * exp_ch7.adb (Expand_Cleanup_Actions): Update the call to
2530         Requires_Cleanup_Actions.
2531         * exp_util.adb (Requires_Cleanup_Actions (List_Id; Boolean;
2532         Boolean)): Rename formal parameter For_Package to Lib_Level to
2533         better reflect its purpose. Update the related comment and all
2534         occurrences of For_Package in the body.
2535         (Requires_Cleanup_Actions
2536         (Node_Id; Boolean)): Add new formal parameter Lib_Level. Add
2537         local constant At_Lib_Level to keep monitor whether the path
2538         taken from the top-most context to the current construct involves
2539         package constructs. Update all calls to Requires_Cleanup_Actions.
2540         * exp_util.ads (Requires_Cleanup_Actions): Add new formal
2541         parameter Lib_Level and associated comment.
2542
2543 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
2544
2545         * sem_ch6.adb (Process_Formals): If the type of the formal is
2546         a non null access type, mark the generated subtype as having a
2547         delayed freeze only if the designated type is not frozen yet.
2548
2549 2012-04-26  Vincent Celier  <celier@adacore.com>
2550
2551         * prj-attr.adb: New package Clean with attributes
2552         Object_Artifact_Extensions and Source_Artifact_Extensions.
2553         * prj-nmsc.adb (Process_Clean): Process new package Clean
2554         * prj.ads (Language_Config): New components
2555         Clean_Object_Artifacts and Clean_Source_Artifacts.
2556         * snames.ads-tmpl: New standard names Clean,
2557         Object_Artifact_Extensions and Source_Artifact_Extensions.
2558
2559 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
2560
2561         * einfo.adb (Proper_First_Index): Moved from Sem_Util.
2562         * einfo.ads: Add new synthesized attribute Proper_First_Index
2563         along with usage in nodes.
2564         (Proper_First_Index): Moved from Sem_Util.
2565         * sem_util.ads, sem_util.adb (Proper_First_Index): Moved to Einfo.
2566
2567 2012-04-26  Gary Dismukes  <dismukes@adacore.com>
2568
2569         * layout.adb (Layout_Component_List): Test for the case of a
2570         single variant and the size of its component list was computed
2571         as an integer literal, and use that size (which is in bits)
2572         as is rather than converting to storage units.
2573
2574 2012-04-26  Robert Dewar  <dewar@adacore.com>
2575
2576         * exp_aggr.adb: Minor reformatting.
2577
2578 2012-04-26  Robert Dewar  <dewar@adacore.com>
2579
2580         * sem_util.adb: Minor reformatting.
2581
2582 2012-04-26  Thomas Quinot  <quinot@adacore.com>
2583
2584         * exp_aggr.adb, exp_pakd.adb (Setup_Inline_Packed_Array_Reference,
2585         Packed_Array_Aggregate_Handled.Get_Component_Val):
2586         Reverse bit numbering within PAT when Reverse_Storage_Order
2587         applies to the enclosing record.
2588
2589 2012-04-26  Thomas Quinot  <quinot@adacore.com>
2590
2591         * freeze.adb (Freeze_Record_Type): Improve error message for
2592         Scalar_Storage_Order inconsistent with Bit_Order.
2593
2594 2012-04-25  Gary Dismukes  <dismukes@adacore.com>
2595
2596         * exp_ch9.adb: Add comments on the usage of the
2597         lock-free data structures.
2598
2599 2012-04-25  Vincent Pucci  <pucci@adacore.com>
2600
2601         * exp_intr.adb (Expand_Shift): Convert the left
2602         operand and the operator when the type of the call differs from
2603         the type of the operator.
2604
2605 2012-04-25  Geert Bosch  <bosch@adacore.com>
2606
2607         * stand.ads: Minor comment fix.
2608
2609 2012-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
2610
2611         * sem_ch4.adb (Analyze_Slice): Handle the case where the prefix
2612         is a string literal. Retrieve the first index from the base type
2613         when slicing a string literal.
2614         * sem_ch12.adb (Check_Private_View): Move the initialization
2615         of the type inside the loop to reflect the changing index.
2616         * sem_eval.adb (Eval_Relational_Op): Retrieve the first index
2617         from the base type when dealing with a string literal.
2618         * sem_res.adb (Resolve_Slice): Retrieve the first index from
2619         the base type when slicing a string literal.
2620         * sem_util.adb (Is_Internally_Generated_Renaming): New routine.
2621         (Is_Object_Reference): String literals may act
2622         as object references only when they are renamed internally.
2623         (Proper_First_Index): New routine.
2624         * sem_util.ads (Proper_First_Index): New routine.
2625
2626 2012-04-25  Robert Dewar  <dewar@adacore.com>
2627
2628         * sem_ch3.adb, csinfo.adb, lib-writ.adb, sem_ch12.adb,
2629         lib-xref.adb: Minor reformatting.
2630
2631 2012-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
2632
2633         * exp_ch9.adb: Rename Lock_Free_Sub_Type
2634         to Lock_Free_Subprogram. Remove type Subprogram_Id.
2635         Rename LF_Sub_Table to Lock_Free_Subprogram_Table.
2636         (Allow_Lock_Free_Implementation): Renamed to
2637         Allows_Lock_Free_Implementation.  Update the comment on
2638         lock-free restrictions. Code clean up and restructuring.
2639         (Build_Lock_Free_Protected_Subprogram_Body): Update the
2640         profile and related comments. Code clean up and restructuring.
2641         (Build_Lock_Free_Unprotected_Subprogram_Body): Update the
2642         profile and related comments. Code clean up and restructuring.
2643         (Comp_Of): Removed.
2644
2645 2012-04-25  Vincent Celier  <celier@adacore.com>
2646
2647         * sem_ch12.adb (Inherit_Context): Compare library units, not
2648         names of units, when checking if a unit is already in the context.
2649
2650 2012-04-25  Thomas Quinot  <quinot@adacore.com>
2651
2652         * sem_ch3.adb: Reverse_Storage_Order must be propagated to
2653         untagged derived record types.
2654
2655 2012-04-25  Ed Schonberg  <schonberg@adacore.com>
2656
2657         * lib-xref.adb: Adjust position of end label.
2658
2659 2012-04-22  Jan Hubicka  <jh@suse.cz>
2660
2661         * gcc-interface/utils.c (gnat_write_global_declarations): Do not mark
2662         needed node.
2663
2664 2012-04-20  Jan Hubicka  <jh@suse.cz>
2665
2666         * gcc-interface/utils.c (gnat_write_global_declarations): Update for new
2667         force_output placement.
2668
2669 2012-04-14  Jan Hubicka  <jh@suse.cz>
2670
2671         * gcc-interface/trans.c (finalize_nrv): Update field referenced for new
2672         cgraph/varpool layout.
2673
2674 2012-04-09  Mike Stump  <mikestump@comcast.net>
2675
2676         * a-assert.ads: Remove execute permission.
2677         * a-chacon.ads: Likewise.
2678         * a-coteio.ads: Likewise.
2679         * a-envvar.ads: Likewise.
2680         * a-exetim-mingw.ads: Likewise.
2681         * a-fzteio.ads: Likewise.
2682         * a-izteio.ads: Likewise.
2683         * a-lcteio.ads: Likewise.
2684         * a-llctio.ads: Likewise.
2685         * a-scteio.ads: Likewise.
2686         * a-suenco.ads: Likewise.
2687         * a-suenst.ads: Likewise.
2688         * a-suewst.ads: Likewise.
2689         * a-suezst.ads: Likewise.
2690         * a-tirsfi.ads: Likewise.
2691         * a-wichha.ads: Likewise.
2692         * a-zchara.ads: Likewise.
2693         * a-zchhan.ads: Likewise.
2694         * a-zchuni.ads: Likewise.
2695         * a-zrstfi.ads: Likewise.
2696         * aspects.ads: Likewise.
2697         * g-byorma.ads: Likewise.
2698         * g-decstr.ads: Likewise.
2699         * g-encstr.ads: Likewise.
2700         * g-spchge.ads: Likewise.
2701         * g-u3spch.ads: Likewise.
2702         * g-wispch.ads: Likewise.
2703         * g-zspche.ads: Likewise.
2704         * namet-sp.ads: Likewise.
2705         * s-os_lib.ads: Likewise.
2706         * s-regexp.ads: Likewise.
2707         * s-regpat.ads: Likewise.
2708         * s-string.ads: Likewise.
2709         * s-tasloc.ads: Likewise.
2710         * s-utf_32.ads: Likewise.
2711         * sem_aux.ads: Likewise.
2712         * a-assert.adb: Likewise.
2713         * a-chacon.adb: Likewise.
2714         * a-envvar.adb: Likewise.
2715         * a-exetim-mingw.adb: Likewise.
2716         * a-suenco.adb: Likewise.
2717         * a-suenst.adb: Likewise.
2718         * a-suewst.adb: Likewise.
2719         * a-suezst.adb: Likewise.
2720         * a-tirsfi.adb: Likewise.
2721         * a-wichha.adb: Likewise.
2722         * a-zchhan.adb: Likewise.
2723         * a-zchuni.adb: Likewise.
2724         * a-zrstfi.adb: Likewise.
2725         * aspects.adb: Likewise.
2726         * g-byorma.adb: Likewise.
2727         * g-decstr.adb: Likewise.
2728         * g-encstr.adb: Likewise.
2729         * g-spchge.adb: Likewise.
2730         * g-u3spch.adb: Likewise.
2731         * g-wispch.adb: Likewise.
2732         * g-zspche.adb: Likewise.
2733         * namet-sp.adb: Likewise.
2734         * s-except.adb: Likewise.
2735         * s-inmaop-vxworks.adb: Likewise.
2736         * s-os_lib.adb: Likewise.
2737         * s-regexp.adb: Likewise.
2738         * s-regpat.adb: Likewise.
2739         * s-string.adb: Likewise.
2740         * s-tasloc.adb: Likewise.
2741         * s-utf_32.adb: Likewise.
2742         * s-wchcon.adb: Likewise.
2743         * sem_aux.adb: Likewise.
2744
2745 2012-04-02  Robert Dewar  <dewar@adacore.com>
2746
2747         * s-atopri.ads: Minor reformatting.
2748
2749 2012-04-02  Thomas Quinot  <quinot@adacore.com>
2750
2751         * sem_util.adb: Minor reformatting, minor code cleanup.
2752
2753 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
2754
2755         * lib-xref.adb (Generate_Reference): For a reference to an
2756         operator symbol, set the sloc to point to the first character
2757         of the operator name, and not to the initial quaote.
2758         (Output_References): Ditto for the definition of an operator
2759         symbol.
2760
2761 2012-04-02  Vincent Celier  <celier@adacore.com>
2762
2763         * ali.adb (Scan_Ali): Recognize Z lines. Set
2764         Implicit_With_From_Instantiation to True in the With_Record for
2765         Z lines.
2766         * ali.ads (With_Record): New Boolean component
2767         Implicit_With_From_Instantiation, defaulted to False.
2768         * csinfo.adb: Indicate that Implicit_With_From_Instantiation
2769         is special
2770         * lib-writ.adb (Write_ALI): New array Implicit_With.
2771         (Collect_Withs): Set Implicit_With for the unit is it is not Yes.
2772         (Write_With_Lines): Write a Z line instead of a W line if
2773         Implicit_With is Yes for the unit.
2774         * sem_ch12.adb (Inherit_Context): Only add a unit in the context
2775         if it is not there yet.
2776         * sinfo.ads: New flag Implicit_With_From_Instantiation (Flag12)
2777         added.
2778
2779 2012-04-02  Yannick Moy  <moy@adacore.com>
2780
2781         * osint.adb, osint.ads (Add_Default_Search_Dirs): Add library
2782         search dirs in file specified with option -gnateO.
2783
2784 2012-04-02  Robert Dewar  <dewar@adacore.com>
2785
2786         * sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb: Minor
2787         reformatting.
2788
2789 2012-04-02  Olivier Hainque  <hainque@adacore.com>
2790
2791         * g-sse.ads: Add x86-solaris and x86_64-darwin to the set of
2792         platforms where the use of this spec is supported. Add current
2793         year to the copyright notice.
2794         * gcc-interfaces/Makefile.in: Add g-sse.o and g-ssvety.o to
2795         EXTRA_GNATRTL_NONTASKING_OBJS on x86 32/64 targets that support
2796         it and where they were missing (x86-solaris, x86-freebsd,
2797         x86_64-freebsd, and x86-darwin).
2798
2799 2012-04-02  Gary Dismukes  <dismukes@adacore.com>
2800
2801         * bindgen.adb (Gen_Ada_Init): When compiling for the AAMP small
2802         library, where we no longer suppress the Standard_Library,
2803         generate an empty body rather than the usual generation of
2804         assignments to imported globals, since those aren't present in
2805         the small library.
2806
2807 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
2808
2809         * sinfo.ads: Minor documentation fix.
2810
2811 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
2812
2813         * sem_res.adb (Resolve_Conditional_Expression): Add local variables
2814         Else_Typ and Then_Typ. Add missing type conversions to the "then" and
2815         "else" expressions when their respective types are scalar.
2816
2817 2012-04-02  Vincent Pucci  <pucci@adacore.com>
2818
2819         * exp_ch9.adb: Reordering of the local subprograms. New Table
2820         for the lock free implementation that maps each protected
2821         subprograms with the protected component it references.
2822         (Allow_Lock_Free_Implementation): New routine. Check if
2823         the protected body enables the lock free implementation.
2824         (Build_Lock_Free_Protected_Subprogram_Body): New routine.
2825         (Build_Lock_Free_Unprotected_Subprogram_Body): New routine.
2826         (Comp_Of): New routine.
2827         * Makefile.rtl: Add s-atopri.o
2828         * debug.adb: New compiler debug flag -gnatd9 for lock free
2829         implementation.
2830         * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
2831         RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
2832         RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
2833         RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, RE_Uint8,
2834         RE_Uint16, RE_Uint32, RE_Uint64 added.
2835         * s-atropi.ads: New file. Defines atomic primitives used
2836         by the lock free implementation.
2837
2838 2012-04-02  Emmanuel Briot  <briot@adacore.com>
2839
2840         * g-expect.adb (Expect_Internal): Fix leak of the input file descriptor.
2841
2842 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
2843
2844         * exp_ch4.adb (Expand_N_Quantified_Expression): Reimplemented.
2845         The expansion no longer uses the copy of the original QE created
2846         during analysis.
2847         * sem.adb (Analyze): Add processing for loop parameter specifications.
2848         * sem_ch4.adb (Analyze_Quantified_Expression): Reimplemented. The
2849         routine no longer creates a copy of the original QE. All
2850         constituents of a QE are now preanalyzed and resolved.
2851         * sem_ch5.adb (Analyze_Iteration_Scheme): Remove the guard which
2852         bypasses all processing when the iteration scheme is related to a
2853         QE. Relovate the code which analyzes loop parameter specifications
2854         to a separate routine.  (Analyze_Iterator_Specification):
2855         Preanalyze the iterator name. This action was originally
2856         done in Analyze_Iteration_Scheme. Update the check which
2857         detects an iterator specification in the context of a QE.
2858         (Analyze_Loop_Parameter_Specification): New routine. This
2859         procedure allows for a stand-alone analysis of a loop parameter
2860         specification without the need of a parent iteration scheme. Add
2861         code to update the type of the loop variable when the range
2862         generates an itype and the context is a QE.
2863         (Pre_Analyze_Range): Renamed to Preanalyze_Range. Update all references
2864         to the routine.
2865         * sem_ch5.ads: Code reformatting.
2866         (Analyze_Loop_Parameter_Specification): New routine.
2867         * sem_ch6.adb (Fully_Conformant_Expressions): Detect a case
2868         when establishing conformance between two QEs utilizing different
2869         specifications.
2870         * sem_res.adb (Proper_Current_Scope): New routine.
2871         (Resolve): Do not resolve a QE as there is nothing to be done now.
2872         Ignore any loop scopes generated for QEs when detecting an expression
2873         function as the scopes are cosmetic and do not appear in the tree.
2874         (Resolve_Quantified_Expression): Removed. All resolution of
2875         QE constituents is now performed during analysis. This ensures
2876         that loop variables appearing in array aggregates are properly
2877         resolved.
2878
2879 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
2880
2881         * sem_util.adb (Build_Default_Subtype): If the base type is
2882         private and its full view is available, use the full view in
2883         the subtype declaration.
2884
2885 2012-04-02  Jose Ruiz  <ruiz@adacore.com>
2886
2887         * gnat_ugn.texi: Add some minimal documentation about how to
2888         use GNATtest for cross platforms.
2889
2890 2012-04-02  Vincent Celier  <celier@adacore.com>
2891
2892         * opt.ads (Object_Path_File_Name): New variable.
2893         * prj-attr.adb: New Compiler attribute Object_Path_Switches.
2894         * prj-nmsc.adb (Process_Compiler): Recognize new attribute
2895         Object_Path_Switches.
2896         * snames.ads-tmpl: New standard name Object_Path_Switches.
2897         * switch-c.adb (Scan_Front_End_Switches): Recognize new switch
2898         -gnateO= and put its value in Opt.Object_Path_File_Name.
2899
2900 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
2901
2902         * exp_ch7.adb (Process_Declarations): Detect a case where
2903         a source object was initialized by another source object,
2904         but the expression was rewritten as a class-wide conversion
2905         of Ada.Tags.Displace.
2906         * exp_util.adb (Initialized_By_Ctrl_Function): Removed.
2907         (Is_Controlled_Function_Call): New routine.
2908         (Is_Displacement_Of_Ctrl_Function_Result): Removed.
2909         (Is_Displacement_Of_Object_Or_Function_Result): New routine.
2910         (Is_Source_Object): New routine.
2911         (Requires_Cleanup_Actions): Detect a case where a source object was
2912         initialized by another source object, but the expression was rewritten
2913         as a class-wide conversion of Ada.Tags.Displace.
2914         * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed.
2915         (Is_Displacement_Of_Object_Or_Function_Result): New routine.
2916
2917 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
2918
2919         * sem_res.adb (Resolve_Call): A call to an expression function
2920         does not freeze if it appears in a different scope from the
2921         expression function itself. Such calls appear in the generated
2922         bodies of other expression functions, or in pre/postconditions
2923         of subsequent subprograms.
2924
2925 2012-04-02  Yannick Moy  <moy@adacore.com>
2926
2927         * lib-xref-alfa.adb: Code clean up.
2928
2929 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
2930
2931         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Do not suppress
2932         style checks, because the subprogram instance itself may contain
2933         violations of syle rules.
2934         * style.adb (Missing_Overriding): Check for missing overriding
2935         indicator on a subprogram instance.
2936
2937 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
2938
2939         * sem_ch6.adb (Last_Implicit_Declaration): New routine.
2940         (Process_PPCs): Insert the body of _postconditions after the
2941         last internally generated declaration. This ensures that actual
2942         subtypes created for formal parameters are visible and properly
2943         frozen as _postconditions may reference them.
2944
2945 2012-04-02  Robert Dewar  <dewar@adacore.com>
2946
2947         * einfo.adb (First_Component_Or_Discriminant) Now applies to
2948         all types with discriminants, not just records.
2949         * exp_attr.adb (Expand_N_Attribute): Add Scalar_Values handling
2950         for arrays, scalars and non-variant records.
2951         * sem_attr.adb (Analyze_Attribute): Handle Valid_Scalars
2952         * sem_attr.ads (Valid_Scalars): Update description
2953         * sem_util.ads, sem_util.adb (No_Scalar_Parts): New function.
2954
2955 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2956
2957         Revert
2958         2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
2959
2960         * gcc-interface/decl.c (SS_MARK_NAME): New define.
2961         (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
2962         whose name is SS_MARK_NAME.
2963
2964 2012-03-30  Robert Dewar  <dewar@adacore.com>
2965
2966         * exp_ch5.adb, sem_util.adb, exp_ch4.adb: Minor comment updates.
2967
2968 2012-03-30  Yannick Moy  <moy@adacore.com>
2969
2970         * lib-xref-alfa.adb (Add_Alfa_File): Treat possibly 2 units at the same
2971         time, putting all scopes in the same Alfa file.
2972         (Add_Alfa_Xrefs): Correct errors in comparison function. Correct value
2973         of Def component.
2974         (Collect_Alfa): Possibly pass 2 units to Add_Alfa_File.
2975
2976 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
2977
2978         * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Handle a case where
2979         a build-in-place call appears as Prefix'Reference'Reference.
2980
2981 2012-03-30  Yannick Moy  <moy@adacore.com>
2982
2983         * lib-xref-alfa.adb: Minor refactoring to remove internal package.
2984
2985 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
2986
2987         * sem_ch5.adb (Analyze_Iteration_Scheme): Preanalyze the subtype
2988         definition of a loop when the context is a quantified expression.
2989
2990 2012-03-30  Vincent Celier  <celier@adacore.com>
2991
2992         * prj.ads: Minor comment update.
2993
2994 2012-03-30  Yannick Moy  <moy@adacore.com>
2995
2996         * lib-xref-alfa.adb, alloc.ads, lib-xref.ads: Minor addition of
2997         comments and refactoring.
2998
2999 2012-03-30  Robert Dewar  <dewar@adacore.com>
3000
3001         * lib-xref.adb, lib-xref-alfa.adb: Minor reformatting & code
3002         reorganization.
3003
3004 2012-03-30  Yannick Moy  <moy@adacore.com>
3005
3006         * lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit
3007         instead of Get_Source_Unit to get file for reference.
3008         (Traverse_Compilation_Unit): Do not add scopes for generic units.
3009         * lib-xref.adb (Generate_Reference): Use Get_Code_Unit instead
3010         of Get_Source_Unit to get file for reference.
3011         * sem_ch12.adb (Analyze_Package_Instantiation): Enable
3012         instantiation in Alfa mode.
3013
3014 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
3015
3016         * exp_ch7.adb (Process_Declarations): Replace
3017         the call to Is_Null_Access_BIP_Func_Call with
3018         Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
3019         * exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed.
3020         (Is_Secondary_Stack_BIP_Func_Call): New routine.
3021         (Requires_Cleanup_Actions): Replace
3022         the call to Is_Null_Access_BIP_Func_Call with
3023         Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
3024         * exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed.
3025         (Is_Secondary_Stack_BIP_Func_Call): New routine.
3026
3027 2012-03-30  Yannick Moy  <moy@adacore.com>
3028
3029         * lib-xref-alfa.adb, lib-xref.adb: Code clean ups.
3030
3031 2012-03-30  Gary Dismukes  <dismukes@adacore.com>
3032
3033         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a
3034         loop entity which is rewritten as a renaming
3035         of the indexed array, explicitly mark the entity as needing
3036         debug info so that Materialize entity will be set later by
3037         Debug_Renaming_Declaration when the renaming is expanded.
3038
3039 2012-03-30  Robert Dewar  <dewar@adacore.com>
3040
3041         * sem_attr.ads: Update comment.
3042
3043 2012-03-30  Vincent Celier  <celier@adacore.com>
3044
3045         * prj.ads: New Dependency_Kind: ALI_Closure.
3046
3047 2012-03-30  Thomas Quinot  <quinot@adacore.com>
3048
3049         * exp_pakd.adb: Minor reformatting.
3050
3051 2012-03-30  Yannick Moy  <moy@adacore.com>
3052
3053         * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence
3054         of compilation unit for unit in Sdep_Table.
3055
3056 2012-03-30  Thomas Quinot  <quinot@adacore.com>
3057
3058         * freeze.adb (Freeze_Record_Type): For a type with reversed bit
3059         order and reversed storage order, disable front-end relayout.
3060
3061 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
3062
3063         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Copy
3064         the TYPE_PACKED flag from the base type.
3065
3066 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
3067
3068         * gcc-interface/decl.c (SS_MARK_NAME): New define.
3069         (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
3070         whose name is SS_MARK_NAME.
3071
3072 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
3073
3074         * gcc-interface/utils.c (add_parallel_type): Take a TYPE instead of a
3075         DECL and adjust.  Move around.
3076         (has_parallel_type): New predicate.
3077         (rest_of_record_type_compilation): Return early if the type already
3078         has a parallel type.
3079         * gcc-interface/gigi.h (add_parallel_type): Adjust.
3080         * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes.
3081
3082 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
3083
3084         * gcc-interface/utils.c (finish_record_type): Return early for padded
3085         types and tidy up.
3086
3087 2012-03-20  Arnaud Charlet  <charlet@adacore.com>
3088
3089         * hlo.ads, hlo.adb: Removed, no longer used.
3090         * gcc-interface/Make-lang.in: Remove hlo.o. Update dependencies.
3091         * gcc-interface/Makefile.in: Remove EXTRA_LIBGNAT_SRCS (temporarly)
3092         and compute it from EXTRA_LIBGNAT_OBJS.
3093         Clean up comments, reorder LIBGNAT_SRCS and LIBGNAT_OBJS.
3094
3095 2012-03-20  Yannick Moy  <moy@adacore.com>
3096
3097         * gnat_rm.texi, sem_attr.ads: Update documentation.
3098
3099 2012-03-19  Yannick Moy  <moy@adacore.com>
3100
3101         * sem_ch6.adb: Minor code clean up.
3102
3103 2012-03-19  Vincent Celier  <celier@adacore.com>
3104
3105         * make.adb (Scan_Make_Arg): Make sure all significant -m switches
3106         on the command line are counted.
3107
3108 2012-03-19  Robert Dewar  <dewar@adacore.com>
3109
3110         * sem_elab.adb (Generate_Elab_Warnings): Fix spec, fix attribute
3111         reference case
3112
3113 2012-03-19  Robert Dewar  <dewar@adacore.com>
3114
3115         * par-ch4.adb (Check_Bad_Exp): New procedure
3116
3117 2012-03-19  Robert Dewar  <dewar@adacore.com>
3118
3119         * exp_attr.adb, sem_attr.adb, sem_attr.ads, snames.ads-tmpl: Add
3120         initial framework for Valid_Scalars attribute.
3121
3122 2012-03-19  Robert Dewar  <dewar@adacore.com>
3123
3124         * scng.adb (Scan): Recognize incorrect preprocessor directive
3125
3126 2012-03-19  Robert Dewar  <dewar@adacore.com>
3127
3128         * atree.adb (Allocate_Initialize_Node): Use Num_Extension_Nodes
3129         * atree.ads (Num_Extension_Nodes): New variable
3130         * debug.adb: New debug flag -gnatd.N
3131         * gnat1drv.adb (Adjust_Global_Switches): Adjust
3132         Num_Extension_Nodes if -gnatd.N set
3133
3134 2012-03-19  Eric Botcazou  <ebotcazou@adacore.com>
3135
3136         * einfo.ads: Minor update to First_Rep_Item and Has_Gigi_Rep_Item
3137         descriptions.
3138
3139 2012-03-19  Robert Dewar  <dewar@adacore.com>
3140
3141         * opt.ads: Remove HLO_Active flag.
3142         * sem.adb: Remove call of high level optimizer.
3143         * sem.ads (New_Nodes_OK): Removed.
3144         * sem_ch10.adb: Remove references to New_Nodes_OK.
3145         * switch-c.adb: Remove handling of -gnatH switch.
3146
3147 2012-03-19  Yannick Moy  <moy@adacore.com>
3148
3149         * sem_ch6.adb (Check_Subprogram_Contract): Do not emit warnings
3150         on trivially True or False postconditions and Ensures components
3151         of contract-cases.
3152
3153 2012-03-19  Robert Dewar  <dewar@adacore.com>
3154
3155         * gnat_ugn.texi: Fix index entry for -gnatei (now we have
3156         ug_words entry).
3157
3158 2012-03-19  Hristian Kirtchev  <kirtchev@adacore.com>
3159
3160         * sem_ch3.adb (Get_Discriminant_Value): Instead of looking
3161         at the immediate correcponsing discriminant, traverse a
3162         potential chain of discriminants produced by type derivations.
3163         (Root_Corresponding_Discriminant): Traverse a chain of inherited
3164         discriminants and return the topmost discriminant.
3165
3166 2012-03-19  Bob Duff  <duff@adacore.com>
3167
3168         * debug.adb: Minor comment change.
3169         * gnat_ugn.texi: Update documentation for elaboration regarding
3170         indirect calls.
3171
3172 2012-03-19  Gary Dismukes  <dismukes@adacore.com>
3173
3174         * exp_ch3.adb (Expand_N_Object_Declaration): In
3175         the case of an object of a class-wide interface type, where the
3176         declaration is rewritten as a renaming, call Set_Debug_Info_Needed
3177         on the renaming entity so that Materialize_Entity will be
3178         set. Also, change existing call (for other than interface cases)
3179         to call Set_Debug_Info_Needed rather than Set_Needs_Debug_Info
3180         (as specified for that flag).
3181
3182 2012-03-19  Hristian Kirtchev  <kirtchev@adacore.com>
3183
3184         * sem_ch4.adb (Analyze_Allocator): Detect an allocator generated
3185         by the build-in-place machinery where the designated type is
3186         indefinite, but the underlying type is not. Do not emit errors
3187         related to missing initialization in this case.
3188
3189 2012-03-19  Robert Dewar  <dewar@adacore.com>
3190
3191         * gnat_ugn.texi: Add documentation for -gnateinnn switch.
3192         * sem_elab.adb, put_alfa.adb, lib-xref-alfa.adb: Minor reformatting.
3193         * sem_prag.adb: Minor comment update.
3194
3195 2012-03-15  Robert Dewar  <dewar@adacore.com>
3196
3197         * errout.ads: Add entry for translating -gnateinn to
3198         /MAX_INSTANTIATIONS for VMS.
3199         * hostparm.ads (Max_Instantiations): Moved to Opt.
3200         * opt.ads (Maximum_Instantiations): Moved from Hostparm, and renamed.
3201         * sem_ch12.adb (Maximum_Instantiations): New name of
3202         Max_Instantiations (Analyze_Package_Instantiation): Change error
3203         msg for too many instantiations (mention -gnateinn switch).
3204         * switch-c.adb (Scan_Front_End_Switches): Implement -gnateinn switch.
3205         * switch.ads: Minor comment update.
3206         * usage.adb (Usage): Output line for -maxeinn switch.
3207         * vms_data.ads: Add entry for MAX_INSTANTIATIONS (-gnateinn).
3208
3209 2012-03-15  Yannick Moy  <moy@adacore.com>
3210
3211         * alfa.ads Update the decription of ALI sections.
3212         (Alfa_File_Record): Add a component Unit_File_Name to store the
3213         unit file name for subunits.
3214         * get_alfa.adb, put_alfa.adb Adapt to the possible presence of
3215         a unit file name.
3216         * lib-xref-alfa.adb (Add_Alfa_File): For subunits, retrieve the
3217         file name of the unit.
3218
3219 2012-03-15  Yannick Moy  <moy@adacore.com>
3220
3221         * sem_ch6.adb (Check_Subprogram_Contract): Do
3222         not issue warning on missing 'Result in postcondition if all
3223         postconditions and contract-cases already get a warning for only
3224         referring to pre-state.
3225
3226 2012-03-15  Bob Duff  <duff@adacore.com>
3227
3228         * debug.adb: Add new debug switch -gnatd.U, which disables the
3229         support added below, in case someone trips over a cycle, and needs
3230         to disable this.
3231         * sem_attr.adb (Analyze_Access_Attribute):
3232         Treat Subp'Access as a call for elaboration purposes.
3233         * sem_elab.ads, sem_elab.adb (Check_Elab_Call): Add support
3234         for Subp'Access.
3235
3236 2012-03-15  Vincent Pucci  <pucci@adacore.com>
3237
3238         * sem.ads, sem.adb (Preanalyze): New routine.
3239         * sem_ch4.adb (Analyze_Quantified_Expression): Call to the
3240         Preanalyze routine in Sem added.  Renaming of Needs_Expansion
3241         into Need_Preanalysis.
3242         * sem_ch6.adb (Preanalyze): Removed.
3243
3244 2012-03-15  Robert Dewar  <dewar@adacore.com>
3245
3246         * sem_ch4.adb (Analyze_Quantified_Expression): Add comment.
3247         * sem_prag.adb: Minor comment additions.
3248         * sem_attr.adb (Check_First_Last_Valid): Make sure prefix type
3249         is frozen.
3250
3251 2012-03-15  Vincent Pucci  <pucci@adacore.com>
3252
3253         * sem_ch4.adb (Analyze_Quantified_Expression):
3254         Preanalyze the condition when the quantified expression will be
3255         further expanded.
3256
3257 2012-03-15  Yannick Moy  <moy@adacore.com>
3258
3259         * sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, sem_ch6.adb,
3260         sem_warn.adb: Minor refactoring, renaming Case_Pragma in CTC_Pragma,
3261         to refer to both Test_Case pragma and Contract_Case pragma (same
3262         acronym as in Spec_CTC_List).
3263
3264 2012-03-15  Robert Dewar  <dewar@adacore.com>
3265
3266         * sem_prag.adb, sem_prag.ads, sem_util.ads, sem_attr.adb, sem_ch6.adb,
3267         sem_warn.adb: Minor reformatting.
3268
3269 2012-03-15  Hristian Kirtchev  <kirtchev@adacore.com>
3270
3271         * exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over
3272         selector names as the function call always appears at the top selected
3273         component.
3274
3275 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
3276
3277         * sem_ch12.adb (Validate_Access_Subprogram_Instance): keep
3278         Mode_Conformance check for older versions of the language.
3279
3280 2012-03-15  Yannick Moy  <moy@adacore.com>
3281
3282         * gnat_ugn.texi Document the extension of option -gnatw.t.
3283         * sem_ch3.adb (Analyze_Declaration): Check for suspicious
3284         contracts only after contract cases have been semantically
3285         analyzed.
3286         * sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures
3287         components of contract cases for detecting suspicious contracts.
3288
3289 2012-03-15  Yannick Moy  <moy@adacore.com>
3290
3291         * aspects.adb, aspects.ads (Aspect_Id): New GNAT aspect
3292         Aspect_Contract_Case.
3293         * gnat_rm.texi Document the new pragma/aspect
3294         Contract_Case. Correct the documentation of the existing
3295         pragma/aspect Test_Case with the new semantics.
3296         * sem_attr.adb (Analyze_Attribute): Allow use of 'Result in the
3297         Ensures component of a Contract_Case pragma.
3298         * sem_ch13.adb (Analyze_Aspect_Specifications): Check new aspect
3299         and translate it into a pragma.
3300         (Check_Aspect_At_Freeze_Point): Take into account the new aspect.
3301         * sem_ch3.adb, sinfo.adb, sinfo.ads Renaming of TC (for test case)
3302         into CTC (for contract and test case).
3303         * sem_ch6.adb (Process_PPCs): Generate Check pragmas from
3304         Contract_Case pragmas, similarly to what is done already for
3305         postconditions.
3306         * sem_prag.adb, sem_prag.ads (Check_Contract_Or_Test_Case):
3307         Renaming of Check_Test_Case.
3308         (Analyze_Pragma, Sig_Flags): Take into account the new pragma.
3309         * sem_util.adb, sem_util.ads Renaming to take into account the
3310         new pragma, so that functions which applied only to Test_Case
3311         now apply to both Test_Case and Contract_Case.
3312         * par-prag.adb, sem_warn.adb, snames.ads-tmpl Take into account
3313         the new pragma.
3314
3315 2012-03-15  Robert Dewar  <dewar@adacore.com>
3316
3317         * sem_ch6.ads: Minor comment updates.
3318         * sem_ch12.adb: Minor comment clarification.
3319
3320 2012-03-15  Robert Dewar  <dewar@adacore.com>
3321
3322         * sem_ch5.adb: Minor reformatting.
3323
3324 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
3325
3326         * exp_ch3.adb (Expand_N_Object_Declaration): When rewriting the
3327         declaration of a class-wide object, retain the Ekind to prevent
3328         subsequent misuse of constants.
3329
3330 2012-03-15  Yannick Moy  <moy@adacore.com>
3331
3332         * gnat_rm.texi, gnat_ugn.texi: Minor correction of invariant
3333         terminology.
3334
3335 2012-03-15  Hristian Kirtchev  <kirtchev@adacore.com>
3336
3337         * exp_util.adb (Initialized_By_Ctrl_Function): Add code to
3338         process the case when a function call appears in object.operation
3339         format.
3340
3341 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
3342
3343         * sem_ch6.ads, sem_ch6.adb (Check_Subtype_Conformant): add
3344         Get_Inst formal, so that conformance within an instantiation
3345         follows renamings of formals. This is similar to what is already
3346         done in Check_Mode_conformant.
3347         * sem_ch12.adb (Vailidate_Access_Subprogram_Instance): check that
3348         formal and actual are subtype conformant. Previously only mode
3349         conformance was required.
3350
3351 2012-03-15  Robert Dewar  <dewar@adacore.com>
3352
3353         * par-ch6.adb, einfo.ads, sem_eval.adb, sem_eval.ads,
3354         sem_case.adb: Minor reformatting.
3355
3356 2012-03-15  Robert Dewar  <dewar@adacore.com>
3357
3358         * exp_attr.adb (Expand_N_Attribute_Reference): Add handling
3359         of First_Valid/Last_Valid.
3360         * sem_attr.adb (Check_First_Last_Valid): New procedure
3361         (Analyze_Attribute): Add handling of First_Valid and Last_Valid
3362         (Eval_Attribute): ditto.
3363         * snames.ads-tmpl: Add entries for First_Valid and Last_Valid.
3364
3365 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
3366
3367         * exp_ch5.adb (Expand_Predicated_Loop): Suppress warnings on
3368         loop variable, for the unusual case where the range has a single
3369         element and the loop variable has no visible assignment to it.
3370
3371 2012-03-15  Vincent Pucci  <pucci@adacore.com>
3372
3373         * exp_ch4.adb (Expand_N_Quantified_Expression): Expand the
3374         original quantified expression node.
3375         * sem_ch4.adb (Analyze_Quantified_Expression): Properly analyze
3376         the quantified expression and preserve the original non-analyzed
3377         quantified expression when an expansion is needed.
3378         * sem_ch5.adb (Analyze_Iteration_Scheme): Special treatment
3379         for quantified expressions.
3380         (Analyze_Iterator_Specification): Special treatment for quantified
3381         expressions.
3382
3383 2012-03-15  Ed Falis  <falis@adacore.com>
3384
3385         * s-vxwork-ppc.ads: Update FP_CONTEXT so name of former pad
3386         field matches VxWorks headers.
3387
3388 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3389
3390         * gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
3391
3392         * a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
3393         s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
3394         s-osinte-irix.ads, s-proinf-irix-athread.adb,
3395         s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
3396         system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
3397         Remove.
3398
3399         * adaint.c [__mips && __sgi]: Remove.
3400         (__gnat_number_of_cpus) [__mips && __sgi]: Remove.
3401         [IS_CROSS && !(__mips && __sgi)]: Remove.
3402         * adaint.h [sgi && _LFAPI]: Remove.
3403         * cstreams.c (__gnat_full_name) [sgi]: Remove.
3404         * env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
3405         (__gnat_clearenv) [__mips && __sgi]: Remove.
3406         * errno.c (_SGI_MP_SOURCE): Remove.
3407         * gsocket.h [sgi]: Remove.
3408         * init.c: Remove IRIX reference.
3409         [sgi]: Remove.
3410         * link.c [sgi]: Remove.
3411         * s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
3412         (main) [__mips && __sgi] (MAX_tv_sec): Don't define.
3413         (CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
3414         * sysdep.c [sgi]: Remove.
3415         (getc_immediate_common) [sgi]: Remove.
3416         (__gnat_localtime_tzoff) [sgi]: Remove.
3417         * terminals.c [__mips && __sgi] (IRIX): Don't define.
3418         [IRIX] (USE_GETPTY): Don't define.
3419         (allocate_pty_desc) [USE_GETPTY]: Remove.
3420
3421         * g-traceb.ads: Remove IRIX reference.
3422         * g-trasym.ads: Likewise.
3423         * memtrack.adb: Likewise.
3424         * s-interr-sigaction.adb: Likewise.
3425
3426         * gnat_rm.texi (Implementation Advice): Remove SGI info.
3427         (Implementation Defined Characteristics): Likewise.
3428         * gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
3429         Remove.
3430         (Irix-Specific Considerations): Remove.
3431
3432 2012-03-13  Tristan Gingold  <gingold@adacore.com>
3433
3434         * gcc-interface/gigi.h (flag_vms_malloc64): Refine condition.
3435
3436 2012-03-13  Tristan Gingold  <gingold@adacore.com>
3437
3438         * sysdep.c: Adjust condition after removal of __osf__.
3439
3440 2012-03-12  Eric Botcazou  <ebotcazou@adacore.com>
3441
3442         * gcc-interface/gigi.h (shift_unc_components_for_thin_pointers): Kill.
3443         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove call
3444         to above function.
3445         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Adjust
3446         handling of thin pointers.
3447         <Attr_Descriptor_Size>: Likewise.
3448         (gnat_to_gnu) <N_Free_Statement>: Likewise.
3449         * gcc-interface/utils.c (shift_unc_components_for_thin_pointers): Kill.
3450         (convert_to_fat_pointer): Adjust handling of thin pointers.
3451         (convert) <POINTER_TYPE>: Likewise.
3452         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.
3453
3454 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3455
3456         * gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
3457         * a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
3458         s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
3459         s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
3460         system-tru64.ads: Remove.
3461
3462         * adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
3463         Remove.
3464         [IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
3465         * env.c [__alpha__ && __osf__]: Remove.
3466         * gsocket.h (_OSF_SOURCE): Remove.
3467         (HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
3468         * init.c [__alpha__ && __osf__]: Remove.
3469         * link.c [__osf__]: Remove.
3470         * s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
3471         [__osf__ && !_SS_MAXSIZE]: Remove.
3472         * sysdep.c [__osf__]: Remove.
3473         * terminals.c [__alpha__ && __osf__]: Remove.
3474         [OSF1]: Remove.
3475
3476         * g-traceb.ads: Remove Tru64 reference.
3477         * g-trasym.ads: Likewise.
3478         * gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
3479         (Summary of Run-Time Configurations): Likewise.
3480         * memtrack.adb: Likewise.
3481
3482 2012-03-12  Tristan Gingold  <gingold@adacore.com>
3483
3484         * gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64
3485         instead of TARGET_MALLOC64.
3486         * gcc-interface/gigi.h (flag_vms_malloc64): Define instead
3487         of TARGET_MALLOC64.
3488
3489 2012-03-09  Robert Dewar  <dewar@adacore.com>
3490
3491         * a-direct.adb, comperr.adb, freeze.adb: Minor reformatting.
3492
3493 2012-03-09  Arnaud Charlet  <charlet@adacore.com>
3494
3495         * s-taskin.adb (Initialize_ATCB): Set Task_Image_Len to
3496         0 so that we never access this field uninitialized (e.g. in
3497         Task_Primitives.Operations.Enter_Task for the environment task).
3498
3499 2012-03-09  Vincent Pucci  <pucci@adacore.com>
3500
3501         * exp_ch5.adb (Expand_Iterator_Loop):
3502         Call to Expand_Iterator_Loop_Over_Array added.
3503         (Expand_Iterator_Loop_Over_Array): New routine. Expansion of
3504         "of" iterator loop over arrays. Multidimensional array case added.
3505
3506 2012-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3507
3508         * uintp.ads: Fix minor pasto in comment.
3509
3510 2012-03-09  Vasiliy Fofanov  <fofanov@adacore.com>
3511
3512         * a-direct.adb: Do not strip the trailing directory separator
3513         from path, as this is already done inside Normalize_Pathname;
3514         doing it again produces the wrong result on Windows for the
3515         drive's root dir (i.e. "X:\" becomes "X:").
3516
3517 2012-03-09  Thomas Quinot  <quinot@adacore.com>
3518
3519         * exp_attr.adb, freeze.adb, sem_attr.adb, aspects.adb, aspects.ads,
3520         sem_ch13.adb, snames.ads-tmpl (Exp_Attr.Expand_N_Attribute_Reference):
3521         Add Attribute_Scalar_Storage_Order.
3522         (Sem_Attr.Analyze_Attribute, Eval_Attribute): Ditto.
3523         (Aspects): Add Aspect_Scalar_Storage_Order (Snames): Add
3524         Name_Scalar_Storage_Order and Attribute_Scalar_Storage_Order.
3525         (Sem_Ch13.Analyze_Attribute_Definition_Clause): Add processing
3526         for Scalar_Storage_Order.
3527         (Freeze): If Scalar_Storage_Order is specified, check that it
3528         is compatible with Bit_Order.
3529
3530 2012-03-09  Robert Dewar  <dewar@adacore.com>
3531
3532         * s-osinte-linux.ads, sem_util.adb, s-taprop-linux.adb, exp_ch4.adb,
3533         a-strsup.ads, sem_ch6.adb, a-stwisu.ads, exp_ch3.adb,
3534         a-stzsup.ads: Minor reformatting.
3535
3536 2012-03-09  Thomas Quinot  <quinot@adacore.com>
3537
3538         * s-ransee-vms.adb: Minor reformatting.
3539
3540 2012-03-09  Arnaud Charlet  <charlet@adacore.com>
3541
3542         * comperr.adb (Delete_SCIL_Files): Fix handling of
3543         N_Package_Renaming_Declaration and N_Generic_Package_Declaration.
3544
3545 2012-03-09  Javier Miranda  <miranda@adacore.com>
3546
3547         * sem_ch6.adb (Check_Body_To_Inline): In AAMP and VM targets
3548         use frontend inlining at all optimization levels.
3549         * sem_util.adb (Must_Inline): In AAMP and VM targets, given that
3550         there is no inlining support in the backend, use also frontend
3551         inlining when compiling with optimizations enabled.
3552         * exp_ch6.adb (Expand_Call): Minor code reorganization.
3553
3554 2012-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3555
3556         * gcc-interface/ada-tree.h (TYPE_VAX_FLOATING_POINT_P): Move around.
3557         (TYPE_UNCONSTRAINED_ARRAY): Adjust comment.
3558         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Tidy
3559         up.  Add comment and use canonical predicate for thin pointers.
3560         (gnat_to_gnu) <N_Free_Statement>: Tidy up and reorder.  Add comment
3561         and use canonical predicate for thin pointers.
3562         * gcc-interface/utils.c (convert_to_fat_pointer): Remove superfluous
3563         'else' and use standard name.
3564         (convert_to_thin_pointer): Delete.
3565         (convert) <POINTER_TYPE>: Do the difference in sizetype directly and
3566         change obsolete idioms.  Do not call above function.
3567         (unchecked_convert): Fix formatting.
3568         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: In the thin
3569         pointer case, use byte_position to get the field position.
3570
3571 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
3572
3573         * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the
3574         DECL node built for a type which has a non-trivial equivalent type.
3575
3576 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
3577
3578         * gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete.
3579         * gcc-interface/decl.c (defer_finalize_level): Likewise.
3580         (defer_finalize_list): Likewise.
3581         (gnat_to_gnu_entity): Delete references to above variables and do not
3582         call rest_of_type_decl_compilation.
3583         (rest_of_type_decl_compilation): Delete.
3584         (rest_of_type_decl_compilation_no_defer): Likewise.
3585         * gcc-interface/utils.c (rest_of_record_type_compilation): Do not call
3586         rest_of_type_decl_compilation.
3587         (create_type_decl): Likewise.
3588         (update_pointer_to): Likewise.
3589
3590 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
3591
3592         * gcc-interface/trans.c (Identifier_to_gnu): Don't unshare initializer.
3593         (add_decl_expr): Mark external DECLs as used.
3594         * gcc-interface/utils.c (convert) <CONSTRUCTOR>: Copy the vector.
3595
3596 2012-03-07  Tristan Gingold  <gingold@adacore.com>
3597
3598         * s-ransee-vms.adb: New file.
3599         * gcc-interface/Makefile.in: Use s-ransee-vms.adb on VMS.
3600         * gcc-interface/Make-lang.in: Update dependencies.
3601
3602 2012-03-07  Bob Duff  <duff@adacore.com>
3603
3604         * rtsfind.ads: Add support for finding Super_String types.
3605         * sem_util.ads, sem_util.adb (Is_Bounded_String): New function
3606         to determine whether a given type is a bounded string type.
3607         (Is_Fully_Initialized_Type): Return True for bounded
3608         string types, to suppress bogus warnings.
3609         * exp_ch4.adb (Expand_Composite_Equality): Special case for bounded
3610         strings: equality composes. This allows us to remove default values in
3611         super strings.
3612         * a-strsup.ads, a-stwisu.ads, a-stzsup.ads: Update comments.
3613         * exp_ch3.adb (Expand_Freeze_Record_Type): Comment.
3614
3615 2012-03-07  Robert Dewar  <dewar@adacore.com>
3616
3617         * sem_util.adb, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb: Minor
3618         reformatting.
3619
3620 2012-03-07  Sergey Rybin  <rybin@adacore.com frybin>
3621
3622         * gnat_ugn.texi: gnatpp: fix paragraph about sources with
3623         preprocessor directives.
3624
3625 2012-03-07  Arnaud Charlet  <charlet@adacore.com>
3626
3627         * s-osinte-linux.ads, s-taprop-linux.adb (prctl): New function.
3628         (Enter_Task): Call prctl when relevant.
3629
3630 2012-03-07  Tristan Gingold  <gingold@adacore.com>
3631
3632         * s-osinte-vms.ads: pthread_mutex_setname_np: new function.
3633
3634 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
3635
3636         * sem_ch6.adb (Process_Formals): a generic subprogram with
3637         a formal incomplete type does not require a freeze node.
3638
3639 2012-03-07  Bob Duff  <duff@adacore.com>
3640
3641         * sem_util.ads: Minor reformatting.
3642
3643 2012-03-07  Geert Bosch  <bosch@adacore.com>
3644
3645         * targparm.ads: New target parameter Atomic_Sync_Default,
3646         defaulting to True.
3647         * targparm.adb (Get_Target_Parameters): Add processing for
3648         Atomic_Sync_Default.
3649         * gnat1drv.adb (Adjust_Global_Switches): Adjust Supress_Options
3650         based on ASD.
3651
3652 2012-03-07  Javier Miranda  <miranda@adacore.com>
3653
3654         * sem_ch3.adb (Analyze_Object_Declaration): If the object
3655         declaration has an init expression then stop the analysis of the
3656         object declaration if the expression which initializes the object
3657         is a call to an inlined function which returns an unconstrained
3658         and has been expanded into a procedure call.
3659         * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Add missing
3660         support to handle selected components.
3661         * sem_ch6.ads (Cannot_Inline): Adding parameter Is_Serious plus
3662         documentation.
3663         * sem_ch6.adb (Check_And_Build_Body_To_Inline): New
3664         subprogram which implements the checks required by the
3665         new rules for frontend inlining and builds the body to inline.
3666         (Analyze_Subprogram_Body_Helper): Move code that
3667         checks inlining of subprogram that has nested subprogram
3668         to Check_And_Build_Body_To_Inline.  Replace call to
3669         Build_Body_To_Inline by call to the new subprogram
3670         Check_And_Build_Body_To_Inline.
3671         (Cannot_Inline): New implementation.
3672         * sem_ch12.adb (Analyze_Package_Instantiation.Must_Inline_Subp):
3673         New subprogram.
3674         * sem_util.ad[sb] (Must_Inline): New subprogram.
3675         (Returns_Unconstrained_Type): New subprogram.
3676         * sem_res.adb (Resolve_Call): Do not create a transient scope
3677         for inlined calls.
3678         * inline.ads (Analyzing_Inlined_Bodies): Remove unreferenced variable.
3679         * inline.adb (Analyze_Inlined_Bodies, Initialize): Remove setting
3680         to false the variable Analyzing_Inlined_Bodies.  Fix comments.
3681         * exp_ch4.adb (Expand_N_Allocator): Fix handling of finalization master.
3682         * exp_ch6.ads (List_Inlining_Info): New subprogram.
3683         * exp_ch6.adb (Expand_Call.Do_Inline): New subprogram.
3684         (Expand_Call.Do_Inline_Always): New subprogram.
3685         (In_Unfrozen_Instance): Move the declaration of this subprogram.
3686         (Expand_Inlined_Call.Reset_Dispatching_Calls): New subprogram.
3687         (Expand_Inlined_Call): Adding new support for inlining functions
3688         that return unconstrained types.
3689         (List_Inlining_Info): New subprogram.
3690         * debug.adb Document flags -gnatd.j and -gnatd.k
3691         * gnat1drv.adb Add call to generate the new listing of inlined
3692         calls and calls passed to the backend.
3693
3694 2012-03-07  Robert Dewar  <dewar@adacore.com>
3695
3696         * sem_ch5.adb, s-vaflop.adb, s-taprop-vms.adb, exp_ch6.adb,
3697         s-gearop.adb, sem_ch6.adb, g-trasym.adb: Minor reformatting.
3698
3699 2012-03-07  Javier Miranda  <miranda@adacore.com>
3700
3701         * a-ngrear.ads: Add documentation.
3702
3703 2012-03-07  Tristan Gingold  <gingold@adacore.com>
3704
3705         * s-taprop-vms.adb (Create_Task): set thread name.
3706         * s-osinte-vms.ads (pthread_attr_setname_np): Declare.
3707
3708 2012-03-07  Arnaud Charlet  <charlet@adacore.com>
3709
3710         * g-trasym.adb: Minor reformatting.
3711
3712 2012-03-07  Robert Dewar  <dewar@adacore.com>
3713
3714         * a-ngrear.ads: Minor addition of ??? comment.
3715
3716 2012-03-07  Gary Dismukes  <dismukes@adacore.com>
3717
3718         * exp_ch4.adb (Apply_Accessibility_Check): Call
3719         Remove_Side_Effects in the build-in-place case, to ensure that
3720         we capture the call and don't end up with two calls.
3721
3722 2012-03-07  Javier Miranda  <miranda@adacore.com>
3723
3724         * exp_ch6.adb (Expand_Inlined_Call): Skip inlining of functions
3725         that return unconstrained types using an extended return statement
3726         since the support for inlining these functions has not been yet
3727         added to the frontend.
3728         * s-vaflop.adb, s-vaflop-vms-alpha.adb: Code reorganization.
3729         * a-ngrear.ads: Replace all the Inline_Always pragmas by pragma
3730         Inline.
3731         * a-ngrear.adb (Eigenvalues, Transpose): Restructured to use
3732         extended return statement.
3733         * a-strsup.adb, a-stzsup.adb, a-stwisu.adb (Concat, Super_Slice,
3734         Super_To_String): Restructured to use extended return statement.
3735         * a-chahan.adb (To_Basic, To_Lower, To_Upper): Restructured to
3736         use extended return statement.
3737         * s-gearop.adb (Diagonal, Matrix_Elementwise_Operation,
3738         Vector_Elementwise_Operation, Matrix_Elementwise_Operation,
3739         Matrix_Matrix_Scalar_Elementwise_Operation,
3740         Vector_Vector_Elementwise_Operation,
3741         Vector_Vector_Scalar_Elementwise_Operation,
3742         Matrix_Scalar_Elementwise_Operation,
3743         Vector_Scalar_Elementwise_Operation,
3744         Scalar_Matrix_Elementwise_Operation,
3745         Scalar_Vector_Elementwise_Operation, Matrix_Matrix_Product,
3746         Matrix_Vector_Product, Outer_Product, Unit_Matrix, Unit_Vector,
3747         Vector_Matrix_Product): Restructured to use extended return
3748         statement.
3749
3750 2012-03-07  Vincent Pucci  <pucci@adacore.com>
3751
3752         * sem_ch5.adb (One_Bound): Minor reformatting.
3753
3754 2012-03-07  Tristan Gingold  <gingold@adacore.com>
3755
3756         * s-osinte-vms-ia64.adb, s-osinte-vms-ia64.ads, s-osinte-vms.adb,
3757         s-osinte-vms.ads, gcc-interface/Makefile.in: Merge s-osinte-vms and
3758         s-osinte-vms-ia64.
3759
3760 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
3761
3762         * checks.adb (Apply_Predicate_Check): Do not generate a predicate
3763         check is the context is an internally generated type-specific
3764         function.
3765         * sem_ch6.adb (Process_PPCs); the formals of internally generated
3766         type-specific functions do not get assertion checks.
3767
3768 2012-03-07  Yannick Moy  <moy@adacore.com>
3769
3770         * gnat_rm.texi: Minor renaming of title.
3771         * gnat_ugn.texi: Minor correction.
3772
3773 2012-03-07  Vincent Pucci  <pucci@adacore.com>
3774
3775         * exp_ch4.adb (Expand_N_Quantified_Expression): Minor
3776         reformating.
3777         * sem_ch4.adb (Analyze_Quantified_Expression): Creation and
3778         analysis of the iteration scheme added in all cases.
3779         * sem_ch5.adb (Analyze_Iteration_Scheme): Minor reformating.
3780         (Analyze_Iterator_Specification): Minor reformating.
3781         * sem_res.adb (Resolve_Quantified_Expression): Resolution of
3782         the condition added in all cases.
3783
3784 2012-03-07  Thomas Quinot  <quinot@adacore.com>
3785
3786         * einfo.adb, einfo.ads: Add flag Reverse_Storage_Order.
3787
3788 2012-03-07  Yannick Moy  <moy@adacore.com>
3789
3790         * gnat_rm.texi, gnat_ugn.texi: Rewording of GNAT UG and GNAT RM to
3791         account for Ada 2012 assertions, and their pragma counterparts in GNAT.
3792
3793 2012-03-07  Thomas Quinot  <quinot@adacore.com>
3794
3795         * exp_attr.adb, sem_attr.adb: Minor reformatting.
3796
3797 2012-03-07  Bob Duff  <duff@adacore.com>
3798
3799         * hostparm.ads (Max_Instantiations): Increase parameter.
3800
3801 2012-03-07  Bob Duff  <duff@adacore.com>
3802
3803         * par-prag.adb: Minor code rearrangement.
3804
3805 2012-03-07  Bob Duff  <duff@adacore.com>
3806
3807         * a-strsup.ads, a-stwisu.ads, a-stzsup.ads (Super_String):
3808         Remove default initial value for Data. It is no longer needed
3809         because "=" now composes properly for untagged records. This
3810         default has caused efficiency problems.
3811
3812 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
3813
3814         * sem_res.adb (Resolve_Actuals): If the actual is a selected
3815         component of an anonymous access type, whose prefix is a variable,
3816         treat the variable as if it may be modified by the call, to
3817         suppress spurious warnings that a variable might be declared as
3818         a constant.
3819
3820 2012-03-07  Thomas Quinot  <quinot@adacore.com>
3821
3822         * einfo.adb, einfo.ads: Remove unused entity flags.
3823
3824 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
3825
3826         * gnat_ugn.texi (Inline Assembler): Fix swapping of Input and
3827         Output operands throughout.
3828
3829 2012-03-07  Hristian Kirtchev  <kirtchev@adacore.com>
3830
3831         * sem_ch12.adb (Earlier): When two nodes come from the same
3832         generic instantiation, compare their locations. Otherwise always
3833         use the top level locations of the nodes.
3834
3835 2012-03-07  Thomas Quinot  <quinot@adacore.com>
3836
3837         * einfo.ads, sem_prag.adb: Minor reformatting.
3838
3839 2012-03-05  Jason Merrill  <jason@redhat.com>
3840
3841         * gcc-interface/Make-lang.in (doc/gnat_ugn.texi): Build xgnatugn
3842         before using it.
3843
3844 2012-03-04  Eric Botcazou  <ebotcazou@adacore.com>
3845
3846         * gnatvsn.ads (Library_Version): Bump to 4.8.
3847
3848 2012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
3849
3850         * init.c (__gnat_adjust_context_for_raise): Also check
3851         "orq $0x0,(%esp)" for x32.
3852
3853         * link.c (__gnat_default_libgcc_subdir): Set to libx32 for x32.
3854
3855         * gcc-interface/Makefile.in (arch): Set to x32 if MULTISUBDIR
3856         is /x32 and add support for x32.
3857
3858 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
3859
3860         * gcc-interface/decl.c (components_to_record): Add ARTIFICIAL parameter
3861         and set TYPE_ARTIFICIAL according to it.  Adjust recursive call.
3862         (gnat_to_gnu_entity) <E_Record_Type>: Adjust call to above function.
3863         * gcc-interface/utils.c (rest_of_record_type_compilation): Do not
3864         invoke rest_of_type_decl_compilation on the parallel type, if any.
3865
3866 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
3867
3868         * gcc-interface/utils.c (gnat_write_global_declarations): Make sure the
3869         dummy global built for global types is preserved.
3870
3871 2012-02-27  Tristan Gingold  <gingold@adacore.com>
3872
3873         * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
3874         E_Array_Type]: Reuse dummy fat type for gnu_ptr_template and
3875         gnu_template_type.
3876
3877 2012-02-27  Eric Botcazou  <ebotcazou@adacore.com>
3878
3879         * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.
3880         (TYPE_BY_REFERENCE_P): New flag.
3881         (TYPE_IS_BY_REFERENCE_P): New macro.
3882         (TYPE_DUMMY_P): Add checking and remove VOID_TYPE.
3883         (TYPE_IS_DUMMY_P): Adjust for above change.
3884         * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P
3885         and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE.
3886         (gnat_to_gnu_param): Likewise.
3887         (maybe_pad_type): Likewise.
3888         (make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P.
3889         * gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P
3890         instead of TREE_ADDRESSABLE.
3891         * gcc-interface/trans.c (finalize_nrv): Likewise.
3892         (call_to_gnu): Likewise.  Do not create a temporary for return values
3893         with by-reference type here.
3894         (gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P.
3895         (gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant
3896         CONSTRUCTORs and calls.
3897         * gcc-interface/utils.c (make_dummy_type): Get the equivalent type of
3898         the underlying type and use it throughout.  Use TYPE_IS_BY_REFERENCE_P
3899         instead of TREE_ADDRESSABLE.
3900         * gcc-interface/utils2.c (build_cond_expr): Deal with by-reference
3901         types explicitly.
3902
3903 2012-02-27  Eric Botcazou  <ebotcazou@adacore.com>
3904
3905         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Revert previous
3906         change that creates a special VAR_DECL for debugging purposes.  For an
3907         aliased object with an unconstrained nominal subtype, make its type a
3908         thin reference to the underlying object.
3909         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Deal with
3910         expressions built for the initialization of above objects.
3911
3912 2012-02-24  Dave Korn  <dave.korn.cygwin@gmail.com>
3913
3914         * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
3915         Windows-specific make variable.
3916         (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
3917         (install-gnatlib): Respect the above during installation when set,
3918         and also install any windows import library that has been built.
3919         (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
3920         build a corresponding import library.
3921
3922 2012-02-22  Robert Dewar  <dewar@adacore.com>
3923
3924         * exp_util.adb, make.adb, sem_dim.adb, sem_ch4.adb, exp_disp.adb: Minor
3925         reformatting.
3926
3927 2012-02-22  Geert Bosch  <bosch@adacore.com>
3928
3929         * g-bytswa-x86.adb, g-bytswa.adb, gcc-interface/Makefile.in: Remove
3930         x86-specific version of byteswap and use GCC builtins instead.
3931
3932 2012-02-22  Tristan Gingold  <gingold@adacore.com>
3933
3934         * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
3935         E_Array_Type]: Translate component ealier.
3936
3937 2012-02-22  Robert Dewar  <dewar@adacore.com>
3938
3939         * par-ch3.adb (P_Signed_Integer_Type_Definition): Specialize
3940         error message for 'Range.
3941
3942 2012-02-22  Pascal Obry  <obry@adacore.com>
3943
3944         * s-taprop-mingw.adb (Finalize_TCB): Do not wait on thread handle as
3945         this is our own thread.
3946
3947 2012-02-22  Sergey Rybin  <rybin@adacore.com frybin>
3948
3949         * tree_io.ads: Update ASIS_Version_Number because of the changes
3950         in Snames.
3951
3952 2012-02-22  Hristian Kirtchev  <kirtchev@adacore.com>
3953
3954         * exp_ch7.adb (Create_Finalizer): Suppress elaboration checks on
3955         stack-related finalizers.
3956
3957 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
3958
3959         * sem_ch6.adb (Analyze_Expression_Function): If the construct
3960         is a completion, indicate that its formals are the formals of
3961         a completion, and as such do not get a cross- reference entry.
3962         (Analyze_Subprogram_Specification): Do not generate a definition
3963         for the entity of an expression function, because it may be a
3964         completion. Definition will be generated if needed when analyzing
3965         the generated subprogram declaration.
3966
3967 2012-02-22  Vincent Celier  <celier@adacore.com>
3968
3969         * make.adb (Check): When checking if an object file is in the
3970         correct object directory, get the unit name from a previous call
3971         to Check_Source_Info_In_ALI.
3972         * makeutl.adb (Check_Source_Info_In_ALI): Return the name of
3973         the unit when everything is OK, otherwise return No_Name.
3974         * makeutl.ads (Check_Source_Info_In_ALI): Return Name_Id instead
3975         of Boolean
3976
3977 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
3978
3979         * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): In an
3980         instance, the operator is visible if an operand is of some
3981         numeric type which is not in use or directly visible, and the
3982         other operand is a numeric literal.
3983
3984 2012-02-22  Tristan Gingold  <gingold@adacore.com>
3985
3986         * init.c: Minor code clean up.
3987         * gcc-interface/Make-lang.in: Update dependencies.
3988
3989 2012-02-22  Arnaud Charlet  <charlet@adacore.com>
3990
3991         * gnatlink.adb (Gnatlink): Use -gnatcC in CodePeer_Node,
3992         otherwise GCC will generate an object file.
3993
3994 2012-02-22  Vincent Celier  <celier@adacore.com>
3995
3996         * projects.texi: Correct typo related to "**" in Source_Dirs.
3997
3998 2012-02-22  Steve Baird  <baird@adacore.com>
3999
4000         * sem_prag.adb (Analyze_PPC_In_Decl_Part): Clean up generation of
4001         error message text.
4002
4003 2012-02-22  Vincent Pucci  <pucci@adacore.com>
4004
4005         * rtsfind.adb (Get_Unit_Name): Ada_Numerics_Child and
4006         System_Dim_Child cases added.
4007         * rtsfind.ads: Ada_Numerics,
4008         Ada_Numerics_Generic_Elementary_Functions, System_Dim,
4009         System_Dim_Float_IO and System_Dim_Integer_IO added to the list
4010         of RTU_Id.  Ada_Numerics_Child and System_Dim_Child added as
4011         new RTU_Id subtypes.
4012         * sem_dim.adb (Is_Dim_IO_Package_Entity): Use of
4013         Rtsfind to verify the package entity is located either
4014         in System.Dim.Integer_IO or in System.Dim.Float_IO.
4015         (Is_Dim_IO_Package_Instantiation): Minor
4016         changes.  (Is_Elementary_Function_Call): Removed.
4017         (Is_Elementary_Function_Entity): New routine.
4018         (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity call added.
4019         * snames.ads-tmpl: Name_Dim and Name_Generic_Elementary_Functions
4020         removed.
4021
4022 2012-02-22  Vincent Pucci  <pucci@adacore.com>
4023
4024         * sem_prag.adb: Minor reformatting.
4025
4026 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
4027
4028         * sem_ch3.adb (Find_Type_Name): When analyzing a private type
4029         declaration that is the completion of a tagged incomplete type, do
4030         not associate the class-wide type already created with the private
4031         type to prevent order-of-elaboration issues in the back-end.
4032         * exp_disp.adb (Find_Specific_Type): Find specific type of
4033         a class-wide type, and handle the case of an incomplete type
4034         coming  either from a limited_with clause or from an incomplete
4035         type declaration. Used when expanding a dispatchin call and
4036         generating tag checks (minor refactoring).
4037
4038 2012-02-22  Robert Dewar  <dewar@adacore.com>
4039
4040         * exp_ch5.adb: Add comment.
4041         * sem_ch12.adb, exp_ch6.adb: minor reformatting
4042
4043 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
4044
4045         * freeze.adb (Freeze_Entity): Do not perform type layout within
4046         a generic unit.
4047
4048 2012-02-22  Eric Botcazou  <ebotcazou@adacore.com>
4049
4050         * init.c (__gnat_error_handler) [Linux]: Map SIGBUS to
4051         Storage_Error.
4052
4053 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
4054
4055         * exp_ch5.adb (Expand_N_Assignment_Statement): Reject an
4056         assignment to a classwide type whose type is limited, as
4057         can happen in an instantiation in programs that run afoul or
4058         AI05-0087.
4059
4060 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
4061
4062         * exp_ch6.adb (Legal_Copy): If layout is not
4063         determined in the front-end, do not emit error message when
4064         by-reference actual is potentially unaligned.
4065         * gcc-interface/decl.c (gnat_to_gnu_field): Better error message for
4066         illegal representation clause on tagged or aliased component, or on
4067         by-reference type with forced alignment.
4068
4069 2012-02-17  Nicolas Roche  <roche@adacore.com>
4070
4071         * gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is
4072         propagated by gnatlib-sjlj and gnatlib-zcx targets.
4073         * gcc-interface/Make-lang.in: Update dependencies.
4074
4075 2012-02-17  Thomas Quinot  <quinot@adacore.com>
4076
4077         * sem_ch12.adb (Analyze_Package_Instantiation): For an
4078         instantiation in an RCI library unit, omit the instance body
4079         if the RCI library unit is the instance itself (E.2.3(18)),
4080         but include the body if the instantiation is within the RCI
4081         declaration (12.3(12)).
4082
4083 2012-02-17  Steve Baird  <baird@adacore.com>
4084
4085         * sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and
4086         Post'Class aspects can only be specified for a primitive operation
4087         of a tagged type.
4088
4089 2012-02-17  Yannick Moy  <moy@adacore.com>
4090
4091         * gnat_rm.texi: Minor shuffling.
4092
4093 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
4094
4095         * aspects.adb: Expression functions can carry pre/postconditions.
4096         * par-ch6.adb (P_Subprogram): look for optional pre/postconditions
4097         in an expression function.
4098         * sem_prag (Check_Precondition_Postcondition): legal on expression
4099         functions.
4100
4101 2012-02-17  Vincent Pucci  <pucci@adacore.com>
4102
4103         * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb,
4104         * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb,
4105         * a-convec.adb, a-coorma.adb (Adjust): New routine.
4106         (Constant_Reference): Increment Busy and Lock counters.
4107         (Reference): Increase Busy and Lock counters.
4108         (Finalize): New routine.
4109         * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb:
4110         (Adjust): New routine.  (Constant_Reference): Increment Busy
4111         and Lock counters.
4112         (Finalize): New routine.
4113         * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads,
4114         * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads,
4115         * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads,
4116         * a-coorma.ads, a-coorse: Controlled component added to the
4117         reference types.
4118
4119 2012-02-17  Robert Dewar  <dewar@adacore.com>
4120
4121         * restrict.adb (Check_Restriction): Add special handling for
4122         No_Obsolescent_Features.
4123
4124 2012-02-17  Hristian Kirtchev  <kirtchev@adacore.com>
4125
4126         * exp_util.adb (Find_Finalize_Address): When dealing with an
4127         internally built full view for a type with unknown discriminants,
4128         use the original record type.
4129
4130 2012-02-17  Robert Dewar  <dewar@adacore.com>
4131
4132         * sem_dim.adb: Minor reformatting.
4133
4134 2012-02-17  Yannick Moy  <moy@adacore.com>
4135
4136         * gnat_rm.texi: Minor rewording.
4137
4138 2012-02-17  Thomas Quinot  <quinot@adacore.com>
4139
4140         * sem_aggr.adb: Minor reformatting.
4141
4142 2012-02-17  Robert Dewar  <dewar@adacore.com>
4143
4144         * gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case.
4145
4146 2012-02-17  Vincent Pucci  <pucci@adacore.com>
4147
4148         * sem_dim.adb (Is_Dim_IO_Package_Entity): New routine.
4149         (Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity
4150         call added.
4151         (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity
4152         call added.
4153         * s-dim.ads: Make package Pure.
4154
4155 2012-02-17  Gary Dismukes  <dismukes@adacore.com>
4156
4157         * prj-nmsc.adb: Minor reformatting.
4158
4159 2012-02-17  Yannick Moy  <moy@adacore.com>
4160
4161         * gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions.
4162
4163 2012-02-17  Yannick Moy  <moy@adacore.com>
4164
4165         * gnat_ugn.texi: Fix typos.
4166
4167 2012-02-17  Pascal Obry  <obry@adacore.com>
4168
4169         * prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an
4170         aggregate is not Externally_Built.
4171
4172 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
4173
4174         * sem_aggr.adb (Resolve_Record_Aggregate): If a composite
4175         component has a box association, copy the default value using
4176         the current scope as the scope of internal types, to prevent
4177         scoping anomalies in gigi.
4178
4179 2012-02-17  Robert Dewar  <dewar@adacore.com>
4180
4181         * sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb,
4182         sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb,
4183         exp_intr.adb, s-os_lib.adb: Minor reformatting.
4184
4185 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
4186
4187         * sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the
4188         old operation is abstract, the relevant type is not abstract,
4189         and the new subprogram fails to override.
4190
4191 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
4192
4193         * gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the
4194         type of the result to the end and execute it for a deferred constant of
4195         a discriminated type whose full view can be elaborated statically.
4196
4197 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
4198
4199         * gcc-interface/trans.c (gnat_to_gnu) <N_Qualified_Expression>: If the
4200         type is tagged, mark it as used for debugging purposes.
4201         <N_Allocator>: Likewise for a qualified expression.
4202
4203 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
4204
4205         * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
4206         return value in the by-reference return type case if this isn't the
4207         expression of an object declaration.  Tidy up.
4208
4209 2012-02-09  Tristan Gingold  <gingold@adacore.com>
4210
4211         * gcc-interface/Makefile.in: Remove .sym rule (not used).
4212         Remove adamsg.o object (requires native message compiler).
4213         * init.c (CMA$_EXIT_THREAD, MTH$_FLOOVEMAT, SS$_INTDIV): Define as a
4214         macro instead of as extern int.
4215         (ADA$_ALREADY_OPEN, ADA$_CONSTRAINT_ERRO, ADA$_DATA_ERROR)
4216         (ADA$_DEVICE_ERROR, ADA$_END_ERROR, ADA$_FAC_MODE_MISMAT)
4217         (ADA$_IOSYSFAILED, ADA$_KEYSIZERR, ADA$_KEY_MISMATCH)
4218         (ADA$_LAYOUT_ERROR, ADA$_LINEXCMRS, ADA$_MAXLINEXC)
4219         (ADA$_MODE_ERROR, ADA$_MRN_MISMATCH, ADA$_MRS_MISMATCH)
4220         (ADA$_NAME_ERROR, ADA$_NOT_OPEN, ADA$_ORG_MISMATCH)
4221         (ADA$_PROGRAM_ERROR, ADA$_RAT_MISMATCH, ADA$_RFM_MISMATCH)
4222         (ADA$_STAOVF, ADA$_STATUS_ERROR, ADA$_STORAGE_ERROR)
4223         (ADA$_UNSUPPORTED, ADA$_USE_ERROR): Likewise.
4224         (struct cond_except): Field cond is now an unsigned int.
4225         (dec_ada_cond_except_table): Adjust.
4226         (cond_except_table): Likewise.
4227         (cond_resignal_table): Likewise.
4228         (__gnat_default_resignal_p): Fix style.
4229
4230 2012-02-08  Vincent Celier  <celier@adacore.com>
4231
4232         * gcc-interface/Make-lang.in: Add g-byorma.o to gnatbind objects
4233         (g-buorma is now imported by sinput).
4234         Update dependencies.
4235         * scn.adb (Initialize_Scanner): Call Check_For_BOM
4236         * sinput-p.adb (Source_File_Is_Subunit): Call Check_For_BOM
4237         * sinput.adb: New procedure Check_For_BOM
4238         * sinput.ads: New procedure Check_For_BOM
4239
4240 2012-02-08  Vincent Pucci  <pucci@adacore.com>
4241
4242         * impunit.adb: Dimension package names updated
4243         * Makefile.rtl: s-dim added
4244         * sem_dim.adb (Is_Procedure_Put_Call): minor changes
4245         (Is_Dim_IO_Package_Instantiation): minor changes
4246         * sem_dim.ads: minor changes in comments
4247         * snames.ads-tmpl: Name_Dim added Name_Dim_Float_IO and
4248         Name_Dim_Integer_IO removed
4249         * s-dim.ads: New package. Define the dimension terminology.
4250         * s-diflio.adb, s-diinio.adb, s-dimkio.ads, s-dimmks.ads,
4251         * s-dmotpr.ads: Package names updated.
4252         * s-diflio.ads, s-diinio.ads: Documentation added and package
4253         names updated.
4254
4255 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
4256
4257         * gcc-interface/utils2.c (build_call_alloc_dealloc_proc): Revise test
4258         for storage pools to test for an underlying record type rather than
4259         testing Is_Tagged_Type, so that simple storage pools will be handled
4260         the same as normal Ada storage pools.
4261
4262 2012-02-08  Yannick Moy  <moy@adacore.com>
4263
4264         * gnat_rm.texi: Minor reshuffling to place restriction at
4265         appropriate place.
4266
4267 2012-02-08  Bob Duff  <duff@adacore.com>
4268
4269         * warnsw.adb (Set_Warning_Switch): Set Warn_On_Suspicious_Modulus_Value
4270         False for '-gnatwA', to suppress these warnings.
4271
4272 2012-02-08  Vincent Celier  <celier@adacore.com>
4273
4274         * sinput-p.adb (Source_File_Is_Subunit): Check for BOM before
4275         starting to scan, so that UTF8 encoding is taken into account.
4276
4277 2012-02-08  Arnaud Charlet  <charlet@adacore.com>
4278
4279         * s-tasren.adb, s-tasren.ads (Internal_Complete_Rendezvous): New
4280         function.
4281         (Complete_Rendezvous): Now call Internal_Complete_Rendezvous.
4282         (Exceptional_Complete_Rendezvous): Mark No_Return.
4283
4284 2012-02-08  Eric Botcazou  <ebotcazou@adacore.com>
4285
4286         * exp_aggr.adb (Compile_Time_Known_Composite_Value):
4287         New predicate to compute whether a composite value can be
4288         evaluated at compile time.
4289         (Component_Not_OK_For_Backend): Use Compile_Time_Known_Value for all
4290         expressions of elementary type and Compile_Time_Known_Composite_Value
4291         for all other expressions.
4292         (Expand_Record_Aggregate): Convert to assignments in the case
4293         of a type with mutable components if the aggregate cannot be
4294         built statically.
4295
4296 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
4297
4298         * aspects.ads (type Aspect_Id): Add Simple_Storage_Pool_Type.
4299         (Impl_Defined_Aspects): Add association for
4300         Aspect_Simple_Storage_Pool_Type.
4301         (Aspect_Names): Add
4302         association for Aspect_Simple_Storage_Pool_Type.
4303         * aspects.adb:
4304         (Canonical_Aspect): Add association for Simple_Storage_Pool_Type.
4305         * exp_attr.adb (Expand_N_Attribute_Reference):
4306         Change name to Name_Simple_Storage_Pool_Type.
4307         * exp_ch4.adb (Expand_N_Allocator): Change
4308         name to Name_Simple_Storage_Pool_Type.
4309         * exp_intr.adb (Expand_Unc_Deallocation): Change name to
4310         Name_Simple_Storage_Pool_Type.  * freeze.adb (Freeze_Entity):
4311         Change names to Name_Simple_Storage_Pool_Type.  * par-prag.adb:
4312         Change names to Name_Simple_Storage_Pool_Type.  * sem_attr.adb:
4313         (Analyze_Attribute): Change name to Name_Simple_Storage_Pool_Type.
4314         * sem_ch13.adb (Analyze_Attribute_Definition_Clause):
4315         Change name to Name_Simple_Storage_Pool_Type.
4316         * sem_prag.adb:
4317         (Analyze_Pragma): Change name to Name_Simple_Storage_Pool_Type.
4318         (Sig_Flags): Change name to Name_Simple_Storage_Pool_Type.
4319         * sem_res.adb (Resolve_Allocator): Change name to
4320         Name_Simple_Storage_Pool_Type.  * snames.ads-tmpl:
4321         (Name_Simple_Storage_Pool_Type): New name constant.
4322         (type Pragma_Id): Change name to Name_Simple_Storage_Pool_Type and
4323         move to main pragma section because it no longer matches the
4324         attribute name.
4325         * snames.adb-tmpl (Get_Pragma_Id): Remove test for
4326         Name_Simple_Storage_Pool.
4327         (Is_Pragma_Name): Remove test for Name_Simple_Storage_Pool.
4328
4329 2012-02-08  Robert Dewar  <dewar@adacore.com>
4330
4331         * gnat_ugn.texi: Add some clarification to -gnatwA and -gnatws.
4332
4333 2012-02-08  Pascal Obry  <obry@adacore.com>
4334
4335         * prj.adb (Compute_All_Imported_Projects): Use new
4336         For_Project_And_Aggregated_Context to ensure proper context is
4337         used for encapsulated aggregate libraries.
4338         * prj-proc.adb (Recursive_Process): Call
4339         Process_Aggregated_Projects earlier to ensure that all dependent
4340         projects are set with the proper encapsulated status.
4341
4342 2012-02-08  Pascal Obry  <obry@adacore.com>
4343
4344         * s-os_lib.adb (Normalize_Arguments): Properly escape last \ in null
4345         terminated string.
4346
4347 2012-02-08  Pascal Obry  <obry@adacore.com>
4348
4349         * prj.ads, prj.adb (For_Project_And_Aggregated_Context): New
4350         generic routine with a context parameter.
4351
4352 2012-02-08  Robert Dewar  <dewar@adacore.com>
4353
4354         * a-coinve.adb, sem_util.adb, sem_ch8.adb, a-cobove.adb,
4355         a-convec.adb: Minor reformatting and code reorganization.
4356
4357 2012-02-08  Steve Baird  <baird@adacore.com>
4358
4359         * sem_cat.adb (In_Preelaborated_Unit): A child
4360         unit instantiation does not inherit preelaboration requirements
4361         from its parent.
4362
4363 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
4364
4365         * aspects.ads (type Aspect_Id): Add Aspect_Simple_Storage_Pool.
4366         (Impl_Defined_Aspects): Add entry for Aspect_Simple_Storage_Pool.
4367         (Aspect_Argument): Add Name entry for Aspect_Simple_Storage_Pool.
4368         (Aspect_Names): Add entry for Aspect_Simple_Storage_Pool.
4369         * aspects.adb (Canonical_Aspect): Add entry for
4370         Aspect_Simple_Storage_Pool.
4371         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of
4372         Attribute_Simple_Storage_Pool in the same way as Storage_Pool
4373         (add conversion, analyze/resolve). For the Storage_Size attribute,
4374         for the simple pool case, locate and use the simple pool type's
4375         Storage_Size function (if any), otherwise evaluate to zero.
4376         * exp_ch4.adb (Expand_N_Allocator): In the case of an allocator
4377         for an access type with an associated simple storage pool,
4378         locate and use the pool type's Allocate.
4379         * exp_intr.adb (Expand_Unc_Deallocation): In the case where the
4380         access type has a simple storage pool, locate the pool type's
4381         Deallocate procedure (if present) and use it as the procedure
4382         to call on the Free operation.
4383         * freeze.adb (Freeze_Entity): In the case of a full type for
4384         a private type defined with pragma Simple_Storage_Pool, check
4385         that the full type is also appropriate for the pragma. For
4386         a simple storage pool type, validate that the operations
4387         Allocate, Deallocate (if present), and Storage_Size
4388         (if present) are defined with appropriate expected profiles.
4389         (Validate_Simple_Pool_Op_Formal): New procedure
4390         (Validate_Simple_Pool_Operation): New procedure Add with and
4391         use of Rtsfind.
4392         * par-prag.adb: Add Pragma_Simple_Storage_Pool to case statement
4393         (no action required).
4394         * sem_attr.adb (Analyze_Attribute): For the case of the
4395         Storage_Pool attribute, give a warning if the prefix type has an
4396         associated simple storage pool, and rewrite the attribute as a
4397         raise of Program_Error. In the case of the Simple_Storage_Pool
4398         attribute, check that the prefix type has an associated simple
4399         storage pool, and set the attribute type to the pool's type.
4400         * sem_ch13.adb (Analyze_Aspect_Specifications): Add
4401         Aspect_Simple_Storage_Pool case choice.
4402         (Analyze_Attribute_Definition_Clause): Add
4403         Aspect_Simple_Storage_Pool to case for Ignore_Rep_Clauses
4404         (no action). Add handling for Simple_Storage_Pool attribute
4405         definition, requiring the name to denote a simple storage pool
4406         object.
4407         (Check_Aspect_At_Freeze_Point): For a simple storage pool
4408         aspect, set the type to that of the name specified for the aspect.
4409         * sem_prag.adb (Analyze_Pragma): Add handling for pragma
4410         Simple_Storage_Pool, requiring that it applies to a library-level
4411         type declared in a package declaration that is a limited private
4412         or limited record type.
4413         * sem_res.adb (Resolve_Allocator): Flag an attempt to call a
4414         build-in-place function in an allocator for an access type with
4415         a simple storage pool as unsupported.
4416         * snames.ads-tmpl: Add Name_Simple_Storage_Pool.
4417         (type Attribute_Id): Add Attribute_Simple_Storage_Pool.
4418         (type Pragma_Id): Add Pragma_Simple_Storage_Pool.
4419         * snames.adb-tmpl (Get_Pragma_Id): Handle case of
4420         Name_Simple_Storage_Pool.
4421         (Is_Pragma_Name): Return True for Name_Simple_Storage_Pool.
4422
4423 2012-02-08  Cyrille Comar  <comar@adacore.com>
4424
4425         * projects.texi: Clarify doc for interfaces.
4426
4427 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
4428
4429         * gcc-interface/Make-lang.in (GCC_LINKERFLAGS): New variable.
4430         (GCC_LINK): Use it.
4431
4432 2012-02-01  Tristan Gingold  <gingold@adacore.com>
4433
4434         * gcc-interface/trans.c (Loop_Statement_to_gnu): Use sizetype
4435         instead of size_type_node.
4436
4437 2012-01-30  Nicolas Roche  <roche@adacore.com>
4438
4439         * gcc-interface/Make-lang.in: Update dependencies.
4440         * gcc-interface/Makefile.in: Use system-vxworks-system-ppc-mils.ads
4441         when needed.
4442         Remove Linker_Options -crtbe when building sjlj run-time.
4443
4444 2012-01-30  Robert Dewar  <dewar@adacore.com>
4445
4446         * sem.adb (Analyze): Call Analyze_Mod for N_Op_Mod mode.
4447         * sem_ch3.adb (Modular_Type_Declaration): Warn on mod value of
4448         form 2 * small-literal.
4449         * sem_ch4.adb (Analyze_Mod): New procedure (warn on suspicious
4450         mod value).
4451         * sem_ch4.ads (Analyze_Mod): New procedure.
4452
4453 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
4454
4455         * sem_ch6.adb: sem_ch6.adb (Analyze_Expression_Function): Copy
4456         types and return expression when building spec for implicit
4457         body, to preserve global references that may be present in an
4458         instantiation.
4459
4460 2012-01-30  Matthew Heaney  <heaney@adacore.com>
4461
4462         * a-convec.adb, a-coinve.adb, a-cobove.adb (Sort,
4463         Reverse_Elements): Check for cursor tampering.
4464
4465 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
4466
4467         * sem_util.adb (Is_Fully_Initialized_Type): In Ada 2012, a
4468         type with aspect Default_Value or Default_Component_Value is
4469         fully initialized, and use of variables of such types do not
4470         generate warnings.
4471
4472 2012-01-30  Javier Miranda  <miranda@adacore.com>
4473
4474 PR ada/15846
4475         * sem_ch8.adb (Analyze_Subprogram_Renaming):
4476         Handle self-renaming when the renamed entity is referenced using
4477         its expanded name.
4478
4479 2012-01-30  Vincent Celier  <celier@adacore.com>
4480
4481         * projects.texi: Add documentation for attribute Interfaces.
4482
4483 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
4484
4485         * exp_ch7.adb (Build_Finalizer_Call): Set loc again.
4486         * exp_ch11.adb (Expand_At_End_Handler): Do not provide a source
4487         location for the wrapped call to the original AT_END routine
4488         and the subsequent return statement.
4489
4490 2012-01-30  Pascal Obry  <obry@adacore.com>
4491
4492         * s-rannum.adb: Minor reformatting.
4493
4494 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
4495
4496         * a-calend-vms.adb, a-calend.adb: Increment the number of leap seconds
4497         to 25 and add the hard time value for 2012-06-30.
4498
4499 2012-01-30  Robert Dewar  <dewar@adacore.com>
4500
4501         * a-strhas.ads, einfo.adb, einfo.ads, exp_ch7.adb, exp_ch9.adb,
4502         freeze.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-proc.adb, s-llflex.ads,
4503         s-ransee.adb, s-ransee.ads, sem_ch13.adb, sem_dim.adb, sem_prag.adb:
4504         Minor reformatting/code reorganization.
4505
4506 2012-01-30  Thomas Quinot  <quinot@adacore.com>
4507
4508         * s-rannum.adb, s-ransee.adb, s-ransee.ads (Get_Seed): Return
4509         Unsigned_64 rather than Duration.
4510         (System.Random_Numbers.Reset): Use full value of seed
4511         (do not truncate sub-second bits).
4512
4513 2012-01-30  Thomas Quinot  <quinot@adacore.com>
4514
4515         * sem_cat.adb, sem_ch12.adb: Minor reformatting.
4516
4517 2012-01-30  Yannick Moy  <moy@adacore.com>
4518
4519         * gnat_ugn.texi: Minor correction of GNAT UG, to take into
4520         account changes to -gnatwa and more recent warnings.
4521
4522 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
4523
4524         * exp_ch7.adb (Build_Finalizer_Call): Do not provide a source
4525         location when creating a call to a finalizer.
4526         * exp_ch11.adb (Expand_Exception_Handlers): Do not provide
4527         a source location for the first actual of Save_Occurrence for
4528         consistency sake.
4529
4530 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
4531
4532         * einfo.ads, einfo,adb: New attribute on scalar types:
4533         Default_Aspect_Value New attribute on  array types:
4534         Default_Aspect_Component_Value Move attribute Related_Array_Object
4535         to a different position to accomodate new aspect attributes.
4536         * freeze.adb (Freeze_Entity): Use new attributes to retrieve value
4537         of defaults set with an aspect specification, rather than using
4538         the list of aspects attached to the type, to prevent issues with
4539         partial views.
4540         * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
4541         Default_Value and Default_Component _Value, store corresponding
4542         expression in type entity.
4543         (Check_Aspect_At_End_Of_Declaration): If the default aspects
4544         are declared on the full view, use the full view to resolve the
4545         correseponding expression.
4546         * exp_ch3.adb (Init_Component): Use attribute
4547         Default_Aspect_Component_Value to perform default initialization,
4548         rather than relying on the rep item list for the type.
4549         (Get_Simple_Init_Val): Ditto.
4550
4551 2012-01-30  Thomas Quinot  <quinot@adacore.com>
4552
4553         * a-strhas.ads: Document risk of collision attack.
4554
4555 2012-01-30  Yannick Moy  <moy@adacore.com>
4556
4557         * gnat_ugn.texi: Minor update wrt warning switches.
4558
4559 2012-01-30  Vincent Celier  <celier@adacore.com>
4560
4561         * prj-nmsc.adb (Check_Interfaces): Report an error when a
4562         unit from Library_Interface is not a unit of the project.
4563
4564 2012-01-30  Vincent Pucci  <pucci@adacore.com>
4565
4566         * sem_prag.adb (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Parent
4567         links fixed inside PPC pragmas.
4568         * sem_ch12.adb: Move call to Make_Aspect_For_PPC_In_Gen_Sub_Decl.
4569
4570 2012-01-30  Thomas Quinot  <quinot@adacore.com>
4571
4572         * s-ransee.ads: Minor reformatting.
4573
4574 2012-01-30  Pascal Obry  <obry@adacore.com>
4575
4576         * prj.ads, prj.adb (For_Each_Source): Add support for skipping
4577         sources coming from an encapsulated library.
4578
4579 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
4580
4581         * sem_ch3.adb (Process-Full_View): fix typo.
4582         * sem_ch13.adb (Aalyze_Aspect_Specifications): if predicates
4583         appear on a private type and the full view is available, ensure
4584         existence of freeze node for full view.
4585         (Build_Predicate_Function): Attach predicate function to both
4586         views of a private type.
4587
4588 2012-01-30  Vincent Celier  <celier@adacore.com>
4589
4590         * prj-nmsc.adb (Check_Interfaces): Compute the Lib_Interface_ALIs
4591         for the project if either attribute Library_Interface or
4592         Interfaces is declared.
4593         (Check_Stand_Alone_Library): Use Lib_Interface_ALIs computed in
4594         Check_Interfaces.
4595
4596 2012-01-30  Pascal Obry  <obry@adacore.com>
4597
4598         * prj-proc.adb (Recursive_Process): Set From_Encapsulated_Lib
4599         boolean value to true in the process list created by this routine.
4600         * prj.ads (Project_List_Element): New field From_Encapsulated_Lib.
4601         Continued work for KA06-021.
4602         * prj.adb (Compute_All_Imported_Projects): Set
4603         From_Encapsulated_Lib boolean flag.
4604
4605 2012-01-30  Vincent Pucci  <pucci@adacore.com>
4606
4607         * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Minor
4608         code clean up.
4609         * s-diflio.ads: Minor change.
4610
4611 2012-01-30  Javier Miranda  <miranda@adacore.com>
4612
4613         * exp_ch9.adb (Build_Dispatching_Requeue): Add missing call
4614         to Get_Entry_Index.  Required to generate code which provides
4615         the correct value of Entry_Index in the target entry.
4616
4617 2012-01-30  Nicolas Roche  <roche@adacore.com>
4618
4619         * system-vxworks-ppc.ads: Add pragma Linker_Options -crtbe to
4620         fix issue with zcx on VxWorks5.
4621
4622 2012-01-30  Pascal Obry  <obry@adacore.com>
4623
4624         * prj.ads, prj.adb (For_Every_Project_Imported): Remove
4625         In_Aggregate_Lib.
4626         (For_Every_Project_Imported_Context): New generic routine with
4627         a context parameter.
4628         * prj-nmsc.adb: Revert to use For_Every_Project_Imported Avoid
4629         distributed complexity.
4630         * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: Ditto.
4631
4632 2012-01-30  Thomas Quinot  <quinot@adacore.com>
4633
4634         * exp_aggr.adb (Expand_Record_Aggregate): After creating the
4635         _parent aggregate for an extension aggregate, check whether it
4636         requires delayed (top-down) expansion.
4637
4638 2012-01-30  Vincent Pucci  <pucci@adacore.com>
4639
4640         * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Rewritten.
4641         * snames.ads-tmpl: Name_Item and Name_Symbols added.
4642         * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads: Rename
4643         and change the position of parameter Symbols in every Put routine.
4644         * s-dimmks.ads: Convert long float type Mks_Type into long
4645         long float.
4646         * s-llflex.ads: Modifications in comments.
4647
4648 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
4649
4650         * sem_ch12.adb (Earlier): Do not use the
4651         top level source locations of the two input nodes.
4652
4653 2012-01-30  Robert Dewar  <dewar@adacore.com>
4654
4655         * einfo.ads, sem_prag.adb, sem_attr.adb, aspects.ads,
4656         sem_cat.adb, sem_aggr.adb, exp_aggr.adb: Minor reformatting.
4657
4658 2012-01-30  Robert Dewar  <dewar@adacore.com>
4659
4660         * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting.
4661
4662 2012-01-30  Olivier Hainque  <hainque@adacore.com>
4663
4664         * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Add rule for r1 back +
4665         comments.
4666
4667 2012-01-30  Thomas Quinot  <quinot@adacore.com>
4668
4669         * gnat_rm.texi, sem_dist.adb, sem_dist.ads, einfo.ads, sem_prag.adb,
4670         sem_ch12.adb, sem_attr.adb, aspects.adb, aspects.ads, par-prag.adb,
4671         sem_cat.adb, snames.ads-tmpl (Sem_Dist.Is_Valid_Remote_Object_Type):
4672         New subprogram (extracted from
4673         Sem_Cat.Validate_Remote_Access_Object_Type_Declaration).
4674         (Einfo.Is_Remote_Types): Now applies to generic types. Update
4675         documentation accordingly.
4676         (Sem_Ch12.Analyze_Associations): A RACW type is acceptable as
4677         actual for a formal type to which a pragma Remote_Access_Type
4678         applies.
4679         (Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect
4680         Remote_Access_Type.
4681         (Sem_Attr.Analyze_Attribute, case Stub_Type): Attribute can
4682         be applied to a generic type if pragma Remote_Access_Type
4683         applies, in which case the type of the attribute is
4684         System.Partition_Interface.RACW_Stub_Type.
4685
4686 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
4687
4688         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set
4689         an alignment on fields of the RETURN type built for the CICO mechanism.
4690
4691 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
4692
4693         * gcc-interface/trans.c (gnat_to_gnu): Avoid making a SAVE_EXPR for
4694         a call to a function that returns an unconstrained type with default
4695         discriminant.  Similarly, avoid doing the conversion to the nominal
4696         result type in this case.
4697
4698 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
4699
4700         * gcc-interface/ada-tree.h (DECL_ALIASED_P): New flag.
4701         * gcc-interface/decl.c (is_variable_size): Rename to...
4702         (type_has_variable_size): ...this.
4703         (adjust_packed): Adjust to above renaming.
4704         (gnat_to_gnu_field): Set DECL_ALIASED_P on the field.
4705         (field_is_artificial): New predicate.
4706         (field_is_aliased): Likewise.
4707         (field_has_self_size): Likewise.
4708         (field_has_variable_size): Likewise.
4709         (components_to_record): Record information for the final layout during
4710         the first pass on fields.
4711         If there is an aliased field placed after a field whose length depends
4712         on discriminants, put all the fields of the latter sort, last.
4713
4714 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
4715
4716         * gcc-interface/gigi.h (get_minimal_subprog_decl): Declare.
4717         * gcc-interface/decl.c (get_minimal_subprog_decl): New function.
4718         * gcc-interface/trans.c (Attribute_to_gnu): Use it for the prefix of an
4719         Access-like attribute in a dispatch table if the subprogram is public.
4720
4721 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
4722
4723         * gcc-interface/gigi.h (create_label_decl): Adjust.
4724         * gcc-interface/utils.c (create_label_decl): Add GNAT_NODE parameter
4725         and invoke gnat_pushdecl on it.  Remove obsolete settings.
4726         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Label>: Adjust call to
4727         create_label_decl.
4728         * gcc-interface/trans.c (gnat_to_gnu) <N_Null): Likewise.  Ignore the
4729         label for debugging purposes.
4730
4731 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
4732
4733         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an aliased
4734         object with an unconstrained nominal subtype and if optimization isn't
4735         enabled, create a special VAR_DECL for debugging purposes.
4736
4737 2012-01-23  Robert Dewar  <dewar@adacore.com>
4738
4739         * sem_prag.ads, sem_prag.adb: Minor reformatting.
4740
4741 2012-01-23  Robert Dewar  <dewar@adacore.com>
4742
4743         * sem_ch13.adb (Analyze_Aspect_Specifications): Check for
4744         language defined aspect applied to renaming or formal type
4745         declaration (not permitted)
4746
4747 2012-01-23  Matthew Heaney  <heaney@adacore.com>
4748
4749         * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Vet): Replaced
4750         comment with pragma Assert.
4751
4752 2012-01-23  Vincent Pucci  <pucci@adacore.com>
4753
4754         * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
4755         to Make_Aspect_For_PPC_In_Gen_Sub_Decl added in ASIS mode.
4756         * sem_prag.adb, sem_prag.ads (Make_Aspect_For_PPC_In_Gen_Sub_Decl): New
4757         routine. In ASIS mode, convert any PPC pragmas into aspects in generic
4758         subprogram declaration in order to enable the analysis of PPC boolean
4759         expressions.
4760
4761 2012-01-23  Robert Dewar  <dewar@adacore.com>
4762
4763         * sem_ch3.adb (Analyze_Object_Declaration): Properly
4764         handle Current_Value for volatile variables (also propagate
4765         Treat_As_Volatile from type to object).
4766
4767 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
4768
4769         * sem_ch12.adb (Install_Body): Detect the case
4770         where the enclosing context is a package with a stub body that
4771         has already been replaced by the actual body. In such cases,
4772         the freeze node for the enclosing context must be inserted after
4773         the real body.
4774
4775 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
4776
4777         * sem_prag.adb (Analyze_Pragma, case Debug): Freeze the called
4778         subprogram before expanding the pragma into an if-statement with
4779         a block, to ensure that when the subprogram is null its body is
4780         properly generated before expansion.
4781
4782 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
4783
4784         * sem_ch12.adb (Analyze_Associations): Alphabetize local variables and
4785         constants. Rename Actual_Types to Actuals_To_Freeze. Rename Next_Formal
4786         to Saved_Formal.
4787         Freeze all eligible subprograms which appear as actuals in
4788         the instantiation.
4789         (Has_Fully_Defined_Profile): New routine.
4790         (Renames_Standard_Subprogram): New routine.
4791         (Earlier): Add local variable N. Comment update. Do not use source
4792         locations when trying to determine whether one node precedes another.
4793
4794 2012-01-23  Gary Dismukes  <dismukes@adacore.com>
4795
4796         * exp_ch4.adb (Expand_Concatenate): In the case
4797         where the result of a concatentation can be null, set the to
4798         result have both the low and high bounds of the right operand (not
4799         just the high bound, as was the case prior to this fix). Also,
4800         fix the saved high bound setting (Last_Opnd_High_Bound) in the
4801         empty string literal case (should have been low bound minus one,
4802         rather than plus one).
4803
4804 2012-01-23  Thomas Quinot  <quinot@adacore.com>
4805
4806         * scos.ads, put_scos.adb, get_scos.adb (Get_SCOs, Put_SCOs): Do not
4807         omit statement SCOs for disabled pragmas.
4808
4809 2012-01-23  Matthew Heaney  <heaney@adacore.com>
4810
4811         * a-cohase.ads, a-cihase.ads, a-cbhase.ads, a-coorse.ads,
4812         a-ciorse.ads, a-cborse.ads, a-cohama.ads, a-cihama.ads, a-cbhama.ads,
4813         a-coorma.ads, a-ciorma.ads, a-cborma.ads, a-cdlili.ads, a-cidlli.ads,
4814         a-cbdlli.ads, a-convec.ads, a-coinve.ads, a-cobove.ads (Cursor'Read,
4815         Cursor'Write): Declare in private part.
4816         (Reference_Type'Read, Reference_Type'Write): Ditto.
4817         (Constant_Reference_Type'Read, Constant_Reference_Type'Write): Ditto.
4818
4819 2012-01-23  Robert Dewar  <dewar@adacore.com>
4820
4821         * a-catizo.ads, a-calend.adb, a-calend.ads, par-ch13.adb: Minor
4822         reformatting.
4823
4824 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
4825
4826         * sem_ch6.adb (Analyze_Subprogram_Declaration): Do not set the
4827         Corresponding_Body on a defaulted null formal subprogram.
4828         * sem_ch12.adb (Check_Formal_Package_Instance): No check needed
4829         on a defaulted formal subprogram that is a null procedure.
4830
4831 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
4832
4833         * exp_ch9.adb: Update the comments involving pragma Implemented.
4834         * sem_ch3.adb (Check_Pragma_Implemented (Entity_Id)): Add local
4835         constant Subp_Alias and local variable Impl_Subp. Properly
4836         handle aliases of synchronized wrappers. Code cleanup.
4837         (Check_Pragma_Implemented (Entity_Id; Entity_Id)): Add
4838         Name_Optional as part of the condition.
4839         * sem_prag.adb (Analyze_Pragma): Add "Optional" as one of the
4840         valid choices of implementation kind.
4841         (Check_Arg_Is_One_Of): New routine.
4842         * snames.ads-tmlp: Add Name_Optional.
4843
4844 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
4845
4846         * par-ch13.adb: Better error recovery in illegal aspect
4847         specification.
4848
4849 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
4850
4851         * a-calend.adb: Add with clause for Interfaces.C. Add constant
4852         Unix_Max.
4853         (Day_Of_Week): Call the internal UTC_Time_Offset.
4854         (Split): Call the internal UTC_Time_Offset.
4855         (Time_Of): Call the internal UTC_Time_Offset.
4856         (Time_Zone_Operations.UTC_Time_Offset): Call internal UTC_Time_Offset.
4857         (UTC_Time_Offset): New library-level routine.
4858         * a-calend.ads (UTC_Time_Offset): Remove parameter
4859         Is_Historic. Update related comment on usage.
4860         * a-catizo.adb (UTC_Time_Offset): Removed.
4861         (UTC_Time_Offset (Time)): Call Time_Zone_Operations.UTC_Time_Offset.
4862         * a-caltizo.ads (UTC_Time_Offset): Removed.
4863         (UTC_Time_Offset (Time)): Add back the default expression of parameter
4864         Date.
4865
4866 2012-01-23  Robert Dewar  <dewar@adacore.com>
4867
4868         * sprint.ads, sprint.adb (Sprint_Node_List): Add New_Lines parameter
4869         (pg,po,ps): Make sure each entry starts on new line.
4870
4871 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
4872
4873         * a-calend.ads, a-calend.adb: Define types int and int_Pointer. Update
4874         the parameter profile of procedure localtime_tzoff and its associated
4875         comment.
4876         (Day_Of_Week): Do not treat the input date as historical
4877         with respect to time zones.
4878         (Split): Do not treat the input
4879         date as historical with respect to time zones.  (Time_Of): Do
4880         not treat the input constituents as forming a historical date
4881         with respect to time zones.
4882         (UTC_Time_Offset): Add new formal
4883         parameter Is_Historic. Add local variable Flag. Update the call
4884         to localtime_tzoff.
4885         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): New routine.
4886         (UTC_Time_Offset (Time)): Update the call to
4887         Time_Zone_Operations.UTC_Time_Offset.
4888         * sysdep.c (__gnat_localtime_tzoff): Update parameter
4889         profile. Split the processing of offsets on Windows into two - one
4890         part of historic time stamps and the other for the current time.
4891
4892 2012-01-23  Robert Dewar  <dewar@adacore.com>
4893
4894         * a-calend.adb: Minor reformatting.
4895
4896 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
4897
4898         * exp_ch9.adb, sem_ch9.adb: Handle array of access to synchronized
4899         interface in requeue statement.
4900
4901 2012-01-23  Cyrille Comar  <comar@adacore.com>
4902
4903         * projects.texi: Remove references to main units and replace
4904         with references to main programs to be coherent with the
4905         documentation.
4906
4907 2012-01-23  Robert Dewar  <dewar@adacore.com>
4908
4909         * s-utf_32.adb: Minor reformatting.
4910
4911 2012-01-23  Vincent Celier  <celier@adacore.com>
4912
4913         * snames.ads-tmpl: Minor comment addition Indicate that
4914         Name_Library_Encapsulated_Options is only used in gprbuild.
4915
4916 2012-01-23  Robert Dewar  <dewar@adacore.com>
4917
4918         * sem_ch10.adb (Analyze_Subunit): Properly save/restore cunit
4919         restrictions.
4920
4921 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
4922
4923         * snames.ads-tmpl: Add Name_Synchronization.
4924         * aspects.ads, aspects.adb: Add Aspect_Synchronization to
4925         enumeration type and related maps.
4926         * sem_ch13.adb (Analyze_Aspect_Specifications): Handle Aspect
4927         Synchronization, build corresponding pragma Implemented.
4928         * sem_util.adb (Implementation_Kind): Handle both explicit and
4929         implicit pragma_argument association to retrieve the given
4930         synchronization mode.
4931
4932 2012-01-23  Robert Dewar  <dewar@adacore.com>
4933
4934         * sem_ch10.adb, errout.adb: Minor reformatting.
4935
4936 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
4937
4938         * sem_res.adb (Resolve_Actuals): An actual in a call to an
4939         Ada 2012 Reference function does not lead to a dangerous order
4940         dependence.
4941
4942 2012-01-23  Gary Dismukes  <dismukes@adacore.com>
4943
4944         * exp_util.adb (Is_Iterated_Container): Test
4945         Is_Entity_Name when searching for calls to the default iterator,
4946         to avoid blowing up on indirect calls which have an explicit
4947         dereference as the call name.
4948
4949 2012-01-23  Thomas Quinot  <quinot@adacore.com>
4950
4951         * errout.adb (Set_Msg_Node): For an N_Expanded_Name, output
4952         the complete expanded name, rather than just its Selector_Name.
4953
4954 2012-01-23  Thomas Quinot  <quinot@adacore.com>
4955
4956         * a-textio.adb (Put): Rewrite one-parameter Character version to
4957         just call the two-parameter one with Current_Out.
4958
4959 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
4960
4961         * freeze.adb (Check_Current_Instance): Issue an
4962         error when the prefix of 'Unchecked_Access or 'Access does not
4963         denote a legal aliased view of a type.
4964         (Freeze_Record_Type): Do not halt the processing of record components
4965         once the Has_Controlled_Component is set as this bypasses the remaining
4966         checks.
4967         (Is_Aliased_View_Of_Type): New routine.
4968
4969 2012-01-23  Thomas Quinot  <quinot@adacore.com>
4970
4971         * errout.ads, freeze.adb: Minor reformatting.
4972
4973 2012-01-23  Thomas Quinot  <quinot@adacore.com>
4974
4975         * sem_ch10.adb, sem_prag.adb: Remove redundant apostrophes in error
4976         messages.
4977
4978 2012-01-23  Olivier Hainque  <hainque@adacore.com>
4979
4980         * adadecode.c (__gnat_decode): Deal with empty input early,
4981         preventing potential erroneous memory access later on.
4982
4983 2012-01-21  Eric Botcazou  <ebotcazou@adacore.com>
4984
4985         PR ada/46192
4986         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the case of a
4987         renaming, preserve the volatileness through the indirection, if any.
4988
4989 2012-01-14  Andreas Schwab  <schwab@linux-m68k.org>
4990
4991         * gcc-interface/Makefile.in (OSCONS_EXTRACT): Add
4992         $(GNATLIBCFLAGS).
4993
4994 2012-01-10  Pascal Obry  <obry@adacore.com>
4995
4996         * prj-nmsc.adb (Check_Library_Attributes):
4997         Kill check for object/source directories for aggregate libraries.
4998
4999 2012-01-10  Matthew Heaney  <heaney@adacore.com>
5000
5001         * a-cdlili.adb, a-cdlili.ads, a-cihama.adb, a-cihama.ads, a-coinve.adb,
5002         a-coinve.ads, a-ciorse.adb, a-ciorse.ads, a-coorma.adb, a-coorma.ads,
5003         a-cborma.adb, a-cborma.ads, a-cidlli.adb, a-cidlli.ads, a-cimutr.adb,
5004         a-cimutr.ads, a-cihase.adb, a-cihase.ads, a-cohama.adb, a-cohama.ads,
5005         a-coorse.adb, a-coorse.ads, a-cbhama.adb, a-cbhama.ads, a-cborse.adb,
5006         a-cborse.ads, a-comutr.adb, a-comutr.ads, a-ciorma.adb, a-cobove.adb,
5007         a-ciorma.ads, a-cobove.ads, a-convec.adb, a-convec.ads, a-cohase.adb,
5008         a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbmutr.adb, a-cbmutr.ads,
5009         a-cbhase.adb, a-cbhase.ads (Reference, Constant_Reference): Declare
5010         container parameter as aliased in/in out.
5011         Code clean ups.
5012
5013 2012-01-10  Bob Duff  <duff@adacore.com>
5014
5015         * s-os_lib.ads: Improve comment.
5016
5017 2012-01-10  Geert Bosch  <bosch@adacore.com>
5018
5019         * s-gearop.adb (Forward_Eliminate): Avoid improper aliasing
5020         for complex Scalar.
5021
5022 2012-01-10  Bob Duff  <duff@adacore.com>
5023
5024         * sem_intr.adb (Check_Shift): Use RM_Size instead of Esize, when
5025         checking that the 'Size is correct. If the type is "mod 2**12",
5026         for example, it's illegal, but Esize is the 'Object_Size, which
5027         will be something like 16 or 32, so the error ('Size = 12) was
5028         not detected.
5029         * gnat_rm.texi: Improve documentation of shift
5030         and rotate intrinsics.
5031
5032 2012-01-10  Pascal Obry  <obry@adacore.com>
5033
5034         * prj.adb (For_Every_Project_Imported): Fix
5035         implementation to make sure we return each project only once
5036         for aggragte libraries. It is fine to return a project twice for
5037         aggregate projects, this was the case as a Project_Id is different
5038         in each project tree. The new implementation use a table based on
5039         the project name to ensure proper detection of duplicate project
5040         in aggregate library. A new context is then created to continue
5041         retrurning duplicate project for aggregate libraries.
5042
5043 2012-01-09  Eric Botcazou  <ebotcazou@adacore.com>
5044
5045         * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
5046         return value in the variable-sized return type case if the target is
5047         an array with fixed size.  However, do not create it if this is the
5048         expression of an object declaration.
5049
5050 2012-01-09  Eric Botcazou  <ebotcazou@adacore.com>
5051
5052         * gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko.
5053
5054 2012-01-06  Robert Dewar  <dewar@adacore.com>
5055
5056         * a-wichha.ads, a-wichun.ads, a-zchhan.ads, a-zchuni.ads,
5057         s-utf_32.ads: Add pragma Pure
5058         * s-utf_32.adb: Suppress warnings on non-static constants (now
5059         that this is Pure).
5060
5061 2012-01-06  Bob Duff  <duff@adacore.com>
5062
5063         * s-rpc.ads (Read, Write): Add overriding indicators.
5064
5065 2012-01-06  Robert Dewar  <dewar@adacore.com>
5066
5067         * gnat_rm.texi: Add documentation for conventions
5068         Ada_Pass_By_Copy and Ada_Pass_By_Reference.
5069
5070 2012-01-06  Gary Dismukes  <dismukes@adacore.com>
5071
5072         * a-tienio.adb (Put): Add exception message on
5073         raise statements. Remove unneeded blocks and object declarations.
5074
5075 2012-01-06  Robert Dewar  <dewar@adacore.com>
5076
5077         * sem_prag.adb: Minor reformatting.
5078
5079 2012-01-06  Ed Schonberg  <schonberg@adacore.com>
5080
5081         * sinfo.ads, sinfo.adb (Has_Prefixed_Call): New flag to indicate
5082         that a selected component within a generic unit has been resolved
5083         as a prefixed call with local references.
5084         * sem_ch3.adb (Is_Visible_Component): In an instance body a selected
5085         component is always visible.
5086         * sem_ch4.adb (Analyze_Selected_Component): If the node is a
5087         prefixed call in an instance, do not look for visible components
5088         of the type.
5089         * sem_ch12.adb (Reset_Entity): If a selected component has resolved
5090         to a prefixed call, mark the node accordingly when prefix and
5091         selector are local references.
5092
5093 2012-01-02  Eric Botcazou  <ebotcazou@adacore.com>
5094
5095         * gnatvsn.ads (Current_Year): Bump to 2012.
5096 \f
5097 Copyright (C) 2012 Free Software Foundation, Inc.
5098
5099 Copying and distribution of this file, with or without modification,
5100 are permitted in any medium without royalty provided the copyright
5101 notice and this notice are preserved.