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