]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[multiple changes]
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
f553e7bc
AC
12011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
2
3 * exp_ch13.adb: Add with and use clauses for Restrict and Rident.
4 (Expand_N_Free_Statement): Add a guard to protect against run-times
5 which do not support controlled types.
6 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
7 against run-times which do not support controlled types.
8 * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
9 against run-times which do not support controlled types.
10 * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
11 against run-times which do not support controlled types.
12 * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
13 protect against run-times which do not support controlled types.
14
152011-08-03 Eric Botcazou <ebotcazou@adacore.com>
16
17 * exp_intr.adb: Put back with and use clauses for Exp_Ch11.
18 (Expand_Unc_Deallocation): Expand the AT_END handler at the very end.
19
e4982b64
AC
202011-08-03 Ed Schonberg <schonberg@adacore.com>
21
22 * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
23 modified in the source, to prevent spurious warnings when compiling
24 with -gnatg.
25
262011-08-03 Thomas Quinot <quinot@adacore.com>
27
28 * a-except-2005.adb: Minor reformatting.
29
302011-08-03 Ed Schonberg <schonberg@adacore.com>
31
32 * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
33 is a renaming declaration in the private part of a package, do not emit
34 a warning that the with_clause could be moved because the renaming may
35 be used in the body or in a child unit.
36
372011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
38
39 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
40 Propagate the Comes_From_Source attribute from the original return
41 object to the renaming.
42
432011-08-03 Jose Ruiz <ruiz@adacore.com>
44
45 * exp_ch7.adb (Build_Raise_Statement): Do not call
46 Raise_From_Controlled_Operation when this routine is not present in
47 the run-time library.
48 (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
49 libraries (Ravenscar), tasks are non-terminating, and protected objects
50 and tasks can only appear at library level, so we do not want
51 finalization of protected objects nor tasks.
52 * exp_intr.adb: Minor clarification in comment.
53 bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
54 Gen_Output_File_C): Remove references to finalization of library-level
55 objects when using restricted run-time libraries.
56
572011-08-03 Ed Schonberg <schonberg@adacore.com>
58
59 * sem_ch3.adb (Build_Discriminant_Constraints): Set
60 Original_Discriminant only if the parent type is a generic formal.
61
deb8dacc
HK
622011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
63
64 * exp_ch13.adb: Add with and use clause for Targparm;
65 (Expand_N_Free_Statement): Prevent the generation of a custom
66 Deallocate on .NET/JVM targets since this requires pools and address
67 arithmetic.
68 * exp_ch4.adb (Expand_Allocator_Expression): When compiling for
69 .NET/JVM targets, attach the newly allocated object to the access
70 type's finalization collection. Do not generate a call to
71 Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
72 exist in the runtime.
73 (Expand_N_Allocator): When compiling for .NET/JVM targets, do not
74 create a custom Allocate for object that do not require initialization.
75 Attach a newly allocated object to the access type's finalization
76 collection on .NET/JVM.
77 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
78 assignment of controlled types on .NET/JVM. The two hidden pointers
79 Prev and Next and stored and later restored after the assignment takes
80 place.
81 * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
82 kludge for .NET/JVM to recognize a particular piece of code coming from
83 Heap_Management and change the call to Finalize into Deep_Finalize.
84 * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
85 finalization collections on .NET/JVM only for types derived from
86 Controlled. Separate the association of storage pools with a collection
87 and only allow it on non-.NET/JVM targets.
88 (Make_Attach_Call): New routine.
89 (Make_Detach_Call): New routine.
90 (Process_Object_Declarations): Suppress the generation of
91 build-in-place return object clean up code on .NET/JVM since it uses
92 pools.
93 * exp_ch7.ads (Make_Attach_Call): New routine.
94 (Make_Detach_Call): New routine.
95 * exp_intr.adb Add with and use clause for Targparm.
96 (Expand_Unc_Deallocation): Detach a controlled object from a collection
97 on .NET/JVM targets.
98 * rtsfind.ads: Add entries RE_Attach, RE_Detach and
99 RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
100 * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
101 names used in finalization.
102
1032011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
104
105 * a-fihema.adb: Add with and use clauses for System.Soft_Links.
106 (Attach, Detach): Lock the current task when chaining an object onto a
107 collection.
108
df3e68b1
HK
1092011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
110
111 * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
112 Rewritten to create the message strings when the exception is not
113 raised by an abort during finalization.
114 * a-except.ads, a-except-2005.ads: Add pragma Export for procedure
115 Raise_From_Controlled_Operation and update its associated comment.
116 * a-fihema.ads, a-fihema.adb: New GNAT unit.
117 Ada.Finalization.Heap_Management provides key functionality
118 associated with controlled objects on the heap, their creation,
119 finalization and reclamation. Type Finalization_Collection is
120 effectively a wrapper which sits ontop of a storage pool and performs
121 all necessary bookkeeping for all the objects it contains. Each
122 access-to-controlled or access-to-class-wide type receives a collection
123 as part of its expansion. The compiler generates buffer code and
124 invokes Allocate / Deallocate to create and destroy allocated
125 controlled objects.
126 * a-finali.adb ("="): Removed.
127 * a-finali.ads ("="): Removed. Controlled types no longer carry hidden
128 fields Prev and Next.
129 * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
130 A library unit with at least one controlled object on the library level
131 has a special finalizer which is invoked by the binder. To signal this,
132 ali files carry field PF.
133 * ali.ads: New field in type Unit_Record called Has_Finalizer. Add
134 associated comment on field usage.
135 * a-tags.adb (Get_RC_Offset): Removed.
136 (Needs_Finalization): New routine.
137 * a-tags.ads: Update the structure of the GNAT dispatch tables.
138 Dispatch tables now carry field Needs_Finalization which provides
139 runtime indication whether a type is controlled or has controlled
140 components or both. Remove field RC_Offset.
141 (Get_RC_Offset): Removed along with its associated pragma Export.
142 Since tagged types with controlled components no longer carry hidden
143 field _controller, the special mechanism to retrieve its location is no
144 longer needed.
145 (Needs_Finalization): New routine.
146 * atree.ads, atree.adb (Elist24): New routine.
147 (Set_Elist24): New routine.
148 * atree.h: Add a define clause for Elist24.
149 * bindgen.adb New library-level variable Lib_Final_Built.
150 (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
151 presence of a VM target, the routine generates calls to the proper
152 library finalization routine.
153 (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
154 targets. Set the correct library finalization routine depending on
155 whether the library has controlled objects or this is a VM compilation.
156 (Gen_Finalize_Library_Ada): New routine. This procedure generates calls
157 to library-level finalizers of compiled units in reverse order of
158 elaboration. It also produces exception management code and reraises a
159 potential exception after all units have been finalized.
160 (Gen_Finalize_Library_C): New routine. This procedure generates calls to
161 library-level finalizers of compiled units in reverse order of
162 elaboration.
163 (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
164 definitions of all library-level finalizers available to the compilation
165 (Gen_Main_Ada): Directly call Adafinal which now contails all target
166 dependent code.
167 (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
168 System.Standard_Library.Adafinal directly. If the library needs
169 finalization actions, create the sequence of finalization calls.
170 (Gen_Output_File_Ada): Alphabetize local variables and constants.
171 Generate a with clause for System.Soft_Links when compiling for a VM.
172 Remove the code which imports System.Standard_Library.Adafinal as
173 Do_Finalize. Generate the library finalization routine.
174 (Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
175 If the library needs finalization actions, create all the definitions
176 of library- level finalizers.
177 (Has_Finalizer): New routine. Determines whether at least one compiled
178 unit has a library-level finalizer.
179 Add type Qualification_Mode.
180 (Set_Unit_Name): Add a formal which controls the replacement of a dot.
181 * einfo.adb: New usage of field 15 as Return_Flag.
182 Remove Finalization_Chain_Entity from the usages of field 19.
183 Remove Associated_Final_Chain from the usages of field 23.
184 New usage of field 23 as Associated_Collection.
185 New usage of field 24 as Finalizer.
186 New usage of flag 252 as Is_Processed_Transient.
187 (Associated_Final_Chain): Removed.
188 (Associated_Collection): New routine.
189 (Finalization_Chain_Entity): Removed.
190 (Finalizer): New routine.
191 (Is_Finalizer): New routine.
192 (Is_Processed_Transient): New routine.
193 (Return_Flag): New routine.
194 (Set_Associated_Final_Chain): Removed.
195 (Set_Associated_Collection): New routine.
196 (Set_Finalization_Chain_Entity): Removed.
197 (Set_Finalizer): New routine.
198 (Set_Is_Processed_Transient): New routine.
199 (Set_Return_Flag): New routine.
200 (Write_Entity_Flags): Include Is_Processed_Transient to the list of
201 displayed flags.
202 (Write_Field8_Name): Alphabetize the output.
203 (Write_Field11_Name): Alphabetize the output.
204 (Write_Field12_Name): Alphabetize the output.
205 (Write_Field13_Name): Alphabetize the output.
206 (Write_Field14_Name): Alphabetize the output.
207 (Write_Field15_Name): Alphabetize the output.
208 (Write_Field16_Name): Alphabetize the output.
209 (Write_Field17_Name): Alphabetize the output.
210 (Write_Field18_Name): Alphabetize the output.
211 (Write_Field19_Name): Alphabetize the output. Remove the output of
212 Finalization_Chain_Entity.
213 (Write_Field20_Name): Alphabetize the output.
214 (Write_Field21_Name): Alphabetize the output.
215 (Write_Field22_Name): Alphabetize the output.
216 (Write_Field23_Name): Alphabetize the output. Remove the output of
217 Associated_Final_Chain. Add output for Associated_Collection.
218 (Write_Field24_Name): Alphabetize the output.
219 (Write_Field25_Name): Add output for Finalizer.
220 (Write_Field26_Name): Alphabetize the output.
221 (Write_Field27_Name): Alphabetize the output.
222 (Write_Field28_Name): Alphabetize the output.
223 * einfo.ads: Add new field description for Associated_Collection and
224 its uses in nodes.
225 Remove Associated_Final_Chain and its uses in nodes.
226 Remove Finalization_Chain_Entity and its uses in nodes.
227 Add new field description for Finalizer and its uses in nodes.
228 Add new synthesized attribute Is_Finalizer.
229 Add new flag description for Is_Processed_Transient and its uses in
230 nodes.
231 Add new field description for Return_Flag and its uses in nodes.
232 (Associated_Final_Chain): Removed along with its pragma Inline.
233 (Associated_Collection): New routine and pragma Inline.
234 (Finalization_Chain_Entity): Removed along with its pragma Inline.
235 (Finalizer): New routine and pragma Inline.
236 (Is_Finalizer): New routine and pragma Inline.
237 (Is_Processed_Transient): New routine and pragma Inline.
238 (Return_Flag): New routine and pragma Inline.
239 (Set_Associated_Final_Chain): Removed along with its pragma Inline.
240 (Set_Associated_Collection): New routine and pragma Inline.
241 (Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
242 (Set_Finalizer): New routine and pragma Inline.
243 (Set_Is_Processed_Transient): New routine and pragma Inline.
244 (Set_Return_Flag): New routine and pragma Inline.
245 * exp_aggr.adb: Alphabetize subprograms.
246 (Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
247 (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
248 associated comments. Remove local variables External_Final_List and
249 Attach.
250 Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
251 Ancestor. Remove the retrieval of finalization lists. Update the call to
252 Make_Adjust_Call.
253 (Convert_Aggr_In_Allocator): Remove the retrieval of finalization
254 lists. Update the call to Late_Expansion.
255 (Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
256 (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
257 (Gen_Assign): Remove the retrieval of the finalization list used to
258 build the assignment. Update the calls to Make_Init_Call and
259 Make_Adjust_Call.
260 (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
261 Remove the mechanism to determine attachment levels and finalization
262 list retrieval. Remove the processing for coextensions.
263 (Init_Controller): Removed. Controllers no longer exist.
264 (Late_Expansion): Remove formals Flist and Obj along with their
265 associated comments. Update the calls to Build_Record_Aggr_Code and
266 Build_Array_Aggr_Code.
267 * exp_ch13.adb (Expand_N_Free_Statement): New routine.
268 (Expand_N_Freeze_Entity): Add special processing for finalizers which
269 appear in entry bodies, protected subprograms and task bodies.
270 * exp_ch13.ads (Expand_N_Free_Statement): New routine.
271 * exp_ch3.adb (Add_Final_Chain): Removed.
272 (Build_Array_Init_Proc): Alphabetize local variables.
273 (Build_Assignment): Alphabetize local variables. Update the call to
274 Maked_Adjust_Call.
275 (Build_Class_Wide_Master): Rename local variables to better reflect
276 their role.
277 (Build_Discriminant_Assignments): Code reformatting.
278 (Build_Init_Call_Thru): Code reformatting.
279 (Build_Init_Procedure): Code reformatting. Generate a special version
280 of Deep_Finalize which is capable of finalizing all initialized
281 components and ignore the rest.
282 (Build_Init_Statements): Rename local variables to better reflect their
283 role.
284 Reimplement the mechanism to include the creation and update of an index
285 variable called a "counter". It is used as a bookmark for tracing
286 initialized and non-initialized components.
287 (Build_Initialization_Call): Remove local variable Controller_Typ.
288 Alphabetize all local variables. Remove the initialization of the
289 record controller and update the call to Make_Init_Call.
290 (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
291 New local variable Counter.
292 (Constrain_Array): Alphabetize.
293 (Expand_Freeze_Array_Type): Create a collection instead of a
294 finalization list.
295 (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
296 Finalize_Address which is used in conjunction with allocated controlled
297 objects.
298 (Expand_N_Object_Declaration): Remove the creation of a finalization
299 list for anonymous access types. Update the calls to Make_Init_Call and
300 Make_Adjust_Call.
301 (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
302 retrieval of finalization lists. Remove the expansion of the record
303 controller. Create TSS primitive Finalize_Address used in conjunction
304 with controlled objects on the heap. Create finalization collections
305 for access-to-controlled record components.
306 (Expand_Record_Controller): Removed.
307 (Freeze_Type): Remove the freezing of record controllers. Freezing of
308 class-wide types now requires additional processing. Create
309 finalization collections for access-to-controlled types.
310 (Increment_Counter): New routine.
311 (Make_Counter): New routine.
312 (Make_Eq_If): Remove the mention of Name_uController.
313 (Make_Predefined_Primitive_Specs): There is no longer need to skip
314 types coming from System.Finalization_Root.
315 (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
316 (Predefined_Primitive_Bodies): There is no longer need to skip types
317 coming from System.Finalization_Root.
318 (Stream_Operation_OK): Do not generate stream routines for
319 type Ada.Finalization.Heap_Management.Finalization_Collection.
320 * exp_ch3.ads: Alphabetize subprograms.
321 * exp_ch4.adb: Remove with and use clause for Sem_Ch8.
322 Add with and use clause for Lib.
323 (Complete_Coextension_Finalization): Removed.
324 (Complete_Controlled_Allocation): New routine. Create a finalization
325 collection for anonymous access-to-controlled types. Create a custom
326 Allocate which interfaces with the back end and the machinery in
327 Heap_Management.
328 (Expand_Allocator_Expression): Add necessary calls to
329 Complete_Controlled_Allocation. Remove the retrieval of finalization
330 lists. Update the calls to Make_Adjust_Call. Generate a call to
331 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
332 the associated collection.
333 (Expand_N_Allocator): Remove the processing for dynamic coextensions.
334 Code clean up. Remove the retrieval of finalization lists and
335 attachment levels.
336 Update the call to Make_Init_Call. Generate a call to
337 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
338 the associated collection.
339 (Get_Allocator_Final_List): Removed. Finalization lists are not
340 available.
341 (Suitable_Element): Remove the mention of Name_uController.
342 * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
343 (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
344 the left hand side, carry out the assignment and adjust the left hand
345 side.
346 * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
347 (Add_Collection_Actual_To_Build_In_Place_Call): New routine.
348 (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
349 BIP_Collection and BIPcollection.
350 (Build_Heap_Allocator): New routine used to allocate the return object
351 of a build-in-place function onto a collection.
352 (Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
353 (Expand_Call): Do not replace direct calls to Deep routines with their
354 aliases.
355 (Expand_N_Extended_Return_Statement): Give all variables shorter names
356 and update their occurrences. Add a special return flag to monitor the
357 [ab]normal execution of the function. The flag is set right before the
358 return statement.
359 Rewrite the mechanism used to allocate a build-in-place return object
360 on the heap or on a storage pool.
361 (Is_Direct_Deep_Call): New routine.
362 (Make_Build_In_Place_Call_In_Allocator): Add a collection to a
363 build-in-place function call instead of a final list. Build a call to
364 Set_Finalize_Address_Ptr to decorate the associated collection.
365 (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
366 order to name the build-in-place function call's result for later
367 finalization. Add a collection to a build-in-place function call
368 instead of a final list.
369 (Make_Build_In_Place_Call_In_Assignment): Add a collection to a
370 build-in-place function call instead of a final list. Remove the code
371 which moves one final list and transforms it into the actual in a
372 nested build-in-place call.
373 (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
374 build-in-place function call instead of a final list.
375 (Move_Final_List): Removed.
376 (Needs_BIP_Collection): New routine.
377 (Needs_BIP_Final_List): Removed.
378 * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
379 enumeration type BIP_Formal_Kind.
380 Update the related comment.
381 (Needs_BIP_Collection): New routine.
382 (Needs_BIP_Final_List): Removed.
383 * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
384 and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
385 majority of subprograms in this unit. Add Name_Finalize_Address to
386 array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
387 (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
388 statements for an array type.
389 (Build_Adjust_Statements): Create the adjust statements for a record
390 type.
391 (Build_Cleanup_Statements): New routine. A procedure which given any
392 construct containing asynchronous calls, references to _master, or is a
393 task body, a task allocation or a protected body produces the necessary
394 runtime calls to clean up these constructs.
395 (Build_Exception_Handler): New routine.
396 (Build_Final_List): Removed.
397 (Build_Finalization_Collection): New routine. A core procedure which
398 creates a collection to service heap allocated controlled objects
399 associated with an access-to-controlled type.
400 (Build_Finalize_Statements): Create the finalization statements for a
401 record types.
402 (Build_Finalizer): New routine. A core procedure which given any
403 construct with declarations and/or statements detects all objects which
404 need any type of clean up (controlled objects, protected objects) and
405 generates all necessary code to clean up the said objects in the proper
406 order.
407 (Build_Finalizer_Call): New routine.
408 (Build_Initialize_Statements): Create the initialization statements for
409 an array type. The generated routine contains code to finalize partially
410 initialized arrays.
411 (Build_Object_Declarations): New routine.
412 (Build_Raise_Statement): New routine.
413 (Clean_Simple_Protected_Objects): Removed.
414 (Controller_Component): Removed.
415 (Enclosing_Function): New routine.
416 (Expand_Cleanup_Actions): Create a finalizer for a construct which has
417 either declarations or statements or both.
418 (Expand_N_Package_Body): Create a finalizer for a non-generic package.
419 (Expand_N_Package_Declaration): Create a finalizer for a non-generic
420 package.
421 (Find_Final_List): Removed.
422 (Global_Flist_Ref): Removed.
423 (In_Finalization_Root): Removed.
424 (Insert_Actions_In_Scope_Around): Determine the range of the transient
425 scope in terms of tree nodes. Process all transient variables within
426 that range.
427 (Make_Adjust_Call): Rewritten. There is no longer an attach call
428 generated after the adjust.
429 (Make_Attach_Call): Removed.
430 (Make_Call): New routine.
431 (Make_Clean): Removed.
432 (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
433 build routines.
434 (Make_Deep_Proc): Rewritten to generate the new profile signature used
435 in Deep routines.
436 (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
437 build routines.
438 (Make_Final_Call): Modified to simply create a call to either
439 Deep_Finalize or Finalize.
440 (Make_Finalize_Address_Body): New routine.
441 (Make_Finalize_Address_Stmts): New routine. A function which produces
442 TSS primitive Finalize_Address used in conjunction with heap allocated
443 controlled objects.
444 (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
445 (Make_Init_Call): Rewritten. There is no longer an attach call
446 generated after initialization.
447 (Make_Local_Deep_Finalize): New routine.
448 (Make_Set_Finalize_Address_Ptr_Call): New routine.
449 (Make_Transient_Block): Remove the finalization list retrieval and
450 manipulation.
451 (Needs_Finalization): Moved to Exp_Util.
452 (Parent_Field_Type): New routine.
453 (Preprocess_Components): New routine.
454 (Process_Transient_Objects): New routine.
455 (Wrap_HSS_In_Block): New routine.
456 (Wrap_Transient_Declaration): Remove finalization list management and
457 controller insertion.
458 (Wrap_Transient_Expression): Code reformatting.
459 (Wrap_Transient_Statement): Code reformatting.
460 * exp_ch7.ads (Build_Final_List): Removed.
461 (Build_Finalization_Collection): New routine.
462 (Build_Raise_Statement): New routine.
463 (Controller_Component): Removed.
464 (Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
465 (Find_Final_List): Removed.
466 (In_Finalization_Root): Removed.
467 (Is_Simple_Protected_Type): Update related comment.
468 (Make_Adjust_Call): New parameter profile and associated comments.
469 (Make_Attach_Call): Removed.
470 (Make_Final_Call): New parameter profile and associated comments.
471 (Make_Finalize_Address_Body): New routine.
472 (Make_Init_Call): New parameter profile and associated comments.
473 (Make_Local_Deep_Finalize): New routine.
474 (Make_Set_Finalize_Address_Ptr_Call): New routine.
475 (Needs_Finalization): Moved to Exp_Util.
476 * exp_ch9.adb (Add_Object_Pointer): Code reformatting.
477 (Expand_N_Protected_Body): Remove the handling of finalization lists.
478 (Find_Protection_Type): Moved to Exp_Util.
479 * exp_disp.adb: Remove with and use clauses for Exp_Ch7.
480 (Make_DT): Update sequence of dispatch table initialization. Remove the
481 initialization of field RC_Offset. Add initialization of field Needs_
482 Finalization.
483 * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
484 Reimplement how an object is first finalized, then deallocated.
485 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
486 Code reformatting.
487 * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
488 Register TSS_Finalize_Address with type TSS_Names.
489 * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
490 procedure provides the interface between an allocation / deallocation
491 and the support machinery in Ada.Finalization.Heap_Management.
492 (Find_Init_Call): Code reformatting.
493 (Find_Init_Call_In_List): Code reformatting.
494 (Find_Protection_Type): Moved from Exp_Ch9.
495 (Find_Prim_Op): Reimplement to add preference of recovered primitive.
496 (Has_Controlled_Coextensions): Removed.
497 (Has_Controlled_Objects): New routine.
498 (In_Library_Level_Package_Body): New routine.
499 (Insert_Action_After): New routine.
500 (Is_Finalizable_Transient): New routine. This predicate determines
501 whether an object declaration is one of the many variants of controlled
502 transients.
503 (Is_Null_Access_BIP_Func_Call): New routine.
504 (Is_Non_BIP_Func_Call): New routine.
505 (Is_Related_To_Func_Return): New routine.
506 (Needs_Finalization): Moved from Exp_Ch7.
507 * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
508 (Find_Protection_Type): Moved from Exp_Ch9.
509 (Has_Controlled_Coextensions): Removed.
510 (Has_Controlled_Objects): New routine.
511 (In_Library_Level_Package_Body): New routine.
512 (Insert_Action_After): New routine.
513 (Is_Finalizable_Transient): New routine.
514 (Is_Null_Access_BIP_Func_Call): New routine.
515 (Is_Non_BIP_Func_Call): New routine.
516 (Is_Related_To_Func_Return): New routine.
517 (Needs_Finalization): Moved from Exp_ch7.
518 * expander.adb (Expand): Add a case for N_Free_Statement.
519 * freeze.adb (Freeze_All): Replace the generation of a finalization
520 list with a collection for access-to-controlled types.
521 (Freeze_Entity): Code reformatting.
522 (Freeze_Record_Type): Remove the freezing of a record controller
523 component.
524 (Freeze_Subprogram): Code reformatting.
525 * inline.adb (Cleanup_Scopes): Remove the reset of the scope
526 finalization list.
527 * lib-writ.adb (Write_Unit_Information): Output "PF" when a package
528 has a library-level finalizer.
529 * lib-writ.ads: Add "PF" to the sequence of unit attributes.
530 * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
531 * Makefile.rtl: Remove a-filico and s-finimp from the list of object
532 files. Add a-fihema to the list of object files.
533 * par-ch4.adb:
534 Alphabetize the associations in type Is_Parameterless_Attribute.
535 * rtsfind.ads: Ada.Finalization_List.Controller and
536 System.Finalization_Implementation are no longer a GNAT unit.
537 Update the range of type Ada_Finalization_Child. Remove the following
538 recoverable entities:
539
540 RE_Attach_To_Final_List
541 RE_Deep_Tag_Attach
542 RE_Finalize_List
543 RE_Finalize_One
544 RE_Finalizable_Ptr_Ptr
545 RE_Global_Final_List
546 RE_Limited_Record_Controller
547 RE_List_Controller
548 RE_Move_Final_List
549 RE_Record_Controller
550 RE_Simple_List_Controller
551
552 Add the following recoverable entities:
553
554 RE_Add_Offset_To_Address
555 RE_Allocate
556 RE_Base_Pool
557 RE_Deallocate
558 RE_Exception_Identity
559 RE_Finalization_Collection
560 RE_Finalization_Collection_Ptr
561 RE_Needs_Finalization
562 RE_Save_Library_Occurrence
563 RE_Set_Finalize_Address_Ptr
564 RE_Set_Storage_Pool_Ptr
565 RE_Storage_Count
566 * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
567 Name_uController.
568 * sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
569 (First_Stored_Discriminant): Remove the mention of Name_uController.
570 * sem_aux.ads: Comment reformatting.
571 * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
572 to redecorate an already existing class-wide type.
573 (Decorate_Tagged_Type): New parameter profile and associated comment.
574 Create a "shadow class-wide type" for a shadow entity.
575 * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
576 of the final chain along with the associated comment.
577 * sem_ch3.adb (Access_Type_Declaration): Add new local variable
578 Full_Desig and set it to the full view of the designated type.
579 Initialize the finalization collection to empty.
580 (Build_Derived_Record_Type): Alphabetize local variables. Code
581 reformatting.
582 (Collect_Fixed_Components): Remove the mention of Name_uController.
583 (Create_Constrained_Components): Remove the mention of Name_uController.
584 (Make_Class_Wide_Type): Add specialized code to redecorate an existing
585 class-wide type of a shadow entity.
586 (Process_Full_View): Update the machinery which marks type
587 Limited_Controlled's entity as limited.
588 * sem_ch4.adb (Analyze_One_Call): Code reformatting.
589 * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
590 list, instead make a collection build-in-place formal.
591 * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
592 a designated type in order to establish a match between the renaming
593 and the renamed entity.
594 (Find_Selected_Component): Add guard to prevent spurious exceptions
595 from being raised on .NET/JVM.
596 * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
597 to the list of primitive that need special processing. Update arrays
598 C_Names and D_Names.
599 (Replace_Types): Handle class-wide types.
600 * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
601 different parameter profile, look at the first formal.
602 * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
603 use clauses for Exp_Util.
604 * sem_res.adb: Remove with and use clauses for Elists.
605 (Propagate_Coextensions): Removed.
606 (Resolve_Allocator): Do not propagate the list of coextensions from one
607 allocator to another.
608 * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
609 Deaccessed_T to Desig_Typ.
610 (Enter_Name): Remove the mention of Name_uController.
611 (Gather_Components): Remove the mention of Name_uController.
612 (Incomplete_Or_Private_View): New routine.
613 (Is_Coextension_Root): Removed.
614 (Is_Fully_Initialized_Type): Remove the mention of Name_uController.
615 * sem_util.ads (Incomplete_Or_Private_View): New routine.
616 (Is_Coextension_Root): Removed.
617 * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
618 Controlled types are now derived from a null tagged record. Remove
619 types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
620 * sinfo.adb (Coextensions): Removed.
621 (Set_Coextensions): Removed.
622 * sinfo.ads: Remove Coextensions from the explanation of node fields
623 and its uses in nodes.
624 Update the field usage of N_Allocator.
625 (Coextensions): Removed along with its pragma Inline.
626 (Set_Coextensions): Removed along with its pragma Inline.
627 * snames.ads-tmpl: Remove names
628
629 Name_uClean
630 Name_uController
631 Name_uFinal_List
632 Name_uLocal_Final_List
633 Name_Finalization_Root
634 Name_Next
635 Name_Prev
636
637 Add names
638
639 Name_uFinalizer
640 Name_Finalize_Address
641 * s-pooglo.adb (Allocate): Add overriding indicator.
642 (Deallocate): Add overriding indicator.
643 (Storage_Size): Add overriding indicator.
644 * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
645 than Finalize_Global_List.
646 (Null_Finalize_Global_List): Removed.
647 (Save_Library_Occurrence): New routine.
648 * s-soflin.ads: Remove variable Finalize_Global_List along with its
649 initialization. Add variable Finalize_Library_Objects along with its
650 pragma Export. Add variables Library_Exception and
651 Library_Exception_Set along with their pragma Export.
652 (Null_Finalize_Global_List): Removed.
653 (Save_Library_Occurrence): New routine.
654 * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
655 rather than Finalize_Global_List.
656 * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
657 of the constructed node.
658
2ee06322
RO
6592011-08-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
660
661 * link.c: Include "auto-host.h" before system headers.
662
f77b022b
VC
6632011-08-03 Vincent Celier <celier@adacore.com>
664
665 * make.adb (Gnatmake): Add to table Library_Projs only library projects
666 that are not extended. Do not check if a library project that is
667 extended should be regenerated. Do not add to table Library_Paths the
668 libraries that are in extended projects. Link only with libraries that
669 are in libray projects that are not extended.
670 * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
671 for a library project that is extended.
672
0187b60e
AC
6732011-08-03 Gary Dismukes <dismukes@adacore.com>
674
675 * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
676 conforming subprogram renamings that appear to be completions if they
677 are not fully conformant.
678 Such renamings are homographs but not completions.
679 * sem_type.adb (Disambiguate): Handle disambiguation of overloaded
680 names in a subprogram renaming that appears in an instance.
681
6822011-08-03 Ed Schonberg <schonberg@adacore.com>
683
684 * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
685 not immutably limited, build actual subtype from expression to provide
686 proper bounds to caller.
687
6882011-08-03 Gary Dismukes <dismukes@adacore.com>
689
690 * sem_ch8.adb: Minor comment correction.
691
6922011-08-03 Thomas Quinot <quinot@adacore.com>
693
694 * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
695 returning a limited array, use an extended return statement.
696
6972011-08-03 Vincent Celier <celier@adacore.com>
698
699 * make.adb (Initialize): If --subdirs= is used, but no project file is
700 specified, attempt to create the specify subdir if it does not already
701 exist and use it as the object directory as if -D had been specified.
702
7032011-08-03 Arnaud Charlet <charlet@adacore.com>
704
705 * s-tpopsp-vms.adb: New file.
706 * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
707 * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.
708
e280f981
AC
7092011-08-03 Emmanuel Briot <briot@adacore.com>
710
711 * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
712 package.
713
7142011-08-03 Yannick Moy <moy@adacore.com>
715
716 * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
717 * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
718 * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
719 detect that an array has static bounds.
720
98c99a5a
AC
7212011-08-03 Thomas Quinot <quinot@adacore.com>
722
723 * exp_dist.adb: Minor reformatting.
724
7252011-08-03 Arnaud Charlet <charlet@adacore.com>
726
727 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
728 (ATCB_Key): Removed, not always used.
729
7302011-08-03 Emmanuel Briot <briot@adacore.com>
731
732 * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
733 clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
734 most remaining global variables.
735
686d0984
AC
7362011-08-03 Robert Dewar <dewar@adacore.com>
737
738 * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
739 prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
740 reformatting.
741
7422011-08-03 Javier Miranda <miranda@adacore.com>
743
744 * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
745 that must be passed by copy in VM targets.
746
7472011-08-03 Emmanuel Briot <briot@adacore.com>
748
749 * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
750 duplicates a similar htable now in the project tree.
751
7522011-08-03 Claire Dross <dross@adacore.com>
753
754 * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
755 a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
756 Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
757 Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
758 Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
759 Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
760 Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
761 update.
762
7632011-08-03 Arnaud Charlet <charlet@adacore.com>
764
765 * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
766 (ATCB_Key): Removed, not always used.
767 * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
768 s-taprop-posix.adb.
769 * s-tpopsp-tls.adb: New file.
770 * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
771 x86/x64/ia64/powerpc/sparc Linux.
772
7732011-08-03 Arnaud Charlet <charlet@adacore.com>
774
775 * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
776 * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.
777
7782011-08-03 Thomas Quinot <quinot@adacore.com>
779
780 * rtsfind.ads, exp_dist.adb, exp_dist.ads
781 (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
782 Fix type selection for mapping integer types to PolyORB types.
783
7842011-08-03 Bob Duff <duff@adacore.com>
785
786 * sem_ch7.adb: Minor comment clarification.
787
7882011-08-03 Bob Duff <duff@adacore.com>
789
790 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
791 an error analyzing a choice, skip further processing. Further
792 processing could cause a crash or cascade errors.
793
40ecf2f5
EB
7942011-08-03 Emmanuel Briot <briot@adacore.com>
795
796 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
797 prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
798 prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
799 prj-env.ads (Shared_Project_Tree_Data): new type
800 An aggregate project and its aggregated trees need to share the common
801 data structures used for lists of strings, packages,... This makes the
802 code simpler since otherwise we have to pass the root tree (also used
803 for the configuration file data) in addition to the current project
804 tree. This also avoids ambiguities as to which tree should be used.
805 And finally this saves a bit of memory.
806 (For_Every_Project_Imported): new parameter Tree.
807 Since aggregated projects are using a different tree, we need to let
808 the caller know which tree to use to manipulate the returned project.
809
9fde638d
RD
8102011-08-03 Robert Dewar <dewar@adacore.com>
811
812 * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
813 prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
814 lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
815 prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.
816
95eb8b69
AC
8172011-08-03 Javier Miranda <miranda@adacore.com>
818
819 * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
820 Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
821
8222011-08-03 Bob Duff <duff@adacore.com>
823
824 * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
825 the Base_Type.
826
8272011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>
828
829 * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
830 g-sehash.ads: Fix typo. Update header.
831
8322011-08-03 Thomas Quinot <quinot@adacore.com>
833
834 * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
835 expansion.
836
8372011-08-03 Gary Dismukes <dismukes@adacore.com>
838
839 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
840 prefixes of private types along with records, since the selector may be
841 a discriminant.
842 * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
843 private types along with records, since the selector may be a
844 discriminant.
845
92e77027
AC
8462011-08-03 Emmanuel Briot <briot@adacore.com>
847
848 * prj-pp.adb (Pretty_Print): remove trailing blank line in the file
849
8502011-08-03 Javier Miranda <miranda@adacore.com>
851
852 * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
853 Tagged_Type_Expansion.
854
8552011-08-03 Yannick Moy <moy@adacore.com>
856
857 * sem_res.adb
858 (Resolve_Op_Concat_Arg): do not issue a SPARK violation when argument of
859 concatenation is the name of a constant
860
ab29a348
EB
8612011-08-03 Emmanuel Briot <briot@adacore.com>
862
863 * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
864 prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
865 (Process_Declarative_Items): new parameter Child_Env.
866
9466892f
AC
8672011-08-03 Yannick Moy <moy@adacore.com>
868
869 * alfa.ads Update format of ALFA section in ALI file in order to add a
870 mapping from bodies to specs when both are present
871 (ALFA_Scope_Record): add components for spec file/scope
872 * get_alfa.adb (Get_ALFA): read the new file/scope for spec when present
873 * lib-xref-alfa.adb
874 (Collect_ALFA): after all scopes have been collected, fill in the spec
875 information when relevant
876 * put_alfa.adb (Put_ALFA): write the new file/scope for spec when
877 present.
878
8792011-08-03 Eric Botcazou <ebotcazou@adacore.com>
880
881 * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
882 code unit to decide whether to add internally generated subprograms.
883
8842011-08-03 Javier Miranda <miranda@adacore.com>
885
886 * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
887 * exp_ch9.adb
888 (Build_Simple_Entry_Call): Handle actuals that must be handled by copy
889 in VM targets.
890
8912011-08-03 Emmanuel Briot <briot@adacore.com>
892
893 * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): now shares
894 code with Makeutl.Get_Switches.
895 * prj-tree.adb: Update comment.
896
b5ea9143
AC
8972011-08-03 Thomas Quinot <quinot@adacore.com>
898
899 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
900 subprogram with a limited formal that does not support external
901 streaming.
902
9032011-08-03 Yannick Moy <moy@adacore.com>
904
905 * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
906 continuation line
907 * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
908 not from current unit in two phases, because it is not possible to
909 change the table while iterating over its content.
910 * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity
911
9122011-08-03 Sergey Rybin <rybin@adacore.com>
913
914 * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
915 * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)
916
668a19bc
ES
9172011-08-03 Ed Schonberg <schonberg@adacore.com>
918
919 * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
920 and the component type is composite, this is ambiguous for predefined
921 concatenation, but if the node is not overloaded and the entity is a use
922 -defined function its profile can be used to resolve that aggregate.
923
170b2989
AC
9242011-08-03 Robert Dewar <dewar@adacore.com>
925
926 * exp_ch4.adb: Minor code cleanup.
927
9282011-08-03 Thomas Quinot <quinot@adacore.com>
929
930 * exp_dist.adb: Do not generate distribution stubs if serious errors
931 have been diagnosed.
932
9332011-08-03 Ed Schonberg <schonberg@adacore.com>
934
935 * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
936 the first formal of a primitive operation, go to the base type to
937 handle properly an access to a derived type with constrained
938 discriminants.
939 * sem_type.adb (Disambiguate): an immediately visible operator hides a
940 user-defined function that is only use-visible.
170b2989 941
e917aec2
RD
9422011-08-03 Robert Dewar <dewar@adacore.com>
943
944 * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
945 make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
946 fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
947 prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
948 sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
949 prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
950 prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
951 alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting
952
9532011-08-03 Robert Dewar <dewar@adacore.com>
954
955 * repinfo.adb (List_Mechanism): Add handling of
956 Convention_Ada_Pass_By_XXX.
957 * sem_mech.adb (Set_Mechanism): Ditto.
958 * sem_prag.adb (Process_Convention): Add entries for
959 Convention_Ada_Pass_By_XXX.
960 * snames.adb-tmpl, snames.ads-tmpl: Ditto.
961
49bfcf43
AC
9622011-08-03 Pascal Obry <obry@adacore.com>
963
964 * makeutl.adb: Minor reformatting.
965
9662011-08-03 Vincent Celier <celier@adacore.com>
967
968 * fname-uf.adb
969 (Get_File_Name) If the file cannot be found when there are no config
970 pragmas file and May_Fail is True, return No_File instead of the file
971 name, to be consistent.
972
9732011-08-03 Pascal Obry <obry@adacore.com>
974
975 * adaint.c (__gnat_is_executable_file_attr): Avoid access
976 to null pointer.
977
9782011-08-03 Javier Miranda <miranda@adacore.com>
979
980 * sem_ch13.adb
981 (Same_Representation): In VM targets the representation of arrays with
982 aliased components differs from arrays with non-aliased components.
983
34798441
EB
9842011-08-03 Emmanuel Briot <briot@adacore.com>
985
986 * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
987 not systematically lower case attribute indexes that contain no "."
988 Fix definition of several Naming attributes, which take
989 a unit name as index and therefore should be case insensitive.
990 Minor refactoring (reduce length of variable names).
991
9922011-08-03 Emmanuel Briot <briot@adacore.com>
993
994 * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.
995
4437a530
EB
9962011-08-03 Emmanuel Briot <briot@adacore.com>
997
998 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
999 prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
1000 prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
1001 prj-tree.ads (Prj.Tree.Environment): new type.
1002
804fe3c4
EB
10032011-08-03 Emmanuel Briot <briot@adacore.com>
1004
1005 * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
1006 prj-tree.adb, prj-tree.ads (Environment): new type.
1007
c565bc66
AC
10082011-08-03 Emmanuel Briot <briot@adacore.com>
1009
1010 * prj-tree.ads: Remove unused variable.
1011
10122011-08-03 Yannick Moy <moy@adacore.com>
1013
1014 * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
1015 issuing messages related to SPARK restriction violation.
1016
4ee646da
AC
10172011-08-03 Ed Schonberg <schonberg@adacore.com>
1018
1019 * sem_ch6.adb: guard against error nodes in return statements.
1020
10212011-08-03 Arnaud Charlet <charlet@adacore.com>
1022
1023 * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
1024 a warning can only appear on a configuration file, so emit warning
1025 without further checks.
1026
10272011-08-03 Arnaud Charlet <charlet@adacore.com>
1028
1029 * s-interr.ads: add overriding keyword.
1030
10312011-08-03 Geert Bosch <bosch@adacore.com>
1032
1033 * exp_attr.adb: Fix minor typo.
1034
10352011-08-03 Ed Schonberg <schonberg@adacore.com>
1036
1037 * par-ch4.adb: improve error recovery.
1038
c0e538ad
AC
10392011-08-03 Emmanuel Briot <briot@adacore.com>
1040
1041 * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
1042 prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
1043 to Errout_Handling.
1044
10452011-08-03 Emmanuel Briot <briot@adacore.com>
1046
1047 * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
1048 "external" as an attribute name in aggregate projects.
1049
10502011-08-03 Jose Ruiz <ruiz@adacore.com>
1051
1052 * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
1053 uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
1054 from 0, so we need to adjust.
1055
10562011-08-03 Emmanuel Briot <briot@adacore.com>
1057
1058 * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
1059 prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.
1060
c4d67e2d
AC
10612011-08-03 Yannick Moy <moy@adacore.com>
1062
1063 * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
1064 restriction on overloaded entity if the entity is not an operator.
1065
10662011-08-03 Yannick Moy <moy@adacore.com>
1067
1068 * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
1069 restrict.ads: Rename remaining Check_Formal_Restriction* into
1070 Check_SPARK_Restriction*.
1071
10722011-08-03 Emmanuel Briot <briot@adacore.com>
1073
1074 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
1075 prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
1076 qualifier.
1077 (Project_Empty): removed
1078 (Empty_Project): new parameter Qualifier
1079 This is used to have fields specific to aggregate projects, cleaner
1080 New field to store the list of aggregated projects.
1081 (Check_Aggregate_Project): removed
1082 (Process_Aggregated_Projects, Free): new subprograms.
1083
3f5a8fee
AC
10842011-08-03 Olivier Hainque <hainque@adacore.com>
1085
1086 * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.
1087
10882011-08-03 Ed Schonberg <schonberg@adacore.com>
1089
1090 * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
1091 explicit dereference of an unconstrained type, create a constrained
1092 subtype for it, as is done for function calls that return an
1093 unconstrained type.
1094
10952011-08-03 Thomas Quinot <quinot@adacore.com>
1096
1097 * g-pehage.adb (Finalize): Avoid possible double-free.
1098
10992011-08-03 Steve Baird <baird@adacore.com>
1100
1101 * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
1102 Elab_Spec/Body attrs in CodePeer_Mode.
1103
11042011-08-03 Javier Miranda <miranda@adacore.com>
1105
1106 * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
1107 low bound is not known at compile time but they have no others choice.
1108 Done because in this case the bounds can be obtained directly from the
1109 aggregate.
1110
11112011-08-03 Ed Falis <falis@adacore.com>
1112
1113 * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
1114 on VxWorks SMP. Remove unusable constant ANY_CPU.
1115
a96ca600
EB
11162011-08-03 Emmanuel Briot <briot@adacore.com>
1117
1118 * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
1119 clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
1120 prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
1121 Prj.Env.Initialize_Empty): new subprograms
1122 (Get_Env, Find_Project): remove parameter Target_Name.
1123
3e582869
AC
11242011-08-03 Gary Dismukes <dismukes@adacore.com>
1125
1126 * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
1127 as a condition for the delayed call to Derived_Subprograms done for the
1128 case of the rewriting of a derived type that constrains the
1129 discriminants of its parent type.
1130 Avoids redundant subprogram derivations for private subtype derivations.
1131
11322011-08-03 Javier Miranda <miranda@adacore.com>
1133
1134 * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
1135 Build_Record_Aggr_Code.
1136 (Build_Record_Aggr_Code): Add missing support to initialize hidden
1137 discriminants in extension aggregates.
1138
11392011-08-03 Emmanuel Briot <briot@adacore.com>
1140
1141 * prj-pp.adb (Print): also output project qualifiers, since in
1142 particular "aggregate" is mandatory in an aggregate project.
1143
11442011-08-03 Emmanuel Briot <briot@adacore.com>
1145
1146 * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
1147 (Debug_Output): new function.
1148
56e94186
AC
11492011-08-03 Eric Botcazou <ebotcazou@adacore.com>
1150
1151 * gnat_ugn.texi: Document -Wstack-usage.
1152 * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
1153
11542011-08-03 Thomas Quinot <quinot@adacore.com>
1155
1156 * sem_prag.adb Issue an error (not a warning) when a C++ type does not
1157 have keyword LIMITED.
1158
11592011-08-03 Yannick Moy <moy@adacore.com>
1160
1161 * alfa.adb, alfa.ads, alfa_test.adb: New files.
1162 * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
1163 (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
1164 section (does not happen in compiler, only if code directly calls
1165 Scan_ALI).
1166 * get_alfa.adb, get_alfa.ads: New files.
1167 * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
1168 needed.
1169 * lib-xref-alfa.adb: New file.
1170 * lib-xref.adb, lib-xref.ads
1171 (Xref_Entry): redefine information needed in cross-references for ALFA.
1172 Push ALFA treatments in separated local package.
1173 (Enclosing_Subpragram_Or_Package): treat specially subprogram
1174 identifiers. Return entity of package body instead of spec. Return
1175 Empty for a scope with no location.
1176 (Generate_Reference): adapt to new components for ALFA information.
1177 Remove the need for D references on definitions.
1178 (Is_Local_Reference): moved to ALFA local package
1179 (Output_References): extract subfunction as Extract_Source_Name
1180 (Output_Local_References): remove procedure, replaced by filtering of
1181 cross-references in package ALFA and printing in Put_ALFA.
1182 (Write_Entity_Name): remove procedure
1183 * lib.adb, lib.ads (Extract_Source_Name): extract here function to
1184 print exact name of entity as it appears in source file
1185 (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
1186 * put_alfa.adb, put_alfa.ads: New files.
1187 * xref_lib.adb (Search_Xref): protect read of cross-references against
1188 reading other sections of the ALI file, in gnatxref
1189 (Search): protect read of cross-references against reading other
1190 sections of the ALI file, in gnatfind.
1191 * gcc-interface/Make-lang.in: Update dependencies.
1192
11932011-08-03 Thomas Quinot <quinot@adacore.com>
1194
1195 * sem_ch3.adb: Minor reformatting.
1196
11972011-08-03 Jose Ruiz <ruiz@adacore.com>
1198
1199 * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
1200 raising an exception.
1201
12022011-08-03 Ed Schonberg <schonberg@adacore.com>
1203
1204 * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
1205 type, always use 1 as the lower bound or string, even if lower bound of
1206 context is not static, to handle properly null strings in a non-static
1207 context.
1208
12092011-08-03 Bob Duff <duff@adacore.com>
1210
1211 * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
1212 always legal on the right-hand side of an assignment statement; there
1213 is always an applicable index constraint in this case. Therefore, the
1214 check for Pkind = N_Assignment_Statement is now unconditional -- it
1215 doesn't depend on whether Is_Constrained (Typ).
1216
4317e442
AC
12172011-08-03 Robert Dewar <dewar@adacore.com>
1218
1219 * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.
1220
12212011-08-03 Ed Schonberg <schonberg@adacore.com>
1222
1223 * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
1224 for an itype created within a generic unit.
1225
12262011-08-03 Eric Botcazou <ebotcazou@adacore.com>
1227
1228 * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
1229 suppresses all inlining.
1230
53f29d4f
AC
12312011-08-03 Robert Dewar <dewar@adacore.com>
1232
1233 * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
1234 exp_aggr.adb: Minor reformatting.
1235
12362011-08-03 Thomas Quinot <quinot@adacore.com>
1237
1238 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
1239 tagged assignment when discriminant checks are suppressed. This is
1240 useless and extremely costly in terms of static stack usage.
1241
12422011-08-03 Bob Duff <duff@adacore.com>
1243
1244 * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
1245 of generics, because this leads to the wrong entity in the wrong scope,
1246 causing (e.g.) pragma Export_Procedure to get an error if the entity is
1247 an instance.
1248 (Process_Interface_Name): Follow Alias for instances of generics, to
1249 correct for the above change.
1250
12512011-08-03 Ed Schonberg <schonberg@adacore.com>
1252
1253 * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
1254 is an integer literal it is always safe to replace the reference. In
1255 addition, if the reference appears in the generated code for an object
1256 declaration it is necessary to copy because otherwise the reference
1257 might be to the uninitilized value of the discriminant of the object
1258 itself.
1259
12602011-08-03 Pascal Obry <obry@adacore.com>
1261
1262 * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
1263 ACL used, in this case we want to check for ending .exe, not .exe
1264 anywhere in the path.
1265
12662011-08-03 Sergey Rybin <rybin@adacore.com>
1267
1268 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
1269 the tree structure (semantic decoration of references to record
1270 discriminants).
1271
c0b11850
AC
12722011-08-03 Gary Dismukes <dismukes@adacore.com>
1273
1274 * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
1275 choices of a named array aggregate, bail out when any choices are
1276 marked as Errors_Posted.
1277
12782011-08-03 Ed Schonberg <schonberg@adacore.com>
1279
1280 * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
1281 in which entity is frozen, to handle properly loop variables in
1282 iterators.
1283
12842011-08-03 Ed Schonberg <schonberg@adacore.com>
1285
1286 * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
1287 subtype is not static, compute the upper bound using attributes, to
1288 handle properly index types that are not integer types.
1289
12902011-08-03 Bob Duff <duff@adacore.com>
1291
1292 * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
1293 Update copyright notice.
1294
12952011-08-03 Ed Schonberg <schonberg@adacore.com>
1296
1297 * sem_ch3.adb (Build_Discriminant_Constraints): Only use
1298 Original_Discriminant if within an instance.
1299 * sem_ch4.adb (Analyze_Selected_Component): Ditto.
1300
13012011-08-03 Thomas Quinot <quinot@adacore.com>
1302
1303 * einfo.ads: Minor reformatting.
1304
13052011-08-03 Ed Schonberg <schonberg@adacore.com>
1306
1307 * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
1308 composite type with an unfrozen subcomponent, in the profile of a
1309 primitive operation.
1310
5c34e9cd
AC
13112011-08-03 Robert Dewar <dewar@adacore.com>
1312
1313 * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.
1314
13152011-08-03 Ed Schonberg <schonberg@adacore.com>
1316
1317 * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
1318 unconstrained type with discriminants is initialized with an aggregate,
1319 use the constrained subtype of the aggregate as the type of the object,
1320 because it is immutable, and this allows the back-end to generate no
1321 code for the object declaration.
1322
abcd9db2
AC
13232011-08-03 Robert Dewar <dewar@adacore.com>
1324
1325 * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
1326 comparison operand is variable, and turns out to be zero or negative.
1327
13282011-08-03 Javier Miranda <miranda@adacore.com>
1329
1330 * exp_intr.adb
1331 (Expand_Dispatching_Constructor_Call): Disable expansion of
1332 code required for native targets. Done to avoid generating
1333 references to unavailable runtime entities in VM targets.
1334 * exp_ch3.adb
1335 (Expand_N_Object_Declaration): Add missing support to handle
1336 the explicit initialization of class-wide interface objects.
1337 Fix documentation.
1338
13392011-08-03 Matthew Heaney <heaney@adacore.com>
1340
1341 * a-cobove.adb (Merge): Move source onto target, instead of using Assign
1342
13432011-08-03 Matthew Heaney <heaney@adacore.com>
1344
1345 * a-cbdlli.adb (Splice): move source items from first to last
1346
13472011-08-03 Yannick Moy <moy@adacore.com>
1348
1349 * sem_util.ads: comment added.
1350
13512011-08-03 Javier Miranda <miranda@adacore.com>
1352
1353 * exp_aggr.adb
1354 (Expand_Record_Aggregate): In VM targets disable the expansion into
1355 assignments of aggregates whose type is not known at compile time.
1356
b474d6c3
ES
13572011-08-03 Ed Schonberg <schonberg@adacore.com>
1358
1359 * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
1360 protected entries and task entries, to build the proper renaming
1361 declaration for entry formals, used in debugging.
1362 * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
1363 parameters in the same way.
1364
0580d807
AC
13652011-08-02 Robert Dewar <dewar@adacore.com>
1366
1367 * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
1368 sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
1369 code reorganization.
1370
13712011-08-02 Robert Dewar <dewar@adacore.com>
1372
1373 * debug.adb: Debug flag d.P to suppress length comparison optimization
1374 * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
1375 comparison of Length by comparing First/Last instead.
1376
13772011-08-02 Matthew Heaney <heaney@adacore.com>
1378
1379 * a-cobove.ads: Code clean up.
1380
b191a125
AC
13812011-08-02 Vincent Celier <celier@adacore.com>
1382
1383 * adaint.c (file_names_case_sensitive_cache): New static int.
1384 (__gnat_get_file_names_case_sensitive): Cache the return value in
1385 file_names_case_sensitive_cache at the first invocation, to avoid
1386 multiple calls to getenv.
1387
13882011-08-02 Bob Duff <duff@adacore.com>
1389
1390 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.
1391
316a0661
AC
13922011-08-02 Yannick Moy <moy@adacore.com>
1393
1394 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
1395 sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
1396 sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
1397 indicate that we are in a precondition or postcondition. This is used in
1398 Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
1399 decide whether to flag the spec or body of the current subprogram as
1400 not in ALFA.
1401
14022011-08-02 Fabien Chouteau <chouteau@adacore.com>
1403
1404 * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
1405 list.
1406 * a-extiin.ads: New file.
1407
14082011-08-02 Bob Duff <duff@adacore.com>
1409
1410 * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
1411 now raises Name_Error instead of Use_Error in certain cases. The other
1412 parts of this AI were already implemented properly.
1413
f9adb9d4
AC
14142011-08-02 Vincent Celier <celier@adacore.com>
1415
1416 * link.c: Only import "auto-host.h" when building the gnattools.
1417
14182011-08-02 Yannick Moy <moy@adacore.com>
1419
1420 * sem_util.adb: Inter-unit inlining does not work for a subprogram
1421 which calls a local subprogram, so extract subprogram
1422 from Mark_Non_ALFA_Subprogram_Body.
1423
14242011-08-02 Javier Miranda <miranda@adacore.com>
1425
1426 * exp_ch9.adb
1427 (Extract_Dispatching_Call): If the type of the dispatching object is an
1428 access type then return an explicit dereference in the Object out-mode
1429 parameter.
1430
14312011-08-02 Gary Dismukes <dismukes@adacore.com>
1432
1433 * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
1434 compatibility checks for all indexes of an array subtype, not just the
1435 first. Reset Has_Dynamic_Range_Check on the subtype before each
1436 potential check to ensure that Insert_Range_Checks will not elide any
1437 of the dynamic checks.
1438
14392011-08-02 Yannick Moy <moy@adacore.com>
1440
1441 * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
1442 SPARK restriction at parsing time.
1443 * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
1444 directive only if the SPARK restriction is set for this unit.
1445
83f33150
YM
14462011-08-02 Yannick Moy <moy@adacore.com>
1447
1448 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
1449 sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
1450 sem_ch11.adb: Protect call to Current_Subprogram which might be costly
1451 when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
1452 Mark_Non_ALFA_Subprogram_Body.
1453 Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
1454 inlined.
1455
7b98672f
YM
14562011-08-02 Yannick Moy <moy@adacore.com>
1457
1458 * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
1459 might be costly.
1460
052e0603
AC
14612011-08-02 Robert Dewar <dewar@adacore.com>
1462
1463 * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
1464 exp_ch3.adb: Minor reformatting.
1465
14662011-08-02 Emmanuel Briot <briot@adacore.com>
1467
1468 * adaint.c (__gnat_locate_exec_on_path): only returns executable
1469 files, not any regular file.
1470 (__gnat_locate_file_with_predicate): new subprogram.
1471
14722011-08-02 Yannick Moy <moy@adacore.com>
1473
1474 * sinfo.adb, sinfo.ads: Restrict the use of flags
1475 Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
1476 nodes, plus N_Subtype_Declaration for the 2nd one.
1477
4fbad0ba
AC
14782011-08-02 Sergey Rybin <rybin@adacore.com>
1479
1480 * gnat_rm.texi: Ramification of pragma Eliminate documentation
1481 - fix bugs in the description of Source_Trace;
1482 - get rid of UNIT_NAME;
1483
052e0603
AC
14842011-08-02 Javier Miranda <miranda@adacore.com>
1485
1486 * exp_ch9.adb
1487 (Build_Dispatching_Requeue): Adding support for VM targets
1488 since we cannot directly reference the Tag entity.
1489 * exp_sel.adb (Build_K): Adding support for VM targets.
1490 (Build_S_Assignment): Adding support for VM targets.
1491 * exp_disp.adb
1492 (Default_Prim_Op_Position): In VM targets do not restrict availability
1493 of predefined interface primitives to compiling in Ada 2005 mode.
1494 (Is_Predefined_Interface_Primitive): In VM targets this service is not
1495 restricted to compiling in Ada 2005 mode.
1496 (Make_VM_TSD): Generate code that declares and initializes the OSD
1497 record. Needed to support dispatching calls through synchronized
1498 interfaces.
1499 * exp_ch3.adb
1500 (Make_Predefined_Primitive_Specs): Enable generation of predefined
1501 primitives associated with synchronized interfaces.
1502 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
1503 primitives associated with synchronized interfaces.
1504
15052011-08-02 Yannick Moy <moy@adacore.com>
1506
1507 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
1508 statements hidden in SPARK if preceded by the HIDE directive
1509 (Parse_Exception_Handlers): mark each exception handler in a sequence of
1510 exception handlers as hidden in SPARK if preceded by the HIDE directive
1511 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
1512 if starting with the HIDE directive
1513 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
1514 starting with the HIDE directive; mark the declarations in a private
1515 part as hidden in SPARK if the private part starts with the HIDE
1516 directive
1517 * restrict.adb, restrict.ads
1518 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
1519 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
1520 argument node belongs to a part which is hidden in SPARK
1521 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
1522 parts in SPARK; protect the possibly costly call to
1523 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
1524 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
1525 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
1526 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
1527 Tok_SPARK_Hide.
1528 (Scan): recognize special comment starting with '#' and followed by
1529 SPARK keyword "hide" as a HIDE directive.
1530
15312011-08-02 Yannick Moy <moy@adacore.com>
1532
1533 * types.ads, erroutc.ads: Minor reformatting.
1534
15352011-08-02 Vincent Celier <celier@adacore.com>
1536
1537 * link.c: Add response file support for cross platforms.
1538
15392011-08-02 Ed Schonberg <schonberg@adacore.com>
1540
1541 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
1542 in an association, set parent field of copy before partial analysis.
1543 * sem_res.adb (Resolve_Slice): create reference to itype only when
1544 expansion is enabled.
1545
15462011-08-02 Yannick Moy <moy@adacore.com>
1547
1548 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
1549 for new flag denoting which subprogram bodies are in ALFA
1550 * restrict.adb, sem_ch7.adb: Update comment
1551 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
1552 sem_ch9.adb, sem_res.adb: Add calls to
1553 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
1554 * sem_ch6.adb (Analyze_Function_Return): add calls to
1555 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
1556 middle of the body, and extended return.
1557 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
1558 False when missing return.
1559 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
1560 to True for subprograms whose spec is in ALFA. Remove later on the flag
1561 on the entity used for a subprogram body when there exists a separate
1562 declaration.
1563 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
1564 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
1565 False, otherwise do nothing.
1566
15672011-08-02 Robert Dewar <dewar@adacore.com>
1568
1569 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
1570
15712011-08-02 Yannick Moy <moy@adacore.com>
1572
1573 * sem_ch4.ads: minor formatting.
1574
15752011-08-02 Yannick Moy <moy@adacore.com>
1576
1577 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
1578 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
1579 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
1580 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
1581 opt.ads: cleanup of SPARK mode
1582
15832011-08-02 Yannick Moy <moy@adacore.com>
1584
1585 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
1586 types.
1587 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
1588 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
1589 * sem_ch3.adb
1590 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
1591 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
1592 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
1593 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
1594 types.
1595 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
1596 non-static range.
1597 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
1598 functions whose return type is not in ALFA.
1599 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
1600 specifications.
1601 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
1602 parameter's type is not in ALFA.
1603 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
1604 types are in ALFA.
1605
16062011-08-02 Ed Schonberg <schonberg@adacore.com>
1607
1608 * sem_ch6 (Analyze_Expression_Function): treat the function as
1609 Inline_Always, and introduce a subprogram declaration for it when it is
1610 not a completion.
1611 * inline.adb (Add_Inlined_Body): recognize bodies that come from
1612 expression functions, so that the back-end can determine whether they
1613 can in fact be inlined.
1614 * sem_util.adb (Is_Expression_Function): predicate to determine whether
1615 a function body comes from an expression function.
1616
16172011-08-02 Gary Dismukes <dismukes@adacore.com>
1618
1619 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
1620 null exclusions to test Can_Never_Be_Null on the anonymous access types
1621 of the formals rather than testing the formals themselves. Exclude this
1622 check in cases where the Old_Formal is marked as a controlling formal,
1623 to avoid issuing spurious errors for bodies completing dispatching
1624 operations (due to the flag not getting set on controlling access
1625 formals in body specs).
1626 (Find_Corresponding_Spec): When checking full and subtype conformance of
1627 subprogram bodies in instances, pass Designated and E in that order, for
1628 consistency with the expected order of the formals (New_Id followed by
1629 Old_Id).
1630
16312011-08-02 Robert Dewar <dewar@adacore.com>
1632
1633 * sem_ch8.adb: Minor reformatting.
1634
16352011-08-02 Ed Schonberg <schonberg@adacore.com>
1636
1637 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
1638 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
1639 primitive operations of class-wide actuals.
1640
16412011-08-02 Javier Miranda <miranda@adacore.com>
1642
1643 * exp_atag.ads, exp_atag.adb
1644 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
1645 since its value is implicitly passed in argument Typ.
1646 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
1647 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
1648 Build_Common_Dispatching_Select_Statements.
1649
16502011-08-02 Robert Dewar <dewar@adacore.com>
1651
1652 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
1653 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
1654 Minor reformatting.
1655
16562011-08-02 Robert Dewar <dewar@adacore.com>
1657
1658 * sem_res.adb: Minor reformatting.
1659 * sem_prag.adb: Minor reformatting.
1660
16612011-08-02 Javier Miranda <miranda@adacore.com>
1662
1663 * exp_atag.adb, exp_atags.ads
1664 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
1665 by the tagged type Entity. Required to use this routine in the VM
1666 targets since we do not have available the Tag entity in the VM
1667 platforms.
1668 * exp_ch6.adb
1669 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
1670 Ada.Tags has not been previously loaded.
1671 * exp_ch7.adb
1672 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
1673 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
1674 * sem_aux.adb
1675 (Enclosing_Dynamic_Scope): Add missing support to handle the full
1676 view of enclosing scopes. Required to handle enclosing scopes that
1677 are synchronized types whose full view is a task type.
1678 * exp_disp.adb
1679 (Build_VM_TSDs): Minor code improvement to avoid generating and
1680 analyzing lists with empty nodes.
1681 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
1682 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
1683 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
1684 (Make_Disp_Timed_Select_Body): Add support for VM targets.
1685 (Make_Select_Specific_Data_Table): Add support for VM targets.
1686 (Make_VM_TSD): Generate code to initialize the SSD structure of
1687 the TSD.
1688
16892011-08-02 Yannick Moy <moy@adacore.com>
1690
1691 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
1692 cross-references section in ALI.
1693 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
1694 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
1695 Sub).
1696 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
1697 subprogram or package entity of a node
1698 (Is_Local_Reference_Type): new function returns True for references
1699 selected in local cross-references.
1700 (Lt): function extracted from Lt in Output_References
1701 (Write_Entity_Name): function extracted from Output_References
1702 (Generate_Definition): generate reference with type 'D' for definition
1703 of objects (object declaration and parameter specification), with
1704 appropriate locations and units, for use in local cross-references.
1705 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
1706 references of type 'I' for initialization in object definition.
1707 (Output_References): move part of function Lt and procedure
1708 Write_Entity_Name outside of the body. Ignore references of types 'D'
1709 and 'I' introduced for local cross-references.
1710 (Output_Local_References): new procedure to output the local
1711 cross-references sections.
1712 (Lref_Entity_Status): new array defining whether an entity is a local
1713 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
1714 with 'I' type when initialization expression is present.
1715 * get_scos.adb, get_scos.ads: Correct comments and typos
1716
17172011-08-02 Javier Miranda <miranda@adacore.com>
1718
1719 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
1720 the JVM target.
1721 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
1722 the JVM target.
1723 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
1724 TSD support.
1725
17262011-08-02 Vincent Celier <celier@adacore.com>
1727
1728 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
1729 (No_Space_Img): New function
1730 (Find_Excluded_Sources): When reading from a file, record the file name
1731 and the line number for each excluded source.
1732 (Mark_Excluded_Sources): When reporting an error, if the excluded
1733 sources were read from a file, include file name and line number in
1734 the error message.
1735
17362011-08-02 Ed Schonberg <schonberg@adacore.com>
1737
1738 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
1739
17402011-08-02 Robert Dewar <dewar@adacore.com>
1741
1742 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
1743
17442011-08-02 Javier Miranda <miranda@adacore.com>
1745
1746 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
1747 generation of TSDs to the DOTNET compiler.
1748 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
1749 generation of TSDs to the DOTNET compiler.
1750
17512011-08-02 Javier Miranda <miranda@adacore.com>
1752
1753 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
1754 record of all the tagged types declared inside library level package
1755 declarations, library level package bodies or library level subprograms.
1756 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
1757 associated with a given tagged type.
1758 (Build_VM_TSDs): New subprogram.
1759 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
1760 compilation units that are subprograms.
1761 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
1762 compilation units that are package bodies.
1763 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
1764 units that are a package declaration or a package instantiation.
1765 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
1766 reorganization to improve the error generated by the frontend when the
1767 function Ada.Tags.Secondary_Tag is not available.
1768 * rtsfind.ads (RE_Register_TSD): New runtime entity.
1769 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
1770
17712011-08-02 Javier Miranda <miranda@adacore.com>
1772
1773 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
1774
17752011-08-02 Robert Dewar <dewar@adacore.com>
1776
1777 * s-imenne.ads: Minor reformatting.
1778
17792011-08-02 Robert Dewar <dewar@adacore.com>
1780
1781 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
1782 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
1783 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
1784
17852011-08-02 Robert Dewar <dewar@adacore.com>
1786
1787 * einfo.ads (Materialize_Entity): Document this is only for renamings
1788 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
1789 required debug information in the case where we transform the object
1790 declaration into a renaming declaration.
1791 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
1792 object
1793 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
1794 Materialize_Entity.
1795
17962011-08-02 Robert Dewar <dewar@adacore.com>
1797
1798 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
1799 Suppress_Init_Procs.
1800 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
1801 Suppress_Initialization/Initialization_Suppressed.
1802 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
1803 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
1804 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
1805 * sem_prag.adb: New processing for pragma Suppress_Initialization.
1806
18072011-08-02 Robert Dewar <dewar@adacore.com>
1808
1809 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
1810 Minor reformatting.
1811
18122011-08-02 Ed Schonberg <schonberg@adacore.com>
1813
1814 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
1815 only have inheritable classwide pre/postconditions.
1816
18172011-08-02 Javier Miranda <miranda@adacore.com>
1818
1819 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
1820 * rtsfind.ads (RE_Check_TSD): New runtime entity.
1821 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
1822 checks if the external tag of a type is the same as the external tag
1823 of some other declaration.
1824
18252011-08-02 Thomas Quinot <quinot@adacore.com>
1826
1827 * s-taskin.ads: Minor reformatting.
1828
18292011-08-02 Emmanuel Briot <briot@adacore.com>
1830
1831 * g-comlin.adb (Display_Help): swap the order in which it prints the
1832 short help and the general usage.
1833
18342011-08-02 Ed Schonberg <schonberg@adacore.com>
1835
1836 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
1837 the aspect declarations and attach them to the generic copy for
1838 subsequent analysis.
1839 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
1840 declarations of the generic tree to the new subprogram declarations.
1841 * sem_attr.adb (Check_Precondition_Postcondition): recognize
1842 conditions that apply to a subprogram instance.
1843
18442011-08-02 Robert Dewar <dewar@adacore.com>
1845
1846 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
1847
18482011-08-02 Ed Schonberg <schonberg@adacore.com>
1849
1850 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
1851 private type with a tagged full view is not derived in the immediate
1852 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
1853
18542011-08-02 Robert Dewar <dewar@adacore.com>
1855
1856 * exp_ch4.adb: Minor reformatting.
1857
18582011-08-02 Ed Schonberg <schonberg@adacore.com>
1859
1860 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
1861 Ada2012 iterator, the loop will be rewritten during expansion into a
1862 while loop with a cursor and an element declaration. Do not analyze the
1863 body in this case, because if the container is for indefinite types the
1864 actual subtype of the elements will only be determined when the cursor
1865 declaration is analyzed.
1866
18672011-08-02 Arnaud Charlet <charlet@adacore.com>
1868
1869 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
1870 size/alignment related attributes in CodePeer_Mode.
1871
18722011-08-02 Gary Dismukes <dismukes@adacore.com>
1873
1874 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
1875 Prepend_Element, since this can result in the operation getting the
1876 wrong slot in the full type's dispatch table if the full type has
1877 inherited operations. The incomplete type's operation will get added
1878 to the proper position in the full type's primitives
1879 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
1880 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
1881 dispatching operations, since there are cases where nonprimitive
1882 subprograms can get added to the list of incomplete dependents (such
1883 as subprograms in nested packages).
1884 * sem_ch6.adb (Process_Formals): First, remove test for being in a
1885 private part when determining whether to add a primitive with a
1886 parameter of a tagged incomplete type to the Private_Dependents list.
1887 Such primitives can also occur in the visible part, and should not have
1888 been excluded from being private dependents.
1889 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
1890 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
1891 list of a Taft-amendment incomplete type is a primitive before issuing
1892 an error that the full type must appear in the same unit. There are
1893 cases where nonprimitives can be in the list (such as subprograms in
1894 nested packages).
1895 * sem_disp.adb (Derives_From): Use correct condition for checking that
1896 a formal's type is derived from the type of the corresponding formal in
1897 the parent subprogram (the condition was completely wrong). Add
1898 checking that was missing for controlling result types being derived
1899 from the result type of the parent operation.
1900
19012011-08-02 Yannick Moy <moy@adacore.com>
1902
1903 * errout.adb (First_Node): minor renaming
1904 * restrict.adb (Check_Formal_Restriction): put restriction warning on
1905 first node.
1906
19072011-08-02 Yannick Moy <moy@adacore.com>
1908
1909 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
1910 before accessing operands.
1911 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
1912 decide whether an initialization expression respects SPARK rules, as
1913 the plain node is the expanded one. This allows for more valid warnings
1914 to be issued.
1915 * gnat_rm.texi: Minor update.
1916
19172011-08-02 Arnaud Charlet <charlet@adacore.com>
1918
1919 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
1920 previous change.
1921
19222011-08-02 Robert Dewar <dewar@adacore.com>
1923
1924 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
1925
19262011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
1927
1928 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
1929 loop statements and the element renaming declaration with a block when
1930 the element type is controlled.
1931
19322011-08-02 Yannick Moy <moy@adacore.com>
1933
1934 * sinfo.ads: Minor formatting.
1935
19362011-08-02 Ed Schonberg <schonberg@adacore.com>
1937
1938 * sem_aggr.adb (Add_Association): if the association has a box and no
1939 expression, use the Sloc of the aggregate itself for the new
1940 association.
1941 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
1942 the Original_Node.
1943
19442011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
1945
1946 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
1947 When a container is provided via a function call, generate a renaming
1948 of the function result. This avoids the creation of a transient scope
1949 and the premature finalization of the container.
1950 * exp_ch7.adb (Is_Container_Cursor): Removed.
1951 (Wrap_Transient_Declaration): Remove the supression of the finalization
1952 of the list controller when the declaration denotes a container cursor,
1953 it is not needed.
1954
19552011-08-02 Yannick Moy <moy@adacore.com>
1956
1957 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
1958 node is from source, instead of the original node being from source.
1959 * sem_aggr.adb
1960 (Resolve_Array_Aggregate): refine the check for a static expression, to
1961 recognize also static ranges
1962 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
1963 Array_Type_Declaration): postpone the test for the type being a subtype
1964 mark after the type has been resolved, so that component-selection and
1965 expanded-name are discriminated.
1966 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
1967 to distinguish the case of an iteration scheme, so that an error is
1968 issed on a non-static range in SPARK except in an iteration scheme.
1969 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
1970 In_Iter_Schm = True.
1971 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
1972 user-defined operators so that they are allowed in renaming
1973 * sem_ch8.adb
1974 (Find_Selected_Component): refine the check for prefixing of operators
1975 so that they are allowed in renaming. Move the checks for restrictions
1976 on selector name after analysis discriminated between
1977 component-selection and expanded-name.
1978 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
1979 concatenation argument of string type if it is static.
1980 * sem_util.adb, sem_util.ads
1981 (Check_Later_Vs_Basic_Declarations): add a new function
1982 Is_Later_Declarative_Item to decice which declarations are allowed as
1983 later items, in the two different modes Ada 83 and SPARK. In the SPARK
1984 mode, add that renamings are considered as later items.
1985 (Enclosing_Package): new function to return the enclosing package
1986 (Enter_Name): correct the rule for homonyms in SPARK
1987 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
1988 from source (result of expansion) to avoid issuing wrong warnings.
1989
19902011-08-02 Ed Schonberg <schonberg@adacore.com>
1991
1992 * errout.adb: On anything but an expression First_Node returns its
1993 argument.
1994
19952011-08-02 Pascal Obry <obry@adacore.com>
1996
1997 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
1998
19992011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
2000
2001 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
2002 Set the associated loop as the related expression of internally
2003 generated cursors.
2004 * exp_ch7.adb (Is_Container_Cursor): New routine.
2005 (Wrap_Transient_Declaration): Supress the finalization of the list
2006 controller when the declaration denotes a container cursor.
2007
20082011-08-02 Yannick Moy <moy@adacore.com>
2009
2010 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
2011 command line now.
2012 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
2013 expression is a simple expression. This check cannot be performed in
2014 the semantics, so just drop it.
2015 (P_Index_Or_Discriminant_Constraint): move check that the index or
2016 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
2017 semantics. Other cases were previously checked in the semantics.
2018 * par-ch4.adb (P_Name): move checks that a selector name is not
2019 character literal or an operator symbol to Find_Selected_Component in
2020 the semantics
2021 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
2022 declarations are not placed after later declarations in a separate
2023 procedure in Sem_Util (possibly not the best choice?), to be used both
2024 during parsing, for Ada 83 mode, and during semantic analysis, for
2025 SPARK mode.
2026 * par-endh.adb (Check_End): move check that end label is not missing
2027 to Process_End_Label in the semantics
2028 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
2029 the special case for SPARK restriction
2030 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
2031 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
2032 parameter Force to issue the error message even on internal node (used
2033 for generated end label). Call Check_Restriction to check when an error
2034 must be issued. In SPARK mode, issue an error message even if the
2035 restriction is not set.
2036 (Check_Restriction): new procedure with an additional out parameter to
2037 inform the caller that a message has been issued
2038 * sem_aggr.adb: Minor modification of message
2039 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
2040 instead of issuing an error message directly
2041 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
2042 declarations are not placed after later declarations, by calling
2043 Check_Later_Vs_Basic_Declarations
2044 (Analyze_Subtype_Declaration): move here the check that an index or
2045 discriminant constraint must be a subtype mark. Change the check that
2046 a subtype of String must start at one so that it works on subtype marks.
2047 * sem_ch4.adb (Analyze_Call): move here the check that a named
2048 association cannot follow a positional one in a call
2049 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
2050 instead of issuing an error message directly
2051 * sem_ch8.adb (Find_Selected_Component): move here the check that a
2052 selector name is not a character literal or an operator symbol. Move
2053 here the check that the prefix of an expanded name cannot be a
2054 subprogram or a loop statement.
2055 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
2056 procedure called from parsing and semantics to check that basic
2057 declarations are not placed after later declarations
2058 (Process_End_Label): move here the check that end label is not missing
2059
20602011-08-02 Arnaud Charlet <charlet@adacore.com>
2061
2062 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
2063 representation clause in codepeer mode, since it confuses CodePeer and
2064 does not bring useful info.
2065
20662011-08-02 Ed Falis <falis@adacore.com>
2067
2068 * init.c: initialize fp hw on MILS.
2069
20702011-08-02 Ed Schonberg <schonberg@adacore.com>
2071
2072 * errout.adb (First_Node): for bodies, return the node itself (small
2073 optimization). For other nodes, do not check source_unit if the node
2074 comes from Standard.
2075
20762011-08-02 Robert Dewar <dewar@adacore.com>
2077
2078 * exp_ch3.adb: Minor comment additions.
2079 * sem_ch13.adb: Minor reformatting.
2080
20812011-08-02 Pascal Obry <obry@adacore.com>
2082
2083 * make.adb, makeutl.adb: Removes some superfluous directory separator.
2084
20852011-08-02 Robert Dewar <dewar@adacore.com>
2086
2087 * sem_attr.adb: Minor reformatting.
2088
20892011-08-02 Robert Dewar <dewar@adacore.com>
2090
2091 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
2092 (Has_Default_Component_Value): Removed
2093 * einfo.ads Comment updates
2094 (Has_Default_Aspect): Replaces Has_Default_Value
2095 (Has_Default_Component_Value): Removed
2096 * exp_ch13.adb
2097 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
2098 * exp_ch3.adb
2099 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
2100 (Get_Simple_Init_Val): Handle Default_Value aspect
2101 (Needs_Simple_Initialization): Handle Default_Value aspect
2102 * exp_ch3.ads: Needs_Simple_Initialization
2103 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
2104 * par-prag.adb (Pragma_Default[_Component]Value) Removed
2105 * sem_ch13.adb
2106 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
2107 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
2108 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
2109
21102011-08-02 Ed Schonberg <schonberg@adacore.com>
2111
2112 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
2113 package containing iteration primitives.
2114 exp_ch5.adb (Expand_Iterator_Loop): ditto.
2115
21162011-08-02 Ed Schonberg <schonberg@adacore.com>
2117
2118 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
2119 "of", pre-analyze expression in case it is a function call with
2120 finalization actions that must be placed ahead of the loop.
2121 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
2122 on an Ada2012 iterator, insert them ahead of the rewritten loop.
2123
21242011-08-02 Geert Bosch <bosch@adacore.com>
2125
2126 * cstand.adb (Create_Float_Types): Only consider C's long double for
2127 Long_Long_Float, in addition to double.
2128
21292011-08-02 Robert Dewar <dewar@adacore.com>
2130
2131 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
2132 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
2133 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
2134 Minor reformatting.
2135
21362011-08-02 Ed Schonberg <schonberg@adacore.com>
2137
2138 * sem_attr.adb: handle properly 'Result when it is a prefix of an
2139 indexed component.
2140
21412011-08-02 Javier Miranda <miranda@adacore.com>
2142
2143 * einfo.ads, einfo.adb
2144 (Original_Access_Type): Move this attribute to Node26 since there was
2145 an undocumented use of Node21 in E_Access_Subprogram_Type entities
2146 which causes conflicts and breaks the generation of the .NET compiler.
2147 (Interface_Name): Add missing documentation on JGNAT only uses of
2148 this attribute.
2149
21502011-08-02 Geert Bosch <bosch@adacore.com>
2151
2152 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
2153 (Find_Back_End_Float_Type): Likewise
2154 (Create_Back_End_Float_Types): Likewise
2155 (Create_Float_Types): Likewise
2156 (Register_Float_Type): Likewise
2157 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
2158 Nlist and split out type selection in new local Find_Base_Type function.
2159 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
2160 Nlist
2161 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
2162
21632011-08-02 Robert Dewar <dewar@adacore.com>
2164
2165 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
2166 alpha order).
2167 * opt.ads: Minor comment change.
2168 * sem_ch12.adb: Minor code reorganization.
2169
21702011-08-02 Gary Dismukes <dismukes@adacore.com>
2171
2172 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
2173 subtype's list of rep items to the list on the full subtype in the case
2174 where the lists are the same.
2175
21762011-08-02 Geert Bosch <bosch@adacore.com>
2177
2178 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
2179 using the one from System.Strings, which also deallocates all strings.
2180
21812011-08-02 Geert Bosch <bosch@adacore.com>
2182
2183 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
2184 function.
2185 * gcc-interface/Make-lang.in: Update dependencies.
2186
21872011-08-02 Olivier Hainque <hainque@adacore.com>
2188
2189 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
2190 end_locus.
2191
21922011-08-02 Javier Miranda <miranda@adacore.com>
2193
2194 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
2195 associated with anonymous access to subprograms.
2196
21972011-08-02 Geert Bosch <bosch@adacore.com>
2198
2199 * opt.ads
2200 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
2201 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
2202 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
2203 (Add_Symbol_Definition): Move to switch-c.adb
2204 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
2205 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
2206 (Add_Symbol_Definition): Move to switch-c.adb.
2207 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
2208 * sem_warn.adb
2209 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
2210 Move to warnsw.adb.
2211 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
2212 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
2213 Move to warnsw.adb.
2214 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
2215 (Add_Symbol_Definition): Moved from Prepcomp.
2216 * switch-c.ads: Update copyright notice. Use String_List instead of
2217 Argument_List, removing dependency on System.OS_Lib.
2218
22192011-08-02 Yannick Moy <moy@adacore.com>
2220
2221 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
2222 mode on initialization expression which does not respect SPARK
2223 restrictions.
2224 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
2225 if the tree referenced by its argument represents an initialization
2226 expression in SPARK, suitable for initializing an object in an object
2227 declaration.
2228
22292011-08-02 Javier Miranda <miranda@adacore.com>
2230
2231 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
2232 internally generated access to subprogram with its associated protected
2233 subprogram type.
2234 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
2235
22362011-08-02 Geert Bosch <bosch@adacore.com>
2237
2238 * cstand.adb (Register_Float_Type): Print information about type to
2239 register, if the Debug_Flag_Dot_B is set.
2240 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
2241 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
2242 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
2243 with a requested precision of more than Max_Digits digits and no more
2244 than Max_Base_Digits digits, if a range specification is present and the
2245 Predefined_Float_Types list has a suitable type to derive from.
2246 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
2247 case of type completion with pragma Import
2248 * sem_prag.adb
2249 (Process_Import_Predefined_Type): Processing to complete a type
2250 with pragma Import. Currently supports floating point types only.
2251 (Set_Convention_From_Pragma): Do nothing without underlying type.
2252 (Process_Convention): Guard against absence of underlying type,
2253 which may happen when importing incomplete types.
2254 (Process_Import_Or_Interface): Handle case of importing predefined
2255 types. Tweak error message.
2256
22572011-08-02 Eric Botcazou <ebotcazou@adacore.com>
2258
2259 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
2260 functions to previous change. Reorganize code slightly.
2261
22622011-08-02 Geert Bosch <bosch@adacore.com>
2263
2264 * back_end.ads (Register_Type_Proc): New call back procedure type for
2265 allowing the back end to provide information about available types.
2266 (Register_Back_End_Types): New procedure to register back end types.
2267 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
2268 available types.
2269 * cstand.adb (Back_End_Float_Types): New list for floating point types
2270 supported by the back end.
2271 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
2272 (Copy_Float_Type): New procedure to make new copies of predefined types.
2273 (Register_Float_Type): New call back procedure to populate the BEFT list
2274 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
2275 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
2276 (Create_Float_Types): New procedure to create entities for floating
2277 point types predefined in Standard, and put these and any remaining
2278 BEFTs on the Predefined_Float_Types list.
2279 * stand.ads (Predefined_Float_Types): New list for predefined floating
2280 point types that do not have declarations in package Standard.
2281
22822011-08-02 Eric Botcazou <ebotcazou@adacore.com>
2283
2284 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
2285 entity node for the unit containing the parameter.
2286 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
2287 (Add_Inlined_Subprogram): Likewise.
2288 * gcc-interface/Make-lang.in: Update dependencies.
2289
22902011-08-02 Thomas Quinot <quinot@adacore.com>
2291
2292 * s-stusta.adb (Print): Make sure Pos is always initialized to a
2293 suitable value.
2294
22952011-08-02 Geert Bosch <bosch@adacore.com>
2296
2297 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
2298
22992011-08-02 Eric Botcazou <ebotcazou@adacore.com>
2300
2301 * sem_type.adb (Covers): Move trivial case to the top and reuse the
2302 computed value of Base_Type.
2303
23042011-08-02 Yannick Moy <moy@adacore.com>
2305
2306 * restrict.adb (Check_Restriction): issue an error for any use of
2307 class-wide, even if the No_Dispatch restriction is not set.
2308 * sem_aggr.adb: Correct typos in comments and messages in formal mode
2309 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
2310 when completing a private extension, the type named in the private part
2311 is not the same as that named in the visible part.
2312 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
2313 of an inherited primitive operations of a tagged type or type extension
2314 that returns the tagged type.
2315 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
2316 function which returns True for an implicit operation inherited by the
2317 derived type declaration for the argument type.
2318 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
2319 order.
2320
23212011-08-02 Ed Schonberg <schonberg@adacore.com>
2322
2323 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
2324 Process_Bounds, to perform analysis with expansion of a range or an
2325 expression that is the iteration scheme for a loop.
2326 (Analyze_Iterator_Specification): If domain of iteration is given by a
2327 function call with a controlled result, as is the case if call returns
2328 a predefined container, ensure that finalization actions are properly
2329 generated.
2330 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
2331
23322011-08-02 Javier Miranda <miranda@adacore.com>
2333
2334 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
2335 * gcc-interface/Make-lang.in: Update dependencies.
2336
23372011-08-02 Javier Miranda <miranda@adacore.com>
2338
2339 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
2340 determine if the analysis is performed using N or Original_Node (N).
2341 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
2342 functionality of routine Is_Variable avoids code duplication.
2343 * checks.adb (Determine_Range): Handle temporaries generated by
2344 Remove_Side_Effects.
2345
23462011-08-02 Javier Miranda <miranda@adacore.com>
2347
2348 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
2349 expansion of the condition. Required since the previous analysis was
2350 done with expansion disabled (see Resolve_Quantified_Expression) and
2351 hence checks were not inserted and record comparisons have not been
2352 expanded.
2353
23542011-08-02 Ed Falis <falis@adacore.com>
2355
2356 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
2357 Update header.
2358
23592011-08-02 Bob Duff <duff@adacore.com>
2360
2361 * opt.ads: Minor comment fix.
2362
23632011-08-02 Bob Duff <duff@adacore.com>
2364
2365 * sem_ch12.adb (Analyze_Package_Instantiation,
2366 Analyze_Subprogram_Instantiation): Turn off style checking while
2367 analyzing an instance. Whatever style checks that apply to the generic
2368 unit should apply, so it makes no sense to apply them in an instance.
2369 This was causing trouble when compiling an instance of a runtime
2370 unit that violates the -gnatyO switch.
2371 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
2372 one of the two case statements, causing spurious errors.
2373
23742011-08-02 Robert Dewar <dewar@adacore.com>
2375
2376 * uname.adb: Minor reformatting.
2377 * gnatcmd.adb: Minor reformatting.
2378 * exp_attr.adb: Minor reformatting.
2379
23802011-08-02 Ed Schonberg <schonberg@adacore.com>
2381
2382 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
2383 No_Dispatching_Calls, do not look for the Assign primitive, because
2384 predefined primitives are not created in this case.
2385
23862011-08-02 Bob Duff <duff@adacore.com>
2387
2388 * stylesw.ads: Minor comment fixes.
2389
23902011-08-02 Robert Dewar <dewar@adacore.com>
2391
2392 * freeze.adb (Add_To_Result): New procedure.
2393
23942011-08-02 Jose Ruiz <ruiz@adacore.com>
2395
2396 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
2397 time, if the specific run-time routines for handling streams of strings
2398 are not available, use the default mechanism.
2399
24002011-08-02 Arnaud Charlet <charlet@adacore.com>
2401
2402 * s-regpat.ads: Fix typo.
2403
24042011-08-02 Vincent Celier <celier@adacore.com>
2405
2406 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
2407 not null, call it to create the in memory config project file without
2408 parsing an existing default config project file.
2409
24102011-08-02 Eric Botcazou <ebotcazou@adacore.com>
2411
2412 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
2413
24142011-08-02 Ed Schonberg <schonberg@adacore.com>
2415
2416 * sem_elim.adb: an abstract subprogram does not need an eliminate
2417 pragma for its descendant to be eliminable.
2418
24192011-08-02 Ed Falis <falis@adacore.com>
2420
2421 * init.c: revert to handling before previous checkin for VxWorks
2422 * s-intman-vxworks.adb: delete unnecessary declarations related to
2423 using Ada interrupt facilities for handling signals.
2424 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
2425 * s-intman-vxworks.ads: Import __gnat_install_handler as
2426 Initialize_Interrupts.
2427 * s-taprop-vxworks.adb: Delete Signal_Mask.
2428 (Abort_Handler): change construction of mask to unblock exception
2429 signals.
2430
24312011-08-02 Jerome Guitton <guitton@adacore.com>
2432
2433 * a-except-2005.adb (Raise_From_Signal_Handler): Call
2434 Debug_Raise_Exception before propagation starts.
2435
24362011-08-02 Eric Botcazou <ebotcazou@adacore.com>
2437
2438 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
2439 to Restriction_Check_Required.
2440 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
2441 * sem_res.adb (Resolve_Call): Likewise.
2442 * sem_attr.adb (Check_Stream_Attribute): Likewise.
2443
24442011-08-02 Bob Duff <duff@adacore.com>
2445
2446 * stylesw.ads: Update comment.
2447 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
2448 * errout.ads: Remove obsolete comment.
2449
24502011-08-02 Javier Miranda <miranda@adacore.com>
2451
2452 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
2453 (Set_Is_Safe_To_Reevaluate): new procedure.
2454 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
2455 assignment is allowed on safe-to-reevaluate variables.
2456 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
2457 temporary created to remove side effects in expressions that use
2458 the secondary stack as safe-to-reevaluate.
2459 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
2460 variables that are not true constants.
2461
24622011-08-02 Robert Dewar <dewar@adacore.com>
2463
2464 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
2465 sem_res.adb, sem_ch6.adb: Minor reformatting.
2466
24672011-08-02 Jerome Guitton <guitton@adacore.com>
2468
2469 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
2470
24712011-08-02 Ed Schonberg <schonberg@adacore.com>
2472
2473 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
2474 not set Overridden_Operation if subprogram is an initialization
2475 procedure.
2476
24772011-08-02 Yannick Moy <moy@adacore.com>
2478
2479 * par-ch6.adb: Correct obsolete name in comments
2480 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
2481 which takes two message arguments (existing function takes one), with
2482 second message used for continuation.
2483 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
2484 block statements that originate from a source block statement, not
2485 generated block statements
2486 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
2487 symmetry with procedure case
2488 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
2489 function to issue an error in formal mode if a package specification
2490 contains more than one tagged type or type extension.
2491 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
2492 parameters matching formals of tagged types are objects (or ancestor
2493 type conversions of objects), not general expressions. Issue an error
2494 on view conversions that are not involving ancestor conversion of an
2495 extended type.
2496 (Resolve_Type_Conversion): in formal mode, issue an error on the
2497 operand of an ancestor type conversion which is not an object
2498 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
2499 procedure so that it works also for actuals of function calls
2500 (Is_Actual_Tagged_Parameter): new function which determines if its
2501 argument is an actual parameter of a formal of tagged type in a
2502 subprogram call
2503 (Is_SPARK_Object_Reference): new function which determines if the tree
2504 referenced by its argument represents an object in SPARK
2505
25062011-08-02 Robert Dewar <dewar@adacore.com>
2507
2508 * sem_ch3.adb: Minor reformatting
2509 Minor comment addition
2510 Minor error msg text change
2511
25122011-08-02 Javier Miranda <miranda@adacore.com>
2513
2514 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
2515 function. Used to be more precise when we generate a variable plus one
2516 assignment to remove side effects in the evaluation of the Bound
2517 expressions.
2518 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
2519 of the bound expression to force its re-analysis and thus expand the
2520 associated transient scope (if required). Code cleanup replacing the
2521 previous code that declared the constant entity by an invocation to
2522 routine Force_Evaluation which centralizes this work in the frontend.
2523
25242011-08-02 Robert Dewar <dewar@adacore.com>
2525
2526 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
2527 (Base_Type): Now uses improved Is_Base_Type function
2528 * einfo.ads (Base_Type): Inline this function
2529
25302011-08-02 Robert Dewar <dewar@adacore.com>
2531
2532 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
2533 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
2534
25352011-08-02 Arnaud Charlet <charlet@adacore.com>
2536
2537 * gcc-interface/Make-lang.in: Update dependencies.
2538 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
2539 targets.
2540
25412011-08-02 Yannick Moy <moy@adacore.com>
2542
2543 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
2544 non-simple expression used in delta constraint
2545 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
2546 index constraint which is not a subtype mark
2547 * par.adb: With and use Restrict
2548 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
2549 mode on component type which is not a subtype mark and default
2550 expression on component
2551 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
2552 of string which does not have a lower index bound equal to 1
2553 (Array_Type_Declaration): issue an error in formal mode on index or
2554 component type which is not a subtype mark, and on aliased keyword on
2555 component
2556 (Derived_Type_Declaration): issue an error in formal mode on interface,
2557 limited or abstract type
2558 (Record_Type_Declaration): issue an error in formal mode on interface
2559 (Record_Type_Definition): issue an error in formal mode on tagged types
2560 and type extensions not declared in the specification of a library unit
2561 package; on null non-tagged record; on variant part
2562
25632011-08-02 Vincent Celier <celier@adacore.com>
2564
2565 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
2566 not declared for qualified library project when Library_Name is not
2567 declared, but Library_Dir is.
2568
25692011-08-02 Robert Dewar <dewar@adacore.com>
2570
2571 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
2572 pragmas (affects aspects [Component_]Default_Value
2573 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
2574 component type for the resolution
2575
25762011-08-02 Eric Botcazou <ebotcazou@adacore.com>
2577
2578 * einfo.adb (Base_Type): Tune implementation for speed.
2579
25802011-08-02 Robert Dewar <dewar@adacore.com>
2581
2582 * freeze.adb: Minor reformatting.
2583
25842011-08-02 Thomas Quinot <quinot@adacore.com>
2585
2586 * scos.ads: Update comments.
2587
25882011-08-02 Ed Schonberg <schonberg@adacore.com>
2589
2590 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
2591 base type, because the parent may be a subtype of a private type whose
2592 convention is established in a private part.
2593
25942011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
2595
2596 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
2597 statement in a block when the expansion of the return expression has
2598 created a finalization chain.
2599 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
2600 with the parent node.
2601 Add N_Extended_Return_Statement to handle the case where a transient
2602 object declaration appears in the Return_Object_Declarations list of
2603 an extended return statement.
2604
26052011-08-02 Matthew Gingell <gingell@adacore.com>
2606
2607 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
2608 unused parameter 'name'.
2609
26102011-08-02 Ed Schonberg <schonberg@adacore.com>
2611
2612 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
2613 inherited operation, check whether its alias, which is the source
2614 operastion that it renames, has been marked eliminated.
2615
26162011-08-02 Javier Miranda <miranda@adacore.com>
2617
2618 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
2619 in-mode parameter whose type is an access type since it can be used to
2620 modify its designated object. Enforce code that handles as safe an
2621 access type that is not access-to-constant but it is the result of a
2622 previous removal of side-effects.
2623 (Remove_Side_Effects): Minor code reorganization of cases which require
2624 no action. Done to incorporate documentation on new cases uncovered
2625 working in this ticket: no action needed if this routine was invoked
2626 too early and the nodes are not yet decorated.
2627 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
2628 to routine Remove_Side_Effects by calls to Force_Evaluation since they
2629 were issued with actuals that are implicitly provided by
2630 Force_Evaluation.
2631
26322011-08-02 Robert Dewar <dewar@adacore.com>
2633
2634 * sem_ch3.adb, sem_res.adb: Minor reformatting.
2635
26362011-08-02 Yannick Moy <moy@adacore.com>
2637
2638 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
2639 to issue an error in formal mode on attribute not supported in this mode
2640 (Analyze_Attribute): issue errors on standard attributes not supported
2641 in formal mode.
2642 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
2643 comment, and issue error in formal mode on modulus which is not a power
2644 of 2.
2645 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
2646 range.
2647 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
2648 subtype mark.
2649 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
2650 operator on modular type (except 'not').
2651
26522011-08-02 Robert Dewar <dewar@adacore.com>
2653
2654 * gnat_rm.texi: Minor reformatting.
2655
26562011-08-02 Arnaud Charlet <charlet@adacore.com>
2657
2658 * s-osinte-linux.ads: Minor comment update and reformatting.
2659 * i-cexten.ads: Make this unit pure, as for its parent.
2660 Will allow its usage in more contexts if needed.
2661
26622011-08-02 Robert Dewar <dewar@adacore.com>
2663
2664 * s-utf_32.ads: Minor comment fix.
2665
26662011-08-02 Ed Schonberg <schonberg@adacore.com>
2667
2668 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
2669 operation of a tagged synchronized type, handle the case where the
2670 controlling argument is overloaded.
2671
26722011-08-02 Yannick Moy <moy@adacore.com>
2673
2674 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
2675 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
2676 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
2677 SPARK mode and formal verification mode on processing SPARK restriction
2678 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
2679 requiring consistency checking.
2680
26812011-08-02 Robert Dewar <dewar@adacore.com>
2682
2683 * sem_res.adb: Minor reformatting.
2684
26852011-08-02 Robert Dewar <dewar@adacore.com>
2686
2687 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
2688 a-cforse.ads: Remove unneeded with of Ada.Containers
2689 Remove commented out pragma Inline's
2690 Move specifications of new subprograms to the actual specs
2691
26922011-08-02 Yannick Moy <moy@adacore.com>
2693
2694 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
2695 a-cforse.ads: Update comments.
2696
26972011-08-02 Ed Schonberg <schonberg@adacore.com>
2698
2699 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
2700
27012011-08-02 Robert Dewar <dewar@adacore.com>
2702
2703 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
2704 a-cforse.ads, a-cofove.ads: Minor reformatting.
2705
27062011-08-02 Claire Dross <dross@adacore.com>
2707
2708 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
2709 a-cofove.ads: Add comments.
2710
27112011-08-02 Yannick Moy <moy@adacore.com>
2712
2713 * gnat_rm.texi: Document formal containers.
2714
27152011-08-02 Emmanuel Briot <briot@adacore.com>
2716
2717 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
2718 are empty sections.
2719
27202011-08-02 Robert Dewar <dewar@adacore.com>
2721
2722 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
2723 reformatting.
2724
27252011-08-02 Robert Dewar <dewar@adacore.com>
2726
2727 * aspects.adb: New aspects Default_Value and Default_Component_Value
2728 New format of Aspect_Names table checks for omitted entries
2729 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
2730 handling of boolean aspects for derived types.
2731 New aspects Default_Value and Default_Component_Value
2732 New format of Aspect_Names table checks for omitted entries
2733 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
2734 (Has_Default_Value): New flag
2735 (Has_Default_Component_Value): New flag
2736 (Has_Default_Value): New flag
2737 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
2738 table.
2739 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
2740 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
2741 Default_Value and Default_Component_Value
2742 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
2743 New aspects Default_Value and Default_Component_Value
2744 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
2745 * sprint.adb: Print N_Aspect_Specification node when called from gdb
2746
27472011-08-02 Vincent Celier <celier@adacore.com>
2748
2749 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
2750 inherit library kind.
2751
27522011-08-02 Ed Schonberg <schonberg@adacore.com>
2753
2754 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
2755 Minor reformatting.
2756
27572011-08-02 Robert Dewar <dewar@adacore.com>
2758
2759 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
2760
27612011-08-02 Yannick Moy <moy@adacore.com>
2762
2763 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
2764
27652011-08-02 Robert Dewar <dewar@adacore.com>
2766
2767 * impunit.adb: Add comment.
2768
27692011-08-02 Yannick Moy <moy@adacore.com>
2770
2771 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
2772 qualification of aggregates in formal mode
2773 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
2774 another aggregate
2775 (Resolve_Aggregate): complete the test that an aggregate is adequately
2776 qualified in formal mode
2777
27782011-08-02 Pascal Obry <obry@adacore.com>
2779
2780 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
2781 * mlib-prj.adb: Supress warning when compiling binder generated file.
2782 (Build_Library): Supress all warnings when compiling the binder
2783 generated file.
2784
27852011-08-02 Yannick Moy <moy@adacore.com>
2786
2787 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
2788 from here...
2789 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
2790 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
2791 Add with/use clauses to make Check_Formal_Restriction visible
2792
27932011-08-02 Ed Schonberg <schonberg@adacore.com>
2794
2795 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
2796 in-parameters when type of the generic formal is private in the generic
2797 spec and non-private in the body.
2798
27992011-08-02 Claire Dross <dross@adacore.com>
2800
2801 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
2802 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
2803 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
2804 * impunit.adb, Makefile.rtl: Take new files into account.
2805
28062011-08-02 Robert Dewar <dewar@adacore.com>
2807
2808 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
2809 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
2810
28112011-08-02 Yannick Moy <moy@adacore.com>
2812
2813 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
2814 formal mode
2815 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
2816 matching static array bounds, taking into account the special case of
2817 string literals
2818 * sem_ch3.adb: Typo in comment.
2819
28202011-08-02 Yannick Moy <moy@adacore.com>
2821
2822 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
2823 which issues an error in formal mode if its argument node is originally
2824 from source
2825 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
2826 has a discriminant specification so that it does not include the case
2827 of derived types
2828 (Derived_Type_Declaration): move here the test that a derived type has a
2829 discriminant specification
2830 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
2831 first element of a component association before accessing its choices
2832 (presence of component association is not enough)
2833 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
2834 declaration is a library item before accessing the next element in a
2835 list, as library items are not member of lists
2836 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
2837 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
2838 Check_Formal_Restriction whenever possible.
2839
28402011-08-02 Ed Schonberg <schonberg@adacore.com>
2841
2842 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
2843 reference when needed.
2844
28452011-08-02 Bob Duff <duff@adacore.com>
2846
2847 * gnat_ugn.texi: Fix typo.
2848
28492011-08-02 Vincent Celier <celier@adacore.com>
2850
2851 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
2852 archive file name. Do not use the full path name of archives for Open
2853 VMS.
2854
28552011-08-02 Robert Dewar <dewar@adacore.com>
2856
2857 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
2858 Analyze_Aspect_Specifications
2859 * sem_ch13.adb
2860 (Analyze_Aspect_Specifications): New handling for boolean aspects
2861 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
2862 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
2863 sequence for Analyze_Aspect_Specifications
2864 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
2865 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
2866
28672011-08-02 Robert Dewar <dewar@adacore.com>
2868
2869 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
2870 aspects, since these no longer exist.
2871
28722011-08-02 Robert Dewar <dewar@adacore.com>
2873
2874 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
2875 semicolon, do not try to see if there are aspects following it.
2876 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
2877 aspect spec.
2878
28792011-08-02 Robert Dewar <dewar@adacore.com>
2880
2881 * sem_ch8.adb, aspects.ads: Minor reformatting.
2882
28832011-08-02 Eric Botcazou <ebotcazou@adacore.com>
2884
2885 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
2886 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
2887 extracted from...
2888 (Analyze_Aspect_Specifications): ...here. Call above procedure.
2889
28902011-08-02 Yannick Moy <moy@adacore.com>
2891
2892 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
2893 mode on subprogram declaration outside of package specification, unless
2894 it is followed by a pragma Import
2895 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
2896 Access_Type_Declaration): issue error in formal mode on access type
2897 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
2898 incomplete type
2899 (Analyze_Object_Declaration): issue error in formal mode on object
2900 declaration which does not respect SPARK restrictions
2901 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
2902 declaration which does not respect SPARK restrictions
2903 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
2904 error in formal mode on digits or delta constraint
2905 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
2906 decimal fixed point type
2907 (Derived_Type_Declaration): issue error in formal mode on derived type
2908 other than type extensions of tagged record types
2909 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
2910 with check on access definition
2911 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
2912 mode on protected definition.
2913 (Analyze_Task_Definition): issue error in formal mode on task definition
2914
29152011-08-02 Robert Dewar <dewar@adacore.com>
2916
2917 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
2918
29192011-08-02 Javier Miranda <miranda@adacore.com>
2920
2921 * sem_ch6.adb (Can_Override_Operator): New function.
2922 (Verify_Overriding_Indicator): Add missing code to check overriding
2923 indicator in operators. Fixes regression.
2924 (Check_Overriding_Indicator): Minor reformating after replacing the
2925 code that evaluates if the subprogram can override an operator by
2926 invocations to the above new function.
2927 * einfo.adb
2928 (Write_Field26_Name): Add missing code to ensure that, following
2929 the documentation in einfo.ads, this field is not shown as attribute
2930 "Static_Initialization" on non-dispatching functions.
2931
29322011-08-02 Jose Ruiz <ruiz@adacore.com>
2933
2934 * sem_res.adb (Resolve_Call): A call to
2935 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
2936 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
2937 i.e., when the second parameter is of type Time_Span.
2938
29392011-08-02 Vincent Celier <celier@adacore.com>
2940
2941 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
2942 with an archive instead of -L<library dir> -l<library name>.
2943
29442011-08-02 Ed Schonberg <schonberg@adacore.com>
2945
2946 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
2947 mark the base types In_Use in addition to making the operations
2948 use_visible.
2949
29502011-08-02 Ed Falis <falis@adacore.com>
2951
2952 * init.c: add and setup __gnat_signal_mask for the exception signals
2953 * s-inmaop-vxworks.adb: new file.
2954 * s-intman-vxworks.adb: remove unnecessary initializations and
2955 simplify remaining
2956 * s-intman-vxworks.ads: remove unnecessary variable
2957 * s-taprop-vxworks.adb: simplify signal initialization
2958
29592011-08-02 Robert Dewar <dewar@adacore.com>
2960
2961 * sem_ch8.adb: Minor code reorganization, comment updates.
2962
29632011-08-02 Robert Dewar <dewar@adacore.com>
2964
2965 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
2966 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
2967 here from Sem_Res.
2968 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
2969 (Matching_Static_Array_Bounds): Moved here from Sem_Res
2970
29712011-08-02 Ed Schonberg <schonberg@adacore.com>
2972
2973 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
2974 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
2975 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
2976 use_type_clauses, to handle more efficiently use_type and use_all_type
2977 constructs.
2978 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
2979 Ada2012 Use_All_Type clause.
2980 (Use_Class_Wide_Operations): new procedure.
2981
29822011-08-02 Robert Dewar <dewar@adacore.com>
2983
2984 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
2985 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
2986 expression to expression function.
2987
29882011-08-02 Ed Schonberg <schonberg@adacore.com>
2989
2990 * sem_ch4.adb: transform simple Ada2012 membership into equality only
2991 if types are compatible.
2992
29932011-08-02 Yannick Moy <moy@adacore.com>
2994
2995 * sem_res.adb (Matching_Static_Array_Bounds): new function which
2996 returns True if its argument array types have same dimension and same
2997 static bounds at each index.
2998 (Resolve_Actuals): issue an error in formal mode on actuals passed as
2999 OUT or IN OUT paramaters which are not view conversions in SPARK.
3000 (Resolve_Arithmetic_Op): issue an error in formal mode on
3001 multiplication or division with operands of fixed point types which are
3002 not qualified or explicitly converted.
3003 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
3004 Boolean or array type (except String) operands.
3005 (Resolve_Equality_Op): issue an error in formal mode on equality
3006 operators for array types other than String with non-matching static
3007 bounds.
3008 (Resolve_Logical_Op): issue an error in formal mode on logical operators
3009 for array types with non-matching static bounds. Factorize the code in
3010 Matching_Static_Array_Bounds.
3011 (Resolve_Qualified_Expression): issue an error in formal mode on
3012 qualified expressions for array types with non-matching static bounds.
3013 (Resolve_Type_Conversion): issue an error in formal mode on type
3014 conversion for array types with non-matching static bounds
3015
30162011-08-02 Robert Dewar <dewar@adacore.com>
3017
3018 * par-ch10.adb: Minor code reorganization (use Nkind_In).
3019
30202011-08-02 Ed Schonberg <schonberg@adacore.com>
3021
3022 * par-ch9.adb: save location of entry for proper error message.
3023
30242011-08-02 Javier Miranda <miranda@adacore.com>
3025
3026 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
3027 (Use_Full_View) which permits this routine to climb through the
3028 ancestors using the full-view of private parents.
3029 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
3030 Use_Full_View to true in calls to Is_Ancestor.
3031 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
3032 true in call to Is_Ancestor.
3033 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
3034 Use_Full_View to true in call to Is_Ancestor.
3035 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
3036 call to Is_Ancestor.
3037 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
3038 Use_Full_View to true in calls to Is_Ancestor.
3039 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
3040 Make_Select_Specific_Data_Table, Register_Primitive,
3041 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
3042 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
3043 to true in call to Is_Ancestor.
3044 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
3045 Use_Full_View to true in calls to Is_Ancestor.
3046 * exp_cg.adb
3047 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
3048 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
3049
30502011-08-02 Robert Dewar <dewar@adacore.com>
3051
3052 * gnat_rm.texi: Minor reformatting.
3053 * sem_prag.adb: Minor reformatting.
3054
30552011-08-02 Tristan Gingold <gingold@adacore.com>
3056
3057 * vms_data.ads: Add VMS qualifier for -gnateP.
3058
30592011-08-02 Robert Dewar <dewar@adacore.com>
3060
3061 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
3062 * par-ch7.adb (P_Package): Proper placement of aspects for package
3063 decl/instantiation.
3064 * par-endh.adb (Check_End): Ad Is_Sloc parameter
3065 (End_Statements): Add Is_Sloc parameterr
3066 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
3067 (Check_End): Ad Is_Sloc parameter
3068 (End_Statements): Add Is_Sloc parameterr
3069
30702011-08-02 Vincent Celier <celier@adacore.com>
3071
3072 * ug_words: Add VMS qualifier equivalent to -gnateP:
3073 /SYMBOL_PREPROCESSING.
3074
30752011-08-02 Jose Ruiz <ruiz@adacore.com>
3076
3077 * gnat-style.texi: For hexadecimal numeric literals the typical
3078 grouping of digits is 4 to represent 2 bytes.
3079 A procedure spec which is split into several lines is indented two
3080 characters.
3081
30822011-08-02 Yannick Moy <moy@adacore.com>
3083
3084 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
3085 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
3086 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
3087 properly qualified
3088 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
3089 choice in array aggregate
3090 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
3091 mark as ancestor
3092 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
3093 positional and named aggregate for record, or others in record
3094 aggregate, or multiple choice in record aggregate
3095 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
3096 array operands to logical operations AND, OR and XOR do not have the
3097 same static lower and higher bounds
3098 * sem_ch5.adb, sinfo.ads: Correct typos in comments
3099
31002011-08-01 Robert Dewar <dewar@adacore.com>
3101
3102 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
3103 Replaces Last_Source_Node_In_Sequence.
3104 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
3105 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
3106 parens and blank in string (this was inconsistently implemented).
3107 * errout.ads
3108 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
3109 blank in string (this was inconsistently implemented).
3110 * gnat1drv.adb
3111 (Set_Global_Switches): Set formal mode switches appropriately
3112 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
3113 * par-prag.adb
3114 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
3115 call Set_Error_Msg_Lang to set "spark" as language name.
3116 * par.adb: Remove unnecessary call to set formal language for errout
3117 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
3118 appropriately and call Set_Error_Msg_Lang to set "spark" as language
3119 name.
3120 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
3121 calls to it, moved after resolution so that types are known
3122 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
3123 result of concatenation is not of type String
3124 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
3125 concatenation is not properly restricted
3126 * gnat_rm.texi: Add doc on pragma Spark_95.
3127 * gcc-interface/Makefile.in: Remove obsolete target pairs for
3128 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
3129 * gcc-interface/Make-lang.in: Update dependencies.
3130
31312011-08-01 Javier Miranda <miranda@adacore.com>
3132
3133 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
3134 condition that detects if the overridden operation must replace an
3135 existing entity.
3136
31372011-08-01 Javier Miranda <miranda@adacore.com>
3138
3139 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
3140 code declarations inserted by Insert_Actions in each alternative of the
3141 N_Case_Expression node.
3142
31432011-08-01 Robert Dewar <dewar@adacore.com>
3144
3145 * sem_ch6.adb: Minor code reorganization.
3146 * sem_util.adb: Minor reformatting.
3147
31482011-08-01 Pascal Obry <obry@adacore.com>
3149
3150 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
3151 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
3152
31532011-08-01 Yannick Moy <moy@adacore.com>
3154
3155 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
3156 literal or operator symbol which is prefixed
3157 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
3158 mode on access attributes.
3159 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
3160 that concatenation operands are properly restricted in formal mode
3161 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
3162 Analyze_Concatenation_Operand. Issue an error in formal mode if the
3163 result of the concatenation has a type different from String.
3164 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
3165 Analyze_Quantified_Expression, Analyze_Slice,
3166 Analyze_Null): issue an error in formal mode on unsupported constructs
3167 * sem_ch5.adb
3168 (Analyze_Block_Statement): only issue error on source block statement
3169 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
3170 function which returns the last node in a list of nodes for which
3171 Comes_From_Source returns True, if any
3172 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
3173 Last_Source_Node_In_Sequence
3174 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
3175 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
3176 mode on unsupported constructs
3177 * sem_ch9.adb Do not return after issuing error in formal mode, as the
3178 rest of the actions may be needed later on since the error is marked as
3179 not serious.
3180 * sinfo.ads: Typos in comments.
3181
31822011-08-01 Pascal Obry <obry@adacore.com>
3183
3184 * projects.texi: Minor editing.
3185
31862011-08-01 Yannick Moy <moy@adacore.com>
3187
3188 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
3189 insertion character ~~
3190 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
3191 (Set_Error_Msg_Lang): new procedure which fixes the language for use
3192 with insertion character ~~
3193 (Set_Msg_Text): treat insertion character ~~
3194 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
3195 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
3196 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
3197 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
3198 errors related to the formal language restriction not serious
3199 (insertion character |).
3200 * par.adb (Par): set formal language for error messages if needed
3201 * sem_ch6.adb (Check_Missing_Return): take into account possible
3202 generated statements at the end of the function
3203 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
3204 enumeration value to define a new pragma SPARK_95
3205 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
3206 SPARK_Version): new type and variables to store the SPARK version
3207 (none by default).
3208 (SPARK_Mode): return True when SPARK_Version is set
3209 * par-prag.adb: Correct indentation
3210 (Prag): take Pragma_SPARK_95 into account
3211 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
3212 into account.
3213
32142011-08-01 Robert Dewar <dewar@adacore.com>
3215
3216 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
3217 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
3218 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
3219
32202011-08-01 Pascal Obry <obry@adacore.com>
3221
3222 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
3223 Target_Name to Get_Path call.
3224 (Parse_Single_Project): Likewise.
3225 (Post_Parse_Context_Clause): Likewise.
3226 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
3227 Call Initialise_Project_Path with the proper Target_Name.
3228 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
3229 search path.
3230 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
3231 with the proper Target_Name.
3232 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
3233 Part.Parse routine.
3234 (Parse_Project_And_Apply_Config): Likewise.
3235 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
3236 This is fine as this part of the code is supporting only native
3237 compilation.
3238 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
3239 is fine as this part of the code is supporting only native compilation.
3240
32412011-08-01 Yannick Moy <moy@adacore.com>
3242
3243 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
3244 of homonym, unless the homonym is one of the cases allowed in SPARK
3245 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
3246 package declaration occurring after a body.
3247
32482011-08-01 Robert Dewar <dewar@adacore.com>
3249
3250 * checks.adb, exp_ch4.adb: Minor reformatting.
3251
32522011-08-01 Javier Miranda <miranda@adacore.com>
3253
3254 * einfo.ads (Access_Disp_Table): Fix documentation.
3255 (Dispatch_Table_Wrappers): Fix documentation.
3256
32572011-08-01 Pascal Obry <obry@adacore.com>
3258
3259 * prj-env.adb, prj-env.ads: Minor reformatting.
3260
32612011-08-01 Yannick Moy <moy@adacore.com>
3262
3263 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
3264 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
3265 procedures out of these packages.
3266 * errout.ads, errout.adb
3267 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
3268 procedures in of this package
3269 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
3270 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
3271 on misplaced later vs initial declarations, like in Ada 83
3272 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
3273 formal mode on attribute of private type whose full type declaration
3274 is not visible
3275 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
3276 package declaration inside a package specification
3277 (Analyze_Full_Type_Declaration): issue error in formal mode on
3278 controlled type or discriminant type
3279 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
3280 user-defined operator means that it should come from the source
3281 (New_Overloaded_Entity): issue error in formal mode on overloaded
3282 entity.
3283 * sem_ch6.ads, sem_ch13.ads: typos in comments.
3284
32852011-08-01 Thomas Quinot <quinot@adacore.com>
3286
3287 * atree.adb: Minor reformatting.
3288 * checks.adb: Minor reformatting.
3289
32902011-08-01 Vincent Celier <celier@adacore.com>
3291
3292 * s-parame-vms-ia64.ads: Fix typo in comment
3293 Minor reformatting
3294 * s-parame-vms-restrict.ads: Removed, unused.
3295
32962011-08-01 Javier Miranda <miranda@adacore.com>
3297
3298 * exp_ch3.adb
3299 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
3300 * sem_ch3.adb
3301 (Constrain_Index): Remove side effects in the evaluation of the bounds.
3302 * sem_ch3.ads, sem_ch3.adb
3303 (Is_Constant_Bound): New extended version of the subprogram that was
3304 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
3305 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
3306 * sem_aux.ads (Constant_Value): Fix typo in comment.
3307 * checks.adb (Generate_Index_Checks): New implementation which, for
3308 array objects with constant bounds, generates the runtime check
3309 referencing the bounds of the array type. For other cases this routine
3310 provides its previous behavior obtaining such values from the array
3311 object.
3312 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
3313 parent type.
3314 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
3315 we cannot have semantic interpretations of the new node.
3316
33172011-08-01 Ed Schonberg <schonberg@adacore.com>
3318
3319 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
3320 expressions.
3321
33222011-08-01 Arnaud Charlet <charlet@adacore.com>
3323
3324 * sem_ch8.adb: Minor code editing.
3325 * s-vxwext.adb: Remove trailing space.
3326 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
3327 consistency with other files.
3328
33292011-08-01 Thomas Quinot <quinot@adacore.com>
3330
3331 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
3332
33332011-08-01 Ed Schonberg <schonberg@adacore.com>
3334
3335 * par-ch10.adb: reject parameterized expressions as compilation unit.
3336 * sem_ch4.adb: handle properly conditional expression with overloaded
3337 then_clause and no else_clause.
3338
33392011-08-01 Tristan Gingold <gingold@adacore.com>
3340
3341 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
3342 like done by System.Aux_DEC.
3343 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
3344
33452011-08-01 Yannick Moy <moy@adacore.com>
3346
3347 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
3348 missing label at end of declaration (subprogram or package)
3349 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
3350 of positional and named parameter association
3351 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
3352 Error_Msg_SP which adds a prefix to the error message giving the name
3353 of the formal language analyzed
3354 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
3355 access result type in subprogram, unconstrained array as result type,.
3356 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
3357 procedure
3358 * sem_ch8.adb: Code clean up.
3359
33602011-08-01 Javier Miranda <miranda@adacore.com>
3361
3362 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
3363 * einfo.ads (Access_Disp_Table): Fix documentation.
3364 (Dispatch_Table_Wrappers): Fix documentation.
3365 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
3366 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
3367 to enforce the documentation of this attribute.
3368 (Set_Is_Interface): Cleanup the assertion.
3369 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
3370 the Underlying_Type entity before reading attribute Access_Disp_Table.
3371 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
3372 Locate the Underlying_Type before reading attribute Access_Disp_Table.
3373 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
3374 the Underlying_Type entity before reading attribute Access_Disp_Table.
3375 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
3376 Locate the Underlying_Type entity before reading attribute
3377 Access_Disp_Table.
3378
33792011-08-01 Ed Schonberg <schonberg@adacore.com>
3380
3381 * s-poosiz.ads: Additional overriding indicators.
3382
33832011-08-01 Yannick Moy <moy@adacore.com>
3384
3385 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
3386 formal mode.
3387 (Analyze_Iteration_Scheme): issue error in formal mode when loop
3388 parameter specification does not include a subtype mark.
3389 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
3390 formal mode on abstract subprogram.
3391 (Analyze_Subprogram_Specification): issue error in formal mode on
3392 user-defined operator.
3393 (Process_Formals): issue error in formal mode on access parameter and
3394 default expression.
3395 * sem_ch9.adb (Analyze_Abort_Statement,
3396 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
3397 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
3398 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
3399 Analyze_Requeue, Analyze_Selective_Accept,
3400 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
3401 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
3402 issue error in formal mode on user-defined raise statement.
3403
34042011-08-01 Thomas Quinot <quinot@adacore.com>
3405
3406 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
3407 declaration being hidden when overriding an implicit inherited
3408 subprogram.
3409 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
3410 (-gnats), do not complain about a source file that contains only a
3411 pragma No_Body.
3412
34132011-08-01 Ed Schonberg <schonberg@adacore.com>
3414
3415 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
3416 variable if already set.
3417
34182011-08-01 Arnaud Charlet <charlet@adacore.com>
3419
3420 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
3421 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
3422 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
3423 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
3424 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
3425 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
3426 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
3427 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
3428 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
3429 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
3430 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
3431 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
3432 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
3433 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
3434 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
3435 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
3436 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
3437 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
3438 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
3439 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
3440 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
3441 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
3442 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
3443 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
3444 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
3445 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
3446 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
3447 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
3448 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
3449 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
3450 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
3451 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
3452 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
3453 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
3454 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
3455 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
3456 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
3457 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
3458 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
3459 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
3460 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
3461 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
3462 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
3463 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
3464 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
3465 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
3466 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
3467 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
3468 s-osinte-mingw.ads: Update to GPLv3 run-time license.
3469 Use GNAT instead of GNARL.
3470
34712011-08-01 Bob Duff <duff@adacore.com>
3472
3473 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
3474 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
3475 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
3476 reformatting.
3477
34782011-08-01 Yannick Moy <moy@adacore.com>
3479
3480 * debug.adb (d.D) reverve flag for the SPARK mode
3481 (d.E) reverve flag for SPARK generation mode
3482 (d.F) reverve flag for Why generation mode
3483 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
3484 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
3485 functions which return True when the corresponding modes are set
3486 (Formal_Language): return "spark" or "alfa" when in formal verification
3487 mode.
3488 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
3489 Error_Msg to prefix the error message with a tag giving the formal
3490 language
3491 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
3492 message with a tag giving the formal language
3493 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
3494 block statement
3495 (Analyze_Case_Statement): issue error in formal mode on case statement
3496 with a single "others" case alternative
3497 (Analyze_Exit_Statement): issue errors in formal mode on exit
3498 statements which do not respect SPARK restrictions
3499 (Analyze_Goto_Statement): issue error in formal mode on goto statement
3500 (Check_Unreachable_Code): always issue an error (not a warning) in
3501 formal mode on unreachable code (concerns both code after an infinite
3502 loop and after an unconditional jump, both not allowed in SPARK)
3503 * sem_ch6.adb (Analyze_Return_Statement): add call to
3504 Set_Return_Present for a procedure containing a return statement
3505 (already done for functions in Analyze_Function_Return)
3506 (Analyze_Function_Return): issue error in formal mode on extended
3507 return or if return is not last statement in function
3508 (Check_Missing_Return): issue error in formal mode if function does
3509 not end with return or if procedure contains a return
3510 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
3511 function to detect if there is an inner scope of its parameter S which
3512 is a loop.
3513
35142011-08-01 Thomas Quinot <quinot@adacore.com>
3515
3516 * sem_ch6.ads: Minor reformatting.
3517
35182011-08-01 Javier Miranda <miranda@adacore.com>
3519
3520 * sem_util.adb (Abstract_Interface_List): Complete condition when
3521 processing private type declarations to avoid reading unavailable
3522 attribute.
3523 (Is_Synchronized_Tagged_Type): Complete condition when processing
3524 private extension declaration nodes to avoid reading unavailable
3525 attribute.
3526
35272011-08-01 Thomas Quinot <quinot@adacore.com>
3528
3529 * sem_ch3.adb: Minor reformatting.
3530
35312011-08-01 Thomas Quinot <quinot@adacore.com>
3532
3533 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
3534 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
3535 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
3536 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
3537 for VMS, instead parametrize the common implementation with
3538 System.Parameters declarations.
3539
35402011-08-01 Eric Botcazou <ebotcazou@adacore.com>
3541
3542 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
3543
35442011-08-01 Tristan Gingold <gingold@adacore.com>
3545
3546 * seh_init.c: Fix SEH handler installation on win64.
3547
35482011-08-01 Ed Schonberg <schonberg@adacore.com>
3549
3550 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
3551 double analysis of an anonymous access to subprogram, because it can
3552 lead to improper sharing of profiles and a back-end crash.
3553
35542011-08-01 Robert Dewar <dewar@adacore.com>
3555
3556 * make.adb, sem_ch4.adb: Minor reformatting.
3557 * gcc-interface/Make-lang.in: Update dependencies.
3558 * sem_util.adb, exp_ch5.adb: Minor reformatting.
3559
35602011-08-01 Arnaud Charlet <charlet@adacore.com>
3561
3562 * gnat_rm.texi: Fix definition of Long_Integer.
3563
35642011-08-01 Ed Schonberg <schonberg@adacore.com>
3565
3566 * exp_aggr.adb: check limit size of static aggregate unconditionally,
3567 to prevent storage exhaustion.
3568 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
3569 finalized is a function body, insert the cleanup code before the final
3570 return statement, to prevent spurious warnings.
3571 * s-pooglo.ads: add overriding indicator.
3572
35732011-08-01 Ed Schonberg <schonberg@adacore.com>
3574
3575 * sem_ch4.adb (Operator_Check): improve error message when both a
3576 with_clause and a use_clause are needed to make operator usage legal.
3577 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
3578 determine whether a compilation unit is visible within an other,
3579 either through a with_clause in the current unit, or a with_clause in
3580 its library unit or one one of its parents.
3581
35822011-08-01 Ed Schonberg <schonberg@adacore.com>
3583
3584 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
3585 over an arbitrary expression of an array or container type.
3586 * lib-xref.adb: clarify comment.
3587
35882011-08-01 Bob Duff <duff@adacore.com>
3589
3590 * einfo.ads: Minor reformatting.
3591 * debug.adb: Minor comment improvement.
3592
35932011-08-01 Javier Miranda <miranda@adacore.com>
3594
3595 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
3596 consider hidden subprograms as valid candidates.
3597
35982011-08-01 Arnaud Charlet <charlet@adacore.com>
3599
3600 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
3601
36022011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
3603
3604 * gnat_ugn.texi: Fix typo.
3605
36062011-08-01 Robert Dewar <dewar@adacore.com>
3607
3608 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
3609 lib-xref.adb: Minor reformatting
3610
36112011-08-01 Gary Dismukes <dismukes@adacore.com>
3612
3613 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
3614 when to generate a call to Move_Final_List.
3615 (Has_Controlled_Parts): Remove this function.
3616
36172011-08-01 Geert Bosch <bosch@adacore.com>
3618
3619 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
3620 "," in choice list.
3621
36222011-08-01 Thomas Quinot <quinot@adacore.com>
3623
3624 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
3625 explicit raise of a predefined exception as Comes_From_Source if the
3626 original N_Raise_Statement comes from source.
3627
36282011-08-01 Robert Dewar <dewar@adacore.com>
3629
3630 * sinfo.ads: Add comment.
3631 * sem_ch6.adb: Minor reformatting.
3632
36332011-08-01 Robert Dewar <dewar@adacore.com>
3634
3635 * freeze.adb (Freeze_Entity): Refine check for bad component size
3636 clause to avoid rejecting confirming clause when atomic/aliased present.
3637
36382011-08-01 Ed Schonberg <schonberg@adacore.com>
3639
3640 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
3641 better determine whether an entity reference is a write.
3642 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
3643 subcomponent.
3644 * lib-xref.adb (Output_References): Do no suppress a read reference at
3645 the same location as an immediately preceeding modify-reference, to
3646 handle properly in-out actuals.
3647
36482011-08-01 Tristan Gingold <gingold@adacore.com>
3649
3650 * env.c (__gnat_setenv) [VMS]: Refine previous change.
3651
36522011-08-01 Quentin Ochem <ochem@adacore.com>
3653
3654 * i-cstrin.adb (New_String): Changed implementation, now uses only the
3655 heap to compute the result.
3656
36572011-08-01 Robert Dewar <dewar@adacore.com>
3658
3659 * atree.ads: Minor reformatting.
3660
36612011-08-01 Emmanuel Briot <briot@adacore.com>
3662
3663 * g-expect.adb (Get_Command_Output): Fix memory leak.
3664
36652011-08-01 Geert Bosch <bosch@adacore.com>
3666
3667 * cstand.adb (P_Float_Type): New procedure to print the definition of
3668 predefined fpt types.
3669 (P_Mixed_Name): New procedure to print a name using mixed case
3670 (Print_Standard): Use P_Float_Type for printing floating point types
3671 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
3672 precision IEEE float.
3673
36742011-08-01 Thomas Quinot <quinot@adacore.com>
3675
3676 * sem_ch3.adb: Minor reformatting.
3677
36782011-08-01 Ed Schonberg <schonberg@adacore.com>
3679
3680 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
3681 the completion of a generic function, insert the new body rather than
3682 rewriting the original.
3683
36842011-08-01 Yannick Moy <moy@adacore.com>
3685
3686 * sinfo.ads, errout.ads: Typos in comments.
3687
36882011-08-01 Robert Dewar <dewar@adacore.com>
3689
3690 * par-endh.adb: Minor reformatting.
3691
36922011-08-01 Robert Dewar <dewar@adacore.com>
3693
3694 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
3695 (Pre_Post_Aspects): New subtype.
3696 * par-ch12.adb (P_Generic): New syntax for aspects in packages
3697 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
3698 * par-ch7.adb (P_Package): Remove Decl parameter
3699 (P_Package): Handle new syntax for aspects (before IS)
3700 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
3701 new aspect syntax
3702 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
3703 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
3704 (P_Package): Remove Decl parameter
3705 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
3706 aspects
3707 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
3708 specs
3709 * sem_util.ads, sem_util.adb (Static_Boolean): New function
3710 * sinfo.ads: Document new syntax for aspects in packages etc.
3711 * sprint.adb: Handle new syntax of aspects before IS in package
3712
37132011-08-01 Thomas Quinot <quinot@adacore.com>
3714
3715 * atree.ads: Minor reformatting.
3716 * sem_prag.adb: Minor reformatting.
3717
37182011-08-01 Robert Dewar <dewar@adacore.com>
3719
3720 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
3721 case expr alternative.
3722
37232011-08-01 Ed Schonberg <schonberg@adacore.com>
3724
3725 * sem_ch12.adb: Fix typo.
3726
37272011-08-01 Geert Bosch <bosch@adacore.com>
3728
3729 * sem_prag.adb (Check_No_Link_Name): New procedure.
3730 (Process_Import_Or_Interface): Use Check_No_Link_Name.
3731 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
3732 instead of Standard_Long_Long_Float_Size global. Preparation for
3733 eventual removal of per type constants.
3734 * exp_util.ads (Get_Stream_Size): New function returning the stream
3735 size value of subtype E.
3736 * exp_util.adb (Get_Stream_Size): Implement new function.
3737 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
3738 function.
3739 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
3740 * einfo.adb:
3741 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
3742
37432011-08-01 Geert Bosch <bosch@adacore.com>
3744
3745 * cstand.adb: Fix comments.
3746 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
3747 count of arguments.
3748
37492011-08-01 Robert Dewar <dewar@adacore.com>
3750
3751 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
3752
37532011-08-01 Geert Bosch <bosch@adacore.com>
3754
3755 * atree.ads: Fix comment.
3756
37572011-08-01 Robert Dewar <dewar@adacore.com>
3758
3759 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
3760 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
3761 * par.adb: Add with for Namet.Sp.
3762 * par-tchk.adb: Minor reformatting.
3763
37642011-08-01 Vincent Celier <celier@adacore.com>
3765
3766 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
3767 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
3768 of the init procedure of a SAL.
3769 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
3770 New procedure.
3771
37722011-08-01 Thomas Quinot <quinot@adacore.com>
3773
3774 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
3775 reformatting.
3776
37772011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3778
3779 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
3780
37812011-08-01 Thomas Quinot <quinot@adacore.com>
3782
3783 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
3784 conformant with its spec (return True only for types that have
3785 an overriding Initialize primitive operation that prevents them from
3786 having preelaborable initialization).
3787 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
3788 initialization for controlled types in Ada 2005 or later mode.
3789
37902011-08-01 Robert Dewar <dewar@adacore.com>
3791
3792 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
3793 Postcondition.
3794 (Same_Aspect): New function.
3795 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
3796 Type_Invariant, Precondition, Postcondition.
3797 * snames.ads-tmpl: Add Name_Type_Invariant.
3798
37992011-08-01 Robert Dewar <dewar@adacore.com>
3800
3801 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
3802 here.
3803 (Freeze_All_Ent): Fix error in handling inherited aspects.
3804 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
3805 already analyzed, but don't skip entire processing of a declaration,
3806 that's wrong in some cases of declarations being rewritten.
3807 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
3808 Don't delay for integer, string literals
3809 Treat predicates in usual manner for delay, remove special case code,
3810 not needed.
3811 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
3812 (Build_Predicate_Function): Update saved expression in aspect
3813 (Build_Invariant_Procedure): Update saved expression in aspect
3814 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
3815 of replacement of discriminant references if the reference is simple.
3816
38172011-08-01 Robert Dewar <dewar@adacore.com>
3818
3819 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
3820 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
3821 Static_Predicate and Dynamic_Predicate.
3822 (Build_Predicate_Function): Add processing for Static_Predicate
3823 and Dynamic_Predicate.
3824 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
3825 (From_Static_Predicate): New flag
3826 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
3827
38282011-08-01 Robert Dewar <dewar@adacore.com>
3829
3830 * usage.adb: Documentation cleanup for Ada version modes in usage.
3831 * expander.adb: Minor reformatting.
3832
38332011-08-01 Robert Dewar <dewar@adacore.com>
3834
3835 * atree.ads: Minor comment fix.
3836 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
3837 a-witeio.ads, sem_prag.adb: Minor reformatting.
3838
38392011-08-01 Doug Rupp <rupp@adacore.com>
3840
3841 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
3842 pointers. Use descrip.h header file for convenience. Add some
3843 comments.
3844
38452011-08-01 Robert Dewar <dewar@adacore.com>
3846
3847 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
3848 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
3849 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
3850 New procedure.
3851 (Check_Aspect_At_End_Of_Declarations): New procedure
3852 (Analye_Aspect_Specification): Minor changes for above procedures
3853 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
3854 specification node as well.
3855
38562011-08-01 Pascal Obry <obry@adacore.com>
3857
3858 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
3859 Windows files. Use GetFilesAttributes() in this case to check for file
3860 existence instead of returning with an error code.
3861
38622011-08-01 Vincent Celier <celier@adacore.com>
3863
3864 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
3865 High is above Source length.
3866
38672011-08-01 Robert Dewar <dewar@adacore.com>
3868
3869 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
3870
38712011-08-01 Robert Dewar <dewar@adacore.com>
3872
3873 * aspects.ads (Boolean_Aspects): New subtype.
3874 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
3875 for derived types in cases where the parent type and derived type have
3876 aspects.
3877 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
3878 with aspects when parent type also has aspects.
3879 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
3880 boolean expression at this point).
3881 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
3882 accordance with final decision on the Ada 2012 feature.
3883 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
3884
38852011-08-01 Matthew Heaney <heaney@adacore.com>
3886
3887 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
3888
38892011-08-01 Pascal Obry <obry@adacore.com>
3890
3891 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
3892 Fix Replace_Slice when High is above current string size.
3893 (Replace_Slice): Fix DL computation when High is above current
3894 string length.
3895
38962011-08-01 Gary Dismukes <dismukes@adacore.com>
3897
3898 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
3899
39002011-08-01 Matthew Heaney <heaney@adacore.com>
3901
3902 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
3903 of node.
3904
39052011-08-01 Pascal Obry <obry@adacore.com>
3906
3907 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
3908 reformatting.
3909
39102011-08-01 Ed Schonberg <schonberg@adacore.com>
3911
3912 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
3913 access to protected subprograms in generic bodies.
3914 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
3915 protected type, indicate that the convention of the subprogram is
3916 Convention_Protected, because it may be used in subsequent declarations
3917 within the protected declaration.
3918
39192011-08-01 Vincent Celier <celier@adacore.com>
3920
3921 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
3922 and "final" procedures when the name of the library is "ada", to avoid
3923 duplicate symbols "adainit" and "adafinal" in executables.
3924
39252011-08-01 Ed Schonberg <schonberg@adacore.com>
3926
3927 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
3928 quantified expression that appears within a postcondition and uses the
3929 Ada2012 'Result attribute.
3930
39312011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3932
3933 * init.c (__gnat_error_handler): Cast reason to int.
3934 (__gnat_install_handler): Explain sa_sigaction use.
3935
39362011-07-24 Eric Botcazou <ebotcazou@adacore.com>
3937
3938 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
3939 subprogram has copy-in copy-out parameters, try to promote the mode of
3940 the return type if it is passed in registers.
3941
39422011-07-24 Eric Botcazou <ebotcazou@adacore.com>
3943
3944 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
3945 left operand as addressable.
3946
39472011-07-24 Eric Botcazou <ebotcazou@adacore.com>
3948
3949 * gcc-interface/gigi.h (build_function_stub): Remove.
3950 (build_return_expr): Likewise.
3951 (convert_vms_descriptor): Declare.
3952 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
3953 (build_function_stub): Move to...
3954 * gcc-interface/utils2.c (build_return_expr): Move to...
3955 * gcc-interface/trans.c (build_function_stub): ...here.
3956 (build_return_expr): ...here.
3957 (Subprogram_Body_to_gnu): Add local variable for language_function.
3958 Disconnect the parameter attributes cache, if any, once done with it.
3959 Call end_subprog_body only after setting the end_locus.
3960 Build the stub associated with the function, if any, at the very end.
3961 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
3962 variables and streamline control flow.
3963
39642011-07-23 Arnaud Charlet <charlet@adacore.com>
3965
3966 PR ada/49819
3967 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
3968 g-trasym-dwarf.adb.
3969
39702011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3971
3972 PR bootstrap/49794
3973 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
3974 Assign to act.sa_sigaction.
3975 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
3976 current->return_address to char * before arithmetic.
3977
39782011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3979
3980 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
3981 Correct argument types.
3982 Extract code from reason.
3983 (__gnat_install_handler): Assign to act.sa_sigaction.
3984
39852011-07-21 Eric Botcazou <ebotcazou@adacore.com>
3986
3987 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
3988 (GNAT1_OBJS): ...here.
3989
39902011-07-15 Eric Botcazou <ebotcazou@adacore.com>
3991
3992 PR ada/48711
3993 * g-socthi-mingw.adb (Fill): Fix formatting.
3994
3995 * gcc-interface/gigi.h: Move around comment.
3996
39972011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3998
3999 PR ada/46350
4000 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
4001
40022011-07-14 Florian Weimer <fw@deneb.enyo.de>
4003
4004 PR ada/48711
4005 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
4006
40072011-07-13 Eric Botcazou <ebotcazou@adacore.com>
4008
4009 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
4010 range comparison if Pmode is SImode.
4011
40122011-07-12 Laurent GUERBY <laurent@guerby.net>
4013 Eric Botcazou <ebotcazou@adacore.com>
4014
4015 * adadecode.c: Wrap up in extern "C" block.
4016 * adadecode.h: Likewise.
4017 * adaint.c: Likewise. Remove 'const' keyword.
4018 * adaint.h: Likewise.
4019 * argv.c: Likewise.
4020 * atree.h: Likewise.
4021 * cio.c: Likewise.
4022 * cstreams.c: Likewise.
4023 * env.c: Likewise.
4024 * exit.c: Likewise.
4025 * fe.h: Likewise.
4026 * final.c: Likewise.
4027 * init.c: Likewise.
4028 * initialize.c: Likewise.
4029 * link.c: Likewise.
4030 * namet.h: Likewise.
4031 * nlists.h: Likewise.
4032 * raise.c: Likewise.
4033 * raise.h: Likewise.
4034 * repinfo.h: Likewise.
4035 * seh_init.c: Likewise.
4036 * targext.c: Likewise.
4037 * tracebak.c: Likewise.
4038 * uintp.h: Likewise.
4039 * urealp.h: Likewise.
4040 * xeinfo.adb: Wrap up generated C code in extern "C" block.
4041 * xsinfo.adb: Likewise.
4042 * xsnamest.adb: Likewise.
4043 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
4044 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
4045 * gcc-interface/misc.c: Likewise.
4046 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
4047 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
4048 ada/targext.o here...
4049 (GNAT_ADA_OBJS): ...and not here.
4050 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
4051 (GNATBIND_OBJS): Reorder.
4052
40532011-07-07 Richard Henderson <rth@redhat.com>
4054
4055 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
4056 dwarf2out_frame_init.
4057
40582011-07-07 Eric Botcazou <ebotcazou@adacore.com>
4059
4060 * gcc-interface/misc.c (gnat_init): Tweak previous change.
4061
40622011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4063
4064 PR target/39150
4065 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
4066
40672011-07-06 Richard Guenther <rguenther@suse.de>
4068
4069 * gcc-interface/misc.c (gnat_init): Merge calls to
4070 build_common_tree_nodes and build_common_tree_nodes_2.
4071 Re-initialize boolean_false_node.
4072
40732011-07-02 Eric Botcazou <ebotcazou@adacore.com>
4074 Olivier Hainque <hainque@adacore.com>
4075 Nicolas Setton <setton@adacore.com>
4076
4077 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
4078 the type according to the ARTIFICIAL_P parameter.
4079 (create_type_decl): Likewise.
4080 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
4081
40822011-07-01 Eric Botcazou <ebotcazou@adacore.com>
4083
4084 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
4085 (gnatbind): Likewise.
4086
40872011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4088
4089 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
4090
40912011-06-18 Eric Botcazou <ebotcazou@adacore.com>
4092
4093 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
4094 local variable throughout. Remove useless call to Base_Type.
4095 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
4096 Take it also into account for the volatileness of the field. Set the
4097 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
4098
40992011-06-18 Eric Botcazou <ebotcazou@adacore.com>
4100
4101 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
4102 on a dereference built for a by-ref object if it has an address clause.
4103
41042011-06-18 Eric Botcazou <ebotcazou@adacore.com>
4105
4106 * einfo.ads (Address_Taken): Document use for the second argument of
4107 Asm_Input and Asm_Output attributes.
4108 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
4109 argument is an entity name, then set Address_Taken on it.
4110 <Attribute_Asm_Output>: Likewise.
4111 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
4112 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
4113 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
4114 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
4115
41162011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
4117
4118 PR middle-end/46500
4119 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
4120
41212011-06-14 Joseph Myers <joseph@codesourcery.com>
4122
4123 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
4124 (ada/utils.o): Update dependencies.
4125 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
4126 ../../../libcpp/libcpp.a.
4127 * gcc-interface/utils.c: Include common/common-target.h.
4128 (process_attributes): Use targetm_common.have_named_sections.
4129
41302011-06-07 Richard Guenther <rguenther@suse.de>
4131
4132 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
4133 set_sizetype.
4134
41352011-06-06 Eric Botcazou <ebotcazou@adacore.com>
4136
4137 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
4138 TREE_THIS_NOTRAP flag.
4139
41402011-06-06 Eric Botcazou <ebotcazou@adacore.com>
4141
4142 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
4143 Fix thinko.
4144
41452011-06-06 Eric Botcazou <ebotcazou@adacore.com>
4146
4147 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
4148 constants whose full view has discriminants specially.
4149
41502011-06-06 Eric Botcazou <ebotcazou@adacore.com>
4151
4152 * gcc-interface/utils.c: Include diagnostic.h.
4153 (gnat_write_global_declarations): Output debug information for all
4154 global type declarations before finalizing the compilation unit.
4155 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
4156
41572011-05-25 Jakub Jelinek <jakub@redhat.com>
4158
4159 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
4160
41612011-05-25 Kai Tietz <ktietz@redhat.com>
4162
4163 * adaint.c (__gnat_to_canonical_file_list_next): Use array
4164 initialization instead of const/none-const pointer assignment.
4165
41662011-05-24 Joseph Myers <joseph@codesourcery.com>
4167
4168 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
4169 $(EXTRA_GNAT1_OBJS).
4170 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
4171 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
4172 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
4173 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
4174 libcommon-target.a instead of prefix.o.
4175
41762011-05-21 Joseph Myers <joseph@codesourcery.com>
4177
4178 PR ada/49097
4179 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
4180
41812011-05-20 Joseph Myers <joseph@codesourcery.com>
4182
4183 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
4184 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
4185 instead of version.o.
4186
41872011-05-18 Kai Tietz <ktietz@redhat.com>
4188
4189 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
4190 boolean_false_node instead of integer_zero_node.
4191 (convert_with_check): Likewise.
4192 * gcc-interface/decl.c (choices_to_gnu): Likewise.
4193
41942011-05-12 Eric Botcazou <ebotcazou@adacore.com>
4195
4196 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
4197 type of the parameter is an unconstrained array, convert the actual to
4198 the type of the formal in the In Out and Out cases as well.
4199
42002011-05-11 Nathan Froyd <froydnj@codesourcery.com>
4201
4202 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
4203 call build_function_type_array or build_varargs_function_type_array
4204 instead.
4205 (create_subprog_type): Don't call build_function_type; call
4206 build_function_type_vec instead.
4207
42082011-05-11 Nathan Froyd <froydnj@codesourcery.com>
4209
4210 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
4211 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
4212 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
4213
42142011-05-07 Eric Botcazou <ebotcazou@adacore.com>
4215
4216 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
4217
4218 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
4219 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
4220
42212011-05-05 Nathan Froyd <froydnj@codesourcery.com>
4222
4223 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
4224
42252011-05-05 Nathan Froyd <froydnj@codesourcery.com>
4226
4227 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
4228 instead of accessing TYPE_ARG_TYPES directly.
4229 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
4230
42312011-05-05 Eric Botcazou <ebotcazou@adacore.com>
4232
4233 PR ada/48844
4234 * gcc-interface/gigi.h (get_variant_part): Declare.
4235 * gcc-interface/decl.c (get_variant_part): Make global.
4236 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
4237 types have the same constant size, are record types and T1 has a
4238 variant part while T2 doesn't.
4239
42402011-05-05 Eric Botcazou <ebotcazou@adacore.com>
4241
4242 * gcc-interface/utils.c (begin_subprog_body): Do not call
4243 get_pending_sizes.
4244 (end_subprog_body): Likewise.
4245
42462011-05-04 Richard Guenther <rguenther@suse.de>
4247
4248 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
4249 int_const_binop.
4250 (pos_to_constructor): Likewise.
4251
42522011-05-03 Nathan Froyd <froydnj@codesourcery.com>
4253 Eric Botcazou <ebotcazou@adacore.com>
4254
4255 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
4256 of build_function_type. Adjust calls to...
4257 (build_raise_check): ...this. Do not take a void_tree parameter.
4258 Call build_function_type_list instead of build_function_type.
4259 Fix head comment and swap couple of conditional blocks.
4260
42612011-04-30 Eric Botcazou <ebotcazou@adacore.com>
4262
4263 * gnatvsn.ads (Library_Version): Bump to 4.7.
4264 (Current_Year): Bump to 2011.
4265
42662011-04-29 Michael Matz <matz@suse.de>
4267
4268 * gcc-interface/misc.c (gnat_handle_option): Set
4269 warn_maybe_uninitialized.
4270
42712011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
4272
4273 * gnat_ugn.texi (Complexity Metrics Control): Update link to
4274 the Watson/McCabe paper.
4275
42762011-04-23 Jim Meyering <meyering@redhat.com>
4277
4278 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
4279
42802011-04-22 Eric Botcazou <ebotcazou@adacore.com>
4281
4282 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
4283 onto the new type.
4284
42852011-04-22 Eric Botcazou <ebotcazou@adacore.com>
4286
4287 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
4288 parameter.
4289 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
4290 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
4291 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
4292 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
4293 <all>: Do not set flags on the reused DECL node coming from an alias.
4294 Set DECL_IGNORED_P on the DECL node built for subprograms if they
4295 don't need debug info here...
4296 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
4297 (gigi): Adjust calls to create_subprog_decl.
4298 (build_raise_check): Likewise.
4299 (establish_gnat_vms_condition_handler): Likewise.
4300 (Compilation_Unit_to_gnu): Likewise.
4301 (gnat_to_gnu): Likewise.
4302
43032011-04-21 Eric Botcazou <ebotcazou@adacore.com>
4304
4305 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
4306 (NO_REORDER_ADAFLAGS): New variable.
4307 (EXTRA_GNATTOOLS): Always define.
4308 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
4309 Clean up and adjust list of files compiled with special options.
4310 * gcc-interface/Make-lang.in: Likewise.
4311 (ada/decl.o): Cosmetical change.
4312 (ada/misc.o): Remove dependency on $(PLUGIN_H).
4313
43142011-04-20 Jim Meyering <meyering@redhat.com>
4315
4316 * initialize.c (__gnat_initialize): Remove useless if-before-free.
4317
43182011-04-17 Eric Botcazou <ebotcazou@adacore.com>
4319
4320 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
4321 $(CFLAGS) on the link line.
4322
43232011-04-17 Eric Botcazou <ebotcazou@adacore.com>
4324
4325 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
4326 padded type built for the return type if it is unconstrained.
4327
43282011-04-14 Nathan Froyd <froydnj@codesourcery.com>
4329
4330 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
4331
43322011-04-12 Nathan Froyd <froydnj@codesourcery.com>
4333
4334 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
4335 before calling TREE_CHAIN.
4336 * gcc-interface/misc.c (gnat_init_ts): New function.
4337 (LANG_HOOKS_INIT_TS): Define.
4338
43392011-04-12 Martin Jambor <mjambor@suse.cz>
4340
4341 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
4342 instead of cgraph_node.
4343
43442011-04-08 Eric Botcazou <ebotcazou@adacore.com>
4345
4346 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
4347 alignment on fields of the RETURN type built for the Copy-In Copy-Out
4348 mechanism.
4349
43502011-04-08 Eric Botcazou <ebotcazou@adacore.com>
4351
4352 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
4353 of aggregate types that contain a placeholder.
4354
43552011-04-08 Nathan Froyd <froydnj@codesourcery.com>
4356
4357 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
4358 TYPE_ARG_TYPES.
4359 (handle_type_generic_attribute): Likewise.
4360
43612011-04-04 Eric Botcazou <ebotcazou@adacore.com>
4362
4363 PR ada/47163
4364 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
4365
43662011-04-04 Kai Tietz <ktietz@redhat.com>
4367
4368 PR ada/47163
4369 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
4370 to flag value.
4371
43722011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4373
4374 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
4375 type case, do not strip a padding type around the array type.
4376
43772011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4378
4379 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
4380 types.
4381
43822011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4383
4384 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
4385 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
4386 code for -feliminate-unused-debug-types.
4387 (gnat_post_options): Likewise.
4388
43892011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4390
4391 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
4392 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
4393 distinct copy.
4394
43952011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4396
4397 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
4398 DECL_ARTIFICIAL flag on enumeration types.
4399
44002011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4401
4402 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
4403 fat pointer types artificial unconditionally.
4404 <E_Array_Subtype>: Attach the base array type as a parallel type if it
4405 isn't artificial.
4406
44072011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4408
4409 * gcc-interface/gigi.h (get_dummy_type): Declare.
4410 (build_dummy_unc_pointer_types): Likewise.
4411 (finish_fat_pointer_type): Likewise.
4412 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
4413 fat pointer type has been built, complete it in place.
4414 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
4415 and thin pointers. Remove useless variable.
4416 (finish_fat_pointer_type): Make global and move to...
4417 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
4418 (get_dummy_type): New function.
4419 (build_dummy_unc_pointer_types): Likewise.
4420 (gnat_pushdecl): Propage the name to the anonymous variants only.
4421 (update_pointer_to): Only adjust the pointer types in the unconstrained
4422 array case.
4423
44242011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4425
4426 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
4427 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
4428 if this is a Taft amendment type and the full declaration is available.
4429 * gcc-interface/trans.c (process_type): Likewise.
4430 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
4431 (process_freeze_entity): Likewise.
4432 * gcc-interface/utils.c (dummy_global): New static variable.
4433 (gnat_write_global_declarations): If there are types declared as used
4434 at the global level, insert them in the global hash table.
4435
44362011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4437
4438 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
4439 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
4440 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
4441 copy.
4442 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
4443 flag of the type accordingly.
4444 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
4445
44462011-04-02 Eric Botcazou <ebotcazou@adacore.com>
4447
4448 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
4449 finalizing types when updating the pointers to the designated type.
4450 <all>: Finalize the deferred types even if we didn't defer processing
4451 of incomplete types in this invocation.
4452
44532011-04-01 Olivier Hainque <hainque@adacore.com>
4454 Nicolas Setton <setton@adacore.com>
4455 Eric Botcazou <ebotcazou@adacore.com>
4456
4457 * gcc-interface/misc.c (gnat_descriptive_type): New function.
4458 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
4459
44602011-03-28 Kai Tietz <ktietz@redhat.com>
4461
4462 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
4463 Windows targets.
4464 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
4465 * system-mingw.ads (System): Change ZCX_By_Default default to True.
4466
4467 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
4468
44692011-03-28 Tristan Gingold <gingold@adacore.com>
4470
4471 PR ada/44431
4472 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
4473 Use ada output of gnatbind.
4474 (ada/b_gnatb.adb): Ditto.
4475 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
4476 (ada.mostlyclean, ada.stage1)
4477 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
4478 (ada.stagefeedback): Adjust.
4479 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
4480 Use ada output of gnatbind.
4481 (b_gnatm.adb): Ditto.
4482 (b_gnatl.o, b_gnatm.o): New rules.
4483
44842011-03-26 Eric Botcazou <ebotcazou@adacore.com>
4485
4486 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
4487 for the padded type built to support a specified size or alignment.
4488
44892011-03-26 Eric Botcazou <ebotcazou@adacore.com>
4490
4491 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
4492 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
4493 unconditionally to the end of the unit when the designated type is
4494 limited_with'ed.
4495 <all>: Rename local variable. Attempt to un-defer types only and do it
4496 for limited_with'ed types as well.
4497 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
4498 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
4499 consistently and remove redundant call to finalize_from_with_types.
4500
45012011-03-26 Eric Botcazou <ebotcazou@adacore.com>
4502
4503 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
4504 subprograms without a previous spec declared in the same unit.
4505 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
4506 subprograms at the end of the unit instead of at the beginning.
4507 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
4508 isn't public for the special handling of non-inline functions nested
4509 inside inline external functions.
4510
45112011-03-25 Jeff Law <law@redhat.com>
4512
4513 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
4514
45152011-03-24 Eric Botcazou <ebotcazou@adacore.com>
4516
4517 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
4518 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
4519 to compute Set_Size_Depends_On_Discriminant.
4520 (Layout_Type): Call it on array types in back-end layout mode.
4521 * sem_util.adb (Requires_Transient_Scope): Return true for array
4522 types only if the size depends on the value of discriminants.
4523 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
4524 type if the RHS is a call to a function that returns an unconstrained
4525 type with default discriminant.
4526
45272011-03-24 Eric Botcazou <ebotcazou@adacore.com>
4528
4529 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
4530 non-conversion to the nominal result type at the end.
4531
45322011-03-23 Eric Botcazou <ebotcazou@adacore.com>
4533
4534 * gcc-interface/trans.c (create_temporary): New function taken from...
4535 (create_init_temporary): ...here. Call it.
4536 (call_to_gnu): Create the temporary for the return value early, if any.
4537 Create it for a function with copy-in/copy-out parameters if there is
4538 no target; in other cases of copy-in/copy-out, use another temporary.
4539 Push the new binding level lazily. Add and rename local variables.
4540
45412011-03-23 Eric Botcazou <ebotcazou@adacore.com>
4542
4543 * gcc-interface/decl.c (validate_size): Improve comments and tweak
4544 error message.
4545 (set_rm_size): Likewise.
4546
45472011-03-23 Eric Botcazou <ebotcazou@adacore.com>
4548
4549 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
4550 for the padded type built in order to support a specified alignment.
4551 Fix incorrect formatting.
4552
45532011-03-21 Eric Botcazou <ebotcazou@adacore.com>
4554
4555 PR bootstrap/48216
4556 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
4557
45582011-03-21 Eric Botcazou <ebotcazou@adacore.com>
4559
4560 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
4561 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
4562 to the end of the list. Adjust recursive call. Rename local variable.
4563 If REORDER is true, reorder components of the record type.
4564 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
4565 components_to_record and adjust the parameter list.
4566
45672011-03-21 Eric Botcazou <ebotcazou@adacore.com>
4568
4569 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
4570 disabled, use the variable for bounds of loop iteration scheme.
4571
45722011-03-21 Kai Tietz <ktietz@redhat.com>
4573
4574 PR target/12171
4575 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
4576
45772011-03-17 Eric Botcazou <ebotcazou@adacore.com>
4578
4579 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
4580 out whether the expression is read-only. Short-circuit placeholder
4581 case and rename a couple of local variables.
4582
45832011-03-17 Eric Botcazou <ebotcazou@adacore.com>
4584
4585 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
4586 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
4587 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
4588 (convert): Deal with conversions from a smaller form type specially.
4589
45902011-02-14 Eric Botcazou <ebotcazou@adacore.com>
4591
4592 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
4593 its argument, except for the special -I- switch.
4594
45952011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
4596
4597 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
4598 "Ada Issues".
4599
46002011-02-08 Eric Botcazou <ebotcazou@adacore.com>
4601
4602 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
4603
46042011-02-03 Eric Botcazou <ebotcazou@adacore.com>
4605
4606 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
4607 GNAT_FORMAL.
4608 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
4609 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
4610 instead of GNAT_FORMAL. Protect the expression against multiple uses.
4611 Do not generate the check directly, instead instantiate the template
4612 check present in the descriptor.
4613 (make_descriptor_field): Move around.
4614 (build_vms_descriptor32): Build a template check in the POINTER field.
4615 (build_vms_descriptor): Remove useless suffixes.
4616 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
4617
46182011-01-26 Eric Botcazou <ebotcazou@adacore.com>
4619
4620 PR bootstrap/47467
4621 * targext.c: Include target files if IN_RTS is defined.
4622
46232011-01-26 Richard Guenther <rguenther@suse.de>
4624
4625 PR bootstrap/47467
4626 * targext.c: Include config.h.
4627 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
4628 dependency.
4629
46302011-01-04 Pascal Obry <obry@adacore.com>
4631 Eric Botcazou <ebotcazou@adacore.com>
4632
4633 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
4634
46352011-01-04 Eric Botcazou <ebotcazou@adacore.com>
4636
4637 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
4638 end-of-case on the end label and its associated gotos, if any.
4639
46402011-01-04 Eric Botcazou <ebotcazou@adacore.com>
4641
4642 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
4643 expressions of the parameter cache within the statement group of
4644 the CICO mechanism.
4645
46462011-01-04 Olivier Hainque <hainque@adacore.com>
4647 Eric Botcazou <ebotcazou@adacore.com>
4648
4649 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
4650 (set_end_locus_from_node): New function.
4651 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
4652 make and the function end_locus.
4653 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
4654 for the elaboration subprogram.
4655 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
4656 set the end_locus of the expression as well.
4657
46582011-01-04 Eric Botcazou <ebotcazou@adacore.com>
4659
4660 PR ada/47131
4661 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
4662 variables that are referenced in exception handlers volatile.
4663
4664
4665\f
4666Copyright (C) 2011 Free Software Foundation, Inc.
4667
4668Copying and distribution of this file, with or without modification,
4669are permitted in any medium without royalty provided the copyright
4670notice and this notice are preserved.
4671
4672 * gnat_rm.texi: Ramification of pragma Eliminate documentation
4673 - fix bugs in the description of Source_Trace;
4674 - get rid of UNIT_NAME;
4675
4fbad0ba
AC
46762011-08-02 Javier Miranda <miranda@adacore.com>
4677
4678 * exp_ch9.adb
4679 (Build_Dispatching_Requeue): Adding support for VM targets
4680 since we cannot directly reference the Tag entity.
4681 * exp_sel.adb (Build_K): Adding support for VM targets.
4682 (Build_S_Assignment): Adding support for VM targets.
4683 * exp_disp.adb
4684 (Default_Prim_Op_Position): In VM targets do not restrict availability
4685 of predefined interface primitives to compiling in Ada 2005 mode.
4686 (Is_Predefined_Interface_Primitive): In VM targets this service is not
4687 restricted to compiling in Ada 2005 mode.
4688 (Make_VM_TSD): Generate code that declares and initializes the OSD
4689 record. Needed to support dispatching calls through synchronized
4690 interfaces.
4691 * exp_ch3.adb
4692 (Make_Predefined_Primitive_Specs): Enable generation of predefined
4693 primitives associated with synchronized interfaces.
4694 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
4695 primitives associated with synchronized interfaces.
4696
46972011-08-02 Yannick Moy <moy@adacore.com>
4698
4699 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
4700 statements hidden in SPARK if preceded by the HIDE directive
4701 (Parse_Exception_Handlers): mark each exception handler in a sequence of
4702 exception handlers as hidden in SPARK if preceded by the HIDE directive
4703 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
4704 if starting with the HIDE directive
4705 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
4706 starting with the HIDE directive; mark the declarations in a private
4707 part as hidden in SPARK if the private part starts with the HIDE
4708 directive
4709 * restrict.adb, restrict.ads
4710 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
4711 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
4712 argument node belongs to a part which is hidden in SPARK
4713 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
4714 parts in SPARK; protect the possibly costly call to
4715 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
4716 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
4717 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
4718 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
4719 Tok_SPARK_Hide.
4720 (Scan): recognize special comment starting with '#' and followed by
4721 SPARK keyword "hide" as a HIDE directive.
4722
47232011-08-02 Yannick Moy <moy@adacore.com>
4724
4725 * types.ads, erroutc.ads: Minor reformatting.
4726
47272011-08-02 Vincent Celier <celier@adacore.com>
4728
4729 * link.c: Add response file support for cross platforms.
4730
6ff6152d
ES
47312011-08-02 Ed Schonberg <schonberg@adacore.com>
4732
4733 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
4734 in an association, set parent field of copy before partial analysis.
4735 * sem_res.adb (Resolve_Slice): create reference to itype only when
4736 expansion is enabled.
4737
975c6896
YM
47382011-08-02 Yannick Moy <moy@adacore.com>
4739
4740 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
4741 for new flag denoting which subprogram bodies are in ALFA
4742 * restrict.adb, sem_ch7.adb: Update comment
4743 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
4744 sem_ch9.adb, sem_res.adb: Add calls to
4745 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
4746 * sem_ch6.adb (Analyze_Function_Return): add calls to
4747 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
4748 middle of the body, and extended return.
4749 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
4750 False when missing return.
4751 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
4752 to True for subprograms whose spec is in ALFA. Remove later on the flag
4753 on the entity used for a subprogram body when there exists a separate
4754 declaration.
4755 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
4756 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
4757 False, otherwise do nothing.
4758
afc8324d
AC
47592011-08-02 Robert Dewar <dewar@adacore.com>
4760
4761 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
4762
47632011-08-02 Yannick Moy <moy@adacore.com>
4764
4765 * sem_ch4.ads: minor formatting.
4766
2ba431e5
YM
47672011-08-02 Yannick Moy <moy@adacore.com>
4768
4769 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
4770 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
4771 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
4772 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
4773 opt.ads: cleanup of SPARK mode
4774
0f853035
YM
47752011-08-02 Yannick Moy <moy@adacore.com>
4776
4777 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
4778 types.
4779 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
4780 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
4781 * sem_ch3.adb
4782 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
4783 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
4784 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
4785 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
4786 types.
4787 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
4788 non-static range.
4789 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
4790 functions whose return type is not in ALFA.
4791 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
4792 specifications.
4793 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
4794 parameter's type is not in ALFA.
4795 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
4796 types are in ALFA.
4797
d2b10647
ES
47982011-08-02 Ed Schonberg <schonberg@adacore.com>
4799
4800 * sem_ch6 (Analyze_Expression_Function): treat the function as
4801 Inline_Always, and introduce a subprogram declaration for it when it is
4802 not a completion.
4803 * inline.adb (Add_Inlined_Body): recognize bodies that come from
4804 expression functions, so that the back-end can determine whether they
4805 can in fact be inlined.
4806 * sem_util.adb (Is_Expression_Function): predicate to determine whether
4807 a function body comes from an expression function.
4808
c7b9d548
AC
48092011-08-02 Gary Dismukes <dismukes@adacore.com>
4810
4811 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
4812 null exclusions to test Can_Never_Be_Null on the anonymous access types
4813 of the formals rather than testing the formals themselves. Exclude this
4814 check in cases where the Old_Formal is marked as a controlling formal,
4815 to avoid issuing spurious errors for bodies completing dispatching
4816 operations (due to the flag not getting set on controlling access
4817 formals in body specs).
4818 (Find_Corresponding_Spec): When checking full and subtype conformance of
4819 subprogram bodies in instances, pass Designated and E in that order, for
4820 consistency with the expected order of the formals (New_Id followed by
4821 Old_Id).
4822
48232011-08-02 Robert Dewar <dewar@adacore.com>
4824
4825 * sem_ch8.adb: Minor reformatting.
4826
1138cf59
AC
48272011-08-02 Ed Schonberg <schonberg@adacore.com>
4828
4829 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
4830 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
4831 primitive operations of class-wide actuals.
4832
48332011-08-02 Javier Miranda <miranda@adacore.com>
4834
4835 * exp_atag.ads, exp_atag.adb
4836 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
4837 since its value is implicitly passed in argument Typ.
4838 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
4839 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
4840 Build_Common_Dispatching_Select_Statements.
4841
7b9db926
RD
48422011-08-02 Robert Dewar <dewar@adacore.com>
4843
4844 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
4845 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
4846 Minor reformatting.
4847
e8374e7a
AC
48482011-08-02 Robert Dewar <dewar@adacore.com>
4849
4850 * sem_res.adb: Minor reformatting.
4851 * sem_prag.adb: Minor reformatting.
4852
48532011-08-02 Javier Miranda <miranda@adacore.com>
4854
4855 * exp_atag.adb, exp_atags.ads
4856 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
4857 by the tagged type Entity. Required to use this routine in the VM
4858 targets since we do not have available the Tag entity in the VM
4859 platforms.
4860 * exp_ch6.adb
4861 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
4862 Ada.Tags has not been previously loaded.
4863 * exp_ch7.adb
4864 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
4865 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
4866 * sem_aux.adb
4867 (Enclosing_Dynamic_Scope): Add missing support to handle the full
4868 view of enclosing scopes. Required to handle enclosing scopes that
4869 are synchronized types whose full view is a task type.
4870 * exp_disp.adb
4871 (Build_VM_TSDs): Minor code improvement to avoid generating and
4872 analyzing lists with empty nodes.
4873 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
4874 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
4875 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
4876 (Make_Disp_Timed_Select_Body): Add support for VM targets.
4877 (Make_Select_Specific_Data_Table): Add support for VM targets.
4878 (Make_VM_TSD): Generate code to initialize the SSD structure of
4879 the TSD.
4880
48812011-08-02 Yannick Moy <moy@adacore.com>
4882
4883 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
4884 cross-references section in ALI.
4885 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
4886 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
4887 Sub).
4888 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
4889 subprogram or package entity of a node
4890 (Is_Local_Reference_Type): new function returns True for references
4891 selected in local cross-references.
4892 (Lt): function extracted from Lt in Output_References
4893 (Write_Entity_Name): function extracted from Output_References
4894 (Generate_Definition): generate reference with type 'D' for definition
4895 of objects (object declaration and parameter specification), with
4896 appropriate locations and units, for use in local cross-references.
4897 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
4898 references of type 'I' for initialization in object definition.
4899 (Output_References): move part of function Lt and procedure
4900 Write_Entity_Name outside of the body. Ignore references of types 'D'
4901 and 'I' introduced for local cross-references.
4902 (Output_Local_References): new procedure to output the local
4903 cross-references sections.
4904 (Lref_Entity_Status): new array defining whether an entity is a local
4905 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
4906 with 'I' type when initialization expression is present.
4907 * get_scos.adb, get_scos.ads: Correct comments and typos
4908
1f6439e3
AC
49092011-08-02 Javier Miranda <miranda@adacore.com>
4910
4911 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
4912 the JVM target.
4913 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
4914 the JVM target.
4915 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
4916 TSD support.
4917
49182011-08-02 Vincent Celier <celier@adacore.com>
4919
4920 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
4921 (No_Space_Img): New function
4922 (Find_Excluded_Sources): When reading from a file, record the file name
4923 and the line number for each excluded source.
4924 (Mark_Excluded_Sources): When reporting an error, if the excluded
4925 sources were read from a file, include file name and line number in
4926 the error message.
4927
49282011-08-02 Ed Schonberg <schonberg@adacore.com>
4929
4930 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
4931
ab027d28
RD
49322011-08-02 Robert Dewar <dewar@adacore.com>
4933
4934 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
4935
b3b28b0c
JM
49362011-08-02 Javier Miranda <miranda@adacore.com>
4937
4938 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
4939 generation of TSDs to the DOTNET compiler.
4940 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
4941 generation of TSDs to the DOTNET compiler.
4942
9732e886
JM
49432011-08-02 Javier Miranda <miranda@adacore.com>
4944
4945 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
4946 record of all the tagged types declared inside library level package
4947 declarations, library level package bodies or library level subprograms.
4948 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
4949 associated with a given tagged type.
4950 (Build_VM_TSDs): New subprogram.
4951 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
4952 compilation units that are subprograms.
4953 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
4954 compilation units that are package bodies.
4955 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
4956 units that are a package declaration or a package instantiation.
4957 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
4958 reorganization to improve the error generated by the frontend when the
4959 function Ada.Tags.Secondary_Tag is not available.
4960 * rtsfind.ads (RE_Register_TSD): New runtime entity.
4961 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
4962
e526d0c7
AC
49632011-08-02 Javier Miranda <miranda@adacore.com>
4964
4965 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
4966
49672011-08-02 Robert Dewar <dewar@adacore.com>
4968
4969 * s-imenne.ads: Minor reformatting.
4970
49712011-08-02 Robert Dewar <dewar@adacore.com>
4972
4973 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
4974 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
4975 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
4976
49772011-08-02 Robert Dewar <dewar@adacore.com>
4978
4979 * einfo.ads (Materialize_Entity): Document this is only for renamings
4980 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
4981 required debug information in the case where we transform the object
4982 declaration into a renaming declaration.
4983 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
4984 object
4985 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
4986 Materialize_Entity.
4987
5b1e6aca
RD
49882011-08-02 Robert Dewar <dewar@adacore.com>
4989
4990 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
4991 Suppress_Init_Procs.
4992 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
4993 Suppress_Initialization/Initialization_Suppressed.
4994 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
4995 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
4996 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
4997 * sem_prag.adb: New processing for pragma Suppress_Initialization.
4998
5ad4969d
RD
49992011-08-02 Robert Dewar <dewar@adacore.com>
5000
5001 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
5002 Minor reformatting.
5003
8c4ee6f5
AC
50042011-08-02 Ed Schonberg <schonberg@adacore.com>
5005
5006 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
5007 only have inheritable classwide pre/postconditions.
5008
50092011-08-02 Javier Miranda <miranda@adacore.com>
5010
5011 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
5012 * rtsfind.ads (RE_Check_TSD): New runtime entity.
5013 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
5014 checks if the external tag of a type is the same as the external tag
5015 of some other declaration.
5016
0b3d16c0
AC
50172011-08-02 Thomas Quinot <quinot@adacore.com>
5018
5019 * s-taskin.ads: Minor reformatting.
5020
50212011-08-02 Emmanuel Briot <briot@adacore.com>
5022
5023 * g-comlin.adb (Display_Help): swap the order in which it prints the
5024 short help and the general usage.
5025
50262011-08-02 Ed Schonberg <schonberg@adacore.com>
5027
5028 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
5029 the aspect declarations and attach them to the generic copy for
5030 subsequent analysis.
5031 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
5032 declarations of the generic tree to the new subprogram declarations.
5033 * sem_attr.adb (Check_Precondition_Postcondition): recognize
5034 conditions that apply to a subprogram instance.
5035
50362011-08-02 Robert Dewar <dewar@adacore.com>
5037
5038 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
5039
50402011-08-02 Ed Schonberg <schonberg@adacore.com>
5041
5042 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
5043 private type with a tagged full view is not derived in the immediate
5044 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
5045
4637729f
AC
50462011-08-02 Robert Dewar <dewar@adacore.com>
5047
5048 * exp_ch4.adb: Minor reformatting.
5049
50502011-08-02 Ed Schonberg <schonberg@adacore.com>
5051
5052 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
5053 Ada2012 iterator, the loop will be rewritten during expansion into a
5054 while loop with a cursor and an element declaration. Do not analyze the
5055 body in this case, because if the container is for indefinite types the
5056 actual subtype of the elements will only be determined when the cursor
5057 declaration is analyzed.
5058
50592011-08-02 Arnaud Charlet <charlet@adacore.com>
5060
5061 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
5062 size/alignment related attributes in CodePeer_Mode.
5063
50642011-08-02 Gary Dismukes <dismukes@adacore.com>
5065
5066 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
5067 Prepend_Element, since this can result in the operation getting the
5068 wrong slot in the full type's dispatch table if the full type has
5069 inherited operations. The incomplete type's operation will get added
5070 to the proper position in the full type's primitives
5071 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
5072 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
5073 dispatching operations, since there are cases where nonprimitive
5074 subprograms can get added to the list of incomplete dependents (such
5075 as subprograms in nested packages).
5076 * sem_ch6.adb (Process_Formals): First, remove test for being in a
5077 private part when determining whether to add a primitive with a
5078 parameter of a tagged incomplete type to the Private_Dependents list.
5079 Such primitives can also occur in the visible part, and should not have
5080 been excluded from being private dependents.
5081 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
5082 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
5083 list of a Taft-amendment incomplete type is a primitive before issuing
5084 an error that the full type must appear in the same unit. There are
5085 cases where nonprimitives can be in the list (such as subprograms in
5086 nested packages).
5087 * sem_disp.adb (Derives_From): Use correct condition for checking that
5088 a formal's type is derived from the type of the corresponding formal in
5089 the parent subprogram (the condition was completely wrong). Add
5090 checking that was missing for controlling result types being derived
5091 from the result type of the parent operation.
5092
4c60de0c
YM
50932011-08-02 Yannick Moy <moy@adacore.com>
5094
5095 * errout.adb (First_Node): minor renaming
5096 * restrict.adb (Check_Formal_Restriction): put restriction warning on
5097 first node.
5098
f5afb270
AC
50992011-08-02 Yannick Moy <moy@adacore.com>
5100
5101 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
5102 before accessing operands.
5103 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
5104 decide whether an initialization expression respects SPARK rules, as
5105 the plain node is the expanded one. This allows for more valid warnings
5106 to be issued.
5107 * gnat_rm.texi: Minor update.
5108
51092011-08-02 Arnaud Charlet <charlet@adacore.com>
5110
5111 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
5112 previous change.
5113
51142011-08-02 Robert Dewar <dewar@adacore.com>
5115
5116 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
5117
51182011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
5119
5120 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
5121 loop statements and the element renaming declaration with a block when
5122 the element type is controlled.
5123
51242011-08-02 Yannick Moy <moy@adacore.com>
5125
5126 * sinfo.ads: Minor formatting.
5127
51282011-08-02 Ed Schonberg <schonberg@adacore.com>
5129
5130 * sem_aggr.adb (Add_Association): if the association has a box and no
5131 expression, use the Sloc of the aggregate itself for the new
5132 association.
5133 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
5134 the Original_Node.
5135
db72f10a
AC
51362011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
5137
5138 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
5139 When a container is provided via a function call, generate a renaming
5140 of the function result. This avoids the creation of a transient scope
5141 and the premature finalization of the container.
5142 * exp_ch7.adb (Is_Container_Cursor): Removed.
5143 (Wrap_Transient_Declaration): Remove the supression of the finalization
5144 of the list controller when the declaration denotes a container cursor,
5145 it is not needed.
5146
51472011-08-02 Yannick Moy <moy@adacore.com>
5148
5149 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
5150 node is from source, instead of the original node being from source.
5151 * sem_aggr.adb
5152 (Resolve_Array_Aggregate): refine the check for a static expression, to
5153 recognize also static ranges
5154 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
5155 Array_Type_Declaration): postpone the test for the type being a subtype
5156 mark after the type has been resolved, so that component-selection and
5157 expanded-name are discriminated.
5158 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
5159 to distinguish the case of an iteration scheme, so that an error is
5160 issed on a non-static range in SPARK except in an iteration scheme.
5161 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
5162 In_Iter_Schm = True.
5163 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
5164 user-defined operators so that they are allowed in renaming
5165 * sem_ch8.adb
5166 (Find_Selected_Component): refine the check for prefixing of operators
5167 so that they are allowed in renaming. Move the checks for restrictions
5168 on selector name after analysis discriminated between
5169 component-selection and expanded-name.
5170 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
5171 concatenation argument of string type if it is static.
5172 * sem_util.adb, sem_util.ads
5173 (Check_Later_Vs_Basic_Declarations): add a new function
5174 Is_Later_Declarative_Item to decice which declarations are allowed as
5175 later items, in the two different modes Ada 83 and SPARK. In the SPARK
5176 mode, add that renamings are considered as later items.
5177 (Enclosing_Package): new function to return the enclosing package
5178 (Enter_Name): correct the rule for homonyms in SPARK
5179 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
5180 from source (result of expansion) to avoid issuing wrong warnings.
5181
51822011-08-02 Ed Schonberg <schonberg@adacore.com>
5183
5184 * errout.adb: On anything but an expression First_Node returns its
5185 argument.
5186
23685ae6
AC
51872011-08-02 Pascal Obry <obry@adacore.com>
5188
5189 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
5190
51912011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
5192
5193 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
5194 Set the associated loop as the related expression of internally
5195 generated cursors.
5196 * exp_ch7.adb (Is_Container_Cursor): New routine.
5197 (Wrap_Transient_Declaration): Supress the finalization of the list
5198 controller when the declaration denotes a container cursor.
5199
52002011-08-02 Yannick Moy <moy@adacore.com>
5201
5202 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
5203 command line now.
5204 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
5205 expression is a simple expression. This check cannot be performed in
5206 the semantics, so just drop it.
5207 (P_Index_Or_Discriminant_Constraint): move check that the index or
5208 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
5209 semantics. Other cases were previously checked in the semantics.
5210 * par-ch4.adb (P_Name): move checks that a selector name is not
5211 character literal or an operator symbol to Find_Selected_Component in
5212 the semantics
5213 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
5214 declarations are not placed after later declarations in a separate
5215 procedure in Sem_Util (possibly not the best choice?), to be used both
5216 during parsing, for Ada 83 mode, and during semantic analysis, for
5217 SPARK mode.
5218 * par-endh.adb (Check_End): move check that end label is not missing
5219 to Process_End_Label in the semantics
5220 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
5221 the special case for SPARK restriction
5222 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
5223 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
5224 parameter Force to issue the error message even on internal node (used
5225 for generated end label). Call Check_Restriction to check when an error
5226 must be issued. In SPARK mode, issue an error message even if the
5227 restriction is not set.
5228 (Check_Restriction): new procedure with an additional out parameter to
5229 inform the caller that a message has been issued
5230 * sem_aggr.adb: Minor modification of message
5231 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
5232 instead of issuing an error message directly
5233 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
5234 declarations are not placed after later declarations, by calling
5235 Check_Later_Vs_Basic_Declarations
5236 (Analyze_Subtype_Declaration): move here the check that an index or
5237 discriminant constraint must be a subtype mark. Change the check that
5238 a subtype of String must start at one so that it works on subtype marks.
5239 * sem_ch4.adb (Analyze_Call): move here the check that a named
5240 association cannot follow a positional one in a call
5241 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
5242 instead of issuing an error message directly
5243 * sem_ch8.adb (Find_Selected_Component): move here the check that a
5244 selector name is not a character literal or an operator symbol. Move
5245 here the check that the prefix of an expanded name cannot be a
5246 subprogram or a loop statement.
5247 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
5248 procedure called from parsing and semantics to check that basic
5249 declarations are not placed after later declarations
5250 (Process_End_Label): move here the check that end label is not missing
5251
52522011-08-02 Arnaud Charlet <charlet@adacore.com>
5253
5254 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
5255 representation clause in codepeer mode, since it confuses CodePeer and
5256 does not bring useful info.
5257
52582011-08-02 Ed Falis <falis@adacore.com>
5259
5260 * init.c: initialize fp hw on MILS.
5261
52622011-08-02 Ed Schonberg <schonberg@adacore.com>
5263
5264 * errout.adb (First_Node): for bodies, return the node itself (small
5265 optimization). For other nodes, do not check source_unit if the node
5266 comes from Standard.
5267
d2d9cc22
AC
52682011-08-02 Robert Dewar <dewar@adacore.com>
5269
5270 * exp_ch3.adb: Minor comment additions.
5271 * sem_ch13.adb: Minor reformatting.
5272
52732011-08-02 Pascal Obry <obry@adacore.com>
5274
5275 * make.adb, makeutl.adb: Removes some superfluous directory separator.
5276
a01b9df6
AC
52772011-08-02 Robert Dewar <dewar@adacore.com>
5278
5279 * sem_attr.adb: Minor reformatting.
5280
52812011-08-02 Robert Dewar <dewar@adacore.com>
5282
5283 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
5284 (Has_Default_Component_Value): Removed
5285 * einfo.ads Comment updates
5286 (Has_Default_Aspect): Replaces Has_Default_Value
5287 (Has_Default_Component_Value): Removed
5288 * exp_ch13.adb
5289 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
5290 * exp_ch3.adb
5291 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
5292 (Get_Simple_Init_Val): Handle Default_Value aspect
5293 (Needs_Simple_Initialization): Handle Default_Value aspect
5294 * exp_ch3.ads: Needs_Simple_Initialization
5295 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
5296 * par-prag.adb (Pragma_Default[_Component]Value) Removed
5297 * sem_ch13.adb
5298 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
5299 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
5300 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
5301
53022011-08-02 Ed Schonberg <schonberg@adacore.com>
5303
5304 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
5305 package containing iteration primitives.
5306 exp_ch5.adb (Expand_Iterator_Loop): ditto.
5307
75c90775
AC
53082011-08-02 Ed Schonberg <schonberg@adacore.com>
5309
5310 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
5311 "of", pre-analyze expression in case it is a function call with
5312 finalization actions that must be placed ahead of the loop.
5313 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
5314 on an Ada2012 iterator, insert them ahead of the rewritten loop.
5315
53162011-08-02 Geert Bosch <bosch@adacore.com>
5317
5318 * cstand.adb (Create_Float_Types): Only consider C's long double for
5319 Long_Long_Float, in addition to double.
5320
ded8909b
AC
53212011-08-02 Robert Dewar <dewar@adacore.com>
5322
5323 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
5324 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
5325 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
5326 Minor reformatting.
5327
53282011-08-02 Ed Schonberg <schonberg@adacore.com>
5329
5330 * sem_attr.adb: handle properly 'Result when it is a prefix of an
5331 indexed component.
5332
53332011-08-02 Javier Miranda <miranda@adacore.com>
5334
5335 * einfo.ads, einfo.adb
5336 (Original_Access_Type): Move this attribute to Node26 since there was
5337 an undocumented use of Node21 in E_Access_Subprogram_Type entities
5338 which causes conflicts and breaks the generation of the .NET compiler.
5339 (Interface_Name): Add missing documentation on JGNAT only uses of
5340 this attribute.
5341
70c34e1c
AC
53422011-08-02 Geert Bosch <bosch@adacore.com>
5343
5344 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
5345 (Find_Back_End_Float_Type): Likewise
5346 (Create_Back_End_Float_Types): Likewise
5347 (Create_Float_Types): Likewise
5348 (Register_Float_Type): Likewise
5349 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
5350 Nlist and split out type selection in new local Find_Base_Type function.
5351 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
5352 Nlist
5353 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
5354
53552011-08-02 Robert Dewar <dewar@adacore.com>
5356
5357 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
5358 alpha order).
5359 * opt.ads: Minor comment change.
5360 * sem_ch12.adb: Minor code reorganization.
5361
b715bc59
AC
53622011-08-02 Gary Dismukes <dismukes@adacore.com>
5363
5364 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
5365 subtype's list of rep items to the list on the full subtype in the case
5366 where the lists are the same.
5367
53682011-08-02 Geert Bosch <bosch@adacore.com>
5369
5370 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
5371 using the one from System.Strings, which also deallocates all strings.
5372
002bdd68
AC
53732011-08-02 Geert Bosch <bosch@adacore.com>
5374
5375 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
5376 function.
5377 * gcc-interface/Make-lang.in: Update dependencies.
5378
53792011-08-02 Olivier Hainque <hainque@adacore.com>
5380
5381 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
5382 end_locus.
5383
499769ec
AC
53842011-08-02 Javier Miranda <miranda@adacore.com>
5385
5386 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
5387 associated with anonymous access to subprograms.
5388
53892011-08-02 Geert Bosch <bosch@adacore.com>
5390
5391 * opt.ads
5392 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
5393 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
5394 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
5395 (Add_Symbol_Definition): Move to switch-c.adb
5396 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
5397 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
5398 (Add_Symbol_Definition): Move to switch-c.adb.
5399 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
5400 * sem_warn.adb
5401 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
5402 Move to warnsw.adb.
5403 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
5404 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
5405 Move to warnsw.adb.
5406 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
5407 (Add_Symbol_Definition): Moved from Prepcomp.
5408 * switch-c.ads: Update copyright notice. Use String_List instead of
5409 Argument_List, removing dependency on System.OS_Lib.
5410
aa1e353a
AC
54112011-08-02 Yannick Moy <moy@adacore.com>
5412
5413 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
5414 mode on initialization expression which does not respect SPARK
5415 restrictions.
5416 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
5417 if the tree referenced by its argument represents an initialization
5418 expression in SPARK, suitable for initializing an object in an object
5419 declaration.
5420
54212011-08-02 Javier Miranda <miranda@adacore.com>
5422
5423 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
5424 internally generated access to subprogram with its associated protected
5425 subprogram type.
5426 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
5427
15b682ca
GB
54282011-08-02 Geert Bosch <bosch@adacore.com>
5429
5430 * cstand.adb (Register_Float_Type): Print information about type to
5431 register, if the Debug_Flag_Dot_B is set.
5432 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
5433 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
5434 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
5435 with a requested precision of more than Max_Digits digits and no more
5436 than Max_Base_Digits digits, if a range specification is present and the
5437 Predefined_Float_Types list has a suitable type to derive from.
5438 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
5439 case of type completion with pragma Import
5440 * sem_prag.adb
5441 (Process_Import_Predefined_Type): Processing to complete a type
5442 with pragma Import. Currently supports floating point types only.
5443 (Set_Convention_From_Pragma): Do nothing without underlying type.
5444 (Process_Convention): Guard against absence of underlying type,
5445 which may happen when importing incomplete types.
5446 (Process_Import_Or_Interface): Handle case of importing predefined
5447 types. Tweak error message.
5448
f8726f2b
AC
54492011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5450
5451 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
5452 functions to previous change. Reorganize code slightly.
5453
54542011-08-02 Geert Bosch <bosch@adacore.com>
5455
5456 * back_end.ads (Register_Type_Proc): New call back procedure type for
5457 allowing the back end to provide information about available types.
5458 (Register_Back_End_Types): New procedure to register back end types.
5459 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
5460 available types.
5461 * cstand.adb (Back_End_Float_Types): New list for floating point types
5462 supported by the back end.
5463 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
5464 (Copy_Float_Type): New procedure to make new copies of predefined types.
5465 (Register_Float_Type): New call back procedure to populate the BEFT list
5466 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
5467 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
5468 (Create_Float_Types): New procedure to create entities for floating
5469 point types predefined in Standard, and put these and any remaining
5470 BEFTs on the Predefined_Float_Types list.
5471 * stand.ads (Predefined_Float_Types): New list for predefined floating
5472 point types that do not have declarations in package Standard.
5473
feecad68
AC
54742011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5475
5476 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
5477 entity node for the unit containing the parameter.
5478 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
5479 (Add_Inlined_Subprogram): Likewise.
5480 * gcc-interface/Make-lang.in: Update dependencies.
5481
54822011-08-02 Thomas Quinot <quinot@adacore.com>
5483
5484 * s-stusta.adb (Print): Make sure Pos is always initialized to a
5485 suitable value.
5486
12f0c50c
AC
54872011-08-02 Geert Bosch <bosch@adacore.com>
5488
5489 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
5490
54912011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5492
5493 * sem_type.adb (Covers): Move trivial case to the top and reuse the
5494 computed value of Base_Type.
5495
54962011-08-02 Yannick Moy <moy@adacore.com>
5497
5498 * restrict.adb (Check_Restriction): issue an error for any use of
5499 class-wide, even if the No_Dispatch restriction is not set.
5500 * sem_aggr.adb: Correct typos in comments and messages in formal mode
5501 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
5502 when completing a private extension, the type named in the private part
5503 is not the same as that named in the visible part.
5504 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
5505 of an inherited primitive operations of a tagged type or type extension
5506 that returns the tagged type.
5507 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
5508 function which returns True for an implicit operation inherited by the
5509 derived type declaration for the argument type.
5510 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
5511 order.
5512
fb86fe11
ES
55132011-08-02 Ed Schonberg <schonberg@adacore.com>
5514
5515 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
5516 Process_Bounds, to perform analysis with expansion of a range or an
5517 expression that is the iteration scheme for a loop.
5518 (Analyze_Iterator_Specification): If domain of iteration is given by a
5519 function call with a controlled result, as is the case if call returns
5520 a predefined container, ensure that finalization actions are properly
5521 generated.
5522 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
5523
62be5d0a
JM
55242011-08-02 Javier Miranda <miranda@adacore.com>
5525
5526 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
5527 * gcc-interface/Make-lang.in: Update dependencies.
5528
55292011-08-02 Javier Miranda <miranda@adacore.com>
5530
5531 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
5532 determine if the analysis is performed using N or Original_Node (N).
5533 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
5534 functionality of routine Is_Variable avoids code duplication.
5535 * checks.adb (Determine_Range): Handle temporaries generated by
5536 Remove_Side_Effects.
5537
55382011-08-02 Javier Miranda <miranda@adacore.com>
5539
5540 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
5541 expansion of the condition. Required since the previous analysis was
5542 done with expansion disabled (see Resolve_Quantified_Expression) and
5543 hence checks were not inserted and record comparisons have not been
5544 expanded.
5545
a20f4389
AC
55462011-08-02 Ed Falis <falis@adacore.com>
5547
5548 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
5549 Update header.
5550
55512011-08-02 Bob Duff <duff@adacore.com>
5552
5553 * opt.ads: Minor comment fix.
5554
55552011-08-02 Bob Duff <duff@adacore.com>
5556
5557 * sem_ch12.adb (Analyze_Package_Instantiation,
5558 Analyze_Subprogram_Instantiation): Turn off style checking while
5559 analyzing an instance. Whatever style checks that apply to the generic
5560 unit should apply, so it makes no sense to apply them in an instance.
5561 This was causing trouble when compiling an instance of a runtime
5562 unit that violates the -gnatyO switch.
5563 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
5564 one of the two case statements, causing spurious errors.
5565
55662011-08-02 Robert Dewar <dewar@adacore.com>
5567
5568 * uname.adb: Minor reformatting.
5569 * gnatcmd.adb: Minor reformatting.
5570 * exp_attr.adb: Minor reformatting.
5571
90878b12
AC
55722011-08-02 Ed Schonberg <schonberg@adacore.com>
5573
5574 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
5575 No_Dispatching_Calls, do not look for the Assign primitive, because
5576 predefined primitives are not created in this case.
5577
55782011-08-02 Bob Duff <duff@adacore.com>
5579
5580 * stylesw.ads: Minor comment fixes.
5581
55822011-08-02 Robert Dewar <dewar@adacore.com>
5583
5584 * freeze.adb (Add_To_Result): New procedure.
5585
55862011-08-02 Jose Ruiz <ruiz@adacore.com>
5587
5588 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
5589 time, if the specific run-time routines for handling streams of strings
5590 are not available, use the default mechanism.
5591
55922011-08-02 Arnaud Charlet <charlet@adacore.com>
5593
5594 * s-regpat.ads: Fix typo.
5595
55962011-08-02 Vincent Celier <celier@adacore.com>
5597
5598 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
5599 not null, call it to create the in memory config project file without
5600 parsing an existing default config project file.
5601
56022011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5603
5604 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
5605
56062011-08-02 Ed Schonberg <schonberg@adacore.com>
5607
5608 * sem_elim.adb: an abstract subprogram does not need an eliminate
5609 pragma for its descendant to be eliminable.
5610
56112011-08-02 Ed Falis <falis@adacore.com>
5612
5613 * init.c: revert to handling before previous checkin for VxWorks
5614 * s-intman-vxworks.adb: delete unnecessary declarations related to
5615 using Ada interrupt facilities for handling signals.
5616 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
5617 * s-intman-vxworks.ads: Import __gnat_install_handler as
5618 Initialize_Interrupts.
5619 * s-taprop-vxworks.adb: Delete Signal_Mask.
5620 (Abort_Handler): change construction of mask to unblock exception
5621 signals.
5622
273adcdf
AC
56232011-08-02 Jerome Guitton <guitton@adacore.com>
5624
5625 * a-except-2005.adb (Raise_From_Signal_Handler): Call
5626 Debug_Raise_Exception before propagation starts.
5627
56282011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5629
5630 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
5631 to Restriction_Check_Required.
5632 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
5633 * sem_res.adb (Resolve_Call): Likewise.
5634 * sem_attr.adb (Check_Stream_Attribute): Likewise.
5635
56362011-08-02 Bob Duff <duff@adacore.com>
5637
5638 * stylesw.ads: Update comment.
5639 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
5640 * errout.ads: Remove obsolete comment.
5641
56422011-08-02 Javier Miranda <miranda@adacore.com>
5643
5644 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
5645 (Set_Is_Safe_To_Reevaluate): new procedure.
5646 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
5647 assignment is allowed on safe-to-reevaluate variables.
5648 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
5649 temporary created to remove side effects in expressions that use
5650 the secondary stack as safe-to-reevaluate.
5651 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
5652 variables that are not true constants.
5653
6320f5e1
AC
56542011-08-02 Robert Dewar <dewar@adacore.com>
5655
5656 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
5657 sem_res.adb, sem_ch6.adb: Minor reformatting.
5658
56592011-08-02 Jerome Guitton <guitton@adacore.com>
5660
5661 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
5662
2fe829ae
ES
56632011-08-02 Ed Schonberg <schonberg@adacore.com>
5664
5665 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
5666 not set Overridden_Operation if subprogram is an initialization
5667 procedure.
5668
e24329cd
YM
56692011-08-02 Yannick Moy <moy@adacore.com>
5670
5671 * par-ch6.adb: Correct obsolete name in comments
5672 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
5673 which takes two message arguments (existing function takes one), with
5674 second message used for continuation.
5675 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
5676 block statements that originate from a source block statement, not
5677 generated block statements
5678 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
5679 symmetry with procedure case
5680 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
5681 function to issue an error in formal mode if a package specification
5682 contains more than one tagged type or type extension.
5683 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
5684 parameters matching formals of tagged types are objects (or ancestor
5685 type conversions of objects), not general expressions. Issue an error
5686 on view conversions that are not involving ancestor conversion of an
5687 extended type.
5688 (Resolve_Type_Conversion): in formal mode, issue an error on the
5689 operand of an ancestor type conversion which is not an object
5690 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
5691 procedure so that it works also for actuals of function calls
5692 (Is_Actual_Tagged_Parameter): new function which determines if its
5693 argument is an actual parameter of a formal of tagged type in a
5694 subprogram call
5695 (Is_SPARK_Object_Reference): new function which determines if the tree
5696 referenced by its argument represents an object in SPARK
5697
176dadf6
AC
56982011-08-02 Robert Dewar <dewar@adacore.com>
5699
5700 * sem_ch3.adb: Minor reformatting
5701 Minor comment addition
5702 Minor error msg text change
5703
57042011-08-02 Javier Miranda <miranda@adacore.com>
5705
5706 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
5707 function. Used to be more precise when we generate a variable plus one
5708 assignment to remove side effects in the evaluation of the Bound
5709 expressions.
5710 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
5711 of the bound expression to force its re-analysis and thus expand the
5712 associated transient scope (if required). Code cleanup replacing the
5713 previous code that declared the constant entity by an invocation to
5714 routine Force_Evaluation which centralizes this work in the frontend.
5715
d8b962d8
AC
57162011-08-02 Robert Dewar <dewar@adacore.com>
5717
5718 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
5719 (Base_Type): Now uses improved Is_Base_Type function
5720 * einfo.ads (Base_Type): Inline this function
5721
57222011-08-02 Robert Dewar <dewar@adacore.com>
5723
5724 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
5725 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
5726
57272011-08-02 Arnaud Charlet <charlet@adacore.com>
5728
5729 * gcc-interface/Make-lang.in: Update dependencies.
5730 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
5731 targets.
5732
57332011-08-02 Yannick Moy <moy@adacore.com>
5734
5735 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
5736 non-simple expression used in delta constraint
5737 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
5738 index constraint which is not a subtype mark
5739 * par.adb: With and use Restrict
5740 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
5741 mode on component type which is not a subtype mark and default
5742 expression on component
5743 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
5744 of string which does not have a lower index bound equal to 1
5745 (Array_Type_Declaration): issue an error in formal mode on index or
5746 component type which is not a subtype mark, and on aliased keyword on
5747 component
5748 (Derived_Type_Declaration): issue an error in formal mode on interface,
5749 limited or abstract type
5750 (Record_Type_Declaration): issue an error in formal mode on interface
5751 (Record_Type_Definition): issue an error in formal mode on tagged types
5752 and type extensions not declared in the specification of a library unit
5753 package; on null non-tagged record; on variant part
5754
57552011-08-02 Vincent Celier <celier@adacore.com>
5756
5757 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
5758 not declared for qualified library project when Library_Name is not
5759 declared, but Library_Dir is.
5760
57612011-08-02 Robert Dewar <dewar@adacore.com>
5762
5763 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
5764 pragmas (affects aspects [Component_]Default_Value
5765 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
5766 component type for the resolution
5767
f96b2d85
AC
57682011-08-02 Eric Botcazou <ebotcazou@adacore.com>
5769
5770 * einfo.adb (Base_Type): Tune implementation for speed.
5771
57722011-08-02 Robert Dewar <dewar@adacore.com>
5773
5774 * freeze.adb: Minor reformatting.
5775
8b3c6430
AC
57762011-08-02 Thomas Quinot <quinot@adacore.com>
5777
5778 * scos.ads: Update comments.
5779
57802011-08-02 Ed Schonberg <schonberg@adacore.com>
5781
5782 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
5783 base type, because the parent may be a subtype of a private type whose
5784 convention is established in a private part.
5785
57862011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
5787
5788 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
5789 statement in a block when the expansion of the return expression has
5790 created a finalization chain.
5791 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
5792 with the parent node.
5793 Add N_Extended_Return_Statement to handle the case where a transient
5794 object declaration appears in the Return_Object_Declarations list of
5795 an extended return statement.
5796
57972011-08-02 Matthew Gingell <gingell@adacore.com>
5798
5799 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
5800 unused parameter 'name'.
5801
58022011-08-02 Ed Schonberg <schonberg@adacore.com>
5803
5804 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
5805 inherited operation, check whether its alias, which is the source
5806 operastion that it renames, has been marked eliminated.
5807
cae81f17
JM
58082011-08-02 Javier Miranda <miranda@adacore.com>
5809
5810 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
5811 in-mode parameter whose type is an access type since it can be used to
5812 modify its designated object. Enforce code that handles as safe an
5813 access type that is not access-to-constant but it is the result of a
5814 previous removal of side-effects.
5815 (Remove_Side_Effects): Minor code reorganization of cases which require
5816 no action. Done to incorporate documentation on new cases uncovered
5817 working in this ticket: no action needed if this routine was invoked
5818 too early and the nodes are not yet decorated.
5819 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
5820 to routine Remove_Side_Effects by calls to Force_Evaluation since they
5821 were issued with actuals that are implicitly provided by
5822 Force_Evaluation.
5823
218e6dee
RD
58242011-08-02 Robert Dewar <dewar@adacore.com>
5825
5826 * sem_ch3.adb, sem_res.adb: Minor reformatting.
5827
7a489a2b
AC
58282011-08-02 Yannick Moy <moy@adacore.com>
5829
5830 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
5831 to issue an error in formal mode on attribute not supported in this mode
5832 (Analyze_Attribute): issue errors on standard attributes not supported
5833 in formal mode.
5834 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
5835 comment, and issue error in formal mode on modulus which is not a power
5836 of 2.
5837 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
5838 range.
5839 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
5840 subtype mark.
5841 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
5842 operator on modular type (except 'not').
5843
58442011-08-02 Robert Dewar <dewar@adacore.com>
5845
5846 * gnat_rm.texi: Minor reformatting.
5847
cb7fa356
AC
58482011-08-02 Arnaud Charlet <charlet@adacore.com>
5849
5850 * s-osinte-linux.ads: Minor comment update and reformatting.
5851 * i-cexten.ads: Make this unit pure, as for its parent.
5852 Will allow its usage in more contexts if needed.
5853
58542011-08-02 Robert Dewar <dewar@adacore.com>
5855
5856 * s-utf_32.ads: Minor comment fix.
5857
58582011-08-02 Ed Schonberg <schonberg@adacore.com>
5859
5860 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
5861 operation of a tagged synchronized type, handle the case where the
5862 controlling argument is overloaded.
5863
58642011-08-02 Yannick Moy <moy@adacore.com>
5865
5866 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
5867 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
5868 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
5869 SPARK mode and formal verification mode on processing SPARK restriction
5870 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
5871 requiring consistency checking.
5872
5cc9353d
RD
58732011-08-02 Robert Dewar <dewar@adacore.com>
5874
5875 * sem_res.adb: Minor reformatting.
5876
e51537ff
RD
58772011-08-02 Robert Dewar <dewar@adacore.com>
5878
5879 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5880 a-cforse.ads: Remove unneeded with of Ada.Containers
5881 Remove commented out pragma Inline's
5882 Move specifications of new subprograms to the actual specs
5883
83fa09c5
AC
58842011-08-02 Yannick Moy <moy@adacore.com>
5885
5886 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5887 a-cforse.ads: Update comments.
5888
58892011-08-02 Ed Schonberg <schonberg@adacore.com>
5890
5891 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
5892
d11cfaf8
RD
58932011-08-02 Robert Dewar <dewar@adacore.com>
5894
5895 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
5896 a-cforse.ads, a-cofove.ads: Minor reformatting.
5897
300b98bb
AC
58982011-08-02 Claire Dross <dross@adacore.com>
5899
5900 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
5901 a-cofove.ads: Add comments.
5902
59032011-08-02 Yannick Moy <moy@adacore.com>
5904
5905 * gnat_rm.texi: Document formal containers.
5906
59072011-08-02 Emmanuel Briot <briot@adacore.com>
5908
5909 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
5910 are empty sections.
5911
19fb051c
AC
59122011-08-02 Robert Dewar <dewar@adacore.com>
5913
5914 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
5915 reformatting.
5916
59172011-08-02 Robert Dewar <dewar@adacore.com>
5918
5919 * aspects.adb: New aspects Default_Value and Default_Component_Value
5920 New format of Aspect_Names table checks for omitted entries
5921 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
5922 handling of boolean aspects for derived types.
5923 New aspects Default_Value and Default_Component_Value
5924 New format of Aspect_Names table checks for omitted entries
5925 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
5926 (Has_Default_Value): New flag
5927 (Has_Default_Component_Value): New flag
5928 (Has_Default_Value): New flag
5929 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
5930 table.
5931 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
5932 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
5933 Default_Value and Default_Component_Value
5934 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
5935 New aspects Default_Value and Default_Component_Value
5936 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
5937 * sprint.adb: Print N_Aspect_Specification node when called from gdb
5938
59392011-08-02 Vincent Celier <celier@adacore.com>
5940
5941 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
5942 inherit library kind.
5943
59442011-08-02 Ed Schonberg <schonberg@adacore.com>
5945
5946 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
5947 Minor reformatting.
5948
59492011-08-02 Robert Dewar <dewar@adacore.com>
5950
5951 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
5952
5f7747af
AC
59532011-08-02 Yannick Moy <moy@adacore.com>
5954
5955 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
5956
59572011-08-02 Robert Dewar <dewar@adacore.com>
5958
5959 * impunit.adb: Add comment.
5960
a5fe697b
AC
59612011-08-02 Yannick Moy <moy@adacore.com>
5962
5963 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
5964 qualification of aggregates in formal mode
5965 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
5966 another aggregate
5967 (Resolve_Aggregate): complete the test that an aggregate is adequately
5968 qualified in formal mode
5969
59702011-08-02 Pascal Obry <obry@adacore.com>
5971
5972 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
5973 * mlib-prj.adb: Supress warning when compiling binder generated file.
5974 (Build_Library): Supress all warnings when compiling the binder
5975 generated file.
5976
bd65a2d7 59772011-08-02 Yannick Moy <moy@adacore.com>
d4487611 5978
bd65a2d7
AC
5979 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
5980 from here...
5981 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
5982 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
5983 Add with/use clauses to make Check_Formal_Restriction visible
5984
59852011-08-02 Ed Schonberg <schonberg@adacore.com>
5986
5987 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
5988 in-parameters when type of the generic formal is private in the generic
5989 spec and non-private in the body.
5990
59912011-08-02 Claire Dross <dross@adacore.com>
5992
5993 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
5994 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
5995 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
5996 * impunit.adb, Makefile.rtl: Take new files into account.
d4487611
AC
5997
59982011-08-02 Robert Dewar <dewar@adacore.com>
5999
6000 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
6001 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
6002
bd434b3f
YM
60032011-08-02 Yannick Moy <moy@adacore.com>
6004
6005 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
6006 formal mode
6007 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
6008 matching static array bounds, taking into account the special case of
6009 string literals
6010 * sem_ch3.adb: Typo in comment.
6011
fe5d3068
YM
60122011-08-02 Yannick Moy <moy@adacore.com>
6013
6014 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
6015 which issues an error in formal mode if its argument node is originally
6016 from source
6017 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
6018 has a discriminant specification so that it does not include the case
6019 of derived types
6020 (Derived_Type_Declaration): move here the test that a derived type has a
6021 discriminant specification
6022 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
6023 first element of a component association before accessing its choices
6024 (presence of component association is not enough)
6025 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
6026 declaration is a library item before accessing the next element in a
6027 list, as library items are not member of lists
6028 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
6029 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
6030 Check_Formal_Restriction whenever possible.
6031
b60a3f26
AC
60322011-08-02 Ed Schonberg <schonberg@adacore.com>
6033
6034 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
6035 reference when needed.
6036
60372011-08-02 Bob Duff <duff@adacore.com>
6038
6039 * gnat_ugn.texi: Fix typo.
6040
60412011-08-02 Vincent Celier <celier@adacore.com>
6042
6043 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
6044 archive file name. Do not use the full path name of archives for Open
6045 VMS.
6046
eaba57fb
RD
60472011-08-02 Robert Dewar <dewar@adacore.com>
6048
6049 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
6050 Analyze_Aspect_Specifications
6051 * sem_ch13.adb
6052 (Analyze_Aspect_Specifications): New handling for boolean aspects
6053 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
6054 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
6055 sequence for Analyze_Aspect_Specifications
6056 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
6057 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
6058
60592011-08-02 Robert Dewar <dewar@adacore.com>
6060
6061 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
6062 aspects, since these no longer exist.
6063
60642011-08-02 Robert Dewar <dewar@adacore.com>
6065
6066 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
6067 semicolon, do not try to see if there are aspects following it.
6068 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
6069 aspect spec.
6070
8830d1d2
AC
60712011-08-02 Robert Dewar <dewar@adacore.com>
6072
6073 * sem_ch8.adb, aspects.ads: Minor reformatting.
6074
60752011-08-02 Eric Botcazou <ebotcazou@adacore.com>
6076
6077 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
6078 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
6079 extracted from...
6080 (Analyze_Aspect_Specifications): ...here. Call above procedure.
6081
7ff2d234
AC
60822011-08-02 Yannick Moy <moy@adacore.com>
6083
6084 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
6085 mode on subprogram declaration outside of package specification, unless
6086 it is followed by a pragma Import
6087 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
6088 Access_Type_Declaration): issue error in formal mode on access type
6089 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
6090 incomplete type
6091 (Analyze_Object_Declaration): issue error in formal mode on object
6092 declaration which does not respect SPARK restrictions
6093 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
6094 declaration which does not respect SPARK restrictions
6095 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
6096 error in formal mode on digits or delta constraint
6097 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
6098 decimal fixed point type
6099 (Derived_Type_Declaration): issue error in formal mode on derived type
6100 other than type extensions of tagged record types
6101 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
6102 with check on access definition
6103 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
6104 mode on protected definition.
6105 (Analyze_Task_Definition): issue error in formal mode on task definition
6106
61072011-08-02 Robert Dewar <dewar@adacore.com>
6108
6109 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
6110
806f6d37
AC
61112011-08-02 Javier Miranda <miranda@adacore.com>
6112
6113 * sem_ch6.adb (Can_Override_Operator): New function.
6114 (Verify_Overriding_Indicator): Add missing code to check overriding
6115 indicator in operators. Fixes regression.
6116 (Check_Overriding_Indicator): Minor reformating after replacing the
6117 code that evaluates if the subprogram can override an operator by
6118 invocations to the above new function.
6119 * einfo.adb
6120 (Write_Field26_Name): Add missing code to ensure that, following
6121 the documentation in einfo.ads, this field is not shown as attribute
6122 "Static_Initialization" on non-dispatching functions.
6123
61242011-08-02 Jose Ruiz <ruiz@adacore.com>
6125
6126 * sem_res.adb (Resolve_Call): A call to
6127 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
6128 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
6129 i.e., when the second parameter is of type Time_Span.
6130
61312011-08-02 Vincent Celier <celier@adacore.com>
6132
6133 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
6134 with an archive instead of -L<library dir> -l<library name>.
6135
61362011-08-02 Ed Schonberg <schonberg@adacore.com>
6137
6138 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
6139 mark the base types In_Use in addition to making the operations
6140 use_visible.
6141
61422011-08-02 Ed Falis <falis@adacore.com>
6143
6144 * init.c: add and setup __gnat_signal_mask for the exception signals
6145 * s-inmaop-vxworks.adb: new file.
6146 * s-intman-vxworks.adb: remove unnecessary initializations and
6147 simplify remaining
6148 * s-intman-vxworks.ads: remove unnecessary variable
6149 * s-taprop-vxworks.adb: simplify signal initialization
6150
780d052e
RD
61512011-08-02 Robert Dewar <dewar@adacore.com>
6152
6153 * sem_ch8.adb: Minor code reorganization, comment updates.
6154
61552011-08-02 Robert Dewar <dewar@adacore.com>
6156
6157 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
6158 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
6159 here from Sem_Res.
6160 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
6161 (Matching_Static_Array_Bounds): Moved here from Sem_Res
6162
29efbb8c
ES
61632011-08-02 Ed Schonberg <schonberg@adacore.com>
6164
6165 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
6166 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
6167 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
6168 use_type_clauses, to handle more efficiently use_type and use_all_type
6169 constructs.
6170 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
6171 Ada2012 Use_All_Type clause.
6172 (Use_Class_Wide_Operations): new procedure.
6173
b0186f71
AC
61742011-08-02 Robert Dewar <dewar@adacore.com>
6175
6176 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
6177 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
6178 expression to expression function.
6179
61802011-08-02 Ed Schonberg <schonberg@adacore.com>
6181
6182 * sem_ch4.adb: transform simple Ada2012 membership into equality only
6183 if types are compatible.
6184
61852011-08-02 Yannick Moy <moy@adacore.com>
6186
6187 * sem_res.adb (Matching_Static_Array_Bounds): new function which
6188 returns True if its argument array types have same dimension and same
6189 static bounds at each index.
6190 (Resolve_Actuals): issue an error in formal mode on actuals passed as
6191 OUT or IN OUT paramaters which are not view conversions in SPARK.
6192 (Resolve_Arithmetic_Op): issue an error in formal mode on
6193 multiplication or division with operands of fixed point types which are
6194 not qualified or explicitly converted.
6195 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
6196 Boolean or array type (except String) operands.
6197 (Resolve_Equality_Op): issue an error in formal mode on equality
6198 operators for array types other than String with non-matching static
6199 bounds.
6200 (Resolve_Logical_Op): issue an error in formal mode on logical operators
6201 for array types with non-matching static bounds. Factorize the code in
6202 Matching_Static_Array_Bounds.
6203 (Resolve_Qualified_Expression): issue an error in formal mode on
6204 qualified expressions for array types with non-matching static bounds.
6205 (Resolve_Type_Conversion): issue an error in formal mode on type
6206 conversion for array types with non-matching static bounds
6207
767bb4e8
AC
62082011-08-02 Robert Dewar <dewar@adacore.com>
6209
6210 * par-ch10.adb: Minor code reorganization (use Nkind_In).
6211
62122011-08-02 Ed Schonberg <schonberg@adacore.com>
6213
6214 * par-ch9.adb: save location of entry for proper error message.
6215
4ac2477e
JM
62162011-08-02 Javier Miranda <miranda@adacore.com>
6217
6218 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
6219 (Use_Full_View) which permits this routine to climb through the
6220 ancestors using the full-view of private parents.
6221 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
6222 Use_Full_View to true in calls to Is_Ancestor.
6223 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
6224 true in call to Is_Ancestor.
6225 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
6226 Use_Full_View to true in call to Is_Ancestor.
6227 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
6228 call to Is_Ancestor.
6229 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
6230 Use_Full_View to true in calls to Is_Ancestor.
6231 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
6232 Make_Select_Specific_Data_Table, Register_Primitive,
6233 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
6234 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
6235 to true in call to Is_Ancestor.
6236 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
6237 Use_Full_View to true in calls to Is_Ancestor.
6238 * exp_cg.adb
6239 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
6240 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
6241
9f90d123
AC
62422011-08-02 Robert Dewar <dewar@adacore.com>
6243
6244 * gnat_rm.texi: Minor reformatting.
6245 * sem_prag.adb: Minor reformatting.
6246
62472011-08-02 Tristan Gingold <gingold@adacore.com>
6248
6249 * vms_data.ads: Add VMS qualifier for -gnateP.
6250
62512011-08-02 Robert Dewar <dewar@adacore.com>
6252
6253 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
6254 * par-ch7.adb (P_Package): Proper placement of aspects for package
6255 decl/instantiation.
6256 * par-endh.adb (Check_End): Ad Is_Sloc parameter
6257 (End_Statements): Add Is_Sloc parameterr
6258 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
6259 (Check_End): Ad Is_Sloc parameter
6260 (End_Statements): Add Is_Sloc parameterr
6261
62622011-08-02 Vincent Celier <celier@adacore.com>
6263
6264 * ug_words: Add VMS qualifier equivalent to -gnateP:
6265 /SYMBOL_PREPROCESSING.
6266
62672011-08-02 Jose Ruiz <ruiz@adacore.com>
6268
6269 * gnat-style.texi: For hexadecimal numeric literals the typical
6270 grouping of digits is 4 to represent 2 bytes.
6271 A procedure spec which is split into several lines is indented two
6272 characters.
6273
62742011-08-02 Yannick Moy <moy@adacore.com>
6275
6276 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
6277 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
6278 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
6279 properly qualified
6280 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
6281 choice in array aggregate
6282 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
6283 mark as ancestor
6284 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
6285 positional and named aggregate for record, or others in record
6286 aggregate, or multiple choice in record aggregate
6287 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
6288 array operands to logical operations AND, OR and XOR do not have the
6289 same static lower and higher bounds
6290 * sem_ch5.adb, sinfo.ads: Correct typos in comments
6291
2933b16c
RD
62922011-08-01 Robert Dewar <dewar@adacore.com>
6293
6294 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
6295 Replaces Last_Source_Node_In_Sequence.
6296 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
6297 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
6298 parens and blank in string (this was inconsistently implemented).
6299 * errout.ads
6300 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
6301 blank in string (this was inconsistently implemented).
6302 * gnat1drv.adb
6303 (Set_Global_Switches): Set formal mode switches appropriately
6304 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
6305 * par-prag.adb
6306 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
6307 call Set_Error_Msg_Lang to set "spark" as language name.
6308 * par.adb: Remove unnecessary call to set formal language for errout
6309 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
6310 appropriately and call Set_Error_Msg_Lang to set "spark" as language
6311 name.
6312 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
6313 calls to it, moved after resolution so that types are known
6314 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
6315 result of concatenation is not of type String
6316 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
6317 concatenation is not properly restricted
6318 * gnat_rm.texi: Add doc on pragma Spark_95.
6319 * gcc-interface/Makefile.in: Remove obsolete target pairs for
6320 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
6321 * gcc-interface/Make-lang.in: Update dependencies.
6322
05dbd302
AC
63232011-08-01 Javier Miranda <miranda@adacore.com>
6324
6325 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
6326 condition that detects if the overridden operation must replace an
6327 existing entity.
6328
63292011-08-01 Javier Miranda <miranda@adacore.com>
6330
6331 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
6332 code declarations inserted by Insert_Actions in each alternative of the
6333 N_Case_Expression node.
6334
63352011-08-01 Robert Dewar <dewar@adacore.com>
6336
6337 * sem_ch6.adb: Minor code reorganization.
6338 * sem_util.adb: Minor reformatting.
6339
af9e051f
PO
63402011-08-01 Pascal Obry <obry@adacore.com>
6341
6342 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
6343 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
6344
1d801f21
AC
63452011-08-01 Yannick Moy <moy@adacore.com>
6346
6347 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
6348 literal or operator symbol which is prefixed
6349 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
6350 mode on access attributes.
6351 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
6352 that concatenation operands are properly restricted in formal mode
6353 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
6354 Analyze_Concatenation_Operand. Issue an error in formal mode if the
6355 result of the concatenation has a type different from String.
6356 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
6357 Analyze_Quantified_Expression, Analyze_Slice,
6358 Analyze_Null): issue an error in formal mode on unsupported constructs
6359 * sem_ch5.adb
6360 (Analyze_Block_Statement): only issue error on source block statement
6361 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
6362 function which returns the last node in a list of nodes for which
6363 Comes_From_Source returns True, if any
6364 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
6365 Last_Source_Node_In_Sequence
6366 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
6367 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
6368 mode on unsupported constructs
6369 * sem_ch9.adb Do not return after issuing error in formal mode, as the
6370 rest of the actions may be needed later on since the error is marked as
6371 not serious.
6372 * sinfo.ads: Typos in comments.
6373
63742011-08-01 Pascal Obry <obry@adacore.com>
6375
6376 * projects.texi: Minor editing.
6377
53beff22
YM
63782011-08-01 Yannick Moy <moy@adacore.com>
6379
6380 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
6381 insertion character ~~
6382 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
6383 (Set_Error_Msg_Lang): new procedure which fixes the language for use
6384 with insertion character ~~
6385 (Set_Msg_Text): treat insertion character ~~
6386 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
6387 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
6388 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
6389 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
6390 errors related to the formal language restriction not serious
6391 (insertion character |).
6392 * par.adb (Par): set formal language for error messages if needed
6393 * sem_ch6.adb (Check_Missing_Return): take into account possible
6394 generated statements at the end of the function
6395 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
6396 enumeration value to define a new pragma SPARK_95
6397 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
6398 SPARK_Version): new type and variables to store the SPARK version
6399 (none by default).
6400 (SPARK_Mode): return True when SPARK_Version is set
6401 * par-prag.adb: Correct indentation
6402 (Prag): take Pragma_SPARK_95 into account
6403 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
6404 into account.
6405
8d606a78
RD
64062011-08-01 Robert Dewar <dewar@adacore.com>
6407
6408 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
6409 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
6410 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
6411
1982d5a8
PO
64122011-08-01 Pascal Obry <obry@adacore.com>
6413
6414 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
6415 Target_Name to Get_Path call.
6416 (Parse_Single_Project): Likewise.
6417 (Post_Parse_Context_Clause): Likewise.
6418 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
6419 Call Initialise_Project_Path with the proper Target_Name.
6420 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
6421 search path.
6422 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
6423 with the proper Target_Name.
6424 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
6425 Part.Parse routine.
6426 (Parse_Project_And_Apply_Config): Likewise.
6427 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
6428 This is fine as this part of the code is supporting only native
6429 compilation.
6430 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
6431 is fine as this part of the code is supporting only native compilation.
6432
0d53d36b
AC
64332011-08-01 Yannick Moy <moy@adacore.com>
6434
6435 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
6436 of homonym, unless the homonym is one of the cases allowed in SPARK
6437 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
6438 package declaration occurring after a body.
6439
64402011-08-01 Robert Dewar <dewar@adacore.com>
6441
6442 * checks.adb, exp_ch4.adb: Minor reformatting.
6443
64442011-08-01 Javier Miranda <miranda@adacore.com>
6445
6446 * einfo.ads (Access_Disp_Table): Fix documentation.
6447 (Dispatch_Table_Wrappers): Fix documentation.
6448
64492011-08-01 Pascal Obry <obry@adacore.com>
6450
6451 * prj-env.adb, prj-env.ads: Minor reformatting.
6452
8ed68165
AC
64532011-08-01 Yannick Moy <moy@adacore.com>
6454
6455 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
6456 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
6457 procedures out of these packages.
6458 * errout.ads, errout.adb
6459 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
6460 procedures in of this package
6461 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
6462 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
6463 on misplaced later vs initial declarations, like in Ada 83
6464 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
6465 formal mode on attribute of private type whose full type declaration
6466 is not visible
6467 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
6468 package declaration inside a package specification
6469 (Analyze_Full_Type_Declaration): issue error in formal mode on
6470 controlled type or discriminant type
6471 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
6472 user-defined operator means that it should come from the source
6473 (New_Overloaded_Entity): issue error in formal mode on overloaded
6474 entity.
6475 * sem_ch6.ads, sem_ch13.ads: typos in comments.
6476
64772011-08-01 Thomas Quinot <quinot@adacore.com>
6478
6479 * atree.adb: Minor reformatting.
6480 * checks.adb: Minor reformatting.
6481
4230bdb7
AC
64822011-08-01 Vincent Celier <celier@adacore.com>
6483
6484 * s-parame-vms-ia64.ads: Fix typo in comment
6485 Minor reformatting
6486 * s-parame-vms-restrict.ads: Removed, unused.
6487
64882011-08-01 Javier Miranda <miranda@adacore.com>
6489
6490 * exp_ch3.adb
6491 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
6492 * sem_ch3.adb
6493 (Constrain_Index): Remove side effects in the evaluation of the bounds.
6494 * sem_ch3.ads, sem_ch3.adb
6495 (Is_Constant_Bound): New extended version of the subprogram that was
6496 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
6497 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
6498 * sem_aux.ads (Constant_Value): Fix typo in comment.
6499 * checks.adb (Generate_Index_Checks): New implementation which, for
6500 array objects with constant bounds, generates the runtime check
6501 referencing the bounds of the array type. For other cases this routine
6502 provides its previous behavior obtaining such values from the array
6503 object.
6504 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
6505 parent type.
6506 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
6507 we cannot have semantic interpretations of the new node.
6508
2010d078
AC
65092011-08-01 Ed Schonberg <schonberg@adacore.com>
6510
6511 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
6512 expressions.
6513
65142011-08-01 Arnaud Charlet <charlet@adacore.com>
6515
6516 * sem_ch8.adb: Minor code editing.
6517 * s-vxwext.adb: Remove trailing space.
6518 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
6519 consistency with other files.
6520
65212011-08-01 Thomas Quinot <quinot@adacore.com>
6522
6523 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
6524
65252011-08-01 Ed Schonberg <schonberg@adacore.com>
6526
6527 * par-ch10.adb: reject parameterized expressions as compilation unit.
6528 * sem_ch4.adb: handle properly conditional expression with overloaded
6529 then_clause and no else_clause.
6530
65312011-08-01 Tristan Gingold <gingold@adacore.com>
6532
6533 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
6534 like done by System.Aux_DEC.
6535 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
6536
daec8eeb
YM
65372011-08-01 Yannick Moy <moy@adacore.com>
6538
6539 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
6540 missing label at end of declaration (subprogram or package)
6541 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
6542 of positional and named parameter association
6543 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
6544 Error_Msg_SP which adds a prefix to the error message giving the name
6545 of the formal language analyzed
6546 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
6547 access result type in subprogram, unconstrained array as result type,.
6548 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
6549 procedure
6550 * sem_ch8.adb: Code clean up.
6551
38171f43
AC
65522011-08-01 Javier Miranda <miranda@adacore.com>
6553
6554 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
6555 * einfo.ads (Access_Disp_Table): Fix documentation.
6556 (Dispatch_Table_Wrappers): Fix documentation.
6557 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
6558 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
6559 to enforce the documentation of this attribute.
6560 (Set_Is_Interface): Cleanup the assertion.
6561 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
6562 the Underlying_Type entity before reading attribute Access_Disp_Table.
6563 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
6564 Locate the Underlying_Type before reading attribute Access_Disp_Table.
6565 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
6566 the Underlying_Type entity before reading attribute Access_Disp_Table.
6567 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
6568 Locate the Underlying_Type entity before reading attribute
6569 Access_Disp_Table.
6570
65712011-08-01 Ed Schonberg <schonberg@adacore.com>
6572
6573 * s-poosiz.ads: Additional overriding indicators.
6574
65752011-08-01 Yannick Moy <moy@adacore.com>
6576
6577 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
6578 formal mode.
6579 (Analyze_Iteration_Scheme): issue error in formal mode when loop
6580 parameter specification does not include a subtype mark.
6581 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
6582 formal mode on abstract subprogram.
6583 (Analyze_Subprogram_Specification): issue error in formal mode on
6584 user-defined operator.
6585 (Process_Formals): issue error in formal mode on access parameter and
6586 default expression.
6587 * sem_ch9.adb (Analyze_Abort_Statement,
6588 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
6589 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
6590 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
6591 Analyze_Requeue, Analyze_Selective_Accept,
6592 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
6593 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
6594 issue error in formal mode on user-defined raise statement.
6595
1f250383
AC
65962011-08-01 Thomas Quinot <quinot@adacore.com>
6597
6598 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
6599 declaration being hidden when overriding an implicit inherited
6600 subprogram.
6601 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
6602 (-gnats), do not complain about a source file that contains only a
6603 pragma No_Body.
6604
66052011-08-01 Ed Schonberg <schonberg@adacore.com>
6606
6607 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
6608 variable if already set.
6609
607d0635
AC
66102011-08-01 Arnaud Charlet <charlet@adacore.com>
6611
6612 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
6613 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
6614 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
6615 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
6616 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
6617 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
6618 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
6619 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
6620 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
6621 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
6622 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
6623 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
6624 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
6625 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
6626 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
6627 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
6628 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
6629 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
6630 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
6631 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
6632 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
6633 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
6634 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
6635 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
6636 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
6637 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
6638 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
6639 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
6640 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
6641 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
6642 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
6643 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
6644 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
6645 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
6646 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
6647 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
6648 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
6649 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
6650 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
6651 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
6652 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
6653 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
6654 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
6655 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
6656 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
6657 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
6658 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
6659 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
6660 s-osinte-mingw.ads: Update to GPLv3 run-time license.
6661 Use GNAT instead of GNARL.
6662
66632011-08-01 Bob Duff <duff@adacore.com>
6664
6665 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
6666 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
6667 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
6668 reformatting.
6669
66702011-08-01 Yannick Moy <moy@adacore.com>
6671
6672 * debug.adb (d.D) reverve flag for the SPARK mode
6673 (d.E) reverve flag for SPARK generation mode
6674 (d.F) reverve flag for Why generation mode
6675 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
6676 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
6677 functions which return True when the corresponding modes are set
6678 (Formal_Language): return "spark" or "alfa" when in formal verification
6679 mode.
6680 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
6681 Error_Msg to prefix the error message with a tag giving the formal
6682 language
6683 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
6684 message with a tag giving the formal language
6685 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
6686 block statement
6687 (Analyze_Case_Statement): issue error in formal mode on case statement
6688 with a single "others" case alternative
6689 (Analyze_Exit_Statement): issue errors in formal mode on exit
6690 statements which do not respect SPARK restrictions
6691 (Analyze_Goto_Statement): issue error in formal mode on goto statement
6692 (Check_Unreachable_Code): always issue an error (not a warning) in
6693 formal mode on unreachable code (concerns both code after an infinite
6694 loop and after an unconditional jump, both not allowed in SPARK)
6695 * sem_ch6.adb (Analyze_Return_Statement): add call to
6696 Set_Return_Present for a procedure containing a return statement
6697 (already done for functions in Analyze_Function_Return)
6698 (Analyze_Function_Return): issue error in formal mode on extended
6699 return or if return is not last statement in function
6700 (Check_Missing_Return): issue error in formal mode if function does
6701 not end with return or if procedure contains a return
6702 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
6703 function to detect if there is an inner scope of its parameter S which
6704 is a loop.
6705
67062011-08-01 Thomas Quinot <quinot@adacore.com>
6707
6708 * sem_ch6.ads: Minor reformatting.
6709
d8b3ccb9
AC
67102011-08-01 Javier Miranda <miranda@adacore.com>
6711
6712 * sem_util.adb (Abstract_Interface_List): Complete condition when
6713 processing private type declarations to avoid reading unavailable
6714 attribute.
6715 (Is_Synchronized_Tagged_Type): Complete condition when processing
6716 private extension declaration nodes to avoid reading unavailable
6717 attribute.
6718
67192011-08-01 Thomas Quinot <quinot@adacore.com>
6720
6721 * sem_ch3.adb: Minor reformatting.
6722
67232011-08-01 Thomas Quinot <quinot@adacore.com>
6724
6725 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
6726 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
6727 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
6728 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
6729 for VMS, instead parametrize the common implementation with
6730 System.Parameters declarations.
6731
0bb9276c
AC
67322011-08-01 Eric Botcazou <ebotcazou@adacore.com>
6733
6734 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
6735
67362011-08-01 Tristan Gingold <gingold@adacore.com>
6737
6738 * seh_init.c: Fix SEH handler installation on win64.
6739
67402011-08-01 Ed Schonberg <schonberg@adacore.com>
6741
6742 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
6743 double analysis of an anonymous access to subprogram, because it can
6744 lead to improper sharing of profiles and a back-end crash.
6745
6a2e4f0b
AC
67462011-08-01 Robert Dewar <dewar@adacore.com>
6747
6748 * make.adb, sem_ch4.adb: Minor reformatting.
6749 * gcc-interface/Make-lang.in: Update dependencies.
6750 * sem_util.adb, exp_ch5.adb: Minor reformatting.
6751
67522011-08-01 Arnaud Charlet <charlet@adacore.com>
6753
6754 * gnat_rm.texi: Fix definition of Long_Integer.
6755
67562011-08-01 Ed Schonberg <schonberg@adacore.com>
6757
6758 * exp_aggr.adb: check limit size of static aggregate unconditionally,
6759 to prevent storage exhaustion.
6760 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
6761 finalized is a function body, insert the cleanup code before the final
6762 return statement, to prevent spurious warnings.
6763 * s-pooglo.ads: add overriding indicator.
6764
4561baf7
ES
67652011-08-01 Ed Schonberg <schonberg@adacore.com>
6766
6767 * sem_ch4.adb (Operator_Check): improve error message when both a
6768 with_clause and a use_clause are needed to make operator usage legal.
6769 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
6770 determine whether a compilation unit is visible within an other,
6771 either through a with_clause in the current unit, or a with_clause in
6772 its library unit or one one of its parents.
6773
383e179e
AC
67742011-08-01 Ed Schonberg <schonberg@adacore.com>
6775
6776 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
6777 over an arbitrary expression of an array or container type.
6778 * lib-xref.adb: clarify comment.
6779
67802011-08-01 Bob Duff <duff@adacore.com>
6781
6782 * einfo.ads: Minor reformatting.
6783 * debug.adb: Minor comment improvement.
6784
67852011-08-01 Javier Miranda <miranda@adacore.com>
6786
6787 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
6788 consider hidden subprograms as valid candidates.
6789
67902011-08-01 Arnaud Charlet <charlet@adacore.com>
6791
6792 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
6793
67942011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
6795
6796 * gnat_ugn.texi: Fix typo.
6797
61c161b2
AC
67982011-08-01 Robert Dewar <dewar@adacore.com>
6799
6800 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
6801 lib-xref.adb: Minor reformatting
6802
68032011-08-01 Gary Dismukes <dismukes@adacore.com>
6804
6805 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
6806 when to generate a call to Move_Final_List.
6807 (Has_Controlled_Parts): Remove this function.
6808
84df40f7
AC
68092011-08-01 Geert Bosch <bosch@adacore.com>
6810
6811 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
6812 "," in choice list.
6813
68142011-08-01 Thomas Quinot <quinot@adacore.com>
6815
6816 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
6817 explicit raise of a predefined exception as Comes_From_Source if the
6818 original N_Raise_Statement comes from source.
6819
68202011-08-01 Robert Dewar <dewar@adacore.com>
6821
6822 * sinfo.ads: Add comment.
6823 * sem_ch6.adb: Minor reformatting.
6824
68252011-08-01 Robert Dewar <dewar@adacore.com>
6826
6827 * freeze.adb (Freeze_Entity): Refine check for bad component size
6828 clause to avoid rejecting confirming clause when atomic/aliased present.
6829
68302011-08-01 Ed Schonberg <schonberg@adacore.com>
6831
6832 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
6833 better determine whether an entity reference is a write.
6834 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
6835 subcomponent.
6836 * lib-xref.adb (Output_References): Do no suppress a read reference at
6837 the same location as an immediately preceeding modify-reference, to
6838 handle properly in-out actuals.
6839
68402011-08-01 Tristan Gingold <gingold@adacore.com>
6841
6842 * env.c (__gnat_setenv) [VMS]: Refine previous change.
6843
68442011-08-01 Quentin Ochem <ochem@adacore.com>
6845
6846 * i-cstrin.adb (New_String): Changed implementation, now uses only the
6847 heap to compute the result.
6848
c7f0d2c0
AC
68492011-08-01 Robert Dewar <dewar@adacore.com>
6850
6851 * atree.ads: Minor reformatting.
6852
68532011-08-01 Emmanuel Briot <briot@adacore.com>
6854
6855 * g-expect.adb (Get_Command_Output): Fix memory leak.
6856
68572011-08-01 Geert Bosch <bosch@adacore.com>
6858
6859 * cstand.adb (P_Float_Type): New procedure to print the definition of
6860 predefined fpt types.
6861 (P_Mixed_Name): New procedure to print a name using mixed case
6862 (Print_Standard): Use P_Float_Type for printing floating point types
6863 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
6864 precision IEEE float.
6865
68662011-08-01 Thomas Quinot <quinot@adacore.com>
6867
6868 * sem_ch3.adb: Minor reformatting.
6869
68702011-08-01 Ed Schonberg <schonberg@adacore.com>
6871
6872 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
6873 the completion of a generic function, insert the new body rather than
6874 rewriting the original.
6875
68762011-08-01 Yannick Moy <moy@adacore.com>
6877
6878 * sinfo.ads, errout.ads: Typos in comments.
6879
1c54829e
AC
68802011-08-01 Robert Dewar <dewar@adacore.com>
6881
6882 * par-endh.adb: Minor reformatting.
6883
68842011-08-01 Robert Dewar <dewar@adacore.com>
6885
6886 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
6887 (Pre_Post_Aspects): New subtype.
6888 * par-ch12.adb (P_Generic): New syntax for aspects in packages
6889 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
6890 * par-ch7.adb (P_Package): Remove Decl parameter
6891 (P_Package): Handle new syntax for aspects (before IS)
6892 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
6893 new aspect syntax
6894 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
6895 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
6896 (P_Package): Remove Decl parameter
6897 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
6898 aspects
6899 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
6900 specs
6901 * sem_util.ads, sem_util.adb (Static_Boolean): New function
6902 * sinfo.ads: Document new syntax for aspects in packages etc.
6903 * sprint.adb: Handle new syntax of aspects before IS in package
6904
69052011-08-01 Thomas Quinot <quinot@adacore.com>
6906
6907 * atree.ads: Minor reformatting.
6908 * sem_prag.adb: Minor reformatting.
6909
69102011-08-01 Robert Dewar <dewar@adacore.com>
6911
6912 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
6913 case expr alternative.
6914
69152011-08-01 Ed Schonberg <schonberg@adacore.com>
6916
6917 * sem_ch12.adb: Fix typo.
6918
9eea4346
GB
69192011-08-01 Geert Bosch <bosch@adacore.com>
6920
6921 * sem_prag.adb (Check_No_Link_Name): New procedure.
6922 (Process_Import_Or_Interface): Use Check_No_Link_Name.
6923 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
6924 instead of Standard_Long_Long_Float_Size global. Preparation for
6925 eventual removal of per type constants.
6926 * exp_util.ads (Get_Stream_Size): New function returning the stream
6927 size value of subtype E.
6928 * exp_util.adb (Get_Stream_Size): Implement new function.
6929 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
6930 function.
6931 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
6932 * einfo.adb:
6933 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
6934
3d6c3bd7
GB
69352011-08-01 Geert Bosch <bosch@adacore.com>
6936
6937 * cstand.adb: Fix comments.
6938 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
6939 count of arguments.
6940
e7d897b8
AC
69412011-08-01 Robert Dewar <dewar@adacore.com>
6942
6943 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
6944
69452011-08-01 Geert Bosch <bosch@adacore.com>
6946
6947 * atree.ads: Fix comment.
6948
c228a069
AC
69492011-08-01 Robert Dewar <dewar@adacore.com>
6950
6951 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
6952 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
6953 * par.adb: Add with for Namet.Sp.
6954 * par-tchk.adb: Minor reformatting.
6955
69562011-08-01 Vincent Celier <celier@adacore.com>
6957
6958 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
6959 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
6960 of the init procedure of a SAL.
6961 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
6962 New procedure.
6963
69642011-08-01 Thomas Quinot <quinot@adacore.com>
6965
6966 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
6967 reformatting.
6968
69692011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6970
6971 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
6972
69732011-08-01 Thomas Quinot <quinot@adacore.com>
6974
6975 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
6976 conformant with its spec (return True only for types that have
6977 an overriding Initialize primitive operation that prevents them from
6978 having preelaborable initialization).
6979 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
6980 initialization for controlled types in Ada 2005 or later mode.
6981
857ade1b
RD
69822011-08-01 Robert Dewar <dewar@adacore.com>
6983
6984 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
6985 Postcondition.
6986 (Same_Aspect): New function.
6987 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
6988 Type_Invariant, Precondition, Postcondition.
6989 * snames.ads-tmpl: Add Name_Type_Invariant.
6990
bd949ee2
RD
69912011-08-01 Robert Dewar <dewar@adacore.com>
6992
6993 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
6994 here.
6995 (Freeze_All_Ent): Fix error in handling inherited aspects.
6996 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
6997 already analyzed, but don't skip entire processing of a declaration,
6998 that's wrong in some cases of declarations being rewritten.
6999 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
7000 Don't delay for integer, string literals
7001 Treat predicates in usual manner for delay, remove special case code,
7002 not needed.
7003 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
7004 (Build_Predicate_Function): Update saved expression in aspect
7005 (Build_Invariant_Procedure): Update saved expression in aspect
7006 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
7007 of replacement of discriminant references if the reference is simple.
7008
f1c952af
RD
70092011-08-01 Robert Dewar <dewar@adacore.com>
7010
7011 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
7012 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
7013 Static_Predicate and Dynamic_Predicate.
7014 (Build_Predicate_Function): Add processing for Static_Predicate
7015 and Dynamic_Predicate.
7016 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
7017 (From_Static_Predicate): New flag
7018 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
7019
70202011-08-01 Robert Dewar <dewar@adacore.com>
7021
7022 * usage.adb: Documentation cleanup for Ada version modes in usage.
7023 * expander.adb: Minor reformatting.
7024
47e11d08
AC
70252011-08-01 Robert Dewar <dewar@adacore.com>
7026
7027 * atree.ads: Minor comment fix.
7028 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
7029 a-witeio.ads, sem_prag.adb: Minor reformatting.
7030
70312011-08-01 Doug Rupp <rupp@adacore.com>
7032
7033 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
7034 pointers. Use descrip.h header file for convenience. Add some
7035 comments.
7036
70372011-08-01 Robert Dewar <dewar@adacore.com>
7038
7039 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
7040 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
7041 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
7042 New procedure.
7043 (Check_Aspect_At_End_Of_Declarations): New procedure
7044 (Analye_Aspect_Specification): Minor changes for above procedures
7045 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
7046 specification node as well.
7047
70482011-08-01 Pascal Obry <obry@adacore.com>
7049
7050 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
7051 Windows files. Use GetFilesAttributes() in this case to check for file
7052 existence instead of returning with an error code.
7053
a3a16b21
VC
70542011-08-01 Vincent Celier <celier@adacore.com>
7055
7056 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
7057 High is above Source length.
7058
ff58cc69
RD
70592011-08-01 Robert Dewar <dewar@adacore.com>
7060
7061 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
7062
6bb88533
AC
70632011-08-01 Robert Dewar <dewar@adacore.com>
7064
7065 * aspects.ads (Boolean_Aspects): New subtype.
7066 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
7067 for derived types in cases where the parent type and derived type have
7068 aspects.
7069 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
7070 with aspects when parent type also has aspects.
7071 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
7072 boolean expression at this point).
7073 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
7074 accordance with final decision on the Ada 2012 feature.
7075 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
7076
70772011-08-01 Matthew Heaney <heaney@adacore.com>
7078
7079 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
7080
060a3f28
AC
70812011-08-01 Pascal Obry <obry@adacore.com>
7082
7083 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
7084 Fix Replace_Slice when High is above current string size.
7085 (Replace_Slice): Fix DL computation when High is above current
7086 string length.
7087
70882011-08-01 Gary Dismukes <dismukes@adacore.com>
7089
7090 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
7091
e7f567a3
AC
70922011-08-01 Matthew Heaney <heaney@adacore.com>
7093
7094 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
7095 of node.
7096
70972011-08-01 Pascal Obry <obry@adacore.com>
7098
7099 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
7100 reformatting.
7101
1a265e78
AC
71022011-08-01 Ed Schonberg <schonberg@adacore.com>
7103
7104 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
7105 access to protected subprograms in generic bodies.
7106 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
7107 protected type, indicate that the convention of the subprogram is
7108 Convention_Protected, because it may be used in subsequent declarations
7109 within the protected declaration.
7110
71112011-08-01 Vincent Celier <celier@adacore.com>
7112
7113 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
7114 and "final" procedures when the name of the library is "ada", to avoid
7115 duplicate symbols "adainit" and "adafinal" in executables.
7116
67e28ef8
ES
71172011-08-01 Ed Schonberg <schonberg@adacore.com>
7118
7119 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
7120 quantified expression that appears within a postcondition and uses the
7121 Ada2012 'Result attribute.
7122
6da2ca7d
RO
71232011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7124
7125 * init.c (__gnat_error_handler): Cast reason to int.
7126 (__gnat_install_handler): Explain sa_sigaction use.
7127
7d5997c6
EB
71282011-07-24 Eric Botcazou <ebotcazou@adacore.com>
7129
7130 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
7131 subprogram has copy-in copy-out parameters, try to promote the mode of
7132 the return type if it is passed in registers.
7133
4b4cfdd5
EB
71342011-07-24 Eric Botcazou <ebotcazou@adacore.com>
7135
7136 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
7137 left operand as addressable.
7138
f3d34576
EB
71392011-07-24 Eric Botcazou <ebotcazou@adacore.com>
7140
7141 * gcc-interface/gigi.h (build_function_stub): Remove.
7142 (build_return_expr): Likewise.
7143 (convert_vms_descriptor): Declare.
7144 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
7145 (build_function_stub): Move to...
7146 * gcc-interface/utils2.c (build_return_expr): Move to...
7147 * gcc-interface/trans.c (build_function_stub): ...here.
7148 (build_return_expr): ...here.
7149 (Subprogram_Body_to_gnu): Add local variable for language_function.
7150 Disconnect the parameter attributes cache, if any, once done with it.
7151 Call end_subprog_body only after setting the end_locus.
7152 Build the stub associated with the function, if any, at the very end.
7153 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
7154 variables and streamline control flow.
7155
0a6ecc08
AC
71562011-07-23 Arnaud Charlet <charlet@adacore.com>
7157
7158 PR ada/49819
7159 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
7160 g-trasym-dwarf.adb.
7161
5b6d595b
RO
71622011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7163
7164 PR bootstrap/49794
7165 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
7166 Assign to act.sa_sigaction.
7167 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
7168 current->return_address to char * before arithmetic.
7169
94017021
RO
71702011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7171
7172 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
7173 Correct argument types.
7174 Extract code from reason.
7175 (__gnat_install_handler): Assign to act.sa_sigaction.
7176
52fd02bb
EB
71772011-07-21 Eric Botcazou <ebotcazou@adacore.com>
7178
7179 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
7180 (GNAT1_OBJS): ...here.
7181
f39a9ca2
EB
71822011-07-15 Eric Botcazou <ebotcazou@adacore.com>
7183
7184 PR ada/48711
7185 * g-socthi-mingw.adb (Fill): Fix formatting.
7186
9e36aa23
EB
7187 * gcc-interface/gigi.h: Move around comment.
7188
e3aca522
JDA
71892011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7190
7191 PR ada/46350
7192 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
7193
696b1960
FW
71942011-07-14 Florian Weimer <fw@deneb.enyo.de>
7195
7196 PR ada/48711
7197 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
7198
f542c405
EB
71992011-07-13 Eric Botcazou <ebotcazou@adacore.com>
7200
7201 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
7202 range comparison if Pmode is SImode.
7203
9e9bd455
LG
72042011-07-12 Laurent GUERBY <laurent@guerby.net>
7205 Eric Botcazou <ebotcazou@adacore.com>
7206
7207 * adadecode.c: Wrap up in extern "C" block.
7208 * adadecode.h: Likewise.
7209 * adaint.c: Likewise. Remove 'const' keyword.
7210 * adaint.h: Likewise.
7211 * argv.c: Likewise.
7212 * atree.h: Likewise.
7213 * cio.c: Likewise.
7214 * cstreams.c: Likewise.
7215 * env.c: Likewise.
7216 * exit.c: Likewise.
7217 * fe.h: Likewise.
7218 * final.c: Likewise.
7219 * init.c: Likewise.
7220 * initialize.c: Likewise.
7221 * link.c: Likewise.
7222 * namet.h: Likewise.
7223 * nlists.h: Likewise.
7224 * raise.c: Likewise.
7225 * raise.h: Likewise.
7226 * repinfo.h: Likewise.
7227 * seh_init.c: Likewise.
7228 * targext.c: Likewise.
7229 * tracebak.c: Likewise.
7230 * uintp.h: Likewise.
7231 * urealp.h: Likewise.
7232 * xeinfo.adb: Wrap up generated C code in extern "C" block.
7233 * xsinfo.adb: Likewise.
7234 * xsnamest.adb: Likewise.
7235 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
7236 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
7237 * gcc-interface/misc.c: Likewise.
7238 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
7239 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
7240 ada/targext.o here...
7241 (GNAT_ADA_OBJS): ...and not here.
7242 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
7243 (GNATBIND_OBJS): Reorder.
7244
7644b3c7
RH
72452011-07-07 Richard Henderson <rth@redhat.com>
7246
7247 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
7248 dwarf2out_frame_init.
7249
8384ac41
EB
72502011-07-07 Eric Botcazou <ebotcazou@adacore.com>
7251
7252 * gcc-interface/misc.c (gnat_init): Tweak previous change.
7253
fbdd5d87
RO
72542011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7255
7256 PR target/39150
7257 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
7258
1a072294
RG
72592011-07-06 Richard Guenther <rguenther@suse.de>
7260
8384ac41
EB
7261 * gcc-interface/misc.c (gnat_init): Merge calls to
7262 build_common_tree_nodes and build_common_tree_nodes_2.
1a072294
RG
7263 Re-initialize boolean_false_node.
7264
bc712852
EB
72652011-07-02 Eric Botcazou <ebotcazou@adacore.com>
7266 Olivier Hainque <hainque@adacore.com>
7267 Nicolas Setton <setton@adacore.com>
7268
7269 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
7270 the type according to the ARTIFICIAL_P parameter.
7271 (create_type_decl): Likewise.
7272 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
7273
2eb22389
EB
72742011-07-01 Eric Botcazou <ebotcazou@adacore.com>
7275
7276 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
7277 (gnatbind): Likewise.
7278
4bdaaf2f
RO
72792011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7280
7281 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
7282
c020c92b
EB
72832011-06-18 Eric Botcazou <ebotcazou@adacore.com>
7284
7285 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
7286 local variable throughout. Remove useless call to Base_Type.
7287 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
7288 Take it also into account for the volatileness of the field. Set the
7289 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
7290
96769d32
EB
72912011-06-18 Eric Botcazou <ebotcazou@adacore.com>
7292
7293 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
7294 on a dereference built for a by-ref object if it has an address clause.
7295
7e4680c1
EB
72962011-06-18 Eric Botcazou <ebotcazou@adacore.com>
7297
7298 * einfo.ads (Address_Taken): Document use for the second argument of
7299 Asm_Input and Asm_Output attributes.
7300 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
7301 argument is an entity name, then set Address_Taken on it.
7302 <Attribute_Asm_Output>: Likewise.
7303 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
7304 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
7305 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
7306 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
7307
73082011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
7309
7310 PR middle-end/46500
7311 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
7312
677f3fa8
JM
73132011-06-14 Joseph Myers <joseph@codesourcery.com>
7314
7315 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
7316 (ada/utils.o): Update dependencies.
7317 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
7318 ../../../libcpp/libcpp.a.
7319 * gcc-interface/utils.c: Include common/common-target.h.
7320 (process_attributes): Use targetm_common.have_named_sections.
7321
009db074
RG
73222011-06-07 Richard Guenther <rguenther@suse.de>
7323
0bad0e23
EB
7324 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
7325 set_sizetype.
009db074 7326
3bfc61cf
EB
73272011-06-06 Eric Botcazou <ebotcazou@adacore.com>
7328
0bad0e23 7329 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
3bfc61cf
EB
7330 TREE_THIS_NOTRAP flag.
7331
5c4a1c7b
EB
73322011-06-06 Eric Botcazou <ebotcazou@adacore.com>
7333
7334 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
7335 Fix thinko.
7336
e9f57686
EB
73372011-06-06 Eric Botcazou <ebotcazou@adacore.com>
7338
7339 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
7340 constants whose full view has discriminants specially.
7341
10e4d056
EB
73422011-06-06 Eric Botcazou <ebotcazou@adacore.com>
7343
7344 * gcc-interface/utils.c: Include diagnostic.h.
7345 (gnat_write_global_declarations): Output debug information for all
7346 global type declarations before finalizing the compilation unit.
7347 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
7348
0957c029
JJ
73492011-05-25 Jakub Jelinek <jakub@redhat.com>
7350
7351 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
7352
52d0a7ac
KT
73532011-05-25 Kai Tietz <ktietz@redhat.com>
7354
7355 * adaint.c (__gnat_to_canonical_file_list_next): Use array
7356 initialization instead of const/none-const pointer assignment.
7357
1ed1641d
JM
73582011-05-24 Joseph Myers <joseph@codesourcery.com>
7359
7360 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
7361 $(EXTRA_GNAT1_OBJS).
7362 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
7363 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
7364 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
7365 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
7366 libcommon-target.a instead of prefix.o.
7367
9fe72ebd
JM
73682011-05-21 Joseph Myers <joseph@codesourcery.com>
7369
7370 PR ada/49097
0bad0e23 7371 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
9fe72ebd 7372
2691e6d7
JM
73732011-05-20 Joseph Myers <joseph@codesourcery.com>
7374
0bad0e23
EB
7375 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
7376 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
7377 instead of version.o.
2691e6d7 7378
bf6490b5
KT
73792011-05-18 Kai Tietz <ktietz@redhat.com>
7380
7381 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
7382 boolean_false_node instead of integer_zero_node.
7383 (convert_with_check): Likewise.
7384 * gcc-interface/decl.c (choices_to_gnu): Likewise.
7385
7bf9a5ac
EB
73862011-05-12 Eric Botcazou <ebotcazou@adacore.com>
7387
7388 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
7389 type of the parameter is an unconstrained array, convert the actual to
7390 the type of the formal in the In Out and Out cases as well.
7391
e5b00edf
NF
73922011-05-11 Nathan Froyd <froydnj@codesourcery.com>
7393
7394 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
7395 call build_function_type_array or build_varargs_function_type_array
7396 instead.
7397 (create_subprog_type): Don't call build_function_type; call
7398 build_function_type_vec instead.
7399
51545682
NF
74002011-05-11 Nathan Froyd <froydnj@codesourcery.com>
7401
7402 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
7403 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
7404 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
7405
c99c0026
EB
74062011-05-07 Eric Botcazou <ebotcazou@adacore.com>
7407
f620bd21
EB
7408 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
7409
c99c0026
EB
7410 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
7411 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
7412
3d528853
NF
74132011-05-05 Nathan Froyd <froydnj@codesourcery.com>
7414
c99c0026 7415 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
3d528853 7416
d7d058c5
NF
74172011-05-05 Nathan Froyd <froydnj@codesourcery.com>
7418
7419 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
7420 instead of accessing TYPE_ARG_TYPES directly.
7421 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
7422
805e60a0
EB
74232011-05-05 Eric Botcazou <ebotcazou@adacore.com>
7424
7425 PR ada/48844
7426 * gcc-interface/gigi.h (get_variant_part): Declare.
7427 * gcc-interface/decl.c (get_variant_part): Make global.
7428 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
7429 types have the same constant size, are record types and T1 has a
7430 variant part while T2 doesn't.
7431
907a08d9
EB
74322011-05-05 Eric Botcazou <ebotcazou@adacore.com>
7433
7434 * gcc-interface/utils.c (begin_subprog_body): Do not call
7435 get_pending_sizes.
7436 (end_subprog_body): Likewise.
7437
d35936ab
RG
74382011-05-04 Richard Guenther <rguenther@suse.de>
7439
7440 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
7441 int_const_binop.
7442 (pos_to_constructor): Likewise.
7443
c1fd8753
NF
74442011-05-03 Nathan Froyd <froydnj@codesourcery.com>
7445 Eric Botcazou <ebotcazou@adacore.com>
7446
7447 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
7448 of build_function_type. Adjust calls to...
7449 (build_raise_check): ...this. Do not take a void_tree parameter.
7450 Call build_function_type_list instead of build_function_type.
7451 Fix head comment and swap couple of conditional blocks.
7452
4fb87d2b
EB
74532011-04-30 Eric Botcazou <ebotcazou@adacore.com>
7454
7455 * gnatvsn.ads (Library_Version): Bump to 4.7.
7456 (Current_Year): Bump to 2011.
7457
fa5e5a76
MM
74582011-04-29 Michael Matz <matz@suse.de>
7459
7460 * gcc-interface/misc.c (gnat_handle_option): Set
7461 warn_maybe_uninitialized.
7462
8d6a2f69
GP
74632011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
7464
7465 * gnat_ugn.texi (Complexity Metrics Control): Update link to
7466 the Watson/McCabe paper.
7467
770937fd
JM
74682011-04-23 Jim Meyering <meyering@redhat.com>
7469
7470 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
7471
eb601ae1
EB
74722011-04-22 Eric Botcazou <ebotcazou@adacore.com>
7473
7474 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
7475 onto the new type.
7476
7d7fcb08
EB
74772011-04-22 Eric Botcazou <ebotcazou@adacore.com>
7478
7479 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
7480 parameter.
7481 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
7482 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
7483 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
7484 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
7485 <all>: Do not set flags on the reused DECL node coming from an alias.
7486 Set DECL_IGNORED_P on the DECL node built for subprograms if they
7487 don't need debug info here...
7488 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
7489 (gigi): Adjust calls to create_subprog_decl.
7490 (build_raise_check): Likewise.
7491 (establish_gnat_vms_condition_handler): Likewise.
7492 (Compilation_Unit_to_gnu): Likewise.
7493 (gnat_to_gnu): Likewise.
7494
e1876cac
EB
74952011-04-21 Eric Botcazou <ebotcazou@adacore.com>
7496
7497 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
7498 (NO_REORDER_ADAFLAGS): New variable.
7499 (EXTRA_GNATTOOLS): Always define.
7500 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
7501 Clean up and adjust list of files compiled with special options.
7502 * gcc-interface/Make-lang.in: Likewise.
7503 (ada/decl.o): Cosmetical change.
7504 (ada/misc.o): Remove dependency on $(PLUGIN_H).
7505
04695783
JM
75062011-04-20 Jim Meyering <meyering@redhat.com>
7507
7508 * initialize.c (__gnat_initialize): Remove useless if-before-free.
7509
23399579
EB
75102011-04-17 Eric Botcazou <ebotcazou@adacore.com>
7511
7512 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
7513 $(CFLAGS) on the link line.
7514
51c5169c
EB
75152011-04-17 Eric Botcazou <ebotcazou@adacore.com>
7516
7517 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
7518 padded type built for the return type if it is unconstrained.
7519
61e46a7d
NF
75202011-04-14 Nathan Froyd <froydnj@codesourcery.com>
7521
7522 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
7523
81f653d6
NF
75242011-04-12 Nathan Froyd <froydnj@codesourcery.com>
7525
b4867846
EB
7526 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
7527 before calling TREE_CHAIN.
81f653d6
NF
7528 * gcc-interface/misc.c (gnat_init_ts): New function.
7529 (LANG_HOOKS_INIT_TS): Define.
7530
a358e188
MJ
75312011-04-12 Martin Jambor <mjambor@suse.cz>
7532
b4867846
EB
7533 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
7534 instead of cgraph_node.
a358e188 7535
29b1c5a4
EB
75362011-04-08 Eric Botcazou <ebotcazou@adacore.com>
7537
7538 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
7539 alignment on fields of the RETURN type built for the Copy-In Copy-Out
7540 mechanism.
7541
88872b00
EB
75422011-04-08 Eric Botcazou <ebotcazou@adacore.com>
7543
7544 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
7545 of aggregate types that contain a placeholder.
7546
dcf0c47e
NF
75472011-04-08 Nathan Froyd <froydnj@codesourcery.com>
7548
7549 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
b4867846 7550 TYPE_ARG_TYPES.
dcf0c47e
NF
7551 (handle_type_generic_attribute): Likewise.
7552
53e3000c
EB
75532011-04-04 Eric Botcazou <ebotcazou@adacore.com>
7554
7555 PR ada/47163
7556 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
7557
ab380bb4
KT
75582011-04-04 Kai Tietz <ktietz@redhat.com>
7559
7560 PR ada/47163
0bad0e23
EB
7561 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
7562 to flag value.
ab380bb4 7563
8ffac116
EB
75642011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7565
7566 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
7567 type case, do not strip a padding type around the array type.
7568
de9528f0
EB
75692011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7570
7571 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
7572 types.
7573
d9d7a26c
EB
75742011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7575
7576 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
7577 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
de9528f0 7578 code for -feliminate-unused-debug-types.
d9d7a26c
EB
7579 (gnat_post_options): Likewise.
7580
4cb12a90
EB
75812011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7582
7583 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
7584 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
7585 distinct copy.
7586
acccc61c
EB
75872011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7588
7589 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
7590 DECL_ARTIFICIAL flag on enumeration types.
7591
583eb0c9
EB
75922011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7593
7594 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
7595 fat pointer types artificial unconditionally.
7596 <E_Array_Subtype>: Attach the base array type as a parallel type if it
7597 isn't artificial.
7598
e3edbd56
EB
75992011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7600
7601 * gcc-interface/gigi.h (get_dummy_type): Declare.
7602 (build_dummy_unc_pointer_types): Likewise.
7603 (finish_fat_pointer_type): Likewise.
7604 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
7605 fat pointer type has been built, complete it in place.
7606 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
7607 and thin pointers. Remove useless variable.
7608 (finish_fat_pointer_type): Make global and move to...
7609 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
7610 (get_dummy_type): New function.
7611 (build_dummy_unc_pointer_types): Likewise.
7612 (gnat_pushdecl): Propage the name to the anonymous variants only.
7613 (update_pointer_to): Only adjust the pointer types in the unconstrained
7614 array case.
7615
65444786
EB
76162011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7617
7618 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
7619 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
7620 if this is a Taft amendment type and the full declaration is available.
7621 * gcc-interface/trans.c (process_type): Likewise.
7622 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
7623 (process_freeze_entity): Likewise.
7624 * gcc-interface/utils.c (dummy_global): New static variable.
7625 (gnat_write_global_declarations): If there are types declared as used
7626 at the global level, insert them in the global hash table.
7627
1aeb40dd
EB
76282011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7629
7630 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
7631 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
7632 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
7633 copy.
7634 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
7635 flag of the type accordingly.
7636 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
7637
80ec8b4c
EB
76382011-04-02 Eric Botcazou <ebotcazou@adacore.com>
7639
7640 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
7641 finalizing types when updating the pointers to the designated type.
7642 <all>: Finalize the deferred types even if we didn't defer processing
7643 of incomplete types in this invocation.
7644
2a9d769a
OH
76452011-04-01 Olivier Hainque <hainque@adacore.com>
7646 Nicolas Setton <setton@adacore.com>
7647 Eric Botcazou <ebotcazou@adacore.com>
7648
7649 * gcc-interface/misc.c (gnat_descriptive_type): New function.
7650 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
7651
2438d7a6
KT
76522011-03-28 Kai Tietz <ktietz@redhat.com>
7653
333d8aff 7654 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
80ec8b4c
EB
7655 Windows targets.
7656 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
7657 * system-mingw.ads (System): Change ZCX_By_Default default to True.
333d8aff 7658
80ec8b4c 7659 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
2438d7a6 7660
8ad150f6
TG
76612011-03-28 Tristan Gingold <gingold@adacore.com>
7662
7663 PR ada/44431
80ec8b4c
EB
7664 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
7665 Use ada output of gnatbind.
8ad150f6
TG
7666 (ada/b_gnatb.adb): Ditto.
7667 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
7668 (ada.mostlyclean, ada.stage1)
7669 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
7670 (ada.stagefeedback): Adjust.
80ec8b4c 7671 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
8ad150f6
TG
7672 Use ada output of gnatbind.
7673 (b_gnatm.adb): Ditto.
7674 (b_gnatl.o, b_gnatm.o): New rules.
7675
51c7954d
EB
76762011-03-26 Eric Botcazou <ebotcazou@adacore.com>
7677
7678 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
7679 for the padded type built to support a specified size or alignment.
7680
6ddf9843
EB
76812011-03-26 Eric Botcazou <ebotcazou@adacore.com>
7682
7683 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
7684 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
7685 unconditionally to the end of the unit when the designated type is
7686 limited_with'ed.
7687 <all>: Rename local variable. Attempt to un-defer types only and do it
7688 for limited_with'ed types as well.
7689 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
7690 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
7691 consistently and remove redundant call to finalize_from_with_types.
7692
5daed84a
EB
76932011-03-26 Eric Botcazou <ebotcazou@adacore.com>
7694
7695 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
7696 subprograms without a previous spec declared in the same unit.
7697 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
7698 subprograms at the end of the unit instead of at the beginning.
7699 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
7700 isn't public for the special handling of non-inline functions nested
7701 inside inline external functions.
7702
0edf1bb2
JL
77032011-03-25 Jeff Law <law@redhat.com>
7704
5daed84a 7705 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
0edf1bb2 7706
e3c4580e
EB
77072011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7708
7709 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
7710 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
7711 to compute Set_Size_Depends_On_Discriminant.
7712 (Layout_Type): Call it on array types in back-end layout mode.
7713 * sem_util.adb (Requires_Transient_Scope): Return true for array
7714 types only if the size depends on the value of discriminants.
7715 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
7716 type if the RHS is a call to a function that returns an unconstrained
7717 type with default discriminant.
7718
abbc8c7b
EB
77192011-03-24 Eric Botcazou <ebotcazou@adacore.com>
7720
7721 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
7722 non-conversion to the nominal result type at the end.
7723
ddb5a105
EB
77242011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7725
7726 * gcc-interface/trans.c (create_temporary): New function taken from...
7727 (create_init_temporary): ...here. Call it.
7728 (call_to_gnu): Create the temporary for the return value early, if any.
7729 Create it for a function with copy-in/copy-out parameters if there is
7730 no target; in other cases of copy-in/copy-out, use another temporary.
7731 Push the new binding level lazily. Add and rename local variables.
7732
0d853156
EB
77332011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7734
7735 * gcc-interface/decl.c (validate_size): Improve comments and tweak
7736 error message.
7737 (set_rm_size): Likewise.
7738
4184ef1b
EB
77392011-03-23 Eric Botcazou <ebotcazou@adacore.com>
7740
7741 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
7742 for the padded type built in order to support a specified alignment.
7743 Fix incorrect formatting.
7744
bf7eefab
EB
77452011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7746
7747 PR bootstrap/48216
7748 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
7749
ef0feeb2
EB
77502011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7751
7752 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
7753 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
7754 to the end of the list. Adjust recursive call. Rename local variable.
7755 If REORDER is true, reorder components of the record type.
7756 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
7757 components_to_record and adjust the parameter list.
7758
646f9414
EB
77592011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7760
7761 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
7762 disabled, use the variable for bounds of loop iteration scheme.
7763
62d784f7
KT
77642011-03-21 Kai Tietz <ktietz@redhat.com>
7765
7766 PR target/12171
0bad0e23 7767 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
62d784f7 7768
f230d759
EB
77692011-03-17 Eric Botcazou <ebotcazou@adacore.com>
7770
7771 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
7772 out whether the expression is read-only. Short-circuit placeholder
7773 case and rename a couple of local variables.
7774
bb1f7929
EB
77752011-03-17 Eric Botcazou <ebotcazou@adacore.com>
7776
7777 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
7778 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
7779 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
7780 (convert): Deal with conversions from a smaller form type specially.
7781
400a2d24
EB
77822011-02-14 Eric Botcazou <ebotcazou@adacore.com>
7783
7784 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
7785 its argument, except for the special -I- switch.
7786
c26bc3ad
GP
77872011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7788
0bad0e23
EB
7789 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
7790 "Ada Issues".
c26bc3ad 7791
07b8e910
EB
77922011-02-08 Eric Botcazou <ebotcazou@adacore.com>
7793
7794 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
7795
31a5a547
EB
77962011-02-03 Eric Botcazou <ebotcazou@adacore.com>
7797
7798 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
7799 GNAT_FORMAL.
7800 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
7801 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
7802 instead of GNAT_FORMAL. Protect the expression against multiple uses.
7803 Do not generate the check directly, instead instantiate the template
7804 check present in the descriptor.
7805 (make_descriptor_field): Move around.
7806 (build_vms_descriptor32): Build a template check in the POINTER field.
7807 (build_vms_descriptor): Remove useless suffixes.
7808 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
7809
dcf25f59
EB
78102011-01-26 Eric Botcazou <ebotcazou@adacore.com>
7811
7812 PR bootstrap/47467
7813 * targext.c: Include target files if IN_RTS is defined.
7814
0418e131
RG
78152011-01-26 Richard Guenther <rguenther@suse.de>
7816
7817 PR bootstrap/47467
7818 * targext.c: Include config.h.
7819 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
7820 dependency.
7821
c6eecbd8
PO
78222011-01-04 Pascal Obry <obry@adacore.com>
7823 Eric Botcazou <ebotcazou@adacore.com>
7824
7825 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
7826
2d3c7e4f
EB
78272011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7828
7829 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
7830 end-of-case on the end label and its associated gotos, if any.
7831
0394741f
EB
78322011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7833
7834 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
7835 expressions of the parameter cache within the statement group of
7836 the CICO mechanism.
7837
2a02d090
OH
78382011-01-04 Olivier Hainque <hainque@adacore.com>
7839 Eric Botcazou <ebotcazou@adacore.com>
7840
7841 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
7842 (set_end_locus_from_node): New function.
7843 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
7844 make and the function end_locus.
7845 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
7846 for the elaboration subprogram.
7847 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
7848 set the end_locus of the expression as well.
7849
89f5e978
EB
78502011-01-04 Eric Botcazou <ebotcazou@adacore.com>
7851
7852 PR ada/47131
7853 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
7854 variables that are referenced in exception handlers volatile.
7855
7856
ad41bd84 7857\f
797103eb 7858Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
7859
7860Copying and distribution of this file, with or without modification,
7861are permitted in any medium without royalty provided the copyright
7862notice and this notice are preserved.