t-linux64: Delete the 32-bit multilib that uses software floating point emulation.
[official-gcc.git] / gcc / ada / ChangeLog
blob504783beb64bd45753a157ebb8efbe771fd614df
1 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3         PR ada/52362
4         * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
5         (__gnat_using_gnu_linker): Delete.
6         * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
7         Declare Object_File_Option string constant and Using_GNU_response_file
8         boolean constant.
9         (Process_Binder_File): ...instead of here.  Delete Using_GNU_Linker,
10         Opening and Closing local variables.  Do not handle the GNU linker
11         specially.
12         (Write_RF): New procedure to write into the response file.  Escape some
13         characters if a GNU response file is used.  Keep track of error status.
14         Invoke Write_RF to write into the response file.  Delete the file only
15         if the link was successful.
16         * mlib-utl.adb: Do not `with' package System.
17         (Gcc): Likewise.  Declare Object_File_Option string constant and
18         Using_GNU_response_file boolean constant.
19         (Write_RF): Take a string instead of address and length.  Escape some
20         characters if a GNU response file is used.
21         Invoke Write_RF to write into the response file.  Delete the file only
22         if the link was successful.  Do not warn if it cannot be deleted.
24 2012-05-20  Eric Botcazou  <ebotcazou@adacore.com>
26         * gcc-interface/utils.c (gnat_write_global_declarations): Put a name
27         on the dummy global variable.
29 2012-05-19  Eric Botcazou  <ebotcazou@adacore.com>
31         * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
32         (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
33         calling convention
34         (get_minimal_subprog_decl): Likewise.
35         (gnat_first_param_is_class): New predicate.
37         * gcc-interface/misc.c (gnat_handle_option): Fix formatting.
38         * gcc-interface/Makefile.in: Likewise.
40 2012-05-18  Eric Botcazou  <ebotcazou@adacore.com>
42         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at
43         global level with unconstrained nominal subtype and a non-fixed size,
44         make a variable for the size.
46 2012-05-15  Andris Pavenis  <andris.pavenis@iki.fi>
48         PR ada/52494
49         * s-taprop-dummy.adb (Specific): New package.
51 2012-05-15  Olivier Hainque  <hainque@adacore.com>
53         * gcc-interface/Make-lang.in (COMMON_FLAGS_TO_PASS): Use WARN_CFLAGS
54         instead of trying to mimic it.
56 2012-05-15  Robert Dewar  <dewar@adacore.com>
58         * sem_ch5.adb, sem_util.adb, s-stposu.adb, exp_ch4.adb: Minor
59         reformatting.
61 2012-05-15  Geert Bosch  <bosch@adacore.com>
63         * uintp.adb (UI_Rem): Remove optimizations, as they are complex and are
64         not needed.
65         (Sum_Digits): Remove, no longer used.
66         (Sum_Double_Digits): Likewise.
68 2012-05-15  Yannick Moy  <moy@adacore.com>
70         * aspects.ads: Minor typo.
72 2012-05-15  Thomas Quinot  <quinot@adacore.com>
74         * gnat_rm.texi (Scalar_Storage_Order): Fix RM reference.
75         * sem_ch13.adb: Minor comment fix: incorrect RM reference.
77 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
79         * sem_prag.adb (Process_Atomic_Shared_Volatile): Propagate
80         atomicity from an object to its underlying type only if it
81         is composite.
83 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
85         * sem_ch5.adb (Analyze_Iterator_Specification): Set kind of
86         loop variable after pre-analysis of iterator name, to prevent
87         premature usage of loop variable.
89 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
91         * sem_util.adb (Is_Variable): In Ada 2012, an explicit
92         dereference that is a rewriting of an expression whose type has
93         a declared Implicit_Derenference aspect is a variable.
95 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
97         * exp_ch4.adb (Insert_Dereference_Action): Reimplemented. The
98         routine performs address and size adjustments for dereferences
99         of heap-allocated controlled objects. This manipulation is needed
100         in order to restore the original state of the memory at the time
101         it was allocated by the finalization machinery.
102         * rtsfind.ads: Add RE_Adjust_Controlled_Dereference to tables
103         RE_Id and RE_Unit_Table.
104         * sinfo.adb (Has_Dereference_Action): New routine.
105         (Set_Has_Dereference_Action): New routine.
106         * sinfo.ads: Add new semantic flag Has_Dereference_Action along
107         its association in nodes.
108         (Has_Dereference_Action): New routine and pragma Inline.
109         (Set_Has_Dereference_Action): New routine and pragma Inline.
110         * s-stposu.ads, s-stposu.adb (Adjust_Controlled_Dereference): New
111         routine.
113 2012-05-15  Thomas Quinot  <quinot@adacore.com>
115         * uintp.adb (Image_Uint): Use UI_Div_Rem to get quotient and
116         remainder of U / Base in a single operation.
118 2012-05-15  Robert Dewar  <dewar@adacore.com>
120         * exp_ch5.adb, inline.adb, sem_ch10.adb, prj.ads, sem_util.adb,
121         a-ngelfu.ads, exp_ch4.adb, exp_ch6.adb, aspects.ads, sem_ch6.adb,
122         vms_data.ads, exp_ch3.adb, prj-env.adb: Minor reformatting.
124 2012-05-15  Thomas Quinot  <quinot@adacore.com>
126         * exp_ch4.adb (Has_Inferable_Discriminants): For a qualified
127         expression, use correct node for test on the subtype denoted by
128         the subtype mark.
130 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
132         * inline.adb (Scope_In_Main_Unit): Rename into...
133         (In_Main_Unit_Or_Subunit): ...this.  Also return
134         true if the subprogram is within a subunit of the
135         main unit.
136         (Add_Inlined_Body): Adjust for above renaming.
137         (Add_Inlined_Subprogram): Likewise.  Pass the subprogram directly.
138         (Analyze_Inlined_Bodies): Really set aside inlined subprograms
139         not handled by Add_Inlined_Body.
141 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
143         * sem_ch10.adb (Expand_With_Clause): In the context of a generic
144         package declaration, a private with-clause on a child unit implies
145         that the implicit with clauses on its parents are private as well.
147 2012-05-15  Javier Miranda  <miranda@adacore.com>
149         * sem_ch6.adb (Is_Interface_Conformant): Add missing call to
150         Base_Type to handle subtypes.
151         * exp_ch6.adb (Expand_Call): For calls located in thunks handle
152         unchecked conversions of access types found in actuals.
153         * exp_disp.adb (Expand_Interface_Thunk): Add missing unchecked
154         conversion to actuals whose type is an access type. Done to
155         avoid reporting spurious errors.
157 2012-05-15  Vincent Celier  <celier@adacore.com>
159         * prj-env.adb (Create_Mapping): Ignore sources that are
160         suppressed (Create_Mapping_File.Process): Ditto
161         * prj-nmsc.adb (Add_Source): Update to take into
162         account suppressed files that may hide inherited sources.
163         (Mark_Excluded_Sources): Mark excluded sources of the current
164         project as suppressed.
165         * prj.ads (Source_Data): New Boolean component Suppressed,
166         defaulted to False
168 2012-05-15  Thomas Quinot  <quinot@adacore.com>
170         * exp_intr.adb: Minor reformatting.
172 2012-05-15  Thomas Quinot  <quinot@adacore.com>
174         * gnat_rm.texi: Document attribute Scalar_Storage_Order.
176 2012-05-15  Javier Miranda  <miranda@adacore.com>
178         * exp_ch3.adb (Build_Offset_To_Top): Modify the
179         expansion of the offset_to_top functions to ensure that their
180         profile is conformant with the profile specified in Ada.Tags. No
181         change in functionality.
183 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
185         * inline.adb (Subp_Info): Remove Count and Next_Nopred
186         components, add Processed component and move around Next component.
187         (Add_Call): Reverse meaning of Successors table to the natural one.
188         (Add_Inlined_Body): Do not inline a package if it is in the main unit.
189         (Add_Inlined_Subprogram): Do not add the subprogram to the list if the
190         package is in the main unit. Do not recurse on the successors.
191         (Add_Subp): Adjust to new contents of Subp_Info.
192         (Analyze_Inlined_Bodies): Do not attempt
193         to compute a topological order on the list of inlined subprograms,
194         but compute the transitive closure from the main unit instead.
195         (Get_Code_Unit_Entity): Always return the spec for a package.
197 2012-05-15  Yannick Moy  <moy@adacore.com>
199         * aspects.ads: Minor addition of comments to provide info on
200         how to add new aspects.
202 2012-05-15  Thomas Quinot  <quinot@adacore.com>
204         * osint.ads: Minor reformatting.
206 2012-05-15  Thomas Quinot  <quinot@adacore.com>
208         * exp_ch5.adb, exp_pakd.adb, sem_util.adb, sem_util.ads
209         (Expand_Assign_Array): Handle the case of a packed bit array within a
210         record with reverse storage order (assign element by element in that
211         case).
212         (In_Reverse_Storage_Order_Record): New subprogram,
213         code extracted from Exp_Pakd.
215 2012-05-15  Yannick Moy  <moy@adacore.com>
217         * a-ngelfu.ads: Add postconditions using Ada 2012
218         aspect syntax, reflecting some of the RM requirements for these
219         functions, from Annex A.5.1 or G.2.4.
221 2012-05-15  Thomas Quinot  <quinot@adacore.com>
223         * adaint.c: Minor fix: move misplaced comment.
225 2012-05-15  Doug Rupp  <rupp@adacore.com>
227         * vms_data.ads: Enhance help for /IMMEDIATE_ERRORS to discourage
228         use by customers.
230 2012-05-15  Tristan Gingold  <gingold@adacore.com>
232         * a-exextr.adb: Add comment.
234 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
236         * sem_ch3.adb: Minor reformatting (remove long dead code).
238 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
240         * aspects.adb, aspects.ads: Add aspects for Convention, Export,
241         External_Name, Import, and Link_Name.
242         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): if the
243         pragma comes from an aspect specification, the entity is the
244         first argument.
245         * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
246         Pragma_Import): if the pragma comes from an aspect specification,
247         the entity is the first argument, and the second has the value
248         True by default.
249         * sem_ch13.adb (Analyze_Aspect_Specifications): generate pragam
250         for aspect Convention. Add placeholders for Link_Name and
251         External_Name.
253 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
255         * exp_ch9.adb (Expand_N_Asynchronous_Select): Extract the statements
256         of the abortable part and triggering alternative after being processed
257         for controlled objects.
258         (Expand_N_Timed_Entry_Call): Code and comment reformatting.
260 2012-05-15  Robert Dewar  <dewar@adacore.com>
262         * sem_util.adb: Minor code reorganization.
264 2012-05-15  Robert Dewar  <dewar@adacore.com>
266         * exp_ch7.adb, exp_ch11.adb, exp_ch11.ads: Minor reformatting.
268 2012-05-15  Thomas Quinot  <quinot@adacore.com>
270         * sem_res.adb (Resolve): Enforce E.2.2(11/2) and E.2.2(12) for
271         'Unrestricted_Access and 'Unchecked_Access (not just 'Access):
272         even in those cases, a remote access type may only designate a
273         remote subprogram.
275 2012-05-15  Thomas Quinot  <quinot@adacore.com>
277         * sem_util.adb, sem_util.ads, sem_cat.adb: Minor refactoring.
278         (Enclosing_Lib_Unit_Node): Rename to Enclosing_Comp_Unit_Node.
280 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
282         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove obsolete
283         checks on nested inlined subprograms.
285 2012-05-15  Tristan Gingold  <gingold@adacore.com>
287         * fe.h (Get_RT_Exception_Name): Declare.
289 2012-05-15  Tristan Gingold  <gingold@adacore.com>
291         * raise-gcc.c (db_region_for): Use %p + cast to avoid warnings.
292         (get_region_description_for): Likewise.
293         (db_action_for): Likewise.
294         (get_call_site_action_for): Likewise.
295         (get_ttype_entry_for): Remove useless 'const'.
296         (PERSONALITY_FUNCTION): Add ATTRIBUTE_UNUSED on uw_exception_class.
298 2012-05-15  Tristan Gingold  <gingold@adacore.com>
300         * a-exextr.adb (Unhandled_Exception_Terminate): Save occurrence
301         on the stack to avoid a dynamic memory allocation.
303 2012-05-15  Bob Duff  <duff@adacore.com>
305         * exp_ch9.adb (Expand_N_Timed_Entry_Call): Move initialization of
306         E_Stats and D_Stats after Process_Statements_For_Controlled_Objects,
307         because those calls can destroy the Statements list.
309 2012-05-15  Tristan Gingold  <gingold@adacore.com>
311         * fe.h (Get_RT_Exception_Name): Define.
312         * types.ads (RT_Exception_Code): Update comment.
313         * exp_ch11.adb, exp_ch11.ads (Get_RT_Exception_Name): New
314         procedure to get the name of the rcheck subprograms.
315         * a-except-2005.adb (Rcheck_xx): Rename.
316         * a-except.adb Likewise, but also keep the old Rcheck_nn routines
317         for bootstrap.
318         * arith64.c (__gnat_mulv64): Use __gnat_rcheck_CE_Overflow_Check
319         instead of __gnat_rcheck_10.
320         * gcc-interface/trans.c (build_raise_check): Use Get_RT_Exception_Name
321         to create the __gnat_rcheck routines name.
322         * gcc-interface/Make-lang.in: Update dependencies.
324 2012-05-15  Tristan Gingold  <gingold@adacore.com>
326         * exp_ch7.adb (Build_Exception_Handler): Save current
327         occurrence only if -gnateE.
328         (Build_Object_Declaration): Declare E_Id only if -gnateE.
329         (Build_Raise_Statement): Call Raise_From_Controlled_Operation only if
330         -gnateE (else raise PE).
331         * s-soflin.adb (Save_Library_Occurrence): Handle null occurrence
332         access.
333         * a-except-2005.adb (Reraise_Library_Exception_If_Any): Call
334         Raise_From_Controlled_Operation only if the saved occurrence is
335         not null, otherwise raise PE.
337 2012-05-15  Yannick Moy  <moy@adacore.com>
339         * exp_alfa.ads: Add comments describing the Alfa mode.
341 2012-05-15  Tristan Gingold  <gingold@adacore.com>
343         * s-soflin.ads, s-soflin.adb (Save_Library_Occurrence): Parameter
344         E is now of type Exception_Occurrence_Access.
345         * exp_ch7.ads, exp_ch7.adb (Build_Exception_Handler): Adjust generated
346         call to Save_Library_Occurrence.
348 2012-05-15  Thomas Quinot  <quinot@adacore.com>
350         * exp_ch4.adb (Rewrite_Coextension): Use Insert_Action to
351         insert temporary variable decl at the proper place in the tree.
353 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
355         * g-calend.adb (Split_At_Locale): New routine.
356         (Time_Of_At_Locale): New routine.
357         * g-calend.ads (Split_At_Locale): New routine.
358         (Time_Of_At_Locale): New routine.
360 2012-05-15  Gary Dismukes  <dismukes@adacore.com>
362         * a-except.ads: Minor reformatting.
364 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
366         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the loop
367         parameter specification is part of a quantified expression, and it
368         already carries a type, do not repeat the analysis to preserve
369         type information: a range attribute reference may have been
370         rewritten as a range with static bounds, and its re-analysis may
371         type it as Integer by default, instead of the original index type.
373 2012-05-15  Robert Dewar  <dewar@adacore.com>
375         * s-osprim-mingw.adb: Minor reformatting.
377 2012-05-15  Arnaud Charlet  <charlet@adacore.com>
379         * a-except.adb, a-except.ads (Reraise_Library_Exception_If_Any): New.
380         Mark this unit preelaborate.
381         * s-soflin.ads: Make package Preelaborate.
383 2012-05-15  Robert Dewar  <dewar@adacore.com>
385         * s-osprim-mingw.adb, sem_eval.adb, a-calend-vms.ads: Minor reformatting
387 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
389         * sem_eval.adb (Subtypes_Statically_Match): In Ada 2012, static
390         matching requires matching of static subtype predicates as well.
392 2012-05-15  Ed Schonberg  <schonberg@adacore.com>
394         * sem_case.adb (Analyze_Choices): If the subtype of the
395         expression has a non-static predicate, the case alternatives
396         must cover the base type.
398 2012-05-15  Tristan Gingold  <gingold@adacore.com>
400         * a-calend-vms.ads: Add pragma export to Split and Time_Of.
401         Merge comments from a-calend.ads to minimize differences.
403 2012-05-15  Sergey Rybin  <rybin@adacore.com frybin>
405         * gnat_ugn.texi: gnatmetric: add a small example that demonstrates
406         the difference between control coupling and unit coupling.
408 2012-05-15  Tristan Gingold  <gingold@adacore.com>
410         * bindgen.adb (Gen_Header): Remove code to emit LE_Set.
411         (Gen_Finalize_Library): Replace test with
412         a call to __gnat_reraise_library_exception_if_any.
413         * s-soflin.ads (Library_Exception): Do not export.
414         (Library_Exception_Set): Likewise.
415         * a-except-2005.ads, a-except-2005.adb
416         (Reraise_Library_Exception_If_Any): New procedure.
418 2012-05-15  Geert Bosch  <bosch@adacore.com>
420         * sem_ch9.adb (Allows_Lock_Free_Implementation): out or in out
421         parameters can be access types as well, not just scalar types,
422         so relax the test to Is_Elementary_Type.
424 2012-05-15  Bob Duff  <duff@adacore.com>
426         * s-atacco.ads s-atacco.adb: Replace pragma Elaborate_Body
427         with pragma No_Body.
428         (Xyz): Remove Xyz, which is apparently unnecessary.
430 2012-05-15  Tristan Gingold  <gingold@adacore.com>
432         * a-calend-vms.adb: Complete previous change.
434 2012-05-15  Bob Duff  <duff@adacore.com>
436         * s-win32.ads: Minor comment fix.
437         * s-osprim-mingw.adb: Minor editing.
439 2012-05-15  Robert Dewar  <dewar@adacore.com>
441         * exp_ch9.adb, sem_ch9.adb, sem_ch13.adb: Minor reformatting.
443 2012-05-15  Robert Dewar  <dewar@adacore.com>
445         * g-comlin.adb, g-comlin.ads: Minor reformatting.
447 2012-05-15  Vincent Pucci  <pucci@adacore.com>
449         * aspects.adb, aspects.adb: Reordering of the Aspect_Idi list. New
450         aspect Aspect_Lock_Free.
451         * einfo.adb, einfo.ads: New flag Uses_Lock_Free (flag 188).
452         (Set_Uses_Lock_Free): New routine.
453         (Uses_Lock_Free): New routine.
454         * exp_ch7.adb (Is_Simple_Protected_Type): Return False for
455         lock-free implementation.
456         * exp_ch9.adb (Allows_Lock_Free_Implementation): Moved to Sem_Ch9.
457         (Build_Lock_Free_Unprotected_Subprogram_Body): Protected
458         procedure uses __sync_synchronise. Check both Object_Size
459         and Value_Size.
460         (Expand_N_Protected_Body): Lock_Free_Active
461         renames Lock_Free_On.
462         (Expand_N_Protected_Type_Declaration):
463         _Object field removed for lock-free implementation.
464         (Install_Private_Data_Declarations): Protection object removed
465         for lock-free implementation.
466         (Make_Initialize_Protection):
467         Protection object initialization removed for lock-free implementation.
468         * rtsfind.ads: RE_Atomic_Synchronize and RE_Relaxed added.
469         * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect_Lock_Free
470         analysis added.
471         * sem_ch9.adb (Allows_Lock_Free_Implementation): New routine.
472         (Analyze_Protected_Body): Allows_Lock_Free_Implementation call added.
473         (Analyze_Protected_Type_Declaration):
474         Allows_Lock_Free_Implementation call added.
475         (Analyze_Single_Protected_Declaration): Second analysis of
476         aspects removed.
477         * s-atopri.ads: Header added.
478         (Atomic_Synchronize): New routine.
480 2012-05-15  Robert Dewar  <dewar@adacore.com>
482         * exp_ch7.ads: Add comment.
484 2012-05-15  Hristian Kirtchev  <kirtchev@adacore.com>
486         * a-calend.adb (Day_Of_Week): The routine once again treats
487         all dates as historic.  (Formatting_Operations.Split): All
488         calls to UTC_Time_Offset are now controlled through formal
489         parameter Is_Historic.  (Formatting_Operations.Time_Of):
490         All calls to UTC_Time_Offset are now handled through
491         formal parameter Is_Historic.
492         (Split): Update the call to Formatting_Operations.Split.
493         (Time_Of): Update the call to Formatting_Operations.Time_Of.
494         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
495         (To_Strict_Tm): Update the call to Formatting_Operations.Split.
496         * a-calend.ads (Split): Add new formal Is_Historic along with
497         comment on usage. This routine is now exported for the purposes
498         of GNAT.Calendar.Locale.
499         (Time_Of): Remove defaults. Add new
500         formal Is_Historic along with comment on usage. This routine is
501         now exported for the purposes of GNAT.Calendar.Locale.
502         * a-calend-vms.adb (Split): Update the call to
503         Formatting_Operations.Split.
504         (Time_Of): Update the call to Formatting_Operations.Time_Of.
505         * a-calend-vms.ads (Split): Add new formal Is_Historic along
506         with comment on usage.  (Time_Of): Remove defaults. Add new
507         formal Is_Historic along with comment on usage.
508         * a-calfor.adb (Split): Update the call to
509         Formatting_Operations.Split.
510         (Time_Of): Update the call to Formatting_Operations.Time_Of.
512 2012-05-15  Vincent Celier  <celier@adacore.com>
514         * prj-nmsc.adb (Add_Source): Always add the source if it is
515         excluded, to avoid incorrect duplicate checks.
517 2012-05-15  Yannick Moy  <moy@adacore.com>
519         * sem_aux.ads: Correct typo.
520         * sem_eval.adb (Compile_Time_Known_Value): Return False in Alfa
521         mode for a deferred constant when outside of the scope of its
522         full view.
524 2012-05-15  Emmanuel Briot  <briot@adacore.com>
526         * g-comlin.adb, g-comlin.ads (Define_Switch): Allow specifying the name
527         of the argument, for the automatic help message.
528         (Getopt): do not systematically initialize switches with string values
529         to the empty string, when the user has already specified a default.
531 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
533         * gcc-interface/utils.c (DEF_ATTR_STRING): New.
535 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
537         PR 53063
538         * gcc-interface/misc.c: Include opts.h and options.h before tm.h.
539         (gnat_handle_option): Call lang-specific generated function.
541 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
543         * gcc-interface/lang.opt (I): Comment out help text with no effect.
544         (nostdinc): Comment out help text with no effect.
546 2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>
548         * gcc-interface/Makefile.in (TOOLS_LIBS): Add ../../ggc-none.o.
550 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
552         PR 53063
553         * gcc-interface/misc.c (gnat_parse_file): Move before ...
554         (gnat_handle_option): ... this. Use handle_generated_option.
556 2012-05-10  Richard Guenther  <rguenther@suse.de>
558         * gcc-interface/cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use.
560 2012-05-06  Tristan Gingold  <gingold@adacore.com>
562         * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
564 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
566         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
567         case, use the padded type if the renamed object has an unconstrained
568         type with default discriminant.
570 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
572         * gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant
573         conditions with only one bound.
574         (Raise_Error_to_gnu): Likewise.  New function extracted from...
575         (gnat_to_gnu) <N_Raise_Constraint_Error>: ...here.  Call above function
576         in regular mode only.
578 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
580         * gcc-interface/misc.c (gnat_post_options): Disable caret by default.
582 2012-05-06  Eric Botcazou  <ebotcazou@adacore.com>
584         * gcc-interface/gigi.h (make_packable_type): Declare.
585         (make_type_from_size): Likewise.
586         (relate_alias_sets): Likewise.
587         (maybe_pad_type): Adjust.
588         (init_gnat_to_gnu): Delete.
589         (destroy_gnat_to_gnu): Likewise.
590         (init_dummy_type): Likewise.
591         (destroy_dummy_type): Likewise.
592         (init_gnat_utils): Declare.
593         (destroy_gnat_utils): Likewise.
594         (ceil_pow2): New inline function.
595         * gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2.
596         <object>: Pass True for the final processing of alignment and size.
597         <E_Subprogram_Type>: Only create the TYPE_DECL for a padded return
598         type if necessary.
599         (round_up_to_align): Delete.
600         (ceil_alignment): Likewise.
601         (relate_alias_sets): Move to...
602         (make_aligning_type): Likewise.
603         (make_packable_type): Likewise.
604         (maybe_pad_type): Likewise.
605         (make_type_from_size): Likewise.
606         * gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete.
607         (struct pad_type_hash): New type.
608         (pad_type_hash_table): New static variable.
609         (init_gnat_to_gnu): Merge into...
610         (init_dummy_type): Likewise.
611         (init_gnat_utils): ...this.  New function.
612         (destroy_gnat_to_gnu): Merge into...
613         (destroy_dummy_type): Likewise.
614         (destroy_gnat_utils): ...this.  New function.
615         (pad_type_hash_marked_p): New function.
616         (pad_type_hash_hash): Likewise.
617         (pad_type_hash_eq): Likewise.
618         (relate_alias_sets): ...here.
619         (make_aligning_type): Likewise.
620         (make_packable_type): Likewise.
621         (maybe_pad_type): Likewise.  Change same_rm_size parameter into
622         set_rm_size; do not set TYPE_ADA_SIZE if it is false.  Do not set
623         null as Ada size.  Do not set TYPE_VOLATILE on the padded type.  If it
624         is complete and has constant size, canonicalize it.  Bail out earlier
625         if a warning need not be issued.
626         (make_type_from_size): Likewise.
627         <INTEGER_TYPE>: Bail out if size is too large
628         (gnat_types_compatible_p): Do not deal with padded types.
629         (convert): Compare main variants for padded types.
630         * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils.
631         (gnat_to_gnu): Do not convert at the end for a call to a function that
632         returns an unconstrained type with default discriminant.
633         (Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects.
634         * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise.
635         Do not use the padded type if it is BLKmode and the inner type is
636         non-BLKmode.
638 2012-05-02  Pascal Obry  <obry@adacore.com>
640         Revert
641         2012-02-24  Dave Korn  <dave.korn.cygwin@gmail.com>
643         * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
644         Windows-specific make variable.
645         (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
646         (install-gnatlib): Respect the above during installation when set,
647         and also install any windows import library that has been built.
648         (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
649         build a corresponding import library.
651 2012-04-30  Jan Hubicka  <jh@suse.cz>
653         * gcc-interface/utils.c (rest_of_subprog_body_compilation): Update
654         comment.
655         (gnat_write_global_declarations): Use finalize_compilation_unit.
657 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
659         * gcc-interface/decl.c (gnat_to_gnu_entity): In type annotation mode,
660         do not adjust the size of a tagged type if there is a representation
661         clause on it.  Otherwise, round the adjustment up to the alignment
662         of the first field and use the appropriate helper routine.
663         (maybe_pad_type): Do not warn in type annotation mode on a tagged type.
664         (gnat_to_gnu_field): Do not error out under the same circumstances.
665         (annotate_rep): In type annotation mode, do not adjust the offset of
666         components of a tagged type with representation clause.  Otherwise,
667         round the adjustment up to the alignment of the first field.
669 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
671         * gcc-interface/utils.c (finish_record_type): Force the traditional GCC
672         layout for bitfields on the type if it is packed or has a representation
673         clause and an alternate layout is available.
675 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
677         * gcc-interface/gigi.h (mark_out_of_scope): Delete.
678         (destroy_gnat_to_gnu): Declare.
679         (destroy_dummy_type): Likewise.
680         * gcc-interface/decl.c (mark_out_of_scope): Delete.
681         * gcc-interface/utils.c (destroy_gnat_to_gnu): New function.
682         (destroy_dummy_type): Likewise.
683         * gcc-interface/trans.c (gnat_validate_uc_list): New variable.
684         (gigi): Call validate_unchecked_conversion on gnat_validate_uc_list
685         after the translation is completed.  Call destroy_gnat_to_gnu and
686         destroy_dummy_type at the end.
687         (Subprogram_Body_to_gnu): Do not call mark_out_of_scope.
688         (gnat_to_gnu) <N_Block_Statement>: Likewise.
689         <N_Validate_Unchecked_Conversion>: Do not process the node, only push
690         it onto gnat_validate_uc_list.
691         (validate_unchecked_conversion): New function.
693 2012-04-26  Tristan Gingold  <gingold@adacore.com>
695         * gcc-interface/Make-lang.in: Update dependencies.
696         Remove s-traceb and tracebak objects from gnat1 and gnatbind (not used).
697         Remove s-tasdeb and s-vaflop rules (not used).
699 2012-04-26  Olivier Hainque  <hainque@adacore.com>
701         * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Default to
702         DOUBLE_TYPE_SIZE instead of LONG_DOUBLE_TYPE_SIZE.
704 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
706         * a-calend.adb (Day_Of_Week): Keep the internal
707         usage of UTC_Time_Offset consistent with Time_Of and Split.
709 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
711         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Do not freeze
712         the loop variable while preanalyzing a quantified expression.
714 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
716         * a-calend.adb (Split, Time_Of): Rename parameter Is_Ada_05
717         to Use_TZ to better illustrate its function. Update all
718         references to the parameter.
719         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
720         * a-calend.ads (Split, Time_Of): Rename parameter Is_Ada_05
721         to Use_TZ to better illustrate its function. Update the related
722         comment on usage.
723         * a-calend-vms.adb (Split, Time_Of): Rename parameter
724         Is_Ada_05 to Use_TZ to better illustrate its function. Update
725         all references to the parameter.
726         (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
727         * a-calend-vms.ads (Split, Time_Of): Rename parameter Is_Ada_05
728         to Use_TZ to better illustrate its function. Update the related
729         comment on usage.
730         * a-calfor.adb (Split, Time_Of): Update the call to
731         Formatting_Operations.Time_Of.
732         * sysdep.c (__gnat_localtime_tzoff): Dereference pointer
733         "is_historic" and rewrite the check as a comparison. Add a
734         comment on flag values.
736 2012-04-26  Robert Dewar  <dewar@adacore.com>
738         * exp_ch2.adb, sem_ch8.adb: Minor reformatting.
740 2012-04-26  Vasiliy Fofanov  <fofanov@adacore.com>
742         * a-stzunb-shared.adb, gnat_ugn.texi, a-strunb-shared.adb,
743         a-strunb-shared.ads, uintp.adb, a-stwiun-shared.adb,
744         a-stwiun-shared.ads, a-cbhama.ads, vms_data.ads, a-cobove.adb,
745         a-convec.adb, sem_ch13.adb, a-cbhase.ads: Fix common misuses of the
746         word "then" where "than" should be used in English.
748 2012-04-26  Robert Dewar  <dewar@adacore.com>
750         * sem_ch5.adb (Check_Unreachable_Code): Skip past pragmas.
752 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
754         * s-finroo.ads: Remove with clause for
755         Ada.Streams. Type Root_Controlled is now abstract tagged null
756         record. Remove internal package Stream_Attributes. Root_Controlled
757         doesn't need stream attribute redeclaration and avoids the
758         dependency on streams.
760 2012-04-26  Tristan Gingold  <gingold@adacore.com>
762         * adaint.c (to_host_path_spec): Removed (unused).
763         Minor reformatting.
765 2012-04-26  Steve Baird  <baird@adacore.com>
767         * gnat_rm.texi Improve description of Valid_Scalars attribute.
769 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
771         * sem_ch6.adb (Can_Override_Operator): If the formal is a
772         generic type the operator cannot be overriding.
774 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
776         * sem_ch8.adb (Spec_Reloaded_For_Body): Check whether the type
777         is declared in a package specification, and current unit is the
778         corresponding package body. The use clauses themselves may be
779         within a nested package.
781 2012-04-26  Bob Duff  <duff@adacore.com>
783         * exp_ch2.adb (Param_Entity): Take into account the case where
784         the type of the entry parameter has a representation clause.
786 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
788         * gnat_ugn.texi: Tweak dimensionality doc.
790 2012-04-26  Robert Dewar  <dewar@adacore.com>
792         * sem_eval.adb: Minor reformatting.
794 2012-04-26  Robert Dewar  <dewar@adacore.com>
796         * einfo.adb, einfo.ads, sem_res.adb, sem_ch4.adb,
797         sem_eval.adb: Minor reformatting.
799 2012-04-26  Thomas Quinot  <quinot@adacore.com>
801         * freeze.adb: Minor change in error wording.
803 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
805         * gnat_ugn.texi: Documentation on dimensional analysis.
807 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
809         * einfo.adb, einfo.ads: Remove synthesized attribute
810         Proper_First_Index along with its associations in various nodes.
811         (Proper_First_Index): Removed.
812         * sem_ch4.adb (Analyze_Slice): Alphabetize constants. Add new
813         local variable Index_Type. The index type of a string literal
814         subtype is that of the stored low bound.
815         * sem_eval (Get_Static_Length): Remove the use of Proper_First_Index.
816         * sem_res.adb (Resolve_Slice): Alphabetize constants. Add
817         new local variable Index_Type. The index type of a
818         string literal subtype is that of the stored low bound.
819         (Set_String_Literal_Subtype): Code reformatting.
821 2012-04-26  Robert Dewar  <dewar@adacore.com>
823         * exp_aggr.adb: Minor reformatting.
825 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
827         * exp_ch7.adb (Expand_Cleanup_Actions): Update the call to
828         Requires_Cleanup_Actions.
829         * exp_util.adb (Requires_Cleanup_Actions (List_Id; Boolean;
830         Boolean)): Rename formal parameter For_Package to Lib_Level to
831         better reflect its purpose. Update the related comment and all
832         occurrences of For_Package in the body.
833         (Requires_Cleanup_Actions
834         (Node_Id; Boolean)): Add new formal parameter Lib_Level. Add
835         local constant At_Lib_Level to keep monitor whether the path
836         taken from the top-most context to the current construct involves
837         package constructs. Update all calls to Requires_Cleanup_Actions.
838         * exp_util.ads (Requires_Cleanup_Actions): Add new formal
839         parameter Lib_Level and associated comment.
841 2012-04-26  Ed Schonberg  <schonberg@adacore.com>
843         * sem_ch6.adb (Process_Formals): If the type of the formal is
844         a non null access type, mark the generated subtype as having a
845         delayed freeze only if the designated type is not frozen yet.
847 2012-04-26  Vincent Celier  <celier@adacore.com>
849         * prj-attr.adb: New package Clean with attributes
850         Object_Artifact_Extensions and Source_Artifact_Extensions.
851         * prj-nmsc.adb (Process_Clean): Process new package Clean
852         * prj.ads (Language_Config): New components
853         Clean_Object_Artifacts and Clean_Source_Artifacts.
854         * snames.ads-tmpl: New standard names Clean,
855         Object_Artifact_Extensions and Source_Artifact_Extensions.
857 2012-04-26  Hristian Kirtchev  <kirtchev@adacore.com>
859         * einfo.adb (Proper_First_Index): Moved from Sem_Util.
860         * einfo.ads: Add new synthesized attribute Proper_First_Index
861         along with usage in nodes.
862         (Proper_First_Index): Moved from Sem_Util.
863         * sem_util.ads, sem_util.adb (Proper_First_Index): Moved to Einfo.
865 2012-04-26  Gary Dismukes  <dismukes@adacore.com>
867         * layout.adb (Layout_Component_List): Test for the case of a
868         single variant and the size of its component list was computed
869         as an integer literal, and use that size (which is in bits)
870         as is rather than converting to storage units.
872 2012-04-26  Robert Dewar  <dewar@adacore.com>
874         * exp_aggr.adb: Minor reformatting.
876 2012-04-26  Robert Dewar  <dewar@adacore.com>
878         * sem_util.adb: Minor reformatting.
880 2012-04-26  Thomas Quinot  <quinot@adacore.com>
882         * exp_aggr.adb, exp_pakd.adb (Setup_Inline_Packed_Array_Reference,
883         Packed_Array_Aggregate_Handled.Get_Component_Val):
884         Reverse bit numbering within PAT when Reverse_Storage_Order
885         applies to the enclosing record.
887 2012-04-26  Thomas Quinot  <quinot@adacore.com>
889         * freeze.adb (Freeze_Record_Type): Improve error message for
890         Scalar_Storage_Order inconsistent with Bit_Order.
892 2012-04-25  Gary Dismukes  <dismukes@adacore.com>
894         * exp_ch9.adb: Add comments on the usage of the
895         lock-free data structures.
897 2012-04-25  Vincent Pucci  <pucci@adacore.com>
899         * exp_intr.adb (Expand_Shift): Convert the left
900         operand and the operator when the type of the call differs from
901         the type of the operator.
903 2012-04-25  Geert Bosch  <bosch@adacore.com>
905         * stand.ads: Minor comment fix.
907 2012-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
909         * sem_ch4.adb (Analyze_Slice): Handle the case where the prefix
910         is a string literal. Retrieve the first index from the base type
911         when slicing a string literal.
912         * sem_ch12.adb (Check_Private_View): Move the initialization
913         of the type inside the loop to reflect the changing index.
914         * sem_eval.adb (Eval_Relational_Op): Retrieve the first index
915         from the base type when dealing with a string literal.
916         * sem_res.adb (Resolve_Slice): Retrieve the first index from
917         the base type when slicing a string literal.
918         * sem_util.adb (Is_Internally_Generated_Renaming): New routine.
919         (Is_Object_Reference): String literals may act
920         as object references only when they are renamed internally.
921         (Proper_First_Index): New routine.
922         * sem_util.ads (Proper_First_Index): New routine.
924 2012-04-25  Robert Dewar  <dewar@adacore.com>
926         * sem_ch3.adb, csinfo.adb, lib-writ.adb, sem_ch12.adb,
927         lib-xref.adb: Minor reformatting.
929 2012-04-25  Hristian Kirtchev  <kirtchev@adacore.com>
931         * exp_ch9.adb: Rename Lock_Free_Sub_Type
932         to Lock_Free_Subprogram. Remove type Subprogram_Id.
933         Rename LF_Sub_Table to Lock_Free_Subprogram_Table.
934         (Allow_Lock_Free_Implementation): Renamed to
935         Allows_Lock_Free_Implementation.  Update the comment on
936         lock-free restrictions. Code clean up and restructuring.
937         (Build_Lock_Free_Protected_Subprogram_Body): Update the
938         profile and related comments. Code clean up and restructuring.
939         (Build_Lock_Free_Unprotected_Subprogram_Body): Update the
940         profile and related comments. Code clean up and restructuring.
941         (Comp_Of): Removed.
943 2012-04-25  Vincent Celier  <celier@adacore.com>
945         * sem_ch12.adb (Inherit_Context): Compare library units, not
946         names of units, when checking if a unit is already in the context.
948 2012-04-25  Thomas Quinot  <quinot@adacore.com>
950         * sem_ch3.adb: Reverse_Storage_Order must be propagated to
951         untagged derived record types.
953 2012-04-25  Ed Schonberg  <schonberg@adacore.com>
955         * lib-xref.adb: Adjust position of end label.
957 2012-04-22  Jan Hubicka  <jh@suse.cz>
959         * gcc-interface/utils.c (gnat_write_global_declarations): Do not mark
960         needed node.
962 2012-04-20  Jan Hubicka  <jh@suse.cz>
964         * gcc-interface/utils.c (gnat_write_global_declarations): Update for new
965         force_output placement.
967 2012-04-14  Jan Hubicka  <jh@suse.cz>
969         * gcc-interface/trans.c (finalize_nrv): Update field referenced for new
970         cgraph/varpool layout.
972 2012-04-09  Mike Stump  <mikestump@comcast.net>
974         * a-assert.ads: Remove execute permission.
975         * a-chacon.ads: Likewise.
976         * a-coteio.ads: Likewise.
977         * a-envvar.ads: Likewise.
978         * a-exetim-mingw.ads: Likewise.
979         * a-fzteio.ads: Likewise.
980         * a-izteio.ads: Likewise.
981         * a-lcteio.ads: Likewise.
982         * a-llctio.ads: Likewise.
983         * a-scteio.ads: Likewise.
984         * a-suenco.ads: Likewise.
985         * a-suenst.ads: Likewise.
986         * a-suewst.ads: Likewise.
987         * a-suezst.ads: Likewise.
988         * a-tirsfi.ads: Likewise.
989         * a-wichha.ads: Likewise.
990         * a-zchara.ads: Likewise.
991         * a-zchhan.ads: Likewise.
992         * a-zchuni.ads: Likewise.
993         * a-zrstfi.ads: Likewise.
994         * aspects.ads: Likewise.
995         * g-byorma.ads: Likewise.
996         * g-decstr.ads: Likewise.
997         * g-encstr.ads: Likewise.
998         * g-spchge.ads: Likewise.
999         * g-u3spch.ads: Likewise.
1000         * g-wispch.ads: Likewise.
1001         * g-zspche.ads: Likewise.
1002         * namet-sp.ads: Likewise.
1003         * s-os_lib.ads: Likewise.
1004         * s-regexp.ads: Likewise.
1005         * s-regpat.ads: Likewise.
1006         * s-string.ads: Likewise.
1007         * s-tasloc.ads: Likewise.
1008         * s-utf_32.ads: Likewise.
1009         * sem_aux.ads: Likewise.
1010         * a-assert.adb: Likewise.
1011         * a-chacon.adb: Likewise.
1012         * a-envvar.adb: Likewise.
1013         * a-exetim-mingw.adb: Likewise.
1014         * a-suenco.adb: Likewise.
1015         * a-suenst.adb: Likewise.
1016         * a-suewst.adb: Likewise.
1017         * a-suezst.adb: Likewise.
1018         * a-tirsfi.adb: Likewise.
1019         * a-wichha.adb: Likewise.
1020         * a-zchhan.adb: Likewise.
1021         * a-zchuni.adb: Likewise.
1022         * a-zrstfi.adb: Likewise.
1023         * aspects.adb: Likewise.
1024         * g-byorma.adb: Likewise.
1025         * g-decstr.adb: Likewise.
1026         * g-encstr.adb: Likewise.
1027         * g-spchge.adb: Likewise.
1028         * g-u3spch.adb: Likewise.
1029         * g-wispch.adb: Likewise.
1030         * g-zspche.adb: Likewise.
1031         * namet-sp.adb: Likewise.
1032         * s-except.adb: Likewise.
1033         * s-inmaop-vxworks.adb: Likewise.
1034         * s-os_lib.adb: Likewise.
1035         * s-regexp.adb: Likewise.
1036         * s-regpat.adb: Likewise.
1037         * s-string.adb: Likewise.
1038         * s-tasloc.adb: Likewise.
1039         * s-utf_32.adb: Likewise.
1040         * s-wchcon.adb: Likewise.
1041         * sem_aux.adb: Likewise.
1043 2012-04-02  Robert Dewar  <dewar@adacore.com>
1045         * s-atopri.ads: Minor reformatting.
1047 2012-04-02  Thomas Quinot  <quinot@adacore.com>
1049         * sem_util.adb: Minor reformatting, minor code cleanup.
1051 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
1053         * lib-xref.adb (Generate_Reference): For a reference to an
1054         operator symbol, set the sloc to point to the first character
1055         of the operator name, and not to the initial quaote.
1056         (Output_References): Ditto for the definition of an operator
1057         symbol.
1059 2012-04-02  Vincent Celier  <celier@adacore.com>
1061         * ali.adb (Scan_Ali): Recognize Z lines. Set
1062         Implicit_With_From_Instantiation to True in the With_Record for
1063         Z lines.
1064         * ali.ads (With_Record): New Boolean component
1065         Implicit_With_From_Instantiation, defaulted to False.
1066         * csinfo.adb: Indicate that Implicit_With_From_Instantiation
1067         is special
1068         * lib-writ.adb (Write_ALI): New array Implicit_With.
1069         (Collect_Withs): Set Implicit_With for the unit is it is not Yes.
1070         (Write_With_Lines): Write a Z line instead of a W line if
1071         Implicit_With is Yes for the unit.
1072         * sem_ch12.adb (Inherit_Context): Only add a unit in the context
1073         if it is not there yet.
1074         * sinfo.ads: New flag Implicit_With_From_Instantiation (Flag12)
1075         added.
1077 2012-04-02  Yannick Moy  <moy@adacore.com>
1079         * osint.adb, osint.ads (Add_Default_Search_Dirs): Add library
1080         search dirs in file specified with option -gnateO.
1082 2012-04-02  Robert Dewar  <dewar@adacore.com>
1084         * sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb: Minor
1085         reformatting.
1087 2012-04-02  Olivier Hainque  <hainque@adacore.com>
1089         * g-sse.ads: Add x86-solaris and x86_64-darwin to the set of
1090         platforms where the use of this spec is supported. Add current
1091         year to the copyright notice.
1092         * gcc-interfaces/Makefile.in: Add g-sse.o and g-ssvety.o to
1093         EXTRA_GNATRTL_NONTASKING_OBJS on x86 32/64 targets that support
1094         it and where they were missing (x86-solaris, x86-freebsd,
1095         x86_64-freebsd, and x86-darwin).
1097 2012-04-02  Gary Dismukes  <dismukes@adacore.com>
1099         * bindgen.adb (Gen_Ada_Init): When compiling for the AAMP small
1100         library, where we no longer suppress the Standard_Library,
1101         generate an empty body rather than the usual generation of
1102         assignments to imported globals, since those aren't present in
1103         the small library.
1105 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
1107         * sinfo.ads: Minor documentation fix.
1109 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
1111         * sem_res.adb (Resolve_Conditional_Expression): Add local variables
1112         Else_Typ and Then_Typ. Add missing type conversions to the "then" and
1113         "else" expressions when their respective types are scalar.
1115 2012-04-02  Vincent Pucci  <pucci@adacore.com>
1117         * exp_ch9.adb: Reordering of the local subprograms. New Table
1118         for the lock free implementation that maps each protected
1119         subprograms with the protected component it references.
1120         (Allow_Lock_Free_Implementation): New routine. Check if
1121         the protected body enables the lock free implementation.
1122         (Build_Lock_Free_Protected_Subprogram_Body): New routine.
1123         (Build_Lock_Free_Unprotected_Subprogram_Body): New routine.
1124         (Comp_Of): New routine.
1125         * Makefile.rtl: Add s-atopri.o
1126         * debug.adb: New compiler debug flag -gnatd9 for lock free
1127         implementation.
1128         * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
1129         RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
1130         RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
1131         RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, RE_Uint8,
1132         RE_Uint16, RE_Uint32, RE_Uint64 added.
1133         * s-atropi.ads: New file. Defines atomic primitives used
1134         by the lock free implementation.
1136 2012-04-02  Emmanuel Briot  <briot@adacore.com>
1138         * g-expect.adb (Expect_Internal): Fix leak of the input file descriptor.
1140 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
1142         * exp_ch4.adb (Expand_N_Quantified_Expression): Reimplemented.
1143         The expansion no longer uses the copy of the original QE created
1144         during analysis.
1145         * sem.adb (Analyze): Add processing for loop parameter specifications.
1146         * sem_ch4.adb (Analyze_Quantified_Expression): Reimplemented. The
1147         routine no longer creates a copy of the original QE. All
1148         constituents of a QE are now preanalyzed and resolved.
1149         * sem_ch5.adb (Analyze_Iteration_Scheme): Remove the guard which
1150         bypasses all processing when the iteration scheme is related to a
1151         QE. Relovate the code which analyzes loop parameter specifications
1152         to a separate routine.  (Analyze_Iterator_Specification):
1153         Preanalyze the iterator name. This action was originally
1154         done in Analyze_Iteration_Scheme. Update the check which
1155         detects an iterator specification in the context of a QE.
1156         (Analyze_Loop_Parameter_Specification): New routine. This
1157         procedure allows for a stand-alone analysis of a loop parameter
1158         specification without the need of a parent iteration scheme. Add
1159         code to update the type of the loop variable when the range
1160         generates an itype and the context is a QE.
1161         (Pre_Analyze_Range): Renamed to Preanalyze_Range. Update all references
1162         to the routine.
1163         * sem_ch5.ads: Code reformatting.
1164         (Analyze_Loop_Parameter_Specification): New routine.
1165         * sem_ch6.adb (Fully_Conformant_Expressions): Detect a case
1166         when establishing conformance between two QEs utilizing different
1167         specifications.
1168         * sem_res.adb (Proper_Current_Scope): New routine.
1169         (Resolve): Do not resolve a QE as there is nothing to be done now.
1170         Ignore any loop scopes generated for QEs when detecting an expression
1171         function as the scopes are cosmetic and do not appear in the tree.
1172         (Resolve_Quantified_Expression): Removed. All resolution of
1173         QE constituents is now performed during analysis. This ensures
1174         that loop variables appearing in array aggregates are properly
1175         resolved.
1177 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
1179         * sem_util.adb (Build_Default_Subtype): If the base type is
1180         private and its full view is available, use the full view in
1181         the subtype declaration.
1183 2012-04-02  Jose Ruiz  <ruiz@adacore.com>
1185         * gnat_ugn.texi: Add some minimal documentation about how to
1186         use GNATtest for cross platforms.
1188 2012-04-02  Vincent Celier  <celier@adacore.com>
1190         * opt.ads (Object_Path_File_Name): New variable.
1191         * prj-attr.adb: New Compiler attribute Object_Path_Switches.
1192         * prj-nmsc.adb (Process_Compiler): Recognize new attribute
1193         Object_Path_Switches.
1194         * snames.ads-tmpl: New standard name Object_Path_Switches.
1195         * switch-c.adb (Scan_Front_End_Switches): Recognize new switch
1196         -gnateO= and put its value in Opt.Object_Path_File_Name.
1198 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
1200         * exp_ch7.adb (Process_Declarations): Detect a case where
1201         a source object was initialized by another source object,
1202         but the expression was rewritten as a class-wide conversion
1203         of Ada.Tags.Displace.
1204         * exp_util.adb (Initialized_By_Ctrl_Function): Removed.
1205         (Is_Controlled_Function_Call): New routine.
1206         (Is_Displacement_Of_Ctrl_Function_Result): Removed.
1207         (Is_Displacement_Of_Object_Or_Function_Result): New routine.
1208         (Is_Source_Object): New routine.
1209         (Requires_Cleanup_Actions): Detect a case where a source object was
1210         initialized by another source object, but the expression was rewritten
1211         as a class-wide conversion of Ada.Tags.Displace.
1212         * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed.
1213         (Is_Displacement_Of_Object_Or_Function_Result): New routine.
1215 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
1217         * sem_res.adb (Resolve_Call): A call to an expression function
1218         does not freeze if it appears in a different scope from the
1219         expression function itself. Such calls appear in the generated
1220         bodies of other expression functions, or in pre/postconditions
1221         of subsequent subprograms.
1223 2012-04-02  Yannick Moy  <moy@adacore.com>
1225         * lib-xref-alfa.adb: Code clean up.
1227 2012-04-02  Ed Schonberg  <schonberg@adacore.com>
1229         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Do not suppress
1230         style checks, because the subprogram instance itself may contain
1231         violations of syle rules.
1232         * style.adb (Missing_Overriding): Check for missing overriding
1233         indicator on a subprogram instance.
1235 2012-04-02  Hristian Kirtchev  <kirtchev@adacore.com>
1237         * sem_ch6.adb (Last_Implicit_Declaration): New routine.
1238         (Process_PPCs): Insert the body of _postconditions after the
1239         last internally generated declaration. This ensures that actual
1240         subtypes created for formal parameters are visible and properly
1241         frozen as _postconditions may reference them.
1243 2012-04-02  Robert Dewar  <dewar@adacore.com>
1245         * einfo.adb (First_Component_Or_Discriminant) Now applies to
1246         all types with discriminants, not just records.
1247         * exp_attr.adb (Expand_N_Attribute): Add Scalar_Values handling
1248         for arrays, scalars and non-variant records.
1249         * sem_attr.adb (Analyze_Attribute): Handle Valid_Scalars
1250         * sem_attr.ads (Valid_Scalars): Update description
1251         * sem_util.ads, sem_util.adb (No_Scalar_Parts): New function.
1253 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
1255         Revert
1256         2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
1258         * gcc-interface/decl.c (SS_MARK_NAME): New define.
1259         (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
1260         whose name is SS_MARK_NAME.
1262 2012-03-30  Robert Dewar  <dewar@adacore.com>
1264         * exp_ch5.adb, sem_util.adb, exp_ch4.adb: Minor comment updates.
1266 2012-03-30  Yannick Moy  <moy@adacore.com>
1268         * lib-xref-alfa.adb (Add_Alfa_File): Treat possibly 2 units at the same
1269         time, putting all scopes in the same Alfa file.
1270         (Add_Alfa_Xrefs): Correct errors in comparison function. Correct value
1271         of Def component.
1272         (Collect_Alfa): Possibly pass 2 units to Add_Alfa_File.
1274 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
1276         * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Handle a case where
1277         a build-in-place call appears as Prefix'Reference'Reference.
1279 2012-03-30  Yannick Moy  <moy@adacore.com>
1281         * lib-xref-alfa.adb: Minor refactoring to remove internal package.
1283 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
1285         * sem_ch5.adb (Analyze_Iteration_Scheme): Preanalyze the subtype
1286         definition of a loop when the context is a quantified expression.
1288 2012-03-30  Vincent Celier  <celier@adacore.com>
1290         * prj.ads: Minor comment update.
1292 2012-03-30  Yannick Moy  <moy@adacore.com>
1294         * lib-xref-alfa.adb, alloc.ads, lib-xref.ads: Minor addition of
1295         comments and refactoring.
1297 2012-03-30  Robert Dewar  <dewar@adacore.com>
1299         * lib-xref.adb, lib-xref-alfa.adb: Minor reformatting & code
1300         reorganization.
1302 2012-03-30  Yannick Moy  <moy@adacore.com>
1304         * lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit
1305         instead of Get_Source_Unit to get file for reference.
1306         (Traverse_Compilation_Unit): Do not add scopes for generic units.
1307         * lib-xref.adb (Generate_Reference): Use Get_Code_Unit instead
1308         of Get_Source_Unit to get file for reference.
1309         * sem_ch12.adb (Analyze_Package_Instantiation): Enable
1310         instantiation in Alfa mode.
1312 2012-03-30  Hristian Kirtchev  <kirtchev@adacore.com>
1314         * exp_ch7.adb (Process_Declarations): Replace
1315         the call to Is_Null_Access_BIP_Func_Call with
1316         Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
1317         * exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed.
1318         (Is_Secondary_Stack_BIP_Func_Call): New routine.
1319         (Requires_Cleanup_Actions): Replace
1320         the call to Is_Null_Access_BIP_Func_Call with
1321         Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
1322         * exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed.
1323         (Is_Secondary_Stack_BIP_Func_Call): New routine.
1325 2012-03-30  Yannick Moy  <moy@adacore.com>
1327         * lib-xref-alfa.adb, lib-xref.adb: Code clean ups.
1329 2012-03-30  Gary Dismukes  <dismukes@adacore.com>
1331         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a
1332         loop entity which is rewritten as a renaming
1333         of the indexed array, explicitly mark the entity as needing
1334         debug info so that Materialize entity will be set later by
1335         Debug_Renaming_Declaration when the renaming is expanded.
1337 2012-03-30  Robert Dewar  <dewar@adacore.com>
1339         * sem_attr.ads: Update comment.
1341 2012-03-30  Vincent Celier  <celier@adacore.com>
1343         * prj.ads: New Dependency_Kind: ALI_Closure.
1345 2012-03-30  Thomas Quinot  <quinot@adacore.com>
1347         * exp_pakd.adb: Minor reformatting.
1349 2012-03-30  Yannick Moy  <moy@adacore.com>
1351         * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence
1352         of compilation unit for unit in Sdep_Table.
1354 2012-03-30  Thomas Quinot  <quinot@adacore.com>
1356         * freeze.adb (Freeze_Record_Type): For a type with reversed bit
1357         order and reversed storage order, disable front-end relayout.
1359 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
1361         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Copy
1362         the TYPE_PACKED flag from the base type.
1364 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
1366         * gcc-interface/decl.c (SS_MARK_NAME): New define.
1367         (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
1368         whose name is SS_MARK_NAME.
1370 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
1372         * gcc-interface/utils.c (add_parallel_type): Take a TYPE instead of a
1373         DECL and adjust.  Move around.
1374         (has_parallel_type): New predicate.
1375         (rest_of_record_type_compilation): Return early if the type already
1376         has a parallel type.
1377         * gcc-interface/gigi.h (add_parallel_type): Adjust.
1378         * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes.
1380 2012-03-25  Eric Botcazou  <ebotcazou@adacore.com>
1382         * gcc-interface/utils.c (finish_record_type): Return early for padded
1383         types and tidy up.
1385 2012-03-20  Arnaud Charlet  <charlet@adacore.com>
1387         * hlo.ads, hlo.adb: Removed, no longer used.
1388         * gcc-interface/Make-lang.in: Remove hlo.o. Update dependencies.
1389         * gcc-interface/Makefile.in: Remove EXTRA_LIBGNAT_SRCS (temporarly)
1390         and compute it from EXTRA_LIBGNAT_OBJS.
1391         Clean up comments, reorder LIBGNAT_SRCS and LIBGNAT_OBJS.
1393 2012-03-20  Yannick Moy  <moy@adacore.com>
1395         * gnat_rm.texi, sem_attr.ads: Update documentation.
1397 2012-03-19  Yannick Moy  <moy@adacore.com>
1399         * sem_ch6.adb: Minor code clean up.
1401 2012-03-19  Vincent Celier  <celier@adacore.com>
1403         * make.adb (Scan_Make_Arg): Make sure all significant -m switches
1404         on the command line are counted.
1406 2012-03-19  Robert Dewar  <dewar@adacore.com>
1408         * sem_elab.adb (Generate_Elab_Warnings): Fix spec, fix attribute
1409         reference case
1411 2012-03-19  Robert Dewar  <dewar@adacore.com>
1413         * par-ch4.adb (Check_Bad_Exp): New procedure
1415 2012-03-19  Robert Dewar  <dewar@adacore.com>
1417         * exp_attr.adb, sem_attr.adb, sem_attr.ads, snames.ads-tmpl: Add
1418         initial framework for Valid_Scalars attribute.
1420 2012-03-19  Robert Dewar  <dewar@adacore.com>
1422         * scng.adb (Scan): Recognize incorrect preprocessor directive
1424 2012-03-19  Robert Dewar  <dewar@adacore.com>
1426         * atree.adb (Allocate_Initialize_Node): Use Num_Extension_Nodes
1427         * atree.ads (Num_Extension_Nodes): New variable
1428         * debug.adb: New debug flag -gnatd.N
1429         * gnat1drv.adb (Adjust_Global_Switches): Adjust
1430         Num_Extension_Nodes if -gnatd.N set
1432 2012-03-19  Eric Botcazou  <ebotcazou@adacore.com>
1434         * einfo.ads: Minor update to First_Rep_Item and Has_Gigi_Rep_Item
1435         descriptions.
1437 2012-03-19  Robert Dewar  <dewar@adacore.com>
1439         * opt.ads: Remove HLO_Active flag.
1440         * sem.adb: Remove call of high level optimizer.
1441         * sem.ads (New_Nodes_OK): Removed.
1442         * sem_ch10.adb: Remove references to New_Nodes_OK.
1443         * switch-c.adb: Remove handling of -gnatH switch.
1445 2012-03-19  Yannick Moy  <moy@adacore.com>
1447         * sem_ch6.adb (Check_Subprogram_Contract): Do not emit warnings
1448         on trivially True or False postconditions and Ensures components
1449         of contract-cases.
1451 2012-03-19  Robert Dewar  <dewar@adacore.com>
1453         * gnat_ugn.texi: Fix index entry for -gnatei (now we have
1454         ug_words entry).
1456 2012-03-19  Hristian Kirtchev  <kirtchev@adacore.com>
1458         * sem_ch3.adb (Get_Discriminant_Value): Instead of looking
1459         at the immediate correcponsing discriminant, traverse a
1460         potential chain of discriminants produced by type derivations.
1461         (Root_Corresponding_Discriminant): Traverse a chain of inherited
1462         discriminants and return the topmost discriminant.
1464 2012-03-19  Bob Duff  <duff@adacore.com>
1466         * debug.adb: Minor comment change.
1467         * gnat_ugn.texi: Update documentation for elaboration regarding
1468         indirect calls.
1470 2012-03-19  Gary Dismukes  <dismukes@adacore.com>
1472         * exp_ch3.adb (Expand_N_Object_Declaration): In
1473         the case of an object of a class-wide interface type, where the
1474         declaration is rewritten as a renaming, call Set_Debug_Info_Needed
1475         on the renaming entity so that Materialize_Entity will be
1476         set. Also, change existing call (for other than interface cases)
1477         to call Set_Debug_Info_Needed rather than Set_Needs_Debug_Info
1478         (as specified for that flag).
1480 2012-03-19  Hristian Kirtchev  <kirtchev@adacore.com>
1482         * sem_ch4.adb (Analyze_Allocator): Detect an allocator generated
1483         by the build-in-place machinery where the designated type is
1484         indefinite, but the underlying type is not. Do not emit errors
1485         related to missing initialization in this case.
1487 2012-03-19  Robert Dewar  <dewar@adacore.com>
1489         * gnat_ugn.texi: Add documentation for -gnateinnn switch.
1490         * sem_elab.adb, put_alfa.adb, lib-xref-alfa.adb: Minor reformatting.
1491         * sem_prag.adb: Minor comment update.
1493 2012-03-15  Robert Dewar  <dewar@adacore.com>
1495         * errout.ads: Add entry for translating -gnateinn to
1496         /MAX_INSTANTIATIONS for VMS.
1497         * hostparm.ads (Max_Instantiations): Moved to Opt.
1498         * opt.ads (Maximum_Instantiations): Moved from Hostparm, and renamed.
1499         * sem_ch12.adb (Maximum_Instantiations): New name of
1500         Max_Instantiations (Analyze_Package_Instantiation): Change error
1501         msg for too many instantiations (mention -gnateinn switch).
1502         * switch-c.adb (Scan_Front_End_Switches): Implement -gnateinn switch.
1503         * switch.ads: Minor comment update.
1504         * usage.adb (Usage): Output line for -maxeinn switch.
1505         * vms_data.ads: Add entry for MAX_INSTANTIATIONS (-gnateinn).
1507 2012-03-15  Yannick Moy  <moy@adacore.com>
1509         * alfa.ads Update the decription of ALI sections.
1510         (Alfa_File_Record): Add a component Unit_File_Name to store the
1511         unit file name for subunits.
1512         * get_alfa.adb, put_alfa.adb Adapt to the possible presence of
1513         a unit file name.
1514         * lib-xref-alfa.adb (Add_Alfa_File): For subunits, retrieve the
1515         file name of the unit.
1517 2012-03-15  Yannick Moy  <moy@adacore.com>
1519         * sem_ch6.adb (Check_Subprogram_Contract): Do
1520         not issue warning on missing 'Result in postcondition if all
1521         postconditions and contract-cases already get a warning for only
1522         referring to pre-state.
1524 2012-03-15  Bob Duff  <duff@adacore.com>
1526         * debug.adb: Add new debug switch -gnatd.U, which disables the
1527         support added below, in case someone trips over a cycle, and needs
1528         to disable this.
1529         * sem_attr.adb (Analyze_Access_Attribute):
1530         Treat Subp'Access as a call for elaboration purposes.
1531         * sem_elab.ads, sem_elab.adb (Check_Elab_Call): Add support
1532         for Subp'Access.
1534 2012-03-15  Vincent Pucci  <pucci@adacore.com>
1536         * sem.ads, sem.adb (Preanalyze): New routine.
1537         * sem_ch4.adb (Analyze_Quantified_Expression): Call to the
1538         Preanalyze routine in Sem added.  Renaming of Needs_Expansion
1539         into Need_Preanalysis.
1540         * sem_ch6.adb (Preanalyze): Removed.
1542 2012-03-15  Robert Dewar  <dewar@adacore.com>
1544         * sem_ch4.adb (Analyze_Quantified_Expression): Add comment.
1545         * sem_prag.adb: Minor comment additions.
1546         * sem_attr.adb (Check_First_Last_Valid): Make sure prefix type
1547         is frozen.
1549 2012-03-15  Vincent Pucci  <pucci@adacore.com>
1551         * sem_ch4.adb (Analyze_Quantified_Expression):
1552         Preanalyze the condition when the quantified expression will be
1553         further expanded.
1555 2012-03-15  Yannick Moy  <moy@adacore.com>
1557         * sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, sem_ch6.adb,
1558         sem_warn.adb: Minor refactoring, renaming Case_Pragma in CTC_Pragma,
1559         to refer to both Test_Case pragma and Contract_Case pragma (same
1560         acronym as in Spec_CTC_List).
1562 2012-03-15  Robert Dewar  <dewar@adacore.com>
1564         * sem_prag.adb, sem_prag.ads, sem_util.ads, sem_attr.adb, sem_ch6.adb,
1565         sem_warn.adb: Minor reformatting.
1567 2012-03-15  Hristian Kirtchev  <kirtchev@adacore.com>
1569         * exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over
1570         selector names as the function call always appears at the top selected
1571         component.
1573 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
1575         * sem_ch12.adb (Validate_Access_Subprogram_Instance): keep
1576         Mode_Conformance check for older versions of the language.
1578 2012-03-15  Yannick Moy  <moy@adacore.com>
1580         * gnat_ugn.texi Document the extension of option -gnatw.t.
1581         * sem_ch3.adb (Analyze_Declaration): Check for suspicious
1582         contracts only after contract cases have been semantically
1583         analyzed.
1584         * sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures
1585         components of contract cases for detecting suspicious contracts.
1587 2012-03-15  Yannick Moy  <moy@adacore.com>
1589         * aspects.adb, aspects.ads (Aspect_Id): New GNAT aspect
1590         Aspect_Contract_Case.
1591         * gnat_rm.texi Document the new pragma/aspect
1592         Contract_Case. Correct the documentation of the existing
1593         pragma/aspect Test_Case with the new semantics.
1594         * sem_attr.adb (Analyze_Attribute): Allow use of 'Result in the
1595         Ensures component of a Contract_Case pragma.
1596         * sem_ch13.adb (Analyze_Aspect_Specifications): Check new aspect
1597         and translate it into a pragma.
1598         (Check_Aspect_At_Freeze_Point): Take into account the new aspect.
1599         * sem_ch3.adb, sinfo.adb, sinfo.ads Renaming of TC (for test case)
1600         into CTC (for contract and test case).
1601         * sem_ch6.adb (Process_PPCs): Generate Check pragmas from
1602         Contract_Case pragmas, similarly to what is done already for
1603         postconditions.
1604         * sem_prag.adb, sem_prag.ads (Check_Contract_Or_Test_Case):
1605         Renaming of Check_Test_Case.
1606         (Analyze_Pragma, Sig_Flags): Take into account the new pragma.
1607         * sem_util.adb, sem_util.ads Renaming to take into account the
1608         new pragma, so that functions which applied only to Test_Case
1609         now apply to both Test_Case and Contract_Case.
1610         * par-prag.adb, sem_warn.adb, snames.ads-tmpl Take into account
1611         the new pragma.
1613 2012-03-15  Robert Dewar  <dewar@adacore.com>
1615         * sem_ch6.ads: Minor comment updates.
1616         * sem_ch12.adb: Minor comment clarification.
1618 2012-03-15  Robert Dewar  <dewar@adacore.com>
1620         * sem_ch5.adb: Minor reformatting.
1622 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
1624         * exp_ch3.adb (Expand_N_Object_Declaration): When rewriting the
1625         declaration of a class-wide object, retain the Ekind to prevent
1626         subsequent misuse of constants.
1628 2012-03-15  Yannick Moy  <moy@adacore.com>
1630         * gnat_rm.texi, gnat_ugn.texi: Minor correction of invariant
1631         terminology.
1633 2012-03-15  Hristian Kirtchev  <kirtchev@adacore.com>
1635         * exp_util.adb (Initialized_By_Ctrl_Function): Add code to
1636         process the case when a function call appears in object.operation
1637         format.
1639 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
1641         * sem_ch6.ads, sem_ch6.adb (Check_Subtype_Conformant): add
1642         Get_Inst formal, so that conformance within an instantiation
1643         follows renamings of formals. This is similar to what is already
1644         done in Check_Mode_conformant.
1645         * sem_ch12.adb (Vailidate_Access_Subprogram_Instance): check that
1646         formal and actual are subtype conformant. Previously only mode
1647         conformance was required.
1649 2012-03-15  Robert Dewar  <dewar@adacore.com>
1651         * par-ch6.adb, einfo.ads, sem_eval.adb, sem_eval.ads,
1652         sem_case.adb: Minor reformatting.
1654 2012-03-15  Robert Dewar  <dewar@adacore.com>
1656         * exp_attr.adb (Expand_N_Attribute_Reference): Add handling
1657         of First_Valid/Last_Valid.
1658         * sem_attr.adb (Check_First_Last_Valid): New procedure
1659         (Analyze_Attribute): Add handling of First_Valid and Last_Valid
1660         (Eval_Attribute): ditto.
1661         * snames.ads-tmpl: Add entries for First_Valid and Last_Valid.
1663 2012-03-15  Ed Schonberg  <schonberg@adacore.com>
1665         * exp_ch5.adb (Expand_Predicated_Loop): Suppress warnings on
1666         loop variable, for the unusual case where the range has a single
1667         element and the loop variable has no visible assignment to it.
1669 2012-03-15  Vincent Pucci  <pucci@adacore.com>
1671         * exp_ch4.adb (Expand_N_Quantified_Expression): Expand the
1672         original quantified expression node.
1673         * sem_ch4.adb (Analyze_Quantified_Expression): Properly analyze
1674         the quantified expression and preserve the original non-analyzed
1675         quantified expression when an expansion is needed.
1676         * sem_ch5.adb (Analyze_Iteration_Scheme): Special treatment
1677         for quantified expressions.
1678         (Analyze_Iterator_Specification): Special treatment for quantified
1679         expressions.
1681 2012-03-15  Ed Falis  <falis@adacore.com>
1683         * s-vxwork-ppc.ads: Update FP_CONTEXT so name of former pad
1684         field matches VxWorks headers.
1686 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1688         * gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
1690         * a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
1691         s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
1692         s-osinte-irix.ads, s-proinf-irix-athread.adb,
1693         s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
1694         system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
1695         Remove.
1697         * adaint.c [__mips && __sgi]: Remove.
1698         (__gnat_number_of_cpus) [__mips && __sgi]: Remove.
1699         [IS_CROSS && !(__mips && __sgi)]: Remove.
1700         * adaint.h [sgi && _LFAPI]: Remove.
1701         * cstreams.c (__gnat_full_name) [sgi]: Remove.
1702         * env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
1703         (__gnat_clearenv) [__mips && __sgi]: Remove.
1704         * errno.c (_SGI_MP_SOURCE): Remove.
1705         * gsocket.h [sgi]: Remove.
1706         * init.c: Remove IRIX reference.
1707         [sgi]: Remove.
1708         * link.c [sgi]: Remove.
1709         * s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
1710         (main) [__mips && __sgi] (MAX_tv_sec): Don't define.
1711         (CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
1712         * sysdep.c [sgi]: Remove.
1713         (getc_immediate_common) [sgi]: Remove.
1714         (__gnat_localtime_tzoff) [sgi]: Remove.
1715         * terminals.c [__mips && __sgi] (IRIX): Don't define.
1716         [IRIX] (USE_GETPTY): Don't define.
1717         (allocate_pty_desc) [USE_GETPTY]: Remove.
1719         * g-traceb.ads: Remove IRIX reference.
1720         * g-trasym.ads: Likewise.
1721         * memtrack.adb: Likewise.
1722         * s-interr-sigaction.adb: Likewise.
1724         * gnat_rm.texi (Implementation Advice): Remove SGI info.
1725         (Implementation Defined Characteristics): Likewise.
1726         * gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
1727         Remove.
1728         (Irix-Specific Considerations): Remove.
1730 2012-03-13  Tristan Gingold  <gingold@adacore.com>
1732         * gcc-interface/gigi.h (flag_vms_malloc64): Refine condition.
1734 2012-03-13  Tristan Gingold  <gingold@adacore.com>
1736         * sysdep.c: Adjust condition after removal of __osf__.
1738 2012-03-12  Eric Botcazou  <ebotcazou@adacore.com>
1740         * gcc-interface/gigi.h (shift_unc_components_for_thin_pointers): Kill.
1741         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove call
1742         to above function.
1743         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Adjust
1744         handling of thin pointers.
1745         <Attr_Descriptor_Size>: Likewise.
1746         (gnat_to_gnu) <N_Free_Statement>: Likewise.
1747         * gcc-interface/utils.c (shift_unc_components_for_thin_pointers): Kill.
1748         (convert_to_fat_pointer): Adjust handling of thin pointers.
1749         (convert) <POINTER_TYPE>: Likewise.
1750         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.
1752 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1754         * gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
1755         * a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
1756         s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
1757         s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
1758         system-tru64.ads: Remove.
1760         * adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
1761         Remove.
1762         [IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
1763         * env.c [__alpha__ && __osf__]: Remove.
1764         * gsocket.h (_OSF_SOURCE): Remove.
1765         (HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
1766         * init.c [__alpha__ && __osf__]: Remove.
1767         * link.c [__osf__]: Remove.
1768         * s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
1769         [__osf__ && !_SS_MAXSIZE]: Remove.
1770         * sysdep.c [__osf__]: Remove.
1771         * terminals.c [__alpha__ && __osf__]: Remove.
1772         [OSF1]: Remove.
1774         * g-traceb.ads: Remove Tru64 reference.
1775         * g-trasym.ads: Likewise.
1776         * gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
1777         (Summary of Run-Time Configurations): Likewise.
1778         * memtrack.adb: Likewise.
1780 2012-03-12  Tristan Gingold  <gingold@adacore.com>
1782         * gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64
1783         instead of TARGET_MALLOC64.
1784         * gcc-interface/gigi.h (flag_vms_malloc64): Define instead
1785         of TARGET_MALLOC64.
1787 2012-03-09  Robert Dewar  <dewar@adacore.com>
1789         * a-direct.adb, comperr.adb, freeze.adb: Minor reformatting.
1791 2012-03-09  Arnaud Charlet  <charlet@adacore.com>
1793         * s-taskin.adb (Initialize_ATCB): Set Task_Image_Len to
1794         0 so that we never access this field uninitialized (e.g. in
1795         Task_Primitives.Operations.Enter_Task for the environment task).
1797 2012-03-09  Vincent Pucci  <pucci@adacore.com>
1799         * exp_ch5.adb (Expand_Iterator_Loop):
1800         Call to Expand_Iterator_Loop_Over_Array added.
1801         (Expand_Iterator_Loop_Over_Array): New routine. Expansion of
1802         "of" iterator loop over arrays. Multidimensional array case added.
1804 2012-03-09  Eric Botcazou  <ebotcazou@adacore.com>
1806         * uintp.ads: Fix minor pasto in comment.
1808 2012-03-09  Vasiliy Fofanov  <fofanov@adacore.com>
1810         * a-direct.adb: Do not strip the trailing directory separator
1811         from path, as this is already done inside Normalize_Pathname;
1812         doing it again produces the wrong result on Windows for the
1813         drive's root dir (i.e. "X:\" becomes "X:").
1815 2012-03-09  Thomas Quinot  <quinot@adacore.com>
1817         * exp_attr.adb, freeze.adb, sem_attr.adb, aspects.adb, aspects.ads,
1818         sem_ch13.adb, snames.ads-tmpl (Exp_Attr.Expand_N_Attribute_Reference):
1819         Add Attribute_Scalar_Storage_Order.
1820         (Sem_Attr.Analyze_Attribute, Eval_Attribute): Ditto.
1821         (Aspects): Add Aspect_Scalar_Storage_Order (Snames): Add
1822         Name_Scalar_Storage_Order and Attribute_Scalar_Storage_Order.
1823         (Sem_Ch13.Analyze_Attribute_Definition_Clause): Add processing
1824         for Scalar_Storage_Order.
1825         (Freeze): If Scalar_Storage_Order is specified, check that it
1826         is compatible with Bit_Order.
1828 2012-03-09  Robert Dewar  <dewar@adacore.com>
1830         * s-osinte-linux.ads, sem_util.adb, s-taprop-linux.adb, exp_ch4.adb,
1831         a-strsup.ads, sem_ch6.adb, a-stwisu.ads, exp_ch3.adb,
1832         a-stzsup.ads: Minor reformatting.
1834 2012-03-09  Thomas Quinot  <quinot@adacore.com>
1836         * s-ransee-vms.adb: Minor reformatting.
1838 2012-03-09  Arnaud Charlet  <charlet@adacore.com>
1840         * comperr.adb (Delete_SCIL_Files): Fix handling of
1841         N_Package_Renaming_Declaration and N_Generic_Package_Declaration.
1843 2012-03-09  Javier Miranda  <miranda@adacore.com>
1845         * sem_ch6.adb (Check_Body_To_Inline): In AAMP and VM targets
1846         use frontend inlining at all optimization levels.
1847         * sem_util.adb (Must_Inline): In AAMP and VM targets, given that
1848         there is no inlining support in the backend, use also frontend
1849         inlining when compiling with optimizations enabled.
1850         * exp_ch6.adb (Expand_Call): Minor code reorganization.
1852 2012-03-09  Eric Botcazou  <ebotcazou@adacore.com>
1854         * gcc-interface/ada-tree.h (TYPE_VAX_FLOATING_POINT_P): Move around.
1855         (TYPE_UNCONSTRAINED_ARRAY): Adjust comment.
1856         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Tidy
1857         up.  Add comment and use canonical predicate for thin pointers.
1858         (gnat_to_gnu) <N_Free_Statement>: Tidy up and reorder.  Add comment
1859         and use canonical predicate for thin pointers.
1860         * gcc-interface/utils.c (convert_to_fat_pointer): Remove superfluous
1861         'else' and use standard name.
1862         (convert_to_thin_pointer): Delete.
1863         (convert) <POINTER_TYPE>: Do the difference in sizetype directly and
1864         change obsolete idioms.  Do not call above function.
1865         (unchecked_convert): Fix formatting.
1866         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: In the thin
1867         pointer case, use byte_position to get the field position.
1869 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
1871         * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the
1872         DECL node built for a type which has a non-trivial equivalent type.
1874 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
1876         * gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete.
1877         * gcc-interface/decl.c (defer_finalize_level): Likewise.
1878         (defer_finalize_list): Likewise.
1879         (gnat_to_gnu_entity): Delete references to above variables and do not
1880         call rest_of_type_decl_compilation.
1881         (rest_of_type_decl_compilation): Delete.
1882         (rest_of_type_decl_compilation_no_defer): Likewise.
1883         * gcc-interface/utils.c (rest_of_record_type_compilation): Do not call
1884         rest_of_type_decl_compilation.
1885         (create_type_decl): Likewise.
1886         (update_pointer_to): Likewise.
1888 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
1890         * gcc-interface/trans.c (Identifier_to_gnu): Don't unshare initializer.
1891         (add_decl_expr): Mark external DECLs as used.
1892         * gcc-interface/utils.c (convert) <CONSTRUCTOR>: Copy the vector.
1894 2012-03-07  Tristan Gingold  <gingold@adacore.com>
1896         * s-ransee-vms.adb: New file.
1897         * gcc-interface/Makefile.in: Use s-ransee-vms.adb on VMS.
1898         * gcc-interface/Make-lang.in: Update dependencies.
1900 2012-03-07  Bob Duff  <duff@adacore.com>
1902         * rtsfind.ads: Add support for finding Super_String types.
1903         * sem_util.ads, sem_util.adb (Is_Bounded_String): New function
1904         to determine whether a given type is a bounded string type.
1905         (Is_Fully_Initialized_Type): Return True for bounded
1906         string types, to suppress bogus warnings.
1907         * exp_ch4.adb (Expand_Composite_Equality): Special case for bounded
1908         strings: equality composes. This allows us to remove default values in
1909         super strings.
1910         * a-strsup.ads, a-stwisu.ads, a-stzsup.ads: Update comments.
1911         * exp_ch3.adb (Expand_Freeze_Record_Type): Comment.
1913 2012-03-07  Robert Dewar  <dewar@adacore.com>
1915         * sem_util.adb, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb: Minor
1916         reformatting.
1918 2012-03-07  Sergey Rybin  <rybin@adacore.com frybin>
1920         * gnat_ugn.texi: gnatpp: fix paragraph about sources with
1921         preprocessor directives.
1923 2012-03-07  Arnaud Charlet  <charlet@adacore.com>
1925         * s-osinte-linux.ads, s-taprop-linux.adb (prctl): New function.
1926         (Enter_Task): Call prctl when relevant.
1928 2012-03-07  Tristan Gingold  <gingold@adacore.com>
1930         * s-osinte-vms.ads: pthread_mutex_setname_np: new function.
1932 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
1934         * sem_ch6.adb (Process_Formals): a generic subprogram with
1935         a formal incomplete type does not require a freeze node.
1937 2012-03-07  Bob Duff  <duff@adacore.com>
1939         * sem_util.ads: Minor reformatting.
1941 2012-03-07  Geert Bosch  <bosch@adacore.com>
1943         * targparm.ads: New target parameter Atomic_Sync_Default,
1944         defaulting to True.
1945         * targparm.adb (Get_Target_Parameters): Add processing for
1946         Atomic_Sync_Default.
1947         * gnat1drv.adb (Adjust_Global_Switches): Adjust Supress_Options
1948         based on ASD.
1950 2012-03-07  Javier Miranda  <miranda@adacore.com>
1952         * sem_ch3.adb (Analyze_Object_Declaration): If the object
1953         declaration has an init expression then stop the analysis of the
1954         object declaration if the expression which initializes the object
1955         is a call to an inlined function which returns an unconstrained
1956         and has been expanded into a procedure call.
1957         * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Add missing
1958         support to handle selected components.
1959         * sem_ch6.ads (Cannot_Inline): Adding parameter Is_Serious plus
1960         documentation.
1961         * sem_ch6.adb (Check_And_Build_Body_To_Inline): New
1962         subprogram which implements the checks required by the
1963         new rules for frontend inlining and builds the body to inline.
1964         (Analyze_Subprogram_Body_Helper): Move code that
1965         checks inlining of subprogram that has nested subprogram
1966         to Check_And_Build_Body_To_Inline.  Replace call to
1967         Build_Body_To_Inline by call to the new subprogram
1968         Check_And_Build_Body_To_Inline.
1969         (Cannot_Inline): New implementation.
1970         * sem_ch12.adb (Analyze_Package_Instantiation.Must_Inline_Subp):
1971         New subprogram.
1972         * sem_util.ad[sb] (Must_Inline): New subprogram.
1973         (Returns_Unconstrained_Type): New subprogram.
1974         * sem_res.adb (Resolve_Call): Do not create a transient scope
1975         for inlined calls.
1976         * inline.ads (Analyzing_Inlined_Bodies): Remove unreferenced variable.
1977         * inline.adb (Analyze_Inlined_Bodies, Initialize): Remove setting
1978         to false the variable Analyzing_Inlined_Bodies.  Fix comments.
1979         * exp_ch4.adb (Expand_N_Allocator): Fix handling of finalization master.
1980         * exp_ch6.ads (List_Inlining_Info): New subprogram.
1981         * exp_ch6.adb (Expand_Call.Do_Inline): New subprogram.
1982         (Expand_Call.Do_Inline_Always): New subprogram.
1983         (In_Unfrozen_Instance): Move the declaration of this subprogram.
1984         (Expand_Inlined_Call.Reset_Dispatching_Calls): New subprogram.
1985         (Expand_Inlined_Call): Adding new support for inlining functions
1986         that return unconstrained types.
1987         (List_Inlining_Info): New subprogram.
1988         * debug.adb Document flags -gnatd.j and -gnatd.k
1989         * gnat1drv.adb Add call to generate the new listing of inlined
1990         calls and calls passed to the backend.
1992 2012-03-07  Robert Dewar  <dewar@adacore.com>
1994         * sem_ch5.adb, s-vaflop.adb, s-taprop-vms.adb, exp_ch6.adb,
1995         s-gearop.adb, sem_ch6.adb, g-trasym.adb: Minor reformatting.
1997 2012-03-07  Javier Miranda  <miranda@adacore.com>
1999         * a-ngrear.ads: Add documentation.
2001 2012-03-07  Tristan Gingold  <gingold@adacore.com>
2003         * s-taprop-vms.adb (Create_Task): set thread name.
2004         * s-osinte-vms.ads (pthread_attr_setname_np): Declare.
2006 2012-03-07  Arnaud Charlet  <charlet@adacore.com>
2008         * g-trasym.adb: Minor reformatting.
2010 2012-03-07  Robert Dewar  <dewar@adacore.com>
2012         * a-ngrear.ads: Minor addition of ??? comment.
2014 2012-03-07  Gary Dismukes  <dismukes@adacore.com>
2016         * exp_ch4.adb (Apply_Accessibility_Check): Call
2017         Remove_Side_Effects in the build-in-place case, to ensure that
2018         we capture the call and don't end up with two calls.
2020 2012-03-07  Javier Miranda  <miranda@adacore.com>
2022         * exp_ch6.adb (Expand_Inlined_Call): Skip inlining of functions
2023         that return unconstrained types using an extended return statement
2024         since the support for inlining these functions has not been yet
2025         added to the frontend.
2026         * s-vaflop.adb, s-vaflop-vms-alpha.adb: Code reorganization.
2027         * a-ngrear.ads: Replace all the Inline_Always pragmas by pragma
2028         Inline.
2029         * a-ngrear.adb (Eigenvalues, Transpose): Restructured to use
2030         extended return statement.
2031         * a-strsup.adb, a-stzsup.adb, a-stwisu.adb (Concat, Super_Slice,
2032         Super_To_String): Restructured to use extended return statement.
2033         * a-chahan.adb (To_Basic, To_Lower, To_Upper): Restructured to
2034         use extended return statement.
2035         * s-gearop.adb (Diagonal, Matrix_Elementwise_Operation,
2036         Vector_Elementwise_Operation, Matrix_Elementwise_Operation,
2037         Matrix_Matrix_Scalar_Elementwise_Operation,
2038         Vector_Vector_Elementwise_Operation,
2039         Vector_Vector_Scalar_Elementwise_Operation,
2040         Matrix_Scalar_Elementwise_Operation,
2041         Vector_Scalar_Elementwise_Operation,
2042         Scalar_Matrix_Elementwise_Operation,
2043         Scalar_Vector_Elementwise_Operation, Matrix_Matrix_Product,
2044         Matrix_Vector_Product, Outer_Product, Unit_Matrix, Unit_Vector,
2045         Vector_Matrix_Product): Restructured to use extended return
2046         statement.
2048 2012-03-07  Vincent Pucci  <pucci@adacore.com>
2050         * sem_ch5.adb (One_Bound): Minor reformatting.
2052 2012-03-07  Tristan Gingold  <gingold@adacore.com>
2054         * s-osinte-vms-ia64.adb, s-osinte-vms-ia64.ads, s-osinte-vms.adb,
2055         s-osinte-vms.ads, gcc-interface/Makefile.in: Merge s-osinte-vms and
2056         s-osinte-vms-ia64.
2058 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
2060         * checks.adb (Apply_Predicate_Check): Do not generate a predicate
2061         check is the context is an internally generated type-specific
2062         function.
2063         * sem_ch6.adb (Process_PPCs); the formals of internally generated
2064         type-specific functions do not get assertion checks.
2066 2012-03-07  Yannick Moy  <moy@adacore.com>
2068         * gnat_rm.texi: Minor renaming of title.
2069         * gnat_ugn.texi: Minor correction.
2071 2012-03-07  Vincent Pucci  <pucci@adacore.com>
2073         * exp_ch4.adb (Expand_N_Quantified_Expression): Minor
2074         reformating.
2075         * sem_ch4.adb (Analyze_Quantified_Expression): Creation and
2076         analysis of the iteration scheme added in all cases.
2077         * sem_ch5.adb (Analyze_Iteration_Scheme): Minor reformating.
2078         (Analyze_Iterator_Specification): Minor reformating.
2079         * sem_res.adb (Resolve_Quantified_Expression): Resolution of
2080         the condition added in all cases.
2082 2012-03-07  Thomas Quinot  <quinot@adacore.com>
2084         * einfo.adb, einfo.ads: Add flag Reverse_Storage_Order.
2086 2012-03-07  Yannick Moy  <moy@adacore.com>
2088         * gnat_rm.texi, gnat_ugn.texi: Rewording of GNAT UG and GNAT RM to
2089         account for Ada 2012 assertions, and their pragma counterparts in GNAT.
2091 2012-03-07  Thomas Quinot  <quinot@adacore.com>
2093         * exp_attr.adb, sem_attr.adb: Minor reformatting.
2095 2012-03-07  Bob Duff  <duff@adacore.com>
2097         * hostparm.ads (Max_Instantiations): Increase parameter.
2099 2012-03-07  Bob Duff  <duff@adacore.com>
2101         * par-prag.adb: Minor code rearrangement.
2103 2012-03-07  Bob Duff  <duff@adacore.com>
2105         * a-strsup.ads, a-stwisu.ads, a-stzsup.ads (Super_String):
2106         Remove default initial value for Data. It is no longer needed
2107         because "=" now composes properly for untagged records. This
2108         default has caused efficiency problems.
2110 2012-03-07  Ed Schonberg  <schonberg@adacore.com>
2112         * sem_res.adb (Resolve_Actuals): If the actual is a selected
2113         component of an anonymous access type, whose prefix is a variable,
2114         treat the variable as if it may be modified by the call, to
2115         suppress spurious warnings that a variable might be declared as
2116         a constant.
2118 2012-03-07  Thomas Quinot  <quinot@adacore.com>
2120         * einfo.adb, einfo.ads: Remove unused entity flags.
2122 2012-03-07  Eric Botcazou  <ebotcazou@adacore.com>
2124         * gnat_ugn.texi (Inline Assembler): Fix swapping of Input and
2125         Output operands throughout.
2127 2012-03-07  Hristian Kirtchev  <kirtchev@adacore.com>
2129         * sem_ch12.adb (Earlier): When two nodes come from the same
2130         generic instantiation, compare their locations. Otherwise always
2131         use the top level locations of the nodes.
2133 2012-03-07  Thomas Quinot  <quinot@adacore.com>
2135         * einfo.ads, sem_prag.adb: Minor reformatting.
2137 2012-03-05  Jason Merrill  <jason@redhat.com>
2139         * gcc-interface/Make-lang.in (doc/gnat_ugn.texi): Build xgnatugn
2140         before using it.
2142 2012-03-04  Eric Botcazou  <ebotcazou@adacore.com>
2144         * gnatvsn.ads (Library_Version): Bump to 4.8.
2146 2012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
2148         * init.c (__gnat_adjust_context_for_raise): Also check
2149         "orq $0x0,(%esp)" for x32.
2151         * link.c (__gnat_default_libgcc_subdir): Set to libx32 for x32.
2153         * gcc-interface/Makefile.in (arch): Set to x32 if MULTISUBDIR
2154         is /x32 and add support for x32.
2156 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
2158         * gcc-interface/decl.c (components_to_record): Add ARTIFICIAL parameter
2159         and set TYPE_ARTIFICIAL according to it.  Adjust recursive call.
2160         (gnat_to_gnu_entity) <E_Record_Type>: Adjust call to above function.
2161         * gcc-interface/utils.c (rest_of_record_type_compilation): Do not
2162         invoke rest_of_type_decl_compilation on the parallel type, if any.
2164 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
2166         * gcc-interface/utils.c (gnat_write_global_declarations): Make sure the
2167         dummy global built for global types is preserved.
2169 2012-02-27  Tristan Gingold  <gingold@adacore.com>
2171         * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
2172         E_Array_Type]: Reuse dummy fat type for gnu_ptr_template and
2173         gnu_template_type.
2175 2012-02-27  Eric Botcazou  <ebotcazou@adacore.com>
2177         * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.
2178         (TYPE_BY_REFERENCE_P): New flag.
2179         (TYPE_IS_BY_REFERENCE_P): New macro.
2180         (TYPE_DUMMY_P): Add checking and remove VOID_TYPE.
2181         (TYPE_IS_DUMMY_P): Adjust for above change.
2182         * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P
2183         and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE.
2184         (gnat_to_gnu_param): Likewise.
2185         (maybe_pad_type): Likewise.
2186         (make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P.
2187         * gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P
2188         instead of TREE_ADDRESSABLE.
2189         * gcc-interface/trans.c (finalize_nrv): Likewise.
2190         (call_to_gnu): Likewise.  Do not create a temporary for return values
2191         with by-reference type here.
2192         (gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P.
2193         (gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant
2194         CONSTRUCTORs and calls.
2195         * gcc-interface/utils.c (make_dummy_type): Get the equivalent type of
2196         the underlying type and use it throughout.  Use TYPE_IS_BY_REFERENCE_P
2197         instead of TREE_ADDRESSABLE.
2198         * gcc-interface/utils2.c (build_cond_expr): Deal with by-reference
2199         types explicitly.
2201 2012-02-27  Eric Botcazou  <ebotcazou@adacore.com>
2203         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Revert previous
2204         change that creates a special VAR_DECL for debugging purposes.  For an
2205         aliased object with an unconstrained nominal subtype, make its type a
2206         thin reference to the underlying object.
2207         * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Deal with
2208         expressions built for the initialization of above objects.
2210 2012-02-24  Dave Korn  <dave.korn.cygwin@gmail.com>
2212         * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
2213         Windows-specific make variable.
2214         (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
2215         (install-gnatlib): Respect the above during installation when set,
2216         and also install any windows import library that has been built.
2217         (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
2218         build a corresponding import library.
2220 2012-02-22  Robert Dewar  <dewar@adacore.com>
2222         * exp_util.adb, make.adb, sem_dim.adb, sem_ch4.adb, exp_disp.adb: Minor
2223         reformatting.
2225 2012-02-22  Geert Bosch  <bosch@adacore.com>
2227         * g-bytswa-x86.adb, g-bytswa.adb, gcc-interface/Makefile.in: Remove
2228         x86-specific version of byteswap and use GCC builtins instead.
2230 2012-02-22  Tristan Gingold  <gingold@adacore.com>
2232         * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
2233         E_Array_Type]: Translate component ealier.
2235 2012-02-22  Robert Dewar  <dewar@adacore.com>
2237         * par-ch3.adb (P_Signed_Integer_Type_Definition): Specialize
2238         error message for 'Range.
2240 2012-02-22  Pascal Obry  <obry@adacore.com>
2242         * s-taprop-mingw.adb (Finalize_TCB): Do not wait on thread handle as
2243         this is our own thread.
2245 2012-02-22  Sergey Rybin  <rybin@adacore.com frybin>
2247         * tree_io.ads: Update ASIS_Version_Number because of the changes
2248         in Snames.
2250 2012-02-22  Hristian Kirtchev  <kirtchev@adacore.com>
2252         * exp_ch7.adb (Create_Finalizer): Suppress elaboration checks on
2253         stack-related finalizers.
2255 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
2257         * sem_ch6.adb (Analyze_Expression_Function): If the construct
2258         is a completion, indicate that its formals are the formals of
2259         a completion, and as such do not get a cross- reference entry.
2260         (Analyze_Subprogram_Specification): Do not generate a definition
2261         for the entity of an expression function, because it may be a
2262         completion. Definition will be generated if needed when analyzing
2263         the generated subprogram declaration.
2265 2012-02-22  Vincent Celier  <celier@adacore.com>
2267         * make.adb (Check): When checking if an object file is in the
2268         correct object directory, get the unit name from a previous call
2269         to Check_Source_Info_In_ALI.
2270         * makeutl.adb (Check_Source_Info_In_ALI): Return the name of
2271         the unit when everything is OK, otherwise return No_Name.
2272         * makeutl.ads (Check_Source_Info_In_ALI): Return Name_Id instead
2273         of Boolean
2275 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
2277         * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): In an
2278         instance, the operator is visible if an operand is of some
2279         numeric type which is not in use or directly visible, and the
2280         other operand is a numeric literal.
2282 2012-02-22  Tristan Gingold  <gingold@adacore.com>
2284         * init.c: Minor code clean up.
2285         * gcc-interface/Make-lang.in: Update dependencies.
2287 2012-02-22  Arnaud Charlet  <charlet@adacore.com>
2289         * gnatlink.adb (Gnatlink): Use -gnatcC in CodePeer_Node,
2290         otherwise GCC will generate an object file.
2292 2012-02-22  Vincent Celier  <celier@adacore.com>
2294         * projects.texi: Correct typo related to "**" in Source_Dirs.
2296 2012-02-22  Steve Baird  <baird@adacore.com>
2298         * sem_prag.adb (Analyze_PPC_In_Decl_Part): Clean up generation of
2299         error message text.
2301 2012-02-22  Vincent Pucci  <pucci@adacore.com>
2303         * rtsfind.adb (Get_Unit_Name): Ada_Numerics_Child and
2304         System_Dim_Child cases added.
2305         * rtsfind.ads: Ada_Numerics,
2306         Ada_Numerics_Generic_Elementary_Functions, System_Dim,
2307         System_Dim_Float_IO and System_Dim_Integer_IO added to the list
2308         of RTU_Id.  Ada_Numerics_Child and System_Dim_Child added as
2309         new RTU_Id subtypes.
2310         * sem_dim.adb (Is_Dim_IO_Package_Entity): Use of
2311         Rtsfind to verify the package entity is located either
2312         in System.Dim.Integer_IO or in System.Dim.Float_IO.
2313         (Is_Dim_IO_Package_Instantiation): Minor
2314         changes.  (Is_Elementary_Function_Call): Removed.
2315         (Is_Elementary_Function_Entity): New routine.
2316         (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity call added.
2317         * snames.ads-tmpl: Name_Dim and Name_Generic_Elementary_Functions
2318         removed.
2320 2012-02-22  Vincent Pucci  <pucci@adacore.com>
2322         * sem_prag.adb: Minor reformatting.
2324 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
2326         * sem_ch3.adb (Find_Type_Name): When analyzing a private type
2327         declaration that is the completion of a tagged incomplete type, do
2328         not associate the class-wide type already created with the private
2329         type to prevent order-of-elaboration issues in the back-end.
2330         * exp_disp.adb (Find_Specific_Type): Find specific type of
2331         a class-wide type, and handle the case of an incomplete type
2332         coming  either from a limited_with clause or from an incomplete
2333         type declaration. Used when expanding a dispatchin call and
2334         generating tag checks (minor refactoring).
2336 2012-02-22  Robert Dewar  <dewar@adacore.com>
2338         * exp_ch5.adb: Add comment.
2339         * sem_ch12.adb, exp_ch6.adb: minor reformatting
2341 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
2343         * freeze.adb (Freeze_Entity): Do not perform type layout within
2344         a generic unit.
2346 2012-02-22  Eric Botcazou  <ebotcazou@adacore.com>
2348         * init.c (__gnat_error_handler) [Linux]: Map SIGBUS to
2349         Storage_Error.
2351 2012-02-22  Ed Schonberg  <schonberg@adacore.com>
2353         * exp_ch5.adb (Expand_N_Assignment_Statement): Reject an
2354         assignment to a classwide type whose type is limited, as
2355         can happen in an instantiation in programs that run afoul or
2356         AI05-0087.
2358 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
2360         * exp_ch6.adb (Legal_Copy): If layout is not
2361         determined in the front-end, do not emit error message when
2362         by-reference actual is potentially unaligned.
2363         * gcc-interface/decl.c (gnat_to_gnu_field): Better error message for
2364         illegal representation clause on tagged or aliased component, or on
2365         by-reference type with forced alignment.
2367 2012-02-17  Nicolas Roche  <roche@adacore.com>
2369         * gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is
2370         propagated by gnatlib-sjlj and gnatlib-zcx targets.
2371         * gcc-interface/Make-lang.in: Update dependencies.
2373 2012-02-17  Thomas Quinot  <quinot@adacore.com>
2375         * sem_ch12.adb (Analyze_Package_Instantiation): For an
2376         instantiation in an RCI library unit, omit the instance body
2377         if the RCI library unit is the instance itself (E.2.3(18)),
2378         but include the body if the instantiation is within the RCI
2379         declaration (12.3(12)).
2381 2012-02-17  Steve Baird  <baird@adacore.com>
2383         * sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and
2384         Post'Class aspects can only be specified for a primitive operation
2385         of a tagged type.
2387 2012-02-17  Yannick Moy  <moy@adacore.com>
2389         * gnat_rm.texi: Minor shuffling.
2391 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
2393         * aspects.adb: Expression functions can carry pre/postconditions.
2394         * par-ch6.adb (P_Subprogram): look for optional pre/postconditions
2395         in an expression function.
2396         * sem_prag (Check_Precondition_Postcondition): legal on expression
2397         functions.
2399 2012-02-17  Vincent Pucci  <pucci@adacore.com>
2401         * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb,
2402         * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb,
2403         * a-convec.adb, a-coorma.adb (Adjust): New routine.
2404         (Constant_Reference): Increment Busy and Lock counters.
2405         (Reference): Increase Busy and Lock counters.
2406         (Finalize): New routine.
2407         * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb:
2408         (Adjust): New routine.  (Constant_Reference): Increment Busy
2409         and Lock counters.
2410         (Finalize): New routine.
2411         * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads,
2412         * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads,
2413         * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads,
2414         * a-coorma.ads, a-coorse: Controlled component added to the
2415         reference types.
2417 2012-02-17  Robert Dewar  <dewar@adacore.com>
2419         * restrict.adb (Check_Restriction): Add special handling for
2420         No_Obsolescent_Features.
2422 2012-02-17  Hristian Kirtchev  <kirtchev@adacore.com>
2424         * exp_util.adb (Find_Finalize_Address): When dealing with an
2425         internally built full view for a type with unknown discriminants,
2426         use the original record type.
2428 2012-02-17  Robert Dewar  <dewar@adacore.com>
2430         * sem_dim.adb: Minor reformatting.
2432 2012-02-17  Yannick Moy  <moy@adacore.com>
2434         * gnat_rm.texi: Minor rewording.
2436 2012-02-17  Thomas Quinot  <quinot@adacore.com>
2438         * sem_aggr.adb: Minor reformatting.
2440 2012-02-17  Robert Dewar  <dewar@adacore.com>
2442         * gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case.
2444 2012-02-17  Vincent Pucci  <pucci@adacore.com>
2446         * sem_dim.adb (Is_Dim_IO_Package_Entity): New routine.
2447         (Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity
2448         call added.
2449         (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity
2450         call added.
2451         * s-dim.ads: Make package Pure.
2453 2012-02-17  Gary Dismukes  <dismukes@adacore.com>
2455         * prj-nmsc.adb: Minor reformatting.
2457 2012-02-17  Yannick Moy  <moy@adacore.com>
2459         * gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions.
2461 2012-02-17  Yannick Moy  <moy@adacore.com>
2463         * gnat_ugn.texi: Fix typos.
2465 2012-02-17  Pascal Obry  <obry@adacore.com>
2467         * prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an
2468         aggregate is not Externally_Built.
2470 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
2472         * sem_aggr.adb (Resolve_Record_Aggregate): If a composite
2473         component has a box association, copy the default value using
2474         the current scope as the scope of internal types, to prevent
2475         scoping anomalies in gigi.
2477 2012-02-17  Robert Dewar  <dewar@adacore.com>
2479         * sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb,
2480         sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb,
2481         exp_intr.adb, s-os_lib.adb: Minor reformatting.
2483 2012-02-17  Ed Schonberg  <schonberg@adacore.com>
2485         * sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the
2486         old operation is abstract, the relevant type is not abstract,
2487         and the new subprogram fails to override.
2489 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
2491         * gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the
2492         type of the result to the end and execute it for a deferred constant of
2493         a discriminated type whose full view can be elaborated statically.
2495 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
2497         * gcc-interface/trans.c (gnat_to_gnu) <N_Qualified_Expression>: If the
2498         type is tagged, mark it as used for debugging purposes.
2499         <N_Allocator>: Likewise for a qualified expression.
2501 2012-02-15  Eric Botcazou  <ebotcazou@adacore.com>
2503         * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
2504         return value in the by-reference return type case if this isn't the
2505         expression of an object declaration.  Tidy up.
2507 2012-02-09  Tristan Gingold  <gingold@adacore.com>
2509         * gcc-interface/Makefile.in: Remove .sym rule (not used).
2510         Remove adamsg.o object (requires native message compiler).
2511         * init.c (CMA$_EXIT_THREAD, MTH$_FLOOVEMAT, SS$_INTDIV): Define as a
2512         macro instead of as extern int.
2513         (ADA$_ALREADY_OPEN, ADA$_CONSTRAINT_ERRO, ADA$_DATA_ERROR)
2514         (ADA$_DEVICE_ERROR, ADA$_END_ERROR, ADA$_FAC_MODE_MISMAT)
2515         (ADA$_IOSYSFAILED, ADA$_KEYSIZERR, ADA$_KEY_MISMATCH)
2516         (ADA$_LAYOUT_ERROR, ADA$_LINEXCMRS, ADA$_MAXLINEXC)
2517         (ADA$_MODE_ERROR, ADA$_MRN_MISMATCH, ADA$_MRS_MISMATCH)
2518         (ADA$_NAME_ERROR, ADA$_NOT_OPEN, ADA$_ORG_MISMATCH)
2519         (ADA$_PROGRAM_ERROR, ADA$_RAT_MISMATCH, ADA$_RFM_MISMATCH)
2520         (ADA$_STAOVF, ADA$_STATUS_ERROR, ADA$_STORAGE_ERROR)
2521         (ADA$_UNSUPPORTED, ADA$_USE_ERROR): Likewise.
2522         (struct cond_except): Field cond is now an unsigned int.
2523         (dec_ada_cond_except_table): Adjust.
2524         (cond_except_table): Likewise.
2525         (cond_resignal_table): Likewise.
2526         (__gnat_default_resignal_p): Fix style.
2528 2012-02-08  Vincent Celier  <celier@adacore.com>
2530         * gcc-interface/Make-lang.in: Add g-byorma.o to gnatbind objects
2531         (g-buorma is now imported by sinput).
2532         Update dependencies.
2533         * scn.adb (Initialize_Scanner): Call Check_For_BOM
2534         * sinput-p.adb (Source_File_Is_Subunit): Call Check_For_BOM
2535         * sinput.adb: New procedure Check_For_BOM
2536         * sinput.ads: New procedure Check_For_BOM
2538 2012-02-08  Vincent Pucci  <pucci@adacore.com>
2540         * impunit.adb: Dimension package names updated
2541         * Makefile.rtl: s-dim added
2542         * sem_dim.adb (Is_Procedure_Put_Call): minor changes
2543         (Is_Dim_IO_Package_Instantiation): minor changes
2544         * sem_dim.ads: minor changes in comments
2545         * snames.ads-tmpl: Name_Dim added Name_Dim_Float_IO and
2546         Name_Dim_Integer_IO removed
2547         * s-dim.ads: New package. Define the dimension terminology.
2548         * s-diflio.adb, s-diinio.adb, s-dimkio.ads, s-dimmks.ads,
2549         * s-dmotpr.ads: Package names updated.
2550         * s-diflio.ads, s-diinio.ads: Documentation added and package
2551         names updated.
2553 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
2555         * gcc-interface/utils2.c (build_call_alloc_dealloc_proc): Revise test
2556         for storage pools to test for an underlying record type rather than
2557         testing Is_Tagged_Type, so that simple storage pools will be handled
2558         the same as normal Ada storage pools.
2560 2012-02-08  Yannick Moy  <moy@adacore.com>
2562         * gnat_rm.texi: Minor reshuffling to place restriction at
2563         appropriate place.
2565 2012-02-08  Bob Duff  <duff@adacore.com>
2567         * warnsw.adb (Set_Warning_Switch): Set Warn_On_Suspicious_Modulus_Value
2568         False for '-gnatwA', to suppress these warnings.
2570 2012-02-08  Vincent Celier  <celier@adacore.com>
2572         * sinput-p.adb (Source_File_Is_Subunit): Check for BOM before
2573         starting to scan, so that UTF8 encoding is taken into account.
2575 2012-02-08  Arnaud Charlet  <charlet@adacore.com>
2577         * s-tasren.adb, s-tasren.ads (Internal_Complete_Rendezvous): New
2578         function.
2579         (Complete_Rendezvous): Now call Internal_Complete_Rendezvous.
2580         (Exceptional_Complete_Rendezvous): Mark No_Return.
2582 2012-02-08  Eric Botcazou  <ebotcazou@adacore.com>
2584         * exp_aggr.adb (Compile_Time_Known_Composite_Value):
2585         New predicate to compute whether a composite value can be
2586         evaluated at compile time.
2587         (Component_Not_OK_For_Backend): Use Compile_Time_Known_Value for all
2588         expressions of elementary type and Compile_Time_Known_Composite_Value
2589         for all other expressions.
2590         (Expand_Record_Aggregate): Convert to assignments in the case
2591         of a type with mutable components if the aggregate cannot be
2592         built statically.
2594 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
2596         * aspects.ads (type Aspect_Id): Add Simple_Storage_Pool_Type.
2597         (Impl_Defined_Aspects): Add association for
2598         Aspect_Simple_Storage_Pool_Type.
2599         (Aspect_Names): Add
2600         association for Aspect_Simple_Storage_Pool_Type.
2601         * aspects.adb:
2602         (Canonical_Aspect): Add association for Simple_Storage_Pool_Type.
2603         * exp_attr.adb (Expand_N_Attribute_Reference):
2604         Change name to Name_Simple_Storage_Pool_Type.
2605         * exp_ch4.adb (Expand_N_Allocator): Change
2606         name to Name_Simple_Storage_Pool_Type.
2607         * exp_intr.adb (Expand_Unc_Deallocation): Change name to
2608         Name_Simple_Storage_Pool_Type.  * freeze.adb (Freeze_Entity):
2609         Change names to Name_Simple_Storage_Pool_Type.  * par-prag.adb:
2610         Change names to Name_Simple_Storage_Pool_Type.  * sem_attr.adb:
2611         (Analyze_Attribute): Change name to Name_Simple_Storage_Pool_Type.
2612         * sem_ch13.adb (Analyze_Attribute_Definition_Clause):
2613         Change name to Name_Simple_Storage_Pool_Type.
2614         * sem_prag.adb:
2615         (Analyze_Pragma): Change name to Name_Simple_Storage_Pool_Type.
2616         (Sig_Flags): Change name to Name_Simple_Storage_Pool_Type.
2617         * sem_res.adb (Resolve_Allocator): Change name to
2618         Name_Simple_Storage_Pool_Type.  * snames.ads-tmpl:
2619         (Name_Simple_Storage_Pool_Type): New name constant.
2620         (type Pragma_Id): Change name to Name_Simple_Storage_Pool_Type and
2621         move to main pragma section because it no longer matches the
2622         attribute name.
2623         * snames.adb-tmpl (Get_Pragma_Id): Remove test for
2624         Name_Simple_Storage_Pool.
2625         (Is_Pragma_Name): Remove test for Name_Simple_Storage_Pool.
2627 2012-02-08  Robert Dewar  <dewar@adacore.com>
2629         * gnat_ugn.texi: Add some clarification to -gnatwA and -gnatws.
2631 2012-02-08  Pascal Obry  <obry@adacore.com>
2633         * prj.adb (Compute_All_Imported_Projects): Use new
2634         For_Project_And_Aggregated_Context to ensure proper context is
2635         used for encapsulated aggregate libraries.
2636         * prj-proc.adb (Recursive_Process): Call
2637         Process_Aggregated_Projects earlier to ensure that all dependent
2638         projects are set with the proper encapsulated status.
2640 2012-02-08  Pascal Obry  <obry@adacore.com>
2642         * s-os_lib.adb (Normalize_Arguments): Properly escape last \ in null
2643         terminated string.
2645 2012-02-08  Pascal Obry  <obry@adacore.com>
2647         * prj.ads, prj.adb (For_Project_And_Aggregated_Context): New
2648         generic routine with a context parameter.
2650 2012-02-08  Robert Dewar  <dewar@adacore.com>
2652         * a-coinve.adb, sem_util.adb, sem_ch8.adb, a-cobove.adb,
2653         a-convec.adb: Minor reformatting and code reorganization.
2655 2012-02-08  Steve Baird  <baird@adacore.com>
2657         * sem_cat.adb (In_Preelaborated_Unit): A child
2658         unit instantiation does not inherit preelaboration requirements
2659         from its parent.
2661 2012-02-08  Gary Dismukes  <dismukes@adacore.com>
2663         * aspects.ads (type Aspect_Id): Add Aspect_Simple_Storage_Pool.
2664         (Impl_Defined_Aspects): Add entry for Aspect_Simple_Storage_Pool.
2665         (Aspect_Argument): Add Name entry for Aspect_Simple_Storage_Pool.
2666         (Aspect_Names): Add entry for Aspect_Simple_Storage_Pool.
2667         * aspects.adb (Canonical_Aspect): Add entry for
2668         Aspect_Simple_Storage_Pool.
2669         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of
2670         Attribute_Simple_Storage_Pool in the same way as Storage_Pool
2671         (add conversion, analyze/resolve). For the Storage_Size attribute,
2672         for the simple pool case, locate and use the simple pool type's
2673         Storage_Size function (if any), otherwise evaluate to zero.
2674         * exp_ch4.adb (Expand_N_Allocator): In the case of an allocator
2675         for an access type with an associated simple storage pool,
2676         locate and use the pool type's Allocate.
2677         * exp_intr.adb (Expand_Unc_Deallocation): In the case where the
2678         access type has a simple storage pool, locate the pool type's
2679         Deallocate procedure (if present) and use it as the procedure
2680         to call on the Free operation.
2681         * freeze.adb (Freeze_Entity): In the case of a full type for
2682         a private type defined with pragma Simple_Storage_Pool, check
2683         that the full type is also appropriate for the pragma. For
2684         a simple storage pool type, validate that the operations
2685         Allocate, Deallocate (if present), and Storage_Size
2686         (if present) are defined with appropriate expected profiles.
2687         (Validate_Simple_Pool_Op_Formal): New procedure
2688         (Validate_Simple_Pool_Operation): New procedure Add with and
2689         use of Rtsfind.
2690         * par-prag.adb: Add Pragma_Simple_Storage_Pool to case statement
2691         (no action required).
2692         * sem_attr.adb (Analyze_Attribute): For the case of the
2693         Storage_Pool attribute, give a warning if the prefix type has an
2694         associated simple storage pool, and rewrite the attribute as a
2695         raise of Program_Error. In the case of the Simple_Storage_Pool
2696         attribute, check that the prefix type has an associated simple
2697         storage pool, and set the attribute type to the pool's type.
2698         * sem_ch13.adb (Analyze_Aspect_Specifications): Add
2699         Aspect_Simple_Storage_Pool case choice.
2700         (Analyze_Attribute_Definition_Clause): Add
2701         Aspect_Simple_Storage_Pool to case for Ignore_Rep_Clauses
2702         (no action). Add handling for Simple_Storage_Pool attribute
2703         definition, requiring the name to denote a simple storage pool
2704         object.
2705         (Check_Aspect_At_Freeze_Point): For a simple storage pool
2706         aspect, set the type to that of the name specified for the aspect.
2707         * sem_prag.adb (Analyze_Pragma): Add handling for pragma
2708         Simple_Storage_Pool, requiring that it applies to a library-level
2709         type declared in a package declaration that is a limited private
2710         or limited record type.
2711         * sem_res.adb (Resolve_Allocator): Flag an attempt to call a
2712         build-in-place function in an allocator for an access type with
2713         a simple storage pool as unsupported.
2714         * snames.ads-tmpl: Add Name_Simple_Storage_Pool.
2715         (type Attribute_Id): Add Attribute_Simple_Storage_Pool.
2716         (type Pragma_Id): Add Pragma_Simple_Storage_Pool.
2717         * snames.adb-tmpl (Get_Pragma_Id): Handle case of
2718         Name_Simple_Storage_Pool.
2719         (Is_Pragma_Name): Return True for Name_Simple_Storage_Pool.
2721 2012-02-08  Cyrille Comar  <comar@adacore.com>
2723         * projects.texi: Clarify doc for interfaces.
2725 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
2727         * gcc-interface/Make-lang.in (GCC_LINKERFLAGS): New variable.
2728         (GCC_LINK): Use it.
2730 2012-02-01  Tristan Gingold  <gingold@adacore.com>
2732         * gcc-interface/trans.c (Loop_Statement_to_gnu): Use sizetype
2733         instead of size_type_node.
2735 2012-01-30  Nicolas Roche  <roche@adacore.com>
2737         * gcc-interface/Make-lang.in: Update dependencies.
2738         * gcc-interface/Makefile.in: Use system-vxworks-system-ppc-mils.ads
2739         when needed.
2740         Remove Linker_Options -crtbe when building sjlj run-time.
2742 2012-01-30  Robert Dewar  <dewar@adacore.com>
2744         * sem.adb (Analyze): Call Analyze_Mod for N_Op_Mod mode.
2745         * sem_ch3.adb (Modular_Type_Declaration): Warn on mod value of
2746         form 2 * small-literal.
2747         * sem_ch4.adb (Analyze_Mod): New procedure (warn on suspicious
2748         mod value).
2749         * sem_ch4.ads (Analyze_Mod): New procedure.
2751 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
2753         * sem_ch6.adb: sem_ch6.adb (Analyze_Expression_Function): Copy
2754         types and return expression when building spec for implicit
2755         body, to preserve global references that may be present in an
2756         instantiation.
2758 2012-01-30  Matthew Heaney  <heaney@adacore.com>
2760         * a-convec.adb, a-coinve.adb, a-cobove.adb (Sort,
2761         Reverse_Elements): Check for cursor tampering.
2763 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
2765         * sem_util.adb (Is_Fully_Initialized_Type): In Ada 2012, a
2766         type with aspect Default_Value or Default_Component_Value is
2767         fully initialized, and use of variables of such types do not
2768         generate warnings.
2770 2012-01-30  Javier Miranda  <miranda@adacore.com>
2772 PR ada/15846
2773         * sem_ch8.adb (Analyze_Subprogram_Renaming):
2774         Handle self-renaming when the renamed entity is referenced using
2775         its expanded name.
2777 2012-01-30  Vincent Celier  <celier@adacore.com>
2779         * projects.texi: Add documentation for attribute Interfaces.
2781 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
2783         * exp_ch7.adb (Build_Finalizer_Call): Set loc again.
2784         * exp_ch11.adb (Expand_At_End_Handler): Do not provide a source
2785         location for the wrapped call to the original AT_END routine
2786         and the subsequent return statement.
2788 2012-01-30  Pascal Obry  <obry@adacore.com>
2790         * s-rannum.adb: Minor reformatting.
2792 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
2794         * a-calend-vms.adb, a-calend.adb: Increment the number of leap seconds
2795         to 25 and add the hard time value for 2012-06-30.
2797 2012-01-30  Robert Dewar  <dewar@adacore.com>
2799         * a-strhas.ads, einfo.adb, einfo.ads, exp_ch7.adb, exp_ch9.adb,
2800         freeze.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-proc.adb, s-llflex.ads,
2801         s-ransee.adb, s-ransee.ads, sem_ch13.adb, sem_dim.adb, sem_prag.adb:
2802         Minor reformatting/code reorganization.
2804 2012-01-30  Thomas Quinot  <quinot@adacore.com>
2806         * s-rannum.adb, s-ransee.adb, s-ransee.ads (Get_Seed): Return
2807         Unsigned_64 rather than Duration.
2808         (System.Random_Numbers.Reset): Use full value of seed
2809         (do not truncate sub-second bits).
2811 2012-01-30  Thomas Quinot  <quinot@adacore.com>
2813         * sem_cat.adb, sem_ch12.adb: Minor reformatting.
2815 2012-01-30  Yannick Moy  <moy@adacore.com>
2817         * gnat_ugn.texi: Minor correction of GNAT UG, to take into
2818         account changes to -gnatwa and more recent warnings.
2820 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
2822         * exp_ch7.adb (Build_Finalizer_Call): Do not provide a source
2823         location when creating a call to a finalizer.
2824         * exp_ch11.adb (Expand_Exception_Handlers): Do not provide
2825         a source location for the first actual of Save_Occurrence for
2826         consistency sake.
2828 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
2830         * einfo.ads, einfo,adb: New attribute on scalar types:
2831         Default_Aspect_Value New attribute on  array types:
2832         Default_Aspect_Component_Value Move attribute Related_Array_Object
2833         to a different position to accomodate new aspect attributes.
2834         * freeze.adb (Freeze_Entity): Use new attributes to retrieve value
2835         of defaults set with an aspect specification, rather than using
2836         the list of aspects attached to the type, to prevent issues with
2837         partial views.
2838         * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
2839         Default_Value and Default_Component _Value, store corresponding
2840         expression in type entity.
2841         (Check_Aspect_At_End_Of_Declaration): If the default aspects
2842         are declared on the full view, use the full view to resolve the
2843         correseponding expression.
2844         * exp_ch3.adb (Init_Component): Use attribute
2845         Default_Aspect_Component_Value to perform default initialization,
2846         rather than relying on the rep item list for the type.
2847         (Get_Simple_Init_Val): Ditto.
2849 2012-01-30  Thomas Quinot  <quinot@adacore.com>
2851         * a-strhas.ads: Document risk of collision attack.
2853 2012-01-30  Yannick Moy  <moy@adacore.com>
2855         * gnat_ugn.texi: Minor update wrt warning switches.
2857 2012-01-30  Vincent Celier  <celier@adacore.com>
2859         * prj-nmsc.adb (Check_Interfaces): Report an error when a
2860         unit from Library_Interface is not a unit of the project.
2862 2012-01-30  Vincent Pucci  <pucci@adacore.com>
2864         * sem_prag.adb (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Parent
2865         links fixed inside PPC pragmas.
2866         * sem_ch12.adb: Move call to Make_Aspect_For_PPC_In_Gen_Sub_Decl.
2868 2012-01-30  Thomas Quinot  <quinot@adacore.com>
2870         * s-ransee.ads: Minor reformatting.
2872 2012-01-30  Pascal Obry  <obry@adacore.com>
2874         * prj.ads, prj.adb (For_Each_Source): Add support for skipping
2875         sources coming from an encapsulated library.
2877 2012-01-30  Ed Schonberg  <schonberg@adacore.com>
2879         * sem_ch3.adb (Process-Full_View): fix typo.
2880         * sem_ch13.adb (Aalyze_Aspect_Specifications): if predicates
2881         appear on a private type and the full view is available, ensure
2882         existence of freeze node for full view.
2883         (Build_Predicate_Function): Attach predicate function to both
2884         views of a private type.
2886 2012-01-30  Vincent Celier  <celier@adacore.com>
2888         * prj-nmsc.adb (Check_Interfaces): Compute the Lib_Interface_ALIs
2889         for the project if either attribute Library_Interface or
2890         Interfaces is declared.
2891         (Check_Stand_Alone_Library): Use Lib_Interface_ALIs computed in
2892         Check_Interfaces.
2894 2012-01-30  Pascal Obry  <obry@adacore.com>
2896         * prj-proc.adb (Recursive_Process): Set From_Encapsulated_Lib
2897         boolean value to true in the process list created by this routine.
2898         * prj.ads (Project_List_Element): New field From_Encapsulated_Lib.
2899         Continued work for KA06-021.
2900         * prj.adb (Compute_All_Imported_Projects): Set
2901         From_Encapsulated_Lib boolean flag.
2903 2012-01-30  Vincent Pucci  <pucci@adacore.com>
2905         * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Minor
2906         code clean up.
2907         * s-diflio.ads: Minor change.
2909 2012-01-30  Javier Miranda  <miranda@adacore.com>
2911         * exp_ch9.adb (Build_Dispatching_Requeue): Add missing call
2912         to Get_Entry_Index.  Required to generate code which provides
2913         the correct value of Entry_Index in the target entry.
2915 2012-01-30  Nicolas Roche  <roche@adacore.com>
2917         * system-vxworks-ppc.ads: Add pragma Linker_Options -crtbe to
2918         fix issue with zcx on VxWorks5.
2920 2012-01-30  Pascal Obry  <obry@adacore.com>
2922         * prj.ads, prj.adb (For_Every_Project_Imported): Remove
2923         In_Aggregate_Lib.
2924         (For_Every_Project_Imported_Context): New generic routine with
2925         a context parameter.
2926         * prj-nmsc.adb: Revert to use For_Every_Project_Imported Avoid
2927         distributed complexity.
2928         * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: Ditto.
2930 2012-01-30  Thomas Quinot  <quinot@adacore.com>
2932         * exp_aggr.adb (Expand_Record_Aggregate): After creating the
2933         _parent aggregate for an extension aggregate, check whether it
2934         requires delayed (top-down) expansion.
2936 2012-01-30  Vincent Pucci  <pucci@adacore.com>
2938         * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Rewritten.
2939         * snames.ads-tmpl: Name_Item and Name_Symbols added.
2940         * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads: Rename
2941         and change the position of parameter Symbols in every Put routine.
2942         * s-dimmks.ads: Convert long float type Mks_Type into long
2943         long float.
2944         * s-llflex.ads: Modifications in comments.
2946 2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
2948         * sem_ch12.adb (Earlier): Do not use the
2949         top level source locations of the two input nodes.
2951 2012-01-30  Robert Dewar  <dewar@adacore.com>
2953         * einfo.ads, sem_prag.adb, sem_attr.adb, aspects.ads,
2954         sem_cat.adb, sem_aggr.adb, exp_aggr.adb: Minor reformatting.
2956 2012-01-30  Robert Dewar  <dewar@adacore.com>
2958         * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting.
2960 2012-01-30  Olivier Hainque  <hainque@adacore.com>
2962         * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Add rule for r1 back +
2963         comments.
2965 2012-01-30  Thomas Quinot  <quinot@adacore.com>
2967         * gnat_rm.texi, sem_dist.adb, sem_dist.ads, einfo.ads, sem_prag.adb,
2968         sem_ch12.adb, sem_attr.adb, aspects.adb, aspects.ads, par-prag.adb,
2969         sem_cat.adb, snames.ads-tmpl (Sem_Dist.Is_Valid_Remote_Object_Type):
2970         New subprogram (extracted from
2971         Sem_Cat.Validate_Remote_Access_Object_Type_Declaration).
2972         (Einfo.Is_Remote_Types): Now applies to generic types. Update
2973         documentation accordingly.
2974         (Sem_Ch12.Analyze_Associations): A RACW type is acceptable as
2975         actual for a formal type to which a pragma Remote_Access_Type
2976         applies.
2977         (Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect
2978         Remote_Access_Type.
2979         (Sem_Attr.Analyze_Attribute, case Stub_Type): Attribute can
2980         be applied to a generic type if pragma Remote_Access_Type
2981         applies, in which case the type of the attribute is
2982         System.Partition_Interface.RACW_Stub_Type.
2984 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
2986         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set
2987         an alignment on fields of the RETURN type built for the CICO mechanism.
2989 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
2991         * gcc-interface/trans.c (gnat_to_gnu): Avoid making a SAVE_EXPR for
2992         a call to a function that returns an unconstrained type with default
2993         discriminant.  Similarly, avoid doing the conversion to the nominal
2994         result type in this case.
2996 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
2998         * gcc-interface/ada-tree.h (DECL_ALIASED_P): New flag.
2999         * gcc-interface/decl.c (is_variable_size): Rename to...
3000         (type_has_variable_size): ...this.
3001         (adjust_packed): Adjust to above renaming.
3002         (gnat_to_gnu_field): Set DECL_ALIASED_P on the field.
3003         (field_is_artificial): New predicate.
3004         (field_is_aliased): Likewise.
3005         (field_has_self_size): Likewise.
3006         (field_has_variable_size): Likewise.
3007         (components_to_record): Record information for the final layout during
3008         the first pass on fields.
3009         If there is an aliased field placed after a field whose length depends
3010         on discriminants, put all the fields of the latter sort, last.
3012 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
3014         * gcc-interface/gigi.h (get_minimal_subprog_decl): Declare.
3015         * gcc-interface/decl.c (get_minimal_subprog_decl): New function.
3016         * gcc-interface/trans.c (Attribute_to_gnu): Use it for the prefix of an
3017         Access-like attribute in a dispatch table if the subprogram is public.
3019 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
3021         * gcc-interface/gigi.h (create_label_decl): Adjust.
3022         * gcc-interface/utils.c (create_label_decl): Add GNAT_NODE parameter
3023         and invoke gnat_pushdecl on it.  Remove obsolete settings.
3024         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Label>: Adjust call to
3025         create_label_decl.
3026         * gcc-interface/trans.c (gnat_to_gnu) <N_Null): Likewise.  Ignore the
3027         label for debugging purposes.
3029 2012-01-27  Eric Botcazou  <ebotcazou@adacore.com>
3031         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an aliased
3032         object with an unconstrained nominal subtype and if optimization isn't
3033         enabled, create a special VAR_DECL for debugging purposes.
3035 2012-01-23  Robert Dewar  <dewar@adacore.com>
3037         * sem_prag.ads, sem_prag.adb: Minor reformatting.
3039 2012-01-23  Robert Dewar  <dewar@adacore.com>
3041         * sem_ch13.adb (Analyze_Aspect_Specifications): Check for
3042         language defined aspect applied to renaming or formal type
3043         declaration (not permitted)
3045 2012-01-23  Matthew Heaney  <heaney@adacore.com>
3047         * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Vet): Replaced
3048         comment with pragma Assert.
3050 2012-01-23  Vincent Pucci  <pucci@adacore.com>
3052         * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
3053         to Make_Aspect_For_PPC_In_Gen_Sub_Decl added in ASIS mode.
3054         * sem_prag.adb, sem_prag.ads (Make_Aspect_For_PPC_In_Gen_Sub_Decl): New
3055         routine. In ASIS mode, convert any PPC pragmas into aspects in generic
3056         subprogram declaration in order to enable the analysis of PPC boolean
3057         expressions.
3059 2012-01-23  Robert Dewar  <dewar@adacore.com>
3061         * sem_ch3.adb (Analyze_Object_Declaration): Properly
3062         handle Current_Value for volatile variables (also propagate
3063         Treat_As_Volatile from type to object).
3065 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
3067         * sem_ch12.adb (Install_Body): Detect the case
3068         where the enclosing context is a package with a stub body that
3069         has already been replaced by the actual body. In such cases,
3070         the freeze node for the enclosing context must be inserted after
3071         the real body.
3073 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
3075         * sem_prag.adb (Analyze_Pragma, case Debug): Freeze the called
3076         subprogram before expanding the pragma into an if-statement with
3077         a block, to ensure that when the subprogram is null its body is
3078         properly generated before expansion.
3080 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
3082         * sem_ch12.adb (Analyze_Associations): Alphabetize local variables and
3083         constants. Rename Actual_Types to Actuals_To_Freeze. Rename Next_Formal
3084         to Saved_Formal.
3085         Freeze all eligible subprograms which appear as actuals in
3086         the instantiation.
3087         (Has_Fully_Defined_Profile): New routine.
3088         (Renames_Standard_Subprogram): New routine.
3089         (Earlier): Add local variable N. Comment update. Do not use source
3090         locations when trying to determine whether one node precedes another.
3092 2012-01-23  Gary Dismukes  <dismukes@adacore.com>
3094         * exp_ch4.adb (Expand_Concatenate): In the case
3095         where the result of a concatentation can be null, set the to
3096         result have both the low and high bounds of the right operand (not
3097         just the high bound, as was the case prior to this fix). Also,
3098         fix the saved high bound setting (Last_Opnd_High_Bound) in the
3099         empty string literal case (should have been low bound minus one,
3100         rather than plus one).
3102 2012-01-23  Thomas Quinot  <quinot@adacore.com>
3104         * scos.ads, put_scos.adb, get_scos.adb (Get_SCOs, Put_SCOs): Do not
3105         omit statement SCOs for disabled pragmas.
3107 2012-01-23  Matthew Heaney  <heaney@adacore.com>
3109         * a-cohase.ads, a-cihase.ads, a-cbhase.ads, a-coorse.ads,
3110         a-ciorse.ads, a-cborse.ads, a-cohama.ads, a-cihama.ads, a-cbhama.ads,
3111         a-coorma.ads, a-ciorma.ads, a-cborma.ads, a-cdlili.ads, a-cidlli.ads,
3112         a-cbdlli.ads, a-convec.ads, a-coinve.ads, a-cobove.ads (Cursor'Read,
3113         Cursor'Write): Declare in private part.
3114         (Reference_Type'Read, Reference_Type'Write): Ditto.
3115         (Constant_Reference_Type'Read, Constant_Reference_Type'Write): Ditto.
3117 2012-01-23  Robert Dewar  <dewar@adacore.com>
3119         * a-catizo.ads, a-calend.adb, a-calend.ads, par-ch13.adb: Minor
3120         reformatting.
3122 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
3124         * sem_ch6.adb (Analyze_Subprogram_Declaration): Do not set the
3125         Corresponding_Body on a defaulted null formal subprogram.
3126         * sem_ch12.adb (Check_Formal_Package_Instance): No check needed
3127         on a defaulted formal subprogram that is a null procedure.
3129 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
3131         * exp_ch9.adb: Update the comments involving pragma Implemented.
3132         * sem_ch3.adb (Check_Pragma_Implemented (Entity_Id)): Add local
3133         constant Subp_Alias and local variable Impl_Subp. Properly
3134         handle aliases of synchronized wrappers. Code cleanup.
3135         (Check_Pragma_Implemented (Entity_Id; Entity_Id)): Add
3136         Name_Optional as part of the condition.
3137         * sem_prag.adb (Analyze_Pragma): Add "Optional" as one of the
3138         valid choices of implementation kind.
3139         (Check_Arg_Is_One_Of): New routine.
3140         * snames.ads-tmlp: Add Name_Optional.
3142 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
3144         * par-ch13.adb: Better error recovery in illegal aspect
3145         specification.
3147 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
3149         * a-calend.adb: Add with clause for Interfaces.C. Add constant
3150         Unix_Max.
3151         (Day_Of_Week): Call the internal UTC_Time_Offset.
3152         (Split): Call the internal UTC_Time_Offset.
3153         (Time_Of): Call the internal UTC_Time_Offset.
3154         (Time_Zone_Operations.UTC_Time_Offset): Call internal UTC_Time_Offset.
3155         (UTC_Time_Offset): New library-level routine.
3156         * a-calend.ads (UTC_Time_Offset): Remove parameter
3157         Is_Historic. Update related comment on usage.
3158         * a-catizo.adb (UTC_Time_Offset): Removed.
3159         (UTC_Time_Offset (Time)): Call Time_Zone_Operations.UTC_Time_Offset.
3160         * a-caltizo.ads (UTC_Time_Offset): Removed.
3161         (UTC_Time_Offset (Time)): Add back the default expression of parameter
3162         Date.
3164 2012-01-23  Robert Dewar  <dewar@adacore.com>
3166         * sprint.ads, sprint.adb (Sprint_Node_List): Add New_Lines parameter
3167         (pg,po,ps): Make sure each entry starts on new line.
3169 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
3171         * a-calend.ads, a-calend.adb: Define types int and int_Pointer. Update
3172         the parameter profile of procedure localtime_tzoff and its associated
3173         comment.
3174         (Day_Of_Week): Do not treat the input date as historical
3175         with respect to time zones.
3176         (Split): Do not treat the input
3177         date as historical with respect to time zones.  (Time_Of): Do
3178         not treat the input constituents as forming a historical date
3179         with respect to time zones.
3180         (UTC_Time_Offset): Add new formal
3181         parameter Is_Historic. Add local variable Flag. Update the call
3182         to localtime_tzoff.
3183         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): New routine.
3184         (UTC_Time_Offset (Time)): Update the call to
3185         Time_Zone_Operations.UTC_Time_Offset.
3186         * sysdep.c (__gnat_localtime_tzoff): Update parameter
3187         profile. Split the processing of offsets on Windows into two - one
3188         part of historic time stamps and the other for the current time.
3190 2012-01-23  Robert Dewar  <dewar@adacore.com>
3192         * a-calend.adb: Minor reformatting.
3194 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
3196         * exp_ch9.adb, sem_ch9.adb: Handle array of access to synchronized
3197         interface in requeue statement.
3199 2012-01-23  Cyrille Comar  <comar@adacore.com>
3201         * projects.texi: Remove references to main units and replace
3202         with references to main programs to be coherent with the
3203         documentation.
3205 2012-01-23  Robert Dewar  <dewar@adacore.com>
3207         * s-utf_32.adb: Minor reformatting.
3209 2012-01-23  Vincent Celier  <celier@adacore.com>
3211         * snames.ads-tmpl: Minor comment addition Indicate that
3212         Name_Library_Encapsulated_Options is only used in gprbuild.
3214 2012-01-23  Robert Dewar  <dewar@adacore.com>
3216         * sem_ch10.adb (Analyze_Subunit): Properly save/restore cunit
3217         restrictions.
3219 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
3221         * snames.ads-tmpl: Add Name_Synchronization.
3222         * aspects.ads, aspects.adb: Add Aspect_Synchronization to
3223         enumeration type and related maps.
3224         * sem_ch13.adb (Analyze_Aspect_Specifications): Handle Aspect
3225         Synchronization, build corresponding pragma Implemented.
3226         * sem_util.adb (Implementation_Kind): Handle both explicit and
3227         implicit pragma_argument association to retrieve the given
3228         synchronization mode.
3230 2012-01-23  Robert Dewar  <dewar@adacore.com>
3232         * sem_ch10.adb, errout.adb: Minor reformatting.
3234 2012-01-23  Ed Schonberg  <schonberg@adacore.com>
3236         * sem_res.adb (Resolve_Actuals): An actual in a call to an
3237         Ada 2012 Reference function does not lead to a dangerous order
3238         dependence.
3240 2012-01-23  Gary Dismukes  <dismukes@adacore.com>
3242         * exp_util.adb (Is_Iterated_Container): Test
3243         Is_Entity_Name when searching for calls to the default iterator,
3244         to avoid blowing up on indirect calls which have an explicit
3245         dereference as the call name.
3247 2012-01-23  Thomas Quinot  <quinot@adacore.com>
3249         * errout.adb (Set_Msg_Node): For an N_Expanded_Name, output
3250         the complete expanded name, rather than just its Selector_Name.
3252 2012-01-23  Thomas Quinot  <quinot@adacore.com>
3254         * a-textio.adb (Put): Rewrite one-parameter Character version to
3255         just call the two-parameter one with Current_Out.
3257 2012-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
3259         * freeze.adb (Check_Current_Instance): Issue an
3260         error when the prefix of 'Unchecked_Access or 'Access does not
3261         denote a legal aliased view of a type.
3262         (Freeze_Record_Type): Do not halt the processing of record components
3263         once the Has_Controlled_Component is set as this bypasses the remaining
3264         checks.
3265         (Is_Aliased_View_Of_Type): New routine.
3267 2012-01-23  Thomas Quinot  <quinot@adacore.com>
3269         * errout.ads, freeze.adb: Minor reformatting.
3271 2012-01-23  Thomas Quinot  <quinot@adacore.com>
3273         * sem_ch10.adb, sem_prag.adb: Remove redundant apostrophes in error
3274         messages.
3276 2012-01-23  Olivier Hainque  <hainque@adacore.com>
3278         * adadecode.c (__gnat_decode): Deal with empty input early,
3279         preventing potential erroneous memory access later on.
3281 2012-01-21  Eric Botcazou  <ebotcazou@adacore.com>
3283         PR ada/46192
3284         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the case of a
3285         renaming, preserve the volatileness through the indirection, if any.
3287 2012-01-14  Andreas Schwab  <schwab@linux-m68k.org>
3289         * gcc-interface/Makefile.in (OSCONS_EXTRACT): Add
3290         $(GNATLIBCFLAGS).
3292 2012-01-10  Pascal Obry  <obry@adacore.com>
3294         * prj-nmsc.adb (Check_Library_Attributes):
3295         Kill check for object/source directories for aggregate libraries.
3297 2012-01-10  Matthew Heaney  <heaney@adacore.com>
3299         * a-cdlili.adb, a-cdlili.ads, a-cihama.adb, a-cihama.ads, a-coinve.adb,
3300         a-coinve.ads, a-ciorse.adb, a-ciorse.ads, a-coorma.adb, a-coorma.ads,
3301         a-cborma.adb, a-cborma.ads, a-cidlli.adb, a-cidlli.ads, a-cimutr.adb,
3302         a-cimutr.ads, a-cihase.adb, a-cihase.ads, a-cohama.adb, a-cohama.ads,
3303         a-coorse.adb, a-coorse.ads, a-cbhama.adb, a-cbhama.ads, a-cborse.adb,
3304         a-cborse.ads, a-comutr.adb, a-comutr.ads, a-ciorma.adb, a-cobove.adb,
3305         a-ciorma.ads, a-cobove.ads, a-convec.adb, a-convec.ads, a-cohase.adb,
3306         a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbmutr.adb, a-cbmutr.ads,
3307         a-cbhase.adb, a-cbhase.ads (Reference, Constant_Reference): Declare
3308         container parameter as aliased in/in out.
3309         Code clean ups.
3311 2012-01-10  Bob Duff  <duff@adacore.com>
3313         * s-os_lib.ads: Improve comment.
3315 2012-01-10  Geert Bosch  <bosch@adacore.com>
3317         * s-gearop.adb (Forward_Eliminate): Avoid improper aliasing
3318         for complex Scalar.
3320 2012-01-10  Bob Duff  <duff@adacore.com>
3322         * sem_intr.adb (Check_Shift): Use RM_Size instead of Esize, when
3323         checking that the 'Size is correct. If the type is "mod 2**12",
3324         for example, it's illegal, but Esize is the 'Object_Size, which
3325         will be something like 16 or 32, so the error ('Size = 12) was
3326         not detected.
3327         * gnat_rm.texi: Improve documentation of shift
3328         and rotate intrinsics.
3330 2012-01-10  Pascal Obry  <obry@adacore.com>
3332         * prj.adb (For_Every_Project_Imported): Fix
3333         implementation to make sure we return each project only once
3334         for aggragte libraries. It is fine to return a project twice for
3335         aggregate projects, this was the case as a Project_Id is different
3336         in each project tree. The new implementation use a table based on
3337         the project name to ensure proper detection of duplicate project
3338         in aggregate library. A new context is then created to continue
3339         retrurning duplicate project for aggregate libraries.
3341 2012-01-09  Eric Botcazou  <ebotcazou@adacore.com>
3343         * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
3344         return value in the variable-sized return type case if the target is
3345         an array with fixed size.  However, do not create it if this is the
3346         expression of an object declaration.
3348 2012-01-09  Eric Botcazou  <ebotcazou@adacore.com>
3350         * gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko.
3352 2012-01-06  Robert Dewar  <dewar@adacore.com>
3354         * a-wichha.ads, a-wichun.ads, a-zchhan.ads, a-zchuni.ads,
3355         s-utf_32.ads: Add pragma Pure
3356         * s-utf_32.adb: Suppress warnings on non-static constants (now
3357         that this is Pure).
3359 2012-01-06  Bob Duff  <duff@adacore.com>
3361         * s-rpc.ads (Read, Write): Add overriding indicators.
3363 2012-01-06  Robert Dewar  <dewar@adacore.com>
3365         * gnat_rm.texi: Add documentation for conventions
3366         Ada_Pass_By_Copy and Ada_Pass_By_Reference.
3368 2012-01-06  Gary Dismukes  <dismukes@adacore.com>
3370         * a-tienio.adb (Put): Add exception message on
3371         raise statements. Remove unneeded blocks and object declarations.
3373 2012-01-06  Robert Dewar  <dewar@adacore.com>
3375         * sem_prag.adb: Minor reformatting.
3377 2012-01-06  Ed Schonberg  <schonberg@adacore.com>
3379         * sinfo.ads, sinfo.adb (Has_Prefixed_Call): New flag to indicate
3380         that a selected component within a generic unit has been resolved
3381         as a prefixed call with local references.
3382         * sem_ch3.adb (Is_Visible_Component): In an instance body a selected
3383         component is always visible.
3384         * sem_ch4.adb (Analyze_Selected_Component): If the node is a
3385         prefixed call in an instance, do not look for visible components
3386         of the type.
3387         * sem_ch12.adb (Reset_Entity): If a selected component has resolved
3388         to a prefixed call, mark the node accordingly when prefix and
3389         selector are local references.
3391 2012-01-02  Eric Botcazou  <ebotcazou@adacore.com>
3393         * gnatvsn.ads (Current_Year): Bump to 2012.
3395 Copyright (C) 2012 Free Software Foundation, Inc.
3397 Copying and distribution of this file, with or without modification,
3398 are permitted in any medium without royalty provided the copyright
3399 notice and this notice are preserved.