1 2012-10-01 Ed Schonberg <schonberg@adacore.com>
3 * sem_prag.adb (Process_Convention, Process_Import_Or_Interface):
4 Adjust test so that when the pragma comes from an aspect
5 specification it only applies to the entity in the original
8 2012-10-01 Thomas Quinot <quinot@adacore.com>
10 * gnat_ugn.texi: Document new command line switch -fada-spec-parent.
12 2012-10-01 Thomas Quinot <quinot@adacore.com>
14 * s-oscons-tmplt.c, g-socket.ads: Minor code improvement: use gcc
15 builtin __alignof__ to get the alignment of struct fd_set.
17 2012-10-01 Vincent Pucci <pucci@adacore.com>
19 * exp_ch6.adb (Expand_Call): Remove call to
20 Remove_Dimension_In_Call.
21 * sem_aggr.adb (Resolve_Array_Aggregate): Analyze dimension of
22 components in array aggregate.
23 (Resolve_Aggr_Expr): Propagate dimensions from the original expression
24 Expr to the new created expression New_Expr when resolving the
25 expression of a component in record aggregates.
26 (Resolve_Record_Aggregate): Analyze
27 dimension of components in record (or extension) aggregate.
28 * sem_ch6.adb (Analyze_Subprogram_Specification): Analyze
29 dimension of formals with default expressions in subprogram
31 * sem_ch8.adb (Analyze_Expanded_Name): Analyze dimension of
33 (Find_Selected_Component): Analyze dimension of selected component.
34 * sem_dim.adb: Several dimension error messages reformatting.
35 (Dimensions_Msg_Of): New flag Description_Needed in order to
36 differentiate two different sort of dimension error messages.
37 (Dim_Warning_For_Numeric_Literal): New routine.
38 (Exists): New routine.
39 (Move_Dimensions): Routine spec moved to spec file.
40 * sem_dim.ads (String_From_Numeric_Literal): New routine.
41 (Analyze_Dimension): Analyze dimension only when the
42 node comes from source. Dimension analysis for expanded names added.
43 (Analyze_Dimension_Array_Aggregate): New routine.
44 (Analyze_Dimension_Call): New routine.
45 (Analyze_Dimension_Component_Declaration): Warning if default
46 expression is a numeric literal.
47 (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine.
48 (Analyze_Dimension_Formals): New routine.
49 (Analyze_Dimension_Object_Declaration): Warning if default
50 expression is a numeric literal.
51 (Symbol_Of): Return either the dimension subtype symbol or the
52 dimension symbol built by From_Dim_To_Str_Of_Unit_Symbols.
53 * sem_dim.ads (Analyze_Dimension_Array_Aggregate): New routine.
54 (Analyze_Dimension_Call): New routine.
55 (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine.
56 (Analyze_Dimension_Formals): New routine.
57 (Move_Dimensions): Moved from sem_dim.adb.
58 * s-dimmks.ads: Turn off the warnings for dimensioned object
59 declaration. Dimensioned subtypes sorted in alphabetical
60 order. New subtypes Area, Speed, Volume.
61 * s-dmotpr.ads: Turn off the warnings for dimensioned object
63 * sem_res.adb (Resolve_Call): Analyze dimension for calls.
65 2012-10-01 Thomas Quinot <quinot@adacore.com>
67 * Make-generated.in: Minor cleanup of all targets: use
68 MOVE_IF_CHANGE to put generated files in place, to avoid useless
71 2012-10-01 Javier Miranda <miranda@adacore.com>
73 * exp_disp.adb (Expand_Dispatching_Call): For functions returning
74 interface types add an implicit conversion to the returned object
75 to force the displacement of the pointer to the returned object
76 to reference the corresponding secondary dispatch table. This
77 is needed to handle well combined calls involving secondary
78 dispatch tables (for example Obj.Prim1.Prim2).
79 * exp_ch4.adb (Expand_Allocator_Expression): Declare internal
80 access type as access to constant or access to variable depending
81 on the context. Found working in this ticket.
83 2012-10-01 Ed Schonberg <schonberg@adacore.com>
85 * checks.adb (Apply_Predicate_Check): Do not apply check to
86 actual of predicate checking procedure, to prevent infinite
89 2012-10-01 Arnaud Charlet <charlet@adacore.com>
91 * gcc-interface/Make-lang.in: Update dependencies.
92 (GCC_LINK): Add -static-libstdc++.
94 2012-10-01 Arnaud Charlet <charlet@adacore.com>
96 * a-catizo.adb, a-stwiun.adb, a-cdlili.adb, a-cihama.adb, a-direct.adb,
97 a-coinve.adb, a-calend.adb, a-ciorse.adb, a-coorma.adb, a-cfdlli.adb,
98 a-stzunb-shared.adb, a-cfhase.adb, bindgen.adb, ceinfo.adb, a-tags.adb,
99 einfo.adb, checks.adb, eval_fat.adb, a-cborma.adb, a-stwifi.adb,
100 a-tifiio.adb, a-textio.adb, a-cidlli.adb, a-strunb-shared.adb,
101 a-cimutr.adb, a-calcon.adb, a-exexpr-gcc.adb, a-ciormu.adb,
102 a-stzunb.adb, a-stzsea.adb, a-ngelfu.adb, a-stzfix.adb,
103 a-cihase.adb, a-cohama.adb, a-exetim-posix.adb, a-dirval-vms.adb,
104 a-caldel-vms.adb, a-coorse.adb, errout.adb,
105 a-except.adb, butil.adb, a-dirval-mingw.adb, a-cforma.adb,
106 a-except-2005.adb, a-wtedit.adb, cstand.adb, a-stwiun-shared.adb,
107 a-cbhama.adb, a-direio.adb, clean.adb, a-cborse.adb, back_end.adb,
108 binde.adb, a-exexda.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb,
109 a-coormu.adb, a-teioed.adb, a-convec.adb, a-wtenau.adb, exp_aggr.adb,
110 a-ztedit.adb, a-cohase.adb, a-exetim-mingw.adb, bcheck.adb,
111 a-dynpri.adb, a-cfhama.adb, a-calfor.adb, a-cbdlli.adb,
112 a-crdlli.adb, a-cbmutr.adb, a-sequio.adb, a-ngcoar.adb, a-cforse.adb,
113 a-strunb.adb, a-calend-vms.adb, a-clrefi.adb, a-cofove.adb,
114 a-ztenau.adb, a-strfix.adb, a-cbhase.adb, a-stzsup.adb: Minor
117 2012-10-01 Vincent Pucci <pucci@adacore.com>
119 * s-gearop.adb (Vector_Matrix_Product): Dimensions check fixed. Index
120 of Left in S evaluation fixed.
122 2012-10-01 Javier Miranda <miranda@adacore.com>
124 * sem_ch3.adb (Analyze_Declarations): Avoid
125 premature freezing caused by the internally generated subprogram
127 * checks.adb (Expr_Known_Valid): Float literals are assumed to be valid
130 2012-10-01 Thomas Quinot <quinot@adacore.com>
132 * sinput.ads, sinput.adb, sinput-l.adb sinput-c.adb (Sinput): New
133 Instances table, tracking all generic instantiations. Source file
134 attribute Instance replaces previous Instantiation attribute with an
135 index into the Instances table.
136 (Iterate_On_Instances): New generic procedure.
137 (Create_Instantiation_Source): Record instantiations in Instances.
138 (Tree_Read, Tree_Write): Read/write the instance table.
139 * scils.ads, scos.adb (SCO_Instance_Table): New table, contains
140 information copied from Sinput.Instance_Table, but self-contained
141 within the SCO data structures.
142 * par_sco.ads, par_sco.adb (To_Source_Location): Move to library level.
143 (Record_Instance): New subprogram, used by...
144 (Populate_SCO_Instance_Table): New subprogram to fill
145 the SCO instance table from the Sinput one (called by SCO_Output).
146 * opt.ads (Generate_SCO_Instance_Table): New option.
147 * put_scos.adb (Write_Instance_Table): New subprogram, used by...
148 (Put_SCOs): Dump the instance table at the end of SCO information
150 * get_scos.adb (Get_SCOs): Read SCO_Instance_Table.
151 * types.h: Add declaration for Instance_Id.
152 * back_end.adb (Call_Back_End): Pass instance ids in source file
154 (Scan_Back_End_Switches): -fdebug-instances sets
155 Opt.Generate_SCO_Instance_Table.
156 * gcc-interface/gigi.h: File_Info_Type includes instance id.
157 * gcc-interface/trans.c: Under -fdebug-instances, set instance
158 id in line map from same in file info.
160 2012-10-01 Thomas Quinot <quinot@adacore.com>
162 * sem_elab.adb: Minor reformatting
163 (Check_Elab_Call): Minor fix to debugging code
164 (add special circuit for the valid case where a 'Access attribute
165 reference is passed to Check_Elab_Call).
167 2012-10-01 Thomas Quinot <quinot@adacore.com>
169 * exp_ch3.adb: Minor reformatting.
171 2012-10-01 Ed Schonberg <schonberg@adacore.com>
173 * exp_ch3.ads (Build_Array_Invariant_Proc): moved to body.
174 * exp_ch3.adb (Build_Array_Invariant_Proc,
175 Build_Record_Invariant_Proc): transform into functions.
176 (Insert_Component_Invariant_Checks): for composite types that have
177 components with specified invariants, build a checking procedure,
178 and make into the invariant procedure of the composite type,
179 or incorporate it into the user- defined invariant procedure if
180 one has been created.
181 * sem_ch3.adb (Array_Type_Declaration): Checking for invariants
182 on the component type is defered to the expander.
184 2012-10-01 Thomas Quinot <quinot@adacore.com>
186 * xsnamest.adb, namet.h, sem_ch10.adb, s-oscons-tmplt.c,
187 xoscons.adb: Minor reformatting.
189 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
191 * checks.adb (Apply_Parameter_Aliasing_And_Validity_Checks):
192 Do not process subprogram renaminds because a) those cannot
193 have PPC pragmas b) the renamed entity already has the PPCs.
194 (Build_PPC_Pragma): Prepend a PPC pragma for consistency with
196 * sem_ch6.adb (Last_Implicit_Declaration): Removed.
197 (Process_PPCs): Insert a post condition body at the start of the
198 declarative region of the related subprogram. This way the body
199 will not freeze anything it shouldn't.
201 2012-10-01 Robert Dewar <dewar@adacore.com>
203 * freeze.adb, sem_ch6.adb, opt.ads, sem_ch13.adb,
204 exp_ch3.adb: Minor reformatting.
206 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
208 * checks.adb (Build_PPC_Pragma): A PPC pragma can now be properly
209 associated with a subprogram body.
211 2012-10-01 Ed Schonberg <schonberg@adacore.com>
213 * aspects.ads: Type_Invariant'class is a valid aspect.
214 * sem_ch6.adb (Is_Public_Subprogram_For): with the exception of
215 initialization procedures, subprograms that do not come from
216 source are not public for the purpose of invariant checking.
217 * sem_ch13.adb (Build_Invariant_Procedure): Handle properly the
218 case of a non-private type in a package without a private part,
219 when the type inherits invariants from its ancestor.
221 2012-10-01 Ed Schonberg <schonberg@adacore.com>
223 * exp_ch3.adb (Build_Record_Invariant_Proc): new procedure to
224 generate a checking procedure for record types that may have
225 components whose types have type invariants declared.
227 2012-10-01 Vincent Pucci <pucci@adacore.com>
229 * system-solaris-sparcv9.ads, system-mingw.ads, system-vms_64.ads: Flag
230 Support_Atomic_Primitives set to True.
232 2012-10-01 Robert Dewar <dewar@adacore.com>
234 * impunit.adb: Ada.Locales is a language defined unit.
236 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
238 * checks.adb (Apply_Parameter_Aliasing_Checks): Removed.
239 (Apply_Parameter_Aliasing_And_Validity_Checks): New routine.
240 (Apply_Parameter_Validity_Checks): Removed.
241 * checks.ads (Apply_Parameter_Aliasing_Checks): Removed.
242 (Apply_Parameter_Aliasing_And_Validity_Checks): New routine.
243 (Apply_Parameter_Validity_Checks): Removed.
244 * exp_ch6.adb (Expand_Call): Remove the generation of parameter
246 * freeze.adb: Remove with and use clauses for Validsw.
247 (Freeze_Entity): Update the guard and generation of aliasing
248 and scalar initialization checks for subprogram parameters.
249 * opt.ads: Add new flags Check_Aliasing_Of_Parameters and
250 Check_Validity_Of_Parameters along with comments on usage.
251 * sem_attr.adb (Analyze_Attribute): Pragma Overlaps_Storage is
252 no longer an Ada 2012 feature.
253 * sem_ch4.adb: Remove with and use clauses for Checks and Validsw.
254 (Analyze_Call): Remove the generation of aliasing checks for
255 subprogram parameters.
256 * sem_ch13.adb: Remove with and use clauses for Validsw.
257 (Analyze_Aspect_Specifications): Remove the generation of scalar
258 initialization checks.
259 * switch-c.adb (Scan_Front_End_Switches): Add processing for
261 * usage.adb (Usage): Add information on switches -gnateA and
262 -gnateV. Remove information on validity switches 'l', 'L',
264 * validsw.adb (Reset_Validity_Check_Options): Remove the
265 reset of flags Validity_Check_Non_Overlapping_Params
266 and Validity_Check_Valid_Scalars_On_Params.
267 (Save_Validity_Check_Options): Remove the processing
268 for flags Validity_Check_Non_Overlapping_Params
269 and Validity_Check_Valid_Scalars_On_Params.
270 (Set_Validity_Check_Options): Remove the processing
271 for flags Validity_Check_Non_Overlapping_Params and
272 Validity_Check_Valid_Scalars_On_Params.
273 * validsw.ads: Remove flags Validity_Check_Non_Overlapping_Params
274 and Validity_Check_Valid_Scalars_On_Params along with their
277 2012-10-01 Yannick Moy <moy@adacore.com>
279 * sem_ch13.adb (Add_Invariants): Analyze the invariant expression
280 as an assertion expression.
281 * sem_ch3.adb / sem_ch3.ads (Preanalyze_Assert_Expression):
282 New procedure that wraps a call to Preanalyze_Spec_Expression
283 for assertion expressions, so that In_Assertion_Expr can be
285 * sem_prag.adb (Analyze_PPC_In_Decl_Part
286 Check_Precondition_Postcondition Preanalyze_CTC_Args): Call the
287 new Preanalyze_Assert_Expression.
289 2012-10-01 Robert Dewar <dewar@adacore.com>
291 * checks.ads: Minor reformatting.
293 2012-10-01 Yannick Moy <moy@adacore.com>
295 * types.ads, sem_prag.adb, sem.ads: Correct minor typos in comments.
297 2012-10-01 Vincent Celier <celier@adacore.com>
299 * make.adb (Scan_Make_Arg): Only test for "vP" of the option
300 includes at least 3 characters.
301 * gnatcmd.adb (GNATCmd): Ditto.
303 2012-10-01 Eric Botcazou <ebotcazou@adacore.com>
305 * exp_ch7.adb, sinfo.ads: Add comments.
307 2012-10-01 Robert Dewar <dewar@adacore.com>
309 * checks.adb: Remove reference to Enable_Overflow_Checks Use
310 Suppress_Options rather than Scope_Suppress.
311 * gnat1drv.adb (Adjust_Global_Switches): Handle new overflow
312 settings (Adjust_Global_Switches): Initialize Scope_Suppress
313 from Suppress_Options.
314 * opt.adb: Remove Enable_Overflow_Checks (use Suppress_Options
316 * opt.ads: Remove Overflow_Checks_Unsuppressed (not used)
317 Remove Enable_Overflow_Checks (use Suppress_Options instead)
318 Suppress_Options is now current setting (replaces Scope_Suppress).
319 * osint.adb (Initialize): Deal with initializing overflow
321 * par-prag.adb: Add dummy entry for pragma Overflow_Checks.
322 * sem.adb (Semantics): Save and restore In_Assertion_Expr Use
323 Suppress_Options instead of Scope_Suppress.
324 * sem.ads (In_Assertion_Expr): New flag (Scope_Suppress):
325 Removed, use Suppress_Options instead.
326 * sem_eval.adb (Compile_Time_Compare): Return Unknown in
328 * sem_prag.adb (Process_Suppress_Unsuppress): Setting of
329 Overflow_Checks_Unsuppressed removed (not used anywhere!)
330 (Analyze_Pragma, case Check): Set In_Assertion_Expression
331 (Analyze_Pragma, case Overflow_Checks): Implement new pragma
332 * snames.ads-tmpl: Add names needed for handling pragma
334 * switch-c.adb (Scan_Front_End_Switches) Handle -gnato? and
335 -gnato?? where ? is 0-3
336 * types.ads: Updates and fixes to comment on Suppress_Record.
338 2012-10-01 Vincent Celier <celier@adacore.com>
340 * prj-part.adb (Parse): Remove incorrect comment about checking
341 imported non extending projects from and "extending all"
342 one. Minor correction.
344 2012-10-01 Robert Dewar <dewar@adacore.com>
346 * make.adb, exp_ch3.adb: Minor reformatting.
348 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
350 * validsw.adb (Save_Validity_Check_Options): Do not set
351 Validity_Check_Non_Overlapping_Params and
352 Validity_Check_Valid_Scalars_On_Params when -gnatVa is present
353 because the related checks are deemed too aggressive.
355 2012-10-01 Ed Schonberg <schonberg@adacore.com>
357 * sem_util.ads sem_util.adb (Check_Internal_Protected_Use):
358 reject use of protected procedure or entry within the body of
359 a protected function of the same protected type, when usage is
360 a call, an actual in an instantiation, a or prefix of 'Access.
361 * sem_ch8.adb (Analyze_Subprogram_Renaming): Verify that target
362 object in renaming of protected procedure is a variable, and
363 apply Check_Internal_Protected_Use.
364 * sem_res.adb (Analyze_Call, Analyze_Entry_Call): apply
365 Check_Internal_Protected_Use rather than on-line code.
366 * sem_attr.adb (Analyze_Access_Attribute): Verify that target
367 object in accsss to protected procedure is a variable, and apply
368 Check_Internal_Protected_Use.
370 2012-10-01 Gary Dismukes <dismukes@adacore.com>
372 * sem_ch4.adb (Find_Equality_Types.Try_One_Interp): Exclude the
373 predefined interpretation from consideration if it's for a "/="
374 operator of a tagged type. This will allow Analyze_Equality_Op to
375 rewrite the "/=" as a logical negation of a call to the appropriate
376 dispatching equality function. This needs to be done during
377 analysis rather than expansion for the benefit of ASIS, which
378 otherwise gets the unresolved N_Op_Ne operator from Standard.
380 2012-10-01 Thomas Quinot <quinot@adacore.com>
382 * gnatcmd.adb, make.adb (Scan_Make_Arg, Inspect_Switches): Recognize
383 and reject an invalid parameter passed to -vP.
385 2012-10-01 Yannick Moy <moy@adacore.com>
387 * sem_warn.adb (Check_Infinite_Loop_Warning/Test_Ref): Improve
388 the detection of modifications to the loop variable by noting
389 that, if the type of variable is elementary and the condition
390 does not contain a function call, then the condition cannot be
391 modified by side-effects from a procedure call.
393 2012-10-01 Robert Dewar <dewar@adacore.com>
395 * checks.adb: Add comments.
397 2012-10-01 Javier Miranda <miranda@adacore.com>
399 * exp_ch3.adb (Expand_N_Object_Declaration): Improve condition catching
400 never-ending recursion. The previous condition erroneously disabled
401 silently the expansion of the class-wide interface object
402 initialization in cases not involving the recursion.
404 2012-10-01 Thomas Quinot <quinot@adacore.com>
406 * make.adb: Minor documentation fix: error messages are sent to
409 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com>
411 * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine.
412 (Apply_Parameter_Validity_Checks): New routines.
413 * exp_ch6.adb (Expand_Call): Add aliasing checks to detect
415 * freeze.adb: Add with and use clauses for Checks and Validsw.
416 (Freeze_Entity): Add checks to detect proper initialization
418 * sem_ch4.adb: Add with and use clauses for Checks and Validsw.
419 (Analyze_Call): Add aliasing checks to detect overlapping objects.
420 * sem_ch13.adb: Add with and use clauses for Validsw.
421 (Analyze_Aspect_Specifications): Add checks to detect proper
422 initialization of scalars.
423 * sem_prag.adb (Chain_PPC): Correct the extraction of the
425 * sem_util.adb (Is_Object_Reference): Attribute 'Result now
427 * usage.adb (Usage): Add usage lines for validity switches 'l',
429 * validsw.adb (Reset_Validity_Check_Options): Include
430 processing for flags Validity_Check_Non_Overlapping_Params and
431 Validity_Check_Valid_Scalars_On_Params. Code reformatting.
432 (Save_Validity_Check_Options): Include processing
433 for flags Validity_Check_Non_Overlapping_Params
434 and Validity_Check_Valid_Scalars_On_Params.
435 (Set_Validity_Check_Options): Add processing for validity switches
436 'a', 'l', 'L', 'n', 'v' and 'V'. Code reformatting.
437 * validsw.ads: Add new flags Validity_Check_Non_Overlapping_Params
438 and Validity_Check_Valid_Scalars_On_Params along with comments
441 2012-10-01 Thomas Quinot <quinot@adacore.com>
443 * namet.ads, xsnamest.adb, prj-env.adb, sem_warn.adb,
444 errout.ads: Minor reformatting.
445 * prj-part.adb: Add comment.
447 2012-10-01 Robert Dewar <dewar@adacore.com>
449 * sinfo.ads, exp_aggr.adb, sem_ch13.adb: Minor reformatting.
451 2012-10-01 Ed Schonberg <schonberg@adacore.com>
453 * sem_aggr.adb (Resolve_Array_Aggregate): Handle properly
454 component associations given by subtypes that have static
455 predicates. Improve error message for overlapping ranges in
458 2012-10-01 Pascal Obry <obry@adacore.com>
460 * snames.ads-tmpl (Name_Link_Lib_Subdir): New constant.
462 2012-10-01 Ed Schonberg <schonberg@adacore.com>
464 * sem_ch9.adb (Analyze_Requeue): The target of a requeue
465 statement on a protected entry must be a variable. This is part
468 2012-09-26 Ian Lance Taylor <iant@google.com>
470 * gcc-interface/Makefile.in (LIBBACKTRACE): New variable.
471 (LIBS): Add $(LIBBACKTRACE).
472 (LIBDEPS): Add $(LIBBACKTRACE).
473 (TOOLS_LIBS): Add ../../../libbacktrace/.libs/libbacktrace.a.
475 2012-09-10 Diego Novillo <dnovillo@google.com>
477 * gcc-interface/decl.c (build_subst_list): Adjust call to VEC_safe_push.
478 (build_variant_list): Likewise.
479 * gcc-interface/utils.c (convert): Adjust calls to VEC_quick_push.
481 2012-09-07 Eric Botcazou <ebotcazou@adacore.com>
483 * gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to using
484 size_type_node instead of sizetype.
486 2012-08-19 Eric Botcazou <ebotcazou@adacore.com>
488 * layout.adb (Set_Elem_Alignment): Cap the alignment of access types
489 to that of a regular access type for non-strict-alignment platforms.
490 * gcc-interface/utils.c (finish_fat_pointer_type): Do not set the
491 alignment for non-strict-alignment platforms.
493 2012-08-19 Eric Botcazou <ebotcazou@adacore.com>
495 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use proper
496 dummy type for the temporary COMPONENT_REF built for a derived tagged
497 type with discriminant.
499 2012-08-14 Diego Novillo <dnovillo@google.com>
501 Merge from cxx-conversion branch. Re-implement VEC in C++.
503 * gcc-interface/trans.c (finalize_nrv_unc_r): Adjust VEC_index usage.
504 * gcc-interface/utils.c (convert): Likewise.
505 (remove_conversions): Likewise.
506 * gcc-interface/utils2.c (compare_fat_pointers): Likewise.
507 (build_unary_op): Likewise.
508 (gnat_stabilize_reference): Likewise.
510 2012-08-06 Jose Ruiz <ruiz@adacore.com>
512 * gcc-interface/Makefile.in: Add support for 32-bit VxWorks for SPARC
515 2012-08-06 Arnaud Charlet <charlet@adacore.com>
517 * prj-attr.adb (Register_New_Package): Add missing blank.
519 2012-08-06 Ed Schonberg <schonberg@adacore.com>
521 * exp_aggr.adb (Is_Two_Dim_Packed_Array): New predicate,
522 used when computing maximum size allowable to construct static
525 2012-08-06 Vincent Pucci <pucci@adacore.com>
527 * freeze.adb (Freeze_Entity): Inherit_Aspects_At_Freeze_Point
528 calls added for derived types and subtypes.
529 * sem_aux.adb, sem_aux.ads (Get_Rep_Item, Get_Rep_Pragma,
530 Has_Rep_Pragma): New routines.
531 * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): New routine.
532 * sem_ch13.adb (Analyze_Aspect_Specifications): Error message
533 for aspect Lock_Free fixed.
534 (Inherits_Aspects_At_Freeze_Point): New routine.
535 * sem_ch3.adb: Several flag settings removed since inheritance
536 of aspects must be performed at freeze point.
538 2012-08-06 Thomas Quinot <quinot@adacore.com>
540 * s-oscons-tmplt.c: Fix s-oscons.ads formatting on VxWorks.
542 2012-08-06 Vincent Pucci <pucci@adacore.com>
544 * sem_dim.adb (Analyze_Dimension_Binary_Op): Issue an error message
545 for unknown exponent at compile-time.
547 2012-08-06 Gary Dismukes <dismukes@adacore.com>
549 * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Enhance
550 comment to make it clear that the aggregate's evaluation might
551 still involve run-time checks even though the aggregate is
552 considered known at compile time.
553 * sinfo.ads (Compile_Time_Known_Aggregate): Correct comment to
554 refer to Exp_Aggr instead of Sem_Aggr.
556 2012-08-06 Robert Dewar <dewar@adacore.com>
558 * xoscons.adb: Minor code reorganization (remove unused variable
560 * g-sercom.ads, exp_attr.adb: Minor reformatting.
561 * sinfo.adb, sinfo.ads: Minor cleanup, remove unused flag
562 Static_Processing_OK.
564 2012-08-06 Ed Schonberg <schonberg@adacore.com>
566 * sem_ch3.adb (Build_Derived_Concurrent_Type): Copy discriminant
567 constraint when building a constrained subtype, to prevent
568 undesirable tree sharing betweeb geberated subtype and derived
571 2012-08-06 Thomas Quinot <quinot@adacore.com>
573 * g-sercom-mingw.adb, s-oscons-tmplt.c: Add missing constants
576 2012-08-06 Sergey Rybin <rybin@adacore.com frybin>
578 * tree_io.ads: Update ASIS_Version_Number because of the tree fix
579 for discriminant constraints for concurrent types.
581 2012-08-06 Thomas Quinot <quinot@adacore.com>
583 * sem_ch4.adb: Minor reformatting.
585 2012-08-06 Thomas Quinot <quinot@adacore.com>
587 * s-oscons-tmplt.c, xoscons.adb: Per the Single UNIX Specification,
588 types cc_t, speed_t, and tcflag_t defined in <termios.h> all are
589 unsigned types. Add required special handling to have their correct
590 unsigned values in s-oscons.ads.
592 2012-08-06 Thomas Quinot <quinot@adacore.com>
594 * par-ch13.adb: Minor reformatting.
596 2012-08-06 Thomas Quinot <quinot@adacore.com>
598 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb
599 (Set): Add Local and Flow_Control settings.
601 2012-08-06 Ed Schonberg <schonberg@adacore.com>
603 * exp_attr.adb: Suppress saving of 'Old if assertions are not
606 2012-08-06 Yannick Moy <moy@adacore.com>
608 * sem_ch4.adb (Analyze_Selected_Component): Issue an error in
609 Alfa mode for component not present.
611 2012-08-06 Thomas Quinot <quinot@adacore.com>
613 * exp_ch7.adb (Insert_Actions_In_Scope_Around): Do not
614 use a renaming of Scope_Stack.Table (Scope_Stack.Last), as
615 Process_Transient_Object may introduce new scopes and cause
616 Scope_Stack.Table to be reallocated.
618 2012-08-06 Robert Dewar <dewar@adacore.com>
620 * exp_util.adb, switch-c.adb, inline.ads, sem_ch10.adb, types.ads,
621 checks.adb, sem_prag.adb, sem.adb, sem.ads, sem_res.adb, sem_attr.adb,
622 gnat1drv.adb, exp_ch4.adb, exp_ch6.adb, opt.ads, osint.adb: Implement
623 extended overflow checks (step 1).
624 (Overflow_Check_Type, Suppress_Record, Suppress_All): New types.
625 (Suppress_Array): Extended to include switches to control extended
626 overflow checking (and renamed to Suppress_Record).
627 Update all uses of Suppress_Array.
629 2012-08-06 Thomas Quinot <quinot@adacore.com>
631 * makeutl.ads: Minor documentation fix.
633 2012-08-06 Thomas Quinot <quinot@adacore.com>
635 * exp_ch7.adb: Minor reformatting.
637 2012-08-06 Geert Bosch <bosch@adacore.com>
639 * a-ngelfu.adb: Change obsolete comment that this is a non-strict
642 2012-08-06 Steve Baird <baird@adacore.com>
644 * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): If
645 CodePeer_Mode = True then omit exception handlers for finalization calls
647 2012-08-06 Robert Dewar <dewar@adacore.com>
649 * exp_aggr.adb: Minor reformatting.
651 2012-08-06 Robert Dewar <dewar@adacore.com>
653 * sem_ch6.adb: Remove useless flag Body_Deleted.
655 2012-08-06 Thomas Quinot <quinot@adacore.com>
657 * sinfo.ads (End_Span): Change default from No_Uint to Uint_0,
658 as this is what all usage occurrences of this attribute are
660 * uintp.adb (UI_To_Int): Add assertion to guard against calling
663 2012-08-06 Vincent Pucci <pucci@adacore.com>
666 * exp_attr.adb (Expand_N_Attribute_Reference): Expand new
667 Atomic_Always_Lock_Free attribute.
668 * sem_attr.adb (Analyze_Attribute): Analyze new
669 Atomic_Always_Lock_Free attribute.
670 (Eval_Attribute): Nothing to do with new Atomic_Always_Lock_Free
672 * sem_ch9.adb (Allows_Lock_Free_Implementation):
673 Support_Atomic_Primitives check replaces previous erroneous
675 * sem_util.adb, sem_util.ads (Support_Atomic_Primitives):
677 * snames.ads-tmpl: New name Name_Atomic_Always_Lock_Free and
678 new attribute Attribute_Atomic_Always_Lock_Free defined.
679 * s-atopri.adb: Support_Atomic_Primitives checks replaced by
680 Atomic_Always_Lock_Free queries.
681 * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
682 system-hpux.ads, system-linux-alpha.ads, system-linux-hppa.ads,
683 system-linux-ppc.ads, system-linux-s390.ads,
684 system-linux-s390x.ads, system-linux-sh4.ads,
685 system-linux-sparc.ads, system-lynxos178-ppc.ads,
686 system-lynxos-ppc.ads, system-mingw.ads,
687 system-vxworks-arm.ads, system-solaris-sparc.ads,
688 system-solaris-sparcv9.ads, system-vms_64.ads,
689 system-vxworks-m68k.ads, system-vxworks-mips.ads,
690 system-vxworks-ppc.ads, system-vxworks-sparcv9.ads: Flag
691 Support_Atomic_Primitives removed.
693 2012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
695 * sem_mech.adb (Set_Mechanisms): OUT and IN OUT parameters are
696 now unconditionally passed by reference. IN parameters subject
697 to convention C_Pass_By_Copy are passed by copy, otherwise they
698 are passed by reference.
700 2012-08-06 Ed Schonberg <schonberg@adacore.com>
702 * sem_ch3.adb (Analyze_Object_Declaration): According to
703 AI95-0303, protected objects with interrupt handlers can be
704 declared in nested scopes. This is a binding interpretation,
705 and thus applies to all versions of the compiler.
707 2012-08-06 Robert Dewar <dewar@adacore.com>
709 * frontend.adb, exp_aggr.adb: Minor reformatting.
711 2012-08-06 Thomas Quinot <quinot@adacore.com>
713 * par-endh.adb: Minor reformatting.
715 2012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
717 * exp_ch7.adb (Process_Transient_Objects): Remove obsolete loop
718 processing related to array initialization. The expansion of
719 loops already contains a mechanism to detect controlled objects
720 generated by expansion and introduce a block around the loop
721 statements for finalization purposes.
723 2012-08-06 Vincent Pucci <pucci@adacore.com>
725 * sem_ch13.adb: Current scope must be within
726 or same as the scope of the entity while analysing aspect
727 specifications at freeze point.
729 2012-08-06 Thomas Quinot <quinot@adacore.com>
731 * par_sco.adb: Add note about dubious SCO for TERMINATE
733 * sem_ch8.adb, exp_ch11.adb: Minor reformatting.
735 2012-08-06 Ed Schonberg <schonberg@adacore.com>
737 * exp_aggr.adb (Two_Dim_Packed_Array_Handled): New procedure to
738 transform an aggregate for a packed two-dimensional array into
739 a one-dimensional array of constant values, in order to avoid
740 the generation of component-by-component assignments.
742 2012-08-06 Thomas Quinot <quinot@adacore.com>
744 * frontend.adb: Do not attempt to process deferred configuration
745 pragmas if the main unit failed to load, to avoid cascaded
746 inconsistencies that can lead to a compiler crash.
748 2012-08-06 Vincent Pucci <pucci@adacore.com>
750 * s-atopri.adb: Minor reformatting.
752 2012-08-06 Arnaud Charlet <charlet@adacore.com>
754 * gnat-style.texi: Clarify that all subprograms should be
755 documented. Minor rewording.
757 2012-08-06 Robert Dewar <dewar@adacore.com>
759 * aspects.ads: Define Aspect_Id_Exclude_No_Aspect.
760 * par-ch13.adb, restrict.adb: Use Aspect_Id_Exclude_No_Aspect to
763 2012-08-06 Yannick Moy <moy@adacore.com>
765 * gnat-style.texi: Update style guide for declarations.
767 2012-08-06 Yannick Moy <moy@adacore.com>
769 * sem_attr.adb (Analyze_Attribute): In the case for 'Old,
770 skip a special expansion which is not needed in Alfa mode.
772 2012-08-06 Yannick Moy <moy@adacore.com>
774 * sem_ch5.adb (Analyze_Iterator_Specification): Do not perform
775 an expansion of the iterator in Alfa mode.
777 2012-08-06 Robert Dewar <dewar@adacore.com>
779 * s-oscons-tmplt.c, sem_ch9.adb, osint.adb: Minor reformatting.
781 2012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
783 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Remove obsolete
784 Alfa-specific guard. The code is a leftover from an early
785 implementation of iterators which is no longer in use.
787 2012-08-06 Vincent Celier <celier@adacore.com>
789 * par-ch13.adb (Get_Aspect_Specifications): Do not consider
790 No_Aspect when checking for a mispelled aspect.
792 2012-08-06 Robert Dewar <dewar@adacore.com>
794 * s-htable.adb: Minor reformatting.
796 2012-08-06 Thomas Quinot <quinot@adacore.com>
798 * s-oscons-tmplt.c, g-socket.adb (System.OS_Constants.Target_OS):
799 Suppress warnings so that we don't have to do it at each usage.
801 2012-08-06 Vincent Pucci <pucci@adacore.com>
803 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
804 Use of Known_Static_Esize instead of Known_Esize and
805 Known_Static_RM_Size instead of Known_RM_Size in order to
806 properly call UI_To_Int. Don't check the size of the component
807 type in case of generic.
808 * sem_ch9.adb (Allows_Lock_Free_Implementation):
809 Use of Known_Static_Esize instead of Known_Esize and
810 Known_Static_RM_Size instead of Known_RM_Size in order to properly
811 call UI_To_Int. Don't check the size of the component type in
814 2012-08-06 Hristian Kirtchev <kirtchev@adacore.com>
816 * checks.adb (Discrete_Range_Cond): Do not try to optimize on
817 the assumption that the type of an expression can always fit in
818 the target type of a conversion.
820 2012-07-30 Robert Dewar <dewar@adacore.com>
822 * bindusg.adb: Clarify file in -A lines.
824 2012-07-30 Robert Dewar <dewar@adacore.com>
826 * freeze.adb: Minor reformatting.
828 2012-07-30 Robert Dewar <dewar@adacore.com>
830 * gnatcmd.adb, makeutl.adb, makeutl.ads: Minor code reorganization.
832 2012-07-30 Vincent Pucci <pucci@adacore.com>
834 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Minor
836 * sem_ch9.adb (Allows_Lock_Free_Implementation): Minor reformatting.
837 Capture the correct error message in case of a quantified expression.
839 2012-07-30 Thomas Quinot <quinot@adacore.com>
841 * g-socket.adb (Get_Socket_Option, Set_Socket_Option): On Windows, the
842 value is a milliseconds count in a DWORD, not a struct timeval.
844 2012-07-30 Hristian Kirtchev <kirtchev@adacore.com>
846 * sem_ch12.adb (Earlier): Add local variables T1 and T2. Minor code
849 2012-07-30 Thomas Quinot <quinot@adacore.com>
851 * gnatcmd.adb, make.adb, makeutl.adb, makeutl.ads
852 (Test_If_Relative_Path): Rename to Ensure_Absolute_Path to better
853 reflect what this subprogram does. Rename argument Including_L_Switch
854 to For_Gnatbind, and also exempt -A from rewriting.
855 * bindusg.adb: Document optional =file argument to gnatbind -A.
857 2012-07-30 Ed Schonberg <schonberg@adacore.com>
859 * freeze.adb (Freeze_Entity): Do no apply restriction check on
860 storage pools to access to subprogram types.
862 2012-07-30 Robert Dewar <dewar@adacore.com>
864 * par_sco.adb, a-cihama.adb, a-coinve.adb, exp_ch7.adb, a-ciorse.adb,
865 exp_ch9.adb, sem_dim.adb, par-ch13.adb, sem_ch9.adb, a-cidlli.adb,
866 a-cimutr.adb, freeze.adb, a-ciormu.adb, sem_res.adb, sem_attr.adb,
867 a-cihase.adb, exp_ch4.adb, sem_ch4.adb, a-ciorma.adb,
868 s-tasinf-linux.ads, sem_ch13.adb, a-coinho.adb: Minor reformatting.
871 2012-07-30 Vincent Pucci <pucci@adacore.com>
873 * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict implicit
874 dereferences of access values.
876 2012-07-27 Iain Sandoe <iain@codesourcery.com>
878 * system-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True.
880 2012-07-25 Eric Botcazou <ebotcazou@adacore.com>
882 * gcc-interface/utils2.c (gnat_stabilize_reference) <BIT_FIELD_REF>: Do
883 not stabilize operand #1 and #2.
885 2012-07-23 Tristan Gingold <gingold@adacore.com>
887 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Use
888 End_Label sloc when possible for sloc of the TRY_CATCH_EXPR node.
890 2012-07-23 Olivier Hainque <hainque@adacore.com>
892 * gcc-interface/Makefile.in: Adjust processing of Linker_Options for
894 * gcc-interface/Make-lang.in: Update dependencies.
896 2012-07-23 Arnaud Charlet <charlet@adacore.com>
898 * s-tasinf-linux.ads: Fix typo.
900 2012-07-23 Thomas Quinot <quinot@adacore.com>
902 * exp_ch7.adb, switch-m.adb, exp_ch3.adb, freeze.adb: Minor reformatting
904 2012-07-23 Ed Schonberg <schonberg@adacore.com>
906 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): If original
907 loop carries an identifier, preserve it when rewriting it as a
908 standard loop to validate exit statements that may reference
909 that name in the body of the loop.
911 2012-07-23 Thomas Quinot <quinot@adacore.com>
913 * exp_ch9.adb: Minor code cleanup.
915 2012-07-23 Ed Schonberg <schonberg@adacore.com>
917 * sem_ch4.adb (Analyze_Selected_Component): When checking for
918 potential ambiguities with class-wide operations on synchronized
919 types, attach the copied node properly to the tree, to prevent
920 errors during expansion.
922 2012-07-23 Yannick Moy <moy@adacore.com>
924 * sem_ch5.adb (Analyze_Loop_Statement): Make sure the loop body
925 is analyzed in Alfa mode.
927 2012-07-23 Ed Schonberg <schonberg@adacore.com>
929 * sem_res.adb: Adjust previous change.
931 2012-07-23 Vincent Pucci <pucci@adacore.com>
933 * sem_ch9.adb (Allows_Lock_Free_Implementation): Flag
934 Lock_Free_Given renames previous flag Complain. Description
935 updated. Henceforth, catch every error messages issued by this
936 routine when Lock_Free_Given is True. Declaration restriction
937 updated: No non-elementary parameter instead (even in parameter)
938 New subprogram body restrictions implemented: No allocator,
939 no address, import or export rep items, no delay statement,
940 no goto statement, no quantified expression and no dereference
943 2012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
945 * checks.adb (Determine_Range): Add local variable Btyp. Handle
946 the case where the base type of an enumeration subtype is
947 private. Replace all occurrences of Base_Type with Btyp.
948 * exp_attr.adb (Attribute_Valid): Handle the case where the
949 base type of an enumeration subtype is private. Replace all
950 occurrences of Base_Type with Btyp.
951 * sem_util.adb (Get_Enum_Lit_From_Pos): Add local variable
952 Btyp. Handle the case where the base type of an enumeration
953 subtype is private. Replace all occurrences of Base_Type with
956 2012-07-23 Ed Schonberg <schonberg@adacore.com>
958 * par-ch6.adb (P_Mode): in Ada 2005, a mode indicator can apply
959 to a formal object of an anonymous access type.
961 2012-07-23 Ed Schonberg <schonberg@adacore.com>
963 * sem_ch4.adb (Try_Container_Indexing): A user-defined indexing
964 aspect can have more than one index, e.g. to describe indexing
965 of a multidimensional object.
967 2012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
969 * exp_ch4.adb (Apply_Accessibility_Check): Reimplemented. The check is
970 now more complex and contains optional finalization part and mandatory
973 2012-07-23 Gary Dismukes <dismukes@adacore.com>
975 * a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, a-ciormu.adb,
976 a-ciorse.adb, a-coinho.adb, a-coinve.adb, a-cidlli.adb: Unsuppress
977 Accessibility_Check for Element_Type allocators.
979 2012-07-23 Vasiliy Fofanov <fofanov@adacore.com>
981 * projects.texi: Fix typo.
983 2012-07-23 Ed Schonberg <schonberg@adacore.com>
985 * sem_res.adb (Resolve_Explicit_Derenference): If prefix is
986 overloaded, remove those interpretations whose designated type
987 does not match the context, to avoid spurious ambiguities that
988 may be caused by the Ada 2012 conversion rule for anonymous
991 2012-07-23 Vincent Celier <celier@adacore.com>
993 * g-spitbo.adb (Substr (String)): Return full string and do not
994 raise exception when Start is 1 and Len is exactly the length
995 of the string parameter.
996 * g-spitbo.ads: Fix spelling error in the name of exception
999 2012-07-23 Ed Schonberg <schonberg@adacore.com>
1001 * par.adb: new subprogram Get_Aspect_Specifications.
1002 * par-ch6.adb (P_Subprogram): handle subprogram bodies with aspect
1004 * par-ch13.adb (Get_Aspect_Specifications): extracted from
1005 P_Aspect_Specifications. Collect aspect specifications in some
1006 legal context, but do not attach them to any declaration. Used
1007 when parsing subprogram declarations or bodies that include
1008 aspect specifications.
1009 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If aspects are
1010 present, analyze them, or reject them if the subprogram as a
1013 2012-07-23 Vasiliy Fofanov <fofanov@adacore.com>
1015 * gnat_ugn.texi: Omit section on other platforms/runtimes support
1016 in gnattest for vms version.
1018 2012-07-23 Ed Schonberg <schonberg@adacore.com>
1020 * sem_ch13.adb (Analyze_Aspect_Specifications):
1021 Handle properly aspects that can be specified on a subprogram
1022 body: CPU, Priority, and Interrupt_Priority.
1024 2012-07-23 Claire Dross <dross@adacore.com>
1026 * a-cfdlli.ads: Switch definition of Constant_Reference_Type
1029 2012-07-23 Thomas Quinot <quinot@adacore.com>
1031 * par_sco.adb (Process_Decisions.Output_Header): For the guard
1032 on an alternative in a SELECT statement, use the First_Sloc
1033 of the guard expression (not its topmost sloc) as the decision
1034 location, because this is what is referenced by dominance markers.
1036 2012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
1038 * exp_ch7.adb (Requires_Hooking): Examine the original expression
1039 of an object declaration node because a function call that
1040 returns on the secondary stack may have been rewritten into
1043 2012-07-23 Vincent Pucci <pucci@adacore.com>
1045 * sem_dim.adb (Analyze_Dimension_Has_Etype): For identifier, propagate
1046 dimension when entity is a non-dimensionless constant.
1047 (Analyze_Dimension_Object_Declaration): Propagate
1048 dimension from the expression to the entity when type is a
1049 dimensioned type and object is a constant.
1051 2012-07-23 Ed Schonberg <schonberg@adacore.com>
1053 * sem_attr.adb (Analyze_Attribute, case 'Old): if the prefix
1054 is not an entity name, expand at once so that code generated by
1055 the expansion of the prefix is not generated before the constant
1056 that captures the old value is properly inserted and analyzed.
1058 2012-07-23 Thomas Quinot <quinot@adacore.com>
1060 * exp_ch9.adb (Ensure_Statement_Present): Mark generated NULL
1061 statement as Comes_From_Source so that GIGI does not eliminate it.
1063 2012-07-23 Hristian Kirtchev <kirtchev@adacore.com>
1065 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now
1066 a local variable. Retrieve the related instance when processing
1067 a subprogram instantiation. Such instances appear as wrapper
1070 2012-07-23 Vincent Pucci <pucci@adacore.com>
1072 * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads,
1073 system-hpux.ads, system-linux-alpha.ads,
1074 system-linux-hppa.ads, system-linux-ppc.ads,
1075 system-linux-s390.ads, system-linux-s390x.ads,
1076 system-linux-sh4.ads, system-linux-sparc.ads,
1077 system-lynxos-ppc.ads, system-mingw.ads,
1078 system-solaris-sparc.ads, system-solaris-sparcv9.ads,
1079 system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads,
1080 system-vxworks-mips.ads, system-vxworks-ppc.ads,
1081 system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False.
1082 * system-darwin-x86.ads, system-darwin-x86_64.ads,
1083 system-freebsd-x86.ads, system-freebsd-x86_64.ads,
1084 system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads,
1085 system-linux-x86_64.ads, system-lynxos-x86.ads,
1086 system-mingw-x86_64.ads, system-solaris-x86.ads,
1087 system-solaris-x86_64.ads, system-vms-ia64.ads,
1088 system-vxworks-x86.ads: Support_Atomic_Primitives set to True.
1089 * s-atopri.adb (Lock_Free_Read_X): New body.
1090 (Lock_Free_Try_Write_X): Support_Atomic_Primitives check added.
1091 (Lock_Free_Try_Write_64): New body.
1092 * s-atopri.ads: New type uint.
1093 (Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic
1095 (Lock_Free_Read_X): Body moved to s-atopri.adb.
1096 (Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X
1098 * targparm.adb: New enumeration literal SAP
1099 (Support_Atomic_Primitives) for type Targparm_Tags. New constant
1100 SAP_Str. New component SAP_Str'Access for array Targparm_Str.
1101 (Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target
1103 * targparm.ads: New back-end code generation flag
1104 Support_Atomic_Primitives_On_Target
1106 2012-07-23 Vincent Pucci <pucci@adacore.com>
1108 * gnat_ugn.texi: Dimensionality checking documentation updated.
1110 2012-07-23 Ed Schonberg <schonberg@adacore.com>
1112 * sem_prag.adb (Make_Inline): If the pragma applies to a
1113 subprogram renaming, set inline flags on both the renamed entity
1114 and on the renaming, so that some ASIS queries can be handled
1115 consistently in the absence of expansion.
1117 2012-07-23 Fedor Rybin <frybin@adacore.com>
1119 * gnat_ugn.texi: Removing obsolete limitation of gnattest
1120 to support only ada05. Updating gnattest support for other
1121 platforms/run-times section to reflect the usage of taget
1122 prefix in gnattest calls. Fixing missed obsolete --stub-default
1125 2012-07-23 Robert Dewar <dewar@adacore.com>
1127 * uintp.adb: Minor reformatting.
1129 2012-07-23 Olivier Hainque <hainque@adacore.com>
1131 * system-vxworks-ppc.ads: Replace the default
1132 Linker_Options requesting crtbe by a commented out request for
1135 2012-07-23 Vincent Celier <celier@adacore.com>
1137 * prj-nmsc.adb (Check_Naming): Do not get the exceptions names
1138 in a virtual project.
1140 2012-07-23 Robert Dewar <dewar@adacore.com>
1142 * layout.adb, sem_prag.adb, sem.ads, freeze.adb,
1143 switch-m.adb, exp_disp.adb, system-vxworks-ppc.ads, exp_ch6.adb: Minor
1146 2012-07-23 Tristan Gingold <gingold@adacore.com>
1148 * gcc-interface/trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set
1149 location on TRY_CATCH_EXPR.
1151 2012-07-19 Eric Botcazou <ebotcazou@adacore.com>
1153 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Try to ensure
1154 that an object of CW type initialized to a value is sufficiently
1155 aligned for this value.
1157 2012-07-19 Eric Botcazou <ebotcazou@adacore.com>
1159 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Do not
1160 look up the REP part of the base type in advance. Deal with that of
1162 (get_rep_part): Be prepared for record types with fields.
1164 2012-07-18 Eric Botcazou <ebotcazou@adacore.com>
1166 * gcc-interface/trans.c (stmt_group_may_fallthru): New function.
1167 (gnat_to_gnu) <N_Block_Statement>: Use it to find out whether the
1168 block needs to be translated.
1170 2012-07-17 Tristan Gingold <gingold@adacore.com>
1172 * gnat_rm.texi: Adjust previous change.
1174 2012-07-17 Ed Schonberg <schonberg@adacore.com>
1176 * sem_prag.adb (Process_Import_Or_Interface): If the pragma
1177 comes from an aspect, it applies to the corresponding entity
1178 without further check.
1180 2012-07-17 Olivier Hainque <hainque@adacore.com>
1182 * initialize.c (__gnat_initialize for VxWorks): Remove section with
1183 call to __gnat_vxw_setup_for_eh.
1184 * system-vxworks-ppc.ads: Add -auto-register to -crtbe, relying
1185 on the VxWorks constructor mechanism for network loaded modules
1188 2012-07-17 Tristan Gingold <gingold@adacore.com>
1190 * adaint.c: Minor reformatting.
1192 2012-07-17 Pascal Obry <obry@adacore.com>
1194 * s-regexp.adb (Adjust): Fix access violation in Adjust.
1196 2012-07-17 Ed Schonberg <schonberg@adacore.com>
1198 * freeze.adb (Freeze_Entity): Warn if an imported subprogram
1199 has pre/post conditions, because these will not be enforced.
1201 2012-07-17 Eric Botcazou <ebotcazou@adacore.com>
1203 * exp_ch7.adb (Process_Transient_Objects): Put all the
1204 finalization blocks and the final raise statement into a wrapper
1207 2012-07-17 Vincent Pucci <pucci@adacore.com>
1209 * s-atopri.adb (Lock_Free_Try_Write_X): Atomic_Compare_Exchange_X
1210 replaced by Sync_Compare_And_Swap_X.
1211 (Lock_Free_Try_Write_64): Removed.
1212 * s-atopri.ads (Sync_Compare_And_Swap_X): Replaces previous
1213 routine Atomic_Compare_Exchange_X.
1214 (Lock_Free_Read_64): Renaming of Atomic_Load_64.
1215 (Lock_Free_Try_Write_64): Renaming of Sync_Compare_And_Swap_64.
1217 2012-07-17 Vincent Celier <celier@adacore.com>
1219 * switch-m.adb (Normalize_Compiler_Switches): Recognize new
1220 switches -gnatn1 and -gnatn2.
1222 2012-07-17 Vincent Pucci <pucci@adacore.com>
1224 * gnat_ugn.texi: GNAT dimensionality checking
1225 documentation updated with System.Dim.Mks modifications.
1227 2012-07-17 Ed Schonberg <schonberg@adacore.com>
1229 * exp_ch3.adb: sloc of array init_proc is sloc of type declaration.
1231 2012-07-17 Tristan Gingold <gingold@adacore.com>
1233 * raise-gcc.c (get_call_site_action_for): Remove useless init
1235 (get_action_description_for): Do not overwrite action->kind.
1237 2012-07-17 Hristian Kirtchev <kirtchev@adacore.com>
1239 * exp_attr.adb (Expand_N_Attribute_Reference): Add local variables Attr
1240 and Conversion_Added. Add local constant Typ.
1241 Retrieve the original attribute after the arithmetic check
1242 machinery has modified the node. Add a conversion to the target
1243 type when the prefix of attribute Max_Size_In_Storage_Elements
1244 is a controlled type.
1246 2012-07-17 Gary Dismukes <dismukes@adacore.com>
1248 * exp_ch6.adb (Expand_Inlined_Call): For each actual parameter
1249 of mode 'out' or 'in out' that denotes an entity, reset
1250 Last_Assignment on the entity so that any assignments to the
1251 corresponding formal in the inlining will not trigger spurious
1252 warnings about overwriting assignments.
1254 2012-07-17 Robert Dewar <dewar@adacore.com>
1256 * s-assert.ads: Fix comments to make it clear that this is used
1257 for all assertions, not just pragma Assert.
1259 2012-07-17 Jerome Guitton <guitton@adacore.com>
1261 * par_sco.ads: Minor typo fix.
1263 2012-07-17 Gary Dismukes <dismukes@adacore.com>
1265 * layout.adb (Layout_Type): In the case where the target is
1266 AAMP, use 32 bits (a single pointer) rather than 64 bits for an
1267 anonymous access-to-subprogram type if the type is library-level
1268 and Is_Local_Anonymous_Access is True.
1270 2012-07-17 Jose Ruiz <ruiz@adacore.com>
1272 * s-tassta.adb, s-tarest.adb (Create_Task, Create_Restricted_Task,
1273 Initialize): Add comments explaining that the CPU affinity value that
1274 is passed to the run-time library can be either Unspecified_CPU, to
1275 indicate that the task inherits the affinity of its activating task,
1276 or a value in the range of CPU_Range but no greater than Number_Of_CPUs.
1278 2012-07-17 Javier Miranda <miranda@adacore.com>
1280 * exp_disp.adb (Make_DT): Remove decoration of Ada.Tags entities.
1281 (Make_Tags): Add decoration of Ada.Tags entities.
1283 2012-07-17 Ed Schonberg <schonberg@adacore.com>
1285 * sem_ch6.adb (Check_Statement_Sequence): When locating the
1286 last significant statement in a sequence, ignore iserted nodes
1287 that typically come from expansion of controlled operations.
1289 2012-07-17 Tristan Gingold <gingold@adacore.com>
1291 * gnat_rm.texi: Document foreign exceptions.
1293 2012-07-17 Robert Dewar <dewar@adacore.com>
1295 * sem_prag.adb, treepr.ads: Minor reformatting.
1297 2012-07-17 Robert Dewar <dewar@adacore.com>
1299 * exp_ch9.adb: Minor code reorganization.
1300 * exp_ch3.adb: Minor code improvement.
1302 2012-07-17 Tristan Gingold <gingold@adacore.com>
1304 * seh_init.c (__gnat_SEH_error_handler): Not compiled anymore
1305 on Windows 64 (+ SEH), as it is unused.
1307 2012-07-17 Javier Miranda <miranda@adacore.com>
1309 * sem_prag.adb (CPP_Class): Transform obsolescent pragma CPP_Class into
1310 CPP convention automatically.
1312 2012-07-16 Tristan Gingold <gingold@adacore.com>
1314 * gcc-interface/decl.c (intrin_return_compatible_p): Map Address to
1317 2012-07-16 Thomas Quinot <quinot@adacore.com>
1319 * exp_ch9.adb (Ensure_Statement_Present): New subprogram.
1320 (Expand_N_Asynchronous_Select,
1321 Expand_N_Selective_Accept.Process_Accept_Alternative,
1322 Expand_N_Selective_Accept.Process_Delay_Alternative,
1323 Expand_N_Timed_Entry_Call): For an alternative with no trailing
1324 statements, introduce a null statement to carry the sloc of
1325 the initial special statement (accept, delay, or entry call)
1326 in the alternative, for coverage analysis purposes.
1328 2012-07-16 Thomas Quinot <quinot@adacore.com>
1330 * sem_eval.adb (In_Subrange_Of): Fix typo in test for scalar
1333 2012-07-16 Robert Dewar <dewar@adacore.com>
1335 * a-exexpr.adb, freeze.adb, a-exexpr-gcc.adb, a-except-2005.adb,
1336 sem_eval.adb, s-fileio.adb: Minor reformatting.
1338 2012-07-16 Javier Miranda <miranda@adacore.com>
1340 * sem_prag.adb (Analyze_Pragma): Remove support for obsolescent
1342 * sem_ch13.adb (Analyze_Freeze_Entity): Add missing error on Ada
1343 derivations of CPP types. Found updating the tests affected by
1344 the removal of pragma CPP_Class.
1346 2012-07-16 Thomas Quinot <quinot@adacore.com>
1348 * back_end.adb: Minor reformatting.
1350 2012-07-16 Thomas Quinot <quinot@adacore.com>
1352 * exp_ch9.adb (Expand_N_Selective_Accept.Process_Accept_Alternative):
1353 Remove junk test that was always true. For the case of no statements
1354 following the ACCEPT, jump directly to End_Lab instead of
1355 introducing an intermediate jump.
1356 (Expand_N_Selective_Accept.Process_Delay_Alternative): Fix
1357 predicate testing for presence of statements following the DELAY.
1358 that was always true. For the case of no statements following
1359 the ACCEPT, jump directly to End_Lab instead of introducing an
1361 (Expand_N_Selective_Accept): Fix incorrect insertion point for
1364 2012-07-16 Thomas Quinot <quinot@adacore.com>
1366 * gnat_rm.texi: Minor documentation improvements.
1368 2012-07-16 Yannick Moy <moy@adacore.com>
1370 * sem_ch13.adb (Analyze_Aspect_Specifications): Allow Pre
1371 and Pre'Class aspects on the same declaration.
1372 * sem_prag.adb (Chain_PPC): Allow Pre and Pre'Class aspects on the
1373 same hierarchy of primitive operations.
1375 2012-07-16 Thomas Quinot <quinot@adacore.com>
1377 * freeze.adb (Check_Component_Storage_Order): Do not reject a
1378 nested composite with different scalar storage order if it is
1381 2012-07-16 Thomas Quinot <quinot@adacore.com>
1383 * gnat_rm.texi: Update documentation for Scalar_Storage_Order.
1385 2012-07-16 Tristan Gingold <gingold@adacore.com>
1387 * a-exexpr.adb (Propagate_Exception): Adjust call to
1388 Exception_Traces procedures.
1389 * a-exexpr-gcc.adb (Setup_Current_Excep): Now a
1390 function that returns an access to the Ada occurrence.
1391 (Propagate_GCC_Exception): Adjust calls.
1392 * raise.h (struct Exception_Occurrence): Declare.
1393 * a-exextr.adb: Remove useless pragma. (Notify_Handled_Exception,
1394 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate):
1395 Add Excep parameter.
1396 * a-except.adb (Notify_Handled_Exception,
1397 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate):
1398 Add Excep parameter.
1399 (Process_Raise_Exception): Adjust calls.
1400 * a-except-2005.adb (Notify_Handled_Exception,
1401 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): Add
1403 (Raise_Exception): Calls Raise_Exception_Always.
1404 * raise-gcc.c (__gnat_setup_current_excep,
1405 __gnat_notify_handled_exception)
1406 (__gnat_notify_unhandled_exception): Adjust declarations.
1407 (PERSONALITY_FUNCTION): Adjust calls.
1408 (__gnat_personality_seh0): Remove warning.
1410 2012-07-16 Javier Miranda <miranda@adacore.com>
1412 * sem_eval.adb (Test_Expression_Is_Foldable): Adding documentation.
1413 (Eval_Relational_Op): Adding documentation.
1415 2012-07-16 Robert Dewar <dewar@adacore.com>
1417 * freeze.adb, g-debpoo.adb, exp_ch3.adb: Minor reformatting.
1419 2012-07-16 Thomas Quinot <quinot@adacore.com>
1421 * s-oscons-tmplt.c: Add definitions of E2BIG and EILSEQ.
1423 2012-07-16 Tristan Gingold <gingold@adacore.com>
1425 * a-exexpr.adb (Propagate_Continue): New function replacing
1426 Raise_Current_Excep.
1427 (Allocate_Occurrence): New function.
1428 (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
1429 * a-exexpr-gcc.adb (GNAT_GCC_Exception): Occurrence component
1431 (To_GCC_Exception): Convert from Address.
1432 (Allocate_Occurrence): Allocate an Unwind exception occurrence.
1433 (Setup_Current_Excep): Fill the machine occurrence in case of
1435 (Propagate_Exception): Add Excep parameter, remove call to Call_Chain.
1436 * a-except.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
1438 (Raise_Exception, Raise_Exception_Always,
1439 Raise_Exception_No_Defer): Adjust calls to the above procedures.
1440 (Raise_From_Signal_Handler, Raise_With_Location_And_Msg)
1441 (Rcheck_PE_Finalize_Raised_Exception): Likewise.
1442 * a-except-2005.adb (Set_Exception_C_Msg, Set_Exception_Msg):
1443 add Excep parameter.
1444 (Propagate_Exception): Likewise.
1445 (Allocate_Occurrence): New function.
1446 (Raise_Current_Excep): Removed.
1447 (Complete_Occurrence): New function to save the call chain.
1448 (Complete_And_Propagate_Occurrence): New procedure.
1449 (Create_Occurrence_From_Signal_Handler): New function to build an
1450 occurrence without propagating it.
1451 (Create_Machine_Occurrence_From_Signal_Handler): Likewise, but
1452 return the machine occurrence.
1453 (Raise_From_Signal_Handler): Use Create_Occurrence_From_Signal_Handler.
1454 (Raise_Exception, Raise_Exception_Always, Raise_Exception_No_Defer):
1455 Adjust calls to the above procedures. Allocate the occurrence at
1457 (Raise_With_Location_And_Msg, Raise_With_Msg)
1458 (Rcheck_PE_Finalize_Raised_Exceptionm Reraise): Likewise.
1459 (Reraise_Occurrence): Use Reraise_Occurrence_Always.
1460 (Reraise_Occurrence_Always): Use Reraise_Occurrence_No_Defer.
1461 (Reraise_Occurrence_No_Defer): Preserve machine occurrence.
1462 (Save_Occurrence): Do not save machine occurrence.
1463 * a-except-2005.ads (Exception_Occurrence): Add Machine_Occurrence
1465 (Null_Occurrence): Consider it.
1466 * a-exexda.adb (Set_Exception_C_Msg, Set_Exception_Msg): add
1469 2012-07-16 Tristan Gingold <gingold@adacore.com>
1471 * seh_init.c (__gnat_map_SEH): New function extracted from
1472 __gnat_SEH_error_handler.
1473 * raise-gcc.c: __gnat_personality_seh0: Directly transforms
1474 Windows system exception into GCC one when possible, in order
1475 to save stack room (particularly useful when Storage_Error will
1478 2012-07-16 Robert Dewar <dewar@adacore.com>
1480 * a-direct.adb, g-dirope.adb: Minor reformatting.
1482 2012-07-16 Tristan Gingold <gingold@adacore.com>
1484 * a-except.ads, a-except-2005.ads: Remove outdated comment.
1486 2012-07-16 Robert Dewar <dewar@adacore.com>
1488 * sem_ch6.adb (Subprogram_Name_Greater): Fix algorithm to
1489 conform to documentation.
1491 2012-07-16 Ed Schonberg <schonberg@adacore.com>
1493 * gnat1drv.adb (Check_Library_Items): Removed, no longer used.
1495 2012-07-16 Ed Schonberg <schonberg@adacore.com>
1497 * sem_ch3.adb (Array_Type_Declaration): if component type has
1498 invariants, the array type itself requires an invariant procedure.
1499 * exp_ch3.ads, exp_ch3.adb (Build_Array_Invariant_Proc): new
1500 procedure, to build a checking procedure that applies the
1501 invariant check on some type T to each component of an array
1502 of T's. Code is similar to the construction of the init_proc
1503 for an array, and handles multidimensional arrays by recursing
1504 over successive dimensions.
1506 2012-07-16 Hristian Kirtchev <kirtchev@adacore.com>
1508 * g-debpoo.adb: Revert previous change.
1510 2012-07-16 Hristian Kirtchev <kirtchev@adacore.com>
1512 * freeze.adb (Freeze_Entity): Insert the itype reference to a
1513 library-level class-wide subtype after the freeze node of the
1514 equivalent record type.
1516 2012-07-16 Pascal Obry <obry@adacore.com>
1518 * s-crtl.ads (mkdir): New routine, support encoding.
1519 * adaint.h (__gnat_mkdir): Update spec to pass encoding.
1520 * mkdir.c (__gnat_mkdir): Add encoding parameter.
1521 * a-direct.adb (Create_Directory): Use CRTL.mkdir, parse encoding
1523 * g-dirope.adb (Make_Dir): Update to pass encoding parameter.
1525 2012-07-16 Pascal Obry <obry@adacore.com>
1527 * adaint.c: Minor reformatting.
1529 2012-07-16 Steven Bosscher <steven@gcc.gnu.org>
1531 * gcc-interface/utils.c: Include timevar.h.
1532 * Make-lang.in: Fix dependencies.
1534 2012-07-16 Vasiliy Fofanov <fofanov@adacore.com>
1536 * ug_words, vms_data.ads: Document VMS qualifiers for -gnatn1/2
1539 2012-07-16 Bob Duff <duff@adacore.com>
1541 * sinfo.ads: Minor comment fix.
1543 2012-07-16 Bob Duff <duff@adacore.com>
1545 * sem_elab.adb (Within_Elaborate_All): Walk the with clauses to
1546 find pragmas Elaborate_All that may be found in the transitive
1547 closure of the dependences.
1549 2012-07-16 Robert Dewar <dewar@adacore.com>
1551 * exp_pakd.adb, freeze.adb, sem_util.adb, vms_data.ads: Minor
1554 2012-07-12 Vasiliy Fofanov <fofanov@adacore.com>
1556 * vms_data.ads: Add VMS qualifiers for -gnatn1/2 switches.
1558 2012-07-12 Thomas Quinot <quinot@adacore.com>
1560 * exp_ch5.adb, exp_pakd.adb, rtsfind.ads, freeze.adb, sem_util.adb,
1561 sem_util.ads, exp_aggr.adb
1562 (Exp_Aggr.Packed_Array_Aggregate_Handled): Simplify processing
1563 for reverse storage order aggregate.
1564 (Exp_Pakd.Byte_Swap): New utility routine used by...
1565 (Exp_Pakd.Expand_Bit_Packed_Element_Set,
1566 Expand_Packed_Element_Reference): For the case of a free-standing
1567 packed array with reverse storage order, perform byte swapping.
1568 (Rtsfind): Make new entities RE_Bswap_{16,32,64} available.
1569 (Freeze.Check_Component_Storage_Order): New utility routine
1570 to enforce legality rules for nested composite types whose
1571 enclosing composite has an explicitly defined Scalar_Storage_Order
1573 (Sem_Util.In_Reverse_Storage_Order_Object): Renamed from
1574 Sem_Util.In_Reverse_Storage_Order_Record, as SSO now applies to
1575 array types as well.
1576 (Exp_Ch5.Expand_Assign_Array): Remove now unnecessary kludge
1577 for change of scalar storage order in assignments. The Lhs and
1578 Rhs now always have the same scalar storage order.
1580 2012-07-12 Hristian Kirtchev <kirtchev@adacore.com>
1582 * g-debpoo.adb (Allocate): Add local constant
1583 No_Element. Initialize the allocated memory chunk to No_Element.
1585 2012-07-12 Ed Schonberg <schonberg@adacore.com>
1587 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly
1588 the case of an instance of a child unit where a formal derived
1589 type DT is an extension of a type T declared in a parent unit,
1590 and the actual in the instance of the child is the type T declared
1591 in the parent instance, and that actual is not a derived type.
1593 2012-07-12 Eric Botcazou <ebotcazou@adacore.com>
1594 Tristan Gingold <gingold@adacore.com>
1596 * system-hpux-ia64.ads: Enable ZCX by default.
1597 * gcc-interface/Makefile.in: Use alternate stack on ia64-hpux.
1598 Change soext to .so.
1600 2012-07-12 Robert Dewar <dewar@adacore.com>
1602 * s-atopri.adb, s-atopri.ads: Minor reformatting.
1604 2012-07-12 Robert Dewar <dewar@adacore.com>
1606 * ali.adb: Add circuitry to read new named form of restrictions lines.
1607 * debug.adb: Add doc for new -gnatd.R switch (used positional
1608 notation for output of restrictions data in ali file).
1609 * lib-writ.adb: Implement new named format for restrictions lines.
1610 * lib-writ.ads: Add documentation for new named format for
1611 restrictions in ali files.
1612 * restrict.adb, restrict.ads, sem_prag.adb: Update comments.
1613 * rident.ads: Go back to withing System.Rident
1614 * s-rident.ads: Add extensive comment on dealing with consistency
1617 2012-07-12 Thomas Quinot <quinot@adacore.com>
1619 * par_sco.adb, scos.ads: Emit detailed SCOs for SELECT statements.
1621 2012-07-12 Robert Dewar <dewar@adacore.com>
1623 * sem_disp.adb: Minor reformatting
1624 * s-bytswa.ads: Minor comment update.
1626 2012-07-12 Vincent Pucci <pucci@adacore.com>
1628 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
1629 Atomic_Load_N replaced by Lock_Free_Read_N. Atomic_Compare_Exchange_N
1630 replaced by Lock_Free_Try_Write_N.
1631 Renaming of several local variables. For
1632 procedure, Expected_Comp declaration moved to the declaration
1633 list of the procedure.
1634 * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
1635 RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
1636 RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
1637 RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64,
1638 RE_Atomic_Synchronize, RE_Relaxed removed. RE_Lock_Free_Read_8,
1639 RE_Lock_Free_Read_16, RE_Lock_Free_Read_32, RE_Lock_Free_Read_64,
1640 RE_Lock_Free_Try_Write_8, RE_Lock_Free_Try_Write_16,
1641 RE_Lock_Free_Try_Write_32, RE_Lock_Free_Try_Write_64 added.
1642 * s-atopri.adb: New file.
1643 * s-atopri.ads (Atomic_Compare_Exchange_8): Renaming of
1644 parameters. Import primitive __sync_val_compare_and_swap_1.
1645 (Atomic_Compare_Exchange_16): Renaming of parameters.
1646 Import primitive __sync_val_compare_and_swap_2.
1647 (Atomic_Compare_Exchange_32): Renaming of parameters.
1648 Import primitive __sync_val_compare_and_swap_4.
1649 (Atomic_Compare_Exchange_64): Renaming of parameters. Import
1650 primitive __sync_val_compare_and_swap_8.
1651 (Atomic_Load_8): Ptr renames parameter X.
1652 (Atomic_Load_16): Ptr renames parameter X.
1653 (Atomic_Load_32): Ptr renames parameter X.
1654 (Atomic_Load_64): Ptr renames parameter X.
1655 (Lock_Free_Read_8): New routine.
1656 (Lock_Free_Read_16): New routine.
1657 (Lock_Free_Read_32): New routine.
1658 (Lock_Free_Read_64): New routine.
1659 (Lock_Free_Try_Write_8): New routine.
1660 (Lock_Free_Try_Write_16): New routine.
1661 (Lock_Free_Try_Write_32): New routine.
1662 (Lock_Free_Try_Write_64): New routine.
1664 2012-07-12 Robert Dewar <dewar@adacore.com>
1666 * exp_attr.adb, exp_ch9.adb, sem_ch9.adb, exp_aggr.adb: Minor
1669 2012-07-12 Vincent Pucci <pucci@adacore.com>
1671 * sem_dim.adb (Analyze_Dimension_Function_Call): Reformatting of error
1672 msgs for elementary functions.
1674 2012-07-12 Vincent Pucci <pucci@adacore.com>
1676 * sem_attr.adb (Eval_Attribute): Minor reformatting.
1678 2012-07-12 Pascal Obry <obry@adacore.com>
1680 * prj-nmsc.adb (Check_Library_Attributes): Allow the same library
1681 project in different project tree (different aggregated projects).
1683 2012-07-12 Thomas Quinot <quinot@adacore.com>
1685 * s-bytswa.adb, g-bytswa.adb, g-bytswa.ads, s-bytswa.ads: Further
1686 reorganization of byte swapping routines.
1688 2012-07-12 Ed Schonberg <schonberg@adacore.com>
1690 * sem_disp.adb (Check_Dispatching_Context): Refine legality
1691 checks on tagg indeterminate calls to abstract operations,
1692 that appear in the context of other calls.
1694 2012-07-12 Thomas Quinot <quinot@adacore.com>
1696 * s-bytswa.adb (Swapped2.Bswap16): Remove local function,
1699 2012-07-12 Javier Miranda <miranda@adacore.com>
1701 * exp_attr.adb (Expand_N_Attribute_Reference): For
1702 attributes 'access, 'unchecked_access and 'unrestricted_access,
1703 iff the current instance reference is located in a protected
1704 subprogram or entry then rewrite the access attribute to be the
1705 name of the "_object" parameter.
1707 2012-07-12 Tristan Gingold <gingold@adacore.com>
1709 * raise.h: Revert previous patch: structure is used in init.c
1712 2012-07-12 Vincent Celier <celier@adacore.com>
1714 * make.adb (Binding_Phase): If --subdirs was used, but not
1715 -P, change the working directory to the specified subdirectory
1716 before invoking gnatbind.
1717 (Linking_Phase): If --subdirs was used, but not -P, change the working
1718 directory to the specified subdirectory before invoking gnatlink.
1720 2012-07-12 Vincent Pucci <pucci@adacore.com>
1722 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body):
1723 For a procedure, instead of replacing each Comp reference by a
1724 reference to Current_Comp, make a renaming Comp of Current_Comp
1725 that rewrites the original renaming generated by the compiler
1726 during the analysis. Move the declarations of the procedure
1727 inside the generated block.
1728 (Process_Stmts): Moved in the body
1729 of Build_Lock_Free_Unprotected_Subprogram_Body.
1731 Moved in the body of Build_Lock_Free_Unprotected_Subprogram_Body.
1732 * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict any
1733 non-elementary out parameters in protected procedures.
1735 2012-07-12 Thomas Quinot <quinot@adacore.com>
1737 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
1738 Scalar_Storage_Order): Attribute applies to base type only.
1740 2012-07-12 Ed Schonberg <schonberg@adacore.com>
1742 * exp_aggr.adb (Convert_To_Positional): Increase acceptable size
1743 of static aggregate when Static_Elaboration_Desired is requested.
1744 Add a warning if the request cannot be satisfied either because
1745 some components or some array bounds are non-static.
1747 2012-07-12 Thomas Quinot <quinot@adacore.com>
1749 * exp_pakd.adb: Minor reformatting.
1751 2012-07-12 Tristan Gingold <gingold@adacore.com>
1753 * tracebak.c: Fix warnings.
1754 * raise-gcc.c (__gnat_adjust_context): New function
1755 (__gnat_personality_seh0): Call __gnat_adjust_context to adjust
1756 PC in machine frame for exceptions that occur in the current
1759 2012-07-12 Thomas Quinot <quinot@adacore.com>
1761 * g-bytswa.adb, g-bytswa.ads, s-bytswa.adb, s-bytswa.ads, Makefile.rtl:
1762 Move GNAT.Byte_Swapping to System (with a renaming under GNAT)
1763 so that it is usable in expanded code.
1765 2012-07-12 Tristan Gingold <gingold@adacore.com>
1767 * s-osinte-hpux.ads: Increase alternate stack size on hpux.
1769 2012-07-12 Javier Miranda <miranda@adacore.com>
1771 * exp_ch3.adb (Make_Neq_Body): Fix typo in comment.
1773 2012-07-12 Eric Botcazou <ebotcazou@adacore.com>
1775 * tb-gcc.c (trace_callback): On IA-64/HP-UX, use workaround only
1776 if USE_LIBUNWIND_EXCEPTIONS is defined.
1777 * init.c: Further tweaks for IA-64/HP-UX.
1779 2012-07-12 Tristan Gingold <gingold@adacore.com>
1781 * raise-gcc.c: Do not include unwind-dw2-fde.h. Adjust comments.
1782 (db_region_for): Second argument is ip. Do not recompute ip.
1783 (action_kind): Remove typedef, add unhandler enum const.
1784 (action_descriptor): Adjust type of kind field.
1785 (db_action_for): Second argument is ip, do not recompute it.
1786 (get_call_site_action_for): First argument is call_site, do not
1787 recompute it. Remove useless return.
1788 (is_handled_by): Now return enum action_kind.
1789 Handle GNAT_ALL_OTHERS first.
1790 Return unhandler for GNAT_UNHANDLED_OTHERS.
1791 (get_action_description_for): First argument is now ip, do not
1792 recompute it. Adjust code for call to is_handled_by.
1793 (__gnat_notify_unhandled_exception): Add prototype.
1794 (PERSONALITY_FUNCTION): Call get_ip_from_context. Adjust calls.
1795 Handle unhandler case.
1796 (__gnat_cleanupunwind_handler): Add comments, add
1797 ATTRIBUTE_UNUSED on arguments.
1798 (__gnat_Unwind_RaiseException, __gnat_Unwind_ForcedUnwind): Define
1800 * raise.h: Makes struct Exception_Data opaque.
1802 2012-07-12 Robert Dewar <dewar@adacore.com>
1804 * make.adb, sem_ch9.adb, prj.adb, s-rident.ads, snames.ads-tmpl: Minor
1807 2012-07-12 Javier Miranda <miranda@adacore.com>
1809 * exp_ch3.adb (Is_User_Defined_Equality): New subprogram.
1810 (Make_Neq_Body): New subprogram.
1811 (Make_Predefined_Primitive_Specs): Adding local variable
1812 Has_Predef_Eq_ Renaming to ensure that we enable the machinery
1813 which handles renamings of predefined primitive operators.
1815 2012-07-09 Pascal Obry <obry@adacore.com>
1817 * prj.adb (For_Every_Project_Imported_Context): Make sure we
1818 callback with the project having sources.
1821 2012-07-09 Eric Botcazou <ebotcazou@adacore.com>
1823 * make.adb: Fix typo.
1825 2012-07-09 Vincent Pucci <pucci@adacore.com>
1827 * sem_ch9.adb (Check_Node): Allow attributes
1828 that denote static function for lock-free implementation.
1829 (Is_Static_Function): New routine.
1831 2012-07-09 Tristan Gingold <gingold@adacore.com>
1833 * tracebak.c: Adjust skip_frames on Win64.
1835 2012-07-09 Tristan Gingold <gingold@adacore.com>
1837 * init.c: Add __gnat_adjust_context_for_raise for ia64/hpux.
1838 * raise-gcc.c: __gnat_cleanupunwind_handler: Do not call
1839 _Unwind_GetGR on hpux when using libgcc unwinder. Part of
1841 2012-07-09 Vincent Pucci <pucci@adacore.com>
1843 * exp_attr.adb, sem_attr.adb: Minor reformatting.
1844 * par-ch13.adb, par-ch4.adb, par-util.adb: Reformatting
1845 considering that internal attribute names are not defined anymore
1846 in the main attribute names list.
1847 * snames.adb-tmpl (Get_Attribute_Id): Special processinf
1848 for names CPU, Dispatching_Domain and Interrupt_Priority.
1849 (Is_Internal_Attribute_Name): Minor reformatting.
1850 * snames.ads-tmpl: New list of internal attribute names. Internal
1851 attributes moved at the end of the attribute Id list.
1853 2012-07-09 Robert Dewar <dewar@adacore.com>
1855 * freeze.adb: Minor code reorganization (use Ekind_In).
1856 * exp_attr.adb, sem_ch9.adb par-ch4.adb, s-taprop-mingw.adb,
1857 sem_attr.adb, exp_ch8.adb, snames.adb-tmpl, par-util.adb,
1858 sem_ch13.adb, snames.ads-tmpl: Minor reformatting.
1860 2012-07-09 Tristan Gingold <gingold@adacore.com>
1862 * raise-gcc.c: Adjust previous patch.
1864 2012-07-09 Vincent Celier <celier@adacore.com>
1866 * make.adb (Compilation_Phase): Do not build libraries in
1867 Codepeer mode (do not call Library_Phase).
1869 2012-07-09 Ed Schonberg <schonberg@adacore.com>
1871 * sem_ch13.adb: Extend previous change to elementary types.
1873 2012-07-09 Javier Miranda <miranda@adacore.com>
1875 * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Reverse
1876 previous patch since unconditionally handling as renaming_as_body
1877 renamings of predefined dispatching equality and unequality operator
1878 cause visibility problems with private overridings of the equality
1879 operator (see ACATS C854001).
1881 2012-07-09 Vincent Pucci <pucci@adacore.com>
1883 * exp_attr.adb (Signal_Bad_Attribute): Raise Program_Error in
1884 case of internal attribute names (already rejected by the parser).
1885 * par-ch13.adb (P_Representation_Clause): Complain if an internal
1886 attribute name that comes from source occurs.
1887 * par-ch4.adb (P_Name): Complain if an internal attribute name
1888 occurs in the context of an attribute reference.
1889 * par-util.adb (Signal_Bad_Attribute): Don't complain about
1890 mispelling attribute with internal attributes.
1891 * sem_attr.adb (Analyze_Attribute): Raise Program_Error in case
1892 of internal attribute names (already rejected by the parser).
1893 * snames.adb-tmpl (Is_Internal_Attribute_Name): New routine.
1894 * snames.ads-tmpl: Attributes CPU, Dispatching_Domain and
1895 Interrupt_Priority are marked as INT attributes since they
1896 don't denote real attribute and are only used internally in
1898 (Is_Internal_Attribute_Name): New routine.
1900 2012-07-09 Thomas Quinot <quinot@adacore.com>
1902 * einfo.adb (Set_Reverse_Storage_Order): Update assertion,
1903 flag is now valid for array types as well.
1905 2012-07-09 Tristan Gingold <gingold@adacore.com>
1907 * tracebak.c: Implement __gnat_backtrace for Win64 SEH.
1909 2012-07-09 Robert Dewar <dewar@adacore.com>
1911 * einfo.ads: Minor reformatting.
1913 2012-07-09 Javier Miranda <miranda@adacore.com>
1915 * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Handle as
1916 renaming_as_body renamings of predefined dispatching equality
1917 and unequality operators.
1919 2012-07-09 Robert Dewar <dewar@adacore.com>
1921 * rident.ads: Do not instantiate r-ident.ads, this is now an
1924 2012-07-09 Javier Miranda <miranda@adacore.com>
1926 * exp_disp.adb (Write_DT): Avoid runtime crash of this debugging
1928 * sem_disp.adb (Find_Dispatching_Time): Protect this routine
1929 against partially decorated entities.
1931 2012-07-09 Ed Schonberg <schonberg@adacore.com>
1933 * sem_ch13.adb (Check_Size): Reject a size clause that specifies
1934 a value greater than Int'Last for a scalar type.
1936 2012-07-09 Vincent Pucci <pucci@adacore.com>
1938 * sem_ch9.adb (Allows_Lock_Free_Implementation): type must support
1939 atomic operation moved to the protected body case. No non-elementary
1940 out parameter moved to the protected declaration case. Functions have
1941 only one lock-free restriction.
1942 (Analyze_Protected_Type_Declaration): Issue a warning when
1943 Priority given with Lock_Free.
1945 2012-07-09 Vincent Pucci <pucci@adacore.com>
1947 * sem_dim.adb: Grammar of aspect Dimension fixed.
1949 2012-07-09 Vincent Pucci <pucci@adacore.com>
1951 * freeze.adb (Freeze_Record_Type): Code reorg in order to avoid
1952 pushing and popping the scope stack whenever a delayed aspect occurs.
1954 2012-07-09 Gary Dismukes <dismukes@adacore.com>
1956 * s-os_lib.ads: Remove pragma Elaborate_Body, as
1957 this is now unnecessary due to recently added pragma Preelaborate.
1959 2012-07-09 Jose Ruiz <ruiz@adacore.com>
1961 * s-taprop-mingw.adb (Set_Priority): Remove the code that was
1962 previously in place to reorder the ready queue when a task drops
1963 its priority due to the loss of inherited priority.
1965 2012-07-09 Robert Dewar <dewar@adacore.com>
1967 * layout.adb, i-cstrea.ads, a-ststio.ads, prj-util.ads, sem_cat.adb,
1968 s-commun.ads, s-ficobl.ads, s-os_lib.ads, s-fileio.ads: Minor
1971 2012-07-09 Eric Botcazou <ebotcazou@adacore.com>
1973 * raise-gcc.c: Update comments. Fix typo.
1975 2012-07-09 Thomas Quinot <quinot@adacore.com>
1977 * einfo.adb, einfo.ads, sem_attr.adb, sem_ch13.adb: Attribute
1978 Scalar_Storage_Order can be defined or queried for array types as well
1981 2012-07-09 Tristan Gingold <gingold@adacore.com>
1983 * a-exexpr-gcc.adb (CleanupUnwind_Handler): Now imported from
1985 * raise-gcc.c (__gnat_cleanupunwind_handler): Defined.
1986 Strictly follow the ABI convention on ia64.
1988 2012-07-09 Gary Dismukes <dismukes@adacore.com>
1990 * a-ststio.ads: Add pragma Preelaborate, per AI05-0283.
1991 * i-cstrea.ads (max_path_len): Change from variable to deferred
1992 constant to allow it to be used as a bound in string component
1993 in type System.File_IO.Temp_File_Record.
1994 * s-os_lib.ads, s-commun.ads, s-ficobl.ads, s-fileio.ads: Add pragma
1996 * s-fileio.adb (Get_Case_Sensitive): Move function inside
1998 (File_Names_Case_Sensitive): Move variable inside
1999 procedure Open, to avoid violation of Preelaborate restriction
2000 (due to call to Get_Case_Sensitive).
2002 2012-07-09 Ed Schonberg <schonberg@adacore.com>
2004 * layout.adb (Set_Elem_Alignment): Protect against meaningless
2005 size clause, to prevent overflow in internal computation of
2008 2012-07-09 Robert Dewar <dewar@adacore.com>
2010 * freeze.adb, prj-util.adb, prj-util.ads, sem_ch13.adb: Minor
2013 2012-07-09 Gary Dismukes <dismukes@adacore.com>
2015 * sem_cat.adb (Check_Categorization_Dependencies):
2016 Allow dependence of both Remote_Types and Remote_Call_Interface
2017 declarations (not just Remote_Types units) on preelaborated
2018 units, but require that the dependence be made via a private
2019 with_clause. Issue a specialized error message.
2021 2012-07-09 Pascal Obry <obry@adacore.com>
2023 * prj-util.adb, prj-util.ads (For_Interface_Sources): New routine.
2025 2012-07-09 Tristan Gingold <gingold@adacore.com>
2027 * seh_init.c (__gnat_SEH_error_handler): On Win64 and SEH,
2028 return for unknown exceptions.
2029 * raise-gcc.c (__gnat_personality_seh0): Call __gnat_SEH_error_handler.
2031 2012-07-09 Joel Brobecker <brobecker@adacore.com brobecker>
2033 * exp_dbug.ads (No_Dollar_In_Label): Delete.
2035 2012-07-09 Vincent Pucci <pucci@adacore.com>
2037 * sem_ch13.adb (Check_Overloaded_Name): New routine.
2039 2012-07-09 Vincent Pucci <pucci@adacore.com>
2041 * freeze.adb (Freeze_Record_Type): Analyze the delayed aspects of the
2042 components in a record type.
2044 2012-07-09 Pascal Obry <obry@adacore.com>
2046 * prj-util.ads: Minor reformatting.
2048 2012-07-09 Tristan Gingold <gingold@adacore.com>
2050 * raise-gcc.c (db_indent): Simplify style, improve comments.
2051 Remove !IN_RTS part (dead).
2053 2012-07-09 Robert Dewar <dewar@adacore.com>
2055 * usage.adb: Minor change to format of -gnatn line.
2057 2012-07-09 Tristan Gingold <gingold@adacore.com>
2059 * a-exexpr-gcc.adb: Reorder routine.
2061 2012-07-09 Vincent Celier <celier@adacore.com>
2063 * lib-writ.ads: Add documentation for the Z lines (implicitly
2064 withed units) and Y lines (limited withed units).
2066 2012-07-09 Robert Dewar <dewar@adacore.com>
2068 * lib.ads, exp_attr.adb, exp_ch9.adb, sem_dim.adb, sem_ch9.adb,
2069 sem_prag.adb, sem_ch12.adb, mlib-utl.adb, freeze.adb, sem_res.adb,
2070 sem_attr.adb, sem_case.adb, gnatlink.adb, exp_ch4.adb, sem_ch6.adb,
2071 sem_elim.adb, s-dimmks.ads, sem_ch13.adb: Minor code clean ups.
2073 2012-07-09 Eric Botcazou <ebotcazou@adacore.com>
2075 * gnat_ugn.texi (Switches for gcc): Document -gnatn[12] only
2076 lightly in the summary and more thoroughly in inlining section.
2077 (Performance Considerations): Document -gnatn[12] in inlining
2080 2012-07-09 Tristan Gingold <gingold@adacore.com>
2082 * a-exexpr-gcc.adb (Unhandled_Except_Handler): New procedure.
2083 (Unhandled_Others_Value): New const.
2084 * raise-gcc.c (GNAT_UNHANDLED_OTHERS): Define.
2085 (action_descriptor): Remove ttype_entry.
2086 (get_action_description_for): Do not assign ttype_entry.
2087 (is_handled_by): Consider GNAT_UNHANDLED_OTHERS.
2089 2012-07-03 Eric Botcazou <ebotcazou@adacore.com>
2091 * gcc-interface/trans.c (Call_to_gnu): Robustify test for function case
2092 if the CICO mechanism is used.
2094 2012-07-03 Eric Botcazou <ebotcazou@adacore.com>
2096 * gcc-interface/utils2.c (build_simple_component_ref): Do not look
2097 through an extension if the type contains a placeholder.
2099 2012-07-03 Eric Botcazou <ebotcazou@adacore.com>
2101 * exp_disp.adb (Expand_Dispatching_Call): Propagate the convention on
2102 the designated subprogram type and also set Is_Dispatch_Table_Entity.
2103 (Expand_Interface_Thunk): Propagate the convention on the thunk.
2104 (Set_CPP_Constructors_Old): Set Is_Constructor and Convention_CPP on
2105 the internal view of the constructors.
2106 (Set_CPP_Constructors): Likewise.
2107 * sem_prag.adb (Analyze_Pragma) <Pragma_CPP_Constructor>: Set the
2108 convention on the function.
2109 * gcc-interface/gigi.h (is_cplusplus_method): Declare.
2110 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
2111 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the `thiscall'
2113 (get_minimal_subprog_decl): Likewise.
2114 (is_cplusplus_method): New predicate.
2115 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Issue an
2116 error on access to C++ constructor or member function.
2118 2012-07-03 Eric Botcazou <ebotcazou@adacore.com>
2120 * gcc-interface/utils.c (gnat_pushdecl): Set TYPE_CONTEXT for types
2121 attached to a TYPE_DECL.
2123 2012-06-26 Vincent Pucci <pucci@adacore.com>
2125 * exp_ch3.adb (Build_Init_Statements): Don't check the parents
2126 in the Rep Item Chain of the task for aspects Interrupt_Priority,
2127 Priority, CPU and Dispatching_Domain.
2128 * exp_ch9.adb (Expand_N_Task_Type_Declaration): fields _Priority,
2129 _CPU and _Domain are present in the corresponding record type
2130 only if the task entity has a pragma, attribute definition
2131 clause or aspect specification.
2132 (Make_Initialize_Protection): Don't check the parents in the Rep Item
2133 Chain of the task for aspects Interrupt_Priority, Priority, CPU and
2135 * freeze.adb (Freeze_Entity): Use of Evaluate_Aspects_At_Freeze_Point
2136 call replaced by Analyze_Aspects_At_Freeze_Point.
2137 * sem_ch13.adb, sem_ch13.ads (Analyze_Aspects_At_Freeze_Point):
2138 Renaming of Evaluate_Aspects_At_Freeze_Point.
2140 2012-06-26 Yannick Moy <moy@adacore.com>
2142 * sem_attr.adb (Analyze_Attribute): Detect if 'Old is used outside a
2143 postcondition, and issue an error in such a case.
2145 2012-06-26 Yannick Moy <moy@adacore.com>
2147 * gnat_rm.texi: Minor editing.
2149 2012-06-26 Tristan Gingold <gingold@adacore.com>
2151 * raise-gcc.c: Minor cleanup: remove unused prototype.
2152 * seh_init.c: Do not create an image wide unwind info to catch
2153 SEH when SEH unwind info are emitted by the compiler.
2155 2012-06-19 Steven Bosscher <steven@gcc.gnu.org>
2157 * gcc-interface/trans.c: Include target.h.
2158 (gigi): Try to put out .ident with targetm.asm_out.output_ident.
2159 Remove uses of ASM_OUTPUT_IDENT.
2160 * gcc-interface/Make-lang.in: Fix dependencies.
2162 2012-06-15 Eric Botcazou <ebotcazou@adacore.com>
2165 * gcc-interface/gigi.h (maybe_vector_array): Make static inline.
2166 * gcc-interface/utils.c (maybe_vector_array): Delete.
2167 * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the
2168 array object as addressable if it has vector type and is on the LHS.
2170 2012-06-15 Eric Botcazou <ebotcazou@adacore.com>
2173 * gcc-interface/misc.c (gnat_init_options_struct): Set
2174 opts->x_flag_delete_dead_exceptions to 1.
2176 2012-06-14 Jose Ruiz <ruiz@adacore.com>
2178 * gcc-interface/Make-lang.in (ada.install-common, ada.uninstall):
2179 Use the prefix specified with the --program-prefix configure option
2180 to determine the install name of the Ada tools.
2181 (ada.all.cross): Use a for loop to iterate over the set of Ada tools
2182 instead of duplicate the same processing.
2183 Update dependencies.
2185 2012-06-14 Vincent Pucci <pucci@adacore.com>
2187 * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_Symbol
2188 call replaced by Expand_Put_Call_With_Symbol call.
2189 * sem_dim.adb: New fields Unit_Names, Unit_Symbols
2190 and Dim_Symbols for record type System_Type.
2191 (From_Dimension_To_String_Of_Symbols): Removed.
2192 (From_Dim_To_Str_Of_Dim_Symbols): Renames previous
2193 routine From_Dimension_To_String_Of_Symbols.
2194 (From_Dim_To_Str_Of_Unit_Symbols): New routine.
2195 (Analyze_Aspect_Dimension): argument Symbol in aspect
2196 Dimension aggregate is optional. Named association implemented.
2197 (Has_Compile_Time_Known_Expressions): Removed.
2198 (Analyze_Aspect_Dimension_System): New
2199 component Dim_Symbol in each Dimension aggregate in
2200 aspect Dimension_System. Named associations implemented.
2201 (Add_Dimension_Vector_To_Buffer): Removed.
2202 (Add_Whole_To_Buffer): Removed.
2203 (Expand_Put_Call_With_Dimension_Symbol.): Removed.
2204 (Expand_Put_Call_With_Symbol): Renames previous routine
2205 Expand_Put_Call_With_Dimension_Symbol.
2206 (Has_Dimension_Symbols): Removed.
2207 (Has_Symbols): Renames previous routine
2208 Has_Dimension_Symbols. (Store_String_Oexpon): New routine.
2209 * sem_dim.ads (Expand_Put_Call_With_Dimension_Symbol.): Removed.
2210 (Expand_Put_Call_With_Symbol): Renames previous routine
2211 Expand_Put_Call_With_Dimension_Symbol.
2212 * s-diflio.adb, s-diinio.adb (Put): Symbol renames Symbols.
2213 (Put_Dim_Of): New routines.
2214 * s-diflio.ads, s-diinio.ads: documentation updated.
2215 (Put): Symbol renames Symbols.
2216 (Put_Dim_Of): New routines.
2217 * s-dim.ads: documentation updated.
2218 * s-dimmks.ads: dimensioned type and subtypes updated.
2219 * snames.ads-tmpl: Name_Dim_Symbol, Name_Put_Dim_Of, Name_Symbol,
2220 and Name_Unit_Symbol added. Name_Symbols removed.
2222 2012-06-14 Vincent Pucci <pucci@adacore.com>
2224 * freeze.adb (In_Exp_Body): Expression function case added.
2225 (Freeze_Expression): Insert the Freeze_Nodes
2226 list before the correct current scope in case of a quantified
2229 2012-06-14 Pascal Obry <obry@adacore.com>
2231 * projects.texi: Document the Install package for gprinstall.
2232 2012-06-14 Ed Schonberg <schonberg@adacore.com>
2234 * sem_elim.adb (Check_For_Eliminated_Subprogram): Do not check within
2235 a default expression.
2236 * sem_res.adb (Resolve_Call): simplify code.
2238 2012-06-14 Ed Schonberg <schonberg@adacore.com>
2240 * sem_case.adb (Check, Issue_Msg): within an instance, non-other
2241 values in a variant part or a case expression do not have to
2242 belong to the actual subtype.
2244 2012-06-14 Ed Schonberg <schonberg@adacore.com>
2246 * sem_ch12.adb (Validate_Derived_Type_Instance): If parent is
2247 an interface type, check whether it is itself a previous formal
2248 already instantiated in the current list of actuals.
2250 2012-06-14 Ed Schonberg <schonberg@adacore.com>
2252 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): The
2253 expression for a stream attribute is a name that may be overloaded
2254 with other declarations. To determine whether it matches the
2255 aspect at the freeze point, it is necessary to verify that one
2256 of its interpretations matches.
2258 2012-06-14 Robert Dewar <dewar@adacore.com>
2260 * exp_ch7.adb, exp_util.adb, sem_aux.ads, exp_ch9.adb,
2261 sem_ch10.adb, freeze.adb, sem_util.adb, exp_ch4.adb,
2262 s-taprop-dummy.adb: Minor reformatting.
2264 2012-06-14 Vincent Pucci <pucci@adacore.com>
2266 * exp_attr.adb (Expand_N_Attribute_Reference): Lock_Free
2267 attribute case added.
2268 * par-prag.adb (Prag): Lock_Free pragma case added.
2269 * sem_attr.adb (Analyze_Attribute_Reference): Lock_Free attribute
2271 * sem_ch13.adb (Analyze_Aspect_Specifications): Record_Rep_Item
2272 call added for Aspect_Lock_Free.
2273 * sem_ch9.adb (Allows_Lock_Free_Implementation): New Lock_Free
2274 error messages for subprogram bodies.
2275 (Lock_Free_Disabled): New routine.
2276 (Analyze_Protected_Body): Call to Lock_Free_Disabled added.
2277 * sem_prag.adb (Analyze_Pragma): Lock_Free pragma case added.
2278 * snames.adb-tmpl (Get_Pragma_Id): Name_Lock_Free case added.
2279 (Is_Pragma_Name): Name_Lock_Free case added.
2280 * snames.ads-tmpl: Attribute_Lock_Free and Pragma_Lock_Free added.
2282 2012-06-14 Ed Schonberg <schonberg@adacore.com>
2284 * a-coorma.adb, a-cborma.adb, a-cbhama.adb, a-ciorma.adb: Add missing
2287 2012-06-14 Bob Duff <duff@adacore.com>
2289 * lib.ads, lib.adb, sem.adb (Write_Unit_Info): Move this
2290 procedure from Sem body to Lib spec, so it can be used for
2291 debugging elsewhere.
2293 2012-06-14 Ed Schonberg <schonberg@adacore.com>
2295 * sem_ch6.adb (Check_Conformance): Add Ada 2012 check on mode
2296 conformance: "aliased" must apply to both or neither formal
2299 2012-06-14 Gary Dismukes <dismukes@adacore.com>
2301 * exp_ch9.adb: Minor reformatting.
2303 2012-06-14 Thomas Quinot <quinot@adacore.com>
2305 * freeze.adb (Freeze_Record_Type): Warn about useless bit order
2306 specification [when there's no component clause] regardless
2307 of whether the specified bit order is reversed or not.
2309 2012-06-14 Tristan Gingold <gingold@adacore.com>
2311 * raise-gcc.c (__gnat_personality_seh0): New function.
2313 2012-06-14 Tristan Gingold <gingold@adacore.com>
2315 * gnatname.adb (Gnatname): Make sure that dynamic table
2316 argument_data is initialized.
2318 2012-06-14 Robert Dewar <dewar@adacore.com>
2320 * sem_aux.adb: Minor code reorganization.
2322 2012-06-14 Vincent Pucci <pucci@adacore.com>
2324 * einfo.adb einfo.ads (Get_Rep_Item): Removed.
2325 (Get_Rep_Item_For_Entity): Removed.
2326 (Get_Rep_Pragma): Removed.
2327 (Get_Rep_Pragma_For_Entity): Removed.
2328 (Has_Rep_Item): Removed.
2329 (Has_Rep_Pragma): Removed.
2330 (Has_Rep_Pragma_For_Entity): Removed.
2331 * exp_ch9.adb (Expand_N_Task_Type_Declaration):
2332 Has_Rep_Pragma_For_Entity replaced by Has_Rep_Pragma
2333 and Get_Rep_Pragma_For_Entity replaced by Get_Rep_Pragma.
2334 (Make_Task_Create_Call): Has_Rep_Pragma_For_Entity replaced
2335 by Has_Rep_Pragma and Get_Rep_Pragma_For_Entity replaced by
2337 * exp_intr.adb: Dependency to Sem_Aux added for call to Get_Rep_Pragma.
2338 * sem_aux.adb (Get_Rep_Item): New routine.
2339 (Get_Rep_Pragma): New routine.
2340 (Has_Rep_Item): New routine.
2341 (Has_Rep_Pragma): New routine.
2342 (Nearest_Ancestor): Minor reformatting.
2343 * sem_aux.ads (Get_Rep_Item): New routine.
2344 (Get_Rep_Pragma): New routine.
2345 (Has_Rep_Item): New routine.
2346 (Has_Rep_Pragma): New routine.
2347 * sem_ch13.adb (Duplicate_Clause): Restore original error messages.
2348 * sem_eval.adb (Subtypes_Statically_Match): Get_Rep_Item_For_Entity
2349 replaced by Get_Rep_Item.
2350 * sem_prag.adb (Analyze_Pragma): Restore original error messages.
2351 (Check_Duplicate_Pragma): Restore original error messages.
2353 2012-06-14 Ed Schonberg <schonberg@adacore.com>
2355 * sem_util.adb (Is_Object_Reference): in Ada 2012, qualified
2356 expressions are valid names.
2358 2012-06-14 Ed Schonberg <schonberg@adacore.com>
2360 * sem_ch10.adb (Analyze_Compilation_Unit): If the unit is an
2361 instantiation do not emit warnings for obsolescent units. The
2362 warnings belong on the corresponding generic.
2364 2012-06-14 Hristian Kirtchev <kirtchev@adacore.com>
2366 * einfo.adb: Update the usage of Node15.
2367 (Return_Flag_Or_Transient_Decl): Removed.
2368 (Set_Return_Flag_Or_Transient_Decl): Removed.
2369 (Set_Status_Flag_Or_Transient_Decl): New routine.
2370 (Status_Flag_Or_Transient_Decl): New routine.
2371 (Write_Field15_Name): Update the output for variables and constants.
2372 * einfo.ads: Remove attribute
2373 Return_Flag_Or_Transient_Decl along with occurrences in nodes.
2374 (Return_Flag_Or_Transient_Decl): Removed along with pragma Inline.
2375 (Set_Return_Flag_Or_Transient_Decl): Removed along with pragma Inline.
2376 (Set_Status_Flag_Or_Transient_Decl): New routine along with pragma
2378 (Status_Flag_Or_Transient_Decl): New routine along with pragma Inline.
2379 * exp_ch4.adb (Create_Alternative): New routine.
2380 (Expand_N_Conditional_Expression): Handle the case
2381 where at least one of the conditional expression
2382 alternatives prodices a controlled temporary by means of a function
2384 (Is_Controlled_Function_Call): New routine.
2385 (Process_Transient_Object): Update the call to
2386 Set_Return_Flag_Or_Transient_Decl.
2387 * exp_ch6.adb (Enclosing_Context): New routine.
2388 (Expand_N_Extended_Return_Statement): Update all calls to
2389 Set_Return_Flag_Or_Transient_Decl.
2390 (Expand_Ctrl_Function_Call): Prohibit the finalization of a controlled
2391 function result when the context is a conditional expression.
2392 * exp_ch7.adb (Process_Declarations): Update all calls to
2393 Return_Flag_Or_Transient_Decl. Add processing for intermediate
2394 results of conditional expressions where one of the alternatives
2395 uses a controlled function call.
2396 (Process_Object_Declaration): Update all calls to
2397 Return_Flag_Or_Transient_Decl and rearrange the logic to process
2398 "hook" objects first.
2399 (Process_Transient_Objects): Update the call to
2400 Set_Return_Flag_Or_Transient_Decl.
2401 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean,
2402 Boolean)): Update all calls to Return_Flag_Or_Transient_Decl. Add
2403 detection for intermediate results of conditional expressions
2404 where one of the alternatives uses a controlled function call.
2406 2012-06-13 Eric Botcazou <ebotcazou@adacore.com>
2409 2012-05-19 Eric Botcazou <ebotcazou@adacore.com>
2411 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
2412 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
2414 (get_minimal_subprog_decl): Likewise.
2415 (gnat_first_param_is_class): New predicate.
2417 2012-06-12 Robert Dewar <dewar@adacore.com>
2419 * gcc-interface/Make-lang.in: Update dependencies.
2420 * sem_ch9.ads, einfo.adb, einfo.ads, sem_prag.adb, freeze.adb,
2421 sem_util.adb, sem_ch13.adb, sem_ch13.ads, exp_ch3.adb: Add comments.
2424 2012-06-12 Ed Schonberg <schonberg@adacore.com>
2426 * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove code that
2427 implements AI05-0296, because the actual may be overloaded.
2428 * sem_ch8.adb (Analyze_Subprogram_Renaming): and move it here,
2429 to be applied once the actual subprogram is properly resolved.
2431 2012-06-12 Robert Dewar <dewar@adacore.com>
2433 * switch-c.adb, a-exexpr-gcc.adb: Minor reformatting.
2435 2012-06-12 Vincent Pucci <pucci@adacore.com>
2437 * checks.adb (Tag_Checks_Suppressed): Remove Kill_Tag_Checks check.
2438 * einfo.adb (Universal_Aliasing): Apply to the implementation
2439 base type instead of the base type.
2440 (Get_Rep_Item_For_Entity):
2441 Return a pragma if the pragma node is not present in the Rep
2442 Item chain of the parent.
2443 (Kill_Tag_Checks): Removed (unused flag).
2444 (Set_Kill_Tag_Checks): Removed.
2445 (Get_First_Rep_Item): New routine.
2446 (Get_Rep_Pragma_For_Entity): New routine.
2447 (Has_Rep_Item): New routine.
2448 (Has_Rep_Pragma_For_Entity): New routine.
2449 (Present_In_Rep_Item): New routine.
2450 * einfo.ads (Kill_Tag_Checks): Removed.
2451 (Set_Kill_Tag_Checks): Removed.
2452 (Get_First_Rep_Item): New routine.
2453 (Get_Rep_Pragma_For_Entity): New routine.
2454 (Has_Rep_Item): New routine.
2455 (Has_Rep_Pragma_For_Entity): New routine.
2456 (Present_In_Rep_Item): New routine.
2457 * exp_attr.adb, sem_attr.adb: Attribute_CPU,
2458 Attribute_Dispatching_Domain and Attribute_Interrupt_Priority
2460 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause): For
2461 attribute Storage_Size, insert the new assignement statement
2462 after the Size variable declaration.
2463 * exp_ch3.adb (Build_Init_Statements): Fill the CPU,
2464 Dispatching_Domain, Priority and Size components with the Rep
2465 Item expression (if any).
2466 * exp_ch9.adb (Expand_N_Task_Type_Declaration): _CPU,
2467 _Priority, _Domain fields are always present in the
2468 corresponding record type.
2469 (Find_Task_Or_Protected_Pragma): Removed.
2470 (Get_Relative_Deadline_Pragma): New routine.
2471 (Make_Initialize_Protection): Find_Task_Or_Protected_Pragma removed.
2472 (Make_Task_Create_Call): Check CPU, Size or
2473 Dispatching_Domain Rep Item is present using new routine Has_Rep_Item.
2474 * freeze.adb (Freeze_All): Push_Scope_And_Install_Discriminants
2475 and Uninstall_Discriminants_And_Pop_Scope calls added.
2476 (Freeze_Entity): Evaluate_Aspects_At_Freeze_Point call added.
2477 * sem_aux.adb (Nearest_Ancestor): Retrieve the nearest ancestor
2478 for private derived types.
2479 * sem_ch13.adb (Analyze_Aspect_Specifications): Clean-up
2480 and reordering. Delay analysis for all aspects (except some
2482 (Analyze_Attribute_Definition_Clause):
2483 Attribute_CPU, Attribute_Dispatching_Domain,
2484 Interrupt_Priority and Attribute_Priority cases added.
2485 (Analyze_Freeze_Entity): Push_Scope_And_Install_Discriminants
2486 and Uninstall_Discriminants_And_Pop_Scope calls added.
2487 (Check_Aspect_At_Freeze_Point): Reordering and clean-up.
2488 (Duplicate_Clause): Issue an explicit error msg when the current
2489 clause duplicates an aspect specification, an attribute definition
2491 (Evaluate_Aspects_At_Freeze_Point): New routine.
2492 * sem_ch13.ads (Evaluate_Aspects_At_Freeze_Point): New routine.
2493 * sem_ch9.adb, sem_ch9.ads (Install_Discriminants): New routine.
2494 (Push_Scope_And_Install_Discriminants): New routine.
2495 (Uninstall_Discriminants): New routine.
2496 (Uninstall_Discriminants_And_Pop_Scope): New routine.
2497 * sem_prag.adb (Check_Duplicate_Pragma): Issue an explicit error
2498 msg when the current pragma duplicates an aspect specification,
2499 an attribute definition clause or a pragma.
2500 (Analyze_Pragma): Remove use of flags Has_Pragma_CPU,
2501 Has_Pragma_Priority and Has_Pragma_Dispatching_Domain.
2502 * sem_util.adb (Compile_Time_Constraint_Error): Don't complain
2503 about the type if the corresponding concurrent type doesn't come
2505 * sinfo.adb, sinfo.ads (Has_Pragma_CPU): Removed.
2506 (Has_Pragma_Dispatching_Domain): Removed.
2507 (Has_Pragma_Priority): Removed.
2508 (Has_Task_Info_Pragma): Removed.
2509 (Has_Task_Name_Pragma): Removed.
2510 (Set_Has_Pragma_CPU): Removed.
2511 (Set_Has_Pragma_Dispatching_Domain): Removed.
2512 (Set_Has_Pragma_Priority): Removed.
2513 (Set_Has_Task_Info_Pragma): Removed.
2514 (Set_Has_Task_Name_Pragma): Removed.
2515 * snames.adb-tmpl (Get_Pragma_Id): Pragma_CPU,
2516 Pragma_Dispatching_Domain and Pragma_Interrupt_Priority added.
2517 (Is_Pragma_Name): Name_CPU, Name_Dispatching_Domain and
2518 Name_Interrupt_Priority added.
2519 * snames.ads-tmpl: Name_Dispatching_Domain, Name_CPU
2520 and Name_Interrupt_Priority moved to the list of
2521 Attribute_Name. Attribute_CPU, Attribute_Dispatching_Domain and
2522 Attribute_Interrupt_Priority added. Pragma_Dispatching_Domain,
2523 Pragma_CPU and Pragma_Interrupt_Priority moved to the end of
2524 the Pragma_Name list.
2526 2012-06-12 Arnaud Charlet <charlet@adacore.com>
2528 * xref_lib.adb (Get_Full_Type): Add support for 'G'.
2530 2012-06-12 Tristan Gingold <gingold@adacore.com>
2532 * a-exexpr-gcc.adb (Unwind_Exception): Add 4 more private fields.
2534 2012-06-12 Fedor Rybin <frybin@adacore.com>
2536 * gnat_ugn.texi: Update doc on gnattest.
2538 2012-06-12 Robert Dewar <dewar@adacore.com>
2540 * sem_ch12.adb: Add comments.
2542 2012-06-12 Robert Dewar <dewar@adacore.com>
2544 * switch-c.adb, inline.adb, usage.adb, opt.ads: Minor reformatting.
2546 2012-06-12 Robert Dewar <dewar@adacore.com>
2548 * sem_ch12.adb: Minor reformatting.
2550 2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
2552 * opt.ads (Inline_Level): New variable.
2553 * gnat1drv.adb (Adjust_Global_Switches): Set it based on optimization
2554 level if it has not been set by the user.
2555 * switch-c.adb (Scan_Front_End_Switches): Accept -gnatn1 and -gnatn2
2556 and set Inline_Level accordingly.
2557 * inline.adb (Add_Inlined_Body): Declate new Inline_Level_Type type.
2558 (Must_Inline): Return Inline_Level_T instead of Boolean to indicate
2559 whether the package of the inlined subprogram must be compiled.
2560 If Inline_Level is set to 1, only compile packages of subprograms
2561 directly called from the main unit.
2562 * usage.adb (Usage): Adjust line for -gnatn switch.
2563 * gnat_ugn.texi (Switches for gcc): Document -gnatn1 and -gnatn2.
2565 2012-06-12 Ed Schonberg <schonberg@adacore.com>
2567 * sem_ch12.adb (Instantiate_Formal_Subprogram): Do not apply
2568 AI05-296 if the actual is overloaded. In this case The rule must
2569 be applied after resolution, in Analyze_Subprogram_Renaming.
2571 2012-06-12 Robert Dewar <dewar@adacore.com>
2573 * stringt.adb: Minor reformatting.
2575 2012-06-12 Robert Dewar <dewar@adacore.com>
2577 * ali-util.adb, stringt.ads: Minor reformatting.
2579 2012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
2581 * exp_ch7.adb (Process_Declarations): Handle the case where
2582 the original context has been wrapped in a block to avoid
2583 interference between exception handlers and At_End handlers.
2584 (Wrap_HSS_In_Block): Mark the block which contains the original
2585 statements of the context as being a finalization wrapper.
2586 * sinfo.adb (Is_Finalization_Wrapper): New routine.
2587 (Set_Is_Finalization_Wrapper): New routine.
2589 * sinfo.ads: Add new attribute Is_Finalization_Wrapper applicable
2591 (Is_Finalization_Wrapper): New routine with corresponding pragma Inline.
2592 (Set_Is_Finalization_Wrapper): New routine with corresponding pragma
2595 2012-06-12 Steve Baird <baird@adacore.com>
2597 * gnat1drv.adb (Adjust_Global_Switches): No longer need to set
2598 Exception_Extra_Info in CodePeer_Mode.
2600 2012-06-12 Robert Dewar <dewar@adacore.com>
2602 * sem_dist.adb, exp_ch7.adb, sem_type.adb, exp_attr.adb,
2603 sinfo.ads, sem_ch7.adb, exp_alfa.adb, sem_scil.adb, sem_ch12.adb,
2604 sem_util.adb, sem_res.adb, sem_attr.adb, sem_elab.adb, exp_ch6.adb,
2605 sem_ch4.adb, sem_warn.adb, scil_ll.adb, exp_cg.adb: Minor code
2608 2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
2610 * s-tasini.ads: Minor fix in comment.
2612 2012-06-12 Thomas Quinot <quinot@adacore.com>
2614 * freeze.adb (Freeze_Record_Type): Warn on record with
2615 Scalar_Storage_Order if there is no placed component.
2617 2012-06-12 Thomas Quinot <quinot@adacore.com>
2619 * sem_ch3.adb: Minor comment fix.
2621 2012-06-12 Vincent Celier <celier@adacore.com>
2623 * ali-util.adb (Time_Stamp_Mismatch): In minimal recompilation
2624 mode, use Stringt Mark and Release to avoid growing the Stringt
2625 internal tables uselessly.
2626 * stringt.adb (Strings_Last): New global variable
2627 (String_Chars_Last): New global variable.
2628 (Mark, Release): New procedures.
2629 * stringt.ads (Mark, Release) New procedures.
2631 2012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
2633 * exp_ch7.adb (Process_Transient_Objects): Renamed constant
2634 Requires_Hooking to Must_Hook and replace all occurrences of the name.
2635 (Requires_Hooking): New routine. Detect all contexts that require
2636 transient variable export to the outer finalizer due to a potential
2639 2012-06-12 Ed Schonberg <schonberg@adacore.com>
2641 * sem_ch12.adb: Small adjustment.
2643 2012-06-12 Vincent Celier <celier@adacore.com>
2645 * vms_cmds.ads (Command_Type): New enumeration value Test
2646 * vms_conv.adb (Initialize): Add component at index Test in
2648 * vms_data.ads (Test_Switches): New global variable for the
2649 switches of gnattest, currently empty.
2651 2012-06-12 Ed Schonberg <schonberg@adacore.com>
2653 * sem_ch3.adb (Analyze_Subtype_Declaration): if an incomplete
2654 type is tagged, so is a subtype of it.
2655 * sem_ch12.adb (Validate_Actual_Subprogram): implement AI05-0296,
2656 concerning freeze rules in the presence of formal incomplete
2657 types: a formal abstract subprogram cannot have an incomplete
2658 controlling type, and the profile of the actual subprogram does
2659 not freeze if it includes an incomplete untagged type.
2661 2012-06-12 Robert Dewar <dewar@adacore.com>
2663 * a-direct.adb: Minor reformatting.
2665 2012-06-12 Robert Dewar <dewar@adacore.com>
2667 * gnat_ugn.texi: Add missing documentation for -gnatw.v and
2670 2012-06-12 Thomas Quinot <quinot@adacore.com>
2672 * sem_ch7.adb, sem_prag.adb, sem_ch12.adb, sem_ch4.adb,
2673 sem_ch13.adb: Minor rewording of error messages for unchecked unions.
2675 2012-06-12 Robert Dewar <dewar@adacore.com>
2677 * lib-xref.ads: Minor reformatting.
2679 2012-06-12 Pascal Obry <obry@adacore.com>
2681 * a-direct.adb (Delete_File): Delete symbolic links silently
2682 instead of raising the Name_Error exception when the symbolic
2683 link is pointing to a non existent file.
2685 2012-06-12 Robert Dewar <dewar@adacore.com>
2687 * xref_lib.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.
2689 2012-06-12 Javier Miranda <miranda@adacore.com>
2691 * lib-xref.ads Adding missing documentation.
2693 2012-06-12 Hristian Kirtchev <kirtchev@adacore.com>
2695 * exp_ch7.adb (Create_Finalizer): Add the
2696 exception reraise mechanism at the very end of the finalizer
2697 statements. This placement ensures that all objects are finalized,
2698 the secondary stack mark released and aborts undeferred before
2699 propagating an exception.
2701 2012-06-12 Ed Schonberg <schonberg@adacore.com>
2703 * sem_ch10.adb (Remove_Unit_From_Visibility): if the unit is a
2704 wrapper package. remove from visibility the original subprogram
2707 2012-06-12 Javier Miranda <miranda@adacore.com>
2709 * sem_prag.adb (Process_Convention): Generate reference to entity
2710 exported to foreign language. Needed for GPS navigation.
2711 * xref_lib.adb (Parse_Identifier_Info): Parse exported entities.
2712 * lib-xref (Output_References): Output exported entities.
2714 2012-06-12 Pascal Obry <obry@adacore.com>
2716 * prj-attr.adb: Add install package and corresponding attributes.
2717 * snames.ads-tmpl (Name_Active): New constant.
2718 (Name_Exec_Subdir): Likewise.
2719 (Name_Install): Likewise.
2720 (Name_Lib_Subdir): Likewise.
2721 (Name_Project_Subdir): Likewise.
2722 (Name_Sources_Subdir): Likewise.
2724 2012-06-12 Bob Duff <duff@adacore.com>
2726 * sem_res.adb (Check_Infinite_Recursion):
2727 Suppress spurious warning on recursion after "raise with ...".
2729 2012-06-12 Thomas Quinot <quinot@adacore.com>
2731 * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Do
2732 not crash on illegal unchecked union that is a null record.
2734 2012-06-12 Thomas Quinot <quinot@adacore.com>
2736 * exp_ch4.adb (Has_Inferable_Discriminants): Reorganize code to
2737 treat implicit dereferences with a constrained unchecked union
2738 nominal subtype as having inferable discriminants.
2740 2012-06-12 Robert Dewar <dewar@adacore.com>
2742 * sem_ch6.adb: Minor reformatting.
2744 2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
2746 * gnat_ugn.texi: Couple of minor corrections.
2748 2012-06-12 Thomas Quinot <quinot@adacore.com>
2750 * sem_prag.adb (Check_Variant): An empty component list is not
2751 illegal in an unchecked union variant.
2753 2012-06-12 Gary Dismukes <dismukes@adacore.com>
2755 * projects.texi: Remove comments.
2757 2012-06-12 Thomas Quinot <quinot@adacore.com>
2759 * back_end.adb (Scan_Back_End_Switches): Treat -fdump-scos as
2761 (gnat_post_options): Disable gimple-based SCO generator.
2762 * gnat_ugn.texi: Document that -gnateS is an obsolete synonym
2765 2012-06-12 Ed Schonberg <schonberg@adacore.com>
2767 * sem_ch6.adb (Different_Generic_Profile): new predicate for
2768 Find_Corresponding_Spec, to handle a rare case of accidental
2769 overloading in an instance, when the profile of a subprogram body
2770 that depends on a formal type becomes compatible with that of
2771 a homonym whose profile in the generic mentions the actual type.
2773 2012-06-12 Thomas Quinot <quinot@adacore.com>
2775 * gnat1drv.adb: Minor reformatting.
2777 2012-06-12 Ed Schonberg <schonberg@adacore.com>
2779 * sem_util.adb (Build_Explicit_Dereference): If the expression
2780 is an entity, ensure that the type of the expression is the same
2781 as that of the entity.
2783 2012-06-12 Pat Rogers <rogers@adacore.com>
2785 * projects.texi: Corrected instances of the word "build" that
2786 should be "built" instead. Other similar changes and minor
2787 punctuation changes.
2789 2012-06-12 Eric Botcazou <ebotcazou@adacore.com>
2791 * sem_util.adb (Is_Atomic_Object): Return true for an atomic
2792 component as well as a prefix which is an atomic component.
2794 2012-06-12 Ed Schonberg <schonberg@adacore.com>
2796 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): revert previous
2797 patch. The processing of interfacing aspects now generates a
2798 proper Ada 2005 pragma.
2799 * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
2800 Pragma_Import): revert previous patch. The processing of
2801 interfacing aspects now generates a proper Ada 2005 pragma.
2802 * sem_ch13.adb (Analyze_Aspect_Specifications): generate proper
2803 pragam for aspects Convention, Import and Export. Scan list
2804 of aspects to collect link name and external name if present,
2805 and verify that a complete pragma can be generated.
2807 2012-06-11 Olivier Hainque <hainque@adacore.com>
2809 * gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Remove
2810 $(PIC_FLAG_FOR_TARGET).
2811 (gnatlib-shared-default): Add $(PIC_FLAG_FOR_TARGET) to
2812 GNATLIBCFLAGS_FOR_C passed to gnatlib.
2813 (gnatlib-shared-win32): Likewise.
2814 (gnatlib-shared-darwin): Likewise.
2815 (gnatlib-shared-dual-win32): Pass PIC_FLAG_FOR_TARGET to
2816 gnatlib-shared-win32.
2818 2012-06-11 Eric Botcazou <ebotcazou@adacore.com>
2820 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Convert GNU_SIZE
2821 to units before invoking allocatable_size_p on it.
2822 Remove orphaned comment. Do not use ssize_int.
2823 <E_Record_Subtype>: Traverse list in original order. Minor tweak.
2824 (allocatable_size_p): Adjust and simplify.
2825 (build_subst_list): Use consistent terminology throughout.
2826 (build_variant_list): Likewise. Traverse list in original order.
2827 (create_field_decl_from): Likewise.
2828 (copy_and_substitute_in_size): Likewise.
2829 (create_variant_part_from): Add comment about field list order.
2830 * gcc-interface/utils.c (build_vms_descriptor): Do not use ssize_int.
2831 * gcc-interface/utils2.c (build_allocator): Likewise.
2833 2012-06-11 Eric Botcazou <ebotcazou@adacore.com>
2835 * gcc-interface/trans.c (Identifier_to_gnu): Test Is_Elementary_Type
2836 instead of Is_Scalar_Type for a constant with an address clause.
2837 Do not return the underlying constant for a constant used by reference
2838 if it holds the address of a constant and an lvalue is required.
2840 2012-06-11 Eric Botcazou <ebotcazou@adacore.com>
2842 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not specifically deal
2843 with external constants wrt force_global here...
2844 <E_Constant>: ...but here instead.
2845 * gcc-interface/utils.c (gnat_pushdecl): Do not put external DECLs onto
2846 the list of global DECLs.
2848 2012-06-11 Eric Botcazou <ebotcazou@adacore.com>
2850 * gcc-interface/decl.c (gnat_to_gnu_entity): Translate the Esize on
2851 entry only for elementary types and abort if it is too large.
2852 <E_Record_Type>: Make sure the Esize is known before using it.
2854 2012-06-04 Steven Bosscher <steven@gcc.gnu.org>
2856 * gcc-interface/utils2.c: Do not include output.h.
2857 * gcc-interface/Make-lang.in: Fix dependencies.
2859 2012-05-29 Michael Matz <matz@suse.de>
2861 * gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl.
2863 2012-05-26 Eric Botcazou <ebotcazou@adacore.com>
2865 * gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'.
2866 (build_variant_list): Adjust to above renaming.
2867 (gnat_to_gnu_entity) <E_Record_Subtype>: Likewise. Give a unique name
2868 to the type of the variant containers.
2869 (create_variant_part_from): Likewise. Give a unique name to the type
2870 of the variant part.
2872 2012-05-25 Eric Botcazou <ebotcazou@adacore.com>
2875 * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
2876 (__gnat_using_gnu_linker): Delete.
2877 * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
2878 Declare Object_File_Option string constant and Using_GNU_response_file
2880 (Process_Binder_File): ...instead of here. Delete Using_GNU_Linker,
2881 Opening and Closing local variables. Do not handle the GNU linker
2883 (Write_RF): New procedure to write into the response file. Escape some
2884 characters if a GNU response file is used. Keep track of error status.
2885 Invoke Write_RF to write into the response file. Delete the file only
2886 if the link was successful.
2887 * mlib-utl.adb: Do not `with' package System.
2888 (Gcc): Likewise. Declare Object_File_Option string constant and
2889 Using_GNU_response_file boolean constant.
2890 (Write_RF): Take a string instead of address and length. Escape some
2891 characters if a GNU response file is used.
2892 Invoke Write_RF to write into the response file. Delete the file only
2893 if the link was successful. Do not warn if it cannot be deleted.
2895 2012-05-20 Eric Botcazou <ebotcazou@adacore.com>
2897 * gcc-interface/utils.c (gnat_write_global_declarations): Put a name
2898 on the dummy global variable.
2900 2012-05-19 Eric Botcazou <ebotcazou@adacore.com>
2902 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
2903 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
2905 (get_minimal_subprog_decl): Likewise.
2906 (gnat_first_param_is_class): New predicate.
2908 * gcc-interface/misc.c (gnat_handle_option): Fix formatting.
2909 * gcc-interface/Makefile.in: Likewise.
2911 2012-05-18 Eric Botcazou <ebotcazou@adacore.com>
2913 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at
2914 global level with unconstrained nominal subtype and a non-fixed size,
2915 make a variable for the size.
2917 2012-05-15 Andris Pavenis <andris.pavenis@iki.fi>
2920 * s-taprop-dummy.adb (Specific): New package.
2922 2012-05-15 Olivier Hainque <hainque@adacore.com>
2924 * gcc-interface/Make-lang.in (COMMON_FLAGS_TO_PASS): Use WARN_CFLAGS
2925 instead of trying to mimic it.
2927 2012-05-15 Robert Dewar <dewar@adacore.com>
2929 * sem_ch5.adb, sem_util.adb, s-stposu.adb, exp_ch4.adb: Minor
2932 2012-05-15 Geert Bosch <bosch@adacore.com>
2934 * uintp.adb (UI_Rem): Remove optimizations, as they are complex and are
2936 (Sum_Digits): Remove, no longer used.
2937 (Sum_Double_Digits): Likewise.
2939 2012-05-15 Yannick Moy <moy@adacore.com>
2941 * aspects.ads: Minor typo.
2943 2012-05-15 Thomas Quinot <quinot@adacore.com>
2945 * gnat_rm.texi (Scalar_Storage_Order): Fix RM reference.
2946 * sem_ch13.adb: Minor comment fix: incorrect RM reference.
2948 2012-05-15 Eric Botcazou <ebotcazou@adacore.com>
2950 * sem_prag.adb (Process_Atomic_Shared_Volatile): Propagate
2951 atomicity from an object to its underlying type only if it
2954 2012-05-15 Ed Schonberg <schonberg@adacore.com>
2956 * sem_ch5.adb (Analyze_Iterator_Specification): Set kind of
2957 loop variable after pre-analysis of iterator name, to prevent
2958 premature usage of loop variable.
2960 2012-05-15 Ed Schonberg <schonberg@adacore.com>
2962 * sem_util.adb (Is_Variable): In Ada 2012, an explicit
2963 dereference that is a rewriting of an expression whose type has
2964 a declared Implicit_Derenference aspect is a variable.
2966 2012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
2968 * exp_ch4.adb (Insert_Dereference_Action): Reimplemented. The
2969 routine performs address and size adjustments for dereferences
2970 of heap-allocated controlled objects. This manipulation is needed
2971 in order to restore the original state of the memory at the time
2972 it was allocated by the finalization machinery.
2973 * rtsfind.ads: Add RE_Adjust_Controlled_Dereference to tables
2974 RE_Id and RE_Unit_Table.
2975 * sinfo.adb (Has_Dereference_Action): New routine.
2976 (Set_Has_Dereference_Action): New routine.
2977 * sinfo.ads: Add new semantic flag Has_Dereference_Action along
2978 its association in nodes.
2979 (Has_Dereference_Action): New routine and pragma Inline.
2980 (Set_Has_Dereference_Action): New routine and pragma Inline.
2981 * s-stposu.ads, s-stposu.adb (Adjust_Controlled_Dereference): New
2984 2012-05-15 Thomas Quinot <quinot@adacore.com>
2986 * uintp.adb (Image_Uint): Use UI_Div_Rem to get quotient and
2987 remainder of U / Base in a single operation.
2989 2012-05-15 Robert Dewar <dewar@adacore.com>
2991 * exp_ch5.adb, inline.adb, sem_ch10.adb, prj.ads, sem_util.adb,
2992 a-ngelfu.ads, exp_ch4.adb, exp_ch6.adb, aspects.ads, sem_ch6.adb,
2993 vms_data.ads, exp_ch3.adb, prj-env.adb: Minor reformatting.
2995 2012-05-15 Thomas Quinot <quinot@adacore.com>
2997 * exp_ch4.adb (Has_Inferable_Discriminants): For a qualified
2998 expression, use correct node for test on the subtype denoted by
3001 2012-05-15 Eric Botcazou <ebotcazou@adacore.com>
3003 * inline.adb (Scope_In_Main_Unit): Rename into...
3004 (In_Main_Unit_Or_Subunit): ...this. Also return
3005 true if the subprogram is within a subunit of the
3007 (Add_Inlined_Body): Adjust for above renaming.
3008 (Add_Inlined_Subprogram): Likewise. Pass the subprogram directly.
3009 (Analyze_Inlined_Bodies): Really set aside inlined subprograms
3010 not handled by Add_Inlined_Body.
3012 2012-05-15 Ed Schonberg <schonberg@adacore.com>
3014 * sem_ch10.adb (Expand_With_Clause): In the context of a generic
3015 package declaration, a private with-clause on a child unit implies
3016 that the implicit with clauses on its parents are private as well.
3018 2012-05-15 Javier Miranda <miranda@adacore.com>
3020 * sem_ch6.adb (Is_Interface_Conformant): Add missing call to
3021 Base_Type to handle subtypes.
3022 * exp_ch6.adb (Expand_Call): For calls located in thunks handle
3023 unchecked conversions of access types found in actuals.
3024 * exp_disp.adb (Expand_Interface_Thunk): Add missing unchecked
3025 conversion to actuals whose type is an access type. Done to
3026 avoid reporting spurious errors.
3028 2012-05-15 Vincent Celier <celier@adacore.com>
3030 * prj-env.adb (Create_Mapping): Ignore sources that are
3031 suppressed (Create_Mapping_File.Process): Ditto
3032 * prj-nmsc.adb (Add_Source): Update to take into
3033 account suppressed files that may hide inherited sources.
3034 (Mark_Excluded_Sources): Mark excluded sources of the current
3035 project as suppressed.
3036 * prj.ads (Source_Data): New Boolean component Suppressed,
3039 2012-05-15 Thomas Quinot <quinot@adacore.com>
3041 * exp_intr.adb: Minor reformatting.
3043 2012-05-15 Thomas Quinot <quinot@adacore.com>
3045 * gnat_rm.texi: Document attribute Scalar_Storage_Order.
3047 2012-05-15 Javier Miranda <miranda@adacore.com>
3049 * exp_ch3.adb (Build_Offset_To_Top): Modify the
3050 expansion of the offset_to_top functions to ensure that their
3051 profile is conformant with the profile specified in Ada.Tags. No
3052 change in functionality.
3054 2012-05-15 Eric Botcazou <ebotcazou@adacore.com>
3056 * inline.adb (Subp_Info): Remove Count and Next_Nopred
3057 components, add Processed component and move around Next component.
3058 (Add_Call): Reverse meaning of Successors table to the natural one.
3059 (Add_Inlined_Body): Do not inline a package if it is in the main unit.
3060 (Add_Inlined_Subprogram): Do not add the subprogram to the list if the
3061 package is in the main unit. Do not recurse on the successors.
3062 (Add_Subp): Adjust to new contents of Subp_Info.
3063 (Analyze_Inlined_Bodies): Do not attempt
3064 to compute a topological order on the list of inlined subprograms,
3065 but compute the transitive closure from the main unit instead.
3066 (Get_Code_Unit_Entity): Always return the spec for a package.
3068 2012-05-15 Yannick Moy <moy@adacore.com>
3070 * aspects.ads: Minor addition of comments to provide info on
3071 how to add new aspects.
3073 2012-05-15 Thomas Quinot <quinot@adacore.com>
3075 * osint.ads: Minor reformatting.
3077 2012-05-15 Thomas Quinot <quinot@adacore.com>
3079 * exp_ch5.adb, exp_pakd.adb, sem_util.adb, sem_util.ads
3080 (Expand_Assign_Array): Handle the case of a packed bit array within a
3081 record with reverse storage order (assign element by element in that
3083 (In_Reverse_Storage_Order_Record): New subprogram,
3084 code extracted from Exp_Pakd.
3086 2012-05-15 Yannick Moy <moy@adacore.com>
3088 * a-ngelfu.ads: Add postconditions using Ada 2012
3089 aspect syntax, reflecting some of the RM requirements for these
3090 functions, from Annex A.5.1 or G.2.4.
3092 2012-05-15 Thomas Quinot <quinot@adacore.com>
3094 * adaint.c: Minor fix: move misplaced comment.
3096 2012-05-15 Doug Rupp <rupp@adacore.com>
3098 * vms_data.ads: Enhance help for /IMMEDIATE_ERRORS to discourage
3101 2012-05-15 Tristan Gingold <gingold@adacore.com>
3103 * a-exextr.adb: Add comment.
3105 2012-05-15 Ed Schonberg <schonberg@adacore.com>
3107 * sem_ch3.adb: Minor reformatting (remove long dead code).
3109 2012-05-15 Ed Schonberg <schonberg@adacore.com>
3111 * aspects.adb, aspects.ads: Add aspects for Convention, Export,
3112 External_Name, Import, and Link_Name.
3113 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): if the
3114 pragma comes from an aspect specification, the entity is the
3116 * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and
3117 Pragma_Import): if the pragma comes from an aspect specification,
3118 the entity is the first argument, and the second has the value
3120 * sem_ch13.adb (Analyze_Aspect_Specifications): generate pragam
3121 for aspect Convention. Add placeholders for Link_Name and
3124 2012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
3126 * exp_ch9.adb (Expand_N_Asynchronous_Select): Extract the statements
3127 of the abortable part and triggering alternative after being processed
3128 for controlled objects.
3129 (Expand_N_Timed_Entry_Call): Code and comment reformatting.
3131 2012-05-15 Robert Dewar <dewar@adacore.com>
3133 * sem_util.adb: Minor code reorganization.
3135 2012-05-15 Robert Dewar <dewar@adacore.com>
3137 * exp_ch7.adb, exp_ch11.adb, exp_ch11.ads: Minor reformatting.
3139 2012-05-15 Thomas Quinot <quinot@adacore.com>
3141 * sem_res.adb (Resolve): Enforce E.2.2(11/2) and E.2.2(12) for
3142 'Unrestricted_Access and 'Unchecked_Access (not just 'Access):
3143 even in those cases, a remote access type may only designate a
3146 2012-05-15 Thomas Quinot <quinot@adacore.com>
3148 * sem_util.adb, sem_util.ads, sem_cat.adb: Minor refactoring.
3149 (Enclosing_Lib_Unit_Node): Rename to Enclosing_Comp_Unit_Node.
3151 2012-05-15 Ed Schonberg <schonberg@adacore.com>
3153 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove obsolete
3154 checks on nested inlined subprograms.
3156 2012-05-15 Tristan Gingold <gingold@adacore.com>
3158 * fe.h (Get_RT_Exception_Name): Declare.
3160 2012-05-15 Tristan Gingold <gingold@adacore.com>
3162 * raise-gcc.c (db_region_for): Use %p + cast to avoid warnings.
3163 (get_region_description_for): Likewise.
3164 (db_action_for): Likewise.
3165 (get_call_site_action_for): Likewise.
3166 (get_ttype_entry_for): Remove useless 'const'.
3167 (PERSONALITY_FUNCTION): Add ATTRIBUTE_UNUSED on uw_exception_class.
3169 2012-05-15 Tristan Gingold <gingold@adacore.com>
3171 * a-exextr.adb (Unhandled_Exception_Terminate): Save occurrence
3172 on the stack to avoid a dynamic memory allocation.
3174 2012-05-15 Bob Duff <duff@adacore.com>
3176 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Move initialization of
3177 E_Stats and D_Stats after Process_Statements_For_Controlled_Objects,
3178 because those calls can destroy the Statements list.
3180 2012-05-15 Tristan Gingold <gingold@adacore.com>
3182 * fe.h (Get_RT_Exception_Name): Define.
3183 * types.ads (RT_Exception_Code): Update comment.
3184 * exp_ch11.adb, exp_ch11.ads (Get_RT_Exception_Name): New
3185 procedure to get the name of the rcheck subprograms.
3186 * a-except-2005.adb (Rcheck_xx): Rename.
3187 * a-except.adb Likewise, but also keep the old Rcheck_nn routines
3189 * arith64.c (__gnat_mulv64): Use __gnat_rcheck_CE_Overflow_Check
3190 instead of __gnat_rcheck_10.
3191 * gcc-interface/trans.c (build_raise_check): Use Get_RT_Exception_Name
3192 to create the __gnat_rcheck routines name.
3193 * gcc-interface/Make-lang.in: Update dependencies.
3195 2012-05-15 Tristan Gingold <gingold@adacore.com>
3197 * exp_ch7.adb (Build_Exception_Handler): Save current
3198 occurrence only if -gnateE.
3199 (Build_Object_Declaration): Declare E_Id only if -gnateE.
3200 (Build_Raise_Statement): Call Raise_From_Controlled_Operation only if
3201 -gnateE (else raise PE).
3202 * s-soflin.adb (Save_Library_Occurrence): Handle null occurrence
3204 * a-except-2005.adb (Reraise_Library_Exception_If_Any): Call
3205 Raise_From_Controlled_Operation only if the saved occurrence is
3206 not null, otherwise raise PE.
3208 2012-05-15 Yannick Moy <moy@adacore.com>
3210 * exp_alfa.ads: Add comments describing the Alfa mode.
3212 2012-05-15 Tristan Gingold <gingold@adacore.com>
3214 * s-soflin.ads, s-soflin.adb (Save_Library_Occurrence): Parameter
3215 E is now of type Exception_Occurrence_Access.
3216 * exp_ch7.ads, exp_ch7.adb (Build_Exception_Handler): Adjust generated
3217 call to Save_Library_Occurrence.
3219 2012-05-15 Thomas Quinot <quinot@adacore.com>
3221 * exp_ch4.adb (Rewrite_Coextension): Use Insert_Action to
3222 insert temporary variable decl at the proper place in the tree.
3224 2012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
3226 * g-calend.adb (Split_At_Locale): New routine.
3227 (Time_Of_At_Locale): New routine.
3228 * g-calend.ads (Split_At_Locale): New routine.
3229 (Time_Of_At_Locale): New routine.
3231 2012-05-15 Gary Dismukes <dismukes@adacore.com>
3233 * a-except.ads: Minor reformatting.
3235 2012-05-15 Ed Schonberg <schonberg@adacore.com>
3237 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the loop
3238 parameter specification is part of a quantified expression, and it
3239 already carries a type, do not repeat the analysis to preserve
3240 type information: a range attribute reference may have been
3241 rewritten as a range with static bounds, and its re-analysis may
3242 type it as Integer by default, instead of the original index type.
3244 2012-05-15 Robert Dewar <dewar@adacore.com>
3246 * s-osprim-mingw.adb: Minor reformatting.
3248 2012-05-15 Arnaud Charlet <charlet@adacore.com>
3250 * a-except.adb, a-except.ads (Reraise_Library_Exception_If_Any): New.
3251 Mark this unit preelaborate.
3252 * s-soflin.ads: Make package Preelaborate.
3254 2012-05-15 Robert Dewar <dewar@adacore.com>
3256 * s-osprim-mingw.adb, sem_eval.adb, a-calend-vms.ads: Minor reformatting
3258 2012-05-15 Ed Schonberg <schonberg@adacore.com>
3260 * sem_eval.adb (Subtypes_Statically_Match): In Ada 2012, static
3261 matching requires matching of static subtype predicates as well.
3263 2012-05-15 Ed Schonberg <schonberg@adacore.com>
3265 * sem_case.adb (Analyze_Choices): If the subtype of the
3266 expression has a non-static predicate, the case alternatives
3267 must cover the base type.
3269 2012-05-15 Tristan Gingold <gingold@adacore.com>
3271 * a-calend-vms.ads: Add pragma export to Split and Time_Of.
3272 Merge comments from a-calend.ads to minimize differences.
3274 2012-05-15 Sergey Rybin <rybin@adacore.com frybin>
3276 * gnat_ugn.texi: gnatmetric: add a small example that demonstrates
3277 the difference between control coupling and unit coupling.
3279 2012-05-15 Tristan Gingold <gingold@adacore.com>
3281 * bindgen.adb (Gen_Header): Remove code to emit LE_Set.
3282 (Gen_Finalize_Library): Replace test with
3283 a call to __gnat_reraise_library_exception_if_any.
3284 * s-soflin.ads (Library_Exception): Do not export.
3285 (Library_Exception_Set): Likewise.
3286 * a-except-2005.ads, a-except-2005.adb
3287 (Reraise_Library_Exception_If_Any): New procedure.
3289 2012-05-15 Geert Bosch <bosch@adacore.com>
3291 * sem_ch9.adb (Allows_Lock_Free_Implementation): out or in out
3292 parameters can be access types as well, not just scalar types,
3293 so relax the test to Is_Elementary_Type.
3295 2012-05-15 Bob Duff <duff@adacore.com>
3297 * s-atacco.ads s-atacco.adb: Replace pragma Elaborate_Body
3298 with pragma No_Body.
3299 (Xyz): Remove Xyz, which is apparently unnecessary.
3301 2012-05-15 Tristan Gingold <gingold@adacore.com>
3303 * a-calend-vms.adb: Complete previous change.
3305 2012-05-15 Bob Duff <duff@adacore.com>
3307 * s-win32.ads: Minor comment fix.
3308 * s-osprim-mingw.adb: Minor editing.
3310 2012-05-15 Robert Dewar <dewar@adacore.com>
3312 * exp_ch9.adb, sem_ch9.adb, sem_ch13.adb: Minor reformatting.
3314 2012-05-15 Robert Dewar <dewar@adacore.com>
3316 * g-comlin.adb, g-comlin.ads: Minor reformatting.
3318 2012-05-15 Vincent Pucci <pucci@adacore.com>
3320 * aspects.adb, aspects.adb: Reordering of the Aspect_Idi list. New
3321 aspect Aspect_Lock_Free.
3322 * einfo.adb, einfo.ads: New flag Uses_Lock_Free (flag 188).
3323 (Set_Uses_Lock_Free): New routine.
3324 (Uses_Lock_Free): New routine.
3325 * exp_ch7.adb (Is_Simple_Protected_Type): Return False for
3326 lock-free implementation.
3327 * exp_ch9.adb (Allows_Lock_Free_Implementation): Moved to Sem_Ch9.
3328 (Build_Lock_Free_Unprotected_Subprogram_Body): Protected
3329 procedure uses __sync_synchronise. Check both Object_Size
3331 (Expand_N_Protected_Body): Lock_Free_Active
3332 renames Lock_Free_On.
3333 (Expand_N_Protected_Type_Declaration):
3334 _Object field removed for lock-free implementation.
3335 (Install_Private_Data_Declarations): Protection object removed
3336 for lock-free implementation.
3337 (Make_Initialize_Protection):
3338 Protection object initialization removed for lock-free implementation.
3339 * rtsfind.ads: RE_Atomic_Synchronize and RE_Relaxed added.
3340 * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect_Lock_Free
3342 * sem_ch9.adb (Allows_Lock_Free_Implementation): New routine.
3343 (Analyze_Protected_Body): Allows_Lock_Free_Implementation call added.
3344 (Analyze_Protected_Type_Declaration):
3345 Allows_Lock_Free_Implementation call added.
3346 (Analyze_Single_Protected_Declaration): Second analysis of
3348 * s-atopri.ads: Header added.
3349 (Atomic_Synchronize): New routine.
3351 2012-05-15 Robert Dewar <dewar@adacore.com>
3353 * exp_ch7.ads: Add comment.
3355 2012-05-15 Hristian Kirtchev <kirtchev@adacore.com>
3357 * a-calend.adb (Day_Of_Week): The routine once again treats
3358 all dates as historic. (Formatting_Operations.Split): All
3359 calls to UTC_Time_Offset are now controlled through formal
3360 parameter Is_Historic. (Formatting_Operations.Time_Of):
3361 All calls to UTC_Time_Offset are now handled through
3362 formal parameter Is_Historic.
3363 (Split): Update the call to Formatting_Operations.Split.
3364 (Time_Of): Update the call to Formatting_Operations.Time_Of.
3365 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
3366 (To_Strict_Tm): Update the call to Formatting_Operations.Split.
3367 * a-calend.ads (Split): Add new formal Is_Historic along with
3368 comment on usage. This routine is now exported for the purposes
3369 of GNAT.Calendar.Locale.
3370 (Time_Of): Remove defaults. Add new
3371 formal Is_Historic along with comment on usage. This routine is
3372 now exported for the purposes of GNAT.Calendar.Locale.
3373 * a-calend-vms.adb (Split): Update the call to
3374 Formatting_Operations.Split.
3375 (Time_Of): Update the call to Formatting_Operations.Time_Of.
3376 * a-calend-vms.ads (Split): Add new formal Is_Historic along
3377 with comment on usage. (Time_Of): Remove defaults. Add new
3378 formal Is_Historic along with comment on usage.
3379 * a-calfor.adb (Split): Update the call to
3380 Formatting_Operations.Split.
3381 (Time_Of): Update the call to Formatting_Operations.Time_Of.
3383 2012-05-15 Vincent Celier <celier@adacore.com>
3385 * prj-nmsc.adb (Add_Source): Always add the source if it is
3386 excluded, to avoid incorrect duplicate checks.
3388 2012-05-15 Yannick Moy <moy@adacore.com>
3390 * sem_aux.ads: Correct typo.
3391 * sem_eval.adb (Compile_Time_Known_Value): Return False in Alfa
3392 mode for a deferred constant when outside of the scope of its
3395 2012-05-15 Emmanuel Briot <briot@adacore.com>
3397 * g-comlin.adb, g-comlin.ads (Define_Switch): Allow specifying the name
3398 of the argument, for the automatic help message.
3399 (Getopt): do not systematically initialize switches with string values
3400 to the empty string, when the user has already specified a default.
3402 2012-05-14 Bernd Schmidt <bernds@codesourcery.com>
3404 * gcc-interface/utils.c (DEF_ATTR_STRING): New.
3406 2012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
3409 * gcc-interface/misc.c: Include opts.h and options.h before tm.h.
3410 (gnat_handle_option): Call lang-specific generated function.
3412 2012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
3414 * gcc-interface/lang.opt (I): Comment out help text with no effect.
3415 (nostdinc): Comment out help text with no effect.
3417 2012-05-12 Eric Botcazou <ebotcazou@adacore.com>
3419 * gcc-interface/Makefile.in (TOOLS_LIBS): Add ../../ggc-none.o.
3421 2012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
3424 * gcc-interface/misc.c (gnat_parse_file): Move before ...
3425 (gnat_handle_option): ... this. Use handle_generated_option.
3427 2012-05-10 Richard Guenther <rguenther@suse.de>
3429 * gcc-interface/cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use.
3431 2012-05-06 Tristan Gingold <gingold@adacore.com>
3433 * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
3435 2012-05-06 Eric Botcazou <ebotcazou@adacore.com>
3437 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
3438 case, use the padded type if the renamed object has an unconstrained
3439 type with default discriminant.
3441 2012-05-06 Eric Botcazou <ebotcazou@adacore.com>
3443 * gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant
3444 conditions with only one bound.
3445 (Raise_Error_to_gnu): Likewise. New function extracted from...
3446 (gnat_to_gnu) <N_Raise_Constraint_Error>: ...here. Call above function
3447 in regular mode only.
3449 2012-05-06 Eric Botcazou <ebotcazou@adacore.com>
3451 * gcc-interface/misc.c (gnat_post_options): Disable caret by default.
3453 2012-05-06 Eric Botcazou <ebotcazou@adacore.com>
3455 * gcc-interface/gigi.h (make_packable_type): Declare.
3456 (make_type_from_size): Likewise.
3457 (relate_alias_sets): Likewise.
3458 (maybe_pad_type): Adjust.
3459 (init_gnat_to_gnu): Delete.
3460 (destroy_gnat_to_gnu): Likewise.
3461 (init_dummy_type): Likewise.
3462 (destroy_dummy_type): Likewise.
3463 (init_gnat_utils): Declare.
3464 (destroy_gnat_utils): Likewise.
3465 (ceil_pow2): New inline function.
3466 * gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2.
3467 <object>: Pass True for the final processing of alignment and size.
3468 <E_Subprogram_Type>: Only create the TYPE_DECL for a padded return
3470 (round_up_to_align): Delete.
3471 (ceil_alignment): Likewise.
3472 (relate_alias_sets): Move to...
3473 (make_aligning_type): Likewise.
3474 (make_packable_type): Likewise.
3475 (maybe_pad_type): Likewise.
3476 (make_type_from_size): Likewise.
3477 * gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete.
3478 (struct pad_type_hash): New type.
3479 (pad_type_hash_table): New static variable.
3480 (init_gnat_to_gnu): Merge into...
3481 (init_dummy_type): Likewise.
3482 (init_gnat_utils): ...this. New function.
3483 (destroy_gnat_to_gnu): Merge into...
3484 (destroy_dummy_type): Likewise.
3485 (destroy_gnat_utils): ...this. New function.
3486 (pad_type_hash_marked_p): New function.
3487 (pad_type_hash_hash): Likewise.
3488 (pad_type_hash_eq): Likewise.
3489 (relate_alias_sets): ...here.
3490 (make_aligning_type): Likewise.
3491 (make_packable_type): Likewise.
3492 (maybe_pad_type): Likewise. Change same_rm_size parameter into
3493 set_rm_size; do not set TYPE_ADA_SIZE if it is false. Do not set
3494 null as Ada size. Do not set TYPE_VOLATILE on the padded type. If it
3495 is complete and has constant size, canonicalize it. Bail out earlier
3496 if a warning need not be issued.
3497 (make_type_from_size): Likewise.
3498 <INTEGER_TYPE>: Bail out if size is too large
3499 (gnat_types_compatible_p): Do not deal with padded types.
3500 (convert): Compare main variants for padded types.
3501 * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils.
3502 (gnat_to_gnu): Do not convert at the end for a call to a function that
3503 returns an unconstrained type with default discriminant.
3504 (Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects.
3505 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise.
3506 Do not use the padded type if it is BLKmode and the inner type is
3509 2012-05-02 Pascal Obry <obry@adacore.com>
3512 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com>
3514 * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
3515 Windows-specific make variable.
3516 (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
3517 (install-gnatlib): Respect the above during installation when set,
3518 and also install any windows import library that has been built.
3519 (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
3520 build a corresponding import library.
3522 2012-04-30 Jan Hubicka <jh@suse.cz>
3524 * gcc-interface/utils.c (rest_of_subprog_body_compilation): Update
3526 (gnat_write_global_declarations): Use finalize_compilation_unit.
3528 2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
3530 * gcc-interface/decl.c (gnat_to_gnu_entity): In type annotation mode,
3531 do not adjust the size of a tagged type if there is a representation
3532 clause on it. Otherwise, round the adjustment up to the alignment
3533 of the first field and use the appropriate helper routine.
3534 (maybe_pad_type): Do not warn in type annotation mode on a tagged type.
3535 (gnat_to_gnu_field): Do not error out under the same circumstances.
3536 (annotate_rep): In type annotation mode, do not adjust the offset of
3537 components of a tagged type with representation clause. Otherwise,
3538 round the adjustment up to the alignment of the first field.
3540 2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
3542 * gcc-interface/utils.c (finish_record_type): Force the traditional GCC
3543 layout for bitfields on the type if it is packed or has a representation
3544 clause and an alternate layout is available.
3546 2012-04-30 Eric Botcazou <ebotcazou@adacore.com>
3548 * gcc-interface/gigi.h (mark_out_of_scope): Delete.
3549 (destroy_gnat_to_gnu): Declare.
3550 (destroy_dummy_type): Likewise.
3551 * gcc-interface/decl.c (mark_out_of_scope): Delete.
3552 * gcc-interface/utils.c (destroy_gnat_to_gnu): New function.
3553 (destroy_dummy_type): Likewise.
3554 * gcc-interface/trans.c (gnat_validate_uc_list): New variable.
3555 (gigi): Call validate_unchecked_conversion on gnat_validate_uc_list
3556 after the translation is completed. Call destroy_gnat_to_gnu and
3557 destroy_dummy_type at the end.
3558 (Subprogram_Body_to_gnu): Do not call mark_out_of_scope.
3559 (gnat_to_gnu) <N_Block_Statement>: Likewise.
3560 <N_Validate_Unchecked_Conversion>: Do not process the node, only push
3561 it onto gnat_validate_uc_list.
3562 (validate_unchecked_conversion): New function.
3564 2012-04-26 Tristan Gingold <gingold@adacore.com>
3566 * gcc-interface/Make-lang.in: Update dependencies.
3567 Remove s-traceb and tracebak objects from gnat1 and gnatbind (not used).
3568 Remove s-tasdeb and s-vaflop rules (not used).
3570 2012-04-26 Olivier Hainque <hainque@adacore.com>
3572 * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Default to
3573 DOUBLE_TYPE_SIZE instead of LONG_DOUBLE_TYPE_SIZE.
3575 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
3577 * a-calend.adb (Day_Of_Week): Keep the internal
3578 usage of UTC_Time_Offset consistent with Time_Of and Split.
3580 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
3582 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Do not freeze
3583 the loop variable while preanalyzing a quantified expression.
3585 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
3587 * a-calend.adb (Split, Time_Of): Rename parameter Is_Ada_05
3588 to Use_TZ to better illustrate its function. Update all
3589 references to the parameter.
3590 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
3591 * a-calend.ads (Split, Time_Of): Rename parameter Is_Ada_05
3592 to Use_TZ to better illustrate its function. Update the related
3594 * a-calend-vms.adb (Split, Time_Of): Rename parameter
3595 Is_Ada_05 to Use_TZ to better illustrate its function. Update
3596 all references to the parameter.
3597 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of.
3598 * a-calend-vms.ads (Split, Time_Of): Rename parameter Is_Ada_05
3599 to Use_TZ to better illustrate its function. Update the related
3601 * a-calfor.adb (Split, Time_Of): Update the call to
3602 Formatting_Operations.Time_Of.
3603 * sysdep.c (__gnat_localtime_tzoff): Dereference pointer
3604 "is_historic" and rewrite the check as a comparison. Add a
3605 comment on flag values.
3607 2012-04-26 Robert Dewar <dewar@adacore.com>
3609 * exp_ch2.adb, sem_ch8.adb: Minor reformatting.
3611 2012-04-26 Vasiliy Fofanov <fofanov@adacore.com>
3613 * a-stzunb-shared.adb, gnat_ugn.texi, a-strunb-shared.adb,
3614 a-strunb-shared.ads, uintp.adb, a-stwiun-shared.adb,
3615 a-stwiun-shared.ads, a-cbhama.ads, vms_data.ads, a-cobove.adb,
3616 a-convec.adb, sem_ch13.adb, a-cbhase.ads: Fix common misuses of the
3617 word "then" where "than" should be used in English.
3619 2012-04-26 Robert Dewar <dewar@adacore.com>
3621 * sem_ch5.adb (Check_Unreachable_Code): Skip past pragmas.
3623 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
3625 * s-finroo.ads: Remove with clause for
3626 Ada.Streams. Type Root_Controlled is now abstract tagged null
3627 record. Remove internal package Stream_Attributes. Root_Controlled
3628 doesn't need stream attribute redeclaration and avoids the
3629 dependency on streams.
3631 2012-04-26 Tristan Gingold <gingold@adacore.com>
3633 * adaint.c (to_host_path_spec): Removed (unused).
3636 2012-04-26 Steve Baird <baird@adacore.com>
3638 * gnat_rm.texi Improve description of Valid_Scalars attribute.
3640 2012-04-26 Ed Schonberg <schonberg@adacore.com>
3642 * sem_ch6.adb (Can_Override_Operator): If the formal is a
3643 generic type the operator cannot be overriding.
3645 2012-04-26 Ed Schonberg <schonberg@adacore.com>
3647 * sem_ch8.adb (Spec_Reloaded_For_Body): Check whether the type
3648 is declared in a package specification, and current unit is the
3649 corresponding package body. The use clauses themselves may be
3650 within a nested package.
3652 2012-04-26 Bob Duff <duff@adacore.com>
3654 * exp_ch2.adb (Param_Entity): Take into account the case where
3655 the type of the entry parameter has a representation clause.
3657 2012-04-26 Ed Schonberg <schonberg@adacore.com>
3659 * gnat_ugn.texi: Tweak dimensionality doc.
3661 2012-04-26 Robert Dewar <dewar@adacore.com>
3663 * sem_eval.adb: Minor reformatting.
3665 2012-04-26 Robert Dewar <dewar@adacore.com>
3667 * einfo.adb, einfo.ads, sem_res.adb, sem_ch4.adb,
3668 sem_eval.adb: Minor reformatting.
3670 2012-04-26 Thomas Quinot <quinot@adacore.com>
3672 * freeze.adb: Minor change in error wording.
3674 2012-04-26 Ed Schonberg <schonberg@adacore.com>
3676 * gnat_ugn.texi: Documentation on dimensional analysis.
3678 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
3680 * einfo.adb, einfo.ads: Remove synthesized attribute
3681 Proper_First_Index along with its associations in various nodes.
3682 (Proper_First_Index): Removed.
3683 * sem_ch4.adb (Analyze_Slice): Alphabetize constants. Add new
3684 local variable Index_Type. The index type of a string literal
3685 subtype is that of the stored low bound.
3686 * sem_eval (Get_Static_Length): Remove the use of Proper_First_Index.
3687 * sem_res.adb (Resolve_Slice): Alphabetize constants. Add
3688 new local variable Index_Type. The index type of a
3689 string literal subtype is that of the stored low bound.
3690 (Set_String_Literal_Subtype): Code reformatting.
3692 2012-04-26 Robert Dewar <dewar@adacore.com>
3694 * exp_aggr.adb: Minor reformatting.
3696 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
3698 * exp_ch7.adb (Expand_Cleanup_Actions): Update the call to
3699 Requires_Cleanup_Actions.
3700 * exp_util.adb (Requires_Cleanup_Actions (List_Id; Boolean;
3701 Boolean)): Rename formal parameter For_Package to Lib_Level to
3702 better reflect its purpose. Update the related comment and all
3703 occurrences of For_Package in the body.
3704 (Requires_Cleanup_Actions
3705 (Node_Id; Boolean)): Add new formal parameter Lib_Level. Add
3706 local constant At_Lib_Level to keep monitor whether the path
3707 taken from the top-most context to the current construct involves
3708 package constructs. Update all calls to Requires_Cleanup_Actions.
3709 * exp_util.ads (Requires_Cleanup_Actions): Add new formal
3710 parameter Lib_Level and associated comment.
3712 2012-04-26 Ed Schonberg <schonberg@adacore.com>
3714 * sem_ch6.adb (Process_Formals): If the type of the formal is
3715 a non null access type, mark the generated subtype as having a
3716 delayed freeze only if the designated type is not frozen yet.
3718 2012-04-26 Vincent Celier <celier@adacore.com>
3720 * prj-attr.adb: New package Clean with attributes
3721 Object_Artifact_Extensions and Source_Artifact_Extensions.
3722 * prj-nmsc.adb (Process_Clean): Process new package Clean
3723 * prj.ads (Language_Config): New components
3724 Clean_Object_Artifacts and Clean_Source_Artifacts.
3725 * snames.ads-tmpl: New standard names Clean,
3726 Object_Artifact_Extensions and Source_Artifact_Extensions.
3728 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com>
3730 * einfo.adb (Proper_First_Index): Moved from Sem_Util.
3731 * einfo.ads: Add new synthesized attribute Proper_First_Index
3732 along with usage in nodes.
3733 (Proper_First_Index): Moved from Sem_Util.
3734 * sem_util.ads, sem_util.adb (Proper_First_Index): Moved to Einfo.
3736 2012-04-26 Gary Dismukes <dismukes@adacore.com>
3738 * layout.adb (Layout_Component_List): Test for the case of a
3739 single variant and the size of its component list was computed
3740 as an integer literal, and use that size (which is in bits)
3741 as is rather than converting to storage units.
3743 2012-04-26 Robert Dewar <dewar@adacore.com>
3745 * exp_aggr.adb: Minor reformatting.
3747 2012-04-26 Robert Dewar <dewar@adacore.com>
3749 * sem_util.adb: Minor reformatting.
3751 2012-04-26 Thomas Quinot <quinot@adacore.com>
3753 * exp_aggr.adb, exp_pakd.adb (Setup_Inline_Packed_Array_Reference,
3754 Packed_Array_Aggregate_Handled.Get_Component_Val):
3755 Reverse bit numbering within PAT when Reverse_Storage_Order
3756 applies to the enclosing record.
3758 2012-04-26 Thomas Quinot <quinot@adacore.com>
3760 * freeze.adb (Freeze_Record_Type): Improve error message for
3761 Scalar_Storage_Order inconsistent with Bit_Order.
3763 2012-04-25 Gary Dismukes <dismukes@adacore.com>
3765 * exp_ch9.adb: Add comments on the usage of the
3766 lock-free data structures.
3768 2012-04-25 Vincent Pucci <pucci@adacore.com>
3770 * exp_intr.adb (Expand_Shift): Convert the left
3771 operand and the operator when the type of the call differs from
3772 the type of the operator.
3774 2012-04-25 Geert Bosch <bosch@adacore.com>
3776 * stand.ads: Minor comment fix.
3778 2012-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3780 * sem_ch4.adb (Analyze_Slice): Handle the case where the prefix
3781 is a string literal. Retrieve the first index from the base type
3782 when slicing a string literal.
3783 * sem_ch12.adb (Check_Private_View): Move the initialization
3784 of the type inside the loop to reflect the changing index.
3785 * sem_eval.adb (Eval_Relational_Op): Retrieve the first index
3786 from the base type when dealing with a string literal.
3787 * sem_res.adb (Resolve_Slice): Retrieve the first index from
3788 the base type when slicing a string literal.
3789 * sem_util.adb (Is_Internally_Generated_Renaming): New routine.
3790 (Is_Object_Reference): String literals may act
3791 as object references only when they are renamed internally.
3792 (Proper_First_Index): New routine.
3793 * sem_util.ads (Proper_First_Index): New routine.
3795 2012-04-25 Robert Dewar <dewar@adacore.com>
3797 * sem_ch3.adb, csinfo.adb, lib-writ.adb, sem_ch12.adb,
3798 lib-xref.adb: Minor reformatting.
3800 2012-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3802 * exp_ch9.adb: Rename Lock_Free_Sub_Type
3803 to Lock_Free_Subprogram. Remove type Subprogram_Id.
3804 Rename LF_Sub_Table to Lock_Free_Subprogram_Table.
3805 (Allow_Lock_Free_Implementation): Renamed to
3806 Allows_Lock_Free_Implementation. Update the comment on
3807 lock-free restrictions. Code clean up and restructuring.
3808 (Build_Lock_Free_Protected_Subprogram_Body): Update the
3809 profile and related comments. Code clean up and restructuring.
3810 (Build_Lock_Free_Unprotected_Subprogram_Body): Update the
3811 profile and related comments. Code clean up and restructuring.
3814 2012-04-25 Vincent Celier <celier@adacore.com>
3816 * sem_ch12.adb (Inherit_Context): Compare library units, not
3817 names of units, when checking if a unit is already in the context.
3819 2012-04-25 Thomas Quinot <quinot@adacore.com>
3821 * sem_ch3.adb: Reverse_Storage_Order must be propagated to
3822 untagged derived record types.
3824 2012-04-25 Ed Schonberg <schonberg@adacore.com>
3826 * lib-xref.adb: Adjust position of end label.
3828 2012-04-22 Jan Hubicka <jh@suse.cz>
3830 * gcc-interface/utils.c (gnat_write_global_declarations): Do not mark
3833 2012-04-20 Jan Hubicka <jh@suse.cz>
3835 * gcc-interface/utils.c (gnat_write_global_declarations): Update for new
3836 force_output placement.
3838 2012-04-14 Jan Hubicka <jh@suse.cz>
3840 * gcc-interface/trans.c (finalize_nrv): Update field referenced for new
3841 cgraph/varpool layout.
3843 2012-04-09 Mike Stump <mikestump@comcast.net>
3845 * a-assert.ads: Remove execute permission.
3846 * a-chacon.ads: Likewise.
3847 * a-coteio.ads: Likewise.
3848 * a-envvar.ads: Likewise.
3849 * a-exetim-mingw.ads: Likewise.
3850 * a-fzteio.ads: Likewise.
3851 * a-izteio.ads: Likewise.
3852 * a-lcteio.ads: Likewise.
3853 * a-llctio.ads: Likewise.
3854 * a-scteio.ads: Likewise.
3855 * a-suenco.ads: Likewise.
3856 * a-suenst.ads: Likewise.
3857 * a-suewst.ads: Likewise.
3858 * a-suezst.ads: Likewise.
3859 * a-tirsfi.ads: Likewise.
3860 * a-wichha.ads: Likewise.
3861 * a-zchara.ads: Likewise.
3862 * a-zchhan.ads: Likewise.
3863 * a-zchuni.ads: Likewise.
3864 * a-zrstfi.ads: Likewise.
3865 * aspects.ads: Likewise.
3866 * g-byorma.ads: Likewise.
3867 * g-decstr.ads: Likewise.
3868 * g-encstr.ads: Likewise.
3869 * g-spchge.ads: Likewise.
3870 * g-u3spch.ads: Likewise.
3871 * g-wispch.ads: Likewise.
3872 * g-zspche.ads: Likewise.
3873 * namet-sp.ads: Likewise.
3874 * s-os_lib.ads: Likewise.
3875 * s-regexp.ads: Likewise.
3876 * s-regpat.ads: Likewise.
3877 * s-string.ads: Likewise.
3878 * s-tasloc.ads: Likewise.
3879 * s-utf_32.ads: Likewise.
3880 * sem_aux.ads: Likewise.
3881 * a-assert.adb: Likewise.
3882 * a-chacon.adb: Likewise.
3883 * a-envvar.adb: Likewise.
3884 * a-exetim-mingw.adb: Likewise.
3885 * a-suenco.adb: Likewise.
3886 * a-suenst.adb: Likewise.
3887 * a-suewst.adb: Likewise.
3888 * a-suezst.adb: Likewise.
3889 * a-tirsfi.adb: Likewise.
3890 * a-wichha.adb: Likewise.
3891 * a-zchhan.adb: Likewise.
3892 * a-zchuni.adb: Likewise.
3893 * a-zrstfi.adb: Likewise.
3894 * aspects.adb: Likewise.
3895 * g-byorma.adb: Likewise.
3896 * g-decstr.adb: Likewise.
3897 * g-encstr.adb: Likewise.
3898 * g-spchge.adb: Likewise.
3899 * g-u3spch.adb: Likewise.
3900 * g-wispch.adb: Likewise.
3901 * g-zspche.adb: Likewise.
3902 * namet-sp.adb: Likewise.
3903 * s-except.adb: Likewise.
3904 * s-inmaop-vxworks.adb: Likewise.
3905 * s-os_lib.adb: Likewise.
3906 * s-regexp.adb: Likewise.
3907 * s-regpat.adb: Likewise.
3908 * s-string.adb: Likewise.
3909 * s-tasloc.adb: Likewise.
3910 * s-utf_32.adb: Likewise.
3911 * s-wchcon.adb: Likewise.
3912 * sem_aux.adb: Likewise.
3914 2012-04-02 Robert Dewar <dewar@adacore.com>
3916 * s-atopri.ads: Minor reformatting.
3918 2012-04-02 Thomas Quinot <quinot@adacore.com>
3920 * sem_util.adb: Minor reformatting, minor code cleanup.
3922 2012-04-02 Ed Schonberg <schonberg@adacore.com>
3924 * lib-xref.adb (Generate_Reference): For a reference to an
3925 operator symbol, set the sloc to point to the first character
3926 of the operator name, and not to the initial quaote.
3927 (Output_References): Ditto for the definition of an operator
3930 2012-04-02 Vincent Celier <celier@adacore.com>
3932 * ali.adb (Scan_Ali): Recognize Z lines. Set
3933 Implicit_With_From_Instantiation to True in the With_Record for
3935 * ali.ads (With_Record): New Boolean component
3936 Implicit_With_From_Instantiation, defaulted to False.
3937 * csinfo.adb: Indicate that Implicit_With_From_Instantiation
3939 * lib-writ.adb (Write_ALI): New array Implicit_With.
3940 (Collect_Withs): Set Implicit_With for the unit is it is not Yes.
3941 (Write_With_Lines): Write a Z line instead of a W line if
3942 Implicit_With is Yes for the unit.
3943 * sem_ch12.adb (Inherit_Context): Only add a unit in the context
3944 if it is not there yet.
3945 * sinfo.ads: New flag Implicit_With_From_Instantiation (Flag12)
3948 2012-04-02 Yannick Moy <moy@adacore.com>
3950 * osint.adb, osint.ads (Add_Default_Search_Dirs): Add library
3951 search dirs in file specified with option -gnateO.
3953 2012-04-02 Robert Dewar <dewar@adacore.com>
3955 * sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb: Minor
3958 2012-04-02 Olivier Hainque <hainque@adacore.com>
3960 * g-sse.ads: Add x86-solaris and x86_64-darwin to the set of
3961 platforms where the use of this spec is supported. Add current
3962 year to the copyright notice.
3963 * gcc-interfaces/Makefile.in: Add g-sse.o and g-ssvety.o to
3964 EXTRA_GNATRTL_NONTASKING_OBJS on x86 32/64 targets that support
3965 it and where they were missing (x86-solaris, x86-freebsd,
3966 x86_64-freebsd, and x86-darwin).
3968 2012-04-02 Gary Dismukes <dismukes@adacore.com>
3970 * bindgen.adb (Gen_Ada_Init): When compiling for the AAMP small
3971 library, where we no longer suppress the Standard_Library,
3972 generate an empty body rather than the usual generation of
3973 assignments to imported globals, since those aren't present in
3976 2012-04-02 Ed Schonberg <schonberg@adacore.com>
3978 * sinfo.ads: Minor documentation fix.
3980 2012-04-02 Hristian Kirtchev <kirtchev@adacore.com>
3982 * sem_res.adb (Resolve_Conditional_Expression): Add local variables
3983 Else_Typ and Then_Typ. Add missing type conversions to the "then" and
3984 "else" expressions when their respective types are scalar.
3986 2012-04-02 Vincent Pucci <pucci@adacore.com>
3988 * exp_ch9.adb: Reordering of the local subprograms. New Table
3989 for the lock free implementation that maps each protected
3990 subprograms with the protected component it references.
3991 (Allow_Lock_Free_Implementation): New routine. Check if
3992 the protected body enables the lock free implementation.
3993 (Build_Lock_Free_Protected_Subprogram_Body): New routine.
3994 (Build_Lock_Free_Unprotected_Subprogram_Body): New routine.
3995 (Comp_Of): New routine.
3996 * Makefile.rtl: Add s-atopri.o
3997 * debug.adb: New compiler debug flag -gnatd9 for lock free
3999 * rtsfind.ads: RE_Atomic_Compare_Exchange_8,
4000 RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32,
4001 RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8,
4002 RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, RE_Uint8,
4003 RE_Uint16, RE_Uint32, RE_Uint64 added.
4004 * s-atropi.ads: New file. Defines atomic primitives used
4005 by the lock free implementation.
4007 2012-04-02 Emmanuel Briot <briot@adacore.com>
4009 * g-expect.adb (Expect_Internal): Fix leak of the input file descriptor.
4011 2012-04-02 Hristian Kirtchev <kirtchev@adacore.com>
4013 * exp_ch4.adb (Expand_N_Quantified_Expression): Reimplemented.
4014 The expansion no longer uses the copy of the original QE created
4016 * sem.adb (Analyze): Add processing for loop parameter specifications.
4017 * sem_ch4.adb (Analyze_Quantified_Expression): Reimplemented. The
4018 routine no longer creates a copy of the original QE. All
4019 constituents of a QE are now preanalyzed and resolved.
4020 * sem_ch5.adb (Analyze_Iteration_Scheme): Remove the guard which
4021 bypasses all processing when the iteration scheme is related to a
4022 QE. Relovate the code which analyzes loop parameter specifications
4023 to a separate routine. (Analyze_Iterator_Specification):
4024 Preanalyze the iterator name. This action was originally
4025 done in Analyze_Iteration_Scheme. Update the check which
4026 detects an iterator specification in the context of a QE.
4027 (Analyze_Loop_Parameter_Specification): New routine. This
4028 procedure allows for a stand-alone analysis of a loop parameter
4029 specification without the need of a parent iteration scheme. Add
4030 code to update the type of the loop variable when the range
4031 generates an itype and the context is a QE.
4032 (Pre_Analyze_Range): Renamed to Preanalyze_Range. Update all references
4034 * sem_ch5.ads: Code reformatting.
4035 (Analyze_Loop_Parameter_Specification): New routine.
4036 * sem_ch6.adb (Fully_Conformant_Expressions): Detect a case
4037 when establishing conformance between two QEs utilizing different
4039 * sem_res.adb (Proper_Current_Scope): New routine.
4040 (Resolve): Do not resolve a QE as there is nothing to be done now.
4041 Ignore any loop scopes generated for QEs when detecting an expression
4042 function as the scopes are cosmetic and do not appear in the tree.
4043 (Resolve_Quantified_Expression): Removed. All resolution of
4044 QE constituents is now performed during analysis. This ensures
4045 that loop variables appearing in array aggregates are properly
4048 2012-04-02 Ed Schonberg <schonberg@adacore.com>
4050 * sem_util.adb (Build_Default_Subtype): If the base type is
4051 private and its full view is available, use the full view in
4052 the subtype declaration.
4054 2012-04-02 Jose Ruiz <ruiz@adacore.com>
4056 * gnat_ugn.texi: Add some minimal documentation about how to
4057 use GNATtest for cross platforms.
4059 2012-04-02 Vincent Celier <celier@adacore.com>
4061 * opt.ads (Object_Path_File_Name): New variable.
4062 * prj-attr.adb: New Compiler attribute Object_Path_Switches.
4063 * prj-nmsc.adb (Process_Compiler): Recognize new attribute
4064 Object_Path_Switches.
4065 * snames.ads-tmpl: New standard name Object_Path_Switches.
4066 * switch-c.adb (Scan_Front_End_Switches): Recognize new switch
4067 -gnateO= and put its value in Opt.Object_Path_File_Name.
4069 2012-04-02 Hristian Kirtchev <kirtchev@adacore.com>
4071 * exp_ch7.adb (Process_Declarations): Detect a case where
4072 a source object was initialized by another source object,
4073 but the expression was rewritten as a class-wide conversion
4074 of Ada.Tags.Displace.
4075 * exp_util.adb (Initialized_By_Ctrl_Function): Removed.
4076 (Is_Controlled_Function_Call): New routine.
4077 (Is_Displacement_Of_Ctrl_Function_Result): Removed.
4078 (Is_Displacement_Of_Object_Or_Function_Result): New routine.
4079 (Is_Source_Object): New routine.
4080 (Requires_Cleanup_Actions): Detect a case where a source object was
4081 initialized by another source object, but the expression was rewritten
4082 as a class-wide conversion of Ada.Tags.Displace.
4083 * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed.
4084 (Is_Displacement_Of_Object_Or_Function_Result): New routine.
4086 2012-04-02 Ed Schonberg <schonberg@adacore.com>
4088 * sem_res.adb (Resolve_Call): A call to an expression function
4089 does not freeze if it appears in a different scope from the
4090 expression function itself. Such calls appear in the generated
4091 bodies of other expression functions, or in pre/postconditions
4092 of subsequent subprograms.
4094 2012-04-02 Yannick Moy <moy@adacore.com>
4096 * lib-xref-alfa.adb: Code clean up.
4098 2012-04-02 Ed Schonberg <schonberg@adacore.com>
4100 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Do not suppress
4101 style checks, because the subprogram instance itself may contain
4102 violations of syle rules.
4103 * style.adb (Missing_Overriding): Check for missing overriding
4104 indicator on a subprogram instance.
4106 2012-04-02 Hristian Kirtchev <kirtchev@adacore.com>
4108 * sem_ch6.adb (Last_Implicit_Declaration): New routine.
4109 (Process_PPCs): Insert the body of _postconditions after the
4110 last internally generated declaration. This ensures that actual
4111 subtypes created for formal parameters are visible and properly
4112 frozen as _postconditions may reference them.
4114 2012-04-02 Robert Dewar <dewar@adacore.com>
4116 * einfo.adb (First_Component_Or_Discriminant) Now applies to
4117 all types with discriminants, not just records.
4118 * exp_attr.adb (Expand_N_Attribute): Add Scalar_Values handling
4119 for arrays, scalars and non-variant records.
4120 * sem_attr.adb (Analyze_Attribute): Handle Valid_Scalars
4121 * sem_attr.ads (Valid_Scalars): Update description
4122 * sem_util.ads, sem_util.adb (No_Scalar_Parts): New function.
4124 2012-03-31 Eric Botcazou <ebotcazou@adacore.com>
4127 2012-03-25 Eric Botcazou <ebotcazou@adacore.com>
4129 * gcc-interface/decl.c (SS_MARK_NAME): New define.
4130 (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
4131 whose name is SS_MARK_NAME.
4133 2012-03-30 Robert Dewar <dewar@adacore.com>
4135 * exp_ch5.adb, sem_util.adb, exp_ch4.adb: Minor comment updates.
4137 2012-03-30 Yannick Moy <moy@adacore.com>
4139 * lib-xref-alfa.adb (Add_Alfa_File): Treat possibly 2 units at the same
4140 time, putting all scopes in the same Alfa file.
4141 (Add_Alfa_Xrefs): Correct errors in comparison function. Correct value
4143 (Collect_Alfa): Possibly pass 2 units to Add_Alfa_File.
4145 2012-03-30 Hristian Kirtchev <kirtchev@adacore.com>
4147 * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Handle a case where
4148 a build-in-place call appears as Prefix'Reference'Reference.
4150 2012-03-30 Yannick Moy <moy@adacore.com>
4152 * lib-xref-alfa.adb: Minor refactoring to remove internal package.
4154 2012-03-30 Hristian Kirtchev <kirtchev@adacore.com>
4156 * sem_ch5.adb (Analyze_Iteration_Scheme): Preanalyze the subtype
4157 definition of a loop when the context is a quantified expression.
4159 2012-03-30 Vincent Celier <celier@adacore.com>
4161 * prj.ads: Minor comment update.
4163 2012-03-30 Yannick Moy <moy@adacore.com>
4165 * lib-xref-alfa.adb, alloc.ads, lib-xref.ads: Minor addition of
4166 comments and refactoring.
4168 2012-03-30 Robert Dewar <dewar@adacore.com>
4170 * lib-xref.adb, lib-xref-alfa.adb: Minor reformatting & code
4173 2012-03-30 Yannick Moy <moy@adacore.com>
4175 * lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit
4176 instead of Get_Source_Unit to get file for reference.
4177 (Traverse_Compilation_Unit): Do not add scopes for generic units.
4178 * lib-xref.adb (Generate_Reference): Use Get_Code_Unit instead
4179 of Get_Source_Unit to get file for reference.
4180 * sem_ch12.adb (Analyze_Package_Instantiation): Enable
4181 instantiation in Alfa mode.
4183 2012-03-30 Hristian Kirtchev <kirtchev@adacore.com>
4185 * exp_ch7.adb (Process_Declarations): Replace
4186 the call to Is_Null_Access_BIP_Func_Call with
4187 Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
4188 * exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed.
4189 (Is_Secondary_Stack_BIP_Func_Call): New routine.
4190 (Requires_Cleanup_Actions): Replace
4191 the call to Is_Null_Access_BIP_Func_Call with
4192 Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
4193 * exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed.
4194 (Is_Secondary_Stack_BIP_Func_Call): New routine.
4196 2012-03-30 Yannick Moy <moy@adacore.com>
4198 * lib-xref-alfa.adb, lib-xref.adb: Code clean ups.
4200 2012-03-30 Gary Dismukes <dismukes@adacore.com>
4202 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a
4203 loop entity which is rewritten as a renaming
4204 of the indexed array, explicitly mark the entity as needing
4205 debug info so that Materialize entity will be set later by
4206 Debug_Renaming_Declaration when the renaming is expanded.
4208 2012-03-30 Robert Dewar <dewar@adacore.com>
4210 * sem_attr.ads: Update comment.
4212 2012-03-30 Vincent Celier <celier@adacore.com>
4214 * prj.ads: New Dependency_Kind: ALI_Closure.
4216 2012-03-30 Thomas Quinot <quinot@adacore.com>
4218 * exp_pakd.adb: Minor reformatting.
4220 2012-03-30 Yannick Moy <moy@adacore.com>
4222 * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence
4223 of compilation unit for unit in Sdep_Table.
4225 2012-03-30 Thomas Quinot <quinot@adacore.com>
4227 * freeze.adb (Freeze_Record_Type): For a type with reversed bit
4228 order and reversed storage order, disable front-end relayout.
4230 2012-03-25 Eric Botcazou <ebotcazou@adacore.com>
4232 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Copy
4233 the TYPE_PACKED flag from the base type.
4235 2012-03-25 Eric Botcazou <ebotcazou@adacore.com>
4237 * gcc-interface/decl.c (SS_MARK_NAME): New define.
4238 (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities
4239 whose name is SS_MARK_NAME.
4241 2012-03-25 Eric Botcazou <ebotcazou@adacore.com>
4243 * gcc-interface/utils.c (add_parallel_type): Take a TYPE instead of a
4244 DECL and adjust. Move around.
4245 (has_parallel_type): New predicate.
4246 (rest_of_record_type_compilation): Return early if the type already
4247 has a parallel type.
4248 * gcc-interface/gigi.h (add_parallel_type): Adjust.
4249 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes.
4251 2012-03-25 Eric Botcazou <ebotcazou@adacore.com>
4253 * gcc-interface/utils.c (finish_record_type): Return early for padded
4256 2012-03-20 Arnaud Charlet <charlet@adacore.com>
4258 * hlo.ads, hlo.adb: Removed, no longer used.
4259 * gcc-interface/Make-lang.in: Remove hlo.o. Update dependencies.
4260 * gcc-interface/Makefile.in: Remove EXTRA_LIBGNAT_SRCS (temporarly)
4261 and compute it from EXTRA_LIBGNAT_OBJS.
4262 Clean up comments, reorder LIBGNAT_SRCS and LIBGNAT_OBJS.
4264 2012-03-20 Yannick Moy <moy@adacore.com>
4266 * gnat_rm.texi, sem_attr.ads: Update documentation.
4268 2012-03-19 Yannick Moy <moy@adacore.com>
4270 * sem_ch6.adb: Minor code clean up.
4272 2012-03-19 Vincent Celier <celier@adacore.com>
4274 * make.adb (Scan_Make_Arg): Make sure all significant -m switches
4275 on the command line are counted.
4277 2012-03-19 Robert Dewar <dewar@adacore.com>
4279 * sem_elab.adb (Generate_Elab_Warnings): Fix spec, fix attribute
4282 2012-03-19 Robert Dewar <dewar@adacore.com>
4284 * par-ch4.adb (Check_Bad_Exp): New procedure
4286 2012-03-19 Robert Dewar <dewar@adacore.com>
4288 * exp_attr.adb, sem_attr.adb, sem_attr.ads, snames.ads-tmpl: Add
4289 initial framework for Valid_Scalars attribute.
4291 2012-03-19 Robert Dewar <dewar@adacore.com>
4293 * scng.adb (Scan): Recognize incorrect preprocessor directive
4295 2012-03-19 Robert Dewar <dewar@adacore.com>
4297 * atree.adb (Allocate_Initialize_Node): Use Num_Extension_Nodes
4298 * atree.ads (Num_Extension_Nodes): New variable
4299 * debug.adb: New debug flag -gnatd.N
4300 * gnat1drv.adb (Adjust_Global_Switches): Adjust
4301 Num_Extension_Nodes if -gnatd.N set
4303 2012-03-19 Eric Botcazou <ebotcazou@adacore.com>
4305 * einfo.ads: Minor update to First_Rep_Item and Has_Gigi_Rep_Item
4308 2012-03-19 Robert Dewar <dewar@adacore.com>
4310 * opt.ads: Remove HLO_Active flag.
4311 * sem.adb: Remove call of high level optimizer.
4312 * sem.ads (New_Nodes_OK): Removed.
4313 * sem_ch10.adb: Remove references to New_Nodes_OK.
4314 * switch-c.adb: Remove handling of -gnatH switch.
4316 2012-03-19 Yannick Moy <moy@adacore.com>
4318 * sem_ch6.adb (Check_Subprogram_Contract): Do not emit warnings
4319 on trivially True or False postconditions and Ensures components
4322 2012-03-19 Robert Dewar <dewar@adacore.com>
4324 * gnat_ugn.texi: Fix index entry for -gnatei (now we have
4327 2012-03-19 Hristian Kirtchev <kirtchev@adacore.com>
4329 * sem_ch3.adb (Get_Discriminant_Value): Instead of looking
4330 at the immediate correcponsing discriminant, traverse a
4331 potential chain of discriminants produced by type derivations.
4332 (Root_Corresponding_Discriminant): Traverse a chain of inherited
4333 discriminants and return the topmost discriminant.
4335 2012-03-19 Bob Duff <duff@adacore.com>
4337 * debug.adb: Minor comment change.
4338 * gnat_ugn.texi: Update documentation for elaboration regarding
4341 2012-03-19 Gary Dismukes <dismukes@adacore.com>
4343 * exp_ch3.adb (Expand_N_Object_Declaration): In
4344 the case of an object of a class-wide interface type, where the
4345 declaration is rewritten as a renaming, call Set_Debug_Info_Needed
4346 on the renaming entity so that Materialize_Entity will be
4347 set. Also, change existing call (for other than interface cases)
4348 to call Set_Debug_Info_Needed rather than Set_Needs_Debug_Info
4349 (as specified for that flag).
4351 2012-03-19 Hristian Kirtchev <kirtchev@adacore.com>
4353 * sem_ch4.adb (Analyze_Allocator): Detect an allocator generated
4354 by the build-in-place machinery where the designated type is
4355 indefinite, but the underlying type is not. Do not emit errors
4356 related to missing initialization in this case.
4358 2012-03-19 Robert Dewar <dewar@adacore.com>
4360 * gnat_ugn.texi: Add documentation for -gnateinnn switch.
4361 * sem_elab.adb, put_alfa.adb, lib-xref-alfa.adb: Minor reformatting.
4362 * sem_prag.adb: Minor comment update.
4364 2012-03-15 Robert Dewar <dewar@adacore.com>
4366 * errout.ads: Add entry for translating -gnateinn to
4367 /MAX_INSTANTIATIONS for VMS.
4368 * hostparm.ads (Max_Instantiations): Moved to Opt.
4369 * opt.ads (Maximum_Instantiations): Moved from Hostparm, and renamed.
4370 * sem_ch12.adb (Maximum_Instantiations): New name of
4371 Max_Instantiations (Analyze_Package_Instantiation): Change error
4372 msg for too many instantiations (mention -gnateinn switch).
4373 * switch-c.adb (Scan_Front_End_Switches): Implement -gnateinn switch.
4374 * switch.ads: Minor comment update.
4375 * usage.adb (Usage): Output line for -maxeinn switch.
4376 * vms_data.ads: Add entry for MAX_INSTANTIATIONS (-gnateinn).
4378 2012-03-15 Yannick Moy <moy@adacore.com>
4380 * alfa.ads Update the decription of ALI sections.
4381 (Alfa_File_Record): Add a component Unit_File_Name to store the
4382 unit file name for subunits.
4383 * get_alfa.adb, put_alfa.adb Adapt to the possible presence of
4385 * lib-xref-alfa.adb (Add_Alfa_File): For subunits, retrieve the
4386 file name of the unit.
4388 2012-03-15 Yannick Moy <moy@adacore.com>
4390 * sem_ch6.adb (Check_Subprogram_Contract): Do
4391 not issue warning on missing 'Result in postcondition if all
4392 postconditions and contract-cases already get a warning for only
4393 referring to pre-state.
4395 2012-03-15 Bob Duff <duff@adacore.com>
4397 * debug.adb: Add new debug switch -gnatd.U, which disables the
4398 support added below, in case someone trips over a cycle, and needs
4400 * sem_attr.adb (Analyze_Access_Attribute):
4401 Treat Subp'Access as a call for elaboration purposes.
4402 * sem_elab.ads, sem_elab.adb (Check_Elab_Call): Add support
4405 2012-03-15 Vincent Pucci <pucci@adacore.com>
4407 * sem.ads, sem.adb (Preanalyze): New routine.
4408 * sem_ch4.adb (Analyze_Quantified_Expression): Call to the
4409 Preanalyze routine in Sem added. Renaming of Needs_Expansion
4410 into Need_Preanalysis.
4411 * sem_ch6.adb (Preanalyze): Removed.
4413 2012-03-15 Robert Dewar <dewar@adacore.com>
4415 * sem_ch4.adb (Analyze_Quantified_Expression): Add comment.
4416 * sem_prag.adb: Minor comment additions.
4417 * sem_attr.adb (Check_First_Last_Valid): Make sure prefix type
4420 2012-03-15 Vincent Pucci <pucci@adacore.com>
4422 * sem_ch4.adb (Analyze_Quantified_Expression):
4423 Preanalyze the condition when the quantified expression will be
4426 2012-03-15 Yannick Moy <moy@adacore.com>
4428 * sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, sem_ch6.adb,
4429 sem_warn.adb: Minor refactoring, renaming Case_Pragma in CTC_Pragma,
4430 to refer to both Test_Case pragma and Contract_Case pragma (same
4431 acronym as in Spec_CTC_List).
4433 2012-03-15 Robert Dewar <dewar@adacore.com>
4435 * sem_prag.adb, sem_prag.ads, sem_util.ads, sem_attr.adb, sem_ch6.adb,
4436 sem_warn.adb: Minor reformatting.
4438 2012-03-15 Hristian Kirtchev <kirtchev@adacore.com>
4440 * exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over
4441 selector names as the function call always appears at the top selected
4444 2012-03-15 Ed Schonberg <schonberg@adacore.com>
4446 * sem_ch12.adb (Validate_Access_Subprogram_Instance): keep
4447 Mode_Conformance check for older versions of the language.
4449 2012-03-15 Yannick Moy <moy@adacore.com>
4451 * gnat_ugn.texi Document the extension of option -gnatw.t.
4452 * sem_ch3.adb (Analyze_Declaration): Check for suspicious
4453 contracts only after contract cases have been semantically
4455 * sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures
4456 components of contract cases for detecting suspicious contracts.
4458 2012-03-15 Yannick Moy <moy@adacore.com>
4460 * aspects.adb, aspects.ads (Aspect_Id): New GNAT aspect
4461 Aspect_Contract_Case.
4462 * gnat_rm.texi Document the new pragma/aspect
4463 Contract_Case. Correct the documentation of the existing
4464 pragma/aspect Test_Case with the new semantics.
4465 * sem_attr.adb (Analyze_Attribute): Allow use of 'Result in the
4466 Ensures component of a Contract_Case pragma.
4467 * sem_ch13.adb (Analyze_Aspect_Specifications): Check new aspect
4468 and translate it into a pragma.
4469 (Check_Aspect_At_Freeze_Point): Take into account the new aspect.
4470 * sem_ch3.adb, sinfo.adb, sinfo.ads Renaming of TC (for test case)
4471 into CTC (for contract and test case).
4472 * sem_ch6.adb (Process_PPCs): Generate Check pragmas from
4473 Contract_Case pragmas, similarly to what is done already for
4475 * sem_prag.adb, sem_prag.ads (Check_Contract_Or_Test_Case):
4476 Renaming of Check_Test_Case.
4477 (Analyze_Pragma, Sig_Flags): Take into account the new pragma.
4478 * sem_util.adb, sem_util.ads Renaming to take into account the
4479 new pragma, so that functions which applied only to Test_Case
4480 now apply to both Test_Case and Contract_Case.
4481 * par-prag.adb, sem_warn.adb, snames.ads-tmpl Take into account
4484 2012-03-15 Robert Dewar <dewar@adacore.com>
4486 * sem_ch6.ads: Minor comment updates.
4487 * sem_ch12.adb: Minor comment clarification.
4489 2012-03-15 Robert Dewar <dewar@adacore.com>
4491 * sem_ch5.adb: Minor reformatting.
4493 2012-03-15 Ed Schonberg <schonberg@adacore.com>
4495 * exp_ch3.adb (Expand_N_Object_Declaration): When rewriting the
4496 declaration of a class-wide object, retain the Ekind to prevent
4497 subsequent misuse of constants.
4499 2012-03-15 Yannick Moy <moy@adacore.com>
4501 * gnat_rm.texi, gnat_ugn.texi: Minor correction of invariant
4504 2012-03-15 Hristian Kirtchev <kirtchev@adacore.com>
4506 * exp_util.adb (Initialized_By_Ctrl_Function): Add code to
4507 process the case when a function call appears in object.operation
4510 2012-03-15 Ed Schonberg <schonberg@adacore.com>
4512 * sem_ch6.ads, sem_ch6.adb (Check_Subtype_Conformant): add
4513 Get_Inst formal, so that conformance within an instantiation
4514 follows renamings of formals. This is similar to what is already
4515 done in Check_Mode_conformant.
4516 * sem_ch12.adb (Vailidate_Access_Subprogram_Instance): check that
4517 formal and actual are subtype conformant. Previously only mode
4518 conformance was required.
4520 2012-03-15 Robert Dewar <dewar@adacore.com>
4522 * par-ch6.adb, einfo.ads, sem_eval.adb, sem_eval.ads,
4523 sem_case.adb: Minor reformatting.
4525 2012-03-15 Robert Dewar <dewar@adacore.com>
4527 * exp_attr.adb (Expand_N_Attribute_Reference): Add handling
4528 of First_Valid/Last_Valid.
4529 * sem_attr.adb (Check_First_Last_Valid): New procedure
4530 (Analyze_Attribute): Add handling of First_Valid and Last_Valid
4531 (Eval_Attribute): ditto.
4532 * snames.ads-tmpl: Add entries for First_Valid and Last_Valid.
4534 2012-03-15 Ed Schonberg <schonberg@adacore.com>
4536 * exp_ch5.adb (Expand_Predicated_Loop): Suppress warnings on
4537 loop variable, for the unusual case where the range has a single
4538 element and the loop variable has no visible assignment to it.
4540 2012-03-15 Vincent Pucci <pucci@adacore.com>
4542 * exp_ch4.adb (Expand_N_Quantified_Expression): Expand the
4543 original quantified expression node.
4544 * sem_ch4.adb (Analyze_Quantified_Expression): Properly analyze
4545 the quantified expression and preserve the original non-analyzed
4546 quantified expression when an expansion is needed.
4547 * sem_ch5.adb (Analyze_Iteration_Scheme): Special treatment
4548 for quantified expressions.
4549 (Analyze_Iterator_Specification): Special treatment for quantified
4552 2012-03-15 Ed Falis <falis@adacore.com>
4554 * s-vxwork-ppc.ads: Update FP_CONTEXT so name of former pad
4555 field matches VxWorks headers.
4557 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4559 * gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
4561 * a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
4562 s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
4563 s-osinte-irix.ads, s-proinf-irix-athread.adb,
4564 s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
4565 system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
4568 * adaint.c [__mips && __sgi]: Remove.
4569 (__gnat_number_of_cpus) [__mips && __sgi]: Remove.
4570 [IS_CROSS && !(__mips && __sgi)]: Remove.
4571 * adaint.h [sgi && _LFAPI]: Remove.
4572 * cstreams.c (__gnat_full_name) [sgi]: Remove.
4573 * env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
4574 (__gnat_clearenv) [__mips && __sgi]: Remove.
4575 * errno.c (_SGI_MP_SOURCE): Remove.
4576 * gsocket.h [sgi]: Remove.
4577 * init.c: Remove IRIX reference.
4579 * link.c [sgi]: Remove.
4580 * s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
4581 (main) [__mips && __sgi] (MAX_tv_sec): Don't define.
4582 (CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
4583 * sysdep.c [sgi]: Remove.
4584 (getc_immediate_common) [sgi]: Remove.
4585 (__gnat_localtime_tzoff) [sgi]: Remove.
4586 * terminals.c [__mips && __sgi] (IRIX): Don't define.
4587 [IRIX] (USE_GETPTY): Don't define.
4588 (allocate_pty_desc) [USE_GETPTY]: Remove.
4590 * g-traceb.ads: Remove IRIX reference.
4591 * g-trasym.ads: Likewise.
4592 * memtrack.adb: Likewise.
4593 * s-interr-sigaction.adb: Likewise.
4595 * gnat_rm.texi (Implementation Advice): Remove SGI info.
4596 (Implementation Defined Characteristics): Likewise.
4597 * gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
4599 (Irix-Specific Considerations): Remove.
4601 2012-03-13 Tristan Gingold <gingold@adacore.com>
4603 * gcc-interface/gigi.h (flag_vms_malloc64): Refine condition.
4605 2012-03-13 Tristan Gingold <gingold@adacore.com>
4607 * sysdep.c: Adjust condition after removal of __osf__.
4609 2012-03-12 Eric Botcazou <ebotcazou@adacore.com>
4611 * gcc-interface/gigi.h (shift_unc_components_for_thin_pointers): Kill.
4612 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove call
4614 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Adjust
4615 handling of thin pointers.
4616 <Attr_Descriptor_Size>: Likewise.
4617 (gnat_to_gnu) <N_Free_Statement>: Likewise.
4618 * gcc-interface/utils.c (shift_unc_components_for_thin_pointers): Kill.
4619 (convert_to_fat_pointer): Adjust handling of thin pointers.
4620 (convert) <POINTER_TYPE>: Likewise.
4621 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.
4623 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4625 * gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
4626 * a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
4627 s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
4628 s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
4629 system-tru64.ads: Remove.
4631 * adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
4633 [IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
4634 * env.c [__alpha__ && __osf__]: Remove.
4635 * gsocket.h (_OSF_SOURCE): Remove.
4636 (HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
4637 * init.c [__alpha__ && __osf__]: Remove.
4638 * link.c [__osf__]: Remove.
4639 * s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
4640 [__osf__ && !_SS_MAXSIZE]: Remove.
4641 * sysdep.c [__osf__]: Remove.
4642 * terminals.c [__alpha__ && __osf__]: Remove.
4645 * g-traceb.ads: Remove Tru64 reference.
4646 * g-trasym.ads: Likewise.
4647 * gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
4648 (Summary of Run-Time Configurations): Likewise.
4649 * memtrack.adb: Likewise.
4651 2012-03-12 Tristan Gingold <gingold@adacore.com>
4653 * gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64
4654 instead of TARGET_MALLOC64.
4655 * gcc-interface/gigi.h (flag_vms_malloc64): Define instead
4658 2012-03-09 Robert Dewar <dewar@adacore.com>
4660 * a-direct.adb, comperr.adb, freeze.adb: Minor reformatting.
4662 2012-03-09 Arnaud Charlet <charlet@adacore.com>
4664 * s-taskin.adb (Initialize_ATCB): Set Task_Image_Len to
4665 0 so that we never access this field uninitialized (e.g. in
4666 Task_Primitives.Operations.Enter_Task for the environment task).
4668 2012-03-09 Vincent Pucci <pucci@adacore.com>
4670 * exp_ch5.adb (Expand_Iterator_Loop):
4671 Call to Expand_Iterator_Loop_Over_Array added.
4672 (Expand_Iterator_Loop_Over_Array): New routine. Expansion of
4673 "of" iterator loop over arrays. Multidimensional array case added.
4675 2012-03-09 Eric Botcazou <ebotcazou@adacore.com>
4677 * uintp.ads: Fix minor pasto in comment.
4679 2012-03-09 Vasiliy Fofanov <fofanov@adacore.com>
4681 * a-direct.adb: Do not strip the trailing directory separator
4682 from path, as this is already done inside Normalize_Pathname;
4683 doing it again produces the wrong result on Windows for the
4684 drive's root dir (i.e. "X:\" becomes "X:").
4686 2012-03-09 Thomas Quinot <quinot@adacore.com>
4688 * exp_attr.adb, freeze.adb, sem_attr.adb, aspects.adb, aspects.ads,
4689 sem_ch13.adb, snames.ads-tmpl (Exp_Attr.Expand_N_Attribute_Reference):
4690 Add Attribute_Scalar_Storage_Order.
4691 (Sem_Attr.Analyze_Attribute, Eval_Attribute): Ditto.
4692 (Aspects): Add Aspect_Scalar_Storage_Order (Snames): Add
4693 Name_Scalar_Storage_Order and Attribute_Scalar_Storage_Order.
4694 (Sem_Ch13.Analyze_Attribute_Definition_Clause): Add processing
4695 for Scalar_Storage_Order.
4696 (Freeze): If Scalar_Storage_Order is specified, check that it
4697 is compatible with Bit_Order.
4699 2012-03-09 Robert Dewar <dewar@adacore.com>
4701 * s-osinte-linux.ads, sem_util.adb, s-taprop-linux.adb, exp_ch4.adb,
4702 a-strsup.ads, sem_ch6.adb, a-stwisu.ads, exp_ch3.adb,
4703 a-stzsup.ads: Minor reformatting.
4705 2012-03-09 Thomas Quinot <quinot@adacore.com>
4707 * s-ransee-vms.adb: Minor reformatting.
4709 2012-03-09 Arnaud Charlet <charlet@adacore.com>
4711 * comperr.adb (Delete_SCIL_Files): Fix handling of
4712 N_Package_Renaming_Declaration and N_Generic_Package_Declaration.
4714 2012-03-09 Javier Miranda <miranda@adacore.com>
4716 * sem_ch6.adb (Check_Body_To_Inline): In AAMP and VM targets
4717 use frontend inlining at all optimization levels.
4718 * sem_util.adb (Must_Inline): In AAMP and VM targets, given that
4719 there is no inlining support in the backend, use also frontend
4720 inlining when compiling with optimizations enabled.
4721 * exp_ch6.adb (Expand_Call): Minor code reorganization.
4723 2012-03-09 Eric Botcazou <ebotcazou@adacore.com>
4725 * gcc-interface/ada-tree.h (TYPE_VAX_FLOATING_POINT_P): Move around.
4726 (TYPE_UNCONSTRAINED_ARRAY): Adjust comment.
4727 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Tidy
4728 up. Add comment and use canonical predicate for thin pointers.
4729 (gnat_to_gnu) <N_Free_Statement>: Tidy up and reorder. Add comment
4730 and use canonical predicate for thin pointers.
4731 * gcc-interface/utils.c (convert_to_fat_pointer): Remove superfluous
4732 'else' and use standard name.
4733 (convert_to_thin_pointer): Delete.
4734 (convert) <POINTER_TYPE>: Do the difference in sizetype directly and
4735 change obsolete idioms. Do not call above function.
4736 (unchecked_convert): Fix formatting.
4737 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: In the thin
4738 pointer case, use byte_position to get the field position.
4740 2012-03-07 Eric Botcazou <ebotcazou@adacore.com>
4742 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the
4743 DECL node built for a type which has a non-trivial equivalent type.
4745 2012-03-07 Eric Botcazou <ebotcazou@adacore.com>
4747 * gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete.
4748 * gcc-interface/decl.c (defer_finalize_level): Likewise.
4749 (defer_finalize_list): Likewise.
4750 (gnat_to_gnu_entity): Delete references to above variables and do not
4751 call rest_of_type_decl_compilation.
4752 (rest_of_type_decl_compilation): Delete.
4753 (rest_of_type_decl_compilation_no_defer): Likewise.
4754 * gcc-interface/utils.c (rest_of_record_type_compilation): Do not call
4755 rest_of_type_decl_compilation.
4756 (create_type_decl): Likewise.
4757 (update_pointer_to): Likewise.
4759 2012-03-07 Eric Botcazou <ebotcazou@adacore.com>
4761 * gcc-interface/trans.c (Identifier_to_gnu): Don't unshare initializer.
4762 (add_decl_expr): Mark external DECLs as used.
4763 * gcc-interface/utils.c (convert) <CONSTRUCTOR>: Copy the vector.
4765 2012-03-07 Tristan Gingold <gingold@adacore.com>
4767 * s-ransee-vms.adb: New file.
4768 * gcc-interface/Makefile.in: Use s-ransee-vms.adb on VMS.
4769 * gcc-interface/Make-lang.in: Update dependencies.
4771 2012-03-07 Bob Duff <duff@adacore.com>
4773 * rtsfind.ads: Add support for finding Super_String types.
4774 * sem_util.ads, sem_util.adb (Is_Bounded_String): New function
4775 to determine whether a given type is a bounded string type.
4776 (Is_Fully_Initialized_Type): Return True for bounded
4777 string types, to suppress bogus warnings.
4778 * exp_ch4.adb (Expand_Composite_Equality): Special case for bounded
4779 strings: equality composes. This allows us to remove default values in
4781 * a-strsup.ads, a-stwisu.ads, a-stzsup.ads: Update comments.
4782 * exp_ch3.adb (Expand_Freeze_Record_Type): Comment.
4784 2012-03-07 Robert Dewar <dewar@adacore.com>
4786 * sem_util.adb, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb: Minor
4789 2012-03-07 Sergey Rybin <rybin@adacore.com frybin>
4791 * gnat_ugn.texi: gnatpp: fix paragraph about sources with
4792 preprocessor directives.
4794 2012-03-07 Arnaud Charlet <charlet@adacore.com>
4796 * s-osinte-linux.ads, s-taprop-linux.adb (prctl): New function.
4797 (Enter_Task): Call prctl when relevant.
4799 2012-03-07 Tristan Gingold <gingold@adacore.com>
4801 * s-osinte-vms.ads: pthread_mutex_setname_np: new function.
4803 2012-03-07 Ed Schonberg <schonberg@adacore.com>
4805 * sem_ch6.adb (Process_Formals): a generic subprogram with
4806 a formal incomplete type does not require a freeze node.
4808 2012-03-07 Bob Duff <duff@adacore.com>
4810 * sem_util.ads: Minor reformatting.
4812 2012-03-07 Geert Bosch <bosch@adacore.com>
4814 * targparm.ads: New target parameter Atomic_Sync_Default,
4816 * targparm.adb (Get_Target_Parameters): Add processing for
4817 Atomic_Sync_Default.
4818 * gnat1drv.adb (Adjust_Global_Switches): Adjust Supress_Options
4821 2012-03-07 Javier Miranda <miranda@adacore.com>
4823 * sem_ch3.adb (Analyze_Object_Declaration): If the object
4824 declaration has an init expression then stop the analysis of the
4825 object declaration if the expression which initializes the object
4826 is a call to an inlined function which returns an unconstrained
4827 and has been expanded into a procedure call.
4828 * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Add missing
4829 support to handle selected components.
4830 * sem_ch6.ads (Cannot_Inline): Adding parameter Is_Serious plus
4832 * sem_ch6.adb (Check_And_Build_Body_To_Inline): New
4833 subprogram which implements the checks required by the
4834 new rules for frontend inlining and builds the body to inline.
4835 (Analyze_Subprogram_Body_Helper): Move code that
4836 checks inlining of subprogram that has nested subprogram
4837 to Check_And_Build_Body_To_Inline. Replace call to
4838 Build_Body_To_Inline by call to the new subprogram
4839 Check_And_Build_Body_To_Inline.
4840 (Cannot_Inline): New implementation.
4841 * sem_ch12.adb (Analyze_Package_Instantiation.Must_Inline_Subp):
4843 * sem_util.ad[sb] (Must_Inline): New subprogram.
4844 (Returns_Unconstrained_Type): New subprogram.
4845 * sem_res.adb (Resolve_Call): Do not create a transient scope
4847 * inline.ads (Analyzing_Inlined_Bodies): Remove unreferenced variable.
4848 * inline.adb (Analyze_Inlined_Bodies, Initialize): Remove setting
4849 to false the variable Analyzing_Inlined_Bodies. Fix comments.
4850 * exp_ch4.adb (Expand_N_Allocator): Fix handling of finalization master.
4851 * exp_ch6.ads (List_Inlining_Info): New subprogram.
4852 * exp_ch6.adb (Expand_Call.Do_Inline): New subprogram.
4853 (Expand_Call.Do_Inline_Always): New subprogram.
4854 (In_Unfrozen_Instance): Move the declaration of this subprogram.
4855 (Expand_Inlined_Call.Reset_Dispatching_Calls): New subprogram.
4856 (Expand_Inlined_Call): Adding new support for inlining functions
4857 that return unconstrained types.
4858 (List_Inlining_Info): New subprogram.
4859 * debug.adb Document flags -gnatd.j and -gnatd.k
4860 * gnat1drv.adb Add call to generate the new listing of inlined
4861 calls and calls passed to the backend.
4863 2012-03-07 Robert Dewar <dewar@adacore.com>
4865 * sem_ch5.adb, s-vaflop.adb, s-taprop-vms.adb, exp_ch6.adb,
4866 s-gearop.adb, sem_ch6.adb, g-trasym.adb: Minor reformatting.
4868 2012-03-07 Javier Miranda <miranda@adacore.com>
4870 * a-ngrear.ads: Add documentation.
4872 2012-03-07 Tristan Gingold <gingold@adacore.com>
4874 * s-taprop-vms.adb (Create_Task): set thread name.
4875 * s-osinte-vms.ads (pthread_attr_setname_np): Declare.
4877 2012-03-07 Arnaud Charlet <charlet@adacore.com>
4879 * g-trasym.adb: Minor reformatting.
4881 2012-03-07 Robert Dewar <dewar@adacore.com>
4883 * a-ngrear.ads: Minor addition of ??? comment.
4885 2012-03-07 Gary Dismukes <dismukes@adacore.com>
4887 * exp_ch4.adb (Apply_Accessibility_Check): Call
4888 Remove_Side_Effects in the build-in-place case, to ensure that
4889 we capture the call and don't end up with two calls.
4891 2012-03-07 Javier Miranda <miranda@adacore.com>
4893 * exp_ch6.adb (Expand_Inlined_Call): Skip inlining of functions
4894 that return unconstrained types using an extended return statement
4895 since the support for inlining these functions has not been yet
4896 added to the frontend.
4897 * s-vaflop.adb, s-vaflop-vms-alpha.adb: Code reorganization.
4898 * a-ngrear.ads: Replace all the Inline_Always pragmas by pragma
4900 * a-ngrear.adb (Eigenvalues, Transpose): Restructured to use
4901 extended return statement.
4902 * a-strsup.adb, a-stzsup.adb, a-stwisu.adb (Concat, Super_Slice,
4903 Super_To_String): Restructured to use extended return statement.
4904 * a-chahan.adb (To_Basic, To_Lower, To_Upper): Restructured to
4905 use extended return statement.
4906 * s-gearop.adb (Diagonal, Matrix_Elementwise_Operation,
4907 Vector_Elementwise_Operation, Matrix_Elementwise_Operation,
4908 Matrix_Matrix_Scalar_Elementwise_Operation,
4909 Vector_Vector_Elementwise_Operation,
4910 Vector_Vector_Scalar_Elementwise_Operation,
4911 Matrix_Scalar_Elementwise_Operation,
4912 Vector_Scalar_Elementwise_Operation,
4913 Scalar_Matrix_Elementwise_Operation,
4914 Scalar_Vector_Elementwise_Operation, Matrix_Matrix_Product,
4915 Matrix_Vector_Product, Outer_Product, Unit_Matrix, Unit_Vector,
4916 Vector_Matrix_Product): Restructured to use extended return
4919 2012-03-07 Vincent Pucci <pucci@adacore.com>
4921 * sem_ch5.adb (One_Bound): Minor reformatting.
4923 2012-03-07 Tristan Gingold <gingold@adacore.com>
4925 * s-osinte-vms-ia64.adb, s-osinte-vms-ia64.ads, s-osinte-vms.adb,
4926 s-osinte-vms.ads, gcc-interface/Makefile.in: Merge s-osinte-vms and
4929 2012-03-07 Ed Schonberg <schonberg@adacore.com>
4931 * checks.adb (Apply_Predicate_Check): Do not generate a predicate
4932 check is the context is an internally generated type-specific
4934 * sem_ch6.adb (Process_PPCs); the formals of internally generated
4935 type-specific functions do not get assertion checks.
4937 2012-03-07 Yannick Moy <moy@adacore.com>
4939 * gnat_rm.texi: Minor renaming of title.
4940 * gnat_ugn.texi: Minor correction.
4942 2012-03-07 Vincent Pucci <pucci@adacore.com>
4944 * exp_ch4.adb (Expand_N_Quantified_Expression): Minor
4946 * sem_ch4.adb (Analyze_Quantified_Expression): Creation and
4947 analysis of the iteration scheme added in all cases.
4948 * sem_ch5.adb (Analyze_Iteration_Scheme): Minor reformating.
4949 (Analyze_Iterator_Specification): Minor reformating.
4950 * sem_res.adb (Resolve_Quantified_Expression): Resolution of
4951 the condition added in all cases.
4953 2012-03-07 Thomas Quinot <quinot@adacore.com>
4955 * einfo.adb, einfo.ads: Add flag Reverse_Storage_Order.
4957 2012-03-07 Yannick Moy <moy@adacore.com>
4959 * gnat_rm.texi, gnat_ugn.texi: Rewording of GNAT UG and GNAT RM to
4960 account for Ada 2012 assertions, and their pragma counterparts in GNAT.
4962 2012-03-07 Thomas Quinot <quinot@adacore.com>
4964 * exp_attr.adb, sem_attr.adb: Minor reformatting.
4966 2012-03-07 Bob Duff <duff@adacore.com>
4968 * hostparm.ads (Max_Instantiations): Increase parameter.
4970 2012-03-07 Bob Duff <duff@adacore.com>
4972 * par-prag.adb: Minor code rearrangement.
4974 2012-03-07 Bob Duff <duff@adacore.com>
4976 * a-strsup.ads, a-stwisu.ads, a-stzsup.ads (Super_String):
4977 Remove default initial value for Data. It is no longer needed
4978 because "=" now composes properly for untagged records. This
4979 default has caused efficiency problems.
4981 2012-03-07 Ed Schonberg <schonberg@adacore.com>
4983 * sem_res.adb (Resolve_Actuals): If the actual is a selected
4984 component of an anonymous access type, whose prefix is a variable,
4985 treat the variable as if it may be modified by the call, to
4986 suppress spurious warnings that a variable might be declared as
4989 2012-03-07 Thomas Quinot <quinot@adacore.com>
4991 * einfo.adb, einfo.ads: Remove unused entity flags.
4993 2012-03-07 Eric Botcazou <ebotcazou@adacore.com>
4995 * gnat_ugn.texi (Inline Assembler): Fix swapping of Input and
4996 Output operands throughout.
4998 2012-03-07 Hristian Kirtchev <kirtchev@adacore.com>
5000 * sem_ch12.adb (Earlier): When two nodes come from the same
5001 generic instantiation, compare their locations. Otherwise always
5002 use the top level locations of the nodes.
5004 2012-03-07 Thomas Quinot <quinot@adacore.com>
5006 * einfo.ads, sem_prag.adb: Minor reformatting.
5008 2012-03-05 Jason Merrill <jason@redhat.com>
5010 * gcc-interface/Make-lang.in (doc/gnat_ugn.texi): Build xgnatugn
5013 2012-03-04 Eric Botcazou <ebotcazou@adacore.com>
5015 * gnatvsn.ads (Library_Version): Bump to 4.8.
5017 2012-03-03 H.J. Lu <hongjiu.lu@intel.com>
5019 * init.c (__gnat_adjust_context_for_raise): Also check
5020 "orq $0x0,(%esp)" for x32.
5022 * link.c (__gnat_default_libgcc_subdir): Set to libx32 for x32.
5024 * gcc-interface/Makefile.in (arch): Set to x32 if MULTISUBDIR
5025 is /x32 and add support for x32.
5027 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
5029 * gcc-interface/decl.c (components_to_record): Add ARTIFICIAL parameter
5030 and set TYPE_ARTIFICIAL according to it. Adjust recursive call.
5031 (gnat_to_gnu_entity) <E_Record_Type>: Adjust call to above function.
5032 * gcc-interface/utils.c (rest_of_record_type_compilation): Do not
5033 invoke rest_of_type_decl_compilation on the parallel type, if any.
5035 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
5037 * gcc-interface/utils.c (gnat_write_global_declarations): Make sure the
5038 dummy global built for global types is preserved.
5040 2012-02-27 Tristan Gingold <gingold@adacore.com>
5042 * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
5043 E_Array_Type]: Reuse dummy fat type for gnu_ptr_template and
5046 2012-02-27 Eric Botcazou <ebotcazou@adacore.com>
5048 * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.
5049 (TYPE_BY_REFERENCE_P): New flag.
5050 (TYPE_IS_BY_REFERENCE_P): New macro.
5051 (TYPE_DUMMY_P): Add checking and remove VOID_TYPE.
5052 (TYPE_IS_DUMMY_P): Adjust for above change.
5053 * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P
5054 and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE.
5055 (gnat_to_gnu_param): Likewise.
5056 (maybe_pad_type): Likewise.
5057 (make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P.
5058 * gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P
5059 instead of TREE_ADDRESSABLE.
5060 * gcc-interface/trans.c (finalize_nrv): Likewise.
5061 (call_to_gnu): Likewise. Do not create a temporary for return values
5062 with by-reference type here.
5063 (gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P.
5064 (gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant
5065 CONSTRUCTORs and calls.
5066 * gcc-interface/utils.c (make_dummy_type): Get the equivalent type of
5067 the underlying type and use it throughout. Use TYPE_IS_BY_REFERENCE_P
5068 instead of TREE_ADDRESSABLE.
5069 * gcc-interface/utils2.c (build_cond_expr): Deal with by-reference
5072 2012-02-27 Eric Botcazou <ebotcazou@adacore.com>
5074 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Revert previous
5075 change that creates a special VAR_DECL for debugging purposes. For an
5076 aliased object with an unconstrained nominal subtype, make its type a
5077 thin reference to the underlying object.
5078 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Deal with
5079 expressions built for the initialization of above objects.
5081 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com>
5083 * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New
5084 Windows-specific make variable.
5085 (WIN_SO_INSTALL_DIR [windows targets]): Likewise.
5086 (install-gnatlib): Respect the above during installation when set,
5087 and also install any windows import library that has been built.
5088 (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also
5089 build a corresponding import library.
5091 2012-02-22 Robert Dewar <dewar@adacore.com>
5093 * exp_util.adb, make.adb, sem_dim.adb, sem_ch4.adb, exp_disp.adb: Minor
5096 2012-02-22 Geert Bosch <bosch@adacore.com>
5098 * g-bytswa-x86.adb, g-bytswa.adb, gcc-interface/Makefile.in: Remove
5099 x86-specific version of byteswap and use GCC builtins instead.
5101 2012-02-22 Tristan Gingold <gingold@adacore.com>
5103 * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
5104 E_Array_Type]: Translate component ealier.
5106 2012-02-22 Robert Dewar <dewar@adacore.com>
5108 * par-ch3.adb (P_Signed_Integer_Type_Definition): Specialize
5109 error message for 'Range.
5111 2012-02-22 Pascal Obry <obry@adacore.com>
5113 * s-taprop-mingw.adb (Finalize_TCB): Do not wait on thread handle as
5114 this is our own thread.
5116 2012-02-22 Sergey Rybin <rybin@adacore.com frybin>
5118 * tree_io.ads: Update ASIS_Version_Number because of the changes
5121 2012-02-22 Hristian Kirtchev <kirtchev@adacore.com>
5123 * exp_ch7.adb (Create_Finalizer): Suppress elaboration checks on
5124 stack-related finalizers.
5126 2012-02-22 Ed Schonberg <schonberg@adacore.com>
5128 * sem_ch6.adb (Analyze_Expression_Function): If the construct
5129 is a completion, indicate that its formals are the formals of
5130 a completion, and as such do not get a cross- reference entry.
5131 (Analyze_Subprogram_Specification): Do not generate a definition
5132 for the entity of an expression function, because it may be a
5133 completion. Definition will be generated if needed when analyzing
5134 the generated subprogram declaration.
5136 2012-02-22 Vincent Celier <celier@adacore.com>
5138 * make.adb (Check): When checking if an object file is in the
5139 correct object directory, get the unit name from a previous call
5140 to Check_Source_Info_In_ALI.
5141 * makeutl.adb (Check_Source_Info_In_ALI): Return the name of
5142 the unit when everything is OK, otherwise return No_Name.
5143 * makeutl.ads (Check_Source_Info_In_ALI): Return Name_Id instead
5146 2012-02-22 Ed Schonberg <schonberg@adacore.com>
5148 * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): In an
5149 instance, the operator is visible if an operand is of some
5150 numeric type which is not in use or directly visible, and the
5151 other operand is a numeric literal.
5153 2012-02-22 Tristan Gingold <gingold@adacore.com>
5155 * init.c: Minor code clean up.
5156 * gcc-interface/Make-lang.in: Update dependencies.
5158 2012-02-22 Arnaud Charlet <charlet@adacore.com>
5160 * gnatlink.adb (Gnatlink): Use -gnatcC in CodePeer_Node,
5161 otherwise GCC will generate an object file.
5163 2012-02-22 Vincent Celier <celier@adacore.com>
5165 * projects.texi: Correct typo related to "**" in Source_Dirs.
5167 2012-02-22 Steve Baird <baird@adacore.com>
5169 * sem_prag.adb (Analyze_PPC_In_Decl_Part): Clean up generation of
5172 2012-02-22 Vincent Pucci <pucci@adacore.com>
5174 * rtsfind.adb (Get_Unit_Name): Ada_Numerics_Child and
5175 System_Dim_Child cases added.
5176 * rtsfind.ads: Ada_Numerics,
5177 Ada_Numerics_Generic_Elementary_Functions, System_Dim,
5178 System_Dim_Float_IO and System_Dim_Integer_IO added to the list
5179 of RTU_Id. Ada_Numerics_Child and System_Dim_Child added as
5180 new RTU_Id subtypes.
5181 * sem_dim.adb (Is_Dim_IO_Package_Entity): Use of
5182 Rtsfind to verify the package entity is located either
5183 in System.Dim.Integer_IO or in System.Dim.Float_IO.
5184 (Is_Dim_IO_Package_Instantiation): Minor
5185 changes. (Is_Elementary_Function_Call): Removed.
5186 (Is_Elementary_Function_Entity): New routine.
5187 (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity call added.
5188 * snames.ads-tmpl: Name_Dim and Name_Generic_Elementary_Functions
5191 2012-02-22 Vincent Pucci <pucci@adacore.com>
5193 * sem_prag.adb: Minor reformatting.
5195 2012-02-22 Ed Schonberg <schonberg@adacore.com>
5197 * sem_ch3.adb (Find_Type_Name): When analyzing a private type
5198 declaration that is the completion of a tagged incomplete type, do
5199 not associate the class-wide type already created with the private
5200 type to prevent order-of-elaboration issues in the back-end.
5201 * exp_disp.adb (Find_Specific_Type): Find specific type of
5202 a class-wide type, and handle the case of an incomplete type
5203 coming either from a limited_with clause or from an incomplete
5204 type declaration. Used when expanding a dispatchin call and
5205 generating tag checks (minor refactoring).
5207 2012-02-22 Robert Dewar <dewar@adacore.com>
5209 * exp_ch5.adb: Add comment.
5210 * sem_ch12.adb, exp_ch6.adb: minor reformatting
5212 2012-02-22 Ed Schonberg <schonberg@adacore.com>
5214 * freeze.adb (Freeze_Entity): Do not perform type layout within
5217 2012-02-22 Eric Botcazou <ebotcazou@adacore.com>
5219 * init.c (__gnat_error_handler) [Linux]: Map SIGBUS to
5222 2012-02-22 Ed Schonberg <schonberg@adacore.com>
5224 * exp_ch5.adb (Expand_N_Assignment_Statement): Reject an
5225 assignment to a classwide type whose type is limited, as
5226 can happen in an instantiation in programs that run afoul or
5229 2012-02-17 Ed Schonberg <schonberg@adacore.com>
5231 * exp_ch6.adb (Legal_Copy): If layout is not
5232 determined in the front-end, do not emit error message when
5233 by-reference actual is potentially unaligned.
5234 * gcc-interface/decl.c (gnat_to_gnu_field): Better error message for
5235 illegal representation clause on tagged or aliased component, or on
5236 by-reference type with forced alignment.
5238 2012-02-17 Nicolas Roche <roche@adacore.com>
5240 * gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is
5241 propagated by gnatlib-sjlj and gnatlib-zcx targets.
5242 * gcc-interface/Make-lang.in: Update dependencies.
5244 2012-02-17 Thomas Quinot <quinot@adacore.com>
5246 * sem_ch12.adb (Analyze_Package_Instantiation): For an
5247 instantiation in an RCI library unit, omit the instance body
5248 if the RCI library unit is the instance itself (E.2.3(18)),
5249 but include the body if the instantiation is within the RCI
5250 declaration (12.3(12)).
5252 2012-02-17 Steve Baird <baird@adacore.com>
5254 * sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and
5255 Post'Class aspects can only be specified for a primitive operation
5258 2012-02-17 Yannick Moy <moy@adacore.com>
5260 * gnat_rm.texi: Minor shuffling.
5262 2012-02-17 Ed Schonberg <schonberg@adacore.com>
5264 * aspects.adb: Expression functions can carry pre/postconditions.
5265 * par-ch6.adb (P_Subprogram): look for optional pre/postconditions
5266 in an expression function.
5267 * sem_prag (Check_Precondition_Postcondition): legal on expression
5270 2012-02-17 Vincent Pucci <pucci@adacore.com>
5272 * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb,
5273 * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb,
5274 * a-convec.adb, a-coorma.adb (Adjust): New routine.
5275 (Constant_Reference): Increment Busy and Lock counters.
5276 (Reference): Increase Busy and Lock counters.
5277 (Finalize): New routine.
5278 * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb:
5279 (Adjust): New routine. (Constant_Reference): Increment Busy
5281 (Finalize): New routine.
5282 * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads,
5283 * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads,
5284 * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads,
5285 * a-coorma.ads, a-coorse: Controlled component added to the
5288 2012-02-17 Robert Dewar <dewar@adacore.com>
5290 * restrict.adb (Check_Restriction): Add special handling for
5291 No_Obsolescent_Features.
5293 2012-02-17 Hristian Kirtchev <kirtchev@adacore.com>
5295 * exp_util.adb (Find_Finalize_Address): When dealing with an
5296 internally built full view for a type with unknown discriminants,
5297 use the original record type.
5299 2012-02-17 Robert Dewar <dewar@adacore.com>
5301 * sem_dim.adb: Minor reformatting.
5303 2012-02-17 Yannick Moy <moy@adacore.com>
5305 * gnat_rm.texi: Minor rewording.
5307 2012-02-17 Thomas Quinot <quinot@adacore.com>
5309 * sem_aggr.adb: Minor reformatting.
5311 2012-02-17 Robert Dewar <dewar@adacore.com>
5313 * gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case.
5315 2012-02-17 Vincent Pucci <pucci@adacore.com>
5317 * sem_dim.adb (Is_Dim_IO_Package_Entity): New routine.
5318 (Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity
5320 (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity
5322 * s-dim.ads: Make package Pure.
5324 2012-02-17 Gary Dismukes <dismukes@adacore.com>
5326 * prj-nmsc.adb: Minor reformatting.
5328 2012-02-17 Yannick Moy <moy@adacore.com>
5330 * gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions.
5332 2012-02-17 Yannick Moy <moy@adacore.com>
5334 * gnat_ugn.texi: Fix typos.
5336 2012-02-17 Pascal Obry <obry@adacore.com>
5338 * prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an
5339 aggregate is not Externally_Built.
5341 2012-02-17 Ed Schonberg <schonberg@adacore.com>
5343 * sem_aggr.adb (Resolve_Record_Aggregate): If a composite
5344 component has a box association, copy the default value using
5345 the current scope as the scope of internal types, to prevent
5346 scoping anomalies in gigi.
5348 2012-02-17 Robert Dewar <dewar@adacore.com>
5350 * sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb,
5351 sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb,
5352 exp_intr.adb, s-os_lib.adb: Minor reformatting.
5354 2012-02-17 Ed Schonberg <schonberg@adacore.com>
5356 * sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the
5357 old operation is abstract, the relevant type is not abstract,
5358 and the new subprogram fails to override.
5360 2012-02-15 Eric Botcazou <ebotcazou@adacore.com>
5362 * gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the
5363 type of the result to the end and execute it for a deferred constant of
5364 a discriminated type whose full view can be elaborated statically.
5366 2012-02-15 Eric Botcazou <ebotcazou@adacore.com>
5368 * gcc-interface/trans.c (gnat_to_gnu) <N_Qualified_Expression>: If the
5369 type is tagged, mark it as used for debugging purposes.
5370 <N_Allocator>: Likewise for a qualified expression.
5372 2012-02-15 Eric Botcazou <ebotcazou@adacore.com>
5374 * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
5375 return value in the by-reference return type case if this isn't the
5376 expression of an object declaration. Tidy up.
5378 2012-02-09 Tristan Gingold <gingold@adacore.com>
5380 * gcc-interface/Makefile.in: Remove .sym rule (not used).
5381 Remove adamsg.o object (requires native message compiler).
5382 * init.c (CMA$_EXIT_THREAD, MTH$_FLOOVEMAT, SS$_INTDIV): Define as a
5383 macro instead of as extern int.
5384 (ADA$_ALREADY_OPEN, ADA$_CONSTRAINT_ERRO, ADA$_DATA_ERROR)
5385 (ADA$_DEVICE_ERROR, ADA$_END_ERROR, ADA$_FAC_MODE_MISMAT)
5386 (ADA$_IOSYSFAILED, ADA$_KEYSIZERR, ADA$_KEY_MISMATCH)
5387 (ADA$_LAYOUT_ERROR, ADA$_LINEXCMRS, ADA$_MAXLINEXC)
5388 (ADA$_MODE_ERROR, ADA$_MRN_MISMATCH, ADA$_MRS_MISMATCH)
5389 (ADA$_NAME_ERROR, ADA$_NOT_OPEN, ADA$_ORG_MISMATCH)
5390 (ADA$_PROGRAM_ERROR, ADA$_RAT_MISMATCH, ADA$_RFM_MISMATCH)
5391 (ADA$_STAOVF, ADA$_STATUS_ERROR, ADA$_STORAGE_ERROR)
5392 (ADA$_UNSUPPORTED, ADA$_USE_ERROR): Likewise.
5393 (struct cond_except): Field cond is now an unsigned int.
5394 (dec_ada_cond_except_table): Adjust.
5395 (cond_except_table): Likewise.
5396 (cond_resignal_table): Likewise.
5397 (__gnat_default_resignal_p): Fix style.
5399 2012-02-08 Vincent Celier <celier@adacore.com>
5401 * gcc-interface/Make-lang.in: Add g-byorma.o to gnatbind objects
5402 (g-buorma is now imported by sinput).
5403 Update dependencies.
5404 * scn.adb (Initialize_Scanner): Call Check_For_BOM
5405 * sinput-p.adb (Source_File_Is_Subunit): Call Check_For_BOM
5406 * sinput.adb: New procedure Check_For_BOM
5407 * sinput.ads: New procedure Check_For_BOM
5409 2012-02-08 Vincent Pucci <pucci@adacore.com>
5411 * impunit.adb: Dimension package names updated
5412 * Makefile.rtl: s-dim added
5413 * sem_dim.adb (Is_Procedure_Put_Call): minor changes
5414 (Is_Dim_IO_Package_Instantiation): minor changes
5415 * sem_dim.ads: minor changes in comments
5416 * snames.ads-tmpl: Name_Dim added Name_Dim_Float_IO and
5417 Name_Dim_Integer_IO removed
5418 * s-dim.ads: New package. Define the dimension terminology.
5419 * s-diflio.adb, s-diinio.adb, s-dimkio.ads, s-dimmks.ads,
5420 * s-dmotpr.ads: Package names updated.
5421 * s-diflio.ads, s-diinio.ads: Documentation added and package
5424 2012-02-08 Gary Dismukes <dismukes@adacore.com>
5426 * gcc-interface/utils2.c (build_call_alloc_dealloc_proc): Revise test
5427 for storage pools to test for an underlying record type rather than
5428 testing Is_Tagged_Type, so that simple storage pools will be handled
5429 the same as normal Ada storage pools.
5431 2012-02-08 Yannick Moy <moy@adacore.com>
5433 * gnat_rm.texi: Minor reshuffling to place restriction at
5436 2012-02-08 Bob Duff <duff@adacore.com>
5438 * warnsw.adb (Set_Warning_Switch): Set Warn_On_Suspicious_Modulus_Value
5439 False for '-gnatwA', to suppress these warnings.
5441 2012-02-08 Vincent Celier <celier@adacore.com>
5443 * sinput-p.adb (Source_File_Is_Subunit): Check for BOM before
5444 starting to scan, so that UTF8 encoding is taken into account.
5446 2012-02-08 Arnaud Charlet <charlet@adacore.com>
5448 * s-tasren.adb, s-tasren.ads (Internal_Complete_Rendezvous): New
5450 (Complete_Rendezvous): Now call Internal_Complete_Rendezvous.
5451 (Exceptional_Complete_Rendezvous): Mark No_Return.
5453 2012-02-08 Eric Botcazou <ebotcazou@adacore.com>
5455 * exp_aggr.adb (Compile_Time_Known_Composite_Value):
5456 New predicate to compute whether a composite value can be
5457 evaluated at compile time.
5458 (Component_Not_OK_For_Backend): Use Compile_Time_Known_Value for all
5459 expressions of elementary type and Compile_Time_Known_Composite_Value
5460 for all other expressions.
5461 (Expand_Record_Aggregate): Convert to assignments in the case
5462 of a type with mutable components if the aggregate cannot be
5465 2012-02-08 Gary Dismukes <dismukes@adacore.com>
5467 * aspects.ads (type Aspect_Id): Add Simple_Storage_Pool_Type.
5468 (Impl_Defined_Aspects): Add association for
5469 Aspect_Simple_Storage_Pool_Type.
5471 association for Aspect_Simple_Storage_Pool_Type.
5473 (Canonical_Aspect): Add association for Simple_Storage_Pool_Type.
5474 * exp_attr.adb (Expand_N_Attribute_Reference):
5475 Change name to Name_Simple_Storage_Pool_Type.
5476 * exp_ch4.adb (Expand_N_Allocator): Change
5477 name to Name_Simple_Storage_Pool_Type.
5478 * exp_intr.adb (Expand_Unc_Deallocation): Change name to
5479 Name_Simple_Storage_Pool_Type. * freeze.adb (Freeze_Entity):
5480 Change names to Name_Simple_Storage_Pool_Type. * par-prag.adb:
5481 Change names to Name_Simple_Storage_Pool_Type. * sem_attr.adb:
5482 (Analyze_Attribute): Change name to Name_Simple_Storage_Pool_Type.
5483 * sem_ch13.adb (Analyze_Attribute_Definition_Clause):
5484 Change name to Name_Simple_Storage_Pool_Type.
5486 (Analyze_Pragma): Change name to Name_Simple_Storage_Pool_Type.
5487 (Sig_Flags): Change name to Name_Simple_Storage_Pool_Type.
5488 * sem_res.adb (Resolve_Allocator): Change name to
5489 Name_Simple_Storage_Pool_Type. * snames.ads-tmpl:
5490 (Name_Simple_Storage_Pool_Type): New name constant.
5491 (type Pragma_Id): Change name to Name_Simple_Storage_Pool_Type and
5492 move to main pragma section because it no longer matches the
5494 * snames.adb-tmpl (Get_Pragma_Id): Remove test for
5495 Name_Simple_Storage_Pool.
5496 (Is_Pragma_Name): Remove test for Name_Simple_Storage_Pool.
5498 2012-02-08 Robert Dewar <dewar@adacore.com>
5500 * gnat_ugn.texi: Add some clarification to -gnatwA and -gnatws.
5502 2012-02-08 Pascal Obry <obry@adacore.com>
5504 * prj.adb (Compute_All_Imported_Projects): Use new
5505 For_Project_And_Aggregated_Context to ensure proper context is
5506 used for encapsulated aggregate libraries.
5507 * prj-proc.adb (Recursive_Process): Call
5508 Process_Aggregated_Projects earlier to ensure that all dependent
5509 projects are set with the proper encapsulated status.
5511 2012-02-08 Pascal Obry <obry@adacore.com>
5513 * s-os_lib.adb (Normalize_Arguments): Properly escape last \ in null
5516 2012-02-08 Pascal Obry <obry@adacore.com>
5518 * prj.ads, prj.adb (For_Project_And_Aggregated_Context): New
5519 generic routine with a context parameter.
5521 2012-02-08 Robert Dewar <dewar@adacore.com>
5523 * a-coinve.adb, sem_util.adb, sem_ch8.adb, a-cobove.adb,
5524 a-convec.adb: Minor reformatting and code reorganization.
5526 2012-02-08 Steve Baird <baird@adacore.com>
5528 * sem_cat.adb (In_Preelaborated_Unit): A child
5529 unit instantiation does not inherit preelaboration requirements
5532 2012-02-08 Gary Dismukes <dismukes@adacore.com>
5534 * aspects.ads (type Aspect_Id): Add Aspect_Simple_Storage_Pool.
5535 (Impl_Defined_Aspects): Add entry for Aspect_Simple_Storage_Pool.
5536 (Aspect_Argument): Add Name entry for Aspect_Simple_Storage_Pool.
5537 (Aspect_Names): Add entry for Aspect_Simple_Storage_Pool.
5538 * aspects.adb (Canonical_Aspect): Add entry for
5539 Aspect_Simple_Storage_Pool.
5540 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of
5541 Attribute_Simple_Storage_Pool in the same way as Storage_Pool
5542 (add conversion, analyze/resolve). For the Storage_Size attribute,
5543 for the simple pool case, locate and use the simple pool type's
5544 Storage_Size function (if any), otherwise evaluate to zero.
5545 * exp_ch4.adb (Expand_N_Allocator): In the case of an allocator
5546 for an access type with an associated simple storage pool,
5547 locate and use the pool type's Allocate.
5548 * exp_intr.adb (Expand_Unc_Deallocation): In the case where the
5549 access type has a simple storage pool, locate the pool type's
5550 Deallocate procedure (if present) and use it as the procedure
5551 to call on the Free operation.
5552 * freeze.adb (Freeze_Entity): In the case of a full type for
5553 a private type defined with pragma Simple_Storage_Pool, check
5554 that the full type is also appropriate for the pragma. For
5555 a simple storage pool type, validate that the operations
5556 Allocate, Deallocate (if present), and Storage_Size
5557 (if present) are defined with appropriate expected profiles.
5558 (Validate_Simple_Pool_Op_Formal): New procedure
5559 (Validate_Simple_Pool_Operation): New procedure Add with and
5561 * par-prag.adb: Add Pragma_Simple_Storage_Pool to case statement
5562 (no action required).
5563 * sem_attr.adb (Analyze_Attribute): For the case of the
5564 Storage_Pool attribute, give a warning if the prefix type has an
5565 associated simple storage pool, and rewrite the attribute as a
5566 raise of Program_Error. In the case of the Simple_Storage_Pool
5567 attribute, check that the prefix type has an associated simple
5568 storage pool, and set the attribute type to the pool's type.
5569 * sem_ch13.adb (Analyze_Aspect_Specifications): Add
5570 Aspect_Simple_Storage_Pool case choice.
5571 (Analyze_Attribute_Definition_Clause): Add
5572 Aspect_Simple_Storage_Pool to case for Ignore_Rep_Clauses
5573 (no action). Add handling for Simple_Storage_Pool attribute
5574 definition, requiring the name to denote a simple storage pool
5576 (Check_Aspect_At_Freeze_Point): For a simple storage pool
5577 aspect, set the type to that of the name specified for the aspect.
5578 * sem_prag.adb (Analyze_Pragma): Add handling for pragma
5579 Simple_Storage_Pool, requiring that it applies to a library-level
5580 type declared in a package declaration that is a limited private
5581 or limited record type.
5582 * sem_res.adb (Resolve_Allocator): Flag an attempt to call a
5583 build-in-place function in an allocator for an access type with
5584 a simple storage pool as unsupported.
5585 * snames.ads-tmpl: Add Name_Simple_Storage_Pool.
5586 (type Attribute_Id): Add Attribute_Simple_Storage_Pool.
5587 (type Pragma_Id): Add Pragma_Simple_Storage_Pool.
5588 * snames.adb-tmpl (Get_Pragma_Id): Handle case of
5589 Name_Simple_Storage_Pool.
5590 (Is_Pragma_Name): Return True for Name_Simple_Storage_Pool.
5592 2012-02-08 Cyrille Comar <comar@adacore.com>
5594 * projects.texi: Clarify doc for interfaces.
5596 2012-02-07 Eric Botcazou <ebotcazou@adacore.com>
5598 * gcc-interface/Make-lang.in (GCC_LINKERFLAGS): New variable.
5601 2012-02-01 Tristan Gingold <gingold@adacore.com>
5603 * gcc-interface/trans.c (Loop_Statement_to_gnu): Use sizetype
5604 instead of size_type_node.
5606 2012-01-30 Nicolas Roche <roche@adacore.com>
5608 * gcc-interface/Make-lang.in: Update dependencies.
5609 * gcc-interface/Makefile.in: Use system-vxworks-system-ppc-mils.ads
5611 Remove Linker_Options -crtbe when building sjlj run-time.
5613 2012-01-30 Robert Dewar <dewar@adacore.com>
5615 * sem.adb (Analyze): Call Analyze_Mod for N_Op_Mod mode.
5616 * sem_ch3.adb (Modular_Type_Declaration): Warn on mod value of
5617 form 2 * small-literal.
5618 * sem_ch4.adb (Analyze_Mod): New procedure (warn on suspicious
5620 * sem_ch4.ads (Analyze_Mod): New procedure.
5622 2012-01-30 Ed Schonberg <schonberg@adacore.com>
5624 * sem_ch6.adb: sem_ch6.adb (Analyze_Expression_Function): Copy
5625 types and return expression when building spec for implicit
5626 body, to preserve global references that may be present in an
5629 2012-01-30 Matthew Heaney <heaney@adacore.com>
5631 * a-convec.adb, a-coinve.adb, a-cobove.adb (Sort,
5632 Reverse_Elements): Check for cursor tampering.
5634 2012-01-30 Ed Schonberg <schonberg@adacore.com>
5636 * sem_util.adb (Is_Fully_Initialized_Type): In Ada 2012, a
5637 type with aspect Default_Value or Default_Component_Value is
5638 fully initialized, and use of variables of such types do not
5641 2012-01-30 Javier Miranda <miranda@adacore.com>
5644 * sem_ch8.adb (Analyze_Subprogram_Renaming):
5645 Handle self-renaming when the renamed entity is referenced using
5648 2012-01-30 Vincent Celier <celier@adacore.com>
5650 * projects.texi: Add documentation for attribute Interfaces.
5652 2012-01-30 Hristian Kirtchev <kirtchev@adacore.com>
5654 * exp_ch7.adb (Build_Finalizer_Call): Set loc again.
5655 * exp_ch11.adb (Expand_At_End_Handler): Do not provide a source
5656 location for the wrapped call to the original AT_END routine
5657 and the subsequent return statement.
5659 2012-01-30 Pascal Obry <obry@adacore.com>
5661 * s-rannum.adb: Minor reformatting.
5663 2012-01-30 Hristian Kirtchev <kirtchev@adacore.com>
5665 * a-calend-vms.adb, a-calend.adb: Increment the number of leap seconds
5666 to 25 and add the hard time value for 2012-06-30.
5668 2012-01-30 Robert Dewar <dewar@adacore.com>
5670 * a-strhas.ads, einfo.adb, einfo.ads, exp_ch7.adb, exp_ch9.adb,
5671 freeze.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-proc.adb, s-llflex.ads,
5672 s-ransee.adb, s-ransee.ads, sem_ch13.adb, sem_dim.adb, sem_prag.adb:
5673 Minor reformatting/code reorganization.
5675 2012-01-30 Thomas Quinot <quinot@adacore.com>
5677 * s-rannum.adb, s-ransee.adb, s-ransee.ads (Get_Seed): Return
5678 Unsigned_64 rather than Duration.
5679 (System.Random_Numbers.Reset): Use full value of seed
5680 (do not truncate sub-second bits).
5682 2012-01-30 Thomas Quinot <quinot@adacore.com>
5684 * sem_cat.adb, sem_ch12.adb: Minor reformatting.
5686 2012-01-30 Yannick Moy <moy@adacore.com>
5688 * gnat_ugn.texi: Minor correction of GNAT UG, to take into
5689 account changes to -gnatwa and more recent warnings.
5691 2012-01-30 Hristian Kirtchev <kirtchev@adacore.com>
5693 * exp_ch7.adb (Build_Finalizer_Call): Do not provide a source
5694 location when creating a call to a finalizer.
5695 * exp_ch11.adb (Expand_Exception_Handlers): Do not provide
5696 a source location for the first actual of Save_Occurrence for
5699 2012-01-30 Ed Schonberg <schonberg@adacore.com>
5701 * einfo.ads, einfo,adb: New attribute on scalar types:
5702 Default_Aspect_Value New attribute on array types:
5703 Default_Aspect_Component_Value Move attribute Related_Array_Object
5704 to a different position to accomodate new aspect attributes.
5705 * freeze.adb (Freeze_Entity): Use new attributes to retrieve value
5706 of defaults set with an aspect specification, rather than using
5707 the list of aspects attached to the type, to prevent issues with
5709 * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects
5710 Default_Value and Default_Component _Value, store corresponding
5711 expression in type entity.
5712 (Check_Aspect_At_End_Of_Declaration): If the default aspects
5713 are declared on the full view, use the full view to resolve the
5714 correseponding expression.
5715 * exp_ch3.adb (Init_Component): Use attribute
5716 Default_Aspect_Component_Value to perform default initialization,
5717 rather than relying on the rep item list for the type.
5718 (Get_Simple_Init_Val): Ditto.
5720 2012-01-30 Thomas Quinot <quinot@adacore.com>
5722 * a-strhas.ads: Document risk of collision attack.
5724 2012-01-30 Yannick Moy <moy@adacore.com>
5726 * gnat_ugn.texi: Minor update wrt warning switches.
5728 2012-01-30 Vincent Celier <celier@adacore.com>
5730 * prj-nmsc.adb (Check_Interfaces): Report an error when a
5731 unit from Library_Interface is not a unit of the project.
5733 2012-01-30 Vincent Pucci <pucci@adacore.com>
5735 * sem_prag.adb (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Parent
5736 links fixed inside PPC pragmas.
5737 * sem_ch12.adb: Move call to Make_Aspect_For_PPC_In_Gen_Sub_Decl.
5739 2012-01-30 Thomas Quinot <quinot@adacore.com>
5741 * s-ransee.ads: Minor reformatting.
5743 2012-01-30 Pascal Obry <obry@adacore.com>
5745 * prj.ads, prj.adb (For_Each_Source): Add support for skipping
5746 sources coming from an encapsulated library.
5748 2012-01-30 Ed Schonberg <schonberg@adacore.com>
5750 * sem_ch3.adb (Process-Full_View): fix typo.
5751 * sem_ch13.adb (Aalyze_Aspect_Specifications): if predicates
5752 appear on a private type and the full view is available, ensure
5753 existence of freeze node for full view.
5754 (Build_Predicate_Function): Attach predicate function to both
5755 views of a private type.
5757 2012-01-30 Vincent Celier <celier@adacore.com>
5759 * prj-nmsc.adb (Check_Interfaces): Compute the Lib_Interface_ALIs
5760 for the project if either attribute Library_Interface or
5761 Interfaces is declared.
5762 (Check_Stand_Alone_Library): Use Lib_Interface_ALIs computed in
5765 2012-01-30 Pascal Obry <obry@adacore.com>
5767 * prj-proc.adb (Recursive_Process): Set From_Encapsulated_Lib
5768 boolean value to true in the process list created by this routine.
5769 * prj.ads (Project_List_Element): New field From_Encapsulated_Lib.
5770 Continued work for KA06-021.
5771 * prj.adb (Compute_All_Imported_Projects): Set
5772 From_Encapsulated_Lib boolean flag.
5774 2012-01-30 Vincent Pucci <pucci@adacore.com>
5776 * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Minor
5778 * s-diflio.ads: Minor change.
5780 2012-01-30 Javier Miranda <miranda@adacore.com>
5782 * exp_ch9.adb (Build_Dispatching_Requeue): Add missing call
5783 to Get_Entry_Index. Required to generate code which provides
5784 the correct value of Entry_Index in the target entry.
5786 2012-01-30 Nicolas Roche <roche@adacore.com>
5788 * system-vxworks-ppc.ads: Add pragma Linker_Options -crtbe to
5789 fix issue with zcx on VxWorks5.
5791 2012-01-30 Pascal Obry <obry@adacore.com>
5793 * prj.ads, prj.adb (For_Every_Project_Imported): Remove
5795 (For_Every_Project_Imported_Context): New generic routine with
5796 a context parameter.
5797 * prj-nmsc.adb: Revert to use For_Every_Project_Imported Avoid
5798 distributed complexity.
5799 * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: Ditto.
5801 2012-01-30 Thomas Quinot <quinot@adacore.com>
5803 * exp_aggr.adb (Expand_Record_Aggregate): After creating the
5804 _parent aggregate for an extension aggregate, check whether it
5805 requires delayed (top-down) expansion.
5807 2012-01-30 Vincent Pucci <pucci@adacore.com>
5809 * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Rewritten.
5810 * snames.ads-tmpl: Name_Item and Name_Symbols added.
5811 * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads: Rename
5812 and change the position of parameter Symbols in every Put routine.
5813 * s-dimmks.ads: Convert long float type Mks_Type into long
5815 * s-llflex.ads: Modifications in comments.
5817 2012-01-30 Hristian Kirtchev <kirtchev@adacore.com>
5819 * sem_ch12.adb (Earlier): Do not use the
5820 top level source locations of the two input nodes.
5822 2012-01-30 Robert Dewar <dewar@adacore.com>
5824 * einfo.ads, sem_prag.adb, sem_attr.adb, aspects.ads,
5825 sem_cat.adb, sem_aggr.adb, exp_aggr.adb: Minor reformatting.
5827 2012-01-30 Robert Dewar <dewar@adacore.com>
5829 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting.
5831 2012-01-30 Olivier Hainque <hainque@adacore.com>
5833 * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Add rule for r1 back +
5836 2012-01-30 Thomas Quinot <quinot@adacore.com>
5838 * gnat_rm.texi, sem_dist.adb, sem_dist.ads, einfo.ads, sem_prag.adb,
5839 sem_ch12.adb, sem_attr.adb, aspects.adb, aspects.ads, par-prag.adb,
5840 sem_cat.adb, snames.ads-tmpl (Sem_Dist.Is_Valid_Remote_Object_Type):
5841 New subprogram (extracted from
5842 Sem_Cat.Validate_Remote_Access_Object_Type_Declaration).
5843 (Einfo.Is_Remote_Types): Now applies to generic types. Update
5844 documentation accordingly.
5845 (Sem_Ch12.Analyze_Associations): A RACW type is acceptable as
5846 actual for a formal type to which a pragma Remote_Access_Type
5848 (Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect
5850 (Sem_Attr.Analyze_Attribute, case Stub_Type): Attribute can
5851 be applied to a generic type if pragma Remote_Access_Type
5852 applies, in which case the type of the attribute is
5853 System.Partition_Interface.RACW_Stub_Type.
5855 2012-01-27 Eric Botcazou <ebotcazou@adacore.com>
5857 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set
5858 an alignment on fields of the RETURN type built for the CICO mechanism.
5860 2012-01-27 Eric Botcazou <ebotcazou@adacore.com>
5862 * gcc-interface/trans.c (gnat_to_gnu): Avoid making a SAVE_EXPR for
5863 a call to a function that returns an unconstrained type with default
5864 discriminant. Similarly, avoid doing the conversion to the nominal
5865 result type in this case.
5867 2012-01-27 Eric Botcazou <ebotcazou@adacore.com>
5869 * gcc-interface/ada-tree.h (DECL_ALIASED_P): New flag.
5870 * gcc-interface/decl.c (is_variable_size): Rename to...
5871 (type_has_variable_size): ...this.
5872 (adjust_packed): Adjust to above renaming.
5873 (gnat_to_gnu_field): Set DECL_ALIASED_P on the field.
5874 (field_is_artificial): New predicate.
5875 (field_is_aliased): Likewise.
5876 (field_has_self_size): Likewise.
5877 (field_has_variable_size): Likewise.
5878 (components_to_record): Record information for the final layout during
5879 the first pass on fields.
5880 If there is an aliased field placed after a field whose length depends
5881 on discriminants, put all the fields of the latter sort, last.
5883 2012-01-27 Eric Botcazou <ebotcazou@adacore.com>
5885 * gcc-interface/gigi.h (get_minimal_subprog_decl): Declare.
5886 * gcc-interface/decl.c (get_minimal_subprog_decl): New function.
5887 * gcc-interface/trans.c (Attribute_to_gnu): Use it for the prefix of an
5888 Access-like attribute in a dispatch table if the subprogram is public.
5890 2012-01-27 Eric Botcazou <ebotcazou@adacore.com>
5892 * gcc-interface/gigi.h (create_label_decl): Adjust.
5893 * gcc-interface/utils.c (create_label_decl): Add GNAT_NODE parameter
5894 and invoke gnat_pushdecl on it. Remove obsolete settings.
5895 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Label>: Adjust call to
5897 * gcc-interface/trans.c (gnat_to_gnu) <N_Null): Likewise. Ignore the
5898 label for debugging purposes.
5900 2012-01-27 Eric Botcazou <ebotcazou@adacore.com>
5902 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an aliased
5903 object with an unconstrained nominal subtype and if optimization isn't
5904 enabled, create a special VAR_DECL for debugging purposes.
5906 2012-01-23 Robert Dewar <dewar@adacore.com>
5908 * sem_prag.ads, sem_prag.adb: Minor reformatting.
5910 2012-01-23 Robert Dewar <dewar@adacore.com>
5912 * sem_ch13.adb (Analyze_Aspect_Specifications): Check for
5913 language defined aspect applied to renaming or formal type
5914 declaration (not permitted)
5916 2012-01-23 Matthew Heaney <heaney@adacore.com>
5918 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Vet): Replaced
5919 comment with pragma Assert.
5921 2012-01-23 Vincent Pucci <pucci@adacore.com>
5923 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
5924 to Make_Aspect_For_PPC_In_Gen_Sub_Decl added in ASIS mode.
5925 * sem_prag.adb, sem_prag.ads (Make_Aspect_For_PPC_In_Gen_Sub_Decl): New
5926 routine. In ASIS mode, convert any PPC pragmas into aspects in generic
5927 subprogram declaration in order to enable the analysis of PPC boolean
5930 2012-01-23 Robert Dewar <dewar@adacore.com>
5932 * sem_ch3.adb (Analyze_Object_Declaration): Properly
5933 handle Current_Value for volatile variables (also propagate
5934 Treat_As_Volatile from type to object).
5936 2012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
5938 * sem_ch12.adb (Install_Body): Detect the case
5939 where the enclosing context is a package with a stub body that
5940 has already been replaced by the actual body. In such cases,
5941 the freeze node for the enclosing context must be inserted after
5944 2012-01-23 Ed Schonberg <schonberg@adacore.com>
5946 * sem_prag.adb (Analyze_Pragma, case Debug): Freeze the called
5947 subprogram before expanding the pragma into an if-statement with
5948 a block, to ensure that when the subprogram is null its body is
5949 properly generated before expansion.
5951 2012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
5953 * sem_ch12.adb (Analyze_Associations): Alphabetize local variables and
5954 constants. Rename Actual_Types to Actuals_To_Freeze. Rename Next_Formal
5956 Freeze all eligible subprograms which appear as actuals in
5958 (Has_Fully_Defined_Profile): New routine.
5959 (Renames_Standard_Subprogram): New routine.
5960 (Earlier): Add local variable N. Comment update. Do not use source
5961 locations when trying to determine whether one node precedes another.
5963 2012-01-23 Gary Dismukes <dismukes@adacore.com>
5965 * exp_ch4.adb (Expand_Concatenate): In the case
5966 where the result of a concatentation can be null, set the to
5967 result have both the low and high bounds of the right operand (not
5968 just the high bound, as was the case prior to this fix). Also,
5969 fix the saved high bound setting (Last_Opnd_High_Bound) in the
5970 empty string literal case (should have been low bound minus one,
5971 rather than plus one).
5973 2012-01-23 Thomas Quinot <quinot@adacore.com>
5975 * scos.ads, put_scos.adb, get_scos.adb (Get_SCOs, Put_SCOs): Do not
5976 omit statement SCOs for disabled pragmas.
5978 2012-01-23 Matthew Heaney <heaney@adacore.com>
5980 * a-cohase.ads, a-cihase.ads, a-cbhase.ads, a-coorse.ads,
5981 a-ciorse.ads, a-cborse.ads, a-cohama.ads, a-cihama.ads, a-cbhama.ads,
5982 a-coorma.ads, a-ciorma.ads, a-cborma.ads, a-cdlili.ads, a-cidlli.ads,
5983 a-cbdlli.ads, a-convec.ads, a-coinve.ads, a-cobove.ads (Cursor'Read,
5984 Cursor'Write): Declare in private part.
5985 (Reference_Type'Read, Reference_Type'Write): Ditto.
5986 (Constant_Reference_Type'Read, Constant_Reference_Type'Write): Ditto.
5988 2012-01-23 Robert Dewar <dewar@adacore.com>
5990 * a-catizo.ads, a-calend.adb, a-calend.ads, par-ch13.adb: Minor
5993 2012-01-23 Ed Schonberg <schonberg@adacore.com>
5995 * sem_ch6.adb (Analyze_Subprogram_Declaration): Do not set the
5996 Corresponding_Body on a defaulted null formal subprogram.
5997 * sem_ch12.adb (Check_Formal_Package_Instance): No check needed
5998 on a defaulted formal subprogram that is a null procedure.
6000 2012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
6002 * exp_ch9.adb: Update the comments involving pragma Implemented.
6003 * sem_ch3.adb (Check_Pragma_Implemented (Entity_Id)): Add local
6004 constant Subp_Alias and local variable Impl_Subp. Properly
6005 handle aliases of synchronized wrappers. Code cleanup.
6006 (Check_Pragma_Implemented (Entity_Id; Entity_Id)): Add
6007 Name_Optional as part of the condition.
6008 * sem_prag.adb (Analyze_Pragma): Add "Optional" as one of the
6009 valid choices of implementation kind.
6010 (Check_Arg_Is_One_Of): New routine.
6011 * snames.ads-tmlp: Add Name_Optional.
6013 2012-01-23 Ed Schonberg <schonberg@adacore.com>
6015 * par-ch13.adb: Better error recovery in illegal aspect
6018 2012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
6020 * a-calend.adb: Add with clause for Interfaces.C. Add constant
6022 (Day_Of_Week): Call the internal UTC_Time_Offset.
6023 (Split): Call the internal UTC_Time_Offset.
6024 (Time_Of): Call the internal UTC_Time_Offset.
6025 (Time_Zone_Operations.UTC_Time_Offset): Call internal UTC_Time_Offset.
6026 (UTC_Time_Offset): New library-level routine.
6027 * a-calend.ads (UTC_Time_Offset): Remove parameter
6028 Is_Historic. Update related comment on usage.
6029 * a-catizo.adb (UTC_Time_Offset): Removed.
6030 (UTC_Time_Offset (Time)): Call Time_Zone_Operations.UTC_Time_Offset.
6031 * a-caltizo.ads (UTC_Time_Offset): Removed.
6032 (UTC_Time_Offset (Time)): Add back the default expression of parameter
6035 2012-01-23 Robert Dewar <dewar@adacore.com>
6037 * sprint.ads, sprint.adb (Sprint_Node_List): Add New_Lines parameter
6038 (pg,po,ps): Make sure each entry starts on new line.
6040 2012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
6042 * a-calend.ads, a-calend.adb: Define types int and int_Pointer. Update
6043 the parameter profile of procedure localtime_tzoff and its associated
6045 (Day_Of_Week): Do not treat the input date as historical
6046 with respect to time zones.
6047 (Split): Do not treat the input
6048 date as historical with respect to time zones. (Time_Of): Do
6049 not treat the input constituents as forming a historical date
6050 with respect to time zones.
6051 (UTC_Time_Offset): Add new formal
6052 parameter Is_Historic. Add local variable Flag. Update the call
6054 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): New routine.
6055 (UTC_Time_Offset (Time)): Update the call to
6056 Time_Zone_Operations.UTC_Time_Offset.
6057 * sysdep.c (__gnat_localtime_tzoff): Update parameter
6058 profile. Split the processing of offsets on Windows into two - one
6059 part of historic time stamps and the other for the current time.
6061 2012-01-23 Robert Dewar <dewar@adacore.com>
6063 * a-calend.adb: Minor reformatting.
6065 2012-01-23 Ed Schonberg <schonberg@adacore.com>
6067 * exp_ch9.adb, sem_ch9.adb: Handle array of access to synchronized
6068 interface in requeue statement.
6070 2012-01-23 Cyrille Comar <comar@adacore.com>
6072 * projects.texi: Remove references to main units and replace
6073 with references to main programs to be coherent with the
6076 2012-01-23 Robert Dewar <dewar@adacore.com>
6078 * s-utf_32.adb: Minor reformatting.
6080 2012-01-23 Vincent Celier <celier@adacore.com>
6082 * snames.ads-tmpl: Minor comment addition Indicate that
6083 Name_Library_Encapsulated_Options is only used in gprbuild.
6085 2012-01-23 Robert Dewar <dewar@adacore.com>
6087 * sem_ch10.adb (Analyze_Subunit): Properly save/restore cunit
6090 2012-01-23 Ed Schonberg <schonberg@adacore.com>
6092 * snames.ads-tmpl: Add Name_Synchronization.
6093 * aspects.ads, aspects.adb: Add Aspect_Synchronization to
6094 enumeration type and related maps.
6095 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle Aspect
6096 Synchronization, build corresponding pragma Implemented.
6097 * sem_util.adb (Implementation_Kind): Handle both explicit and
6098 implicit pragma_argument association to retrieve the given
6099 synchronization mode.
6101 2012-01-23 Robert Dewar <dewar@adacore.com>
6103 * sem_ch10.adb, errout.adb: Minor reformatting.
6105 2012-01-23 Ed Schonberg <schonberg@adacore.com>
6107 * sem_res.adb (Resolve_Actuals): An actual in a call to an
6108 Ada 2012 Reference function does not lead to a dangerous order
6111 2012-01-23 Gary Dismukes <dismukes@adacore.com>
6113 * exp_util.adb (Is_Iterated_Container): Test
6114 Is_Entity_Name when searching for calls to the default iterator,
6115 to avoid blowing up on indirect calls which have an explicit
6116 dereference as the call name.
6118 2012-01-23 Thomas Quinot <quinot@adacore.com>
6120 * errout.adb (Set_Msg_Node): For an N_Expanded_Name, output
6121 the complete expanded name, rather than just its Selector_Name.
6123 2012-01-23 Thomas Quinot <quinot@adacore.com>
6125 * a-textio.adb (Put): Rewrite one-parameter Character version to
6126 just call the two-parameter one with Current_Out.
6128 2012-01-23 Hristian Kirtchev <kirtchev@adacore.com>
6130 * freeze.adb (Check_Current_Instance): Issue an
6131 error when the prefix of 'Unchecked_Access or 'Access does not
6132 denote a legal aliased view of a type.
6133 (Freeze_Record_Type): Do not halt the processing of record components
6134 once the Has_Controlled_Component is set as this bypasses the remaining
6136 (Is_Aliased_View_Of_Type): New routine.
6138 2012-01-23 Thomas Quinot <quinot@adacore.com>
6140 * errout.ads, freeze.adb: Minor reformatting.
6142 2012-01-23 Thomas Quinot <quinot@adacore.com>
6144 * sem_ch10.adb, sem_prag.adb: Remove redundant apostrophes in error
6147 2012-01-23 Olivier Hainque <hainque@adacore.com>
6149 * adadecode.c (__gnat_decode): Deal with empty input early,
6150 preventing potential erroneous memory access later on.
6152 2012-01-21 Eric Botcazou <ebotcazou@adacore.com>
6155 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the case of a
6156 renaming, preserve the volatileness through the indirection, if any.
6158 2012-01-14 Andreas Schwab <schwab@linux-m68k.org>
6160 * gcc-interface/Makefile.in (OSCONS_EXTRACT): Add
6163 2012-01-10 Pascal Obry <obry@adacore.com>
6165 * prj-nmsc.adb (Check_Library_Attributes):
6166 Kill check for object/source directories for aggregate libraries.
6168 2012-01-10 Matthew Heaney <heaney@adacore.com>
6170 * a-cdlili.adb, a-cdlili.ads, a-cihama.adb, a-cihama.ads, a-coinve.adb,
6171 a-coinve.ads, a-ciorse.adb, a-ciorse.ads, a-coorma.adb, a-coorma.ads,
6172 a-cborma.adb, a-cborma.ads, a-cidlli.adb, a-cidlli.ads, a-cimutr.adb,
6173 a-cimutr.ads, a-cihase.adb, a-cihase.ads, a-cohama.adb, a-cohama.ads,
6174 a-coorse.adb, a-coorse.ads, a-cbhama.adb, a-cbhama.ads, a-cborse.adb,
6175 a-cborse.ads, a-comutr.adb, a-comutr.ads, a-ciorma.adb, a-cobove.adb,
6176 a-ciorma.ads, a-cobove.ads, a-convec.adb, a-convec.ads, a-cohase.adb,
6177 a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbmutr.adb, a-cbmutr.ads,
6178 a-cbhase.adb, a-cbhase.ads (Reference, Constant_Reference): Declare
6179 container parameter as aliased in/in out.
6182 2012-01-10 Bob Duff <duff@adacore.com>
6184 * s-os_lib.ads: Improve comment.
6186 2012-01-10 Geert Bosch <bosch@adacore.com>
6188 * s-gearop.adb (Forward_Eliminate): Avoid improper aliasing
6191 2012-01-10 Bob Duff <duff@adacore.com>
6193 * sem_intr.adb (Check_Shift): Use RM_Size instead of Esize, when
6194 checking that the 'Size is correct. If the type is "mod 2**12",
6195 for example, it's illegal, but Esize is the 'Object_Size, which
6196 will be something like 16 or 32, so the error ('Size = 12) was
6198 * gnat_rm.texi: Improve documentation of shift
6199 and rotate intrinsics.
6201 2012-01-10 Pascal Obry <obry@adacore.com>
6203 * prj.adb (For_Every_Project_Imported): Fix
6204 implementation to make sure we return each project only once
6205 for aggragte libraries. It is fine to return a project twice for
6206 aggregate projects, this was the case as a Project_Id is different
6207 in each project tree. The new implementation use a table based on
6208 the project name to ensure proper detection of duplicate project
6209 in aggregate library. A new context is then created to continue
6210 retrurning duplicate project for aggregate libraries.
6212 2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
6214 * gcc-interface/trans.c (call_to_gnu): Create the temporary for the
6215 return value in the variable-sized return type case if the target is
6216 an array with fixed size. However, do not create it if this is the
6217 expression of an object declaration.
6219 2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
6221 * gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko.
6223 2012-01-06 Robert Dewar <dewar@adacore.com>
6225 * a-wichha.ads, a-wichun.ads, a-zchhan.ads, a-zchuni.ads,
6226 s-utf_32.ads: Add pragma Pure
6227 * s-utf_32.adb: Suppress warnings on non-static constants (now
6230 2012-01-06 Bob Duff <duff@adacore.com>
6232 * s-rpc.ads (Read, Write): Add overriding indicators.
6234 2012-01-06 Robert Dewar <dewar@adacore.com>
6236 * gnat_rm.texi: Add documentation for conventions
6237 Ada_Pass_By_Copy and Ada_Pass_By_Reference.
6239 2012-01-06 Gary Dismukes <dismukes@adacore.com>
6241 * a-tienio.adb (Put): Add exception message on
6242 raise statements. Remove unneeded blocks and object declarations.
6244 2012-01-06 Robert Dewar <dewar@adacore.com>
6246 * sem_prag.adb: Minor reformatting.
6248 2012-01-06 Ed Schonberg <schonberg@adacore.com>
6250 * sinfo.ads, sinfo.adb (Has_Prefixed_Call): New flag to indicate
6251 that a selected component within a generic unit has been resolved
6252 as a prefixed call with local references.
6253 * sem_ch3.adb (Is_Visible_Component): In an instance body a selected
6254 component is always visible.
6255 * sem_ch4.adb (Analyze_Selected_Component): If the node is a
6256 prefixed call in an instance, do not look for visible components
6258 * sem_ch12.adb (Reset_Entity): If a selected component has resolved
6259 to a prefixed call, mark the node accordingly when prefix and
6260 selector are local references.
6262 2012-01-02 Eric Botcazou <ebotcazou@adacore.com>
6264 * gnatvsn.ads (Current_Year): Bump to 2012.
6266 Copyright (C) 2012 Free Software Foundation, Inc.
6268 Copying and distribution of this file, with or without modification,
6269 are permitted in any medium without royalty provided the copyright
6270 notice and this notice are preserved.