]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[multiple changes]
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
dff99e1a
AC
12011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
2
3 * sem_ch12.adb (Check_Private_View): Exchange the private and full view
4 of a designated type when the related access type is an actual in an
5 instance. This ensures that the full view of designated type is
6 available when inside the body of the instance.
7
82011-08-30 Ed Schonberg <schonberg@adacore.com>
9
10 * sem_util.adb (May_Be_Lvalue): To determine whether a reference may be
11 in a position to be modified, a slice is treated like an indexed
12 component.
13
63be2a5a
AC
142011-08-30 Thomas Quinot <quinot@adacore.com>
15
16 * s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for
17 field tv_sec in struct timeval.
18
192011-08-30 Yannick Moy <moy@adacore.com>
20
21 * exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several
22 blocks of code doing full expansion, previously only guarded by
23 Expander_Active, by anding the test that ALFA_Mode is not set
24
252011-08-30 Ed Schonberg <schonberg@adacore.com>
26
27 * sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,
28 add the function to the list of private dependents, for subsequent
29 legality check on Taft amendment types.
30 * sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize
31 Private_Dependents, as for other incomplete types.
32 * sem_util.adb (Wrong_Type): Avoid cascaded errors when a
33 Taft-amendment type is used as the return type of a function.
34
dd54644b
JM
352011-08-30 Javier Miranda <miranda@adacore.com>
36
37 * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code
38 which emits an error by a call to a new routine which report the error.
39 * exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the
40 entity does not cover an existing interface.
41 * errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize
42 code.
43 * sem_ch6.adb (Check_Conformance): Add specific error for wrappers of
44 protected procedures or entries whose mode is not conformant.
45 (Check_Synchronized_Overriding): Code cleanup: replace code which emits
46 an error by a call to a new routine which report the error.
47
d3ba478e
AC
482011-08-30 Robert Dewar <dewar@adacore.com>
49
50 * gnat_rm.texi: Minor change.
51 * exp_attr_light.adb: Minor reformatting.
52
532011-08-30 Ed Schonberg <schonberg@adacore.com>
54
55 * sem_ch3.adb: Patch inheritance of aspects in
56 Complete_Private_Subtype, to avoid infinite loop.
57
c01817d2
AC
582011-08-30 Javier Miranda <miranda@adacore.com>
59
60 * sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
61 been reported and a subprogram covering an interface primitive is not
62 found then skip generating the internal entity. Done to avoid crashing
63 the frontend.
64 (Check_Abstract_Overriding): Change text of error of wrong formal of
65 protected subprogram or entry. Done for consistency to emit exactly the
66 same error reported by Check_Synchronized_Overriding. In addition, the
67 error is restricted to protected types (bug found working on AI05-0090)
68
692011-08-30 Yannick Moy <moy@adacore.com>
70
71 * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
72 expansion in Alfa mode.
73 * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
74 * exp_light.adb, exp_light.ads: New package defining light expansion.
75 * expander.adb (Expand): Call light expansion in Alfa mode
76 * exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
77 constructs.
78 * exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
79 constructs.
80 * exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
81 * gnat1drv.adb (Adjust_Global_Switches): Comment
82
832011-08-30 Yannick Moy <moy@adacore.com>
84
85 * lib-xref-alfa.adb: Minor refactoring.
86
872011-08-30 Yannick Moy <moy@adacore.com>
88
89 * exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
90 mode.
91 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
92 expansion in Alfa mode.
93 * sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
94 mode.
95
962011-08-30 Robert Dewar <dewar@adacore.com>
97
98 * debug_a.adb: Update comment.
99
996c8821
RD
1002011-08-30 Robert Dewar <dewar@adacore.com>
101
102 * exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,
103 sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,
104 exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb,
105 sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting
106
1072011-08-30 Robert Dewar <dewar@adacore.com>
108
109 * gnat_rm.texi: Add section on C.6(16) implementation advice for pragma
110 volatile.
111
3647ca26
HK
1122011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
113
114 * exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to
115 Build_Finalization_Master by supplying an insertion node and enclosing
116 scope. In its old version, the call did not generate a finalization
117 master.
118 (Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to
119 recognize anonymous access-to-controlled components. Rewrite the
120 machinery which creates finalization masters to service anonymous
121 access-to-controlled components of a record type. In its current state,
122 only one heterogeneous master is necessary to handle multiple anonymous
123 components.
124 (Freeze_Type): Comment reformatting.
125 * rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and
126 RE_Unit_Table.
127 * s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which
128 associates TSS primitive Finalize_Address with either the master itself
129 or with the internal hash table depending on the mode of operation of
130 the master.
131
6d4e4fbc
JM
1322011-08-30 Javier Miranda <miranda@adacore.com>
133
134 * exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an
135 interface type then do not generate code to compare this component.
136 Required since they have no components and their equality operator is
137 abstract.
138
d15f9422
AC
1392011-08-30 Steve Baird <baird@adacore.com>
140
141 * sem_util.ads (Deepest_Type_Access_Level): New function; for the type
142 of a saooaaat (i.e, a stand-alone object of an anonymous access type),
143 returns the (static) accessibility level of the object. Otherwise, the
144 same as Type_Access_Level.
145 (Dynamic_Accessibility_Level): New function; given an expression which
146 could occur as the rhs of an assignment to a saooaaat (i.e., an
147 expression of an access-to-object type), return the new value for the
148 saooaaat's associated Extra_Accessibility object.
149 (Effective_Extra_Accessibility): New function; same as
150 Einfo.Extra_Accessibility except that object renames are looked through.
151 * sem_util.adb
152 (Deepest_Type_Access_Level): New function; see sem_util.ads description.
153 (Dynamic_Accessibility_Level): New function; see sem_util.ads
154 description.
155 (Effective_Extra_Accessibility): New function; see sem_util.ads
156 description.
157 * einfo.ads (Is_Local_Anonymous_Access): Update comments.
158 (Extra_Accessibility): Update comments.
159 (Init_Object_Size_Align): New procedure; same as Init_Size_Align
160 except RM_Size field (which is only for types) is unaffected.
161 * einfo.adb
162 (Extra_Accessibility): Expand domain to allow objects, not just formals.
163 (Set_Extra_Accessibility): Expand domain to allow objects, not just
164 formals.
165 (Init_Size): Add assertion that we are not trashing the
166 Extra_Accessibility attribute of an object.
167 (Init_Size_Align): Add assertion that we are not trashing the
168 Extra_Accessibility attribute of an object.
169 (Init_Object_Size_Align): New procedure; see einfo.ads description.
170 * sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access
171 differently for the type of a (non-library-level) saooaaat depending
172 whether Ada_Version < Ada_2012. This is the only point where Ada_Version
173 is queried in this set of changes - everything else (in particular,
174 setting of the Extra_Accessibility attribute in exp_ch3.adb) is
175 driven off of the setting of the Is_Local_Anonymous_Access attribute.
176 The special treatment of library-level saooaaats is an optimization,
177 not required for correctnesss. This is based on the observation that the
178 Ada2012 rules (static and dynamic) for saooaaats turn out to be
179 equivalent to the Ada2005 rules in the case of a library-level saooaaat.
180 * exp_ch3.adb
181 (Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is
182 false for the type of a saooaaat, declare and initialize its
183 accessibility level object and set the Extra_Accessibility attribute
184 of the saooaaat to refer to this object.
185 * checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.
186 * exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with
187 calls to Effective_Extra_Accessibility in order to support
188 renames of saooaaats.
189 (Expand_N_Type_Conversion): Add new local function,
190 Has_Extra_Accessibility, and call it when determining whether an
191 accessibility check is needed.
192 It returns True iff Present (Effective_Extra_Accessibility (Id)) would
193 evaluate to True (without raising an exception).
194 * exp_ch5.adb
195 (Expand_N_Assignment_Statement): When assigning to an Ada2012
196 saooaaat, update its associated Extra_Accessibility object (if
197 it has one). This includes an accessibility check.
198 * exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates
199 a saooaaat, update its Extra_Accessibility object too (if it
200 has one).
201 (Expand_Call): Replace a couple of calls to Type_Access_Level
202 with calls to Dynamic_Access_Level to handle cases where
203 passing a literal (any literal) is incorrect.
204 * sem_attr.adb (Resolve_Attribute): Handle the static accessibility
205 checks associated with "Saooaat := Some_Object'Access;"; this must
206 be rejected if Some_Object is declared in a more nested scope
207 than Saooaat.
208 * sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an
209 assignment to a saooaaat even if Is_Local_Anonymous_Access
210 returns False for its type (indicating a 2012-style saooaaat).
211 * sem_ch8.adb
212 (Analyze_Object_Renaming): Replace a call to Init_Size_Align
213 (which is only appropriate for objects, not types) with a call
214 of Init_Object_Size_Align in order to avoid trashing the
215 Extra_Accessibility attribute of a rename (the two attributes
216 share storage).
217 * sem_res.adb
218 (Valid_Conversion) Replace six calls to Type_Access_Level with
219 calls to Deepest_Type_Access_Level. This is a bit tricky. For an
220 Ada2012 non-library-level saooaaat, the former returns library level
221 while the latter returns the (static) accessibility level of the
222 saooaaat. A type conversion to the anonymous type of a saooaaat
223 can only occur as part of an assignment to the saooaaat, so we
224 know that such a conversion must be in a lhs context, so Deepest
225 yields the result that we need. If such a conversion could occur,
226 say, as the operand of an equality operator, then this might not
227 be right. Also add a test so that static accessibilty checks are
228 performed for converting to a saooaaat's type even if
229 Is_Local_Anonymous_Access yields False for the type.
230
2312011-08-30 Javier Miranda <miranda@adacore.com>
232
233 * sem_disp.adb (Check_Dispatching_Operation): Complete condition that
234 controls generation of a warning associated with late declaration of
235 dispatching functions. Required to avoid generating spurious
236 warnings.
237
6cce2156
GD
2382011-08-30 Gary Dismukes <dismukes@adacore.com>
239
240 * sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the
241 return object has an anonymous access type and the function's type is
242 a named access type.
243 * sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming
244 conversions on implicit conversions, since such conversions can occur
245 for anonymous access cases due to expansion. Issue error for attempt
246 to rename an anonymous expression as an object of a named access type.
247 * sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,
248 to indicate whether this function should report errors on invalid
249 conversions.
250 * sem_res.adb (Resolve): For Ada 2012, in the case where the type of
251 the expression is of an anonymous access type and the expected type is
252 a named general access type, rewrite the expression as a type
253 conversion, unless this is an expression of a membership test.
254 (Valid_Conversion.Error_Msg_N): New procedure that conditions the
255 calling of Error_Msg_N on new formal Report_Errs.
256 (Valid_Conversion.Error_Msg_NE): New procedure that conditions the
257 calling of Error_Msg_NE on new formal Report_Errs.
258 (Valid_Conversion): Move declaration of this function to the package
259 spec, to allow calls from membership test processing. For Ada 2012,
260 enforce legality restrictions on implicit conversions of anonymous
261 access values to general access types, disallowing such conversions in
262 cases where the expression has a dynamic accessibility level (access
263 parameters, stand-alone anonymous access objects, or a component of a
264 dereference of one of the first two cases).
265 * sem_type.adb (Covers): For Ada 2012, allow an anonymous access type
266 in the context of a named general access expected type.
267 * exp_ch4.adb Add with and use of Exp_Ch2.
268 (Expand_N_In): Add processing for membership tests applied to
269 expressions of an anonymous access type. First, Valid_Conversion is
270 called to check whether the test is statically False, and then the
271 conversion is expanded to test that the expression's accessibility
272 level is no deeper than that of the tested type. In the case of
273 anonymous access-to-tagged types, a tagged membership test is applied
274 as well.
275 (Tagged_Membership): Extend to handle access type cases, applying the
276 test to the designated types.
277 * exp_ch6.adb (Expand_Call): When creating an extra actual for an
278 accessibility level, and the actual is a 'Access applied to a current
279 instance, pass the accessibility level of the type of the current
280 instance rather than applying Object_Access_Level to the prefix. Add a
281 ??? comment, since this level isn't quite right either (will eventually
282 need to pass an implicit level parameter to init procs).
283
747de90b
AC
2842011-08-30 Bob Duff <duff@adacore.com>
285
286 * s-taskin.ads: Minor comment fix.
287
2882011-08-30 Ed Schonberg <schonberg@adacore.com>
289
290 * sem_res.adb (Check_Parameterless_Call): If the node is a selected
291 component and the selector is a dispatching operation, check if it is
292 a prefixed call before rewriting as a parameterless function call.
293
cdc4cc65
JJ
2942011-08-29 Jakub Jelinek <jakub@redhat.com>
295
296 * gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy
297 tsystem.h into $(RTSDIR) instead of rts.
298
226a7fa4
AC
2992011-08-29 Robert Dewar <dewar@adacore.com>
300
301 * sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
302 reformatting.
303 * gcc-interface/Make-lang.in: Update dependencies.
304
3052011-08-29 Yannick Moy <moy@adacore.com>
306
307 * alfa.ads (Name_Of_Heap_Variable): New constant name.
308 * lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
309 table to hold dereferences.
310 (Add_ALFA_Xrefs): Take into account dereferences as special
311 reads/writes to the variable "HEAP".
312 (Enclosing_Subprogram_Or_Package): Move subprogram here.
313 (Generate_Dereference): New procedure to store a read/write dereferencew
314 in the table Drefs.
315 * put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
316 the special "HEAP" var.
317 * sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
318 in ALFA mode.
319 * sem_util.adb (Note_Possible_Modification): Store write dereference
320 in ALFA mode.
321
dfbcb149
HK
3222011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
323
324 * exp_ch3.adb (Freeze_Type): Generate an accessibility check which
325 ensures that the level of the subpool access type is not deeper than
326 that of the pool object.
327 * sem_util.adb (Object_Access_Level): Expand to handle defining
328 identifiers.
329 * sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
330 subpool handle name of a rewritten allocator.
331
1df4f514
AC
3322011-08-29 Robert Dewar <dewar@adacore.com>
333
334 * impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.
335
3362011-08-29 Thomas Quinot <quinot@adacore.com>
337
338 * exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
339 values, we generate multiple triples of parameters in the TypeCode.
340 Bump Choice_Index for each such triple so that a subsequent default
341 choice is associated with the correct index in the typecode.
342
3432011-08-29 Ed Schonberg <schonberg@adacore.com>
344
345 * a-cdlili.adb (Iterate): Initialize properly an iterator over a null
346 container.
347 (First, Last): Handle properly an iterator over a null container.
348
3492011-08-29 Bob Duff <duff@adacore.com>
350
351 * sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
352 processing if we run across a node with no Scope. This can happen if
353 we're with-ing an library-level instance, and that instance got errors
354 that caused "instantiation abandoned".
355 * sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
356 an exception instead of using Assert, so it won't go into an infinite
357 loop, even when assertions are turned off.
358
3592011-08-29 Ed Schonberg <schonberg@adacore.com>
360
361 * a-coorse.adb: Proper handling of empty ordered sets.
362
14f0f659
AC
3632011-08-29 Johannes Kanig <kanig@adacore.com>
364
365 * debug.adb: Add comments.
366
8027b455
AC
3672011-08-29 Thomas Quinot <quinot@adacore.com>
368
369 * a-except.adb, a-except-2005.adb: Minor comment rewording and
370 reformatting.
371
3722011-08-29 Yannick Moy <moy@adacore.com>
373
374 * sem_ch3.adb (Array_Type_Declaration): Remove insertion of
375 declaration for Itypes in Alfa mode.
376
d85fd922
AC
3772011-08-29 Robert Dewar <dewar@adacore.com>
378
379 * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
380 a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
381 a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
382 reformatting.
383
3842011-08-29 Tristan Gingold <gingold@adacore.com>
385
386 * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
387 package spec.
388 * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
389 * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
390 while raising PE.
391
fd3d2680
AC
3922011-08-29 Robert Dewar <dewar@adacore.com>
393
394 * a-cbhama.adb, a-cbhama.ads: Minor reformatting.
395
3962011-08-29 Javier Miranda <miranda@adacore.com>
397
398 * sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
399 renamings of formal subprograms when the actual for a formal type is
400 class-wide.
401
dfbf013f
MH
4022011-08-29 Matthew Heaney <heaney@adacore.com>
403
404 * a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
405 to Target.
406
4072011-08-29 Matthew Heaney <heaney@adacore.com>
408
409 * a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
410 components of record type.
411 * a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
412 to Target.
413
a6dd3a54
ES
4142011-08-29 Ed Schonberg <schonberg@adacore.com>
415
416 * a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,
417 a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to
418 container packages.
419
c54796e0
AC
4202011-08-29 Robert Dewar <dewar@adacore.com>
421
422 * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
423 reformatting.
424
4252011-08-29 Matthew Heaney <heaney@adacore.com>
426
427 * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
428 components of record type.
429
4302011-08-29 Bob Duff <duff@adacore.com>
431
432 * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
433 by the termination handler.
434
9fd9d2be
AC
4352011-08-29 Yannick Moy <moy@adacore.com>
436
437 * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
438 created in Alfa mode, instead of inserting artificial declarations of
439 non-Itypes in the tree.
440 * sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
441 know if an Itype has a corresponding declaration, as defined in
442 itypes.ads.
443
4442011-08-29 Yannick Moy <moy@adacore.com>
445
446 * gnat1drv.adb: Minor rewrite.
447
4482011-08-29 Bob Duff <duff@adacore.com>
449
450 * s-tasuti.adb (Make_Passive): Work around race condition in
451 Make_Independent, which can cause Wait_Count to be zero. So instead of
452 asserting that Wait_Count > 0, and then decrementing it, decrement it
453 only if Wait_Count > 0.
454 * s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
455 should be nonnegative, so declare them Natural instead of Integer.
456
833eaa8a
AC
4572011-08-29 Robert Dewar <dewar@adacore.com>
458
459 * exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
460 sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
461 a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
462 a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
463 exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.
464
4652011-08-29 Tristan Gingold <gingold@adacore.com>
466
467 * s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.
468
4692011-08-29 Vadim Godunko <godunko@adacore.com>
470
471 * s-parint.ads: Minor comment clarification.
472
4732011-08-29 Vincent Celier <celier@adacore.com>
474
475 * prj.adb (Initialize): Make sure that new reserved words after Ada 95
476 may be used as identifiers.
477
4782011-08-29 Ed Schonberg <schonberg@adacore.com>
479
480 * a-coinho.ads: Minor reformating.
481
3a613a36
AC
4822011-08-29 Ed Schonberg <schonberg@adacore.com>
483
484 * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a
485 container of a derived type.
486
3a613a36
AC
4872011-08-29 Ed Schonberg <schonberg@adacore.com>
488
489 * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
490 a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers.
491
14848f57
AC
4922011-08-29 Pascal Obry <obry@adacore.com>
493
494 * exp_disp.adb: Minor comment fix.
495 (Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
496 to avoid warnings when compiling with -Wall.
497 (Make_Disp_Conditional_Select_Body): Likewise.
498 (Make_Disp_Timed_Select_Body): Likewise.
499
5002011-08-29 Ed Schonberg <schonberg@adacore.com>
501
502 * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
503 an entity name, generate reference for it.
504
5052011-08-29 Ed Schonberg <schonberg@adacore.com>
506
507 * exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
508 iterator form.
509 * sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
510 the class-wide type.
511 * sem_ch5.adb: Move some rewriting to the expander, where it belongs.
512
5132011-08-29 Ed Schonberg <schonberg@adacore.com>
514
515 * sem_ch8.adb (Check_Constrained_Object): Do not create an actual
516 subtype for an object whose type is an unconstrained union.
517
5182011-08-29 Ed Schonberg <schonberg@adacore.com>
519
520 * par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
521 is allowed in a component definition, by AI95-406.
522
5232011-08-29 Matthew Heaney <heaney@adacore.com>
524
525 * a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.
526
5272011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
528
529 * a-except-2005.adb: Alphabetize all routines.
530 (Triggered_By_Abort): New routine.
531 * a-except-2005.ads (Triggered_By_Abort): New routine.
532 * a-except.adb Alphabetize all routines.
533 (Triggered_By_Abort): New routine.
534 * a-except.ads (Triggered_By_Abort): New routine.
535 * exp_ch7.adb: Update all comments involving the detection of aborts in
536 finalization code.
537 (Build_Object_Declarations): Do not generate code to detect the
538 presence of an abort at the start of finalization code, use a runtime
539 routine istead.
540 * rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
541 RE_Unit_Table.
542 * sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
543 allocate a task on a subpool.
544 * s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
545 The flag disables all actions related to the maintenance of
546 Finalize_Address_Table when subpools are not in use.
547 (Allocate_Any_Controlled): Signal the machinery that subpools are in
548 use.
549 (Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
550 performs costly task locking when subpools are not in use.
551
57a8057a
AC
5522011-08-29 Yannick Moy <moy@adacore.com>
553
554 * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged
555 types and dispatching calls in Alfa mode.
556 * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of
557 correspondance between body and spec scopes, to reuse utility functions
558 (Traverse_Declarations_Or_Statements): Protect access to body for stub
559 by testing the presence of the library unit for the body
560 * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa
561 mode the expansion of accept statements is skipped
562 * sem_util.adb, sem_util.ads (Unique_Entity): New function returning
563 the unique entity corresponding to the one returned by
564 Unique_Defining_Entity applied to the enclosing declaration of the
565 argument.
566
5672011-08-29 Bob Duff <duff@adacore.com>
568
569 * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in
570 gdb when x is not a node (it can be a node list, name_id, etc). pp is
571 an alias for pn. ppp is an alias for pt.
572
5732011-08-29 Javier Miranda <miranda@adacore.com>
574
575 * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing
576 aggregate to take a consistent decision on the need to convert into
577 assignments aggregates that initialize constant objects.
578
5792011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
580
581 * exp_ch4.adb (Expand_Allocator_Expression): Add a call to
582 Build_Allocate_Deallocate_Proc in order to handle allocation of
583 non-controlled objects on subpools.
584 * impunit.adb: Remove s-finmas and s-spsufi since they were never meant
585 to be end-user visible.
586 * s-finmas.adb: Add with and use clause for System.HTable.
587 Add an instantiation of Simple_HTable which provides a mapping between
588 the address of a controlled object and the corresponding
589 Finalize_Address used to clean up the object. The table is used when a
590 master is operating in heterogeneous mode.
591 (Attach): Explain why the input node is not verified on being already
592 attached.
593 (Delete_Finalize_Address): New routine.
594 (Detach): Add pragma Assert which ensures that a node is already
595 attached.
596 (Finalize): Add local variable Cleanup. Rewrite the iteration scheme
597 since nodes are no longer removed on traversal. Explain why node
598 detachment is undesirable in this case.
599 (Get_Finalize_Address): New routine.
600 (Hash): New routine.
601 (Is_Empty_List): Removed.
602 (pm): Renamed to Print_Master. Add output for discriminant
603 Is_Homogeneous.
604 Comment reformatting.
605 (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
606 * s-finmas.ads: Various comments additions / improvements.
607 Type Finalization_Master has a discriminant which determines the mode of
608 operation.
609 (Delete_Finalize_Address): New routine.
610 (Get_Finalize_Address): New routine.
611 (pm): Renamed to Print_Master.
612 (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
613 * s-stposu.adb: Add with clause for System.Address_Image; Add with and
614 use clause for System.IO.
615 (Allocate_Any_Controlled): Add machinery to set TSS primitive
616 Finalize_Address depending on the mode of allocation and the mode of
617 the master.
618 (Deallocate_Any_Controlled): Remove the relation pair object -
619 Finalize_Address regardless of the master mode. Add comment explaining
620 the reason.
621 (Detach): Ensure that fields Prev and Next are null after detachment.
622 (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration
623 scheme to check whether the list of subpools is empty. There is no
624 longer need to store the next subpool or advance the current pointer.
625 (Is_Empty_List): New routine.
626 (Print_Pool): New routine.
627 (Print_Subpool): New routine.
628 * s-stposu.ads: Various comments additions / improvements.
629 Field Master of type Root_Subpool is now a heterogeneous collection.
630 (Print_Pool): New routine.
631 (Print_Subpool): New routine.
632
6332011-08-29 Ed Schonberg <schonberg@adacore.com>
634
635 * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator
636 forms, using aspects of container types.
637 * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and
638 Has_Implicit_Dereference flags, that may be set on the partial view.
639 * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a
640 container type with an indexing aspect.
641 (Analyze_Quantified_Expression): Analyze construct with expansion
642 disabled, because it will be rewritten as a loop during expansion.
643 (Try_Container_Indexing): The prefix itself may be a container type
644 with an indexing aspect, as with a vector of vectors.
645 * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze
646 the original doamin of iteration, for name capture.
647 (Analyze_Iterator_Specification): If the domain is an expression that
648 needs finalization, create a separate declaration for it.
649 For an iterator with "of" retrieve default iterator info from aspect of
650 container type. For "in" iterator, retrieve type of Iterate function.
651 * sem_ch13.adb (Check_Iterator_Function): Fix typo.
652 (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before
653 analysis, to prevent spurious errors about late attributes.
654 * sprint.adb: Handle quantified expression with either loop or iterator
655 specification.
656 * a-convec.ads, a-convec.adb: Iterate function returns a reversible
657 iterator.
658
ddf67a1d
AC
6592011-08-29 Vincent Celier <celier@adacore.com>
660
661 * make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
662 Binder or Linker of the main project file.
663
6642011-08-29 Ed Schonberg <schonberg@adacore.com>
665
666 * inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
667 unit.
668
6692011-08-29 Yannick Moy <moy@adacore.com>
670
671 * exp_ch9.adb: Partial revert of previous change for Alfa mode
672
6732011-08-29 Yannick Moy <moy@adacore.com>
674
675 * exp_ch11.adb: Minor expansion of comment.
676
6772011-08-29 Yannick Moy <moy@adacore.com>
678
679 * lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.
680
6812011-08-29 Ed Schonberg <schonberg@adacore.com>
682
683 * sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
684 interpretation, set the type before resolving the operands, because
685 legality checks on an exponention operand need to know the type of the
686 context.
687
6882011-08-29 Ed Schonberg <schonberg@adacore.com>
689
690 * sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
691 cleanups on a master if the instance is within a generic unit.
692 Complement to the corresponding fix to inline.adb for K520-030.
693
6942011-08-29 Tristan Gingold <gingold@adacore.com>
695
696 * exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
697 occurrence.
698 * exp_intr.adb: Minor comment fix.
699
7002011-08-29 Bob Duff <duff@adacore.com>
701
702 * sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
703 Delay_Required was used as an uninitialized variable.
704
690943fc
RD
7052011-08-29 Robert Dewar <dewar@adacore.com>
706
707 * a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,
708 sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,
709 a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.
710
9f0ee988
TQ
7112011-08-29 Thomas Quinot <quinot@adacore.com>
712
713 * system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
714 Remove unused variables.
715
3e24afaa
AC
7162011-08-29 Ed Schonberg <schonberg@adacore.com>
717
718 * sem_res.adb: Remove Build_Explicit_Dereference.
719 * sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
720 from sem_res.adb, used in analysis of additional constructs.
721 (Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012
722 expansion of iterators.
723 (Is_Object_Reference): Recognize variables rewritten as explicit
724 dereferences in Ada2012.
725 * snames.ads-tmpl: Add Has_Element, Forward_Iterator,
726 Reversible_Iterator names, for expansion of Ada2012 iterators.
727 * aspects.ads, aspects.adb (Find_Aspect): Utility.
728 * a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
729 linked list container.
730 * a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
731 * a-coorse.ads, a-coorse.adb: Ditto for ordered sets.
732
7332011-08-29 Ed Schonberg <schonberg@adacore.com>
734
735 * a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
736 containers.
737
7382011-08-29 Vincent Celier <celier@adacore.com>
739
740 * make.adb (Gnatmake): Get the maximum number of simultaneous
741 compilation processes after the Builder switches has been scanned, as
742 there may include -jnn.
743
7442011-08-29 Matthew Heaney <heaney@adacore.com>
745
746 * a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.
747
7482011-08-29 Tristan Gingold <gingold@adacore.com>
749
750 * gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
751 GNAT_DRIVER_COMMAND_LINE to 255.
752
7532011-08-29 Pascal Obry <obry@adacore.com>
754
755 * freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
756 reformatting and style fix (class attribute casing).
757
7582011-08-29 Yannick Moy <moy@adacore.com>
759
760 * exp_ch11.adb: Yet another case where expansion should be common
761 between CodePeer and Alfa.
762
7632011-08-29 Yannick Moy <moy@adacore.com>
764
765 * exp_ch9.adb: Partial revert of previous change for Alfa mode.
766
7672011-08-29 Ed Schonberg <schonberg@adacore.com>
768
769 * sem_ch6.adb (Matches_Limited_With_View): The limited views of an
770 incomplete type and its completion match.
771
3ddd922e
AC
7722011-08-29 Yannick Moy <moy@adacore.com>
773
774 * exp_ch13.adb: Adjust previous change.
775
7762011-08-29 Robert Dewar <dewar@adacore.com>
777
778 * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
779 exp_ch4.adb, sem_ch8.adb: Minor code reorganization
780 Minor reformatting.
781
444acbdd
AC
7822011-08-29 Emmanuel Briot <briot@adacore.com>
783
784 * make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
785 initialize aggregated projects.
786
7872011-08-29 Ed Schonberg <schonberg@adacore.com>
788
789 * sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
790 depth of candidates to resolve a potentially spurious ambiguity between
791 two visible subprograms.
792
e0296583
AC
7932011-08-29 Yannick Moy <moy@adacore.com>
794
795 * sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without
796 Requires/Ensures.
797 * sem_util.adb (Get_Ensures_From_Test_Case_Pragma,
798 Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without
799 Requires/Ensures.
800
8012011-08-29 Arnaud Charlet <charlet@adacore.com>
802
803 * gnat1drv.adb (Adjust_Global_Switches): Improve previous change.
804 Add comment.
805
8062011-08-29 Thomas Quinot <quinot@adacore.com>
807
808 * sem_res.adb: Minor reformatting.
809
69794413
JK
8102011-08-29 Johannes Kanig <kanig@adacore.com>
811
812 * exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
813 mode.
814 * gnat1drv.adb (Adjust_Global_Switches): Set
815 Use_Expressions_With_Actions to False in ALFA mode.
816 * sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
817 ALFA mode.
818
59e6b23c
AC
8192011-08-29 Yannick Moy <moy@adacore.com>
820
821 * exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
822 * exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
823 * gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
824 tagged types and dispatching calls in Alfa mode.
825
8262011-08-29 Javier Miranda <miranda@adacore.com>
827
828 * sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
829 we do not report an error on an Empty node.
830
8312011-08-29 Geert Bosch <bosch@adacore.com>
832
833 * Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
834 a-nlrear.o and a-nurear.o.
835
8362011-08-29 Robert Dewar <dewar@adacore.com>
837
838 * freeze.adb: Minor code reorganization.
839 Minor reformatting.
840 * sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
841 sem_ch6.adb: Minor reformatting
842
8432011-08-29 Tristan Gingold <gingold@adacore.com>
844
845 * s-except.ads, s-except.adb: Provide dummy body.
846
8472011-08-29 Yannick Moy <moy@adacore.com>
848
849 * sem_warn.adb (Within_Postcondition): Take into account the case of
850 an Ensures component in a Test_Case.
851
4d792549
AC
8522011-08-29 Tristan Gingold <gingold@adacore.com>
853
854 * s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
855 * rtsfind.ads (RTU_Id): Replaces System_Exceptions by
856 System_Exceptions_Debug
857 (RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
858 * a-except.adb: With and use System.Exceptions_Debug instead of
859 System.Exceptions.
860 * a-except-2005.adb: Likewise.
861 * s-assert.adb: Likewise.
862 * s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
863 * Makefile.rtl: Add s-excdeb. Adjust compilation rule.
864 * gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
865 s-excdeb. Update dependencies.
866 (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
867 as these no longer need external libraries.
868
8692011-08-29 Ed Schonberg <schonberg@adacore.com>
870
871 * sem_res.adb (Resolve_Op_Expon): Additional check to reject an
872 exponentiation operator on universal values in a context that requires
873 a fixed-point type.
874
8752011-08-29 Tristan Gingold <gingold@adacore.com>
876
877 * raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence
878 before calling notify_handled_exception.
879 * a-exextr.adb: Fix comment.
880
b254da66
AC
8812011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
882
883 * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute
884 Finalize_Address of the access type's finalization master.
885 (Expand_N_Allocator): Add code to set attribute Finalize_Address of the
886 access type's finalization master. Add a guard to prevent
887 Associated_Storage_Pool from being set on .NET/JVM.
888 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set
889 attribute Finalize_Address of the access type's finalization master.
890 * exp_ch7.adb (Make_Finalize_Address_Call): New routine.
891 * exp_ch7.ads (Make_Finalize_Address_Call): New routine.
892 * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and
893 RE_Unit_Table.
894 * s-finmas.adb: Add with clause for System.Address_Image. Add with and
895 use clause for System.IO
896 (Detach): Relax the assertion, to be reinstated later.
897 (Finalize): Rewrite the iteration loop to avoid pointer comparison.
898 Relax the assertion on Finalize_Address, to be reinstated later.
899 (Is_Empty_List): New routine.
900 (pm): New debug routine.
901 (Set_Finalize_Address): New routine.
902 * s-finmas.ads (pm): New debug routine.
903 (Set_Finalize_Address): New routine.
904 * s-stposu.adb (Allocate_Any_Controlled): Code reformatting.
905
9062011-08-29 Tristan Gingold <gingold@adacore.com>
907
908 * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):
909 Remove convention C.
910
9112011-08-29 Tristan Gingold <gingold@adacore.com>
912
913 * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.
914 (Initialize_TCB): Remove Exc_Stack_Ptr initialization.
915 (Finalize_TCB): Remove its finalization.
916 (Initialize): Remove assignment of GET_Exc_Stack_Addr
917 * s-soflin.adb (NT_Exc_Stack): Remove
918 (Get_Exc_Stack_Addr_NT): Likewise.
919 (Get_Exc_Stack_Addr_Soft): Likewise.
920 * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.
921 (Get_Exc_Stack_Addr): Likewise.
922 (Get_Exc_Stack_Addr_Soft): Likewise
923 * s-taspri-vms.ads (Exc_Stack_T): Remove.
924 (Exc_Stack_Ptr_T): Likewise.
925 (Private_Data): Remove Exc_Stack_Ptr component.
926
9272011-08-29 Tristan Gingold <gingold@adacore.com>
928
929 * raise-gcc.c (get_ip_from_context): New function. Factorize code.
930
9312011-08-29 Tristan Gingold <gingold@adacore.com>
932
933 * gnat_ugn.texi: Fix aix and x86-solaris info for run-time.
934
9352011-08-29 Geert Bosch <bosch@adacore.com>
936
937 * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,
938 L2_Norm, Swap_Column): New generic subprograms
939 * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,
940 L2_Norm, Swap_Column): Implement new subprograms in order to
941 eliminate dependency on BLAS and LAPACK libraries in
942 Ada.Numerics.Generic_Real_Arrays and eventually also the complex
943 version. Forward_Eliminate/Back_Substitute can be used to put a
944 matrix in row echelon or reduced row echelon form using partial
945 pivoting.
946 * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,
947 Swap_Column): Instantiate from System.Generic_Array_Operations.
948 ("*", "abs"): Implement by instantiation from Generic_Array_Operations.
949 (Sqrt): Local function for simple computation of square root without
950 adding dependencies on Generic_Elementary_Functions.
951 (Swap): New subprogram to exchange floating point numbers.
952 (Inverse): Reimplement using Jordan-Gauss elimination.
953 (Jacobi): New procedure implementing Jacobi's method for computation
954 of eigensystems, based on Rutishauser's implementation.
955 (L2_Norm): Implement directly using the inner product.
956 (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of
957 decreasing eigenvalue as required by the Ada RM.
958 (Swap_Column): New helper procedure for Sort_Eigensystem.
959 Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.
960 Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for
961 Sort_Eigensystems.
962
9632011-08-29 Thomas Quinot <quinot@adacore.com>
964
965 * put_scos.adb (Put_SCOs): Do not emit a newline for an empty
966 statements line.
967
60370fb1
AC
9682011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
969
970 * s-finmas.adb (Finalize): Check Finalize_Address of the master rather
971 than the current node.
972 * s-finmas.ads: Move field Finalize_Address from type FM_Node to
973 Finalization_Master. The list headers have two fields instead of three.
974 This should fix alignment issue but subpool allocations are now
975 unusable. Alphabetize subprograms.
976 * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than
977 the size of the header when converting the beginning of the object to
978 a FM_Node. Set the master's Finalize_Address attribute if not already
979 set.
980 (Deallocate_Any_Controlled): Use the offset rather than the size of the
981 header when converting the beginning of the object to a FM_Node.
982
9832011-08-29 Gary Dismukes <dismukes@adacore.com>
984
985 * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of
986 reraise when compiling for CodePeer.
987
9882011-08-29 Arnaud Charlet <charlet@adacore.com>
989
990 * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,
991 now needed by a-convec.adb. Fix warning.
992
9932011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
994
995 * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the
996 processing of TSS routine Finalize_Address when compiling in
997 CodePeer_Mode.
998
9992011-08-29 Thomas Quinot <quinot@adacore.com>
1000
1001 * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,
1002 sem_warn.adb: Minor reformatting.
1003
10042011-08-29 Emmanuel Briot <briot@adacore.com>
1005
1006 * prj-conf.adb (Get_Config_Switches): Also collect the list of
1007 languages from aggregated projects.
1008
10092011-08-29 Yannick Moy <moy@adacore.com>
1010
1011 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,
1012 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
1013 Traverse_Package_Declaration, Traverse_Subprogram_Body,
1014 Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies
1015 for stubs are traversed too when parameter is set
1016 (Traverse_All_Compilation_Units): Traverse without going inside stubs
1017 (Traverse_Declarations_Or_Statements): Do the special traversing for
1018 stubs when required.
1019 * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to
1020 return subprogram or package body from stub.
1021 (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect
1022 stubs without prior subprogram decl.
1023
10242011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
1025
1026 * gnat_ugn.texi: Fix typo.
1027
e9c9d122
HK
10282011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1029
1030 * s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
1031 which accounts for size vs alignment issues and calculates the size of
1032 the list header.
1033 (Deallocate_Any_Controlled): Ditto.
1034 (Nearest_Multiple_Rounded_Up): New routine.
1035
25ebc085
AC
10362011-08-29 Tristan Gingold <gingold@adacore.com>
1037
1038 * a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
1039 * a-exexda.adb (Set_Exception_C_Msg): Ditto.
1040 (Set_Exception_Msg): Ditto.
1041 * a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set
1042 Private_Data.
1043 * a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
1044 Use Save_Occurrence instead of Save_Occurrence_No_Private.
1045 (Raise_With_Msg): Remove Cleanup_Flag.
1046 * a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
1047 Clean_Flag and Private_Data components.
1048
10492011-08-29 Yannick Moy <moy@adacore.com>
1050
1051 * freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
1052 in CodePeer mode.
1053 * sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
1054 of an explicitly declared type, so that the base types of the original
1055 type and this generated type are the same, and a "type" (not a subtype
1056 like previously).
1057 * errout.adb (Special_Msg_Delete): Do not issue messages "Size too
1058 small" in Alfa mode, like in CodePeer mode.
1059 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
1060 clauses in Alfa mode.
1061
10622011-08-29 Javier Miranda <miranda@adacore.com>
1063
1064 * exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
1065 function to the package spec.
1066 * sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
1067 internally generated bodies of null procedures locate the internally
1068 generated spec enforcing mode conformance.
1069 (Is_Interface_Conformant): Ensure that the controlling formal of the
1070 primitives match.
1071
10722011-08-29 Ed Schonberg <schonberg@adacore.com>
1073
1074 * sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
1075 reject the pragma if it appears to apply to a formal subprogram.
1076
10772011-08-29 Ed Schonberg <schonberg@adacore.com>
1078
1079 * exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
1080 inner expression, to prevent double evaluation.
1081
590549fb
AC
10822011-08-29 Tristan Gingold <gingold@adacore.com>
1083
1084 * a-exexpr.adb (Propagate_Exception): Remove all the parameters as
1085 they were unused.
1086 * a-exexpr-gcc.adb (Propagate_Exception): Ditto.
1087 * a-except-2005.adb (Propagate_Exception): Adjust spec.
1088 (Raise_Current_Excep): Adjust call.
1089 (Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.
1090
10912011-08-29 Thomas Quinot <quinot@adacore.com>
1092
1093 * exp_disp.adb: Minor reformatting.
1094
62380e66
TG
10952011-08-29 Tristan Gingold <gingold@adacore.com>
1096
1097 * a-exexpr.adb (Setup_Exception): Removed.
1098 * a-exexpr-gcc.adb (Setup_Exception): Removed.
1099 * a-except.adb (Exception_Propagation): Removed.
1100 * a-except-2005.adb (Setup_Exception): Removed.
1101 (Reraise): Remove call to Setup_Exception.
1102 (Reraise_Occurrence): Ditto.
1103 (Reraise_Occurrence_Always): Ditto.
1104 (Reraise_Occurrence_No_Defer): Ditto.
1105 (Transfer_Occurrence): Ditto.
1106 * a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.
1107 (Set_Exception_Msg): Ditto.
1108
c95aa61c
AC
11092011-08-29 Robert Dewar <dewar@adacore.com>
1110
1111 * a-convec.adb, exp_disp.adb: Minor reformatting.
1112
11132011-08-29 Tristan Gingold <gingold@adacore.com>
1114
1115 * a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.
1116
624e1688
AC
11172011-08-29 Gary Dismukes <dismukes@adacore.com>
1118
1119 * exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
1120 Exception_Handlers to No_List instead of Empty_List in the case where
1121 there are no handlers.
1122
11232011-08-29 Tristan Gingold <gingold@adacore.com>
1124
1125 * gcc-interface/gigi.h (enum standard_datatypes): Add
1126 ADT_reraise_zcx_decl
1127 (reraise_zcx_decl): New macro.
1128 * gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
1129 (gigi): Set reraise_zcx_decl.
1130 (Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
1131 (gnat_to_gnu): Handle N_Raise_Statement.
1132
7134062a
AC
11332011-08-29 Robert Dewar <dewar@adacore.com>
1134
1135 * sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,
1136 a-undesu.adb: Minor reformatting.
1137
11382011-08-29 Ed Schonberg <schonberg@adacore.com>
1139
1140 * exp_disp.adb (Check_Premature_Freezing): When building a dispatch
1141 table, accept an unfrozen untagged component if it is an actual for a
1142 formal incomplete type.
1143 * a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to
1144 provide new iterator forms over vectors.
1145 Introduce type Iterator in package body to implement operations of
1146 Reversible_Iterator interface.
1147 * a-iteint.ads: Make package pure so it is usable with new container
1148 packages, that are categorized Remote_Types.
1149
ca5af305
AC
11502011-08-29 Robert Dewar <dewar@adacore.com>
1151
1152 * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting.
1153
11542011-08-29 Bob Duff <duff@adacore.com>
1155
1156 * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case
1157 of <>, because this is the routine that checks for dimensionality
1158 errors (for example, for a two-dimensional array, (others => <>) should
1159 be (others => (others => <>)).
1160
11612011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1162
1163 * impunit.adb: Add new run-time units.
1164 * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb,
1165 s-stposu.ads, s-stposu.adb: Code clean up.
1166 Handle protected class-wide or task class-wide types
1167 Handle C/C++/CIL/Java types.
1168 * s-spsufi.adb, s-spsufi.ads: New files.
1169
5accd7b6
AC
11702011-08-29 Yannick Moy <moy@adacore.com>
1171
1172 * sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on
1173 library-level subprogram.
1174 * sem_prag.adb (Check_Test_Case): Stricter rules for test-case
1175 placement.
1176 (Analyze_Pragma): Change name "Normal" for "Nominal" in test-case
1177 component.
1178 * snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case
1179 component.
1180 * gnat_rm.texi: Update doc for Test_Case pragma.
1181
11822011-08-29 Tristan Gingold <gingold@adacore.com>
1183
1184 * a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it
1185 convention C.
1186 (GCC_Exception_Access): New type.
1187 (Unwind_DeleteException): New imported procedure
1188 (Foreign_Exception): Import it.
1189 (GNAT_GCC_Exception): Simply have the occurrence inside.
1190 (To_GCC_Exception): New function.
1191 (To_GNAT_GCC_Exception): New function.
1192 (GNAT_GCC_Exception_Cleanup): New procedure..
1193 (Propagate_GCC_Exception): New procedure.
1194 (Reraise_GCC_Exception): New procedure.
1195 (Setup_Current_Excep): New procedure.
1196 (CleanupUnwind_Handler): Change type of UW_Exception parameter.
1197 (Unwind_RaiseException): Ditto.
1198 (Unwind_ForcedUnwind): Ditto.
1199 (Remove): Removed.
1200 (Begin_Handler): Change type of parameter.
1201 (End_Handler): Ditto. Now delete the exception if still present.
1202 (Setup_Key): Removed.
1203 (Is_Setup_And_Not_Propagated): Removed.
1204 (Set_Setup_And_Not_Propagated): Ditto.
1205 (Clear_Setup_And_Not_Propagated): Ditto.
1206 (Save_Occurrence_And_Private): Ditto.
1207 (EID_For): Add 'not null' constraint on parameter.
1208 (Setup_Exception): Does nothing.
1209 (Propagate_Exception): Simplified.
1210 * exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,
1211 re-raise is not expanded anymore.
1212 * s-except.ads (Foreign_Exception): New exception - placeholder for
1213 non Ada exceptions.
1214 * raise-gcc.c (__gnat_setup_current_excep): Declare
1215 (CXX_EXCEPTION_CLASS): Define (not yet used)
1216 (GNAT_EXCEPTION_CLASS): Define.
1217 (is_handled_by): Handle foreign exceptions.
1218 (PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.
1219
12202011-08-29 Jose Ruiz <ruiz@adacore.com>
1221
1222 * a-synbar.adb (Synchronous_Barrier): Some additional clarification.
1223
2ef48385
AC
12242011-08-29 Thomas Quinot <quinot@adacore.com>
1225
1226 * a-synbar-posix.adb: Minor reformatting.
1227
12282011-08-29 Jose Ruiz <ruiz@adacore.com>
1229
1230 * a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,
1231 a-exetim-default.ads (Interrupt_Clocks_Supported,
1232 Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
1233 definitions to be compliant with AI-0171. The target systems do not
1234 support separate account for the execution time of interrupt handlers.
1235
12362011-08-29 Jose Ruiz <ruiz@adacore.com>
1237
1238 * a-synbar.adb (Wait): Change the order of evaluation of the conditions
1239 in the barrier to put first the easiest to evaluate (and the one which
1240 will be True more often). More efficient.
1241
12422011-08-29 Eric Botcazou <ebotcazou@adacore.com>
1243
1244 * s-atocou-x86.adb: Fix constraint in machine code insertion.
1245
12462011-08-29 Bob Duff <duff@adacore.com>
1247
1248 * aspects.ads, aspects.adb: Add new aspects for various pragmas and
1249 attributes that are now aspects, as specified by AI05-0229-1.
1250 * sem_ch13.adb (Analyze_Aspect_Specifications,
1251 Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into
1252 pragmas or attribute references, as appropriate.
1253
0db16b1e
AC
12542011-08-29 Robert Dewar <dewar@adacore.com>
1255
1256 * a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,
1257 a-synbar-posix.ads: Minor reformatting.
1258
12592011-08-29 Yannick Moy <moy@adacore.com>
1260
1261 * snames.ads-tmpl: Add name Force.
1262
978ffe02
AC
12632011-08-29 Pascal Obry <obry@adacore.com>
1264
1265 * prj-nmsc.adb: Minor reformatting.
1266
12672011-08-29 Jose Ruiz <ruiz@adacore.com>
1268
1269 * a-exetim.ads (Interrupt_Clocks_Supported,
1270 Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
1271 definitions to be compliant with AI-0171.
1272
12732011-08-29 Robert Dewar <dewar@adacore.com>
1274
1275 * a-ngelfu.adb: Add comments.
1276
718f39dc
AC
12772011-08-29 Geert Bosch <bosch@adacore.com>
1278
1279 * a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is
1280 the closest machine number to Pi / 2.0.
1281
12822011-08-29 Jose Ruiz <ruiz@adacore.com>
1283
1284 * impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012
1285 package Ada.Synchronous_Barriers.
1286 * a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:
1287 Add new specs and bodies for Ada.Synchronous_Barriers. There is a
1288 default implementation using protected objects and another one
1289 a-synbar-posix using POSIX barriers as the underlying support.
1290 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,
1291 x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of
1292 Ada.Synchronous_Barriers which uses POSIX barriers (more efficient).
1293 Clean up dependencies.
1294 * Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o
1295
ee2e3f6b
AC
12962011-08-29 Robert Dewar <dewar@adacore.com>
1297
1298 * sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,
1299 exp_dist.adb: Minor code reorganization.
1300 Minor reformatting.
1301
13022011-08-29 Thomas Quinot <quinot@adacore.com>
1303
1304 * sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW
1305 primitive operation must support external streaming if it is not a
1306 controlling access result.
1307
646e2823
AC
13082011-08-29 Thomas Quinot <quinot@adacore.com>
1309
1310 * sinfo.ads, sem_ch7.adb: Minor reformatting.
1311
13122011-08-29 Bob Duff <duff@adacore.com>
1313
1314 * sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
1315 restriction on allocators, as required by AI05-0013-1.
1316 * restrict.ads: Minor comment fix.
1317
5d59eef2
AC
13182011-08-29 Tristan Gingold <gingold@adacore.com>
1319
1320 * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb
1321 (To_Jmpbuf_Address): Ditto
1322 (builtin_longjmp): Ditto
1323
13242011-08-29 Thomas Quinot <quinot@adacore.com>
1325
1326 * sem_res.adb: Minor reformatting.
1327
13282011-08-29 Vincent Celier <celier@adacore.com>
1329
1330 * make.adb (Gnatmake): Move special processing for VM targets after the
1331 call to Get_Target_Parameters.
1332
13332011-08-29 Thomas Quinot <quinot@adacore.com>
1334
1335 * sem_ch12.adb, par-ch12.adb: Minor reformatting.
1336
949a18cc
AC
13372011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1338
1339 * sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases
1340 where an anonymous access discriminant of a limited designated type
1341 appears in a non-immutably limited discriminated type and issue an
1342 error message. Add local variable Desig_T and replace all occurrences
1343 of Designated_Type.
1344
13452011-08-29 Jose Ruiz <ruiz@adacore.com>
1346
1347 * a-rttiev.adb (Set_Handler): Update comment to indicate that our
1348 implementation is compliant to RM D.15(15/2) after the modification
1349 imposed by AI05-0094-1 (binding interpretation).
1350
cb25faf8
AC
13512011-08-29 Robert Dewar <dewar@adacore.com>
1352
1353 * exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb,
1354 s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting.
1355
13562011-08-29 Thomas Quinot <quinot@adacore.com>
1357
1358 * par-endh.adb (Check_End): For an END where it is mandatory to repeat
1359 the scope name, do not report a missing label as a style violation (it
1360 will be diagnosed as an illegality).
1361 * exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of
1362 variant records: Get_Enum_Lit_From_Pos already returns a usage
1363 occurrence of the literal, no need to use New_Occurrence_Of. Set Etype
1364 on Expr in Integer_Literal case so that it can be used by
1365 Build_To_Any_Call.
1366
1d10f669
AC
13672011-08-29 Tristan Gingold <gingold@adacore.com>
1368
1369 * exp_sel.ads (Build_Abort_BLock_Handler): New function spec.
1370 Adjust comment.
1371 * exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler.
1372 (Build_Abort_Block_Handler): New function to build an Abort_Signal
1373 exception handler.
1374 * exp_ch9.adb (Expand_N_Asynchronous_Select): Call
1375 Build_Abort_Block_Handler to build the exception handler. Do not
1376 undefer aborts for the Abort_Signal exception handler if back-end
1377 exception mechanism.
1378 * exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if
1379 back_end exceptions for all others and abort_signal.
1380 * s-except.ads (ZCX_By_Default): New constant.
1381 * a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX.
1382 (Raise_Exception_Always): Ditto.
1383 (Raise_From_Signal_Handler): Ditto.
1384 (Raise_With_Location_And_Msg): Ditto.
1385 (Raise_With_Msg): Ditto.
1386 (Reraise): Ditto.
1387 (Reraise_Occurence): Ditto.
1388 (Reraise_Occurrence_Always): Ditto.
1389 * s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX.
1390 * s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX.
1d10f669
AC
1391
13922011-08-29 Thomas Quinot <quinot@adacore.com>
1393
1394 * sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation.
1395
d986066d
AC
13962011-08-29 Robert Dewar <dewar@adacore.com>
1397
1398 * snames.adb-tmpl, sem_ch13.adb: Minor reformatting
1399 Minor code reorganization.
1400
14012011-08-29 Bob Duff <duff@adacore.com>
1402
1403 * usage.adb (-gnatwy): Fix documentation: this switch applies to Ada
1404 2012, not just Ada 2005.
1405
14062011-08-29 Vincent Celier <celier@adacore.com>
1407
1408 * gnat_ugn.texi: Indicate that when the compiler is called by gnatmake
1409 with a project file or with gprbuid, if -gnatep= is specified, the
1410 builder may need to be invoked with -x.
1411
14122011-08-29 Tristan Gingold <gingold@adacore.com>
1413
1414 * a-exexpr-gcc.adb: Minor comment fix.
1415
ff4f0ed0
AC
14162011-08-29 Robert Dewar <dewar@adacore.com>
1417
1418 * sem_ch8.adb: Minor reformatting.
1419
14202011-08-29 Bob Duff <duff@adacore.com>
1421
1422 * par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012.
1423 * par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for
1424 treating "some" as unreserved in earlier Ada versions. This is now
1425 handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some,
1426 rather than Name_Some, since Tok_Some is now recognized as reserved.
1427 * scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other
1428 reserved word.
1429 * scans.ads: Minor comment fixes.
1430 * snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as
1431 for other language versions.
1432 * scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for
1433 treating "some" as unreserved in earlier Ada versions. This is now
1434 handled in Snames.Is_Keyword_Name.
1435 * par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in
1436 Ada 2012.
1437 (P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as
1438 unreserved in earlier Ada versions. This is now handled in
1439 Snames.Is_Keyword_Name.
1440 * snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved
1441 words as for other language versions.
1442 * gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to
1443 Ada 2012, not just Ada 2005.
1444
d941cee6
AC
14452011-08-29 Ed Schonberg <schonberg@adacore.com>
1446
1447 * sem_ch13.adb: Additional semantic checks for aspects involved in
1448 iterators.
1449
14502011-08-29 Matthew Heaney <heaney@adacore.com>
1451
1452 * a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb,
1453 a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous
1454 Container parameter.
1455 (Ancestor_Find): ditto.
1456
b970af39
TQ
14572011-08-29 Thomas Quinot <quinot@adacore.com>
1458
1459 * par-endh.adb: Minor reformatting.
d941cee6 1460
92db5dee
AC
14612011-08-29 Tristan Gingold <gingold@adacore.com>
1462
1463 * a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants.
1464 (GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component.
1465 (Adjust_N_CLeanups_For): Remove.
1466 (CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of
1467 stack is reached.
1468 (Propgate_Exception): Adjust.
1469 * raise-gcc.c: Add a few static/const.
1470 (Adjust_N_Cleanups_For): Remove declaration.
1471 (PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger.
1472
14732011-08-29 Ed Schonberg <schonberg@adacore.com>
1474
1475 * sem_ch8.adb: Use type of function return when rewriting as object
1476 declaration.
1477
1378bf10
AC
14782011-08-29 Gary Dismukes <dismukes@adacore.com>
1479
1480 * sem_type.adb: Minor reformatting.
1481
14822011-08-29 Robert Dewar <dewar@adacore.com>
1483
1484 * makeutl.adb: Minor reformatting.
1485
14862011-08-29 Ed Schonberg <schonberg@adacore.com>
1487
1488 * sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a
1489 function call of a limited type, the expansion of the renaming is
1490 complicated by the presence of various temporaries and subtypes that
1491 capture constraints of the renamed object.
1492 Rewrite node as an object declaration, whose expansion is simpler.
1493 Given that the object is limited there is no copy involved and no
1494 performance hit.
1495
164e06c6
AC
14962011-08-29 Robert Dewar <dewar@adacore.com>
1497
1498 * exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb,
1499 freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting.
1500
15012011-08-29 Tristan Gingold <gingold@adacore.com>
1502
1503 * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
1504 system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads,
1505 system-linux-hppa.ads, system-linux-s390.ads,
1506 system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
1507 system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads,
1508 system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads,
1509 system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads,
1510 system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads,
1511 system-solaris-sparc.ads, system-lynxos-x86.ads,
1512 system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads,
1513 system-solaris-x86_64.ads, system-mingw-x86_64.ads,
1514 system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads,
1515 system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads,
1516 system-vxworks-x86.ads: Remove GCC_ZCX_Support
1517 * s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb,
1518 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto.
1519 * opt.ads: Adjust comment.
1520 * targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target.
1521 * gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target.
1522 * system.ads: Move GCC_ZCX_Support to obsolete entries.
1523
15242011-08-29 Emmanuel Briot <briot@adacore.com>
1525
1526 * makeutl.adb (Do_Complete): Resolve symbolic links when a relative
1527 file name is specified on the gnatmake or gprbuild command line, and
1528 before we search for that file in the project.
1529
15302011-08-29 Ed Schonberg <schonberg@adacore.com>
1531
1532 * sem_type.adb (Within_Instance): New predicate in Collect_Interps,
1533 used to determine whether a possible interpretation for an overloadable
1534 entity is declared within the current instantiation and should be
1535 included in the candidate set.
1536
15372011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
1538
1539 * gnat_rm.texi, gnat_ugn.texi: Clean ups.
1540
97216ca8
ES
15412011-08-29 Ed Schonberg <schonberg@adacore.com>
1542
1543 * sem_res.adb (Resolve_Actuals): Use base type to determine whether an
1544 access subtype is access_to_subprogram, when applying checks for
1545 RM 3.10.2 (27).
1546
d3cb4cc0
AC
15472011-08-29 Matthew Heaney <heaney@adacore.com>
1548
1549 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check
1550 for sibling when common parent.
1551
15522011-08-29 Thomas Quinot <quinot@adacore.com>
1553
1554 * get_scos.adb: Literals of Pragma_Id are pragma names prefixed with
1555 "pragma_".
1556
15572011-08-29 Ed Schonberg <schonberg@adacore.com>
1558
1559 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions
1560 for the return type when in ASIS mode.
1561
15622011-08-29 Vincent Celier <celier@adacore.com>
1563
1564 * make.adb (Gnatmake): Get the default search dirs, then the target
1565 parameters after getting the Builder switches, as the Builder switches
1566 may include --RTS= and that could change the default search dirs.
1567
15682011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1569
1570 * exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of
1571 Make_Final_Call. Move the processing for class-wide types before the
1572 processing for derivations from [Limited_]Controlled.
1573 (Make_Final_Call): Move the processing for class-wide types before the
1574 processing for derivations from [Limited_]Controlled.
1575 * s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.
1576 Add code to account for alignments larger than the list header. Add a
1577 comment illustrating the structure of the allocated object + padding +
1578 header.
1579 (Deallocate_Any_Controlled): Add code to account for alignments larger
1580 than the list header.
1581
15822011-08-29 Ed Schonberg <schonberg@adacore.com>
1583
1584 * sinfo.ads, sinfo.adb: New node kind
1585 N_Formal_Incomplete_Type_Definition, related flags.
1586 par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):
1587 Parse formal incomplete types.
1588 * sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in
1589 sem_ch12.
1590 * sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):
1591 Formal incomplete types do not need completion.
1592 * sem_ch12.adb (Analyze_Formal_Incomplete_Type,
1593 Validate_Incomplete_Type_Instance): New procedures to handle formal
1594 incomplete types.
1595 * freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual
1596 that corresponds to a formal incomplete type.
1597 * sprint.adb: Handle formal incomplete type declarations.
1598 * exp_util.adb (Insert_Actions): An incomplete_type_definition is not
1599 an insertion point.
1600
d3f70b35
AC
16012011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1602
1603 * a-fihema.ads, a-fihema.adb: Unit removed.
1604 * a-undesu.ads, a-undesu.adb: New unit implementing
1605 Ada.Unchecked_Deallocate_Subpool.
1606 * einfo.adb: Remove Associated_Collection from the node usage.
1607 Add Finalization_Master to the node usage.
1608 (Associated_Collection): Removed.
1609 (Finalization_Master): New routine.
1610 (Set_Associated_Collection): Removed.
1611 (Set_Finalization_Master): New routine.
1612 (Write_Field23_Name): Remove Associated_Collection from the output. Add
1613 Finalization_Master to the output.
1614 * einfo.ads: Remove attribute Associated_Collection and its uses in
1615 entities.
1616 Add new attribute Finalization_Master along with its uses in entitites.
1617 (Associated_Collection): Removed along with its pragma import.
1618 (Finalization_Master): New routine along with a pragma import.
1619 (Set_Associated_Collection): Removed along with its pragma import.
1620 (Set_Finalization_Master): New routine along with a pragma import.
1621 * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to
1622 Build_Finalization_Collection with Build_Finalization_Master.
1623 (Expand_Freeze_Record_Type): Move the generation of Finalize_Address
1624 before the bodies of the predefined routines. Add comment explaining
1625 this. Replace call to Build_Finalization_Collection with
1626 Build_Finalization_Master.
1627 (Freeze_Type): Replace call to Build_Finalization_Collection with
1628 Build_Finalization_Master.
1629 (Make_Finalize_Address_Body): Comment reformatting.
1630 (Make_Predefined_Primitive_Specs): Code reformatting.
1631 (Stream_Operation_OK): Update comment mentioning finalization
1632 collections. Replace RE_Finalization_Collection with
1633 RE_Finalization_Master.
1634 * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to
1635 Associated_Collection with Finalization_Master. Replace call to
1636 Build_Finalization_Collection with Build_Finalization_Master.
1637 (Expand_Allocator_Expression): Replace call to Associated_Collection
1638 with Finalization_Master. Replace call to Set_Associated_Collection with
1639 Set_Finalization_Master. Remove the generation of
1640 Set_Finalize_Address_Ptr.
1641 (Expand_N_Allocator): Replace call to Associated_Collection with
1642 Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr.
1643 * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to
1644 Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the
1645 comment on usage. Replace call to Needs_BIP_Collection with
1646 Needs_BIP_Finalization_Master Remplace BIP_Collection with
1647 BIP_Finalization_Master. Update all comments which mention finalization
1648 collections. Replace Associated_Collection with
1649 Finalization_Master. Replace Build_Finalization_Collection with
1650 Build_Finalization_Master.
1651 (BIP_Formal_Suffix): Update BIP_Collection's case.
1652 (Build_Heap_Allocator): Update the related comment. Rename local
1653 variable Collect to Fin_Mas_Id and update its occurrences. Update
1654 comments which mention finalization collections. Replace
1655 Set_Associated_Collection with Set_Finalization_Master.
1656 (Expand_Call): Update the code which detects a special piece of library
1657 code for .NET/JVM.
1658 (Make_Build_In_Place_Call_In_Allocator): Replace the call to
1659 Add_Collection_Actual_To_Build_In_Place_Call with
1660 Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code
1661 which generates a call to Make_Set_Finalize_Address_Ptr_Call.
1662 (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to
1663 Add_Collection_Actual_To_Build_In_Place_Call with
1664 Add_Finalization_Master_Actual_To_Build_In_Place_Call.
1665 (Make_Build_In_Place_Call_In_Assignment): Replace call to
1666 Add_Collection_Actual_To_Build_In_Place_Call with
1667 Add_Finalization_Master_Actual_To_Build_In_Place_Call.
1668 (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
1669 * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master.
1670 (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
1671 * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage.
1672 Rename local variable Collect to Fin_Mas_Id and update its occurrences.
1673 Replace call to Set_Associated_Collection with Set_Finalization_Master.
1674 (Build_Finalization_Collection): Renamed to Build_Finalization_Master.
1675 Replace the call to Associated_Collection with Finalization_Master.
1676 Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences.
1677 Update the way finalization master names are generated. Update the
1678 retrieval of the correct access type which will carry the pool and
1679 master attributes.
1680 (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved.
1681 (Make_Finalize_Address_Body): Abstract types do not need
1682 Finalize_Address. Code reformatting.
1683 (Make_Finalize_Address_Stmts): Update comment on usage.
1684 (Make_Set_Finalize_Address_Ptr_Call): Removed.
1685 (Process_Declarations): Update comments.
1686 * exp_ch7.ads (Build_Finalization_Collection): Renamed to
1687 Build_Finalization_Master. Update associated comment.
1688 (Make_Set_Finalize_Address_Ptr_Call): Removed.
1689 * exp_ch13.adb: Update comments which mention finalization collections.
1690 (Expand_N_Free_Statement): Replace the call to Associated_Collection
1691 with Finalization_Master.
1692 * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to
1693 create calls to routines Allocate_Any_Controlled and
1694 Deallocate_Any_Controlled.
1695 (Find_Finalize_Address): New routine.
1696 (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the
1697 comparison.
1698 (Requires_Cleanup_Actions): Update the comment on freeze node
1699 inspection.
1700 * exp_util.ads: Remove comment on generated code for
1701 Build_Allocate_Deallocate_Proc. The code is now quite complex and it
1702 is better to simply look in the body.
1703 * freeze.adb (Freeze_All): Update the comment of finalization
1704 collections. Replace the call to Associated_Collection with
1705 Finalization_Master. Replace the call to Build_Finalization_Collection
1706 with Build_Finalization_Master.
1707 * impunit.adb: Add a-undesu and s-stposu to the list of units.
1708 * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file
1709 a-fihema.
1710 * rtsfind.adb (Get_Unit_Name): Remove the processing for children of
1711 Ada.Finalization. Add processing for children of System.Storage_Pools.
1712 * rtsfind.ads: Remove the naming of second level children of
1713 Ada.Finalization.
1714 Remove Ada_Finalization_Heap_Management from the list of units.
1715 Remove subtype Ada_Finalization_Child.
1716 Remove the following subprogram entities:
1717
1718 RE_Allocate
1719 RE_Deallocate
1720 RE_Finalization_Collection
1721 RE_Finalization_Collection_Ptr
1722 RE_Set_Finalize_Address_Ptr
1723
1724 Add the naming of second level children of System.Storage_Pools.
1725 Add System_Finalization_Masters and System_Storage_Pools_Subpools to
1726 the list of units.
1727 Add subtype System_Storage_Pools_Child.
1728 Add the following subprogram entities to System.Finalization_Masters:
1729
1730 RE_Finalization_Master
1731 RE_Finalization_Master_Ptr
1732
1733 Add the following subprogram entities to System.Storage_Pools.Subpools:
1734
1735 RE_Allocate_Any_Controlled
1736 RE_Deallocate_Any_Controlled
1737 RE_Root_Storage_Pool_With_Subpools
1738 RE_Root_Subpool
1739 RE_Subpool_Handle
1740
1741 Move the following subprogram entities from
1742 Ada.Finalization.Heap_Management to System.Finalization_Masters:
1743
1744 RE_Add_Offset_To_Address
1745 RE_Attach
1746 RE_Base_Pool
1747 RE_Detach
1748
1749 * sem_ch3.adb (Access_Type_Declaration): Replace the call to
1750 Set_Associated_Collection with Set_Finalization_Master.
1751 * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal
1752 BIP_Finalization_Master is created.
1753 * s-finmas.adb: New unit System.Finalization_Masters.
1754 * s-finmas.ads: New unit System.Finalization_Masters.
1755 * s-stopoo.ads, s-stopoo.adb: Minor code reformatting.
1756 * s-stposu.ads, s-stposu.adb: New unit implementing
1757 System.Storage_Pools.Subpools.
1758
17592011-08-29 Bob Duff <duff@adacore.com>
1760
1761 * tbuild.adb: Add assertion.
1762
8c889ae4
AC
17632011-08-29 Thomas Quinot <quinot@adacore.com>
1764
1765 * s-pooglo.adb: Minor reformatting.
1766
17672011-08-29 Ed Schonberg <schonberg@adacore.com>
1768
1769 * exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is
1770 an indexed component of a packed array whose element type is a record
1771 with a representation clause different from that of the right-hand
1772 side, generate a temporary to minimuze the number of bit-field
1773 operations generated.
1774
17752011-08-29 Ed Schonberg <schonberg@adacore.com>
1776
1777 * exp_util.adb (Insert_Actions): Use clauses can be part of lists of
1778 declarations, and thus are likely insertion points for actions.
1779
17802011-08-29 Bob Duff <duff@adacore.com>
1781
1782 * einfo.ads: Minor comment fix.
1783
1a07a71a
AC
17842011-08-29 Robert Dewar <dewar@adacore.com>
1785
1786 * frontend.adb, gnat1drv.adb: Minor reformatting.
1787
17882011-08-29 Tristan Gingold <gingold@adacore.com>
1789
1790 * s-pooglo.adb (Allocate, Deallocate): Take into account the alignment.
1791 * a-fihema.adb (Allocate, Deallocate): Ditto. Possibly add padding
1792 space in front of the header.
1793
4bcd6411
JK
17942011-08-29 Johannes Kanig <kanig@adacore.com>
1795
1796 * frontend.adb (Frontend): Exit after creating Standard package when
1797 -gnatd.H is present.
1798 * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is
1799 present.
1800
f0f88eb6
RD
18012011-08-29 Robert Dewar <dewar@adacore.com>
1802
1803 * exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,
1804 makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl,
1805 snames.ads-tmpl: Minor reformatting.
1806
3e37be71
PG
18072011-08-29 Philippe Gil <gil@adacore.com>
1808
1809 * prj.adb (Reset_Units_In_Table): New procedure.
1810 Reset units to avoid access to freed memory.
1811
94fb7608
AC
18122011-08-29 Thomas Quinot <quinot@adacore.com>
1813
1814 * get_scos.adb: When reading a P statement SCO without a pragma name
1815 (from an older ALI file), ensure that the Pragma_Name component is set
1816 to Unknown_Pragma (not left uninitialized).
1817
18182011-08-29 Vincent Celier <celier@adacore.com>
1819
1820 * makeutl.adb (Get_Directories): New procedure moved from Buildgpr and
1821 modified to compute correctly the object path of a SAL project that is
1822 extending another library project.
1823 (Write_Path_File): New procedure.
1824 * makeutl.ads (Directories): New table moved from Buildgpr
1825 (Get_Directories): New procedure moved from Buildgpr
1826 (Write_Path_File): New procedure
1827 * mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the
1828 paths before binding SALs, instead of Set_Ada_Paths.
1829 * prj-env.adb (Set_Path_File_Var): Procedure has been moved to package
1830 Prj.
1831 * prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env
1832 (Current_Source_Path_File_Of): New function
1833 (Set_Current_Object_Path_File_Of): New procedure
1834 (Current_Source_Object_File_Of): New function
1835 (Set_Current_Object_Path_File_Of): New procedure
1836 * prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env
1837 (Current_Source_Path_File_Of): New function
1838 (Set_Current_Object_Path_File_Of): New procedure
1839 (Current_Source_Object_File_Of): New function
1840 (Set_Current_Object_Path_File_Of): New procedure
1841
18422011-08-29 Ed Schonberg <schonberg@adacore.com>
1843
1844 * exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a
1845 packed entity, use a bit-field assignment only if there is no change of
1846 representation.
1847
c5ecd6b7
AC
18482011-08-29 Thomas Quinot <quinot@adacore.com>
1849
1850 * rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, use
1851 Is_RTU instead of using Chars comparisons.
1852
18532011-08-29 Thomas Quinot <quinot@adacore.com>
1854
1855 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create a
1856 temporary object if the actual is constrained, and the discriminants
1857 read from the stream don't match.
1858
18592011-08-29 Tristan Gingold <gingold@adacore.com>
1860
1861 * sem_attr.adb, exp_attr.adb: Add handling of
1862 Attribute_System_Allocator_Alignment
1863 * snames.ads-tmpl: Add Name_System_Allocator_Alignment and
1864 Attribute_System_Allocator_Alignment.
1865 * ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment.
1866 * gcc-interface/targtyps.c, gcc-interface/utils2.c,
1867 gcc-interface/gigi.h: Renames get_target_default_allocator_alignment to
1868 get_target_system_allocator_alignment.
1869
18702011-08-29 Arnaud Charlet <charlet@adacore.com>
1871
1872 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
1873 dependencies.
1874
8abdac29
AC
18752011-08-29 Arnaud Charlet <charlet@adacore.com>
1876
1877 * exp_ch3.adb (In_Runtime): Fix typo.
1878
df170605
AC
18792011-08-29 Bob Duff <duff@adacore.com>
1880
1881 * sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification.
1882
18832011-08-29 Ed Schonberg <schonberg@adacore.com>
1884
1885 * exp_ch3.adb (Expand_N_Object_Declaration): If the entity is tagged
1886 and a separate tag assignment is generated, ensure that the tag
1887 assignment is analyzed.
1888
864a4236
ES
18892011-08-29 Ed Schonberg <schonberg@adacore.com>
1890
1891 * atree.ads, atree.adb (Copy_Separate_List): New function that applies
1892 Copy_Separate_Tree to a list of nodes. Used to create disjoint copies
1893 of statement lists that may contain local declarations.
df170605
AC
1894 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use Copy_Separate_List to
1895 duplicate the triggering statements needed for the expansion of this
1896 construct, when the trigger is a dispatching call to a synchronized
1897 primitive.
864a4236 1898
7f394c1d
AC
18992011-08-29 Arnaud Charlet <charlet@adacore.com>
1900
1901 * gnat_rm.texi: Add doc for 'Elab_Subp_Body.
1902 * bindgen.adb: Add comments.
1903 * snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Body
1904 in CodePeer mode.
1905
2c1a2cf3
RD
19062011-08-29 Robert Dewar <dewar@adacore.com>
1907
1908 * exp_attr.adb: Minor reformatting.
1909 Minor code reorganization and commenting.
1910 * par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minor
1911 reformatting.
1912
0bfc9a64
AC
19132011-08-29 Thomas Quinot <quinot@adacore.com>
1914
1915 * get_scos.adb: Ignore chaining indicators not currently supported
1916 by Ada.
1917
19182011-08-29 Arnaud Charlet <charlet@adacore.com>
1919
1920 * system.ads: Minor editing.
1921
19222011-08-29 Arnaud Charlet <charlet@adacore.com>
1923
1924 * bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in
1925 CodePeer mode.
1926 * sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of
1927 Attribute_Elab_Subp_Body.
1928 * snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New.
1929 * sem_util.adb: Update comments.
1930
828d4cf0
TQ
19312011-08-29 Thomas Quinot <quinot@adacore.com>
1932
1933 * par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record
1934 pragma name for each SCO statement corresponding to a pragma.
1935
5cd7bb15
AC
19362011-08-29 Arnaud Charlet <charlet@adacore.com>
1937
1938 * opt.ads: Minor editing.
1939
19402011-08-29 Yannick Moy <moy@adacore.com>
1941
1942 * gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode
1943 that only made sense for CodePeer mode.
1944
19452011-08-29 Jose Ruiz <ruiz@adacore.com>
1946
1947 * targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag
1948 which is no longer used.
1949 * targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the
1950 handling of the 64-bit division check.
1951 * exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit
1952 division available.
1953 * system*.ads (Support_64_Bit_Divides): Remove this flag which is no
1954 longer used.
1955
19562011-08-29 Thomas Quinot <quinot@adacore.com>
1957
1958 * get_scos.adb: Minor reformatting.
1959
25b589cb
AC
19602011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1961
1962 * exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a
1963 statement list is wrapped in a block, the block is explicitly analyzed
1964 in order to properly redecorate the entities and create a servicing
1965 finalizer.
1966
19672011-08-29 Tristan Gingold <gingold@adacore.com>
1968
1969 * sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove.
1970 (Set_Zero_Cost_Handling): Remove.
1971
19722011-08-29 Thomas Quinot <quinot@adacore.com>
1973
1974 * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting
1975
1197ddb1
AC
19762011-08-29 Geert Bosch <bosch@adacore.com>
1977
1978 * s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation
1979 instruction, as the latter may produce -0.0, which is not a valid VAX
1980 F float number.
1981 (Neg_G): Likewise for VAX F float.
1982
19832011-08-29 Robert Dewar <dewar@adacore.com>
1984
1985 * exp_util.adb: Minor reformatting.
1986
19872011-08-29 Yannick Moy <moy@adacore.com>
1988
1989 * sem_ch3.adb: Minor comment update.
1990
19912011-08-29 Thomas Quinot <quinot@adacore.com>
1992
1993 * checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of
1994 the operand type.
1995
19962011-08-29 Thomas Quinot <quinot@adacore.com>
1997
1998 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush
1999 current statement sequence on a generic instantiation or a subprogram
2000 declaration.
2001
8f66cda7
AC
20022011-08-29 Robert Dewar <dewar@adacore.com>
2003
2004 * sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:
2005 Minor reformatting.
2006
20072011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
2008
2009 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
2010 Correct the check which involves the freeze node of a controlled or
2011 access-to-controlled type.
2012
20132011-08-29 Geert Bosch <bosch@adacore.com>
2014
2015 * sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm
2016 statements.
2017 * s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from
2018 Asm statements.
2019
cf161d66
AC
20202011-08-29 Yannick Moy <moy@adacore.com>
2021
2022 * sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration
2023 for every index type and component type that is not a subtype_mark.
2024 (Process_Subtype): Set Etype of subtype.
2025
20262011-08-29 Robert Dewar <dewar@adacore.com>
2027
2028 * a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code
2029 reorganization. Minor reformatting.
2030
7cc83cd8
AC
20312011-08-29 Steve Baird <baird@adacore.com>
2032
2033 * exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion
2034 for CodePeer and ALFA modes.
2035
20362011-08-29 Ed Schonberg <schonberg@adacore.com>
2037
2038 * sem_type.adb (Collect_Interps): Within an instance, collect a homonym
2039 that comes from an enclosing scope if it is not the renaming of an
2040 actual, to handle properly a spurious ambiguity in an instance.
2041
76af4137
AC
20422011-08-29 Eric Botcazou <ebotcazou@adacore.com>
2043
2044 * sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to...
2045 (Alignment_Check_For_Size_Change): ...this. Add SIZE parameter and
2046 use it instead of the Esize of the first parameter.
2047 (Analyze_Attribute_Definition_Clause) <Object_Size>: Adjust call to
2048 above change.
2049 <Size>: Likewise. Call it for composite types on the RM size.
2050
20512011-08-29 Yannick Moy <moy@adacore.com>
2052
2053 * exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array.
2054 * sem_util.adb (Unique_Name): Correct behaviour for names of
2055 compilation units.
2056
9b20e59b
AC
20572011-08-29 Yannick Moy <moy@adacore.com>
2058
2059 * sem_prag.adb (Check_Precondition_Postcondition): In formal
2060 verification mode, analyze pragma expression for correctness, for
2061 pre/post on library-level subprogram, as it is not expanded later.
2062
20632011-08-29 Yannick Moy <moy@adacore.com>
2064
2065 * exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates
2066 in formal verification.
2067
20682011-08-29 Thomas Quinot <quinot@adacore.com>
2069
2070 * sem_util.adb: Minor reformatting.
2071 * freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute,
2072 there's no pragma.
2073 * par_sco.ads, par_sco.adb: Update comments.
2074
20752011-08-29 Yannick Moy <moy@adacore.com>
2076
2077 * einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and
2078 associated getter/setter.
2079 * sem_ch6.adb: Remove reference to Is_Postcondition_Proc.
2080
20812011-08-29 Vincent Celier <celier@adacore.com>
2082
2083 * prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind
2084 * prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler
2085 with declarations for Language_Kind and Dependency_Kind for Ada.
2086 * prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name
2087 (Process_Compiler): Take into account the new attributes Dependency_Kind
2088 and Language_Kind.
2089 (Check_Configuration): Check if language kind is unit based, not if the
2090 language name is Ada.
2091 (Process_Exceptions_Unit_Based): Ditto
2092 (Add_Language): Remove default additions of language and dependency kind
2093 * prj.ads: Minor comment change
2094 * snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind
2095
20962011-08-29 Johannes Kanig <kanig@adacore.com>
2097
2098 * debug.adb: Update comments.
2099
c5bc3df6
JM
21002011-08-24 Joseph Myers <joseph@codesourcery.com>
2101
2102 * gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)
2103 (CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)
2104 (CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.
2105 (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)
2106 (ada/initialize.o, ada/raise.o): Remove explicit compilation rules.
2107
e3aa9eba
RO
21082011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2109
2110 * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
2111 (GNATLIBCFLAGS_FOR_C): Replace
2112 TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
2113 (gnatlib-shared-default, gnatlib-shared-dual-win32)
2114 (gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
2115 (gnatlib-sjlj, gnatlib-zcx): Likewise.
2116
f446d60e
EB
21172011-08-07 Eric Botcazou <ebotcazou@adacore.com>
2118
2119 * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.
2120
588c8f48
EB
2121 * gcc-interface/gigi.h (enumerate_modes): Fix formatting.
2122
2123 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change.
2124
28d711bf
NR
21252011-08-05 Nicolas Roche <roche@adacore.com>
2126
2127 * gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared
2128 libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with
2129 canadian cross.
2130 * gcc-interface/Make-lang.in: Add support for canadian cross setting.
2131
993f8920
AC
21322011-08-05 Matthew Heaney <heaney@adacore.com>
2133
2134 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth):
2135 subprogram bodies declared out-of-order.
2136
21372011-08-05 Yannick Moy <moy@adacore.com>
2138
2139 * sem_util.adb (Unique_Name): only prefix with "standard" the names of
2140 entities directly in package Standard, otherwise skip the standard
2141 prefix.
2142
9b3956dd
RD
21432011-08-05 Robert Dewar <dewar@adacore.com>
2144
2145 * a-cbmutr.adb: Minor reformatting
2146 (Allocate_Node): refactor node allocation algorithm
2147
21482011-08-05 Robert Dewar <dewar@adacore.com>
2149
2150 * opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch.
2151 * sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable
2152 mode.
2153 (Analyze_Pragma, case Check_Policy): Ditto.
2154 * sem_prag.ads (Check_Disabled): New function
2155 * snames.ads-tmpl: Add Name_Disable.
2156
21572011-08-05 Robert Dewar <dewar@adacore.com>
2158
2159 * gnat_rm.texi: Document implementation-defined policy DISABLE for
2160 pragmas Assertion_Policy, Check_Policy, Debug_Policy.
2161
79e705d6
AC
21622011-08-05 Ed Schonberg <schonberg@adacore.com>
2163
2164 * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
2165 that appears in a generic formal part and applies to a formal
2166 subprogram.
2167
21682011-08-05 Robert Dewar <dewar@adacore.com>
2169
2170 * a-cbmutr.ads: Minor reformatting.
2171
23b6deca
AC
21722011-08-05 Matthew Heaney <heaney@adacore.com>
2173
2174 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
2175 to check count, check sign of value instead.
2176 * a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty
2177 (Copy_Subtree): allocate copy of source element
2178 (Equal_Subtree): compare elements, not access objects
2179
21802011-08-05 Vincent Celier <celier@adacore.com>
2181
2182 * gnat_ugn.texi: Fix VMS alternative.
2183
a2773bd3
AC
21842011-08-05 Thomas Quinot <quinot@adacore.com>
2185
2186 * sem_ch11.adb: Add comment.
2187
21882011-08-05 Robert Dewar <dewar@adacore.com>
2189
2190 * exp_util.adb: Minor comment fix.
2191
21922011-08-05 Robert Dewar <dewar@adacore.com>
2193
2194 * scng.adb (Error_Unterminated_String): Improve flag position when
2195 comma present.
2196
21972011-08-05 Matthew Heaney <heaney@adacore.com>
2198
2199 * Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway
2200 tree containers).
2201 * a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded
2202 multiway tree containers.
2203
22042011-08-05 Robert Dewar <dewar@adacore.com>
2205
2206 * styleg.adb (Check_Comment): Implement comment spacing of 1 or 2
2207 * stylesw.adb: Implement -gnatyC to control comment spacing
2208 * stylesw.ads (Style_Check_Comments_Spacing): New switch (set by
2209 -gnatyc/C).
2210 * usage.adb: Add line for -gnatyC.
2211
22122011-08-05 Robert Dewar <dewar@adacore.com>
2213
f446d60e 2214 * gnat_ugn.texi: Document -gnatyC.
a2773bd3
AC
2215 * vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a
2216 synonym for COMMENTS2).
2217
dedac3eb
RD
22182011-08-05 Robert Dewar <dewar@adacore.com>
2219
2220 * par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb,
2221 a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb,
2222 sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb,
2223 a-comutr.ads, lib-xref.adb: Minor reformatting.
2224
22252011-08-05 Robert Dewar <dewar@adacore.com>
2226
2227 * sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal
2228 warning if there is an exception handler present.
2229
7c62a85a
AC
22302011-08-05 Pascal Obry <obry@adacore.com>
2231
2232 * a-iteint.ads: Fix copyright year.
2233
22342011-08-05 Thomas Quinot <quinot@adacore.com>
2235
2236 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a
2237 statement SCO for a USE clause or a representation clause.
2238
22392011-08-05 Yannick Moy <moy@adacore.com>
2240
2241 * lib-xref-alfa.adb (Collect_ALFA): generate the proper relation
2242 between body and spec for stub.
2243 (Detect_And_Add_ALFA_Scope): take into account subprogram stub
2244 * lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a
2245 pragma precondition or postcondition, for which the enclosing
2246 subprogram or package in the AST is not the desired one, return empty.
2247
e49208a9
AC
22482011-08-05 Thomas Quinot <quinot@adacore.com>
2249
2250 * g-expect.adb: Minor reformatting.
2251
22522011-08-05 Bob Duff <duff@adacore.com>
2253
2254 * a-fihema.adb: Comment out OS_Lib.
2255
22562011-08-05 Matthew Heaney <heaney@adacore.com>
2257
2258 * Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb]
2259 (unbounded multiway tree containers) and a-iteint.ads.
2260 * a-comutr.ads, a-comutr.adb:
2261 This is the new Ada 2012 unit for unbounded multiway tree containers
2262 * a-cimutr.ads, a-cimutr.adb
2263 This is the new Ada 2012 unit for indefinite multiway tree containers
2264 * a-iteint.ads: New file.
2265
201cdb74
RO
22662011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2267
f446d60e 2268 * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc.
201cdb74 2269
d50f4827
AC
22702011-08-05 Bob Duff <duff@adacore.com>
2271
2272 * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for
2273 subpools.
2274 * par-ch4.adb (P_Allocator): Parse new subpool specification syntax.
2275
22762011-08-05 Ed Schonberg <schonberg@adacore.com>
2277
2278 * sem_ch4.adb (Try_Container_Indexing): New procedure to implement the
2279 general indexing aspects of Ada2012. Called when analyzing indexed
2280 components when other interpretations fail.
2281 * sem_ch8.adb (Find_Direct_Name): check for implicit dereference only
2282 in an expression context where overloading is meaningful. This excludes
2283 the occurrence in an aspect specification (efficiency only).
2284 * sem_attr.adb (Analyze_Attribute): indicate that the attributes
2285 related to iterators can be set by an attribute specification, but
2286 cannot be queried.
2287 * sem_ch13.adb (Analyze_Aspect_Specifications): handle
2288 Constant_Indexing and Variable_Indexing.
2289 (Check_Indexing_Functions): New procedure to perform legality checks.
2290 Additional semantic checks at end of declarations.
2291
efe05dfc
AC
22922011-08-05 Sergey Rybin <rybin@adacore.com>
2293
2294 * tree_io.ads: Update ASIS_Version_Number because of the change of the
2295 order of calling Tree_Write/Tree_Read routines made for aspects.
2296
22972011-08-05 Bob Duff <duff@adacore.com>
2298
2299 * a-fihema.adb (Finalize): Fix race condition.
2300
5f9cdefe
AC
23012011-08-05 Yannick Moy <moy@adacore.com>
2302
2303 * sem_ch12.adb (Analyze_Package_Instantiation,
2304 Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
2305 mode.
2306
23072011-08-05 Ed Schonberg <schonberg@adacore.com>
2308
2309 * sem_type.adb (Specific_Type): in an instance, the type-specific
2310 operand of an equality check that involves null may have a private
2311 type. Use full view to determine legality of construct.
2312
822868aa
AC
23132011-08-05 Vincent Celier <celier@adacore.com>
2314
2315 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
2316 delete or close the file when the call to gnatmake was successful.
2317
23182011-08-05 Yannick Moy <moy@adacore.com>
2319
2320 * gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set
2321 Global_Discard_Names.
2322
23232011-08-05 Ed Schonberg <schonberg@adacore.com>
2324
2325 * sinfo.ads: comments on use of entity field for aspect specifications.
2326
23272011-08-05 Ed Schonberg <schonberg@adacore.com>
2328
2329 * sem_ch12.adb (Reset_Entity): If the entity field of the associated
2330 node is not itself an entity but a selected component, it is a
2331 rewritten parameterless call to an en enclosing synchronized operation,
2332 and this expansion will be performed again in the instance, so there is
2333 no global information to preserve.
2334
44a10091
AC
23352011-08-05 Javier Miranda <miranda@adacore.com>
2336
2337 * exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support
2338 for renamings of predefined primitives.
2339 (In_Predef_Prims_DT): New subprogram.
2340
23412011-08-05 Ed Schonberg <schonberg@adacore.com>
2342
2343 * sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a
2344 possible interpretation of name is a reference type, add an
2345 interpretation that is the designated type of the reference
2346 discriminant of that type.
2347 * sem_res.adb (resolve): If the interpretation imposed by context is an
2348 implicit dereference, rewrite the node as the deference of the
2349 reference discriminant.
2350 * sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,
2351 Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from
2352 parent type or base type.
2353 * sem_ch4.adb (Process_Indexed_Component,
2354 Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,
2355 Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):
2356 Check for implicit dereference.
2357 (List_Operand_Interps): Indicate when an implicit dereference is
2358 ambiguous.
2359 * sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.
2360
23612011-08-05 Thomas Quinot <quinot@adacore.com>
2362
2363 * scos.ads: Update documentation of SCO table. Pragma statements can now
2364 be marked as disabled (using 'p' instead of 'P' as the statement kind).
2365 * par_sco.ads, par_sco.adb: Implement the above change.
2366 (Process_Decisions_Defer): Generate a P decision for the first parameter
2367 of a dyadic pragma Debug.
2368 * sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if
2369 necessary.
2370 * put_scos.adb: Code simplification based on above change.
2371
bb3c784c
AC
23722011-08-05 Robert Dewar <dewar@adacore.com>
2373
2374 * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb,
2375 bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb,
2376 a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads,
2377 prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting
2378
23792011-08-05 Bob Duff <duff@adacore.com>
2380
2381 * a-stunau.ads, g-spipat.adb: Update comments.
2382
36f686f9
BD
23832011-08-05 Bob Duff <duff@adacore.com>
2384
2385 * a-fihema.ads: Minor comment fix.
2386 * a-fihema.adb (Allocate, Deallocate): Assert that the alignment is
2387 correct.
2388 (Attach, Detach): Remove some unnecessary code.
2389 (Finalize): Remove Node_Ptr_To_Address, replace with a constant.
2390
7882673f
BD
23912011-08-05 Bob Duff <duff@adacore.com>
2392
2393 * a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap
2394 allocation for Objects component. This simplifies the code somewhat. It
2395 is also a little more efficient in the not-so-unusual case where there
2396 are no controlled objects allocated.
2397 Make Finalization_Started flag atomic.
2398 (Finalize): Avoid unnecessary detachment of items from the list.
2399 (pcol): Minor cleanup.
2400
d34cd274
AC
24012011-08-05 Ed Schonberg <schonberg@adacore.com>
2402
2403 * sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal
2404 package whose name is the same as that of the generic unit, or its
2405 ultimate prefix.
2406
24072011-08-05 Bob Duff <duff@adacore.com>
2408
2409 * a-fihema.adb, a-fihema.ads: Minor comment improvements.
2410 * sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:
2411 Minor comment fixes.
2412
00332244
AC
24132011-08-05 Arnaud Charlet <charlet@adacore.com>
2414
2415 * make.adb (Linking_Phase): No longer need to set source search path
2416 before calling gnatlink in CodePeer mode.
2417 * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to
2418 gcc in CodePeer mode, since the binder generated file no longer has a
2419 'with Main'.
2420 * switch.ads, switch.adb (Is_Language_Switch): Removed.
2421 * switch-c.adb: Update comment.
2422
24232011-08-05 Thomas Quinot <quinot@adacore.com>
2424
2425 * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.
2426
24272011-08-05 Nicolas Roche <roche@adacore.com>
2428
2429 * gnat_ugn.texi: Fix minor syntax error issue.
2430
24312011-08-05 Vincent Celier <celier@adacore.com>
2432
2433 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
2434 delete or close the file when the call to gnatmake returns a non
2435 successful return code.
2436
24372011-08-05 Ed Schonberg <schonberg@adacore.com>
2438
2439 * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate
2440 check, indicate that the copy of the original node does not come from
2441 source, to prevent an infinite recursion of the expansion.
2442
24432011-08-05 Johannes Kanig <kanig@adacore.com>
2444
2445 * debug.adb: document switch -gnatd.G for gnat2why, which deactivates
2446 VC generation for subprogram bodies.
2447
24482011-08-05 Yannick Moy <moy@adacore.com>
2449
2450 * einfo.ads: Typo.
2451 * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define
2452 the base type with the smallest allowed base type.
2453
24542011-08-05 Sergey Rybin <rybin@adacore.com>
2455
2456 * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for
2457 aspects.
2458
24592011-08-05 Ed Schonberg <schonberg@adacore.com>
2460
2461 * sem_ch12.ads: minor comment updates.
2462
24632011-08-05 Ed Schonberg <schonberg@adacore.com>
2464
2465 * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an
2466 instantiation and a formal package the compiler generates a package
2467 renaming declaration so that the generic name within the declaration
2468 is interpreted as a renaming of the instance. At the end of a formal
2469 package declaration, this renaming must become invisible.
2470
0da80d7d
AC
24712011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
2472
2473 * exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character
2474 comparison and rely on concrete entities instead.
2475
24762011-08-05 Ed Schonberg <schonberg@adacore.com>
2477
2478 * einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types
2479 and discriminants, to indicate that the type has an access discriminant
2480 that supports implicit dereference.
2481 * snames.ads-tmpl: Add names of aspects and attributes related to
2482 Ada2012 iterators: constant_indexing, default_iterator,
2483 iterator_element, implicit_dereference, variable_indexing.
2484 * aspects.ads, aspects.adb: entries for iterator-related aspects.
2485 * sem_ch13.adb (Analyze_aspect_specifications): dummy entries for
2486 iterator-related aspects.
2487 * sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.
2488
24892011-08-05 Sergey Rybin <rybin@adacore.com>
2490
2491 * gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling
2492 metrics in gnatmetric to cover new kinds of coupling mentrics.
2493
24942011-08-05 Steve Baird <baird@adacore.com>
2495
2496 * bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead
2c7f9cc0 2497 of calling the user-defined main subprogram.
0da80d7d
AC
2498 (Gen_Main): Declare Ada_Main_Program and (if CodePeer_Mode
2499 is set) Call_Main_Subprogram ahead of, as opposed to
2500 inside of, Main.
2501 (Gen_Output_File_Ada): Remove CodePeer_Mode-conditional
2502 generation of a "with" of the user-defined main subprogram.
2503 Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper
2504 (which is now called from Gen_Main instead).
2505
73242473
AC
25062011-08-05 Emmanuel Briot <briot@adacore.com>
2507
2508 * projects.texi: Added reference to the Makefile package.
2509
25102011-08-05 Thomas Quinot <quinot@adacore.com>
2511
2512 * exp_ch7.adb: Minor comment rewording.
2513
25142011-08-05 Ed Falis <falis@adacore.com>
2515
2516 * env.c: Fix comment.
2517
25182011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
2519
2520 * sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid
2521 character comparison and rely on concrete entities instead.
2522
97ed5872
AC
25232011-08-05 Ed Schonberg <schonberg@adacore.com>
2524
2525 * sem_ch3.adb: (Check_Private_Overriding): better error message,
2526 suggested by AI95-0068.
2527
25282011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
2529
2530 * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve
2531 the two potential initialization calls. This accounts for any
2532 access-before-elaboration checks which may precede the initialization
2533 calls.
2534 (Next_Suitable_Statement): New routine. Returns the next real statement
2535 after the input node while skipping generated checks.
2536 * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along
2537 with comment on usage.
2538 Do not generate Elaborate_All when the trigger is a finalization call
2539 coming from a type init proc.
2540 (Check_Elab_Call): Propagate the initialization procedure context to
2541 subsequent calls to Check_A_Call.
2542 (Check_Internal_Call_Continue): Propagate the initialization procedure
2543 context to subsequent calls to Check_Elab_Call.
2544 (Is_Finalization_Procedure): New routine. Returns True if the input
2545 entity denotes a [Deep_]Finalize routine.
2546 * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc
2547 along with comment on usage.
2548
25492011-08-05 Vadim Godunko <godunko@adacore.com>
2550
2551 * s-atocou.ads: Add list of supported platforms.
2552
25532011-08-05 Yannick Moy <moy@adacore.com>
2554
2555 * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables
2556
2557 * opt.ads (Disable_ALI_File): new Boolean flag
2558 * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing
2559
25602011-08-05 Ed Falis <falis@adacore.com>
2561
2562 * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that
2563 environ is properly defined.
2564
25652011-08-05 Vincent Celier <celier@adacore.com>
2566
2567 * make.adb (Compilation_Phase): Exit immediately when all objects have
2568 been found up to date, to avoid multiple exit messages.
2569 * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the
2570 same project for languages with no compiler.
2571 * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch
2572 -eI.
9aff36e9
RD
25732011-08-05 Robert Dewar <dewar@adacore.com>
2574
2575 * exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb,
2576 sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb,
2577 prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb,
2578 s-atocou-builtin.adb: Minor reformatting.
2579
406935b6
AC
25802011-08-05 Yannick Moy <moy@adacore.com>
2581
2582 * exp_ch7.adb (Establish_Transient_Scope): in formal verification mode,
2583 if the node to wrap is a pragma check, this node and enclosed
2584 expression are not expanded, so do not apply any transformations here.
2585 * exp_prag.adb (Expand_Pragma_Check): document the need to avoid
2586 introducing transient scopes.
2587
25882011-08-05 Jose Ruiz <ruiz@adacore.com>
2589
2590 * adaint.c (__gnat_set_writable, __gnat_set_readable,
2591 __gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable,
2592 __gnat_copy_attribs): On VxWorks 6.x and later, the required chmod
2593 routine is available, so we use the default implementation of these
2594 functions.
2595 * s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is
2596 support for copying attributes on VxWorks 6.
2597
25982011-08-05 Yannick Moy <moy@adacore.com>
2599
2600 * debug.adb: Remove use of -gnatd.D.
2601 * gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode
2602 * opt.ads: Simplify variables for ALFA mode, to keep one only
2603 * restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode
2604 to ALFA mode.
2605
26062011-08-05 Vincent Celier <celier@adacore.com>
2607
2608 * prj-conf.adb (Do_Autoconf): Look also for --RTS in
2609 Builder'Default_Switches.
2610
26112011-08-05 Vincent Celier <celier@adacore.com>
2612
2613 * makeusg.adb: Add lines for --create-map-file switches.
2614
26152011-08-05 Ed Schonberg <schonberg@adacore.com>
2616
2617 * freeze.adb (Freeze_Entity): For a subprogram, if a type in the
2618 profile is incomplete and the full view is available, replace it with
2619 the full view.
2620 * sem_ch6.adb (Possible_Freeze): if a type in the profile is
2621 incomplete, freezing the subprogram is delayed until the full view is
2622 frozen.
2623 * sem_type.adb (Disambiguate): an ambiguity between a user-defined
2624 fixed-point multiplication operator and the predefined operator is
2625 resolved in favor of the user-defined one.
2626
96c891b3
RO
26272011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2628
2629 * init.c [__alpha__ && __osf__] (__gnat_error_handler): Use
2630 CONST_CAST.
2631
276e7ed0
AC
26322011-08-04 Ed Schonberg <schonberg@adacore.com>
2633
2634 * sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine
2635 whether a type lacks user-defined Read or Write operations, or has a
2636 component that lacks them.
2637 * sem_attr.adb (Check_Stream_Attribute): if restriction
2638 No_Default_Stream_Attributes is active, verify that all subcomponent
2639 types of the target have user-defined stream operations, and report
2640 error otherwise.
2641 * exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation.
2642 * exp_strm.adb: Build_Elementary_Input_Call,
2643 Build_Elementary_Write_Call): remove checks for restriction
2644 No_Default_Stream_Attributes, now checked in semantics.
2645
26462011-08-04 Vincent Celier <celier@adacore.com>
2647
2648 * prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS
2649 switches on the command line, look for all valid --RTS switches in the
2650 Builder switches and for each language use the first runtime name found
2651 to invoke gprconfig.
2652 (Get_Or_Create_Configuration_File): Warn if --RTS is specified on the
2653 command line and there is no auto-configuration.
2654 (Runtime_Name_Set_For): New function.
2655
26562011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2657
2658 * exp_ch7.adb (Build_Object_Declarations): Do not generate the
2659 elaborate initialization expression for variable Abort when processing
2660 a package body or a declaration.
2661 (Create_Finalizer): Propagate the package context when creating the
2662 exception-related variables.
2663 * exp_ch7.ads (Build_Object_Declarations): New formal parameter
2664 For_Package along with usage comment.
2665
19172ae9
AC
26662011-08-04 Arnaud Charlet <charlet@adacore.com>
2667
2668 * gcc-interface/Makefile.in: Clean up targets.
2669 Enable new package for atomic counters and copy-on-write implementation
2670 of unbounded strings on x86 platforms.
2671 * gcc-interface/Make-lang.in: Update dependencies.
2672
0319cacc
AC
26732011-08-04 Robert Dewar <dewar@adacore.com>
2674
2675 * exp_ch7.adb: Minor reformatting.
2676
26772011-08-04 Robert Dewar <dewar@adacore.com>
2678
2679 * exp_strm.adb: Minor reformatting.
2680
26812011-08-04 Vadim Godunko <godunko@adacore.com>
2682
2683 * s-atocou.adb: Replace by dummy version and use on targets where atomic
2684 operations are not supported.
2685 * s-atocou-builtin.adb: Renamed from s-atocou.adb.
2686 * s-atocou-x86.adb: New file.
2687 * Makefile.rtl: Add s-atocou.o file
2688
26892011-08-04 Arnaud Charlet <charlet@adacore.com>
2690
2691 * make.adb (Compile): Move setting of CodePeer_Mode to ...
2692 (Compilation_Phase): ... here.
2693 (Scan_Make_Arg): Now bind and link by default in CodePeer mode.
2694
26952011-08-04 Thomas Quinot <quinot@adacore.com>
2696
2697 * Make-generated.in: Fix minor typo in comment.
2698
26e7e1a0
AC
26992011-08-04 Thomas Quinot <quinot@adacore.com>
2700
2701 * gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve
2702 the project path.
2703
27042011-08-04 Robert Dewar <dewar@adacore.com>
2705
2706 * a-coinho.adb: Minor reformatting.
2707
27082011-08-04 Robert Dewar <dewar@adacore.com>
2709
2710 * a-coinho.ads: Minor reformatting.
2711
27122011-08-04 Vadim Godunko <godunko@adacore.com>
2713
2714 * s-atocou.ads, s-atocou.adb: New files.
2715 * a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads,
2716 a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove
2717 direct use of GCC's atomic builtins and replace them by use of new
2718 atomic counter package.
2719
27202011-08-04 Ed Schonberg <schonberg@adacore.com>
2721
2722 * exp_strm.adb: better error message for No_Default_Stream_Attributes.
2723
27242011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2725
2726 * a-tags.adb (Unregister_Tag): Replace the complex address arithmetic
2727 with a call to Get_External_Tag.
2728 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on
2729 subprogram usage. Remove the guard against package declarations and
2730 bodies since Build_Cleanup_Statements is no longer invoked in that
2731 context.
2732 (Build_Components): Initialize Tagged_Type_Stmts when the context
2733 contains at least one library-level tagged type.
2734 (Build_Finalizer): New local variables Has_Tagged_Types and
2735 Tagged_Type_Stmts along with associated comments on usage. Update the
2736 logic to include tagged type processing.
2737 (Create_Finalizer): Insert all library-level tagged type unregistration
2738 code before the jump block circuitry.
2739 (Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements.
2740 (Expand_N_Package_Declaration): Remove the call to
2741 Build_Cleanup_Statements.
2742 (Process_Tagged_Type_Declaration): New routine. Generate a call to
2743 unregister the external tag of a tagged type.
2744 (Processing_Actions): Reimplemented to handle tagged types.
2745 (Process_Declarations): Detect the declaration of a library-level
2746 tagged type and carry out the appropriate actions.
2747 (Unregister_Tagged_Types): Removed. The machinery has been directly
2748 merged with Build_Finalizer.
2749
7483c888
AC
27502011-08-04 Robert Dewar <dewar@adacore.com>
2751
2752 * bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb,
2753 gnatls.adb, exp_ch3.adb: Minor reformatting.
2754
27552011-08-04 Marc Sango <sango@adacore.com>
2756
2757 * sem_attr.adb (Analyze_Attribute): Replace the message
2758 "invisible attribute of}" of the spark restriction violation in
2759 attribute reference by the simple message "invisible attribute of type".
2760 Indeed, the node value Error_Msg_Node_1 used is in conflit with the
2761 two insertion characters: '&' and '}'.
2762
27632011-08-04 Vadim Godunko <godunko@adacore.com>
2764
2765 * impunit.adb (Non_Imp_File_Names_12): Add "a-coinho".
2766 * a-coinho.ads, a-coinho.adb: New file.
2767 * Makefile.rtl: Add Ada.Containers.Indefinite_Holders.
2768
5207696c
AC
27692011-08-04 Nicolas Roche <roche@adacore.com>
2770
2771 * alfa_test.adb: Not all ali files are containing alfa information even
2772 if compiled with -gnatd.F. So suppress warning about missing ALFA
2773 information.
2774
27752011-08-04 Yannick Moy <moy@adacore.com>
2776
2777 * lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for
2778 scope.
2779 * put_alfa.adb: Check that scope name is not empty.
2780
27812011-08-04 Ed Schonberg <schonberg@adacore.com>
2782
2783 * exp_ch3.adb (Stream_Operation_Ok): new predicate
2784 Needs_Elementary_Stream_Operation, to determine whether user-defined
2785 Read and Write attributes are available for the elementary components
2786 of the given type. If only the predefined attributes are available,
2787 then when restriction No_Default_Stream_Attributes is active the
2788 predefined stream attributes for the composite type cannot be created.
2789
27902011-08-04 Robert Dewar <dewar@adacore.com>
2791
2792 * bindgen.adb: Fix obsolete comments and names from Ada/C days.
2793 Put routines in alpha order
2794
2bd2d858
JR
27952011-08-04 Jose Ruiz <ruiz@adacore.com>
2796
2797 * gcc-interface/Makefile.in: Remove xenomai specific versions of system.
2798 * gcc-interface/Make-lang.in: Update dependencies.
2799
8fae6016
AC
28002011-08-04 Arnaud Charlet <charlet@adacore.com>
2801
2802 * gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada.
2803 * gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls
2804 gnat1why).
2805
a54d0eb4
AC
28062011-08-04 Robert Dewar <dewar@adacore.com>
2807
2808 * sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb,
2809 lib-xref-alfa.adb: Minor reformatting.
2810
28112011-08-04 Marc Sango <sango@adacore.com>
2812
2813 * sem_ch12.adb (Analyze_Generic_Package_Declaration,
2814 Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,
2815 Analyze_Subprogram_Instantiation): Check absence of generic in SPARK
2816 mode.
2817
28182011-08-04 Tristan Gingold <gingold@adacore.com>
2819
2820 * bindgen.adb (Gen_Adainit_C): Remove.
2821 (Gen_Adafinal_C): Ditto.
2822 (Gen_Elab_Externals_C): Ditto.
2823 (Gen_Elab_Calls_C): Ditto.
2824 (Gen_Elab_Order_C): Ditto.
2825 (Gen_Elab_Defs_C): Ditto.
2826 (Gen_Finalize_Library_C): Ditto.
2827 (Gen_Finalize_Library_Defs_C): Ditto.
2828 (Gen_Main_C): Ditto.
2829 (Gen_Output_File_C): Ditto.
2830 (Gen_Restrictions_C): Ditto.
2831 (Gen_Versions_C): Ditto.
2832 (Write_Info_Ada_C): Ditto.
2833 (Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C
2834 (Gen_Output_File): Do not force Ada_Bind_File anymore.
2835 Always call Gen_Output_File_Ada.
2836 * gnatlink.adb (Begin_Info): Now a constant.
2837 (End_Info): Ditto.
2838 (Ada_Bind_File): Remove
2839 (Process_Args): Do not handle -A/-C. Remove not Ada_Bind_File cases.
2840 * switch-b.adb (Scan_Binder_Switches): Do not handle -C.
2841 * gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases.
2842 * opt.ads (Ada_Bind_File): Remove.
2843
28442011-08-04 Thomas Quinot <quinot@adacore.com>
2845
2846 * projects.texi: Document target-specific directory in default project
2847 path for gnatmake.
2848
28492011-08-04 Thomas Quinot <quinot@adacore.com>
2850
2851 * gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project
2852 path in all cases .
2853
24558db8
AC
28542011-08-04 Yannick Moy <moy@adacore.com>
2855
2856 * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
2857 opt.ads, lib-xref.ads: Code clean up.
2858
28592011-08-04 Yannick Moy <moy@adacore.com>
2860
2861 * gnat_rm.texi: Update description of Test_Case
2862 * gnat_ugn.texi: Typo.
2863
28642011-08-04 Ed Falis <falis@adacore.com>
2865
2866 * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.
2867
28682011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2869
2870 * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
2871 it is of type Root_Controlled. This action eliminates fields Prev and
2872 Next from type equality.
2873
28742011-08-04 Yannick Moy <moy@adacore.com>
2875
2876 * lib-xref-alfa.adb: Correct typo.
2877
28782011-08-04 Matthew Heaney <heaney@adacore.com>
2879
2880 * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
2881 component.
2882
1f9939b5
AC
28832011-08-04 Yannick Moy <moy@adacore.com>
2884
2885 * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure
2886 (Analyze_Pragma): allow static string expression for name of Test_Case,
2887 instead of simply string literals.
2888 * sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string
2889 expressions.
2890
28912011-08-04 Vincent Celier <celier@adacore.com>
2892
2893 * makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical
2894 case suffixes to find truncated main sources.
2895
28962011-08-04 Tristan Gingold <gingold@adacore.com>
2897
2898 * impunit.adb (Non_Imp_File_Names_95): Add g-tastus.
2899 s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put.
2900 (Compute_Current_Task): Ditto.
2901
29022011-08-04 Tristan Gingold <gingold@adacore.com>
2903
2904 * gnat_ugn.texi: Mention GNAT.Task_Stack_Usage.
2905
29062011-08-04 Yannick Moy <moy@adacore.com>
2907
2908 * lib-xref-alfa.adb (Is_Global_Constant): new function that detects
2909 library-level constant.
2910 (Add_ALFA_Xrefs): ignore global constants in ALFA xref.
2911 * sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal
2912 used as selector of parameter association, in ALFA mode.
2913
15d8a51d
AC
29142011-08-04 Robert Dewar <dewar@adacore.com>
2915
2916 * exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb,
2917 s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor
2918 reformatting.
2919
29202011-08-04 Arnaud Charlet <charlet@adacore.com>
2921
2922 * make.adb (Linking_Phase): Set source search path before calling
2923 gnatlink in CodePeer mode.
2924
f46faa08
AC
29252011-08-04 Javier Miranda <miranda@adacore.com>
2926
2927 * exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration):
2928 Remove code which takes care of building TSDs.
2929 * rtsfind.ads (RE_Check_Interface_Conversion): New entity.
2930 * exp_ch4.adb (Apply_Accessibility_Check): Add support for generating
2931 the accessibility check in VM targets.
2932 * exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads
2933 (Building_Static_DT): Now returns false for VM targets.
2934 (Build_VM_TSDs): Removed.
2935 (Expand_Interface_Conversion): Generate missing runtime check for
2936 conversions to interface types whose target type is unknown at compile
2937 time.
2938 (Make_VM_TSD): Add missing code to disable the generation of calls to
2939 Check_TSD if the tagged type is not defined at library level, or not
2940 has a representation clause specifying its external tag, or -gnatdQ is
2941 active.
2942 * exp_disp.ads (Build_VM_TSDs): Removed.
2943 (Make_VM_TSDs): Spec relocated from exp_disp.adb
2944 * sem_disp.adb (Check_Dispatching_Operation): No code required to
2945 register primitives in the dispatch tables in VM targets.
2946 * exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of
2947 initialization of class-wide interface objects in VM targets.
2948 (Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead
2949 of Make_DT).
2950
29512011-08-04 Jerome Lambourg <lambourg@adacore.com>
2952
2953 * gnatlink.adb (Gnatlink): Correct missleading error message displayed
2954 when dotnet-ld cannot be found.
2955
29562011-08-04 Arnaud Charlet <charlet@adacore.com>
2957
2958 * bindgen.adb: Simplify significantly generation of binder body file in
2959 CodePeer mode.
2960 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure
2961 when compiling binder generated file in CodePeer mode (xxx'Elab_Spec
2962 not expanded).
2963
2ba7e31e
AC
29642011-08-04 Yannick Moy <moy@adacore.com>
2965
2966 * sem_prag.adb, sem.ads: Code cleanup.
2967
29682011-08-04 Tristan Gingold <gingold@adacore.com>
2969
2970 * s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part.
2971 * s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate
2972 results if possible.
2973 * s-stusta.adb (Print): Adjust after changes in s-stausa.
2974 * gnat_ugn.texi: Update dynamic stack usage section.
2975
29762011-08-04 Steve Baird <baird@adacore.com>
2977
2978 * bindgen.adb (Gen_CodePeer_Wrapper): new procedure.
2979 Generate (if CodePeer_Mode is set) a "wrapper" subprogram which
2980 contains only a call to the user-defined main subprogram.
2981 (Gen_Main_Ada) - If CodePeer_Mode is set, then
2982 call the "wrapper" subprogram instead of directly
2983 calling the user-defined main subprogram.
2984
29852011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2986
2987 * exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all
2988 alternatives of a case statement for controlled objects. Rename local
2989 variable A to Dead_Alt.
2990 (Expand_N_If_Statement): Check the then and else statements of an if
2991 statement for controlled objects. Check the then statements of all
2992 elsif parts of an if statement for controlled objects.
2993 (Expand_N_Loop_Statement): Check the statements of a loop for controlled
2994 objects.
2995 * exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which
2996 detects a loop associated with the expansion of an array object.
2997 Augment the processing of the loop statements to account for a possible
2998 wrap done by Process_Statements_For_Controlled_Objects.
2999 * exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering
3000 statements and abortable part of an asynchronous select for controlled
3001 objects.
3002 (Expand_N_Conditional_Entry_Call): Check the else statements of a
3003 conditional entry call for controlled objects.
3004 (Expand_N_Selective_Accept): Check the alternatives of a selective
3005 accept for controlled objects.
3006 (Expand_N_Timed_Entry_Call): Check the entry call and delay
3007 alternatives of a timed entry call for controlled objects.
3008 * exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an
3009 exception handler for controlled objects.
3010 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
3011 Add formal parameter Nested_Constructs along with its associated
3012 comment.
3013 (Requires_Cleanup_Actions (Node_Id)): Update all calls to
3014 Requires_Cleanup_Actions.
3015 (Process_Statements_For_Controlled_Objects): New routine.
3016 * exp_util.ads (Process_Statements_For_Controlled_Objects): New
3017 routine. Inspect a node which contains a non-handled sequence of
3018 statements for controlled objects. If such an object is found, the
3019 statements are wrapped in a block.
3020
1bf773bb
AC
30212011-08-04 Bob Duff <duff@adacore.com>
3022
3023 * sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we
3024 need to compare with Class_Wide_Type (T2), in order to get at the
3025 original class-wide type node.
3026 * sem_type.ads (Covers): Improve the comment.
3027 * einfo.ads (Class_Wide_Type): Improve the comment.
3028 * exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of
3029 the type of the Deref.
3030
30312011-08-04 Yannick Moy <moy@adacore.com>
3032
3033 * gnat_rm.texi: Document that Test_Case pragma can only appear on
3034 separate declarations.
3035 * sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to
3036 check identifier of pragma argument.
3037 (Chain_TC): check that no other test case associated to the same entity
3038 share the same name.
3039 (Check_Test_Case): disallow test case inside subprogram body
3040 (Analyze_Pragma): correct call to check identifier and not argument
3041 * sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new
3042 function gets name from test case pragma.
3043
dac3bede
YM
30442011-08-04 Yannick Moy <moy@adacore.com>
3045
3046 * gnat_rm.texi: Document new pragma and aspect.
3047 * aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case
3048 (No_Duplicates_Allowed): new constant array defining whether duplicates
3049 aspects of each kind can appear on the same declaration.
3050 * einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract
3051 field, which points to a node holding the previous Spec_PPC_List.
3052 * exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List
3053 through the indirection with Contract.
3054 * exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node
3055 * par-prag.adb (Prag): do nothing on Test_Case pragma
3056 * sem.adb (Analyze): abort on N_Contract, on which Analyze should not
3057 be called directly.
3058 * sem_attr.adb (Analyze_Attribute): allow attribute 'Result in
3059 component Ensures of Test_Case.
3060 * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb
3061 (Analyze_Generic_Subprogram_Declaration,
3062 Analyze_Subprogram_Instantiation,
3063 Analyze_Abstract_Subprogram_Declaration,
3064 Analyze_Subprogram_Body_Helper,
3065 Analyze_Subprogram_Specification, Analyze_Entry_Declaration):
3066 insert contract in subprogram node at point of definition
3067 * sem_ch13.adb
3068 (Aspect_Loop): do not raise error on duplicate Test_Case aspect
3069 (Analyze_Aspect_Specifications): analyze Test_Case aspect and create
3070 corresponding pragma
3071 (Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect
3072 * sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases,
3073 similar to the analysis of pre/post
3074 (Derive_Subprogram): insert contract in subprogram node at point of
3075 derivation.
3076 * sem_prag.adb, sem_prag.ads
3077 (Check_Arg_Is_String_Literal, Check_Identifier):
3078 new checking procedures to be called in treatment of pragmas
3079 (Check_Test_Case): new procedure to check that a Test_Case aspect or
3080 pragma is well-formed. This does not check currently that 'Result is
3081 used only in the Ensures component of a Test_Case.
3082 (Analyze_Pragma): add case for Test_Case
3083 (Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures
3084 components of a Test_Case.
3085 (Preanalyze_TC_Args): new procedure to preanalyze the boolean
3086 expressions in the 3rd (and 4th if present) arguments of a Test_Case
3087 pragma, treated as spec expressions.
3088 (Sig_Flags): add value -1 for Test_Case.
3089 * sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma,
3090 Get_Requires_From_Test_Case_Pragma): getters for both expression
3091 components of a Test_Case.
3092 * sinfo.adb, sinfo.ads (N_Contract): new kind of node used as
3093 indirection between an entry or [generic] subprogram entity and its
3094 pre/post + test-cases.
3095 (Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List):
3096 get/set for fields of an N_Contract node.
3097 * snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode,
3098 Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new
3099 names and pragma for Test_Case.
3100 * sprint.adb (Sprint_Node): raise Program_Error on N_Contract node
3101
6a2e5d0f
AC
31022011-08-04 Vincent Celier <celier@adacore.com>
3103
3104 * gnat_ugn.texi: Improve documentation of gnatmake switch
3105 --source-info-file=.
3106
31072011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3108
3109 * exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion
3110 type). Initialize Atyp to the appropriate type which is later checked
3111 for completion. Rewrite the assertion associated with private type
3112 completion.
3113
31142011-08-04 Ed Falis <falis@adacore.com>
3115
3116 * adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to
3117 initialize the number of CPUs.
3118
31192011-08-04 Ed Schonberg <schonberg@adacore.com>
3120
3121 * sem_type.adb (Disambiguate): New subsidiary routine
3122 In_Same_Declaration_List, to implement AI05-0020: a user-defined
3123 equality on an anonymous access type whose designated type is private
3124 does not lead to an ambiguity with the universal access equality
3125 operator in the body or child units of the defining package. The same
3126 is true for a multiplication operator on a private type completed with
3127 a fixed-point-type.
3128
31292011-08-04 Javier Miranda <miranda@adacore.com>
3130
3131 * opt.ads (Init_Or_Norm_Scalars_Config): Removed.
3132 (Normalize_Scalars_Config): Removed.
3133 * opt.adb
3134 (Register_Opt_Config_Switches): Remove registering config values of
3135 Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config.
3136 (Restore_Opt_Config_Switches): Remove code which restores the values of
3137 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
3138 Init_Or_Norm_Scalars.
3139 (Save_Opt_Config_Switches): Remove code which saves values of
3140 Init_Or_Norm_Scalars and Normalize_Scalars.
3141 (Set_Opt_Config_Switches): Remove code which restores config values of
3142 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
3143 Init_Or_Norm_Scalars.
3144
31452011-08-04 Yannick Moy <moy@adacore.com>
3146
3147 * frontend.adb (Frontend): remove previous patch to avoid full
3148 qualification in ALFA mode.
3149 * lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables.
3150 * sem_util.adb, sem_util.ads (Unique_Name): new function to define a
3151 unique name for an entity, which could be used to identify the entity
3152 across compilation units.
3153
31542011-08-04 Thomas Quinot <quinot@adacore.com>
3155
3156 * prj-env.adb
3157 (Initialize_Default_Project_Path): Add target specific directory
3158 ($prefix/$target/lib/gnat) in front of project path in all cases
3159 (making gnatmake's behaviour consistent with gprbuild).
3160 * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb:
3161 Pass target name from Sdefault to project subsystem.
3162 * gnatls.adb: Show new target specific default project directory.
3163
31642011-08-04 Johannes Kanig <kanig@adacore.com>
3165
3166 * cstand.adb: Add Information to Identifier in Standard
3167 (Identifer_For): Set Entity to the corresponding entity
3168
483361a6
AC
31692011-08-04 Sergey Rybin <rybin@adacore.com>
3170
3171 * gnat_ugn.texi: Update doc on gnatcheck.
3172
31732011-08-04 Yannick Moy <moy@adacore.com>
3174
3175 * lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of
3176 xrefs in a scope.
3177
31782011-08-04 Yannick Moy <moy@adacore.com>
3179
3180 * exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without
3181 performing expansion.
3182 * sem_ch6.adb (Analyze_Subprogram_Body_Helper,
3183 Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that
3184 it is not called in ALFA mode.
3185
ef5569c6
AC
31862011-08-04 Emmanuel Briot <briot@adacore.com>
3187
3188 * make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used
3189 after all, so removed.
3190
31912011-08-04 Sergey Rybin <rybin@adacore.com>
3192
3193 * vms_data.ads: Add missing VMS qualifiers.
3194
1ab4a286
EB
31952011-08-04 Emmanuel Briot <briot@adacore.com>
3196
3197 * make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild
3198 the list of files on the command line after processing it through
3199 Complete_Mains.
3200
7ae0d98c
AC
32012011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3202
3203 * exp_ch7.adb (Build_Raise_Statement): Remove the specialized
3204 processing for .NET/JVM. These targets can now benefit from
3205 Raise_From_Controlled_Operation and they share the same processing with
3206 standard targets.
3207 (Establish_Transient_Scope): Remove the restriction for .NET/JVM.
3208 These targets need transient scopes in order to properly finalize short
3209 lived controlled objects.
3210 (Make_Handler_For_Ctrl_Operation): Remove the specialized processing for
3211 NET/JVM. These targets can now benefit from
3212 Raise_From_Controlled_Operation and they share the same processing with
3213 standard targets.
3214
32152011-08-04 Geert Bosch <bosch@adacore.com>
3216
3217 * tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack
3218
32192011-08-04 Ed Schonberg <schonberg@adacore.com>
3220
3221 * exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to
3222 Expand_Record_Aggregate, to determine whether aggregate must be
3223 expanded into assignments. This is the case if the ancestor part is
3224 private, regarless of the setting of the flag Has_Private_Ancestor.
3225
32262011-08-04 Ed Falis <falis@adacore.com>
3227
3228 * vxaddr2line.adb: Add support for e500v2 and for Linux hosts
3229
32302011-08-04 Bob Duff <duff@adacore.com>
3231
3232 * sinfo.ads: Fix comment.
3233
32342011-08-04 Steve Baird <baird@adacore.com>
3235
3236 * bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then
3237 choose a package name in much the same way as is
3238 done for JGNAT when VM_Target /= No_VM, except that
3239 a slightly more distinctive prefix string is used.
3240
32412011-08-04 Emmanuel Briot <briot@adacore.com>
3242
3243 * makeutl.adb (Complete_Mains): no longer accept unit names on the
3244 gnatmake command line.
3245 This behavior was never documented (and was supported only because of
3246 an early bug in the code). This case might lead to ambiguous cases
3247 (between unit names and truncated base names without suffixes).
3248
87729e5a
AC
32492011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3250
3251 * a-tags.ads, a-tags.adb (Unregister_Tag): New routine.
3252 Remove the external tag of a tagged type from the internal hash table.
3253 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the
3254 expanded usage of the routine. Strenghten the check for Is_Master. Add
3255 processing for tagged types.
3256 (Build_Finalizer): Create all the necessary lists used in finalizer
3257 creation when the processed context is a package that may contain
3258 tagged types.
3259 (Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to
3260 Requires_Cleanup_Actions.
3261 (Expand_N_Package_Body): Package bodies may need clean up code
3262 depending on whether they contain tagged types.
3263 (Expand_N_Package_Declaration): Package declarations may need clean up
3264 code depending on whether they contain tagged types.
3265 (Unregister_Tagged_Types): New routine. Search through a list of
3266 declarations or statements, looking for non-abstract Ada tagged types.
3267 For each such type, generate code to unregister the external tag.
3268 * exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to
3269 Requires_Cleanup_Actions.
3270 (Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search
3271 through a list of declarations or statements looking for non-abstract
3272 Ada tagged types or controlled objects.
3273 * exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to
3274 Requires_Cleanup_Actions.
3275 (Has_Controlled_Objects (List_Id, Boolean)): Removed.
3276 * rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and
3277 RE_Unit_Table.
3278
32792011-08-04 Vincent Celier <celier@adacore.com>
3280
3281 * prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj
3282 has Ada sources, not project Project, because if the root project
3283 Project has no sources of its own, all projects will be deemed without
3284 sources.
3285
32862011-08-04 Gary Dismukes <dismukes@adacore.com>
3287
3288 * bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration
3289 of the No_Param_Proc acc-to-subp type used for initialization of
3290 __gnat_finalize_library_objects so that it's declared at library level
3291 rather than nested inside of the adainit routine.
3292
32932011-08-04 Javier Miranda <miranda@adacore.com>
3294
3295 * exp_disp.adb (Make_DT): Generate code to check the external tag ONLY
3296 if the tagged type has a representation clause which specifies its
3297 external tag.
3298
32992011-08-04 Ed Schonberg <schonberg@adacore.com>
3300
3301 * einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types.
3302 Remove previous procedure with that name.
3303 * sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor
3304 when appropriate.
3305 * sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a
3306 subtype mark, the ancestor cannot have unknown discriminants.
3307 (Resolve_Record_Aggregate): if the type has invisible components
3308 because of a private ancestor, the aggregate is illegal.
3309
33102011-08-04 Vincent Celier <celier@adacore.com>
3311
3312 * switch-m.adb (Normalize_Compiler_Switches): Recognize and take into
3313 account switches -gnat2005, -gnat12 and -gnat2012.
3314
33152011-08-04 Bob Duff <duff@adacore.com>
3316
3317 * s-tasdeb.ads: Minor comment fix.
3318
33192011-08-04 Arnaud Charlet <charlet@adacore.com>
3320
3321 * gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in
3322 CodePeer mode.
3323 * switch.ads, switch.adb (Is_Language_Switch): New function.
3324
33252011-08-04 Vincent Celier <celier@adacore.com>
3326
3327 * switch-c.adb: Minor comment addition.
3328
33292011-08-04 Vincent Celier <celier@adacore.com>
3330
3331 * vms_conv.adb (Process_Argument): Fail graciously when qualifier
3332 ending with '=' is followed by a space (missing file name).
3333
33342011-08-04 Pascal Obry <obry@adacore.com>
3335
3336 * g-regist.ads: Fix size of HKEY on x86_64-windows.
3337
33382011-08-04 Ed Schonberg <schonberg@adacore.com>
3339
3340 * sem_ch12.adb (Analyze_Associations): New routine
3341 Check_Overloaded_Formal_Subprogram to reject a formal package when
3342 there is a named association or a box initialisation for an overloaded
3343 formal subprogram of the corresponding generic.
3344
33452011-08-04 Yannick Moy <moy@adacore.com>
3346
3347 * alfa.ads (ALFA_Xref_Record): add component for type of entity
3348 * get_alfa.adb, put_alfa.adb: Read and write new component of
3349 cross-reference.
3350 * lib-xref-alfa.adb (Collect_ALFA): generate new component.
3351
88f47280
AC
33522011-08-04 Pascal Obry <obry@adacore.com>
3353
3354 * urealp.adb: Minor reformatting.
3355
33562011-08-04 Tristan Gingold <gingold@adacore.com>
3357
3358 * exp_ch7.adb (build_finalizer.process_declarations.processing_actions):
3359 Handle the case when Cleanup_Protected_Object returns Empty.
3360
33612011-08-04 Yannick Moy <moy@adacore.com>
3362
3363 * frontend.adb (Frontend): only qualify names in non-ALFA mode
3364
33652011-08-04 Ed Schonberg <schonberg@adacore.com>
3366
3367 * sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure
3368 call, ignore functions.
3369
05c53a69
GB
33702011-08-04 Geert Bosch <bosch@adacore.com>
3371
3372 * urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating
3373 point.
3374
23cc1ace
EB
33752011-08-04 Emmanuel Briot <briot@adacore.com>
3376
3377 * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name
3378 as an index for Builder'Switches. This conforms to the documentation.
3379 * make.adb (Insert_Project_Sources): avoid duplicate code
3380
cef14201
AC
33812011-08-04 Emmanuel Briot <briot@adacore.com>
3382
3383 * makeutl.adb (Complete_Mains): if the user has passed a relative file
3384 name on the command line (for instance "../dummy"), never assume it can
3385 be a unit name.
3386
33872011-08-04 Tristan Gingold <gingold@adacore.com>
3388
3389 * bindgen.adb: Remove code the reference or create the
3390 Break_Start/__gnat_break_start procedure.
3391 * s-stalib.adb (Break_Start): Removed.
3392
e2fee30d
EB
33932011-08-04 Emmanuel Briot <briot@adacore.com>
3394
3395 * make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now
3396 shared with gprbuild.
3397
2d395256
AC
33982011-08-04 Yannick Moy <moy@adacore.com>
3399
3400 * par-ch4.adb (P_Primary): preferentially issue an error message about
3401 a missing parenthesis arount a conditional or case expression in Ada
3402 2012 mode, if we detect that the alignment is not correct for a
3403 statement.
3404
34052011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3406
3407 * exp_ch7.adb (Process_Declarations): Do not consider the result of a
3408 tag-to-class-wide conversion as needing finalization actions.
3409 * exp_util.adb (Has_Controlled_Objects): Do not consider the result of
3410 a tag-to-class-wide conversion as needing finalization actions.
3411 (Is_Finalizable_Transient): The result of a tag-to-class-wide
3412 conversion does not need finalization actions.
3413 (Is_Tag_To_CW_Conversion): New routine.
3414 * exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines
3415 whether an object is the result of a tag-to-class-wide conversion.
3416
34172011-08-04 Yannick Moy <moy@adacore.com>
3418
3419 * sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which
3420 the left-hand-side and right-hand-side of a conjunct are inserted when
3421 translating a pre- or postcondition
3422 * sem_ch6.adb: Correct typo in comment
3423
34242011-08-04 Ed Schonberg <schonberg@adacore.com>
3425
3426 * gnat_rm.texi: Ravenscar does not prohibit dependence on
3427 Unchecked_Conversion and Unchecked_Deallocation.
3428
34292011-08-04 Thomas Quinot <quinot@adacore.com>
3430
3431 * make.adb: Minor reformatting.
3432
767ab2fd
EB
34332011-08-04 Emmanuel Briot <briot@adacore.com>
3434
3435 * prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the
3436 sources in the project and its imported projects, but not in the whole
3437 tree.
3438
8fb3f5df
AC
34392011-08-04 Emmanuel Briot <briot@adacore.com>
3440
3441 * make.adb: Remove debug trace.
3442
34432011-08-04 Vincent Celier <celier@adacore.com>
3444
3445 * makeutl.adb (Do_Complete): Get the absolute path name of a relative
3446 path in canonical form, to be able to compare path names on platforms
3447 such as Windows or Darwin.
3448
34492011-08-04 Thomas Quinot <quinot@adacore.com>
3450
3451 * par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry):
3452 For a pragma (statement with C1 = 'P'), record the sloc of the pragma.
3453 * scos.ads: Update documentation accordingly.
3454 * put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled
3455 pragmas.
3456
9515740f
AC
34572011-08-04 Ed Schonberg <schonberg@adacore.com>
3458
3459 * sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of
3460 attribute only if prefix type is scalar.
3461
34622011-08-04 Emmanuel Briot <briot@adacore.com>
3463
3464 * make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support
3465 in gnatmake for specifying mains on the command line that do not belong
3466 to the main project. These mains must currently all belong to the same
3467 project, though.
3468 (Ultimate_Extension_Of): removed, since duplicated
3469 Ultimate_Extending_Project.
3470
92966893
AC
34712011-08-04 Arnaud Charlet <charlet@adacore.com>
3472
3473 * make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode
3474 instead.
3475 (CodePeer_Mode_String): New.
3476 (Linking_Phase, Binding_Phase): Call gnatlink with -P switch in
3477 CodePeer mode.
3478 (Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode.
3479 * bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer
3480 mode, since no useful elaboration subprogram is needed by CodePeer.
3481 * gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode).
3482 In this mode, compile binder file with -gnatC and do stop after this
3483 step.
3484
34852011-08-04 Vincent Celier <celier@adacore.com>
3486
3487 * exp_ch7.adb: Minor comment fix.
3488
5969611f
RD
34892011-08-04 Robert Dewar <dewar@adacore.com>
3490
3491 * exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb,
3492 exp_ch4.adb, makeutl.adb: Minor reformatting.
3493
6367dd30
AC
34942011-08-04 Emmanuel Briot <briot@adacore.com>
3495
3496 * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.
3497 Create several new subprograms to move code out of Make. This makes the
3498 code more readable, removes code duplication, and is a preparation work
3499 for adding support for aggregate projects.
3500
35012011-08-04 Tristan Gingold <gingold@adacore.com>
3502
3503 * s-po32gl.ads, s-po32gl.adb: New files.
3504 * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.
3505 * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.
3506 (Build_Finalization_Collection): Use it.
3507 * exp_ch4.adb (Complete_Controlled_Allocation): Ditto.
3508 * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New
3509 literals.
3510 * gcc-interface/Makefile.in: Use s-po32gl.o on VMS.
3511 * gcc-interface/Make-lang.in: Update dependencies.
3512
cd8bfe35
EB
35132011-08-04 Emmanuel Briot <briot@adacore.com>
3514
3515 * makeutl.adb (Complete_Mains): add support for specs with no suffix on
3516 the command line.
3517
7db29ea7
EB
35182011-08-04 Emmanuel Briot <briot@adacore.com>
3519
3520 * make.adb, makeutl.adb (Complete_Mains): if a main specified on the
3521 command line is not a file name, also check whether it could be a unit
3522 name.
3523
d9b056ea
AC
35242011-08-04 Eric Botcazou <ebotcazou@adacore.com>
3525
3526 * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate
3527 the header of the finalization routine.
3528 If the unit has no finalizer but is a body whose spec has one, then
3529 generate the decrement of the elaboration entity only.
3530 If the unit has a finalizer and is a spec, then do not generate the
3531 decrement of the elaboration entity.
3532 (Gen_Finalize_Library_C): Likewise.
3533
35342011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3535
3536 * exp_ch7.adb (Alignment_Of): New subsidiary routine.
3537 (Bounds_Size_Expression): Removed.
3538 (Double_Alignment_Of): New subsidiary routine.
3539 (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account
3540 for a hole in the dope vector of unconstrained arrays due to different
3541 index and element alignments.
3542
35432011-08-04 Ed Schonberg <schonberg@adacore.com>
3544
3545 * sem_res.adb (Resolve_Allocator): diagnose task allocator that will
3546 raise program_error because body has not been seen yet.
3547
35482011-08-04 Ed Schonberg <schonberg@adacore.com>
3549
3550 * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with
3551 an unresolved name.
3552
35532011-08-04 Vincent Celier <celier@adacore.com>
3554
3555 * makeutl.adb (Do_Complete): Check absolute paths in canonical forms
3556
35572011-08-04 Yannick Moy <moy@adacore.com>
3558
3559 * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here
3560 * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here
3561
35622011-08-04 Thomas Quinot <quinot@adacore.com>
3563
3564 * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for
3565 instantiation in RCI.
3566
35672011-08-04 Emmanuel Briot <briot@adacore.com>
3568
3569 * make.adb: Share more code with gprbuild
3570
f5fc5b9d
AC
35712011-08-04 Emmanuel Briot <briot@adacore.com>
3572
3573 * projects.texi: Added documentation for the IDE'Gnat project file
3574 attribute.
3575
35762011-08-04 Nicolas Roche <roche@adacore.com>
3577
3578 * gnat_rm.texi: Minor editing.
3579
35802011-08-04 Javier Miranda <miranda@adacore.com>
3581
3582 * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case
3583 and the library case for VM targets.
3584 (Gen_Adainit_Ada): Likewise.
3585
35862011-08-04 Robert Dewar <dewar@adacore.com>
3587
3588 * g-altive.ads: Minor comment updates.
3589 * prj-nmsc.adb: Minor reformatting.
3590
35912011-08-04 Javier Miranda <miranda@adacore.com>
3592
3593 * opt.ads
3594 (Normalize_Scalars_Config): Value of the configuration switch set by
3595 pragma Normalize_Scalars when it appears in the gnat.adc file.
3596 (Normalize_Scalars): New field for record Config_Switches_Type. Used
3597 to save and restore settings of this pragma.
3598 * opt.adb
3599 (Register_Opt_Config_Switches, Save_Opt_Config_Switches,
3600 Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.
3601
36022011-08-04 Vincent Celier <celier@adacore.com>
3603
3604 * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile
3605
0c4683cf
AC
36062011-08-04 Arnaud Charlet <charlet@adacore.com>
3607
3608 * makeutl.adb: Minor reformatting.
3609
36102011-08-04 Olivier Hainque <hainque@adacore.com>
3611
3612 * g-altive.ads: Update comments to reflect that only the soft
3613 binding is available today.
3614
2598ee6d
RD
36152011-08-04 Robert Dewar <dewar@adacore.com>
3616
3617 * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,
3618 makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting
3619 * gcc-interface/Make-lang.in: Update dependencies.
3620
c2db4b32
AC
36212011-08-04 Arnaud Charlet <charlet@adacore.com>
3622
3623 * prj-env.adb: Remove local debug traces.
3624
36252011-08-04 Yannick Moy <moy@adacore.com>
3626
3627 * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK
3628 was used instead of Hi_OK, which could cause a read of an uninitialized
3629 value later on. Detected while working on the new warning.
3630 * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment
3631 to local variable.
3632 * sem_ch5.adb (Analyze_Assignment): set the last assignment component
3633 in more cases, in order to detect more unreferenced values.
3634 * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing
3635 object for expression, if any.
3636
36372011-08-04 Eric Botcazou <ebotcazou@adacore.com>
3638
3639 * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of
3640 the operand types instead of the Esize.
3641
36422011-08-04 Steve Baird <baird@adacore.com>
3643
3644 * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to
3645 enable CodePeer_Mode.
3646 * bindusg.adb (Display): Add help message describing -P binder switch.
3647 * gnat_ugn.texi: Document -P binder switch.
3648 * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the
3649 user-defined main program directly.
3650 (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the
3651 user-defined main program in the context clause of the package body.
3652
ad05f2e9
AC
36532011-08-04 Yannick Moy <moy@adacore.com>
3654
3655 * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial
3656 duplicate of Defining_Entity
3657 (Get_Unique_Entity_For_Decl): rename function into
3658 Unique_Defining_Entity
3659 * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags
3660 (Formal_Proof_On): remove synthesized flag
3661 * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
3662 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,
3663 sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA
3664 * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma
3665 Annotate (Formal_Proof)
3666
36672011-08-04 Emmanuel Briot <briot@adacore.com>
3668
3669 * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit
3670 source files with non-standard naming schemes, in imported projects
3671
756ef2a0
AC
36722011-08-04 Emmanuel Briot <briot@adacore.com>
3673
3674 * makeutl.adb (Complete_Mains): when a multi-unit source file is
3675 specified on the gprbuild command line, we need to compile all units
3676 within that file, not just the first one we find
3677 Fix error message for mains that are not found.
3678
36792011-08-04 Thomas Quinot <quinot@adacore.com>
3680
3681 * sem_ch6.adb: Update comment.
3682 * sem_ch12.adb: Minor reformatting.
3683
36842011-08-04 Bob Duff <duff@adacore.com>
3685
3686 * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading
3687 Acceptor.Terminate_Alternative without locking Acceptor, which causes a
3688 race condition whose symptom is to fail to lock Parent. That, in turn,
3689 causes Parent.Awake_Count to be accessed without locking Parent, which
3690 causes another race condition whose symptom is that Parent.Awake_Count
3691 can be off by 1 (either too high or too low). The solution is to lock
3692 Parent unconditionally, and then lock Acceptor, before reading
3693 Acceptor.Terminate_Alternative.
3694
4fdebd93
AC
36952011-08-04 Arnaud Charlet <charlet@adacore.com>
3696
3697 * debug.adb: Update comment.
3698
36992011-08-04 Robert Dewar <dewar@adacore.com>
3700
3701 * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,
3702 sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,
3703 exp_ch6.adb: Minor reformatting.
3704
37052011-08-04 Gary Dismukes <dismukes@adacore.com>
3706
3707 * gnat_ugn.texi: Add sentence about the case of compile-time-detected
3708 checks for -gnateE.
3709
37102011-08-04 Ed Schonberg <schonberg@adacore.com>
3711
3712 * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.
3713
37142011-08-04 Thomas Quinot <quinot@adacore.com>
3715
3716 * sinfo.ads: Minor reformatting.
3717
37182011-08-04 Emmanuel Briot <briot@adacore.com>
3719
3720 * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error
3721 even if there is no location.
3722
6aaa0587
ES
37232011-08-04 Ed Schonberg <schonberg@adacore.com>
3724
3725 * sem_res.adb, sem_ch4.adb: move check for restriction
3726 No_Task_Hierarchy to resolve_allocator.
3727
35a1c212
AC
37282011-08-04 Thomas Quinot <quinot@adacore.com>
3729
3730 * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):
3731 This flag of N_Pragma nodes is not used, remove it as well as all of
3732 the associated circuitry.
3733
37342011-08-04 Javier Miranda <miranda@adacore.com>
3735
3736 * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the
3737 runtime check on duplicated externa tags
3738 * debug.adb Document switch -gnatdQ.
3739
37402011-08-04 Gary Dismukes <dismukes@adacore.com>
3741
3742 * a-fihema.ads: Minor typo fix.
3743
37442011-08-04 Yannick Moy <moy@adacore.com>
3745
3746 * sem_ch10.adb: Minor comment update.
3747
37482011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3749
3750 * einfo.adb: Update the node field usage to reflect the renaming of
3751 Return_Flag to Return_ Flag_Or_Transient_Decl.
3752 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.
3753 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.
3754 (Write_Field15_Name): Change Return_Flag to
3755 Return_Flag_Or_Transient_Decl.
3756 * einfo.ads: Rename node field Return_Flag to
3757 Return_Flag_Or_Transient_Decl. Update the associated comment and all
3758 occurrences in entities.
3759 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update
3760 associated Inline pragma.
3761 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update
3762 associated Inline pragma.
3763 * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New
3764 routine.
3765 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to
3766 Return_Flag and Set_Return_Flag.
3767 * exp_ch7.adb (Process_Declarations): Add code to recognize hook
3768 objects generated for controlled transients declared inside an
3769 Exception_With_Actions. Update the calls to Return_Flag.
3770 (Process_Object_Declaration): Add code to add a null guard for hook
3771 objects generated for controlled transients declared inside an
3772 Exception_With_Actions. Update related comment.
3773 * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook
3774 objects generated for controlled transients declared inside an
3775 Exception_With_Actions. Update the calls to Return_Flag.
3776 * expander.adb (Expand): Add new case for N_Expression_With_Actions.
3777
37782011-08-04 Ed Schonberg <schonberg@adacore.com>
3779
3780 * sem_util.adb:(Wrong_Type): Improve error message on a one-element
3781 positional aggregate.
3782
37832011-08-04 Vincent Celier <celier@adacore.com>
3784
3785 * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma
3786 SLOC only for pragmas.
3787
37882011-08-04 Emmanuel Briot <briot@adacore.com>
3789
3790 * projects.texi: Minor typo fix.
3791
37922011-08-04 Emmanuel Briot <briot@adacore.com>
3793
3794 * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging
3795 on case-sensitive file systems.
3796
c2873f74
TQ
37972011-08-04 Thomas Quinot <quinot@adacore.com>
3798
3799 * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision
3800 nested in a disabled pragma.
3801 * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of
3802 enclosing pragma, if any, for X decisions.
3803
38042011-08-04 Thomas Quinot <quinot@adacore.com>
3805
3806 * sem_prag.adb: Minor reformatting.
3807
46414266
VC
38082011-08-04 Vincent Celier <celier@adacore.com>
3809
3810 * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not
3811 allowed in no run time mode.
3812
38132011-08-04 Vincent Celier <celier@adacore.com>
3814
3815 * make.adb (Check): When -gnatc is used, check for the source file
3816 inside the ALI file with a canonical case file name.
3817
afab164f
EB
38182011-08-04 Emmanuel Briot <briot@adacore.com>
3819
3820 * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for
3821 overriding the separator.
3822
fe0ec02f
AC
38232011-08-04 Robert Dewar <dewar@adacore.com>
3824
3825 * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,
3826 prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.
3827
38282011-08-04 Robert Dewar <dewar@adacore.com>
3829
3830 * gnat_rm.texi: Minor documentation fix for pragma Annotate.
3831
38322011-08-04 Yannick Moy <moy@adacore.com>
3833
3834 * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that
3835 'Result only appears in postcondition of function.
3836
38372011-08-04 Thomas Quinot <quinot@adacore.com>
3838
3839 * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated
3840 external tag, include the value of the external tag in the exception
3841 message.
3842
0180fd26
AC
38432011-08-04 Yannick Moy <moy@adacore.com>
3844
3845 * sem_attr.adb (Result): modify error message for misplaced 'Result
3846
38472011-08-04 Sergey Rybin <rybin@adacore.com>
3848
3849 * gnat_rm.texi (pragma Annotate): Fix syntax description to make it
3850 clear that the second argument must be an identifier.
3851
38522011-08-04 Thomas Quinot <quinot@adacore.com>
3853
3854 * exp_ch9.adb (Build_Barrier_Function): When compiling with
3855 -fpreserve-control-flow, insert an IF statement on the barrier
3856 condition to ensure that a conditional branch instruction is generated.
3857
38582011-08-04 Emmanuel Briot <briot@adacore.com>
3859
3860 * prj-part.adb, prj.adb, prj.ads, prj-tree.ads
3861 (Processing_Flags.Ignore_Missing_With): new flag.
3862
38632011-08-04 Emmanuel Briot <briot@adacore.com>
3864
3865 * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of
3866 Source_List_File on case-insensitive systems where the file is actually
3867 on a case-sensitive file system (NFS,...).
3868
38692011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3870
3871 * sem_ch6.adb (Analyze_Function_Return): In a rare case where a
3872 function return contains a controlled [extension] aggregate and the
3873 return statement is not part of a handled sequence of statements, wrap
3874 the return in a block. This ensures that all controlled temporaries
3875 generated during aggregate resolution will be picked up by the
3876 finalization machinery.
3877
38782011-08-04 Ed Schonberg <schonberg@adacore.com>
3879
3880 * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized
3881 components, freeze type before resolution, to ensure that default
3882 initializations are present for all components.
3883 * sem_res.adb (Resolve_Actuals): the designated object of an
3884 accces-to-constant type is a legal actual in a call to an
3885 initialization procedure.
3886
38872011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3888
3889 * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and
3890 N_Unchecked_Type_Conversion to the possible containers of a renamed
3891 transient variable.
3892
78efd712
AC
38932011-08-04 Yannick Moy <moy@adacore.com>
3894
3895 * par-ch13.adb (Aspect_Specifications_Present): recognize
3896 "with Identifier'Class =>" as an aspect, so that a meaningful warning
3897 is issued in Strict mode.
3898 * par.adb: Fix typos in comments.
3899
39002011-08-04 Yannick Moy <moy@adacore.com>
3901
3902 * sem_attr.adb (Result): modify error message to take into account Post
3903 aspect when compiling Ada 2012 (or newer) code.
3904
39052011-08-04 Nicolas Roche <roche@adacore.com>
3906
3907 * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to
2c7f9cc0 3908 remove need for GCC exceptions.
78efd712
AC
3909
39102011-08-04 Vincent Celier <celier@adacore.com>
3911
3912 * makeutl.adb (Do_Complete): Call Debug_Output with the name of the
3913 project, not the source file name.
3914 * prj.adb (Find_Sources.Look_For_Sources): If the source has been
3915 excluded, continue looking. This excluded source will only be returned
3916 if there is no other source with the same base name that is not locally
3917 removed.
3918
39192011-08-04 Ed Schonberg <schonberg@adacore.com>
3920
3921 * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is
3922 private and one of the operands is a real literal, use a qualified
3923 expression rather than a conversion which is not meaningful to the
3924 back-end.
3925
0170a691
AC
39262011-08-04 Yannick Moy <moy@adacore.com>
3927
3928 * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise
3929 corresponding aspect X'Class are allowed, proceed with analysis of the
3930 aspect instead of skipping it.
3931
39322011-08-04 Tristan Gingold <gingold@adacore.com>
3933
3934 * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads
3935 This will allow to have an Ada implementation for the subprogram.
3936
deb4f5ba
ES
39372011-08-04 Ed Schonberg <schonberg@adacore.com>
3938
3939 * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a
3940 completion and aspects are present, apply them to the entity for the
3941 type which is currently the partial view, but which is the one that
3942 will be frozen.
3943 * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate
3944 applies to a partial view, indicate that the full view has predicates
3945 and delayed aspects.
3946 (Replace_Type_Reference): Handle properly predicates that apply to the
3947 full view of a private completion.
3948
fc893455
AC
39492011-08-04 Eric Botcazou <ebotcazou@adacore.com>
3950
3951 * layout.adb (Layout_Type): For composite types, do not set Esize.
3952 * freeze.adb (Set_Small_Size): Remove test on alignment and do not
3953 set Esize.
3954 (Size_Known): Look at the RM size of components instead of the Esize.
3955 (Freeze_Record_Type): Look at the RM size instead of the Esize to
3956 issue warning and activate Implicit_Packing.
3957 (Freeze_Entity): Likewise. Do not issue a warning for alias/atomic
3958 if the Esize is not known.
3959 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esize
3960 for elementary types only.
3961 (Analyze_Record_Representation_Clause): Look at the RM size instead
3962 of the Esize to issue errors.
3963 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it
3964 is not known.
3965 <E_Record_Type>: Look at the RM size instead of the Esize. Remove
2c7f9cc0 3966 obsolete block.
fc893455
AC
3967 Look at the RM size instead of the Esize for types if the latter is
3968 not known.
3969 (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.
3970
39712011-08-04 Ed Schonberg <schonberg@adacore.com>
3972
3973 * sem_type.adb: proper handling of equality not involving anonymous
3974 access types.
3975
b37d5bc6
AC
39762011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3977
3978 * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and
3979 Vis_Decls. When creating a library-level finalizer for a package spec,
3980 both the declaration and body of the finalizer are inserted either in
3981 the visible or private declarations of the package spec.
3982
39832011-08-04 Javier Miranda <miranda@adacore.com>
3984
3985 * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the
3986 use of the full-view of a type when invoking Is_Ancestor.
3987 * sem_type.adb (Is_Ancestor): For consistency, when the traversal of
3988 the full-view of private parents is requested, then use also the
3989 full-view of the parent of the first derivation.
3990
7ab4d95a
AC
39912011-08-04 Tristan Gingold <gingold@adacore.com>
3992
3993 * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset
3994 instead of the locally imported procedure.
3995 * s-taprop-mingw.adb (Enter_Task): Ditto.
3996 * s-valrea.adb (Scan_Real): Ditto.
3997 * s-imgrea.adb (Set_Image_Real): Ditto.
3998 * s-flocon.ads: Make the package pure.
3999
40002011-08-04 Thomas Quinot <quinot@adacore.com>
4001
4002 * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.
4003 * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.
4004 * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):
4005 New subprogram, moved here from...
4006 * par.adb, par-ch5.adb (P_Statement_Name): ... here.
4007 * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any
4008 rewriting of the last argument into a procedure call statement here...
4009 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there
4010 instead.
4011
40122011-08-04 Thomas Quinot <quinot@adacore.com>
4013
4014 * par_sco.adb: Minor reformatting.
4015
51c400f5
AC
40162011-08-04 Robert Dewar <dewar@adacore.com>
4017
4018 * erroutc.adb: Minor reformatting.
4019
40202011-08-04 Thomas Quinot <quinot@adacore.com>
4021
4022 * par_sco.adb: Comment update.
4023
40242011-08-04 Tristan Gingold <gingold@adacore.com>
4025
4026 * s-flocon.ads: New file.
4027 * g-flocon.ads: Now a renaming of s-flocon.
4028 * Makefile.rtl: Add s-flocon.o
4029
6a49f110
AC
40302011-08-04 Javier Miranda <miranda@adacore.com>
4031
4032 * exp_strm.adb (Build_Array_Input_Function): if the array type is
4033 constrained, do not attempt to build a subtype of it.
4034
40352011-08-04 Yannick Moy <moy@adacore.com>
4036
4037 * errout.ads Change comments: remove 'R'M as an example where quotes
4038 are needed; add ALFA as another case where quotes are not needed
4039 * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
4040 case where quotes are not needed.
4041 * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
4042 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
4043 Remove all occurrences of 'A'L'F'A
4044
40452011-08-04 Ed Schonberg <schonberg@adacore.com>
4046
4047 * sem_ch13.adb: check legality of invariant pragma.
4048
a4640a39
AC
40492011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4050
4051 * bindgen.adb: Add comments.
4052
40532011-08-04 Yannick Moy <moy@adacore.com>
4054
4055 * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a
4056 synthesized flag.
4057 * sem_prag.adb (Analyze_Pragma): record the pragma Annotate
4058 (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.
4059
40602011-08-04 Robert Dewar <dewar@adacore.com>
4061
4062 * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,
4063 osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,
4064 sem_ch13.adb, s-pooloc.adb: Minor reformatting.
4065
39ade2f9
AC
40662011-08-04 Thomas Quinot <quinot@adacore.com>
4067
4068 * s-pooloc.ads, s-pooglo.ads: Minor reformatting
4069
40702011-08-04 Thomas Quinot <quinot@adacore.com>
4071
4072 PR ada/47880
4073 * s-pooloc.adb (Deallocate): Fix the case of deallocating the only
4074 allocated object.
4075
40762011-08-04 Robert Dewar <dewar@adacore.com>
4077
4078 * einfo.ads, exp_ch4.adb: Minor reformatting.
4079
40802011-08-04 Jerome Lambourg <lambourg@adacore.com>
4081
4082 * back_end.ads (Gen_Or_Update_Object_File): Add more comments.
4083
7efc3f2d
AC
40842011-08-04 Ed Schonberg <schonberg@adacore.com>
4085
4086 * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component
4087 type in all cases to compute list of primitive operations, because full
4088 view may be an itype that is not attached to the list of declarations.
4089
40902011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4091
4092 * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the
4093 library has already been finalized.
4094 (Gen_Adafinal_C): Likewise.
4095 (Gen_Adainit_Ada): Generate an early return if the library has
4096 already been elaborated.
4097 (Gen_Adainit_C): Likewise.
4098 (Gen_Output_File_Ada): Generate an elaboration flag.
4099 (Gen_Output_File_C): Likewise.
4100
f65df609
HK
41012011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4102
4103 * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of
4104 Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not
4105 built in the first place.
4106 (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr
4107 for CodePeer because Finalize_Address was not built to begin with.
4108 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.
4109
a0fb8fe8
AC
41102011-08-04 Pascal Obry <obry@adacore.com>
4111
4112 * adaint.c (__gnat_tmp_name): Use current process id to create temp
4113 filenames, this ensures unicity of filenames across processes.
4114
41152011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4116
4117 * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine
4118 Raise_Controlled to Raise_From_Controlled_Operation. Update the
4119 signature of Raise_From_Controlled_Operation by adding flag From_Abort.
4120 Add False as the actual to From_Abort in the generated call to
4121 Raise_From_Controlled_Operation.
4122
41232011-08-04 Jerome Lambourg <lambourg@adacore.com>
4124
4125 * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration
4126 so that the ali file name can be retrieved from outside of this package.
4127 * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method
4128 doing nothing in the general case, but used to update the object file
4129 timestamp if directly generated by the backend.
4130 * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set
4131 to a later time than the ali file one.
4132
9534ab17
AC
41332011-08-04 Yannick Moy <moy@adacore.com>
4134
4135 * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram
4136 entities whose body contains an Annotate pragma which forces formal
4137 proof on this body.
4138 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
4139 sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to
4140 Mark_Non_ALFA_Subprogram to pass in a message and node.
4141 * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate
4142 (Forma_Proof, On) which sets the flag Formal_Proof_On in the
4143 surrounding subprogram.
4144 * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,
4145 Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked
4146 as not in ALFA is annotated with Formal_Proof being On, then an error
4147 is issued based on the additional parameters for message and node.
4148 * snames.ads-tmpl (Name_Formal_Proof): new name for annotation.
4149 * gcc-interface/Make-lang.in: Update dependencies.
4150
41512011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4152
4153 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate
4154 Finalize_Address when CodePeer is enabled.
4155
41562011-08-04 Pascal Obry <obry@adacore.com>
4157
4158 * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as
4159 the latter returns a pointer to a static buffer which is deallocated
4160 at the end of the routine.
4161
5c0e97dd
AC
41622011-08-04 Yannick Moy <moy@adacore.com>
4163
4164 * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA
4165 after index creation; mark unconstrained base array type generated as
4166 being in/not in ALFA as well
4167 (Make_Index): mark subtype created as in/not in ALFA
4168 * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating
4169 over a loop as in/not in ALFA, depending on its type and form of loop
4170 iteration.
4171
41722011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4173
4174 * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort
4175 directly to False on .NET and JVM.
4176
7a93c64b
YM
41772011-08-04 Yannick Moy <moy@adacore.com>
4178
4179 * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove
4180 constraint that subtype must come from source code to be in ALFA, so
4181 that anonymous subtypes can be in ALFA too.
4182
e9a1ed9b
YM
41832011-08-04 Yannick Moy <moy@adacore.com>
4184
4185 * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of
4186 reference for ALFA mode.
4187 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make
4188 procedure public so as to use it from formal verification back-end.
4189
8e293fbd
AC
41902011-08-04 Jerome Lambourg <lambourg@adacore.com>
4191
4192 * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the
4193 invalid checks of the Parameter, making Remove_Switch not working
4194 correctly.
4195
41962011-08-04 Arnaud Charlet <charlet@adacore.com>
4197
4198 * targparm.ads: Update header: no run-time exception is needed on this
4199 file.
4200
42012011-08-04 Vincent Celier <celier@adacore.com>
4202
4203 * a-fihema.adb: Use System.IO instead of GNAT.IO
4204
42052011-08-04 Thomas Quinot <quinot@adacore.com>
4206
4207 * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types
4208 are forbidden in Compiler_Unit mode.
4209
cfae2bed
AC
42102011-08-04 Robert Dewar <dewar@adacore.com>
4211
4212 * sem_util.adb: Minor reformatting.
4213
42142011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4215
4216 * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for
4217 library-level finalizers.
4218 (Gen_Finalize_Library_C): Update the import string for library-level
4219 finalizers.
4220 (Gen_Finalize_Library_Defs_C): Update the definition name of a
4221 library-level finalizer.
4222 * exp_ch7.adb: Remove with and use clauses for Stringt.
4223 (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,
4224 Spec_Decl. Add local variable Body_Id. The names of library-level
4225 finalizers are now manually fully qualified and are no longer external.
4226 A single name is now capable of servicing .NET, JVM and non-VM targets.
4227 Pragma Export is no longer required to provide visibility for the name.
4228 (Create_Finalizer_String): Removed.
4229 (New_Finalizer_Name): New routine which mimics New_..._Name.
4230
01f0729a
AC
42312011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4232
4233 * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the
4234 elaboration counter to Standard_Short_Integer.
4235 * sem_util.adb (Build_Elaboration_Entity): Likewise.
4236 * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.
4237 (Gen_Elab_Externals_C): Likewise.
4238
42392011-08-04 Ed Falis <falis@adacore.com>
4240
4241 * system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
4242 system-vxworks-ppc.ads, system-vxworks-m68k.ads,
4243 system-vxworks-mips.ads, system-vxworks-x86.ads
4244 (Always_Compatible_Rep): set to False for all VxWorks targets.
4245
2c1b72d7
AC
42462011-08-04 Robert Dewar <dewar@adacore.com>
4247
4248 * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,
4249 makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,
4250 exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,
4251 exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,
4252 exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,
4253 sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,
4254 sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:
4255 Minor reformatting and code reorganization.
4256
42572011-08-04 Emmanuel Briot <briot@adacore.com>
4258
4259 * projects.texi: Added doc for aggregate projects.
4260
824e9320
AC
42612011-08-04 Emmanuel Briot <briot@adacore.com>
4262
4263 * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):
4264 Add support for overriding the Project_Path in aggregate projects.
4265
42662011-08-04 Robert Dewar <dewar@adacore.com>
4267
4268 * a-cofove.ads: Minor reformatting.
4269
42702011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4271
4272 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment
4273 on the generated code.
4274 (Build_Finalize_Statements): Update the comment on the generated code.
4275 (Build_Initialize_Statements): Update the comment on the generated code.
4276 (Build_Object_Declarations): Add local variable Result. The object
4277 declarations are now built in sequence.
4278 * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and
4279 RE_Unit_Table.
4280
42812011-08-04 Robert Dewar <dewar@adacore.com>
4282
4283 * checks.adb, alfa.adb, alfa.ads: Minor reformatting.
4284
42852011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4286
4287 * einfo.ads (Elaboration_Entity): Document new definition and use.
4288 (Elaboration_Entity_Required): Adjust to above change.
4289 * exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
4290 * exp_ch12.adb: And with and use for Snames.
4291 (Expand_N_Generic_Instantiation): Test 'Elaborated attribute.
4292 * exp_util.adb (Set_Elaboration_Flag): Likewise.
4293 * sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.
4294 <Check_Unit_Name>: Deal with N_Expanded_Name.
4295 <Attribute_Elaborated>: Extend to all unit names.
4296 * sem_elab.adb: And with and use for Uintp.
4297 (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.
4298 * sem_util.ads (Build_Elaboration_Entity): Adjust comment.
4299 * sem_util.adb (Build_Elaboration_Entity): Change type to Integer.
4300 * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken
4301 from Gen_Adainit_Ada.
4302 (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.
4303 (Gen_Adafinal_Ada): Remove redundant test. In the non-main program
4304 case, do not call System.Standard_Library.Adafinal; instead call
4305 finalize_library if needed.
4306 (Gen_Adafinal_C): Likewise.
4307 (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the
4308 non-main program case.
4309 (Gen_Adainit_C): Generate a couple of external declarations here.
4310 In the main program case, set SSL.Finalize_Library_Objects.
4311 (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.
4312 (Gen_Elab_Calls_C): Likewise.
4313 (Gen_Finalize_Library_Ada): Likewise. Skip SAL interface units.
4314 (Gen_Finalize_Library_C): Likewise. Generate a full function.
4315 (Gen_Main_C): Put back call to Ada_Final and don't finalize library
4316 objects here.
4317 (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final
4318 if -a is specified. Call Gen_Elab_Externals_Ada. Move around call to
4319 Gen_Adafinal_Ada.
4320 (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final
4321 if -a is specified. Call Gen_Elab_Externals_C. Remove useless couple
2c7f9cc0 4322 of external declarations. Call Gen_Finalize_Library_C.
824e9320 4323
316d9d4f
EB
43242011-08-04 Emmanuel Briot <briot@adacore.com>
4325
4326 * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,
4327 Compute_Compilation_Phases): new subprogram.
4328 (Builder_Data, Builder_Project_Tree_Data): new subprogram and type
4329 The number of mains as well as the various compilation phases that
4330 need to be run are now project tree specific, since various
4331 aggregated trees might have different requirements. In particular,
4332 they do not all require bind or link phases.
4333
9434c32e
EB
43342011-08-04 Emmanuel Briot <briot@adacore.com>
4335
4336 * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb
4337 (Project_Tree_Appdata): New type.
4338 It is now possible to associate application-specific data to a project
4339 tree. In particular, this is used in the gprbuild builder to avoid a
4340 number of global tables and htables, especially now that there can be
4341 several project trees loaded at once because of aggregate projects.
4342 (Debug_Name): new procedure.
4343 * projects.texi: Clarify syntax of "**" for Source_Dirs
4344
41ba34db
EB
43452011-08-03 Emmanuel Briot <briot@adacore.com>
4346
4347 * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts
4348 the "roots" for a main.
4349 (Fill_From_Project): add support for aggregate projects. Main units
4350 in aggregated projects are now automatically added in the list of
4351 files to build (although this fails later on in gprbuild, because
4352 these files are not using the root proejct tree, so this needs
4353 further cleanup)
4354 * gcc-interface/Make-lang.in: Update dependencies.
4355
fccd42a9
AC
43562011-08-03 Yannick Moy <moy@adacore.com>
4357
4358 * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean
4359 conditional expression in ALFA.
4360 * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean
4361 expressions as not in ALFA.
4362
43632011-08-03 Robert Dewar <dewar@adacore.com>
4364
4365 * a-cofove.adb: Minor reformatting.
4366
43672011-08-03 Emmanuel Briot <briot@adacore.com>
4368
4369 * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads
4370 (Insert_Project_Sources, Insert_withed_Sources_For): moved from the
4371 gprbuild sources.
4372 These packages are more logically placed in the Queue package, since
4373 they manipulate the queue. It is also likely that they can be adapted
4374 for gnatmake, thus sharing more code.
4375 (Finish_Program, Fail_Program): moved from the gprbuild sources, so
4376 that we could move the above.
4377
43782011-08-03 Emmanuel Briot <briot@adacore.com>
4379
4380 * errutil.adb (Finalize): clean up the list of error messages on exit.
4381 Calling this subprogram multiple times will no longer show duplicate
4382 error messages on stderr.
4383
43842011-08-03 Emmanuel Briot <briot@adacore.com>
4385
4386 * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter
4387 Getopt_Switches when we have already define a command line
4388 configuration.
4389
5e8c8e44
YM
43902011-08-03 Yannick Moy <moy@adacore.com>
4391
4392 * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not
4393 in ALFA. Instead, they are considered as assertions to prove.
4394 * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such
4395 nodes as not in ALFA. Instead, include conditional expressions in ALFA
4396 if they have no ELSE part, or if they occur in pre- and postconditions,
4397 where the Condition cannot have side-effects in ALFA
4398 (Analyze_Membership_Op): do not mark such nodes as not in ALFA
4399 (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.
4400 Instead, include type conversion between scalar types in ALFA.
4401 * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA
4402 if-and-only-if its type is in ALFA.
4403
5ffe0bab
AC
44042011-08-03 Thomas Quinot <quinot@adacore.com>
4405
4406 * scos.adb, get_scos.adb, put_scos.adb
4407 New code letter for decisions: G (entry guard)
4408 * par_sco.adb
4409 (Traverse_Subprogram_Body): Rename to...
4410 (Traverse_Subprogram_Or_Task_Body): New subrpogram.
4411 (Traverse_Protected_Body): New subprogram
4412 (Traverse_Declarations_Or_Statements): Add traversal of task bodies,
4413 protected bodies and entry bodies.
4414
44152011-08-03 Yannick Moy <moy@adacore.com>
4416
4417 * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure
4418 entities with get/set subprograms, which is set on procedure entities
4419 generated by the compiler for a postcondition.
4420 * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures
4421 * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the
4422 entity for a declaration
4423 (Get_Unique_Entity_For_Decl): new function returning an entity which
4424 represents a declaration, so that matching spec and body have the same
4425 entity.
4426
44272011-08-03 Robert Dewar <dewar@adacore.com>
4428
4429 * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,
4430 a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting
4431
44322011-08-03 Yannick Moy <moy@adacore.com>
4433
4434 * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram
4435 library-level because retriction No_Implicit_Dynamic_Code in the
4436 front-end prevents its definition as a local subprogram
4437 (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,
4438 for reuse in other contexts
4439 (Traverse_Declarations_Or_Statements,
4440 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
4441 Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these
4442 procedures take a callback parameter to be called on all declarations
4443 * lib-xref.ads
4444 (Traverse_All_Compilation_Units): new generic function to traverse a
4445 compilation unit and call a callback parameter on all declarations
4446
f9ad6b62
AC
44472011-08-03 Javier Miranda <miranda@adacore.com>
4448
4449 * sem_prag.adb (Process_Interface_Name): Allow duplicated export names
4450 in Java since they are always enclosed in a namespace that
4451 differentiates them, and overloaded entities are supported by the VM.
4452
44532011-08-03 Ed Schonberg <schonberg@adacore.com>
4454
4455 * checks.adb (Determine_Range): If a computed bound of an operation is
4456 outside the range of the base type of the expression, and overflow
4457 checks are enabled, the result is unknown and cannot be used for any
4458 subsequent constant folding.
4459 * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are
4460 unknown, so is the result of the comparison.
4461
44622011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4463
4464 * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal
4465 From_Abort. When finalization was triggered by an abort, propagate
4466 Standard'Abort_Signal rather than Program_Error.
4467 * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal
4468 From_Abort.
4469 * a-except.adb (Raise_From_Controlled_Operation): Add new formal
4470 From_Abort. When finalization was triggered by an abort, propagate
4471 Standard'Abort_Signal rather than Program_Error.
4472 * a-except.ads:(Raise_From_Controlled_Operation): Add new formal
4473 From_Abort.
4474 * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable
4475 Abort_Id. Update the calls to Build_Object_Declarations and
4476 Build_Raise_Statement to include Abort_Id.
4477 (Build_Adjust_Statements): New local variable Abort_Id. Update the
4478 calls to Build_Object_Declarations and Build_Raise_Statement to include
4479 Abort_Id.
4480 (Build_Finalize_Statements): New local variable Abort_Id. Update the
4481 calls to Build_Object_Declarations and Build_Raise_Statement to include
4482 Abort_Id.
4483 (Build_Components): Create an entity for Abort_Id when exceptions are
4484 allowed on the target.
4485 (Build_Finalizer): New local variable Abort_Id.
4486 (Build_Initialize_Statements): New local variable Abort_Id. Update the
4487 calls to Build_Object_Declarations and Build_Raise_Statement to include
4488 Abort_Id.
4489 (Build_Object_Declarations): Add new formal Abort_Id. Create the
4490 declaration of flag Abort_Id to preserve the original abort status
4491 before finalization code is executed.
4492 (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to
4493 runtime routine Raise_From_Controlled_Operation.
4494 (Create_Finalizer): Update the call to Build_Raise_Statement to include
4495 Abort_Id. Update the call to Build_Object_Declarations to include
4496 Abort_Id. Update the layout of the finalizer body.
4497 (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.
4498 (Process_Transient_Objects): New local variable Abort_Id. Remove the
4499 clunky code to create all flags and objects related to
4500 exception propagation and replace it with a call to
4501 Build_Object_Declarations. Update the call to Build_Raise_Statement to
4502 include Abort_Id.
4503 * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.
4504 Add new formal Abort_Id and associated comment on its use.
4505 (Build_Raise_Statement): Add new formal Abort_Id and associated comment
4506 on its use.
4507 * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.
4508 Remove the clunky code to create all flags and objects related to
4509 exception propagation and replace it with a call to
4510 Build_Object_Declarations. Update the call to Build_Raise_Statement.
4511
45122011-08-03 Eric Botcazou <ebotcazou@adacore.com>
4513
4514 * s-tassta.adb: Fix minor typos.
4515
45162011-08-03 Robert Dewar <dewar@adacore.com>
4517
4518 * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,
4519 lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.
4520
1cdfa9be
AC
45212011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4522
4523 * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion
4524 to packages. This ensures that the finalizer body will not end up
4525 inside the freeze node.
4526 (Process_Declarations): Add code to detect whether a freeze node has a
4527 nested finalization collection.
4528
45292011-08-03 Pascal Obry <obry@adacore.com>
4530
4531 * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.
4532 (Current_Session): Return a not null access to Session_Type.
4533 (Default_Session): Likewise.
4534
243cae0a
AC
45352011-08-03 Robert Dewar <dewar@adacore.com>
4536
4537 * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,
4538 exp_ch3.adb, exp_ch3.ads: Minor reformatting.
4539
45402011-08-03 Pascal Obry <obry@adacore.com>
4541
4542 * g-awk.ads: Minor comment fix.
4543
45442011-08-03 Sergey Rybin <rybin@adacore.com>
4545
4546 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
4547 the tree structure related to discriminant constraints.
4548 Original_Discriminant cannot be used any more for computing the
4549 defining name for the reference to a discriminant.
4550
45512011-08-03 Ed Schonberg <schonberg@adacore.com>
4552
4553 * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the
4554 function is not visibly tagged, this is not a dispatching call and
4555 therfore is not Tag_Indeterminate, even if the function is marked as
4556 dispatching on result.
4557
f553e7bc
AC
45582011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4559
4560 * exp_ch13.adb: Add with and use clauses for Restrict and Rident.
4561 (Expand_N_Free_Statement): Add a guard to protect against run-times
4562 which do not support controlled types.
4563 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
4564 against run-times which do not support controlled types.
4565 * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
4566 against run-times which do not support controlled types.
4567 * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
4568 against run-times which do not support controlled types.
4569 * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
4570 protect against run-times which do not support controlled types.
4571
45722011-08-03 Eric Botcazou <ebotcazou@adacore.com>
4573
4574 * exp_intr.adb: Put back with and use clauses for Exp_Ch11.
4575 (Expand_Unc_Deallocation): Expand the AT_END handler at the very end.
4576
e4982b64
AC
45772011-08-03 Ed Schonberg <schonberg@adacore.com>
4578
4579 * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
4580 modified in the source, to prevent spurious warnings when compiling
4581 with -gnatg.
4582
45832011-08-03 Thomas Quinot <quinot@adacore.com>
4584
4585 * a-except-2005.adb: Minor reformatting.
4586
45872011-08-03 Ed Schonberg <schonberg@adacore.com>
4588
4589 * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
4590 is a renaming declaration in the private part of a package, do not emit
4591 a warning that the with_clause could be moved because the renaming may
4592 be used in the body or in a child unit.
4593
45942011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4595
4596 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
4597 Propagate the Comes_From_Source attribute from the original return
4598 object to the renaming.
4599
46002011-08-03 Jose Ruiz <ruiz@adacore.com>
4601
4602 * exp_ch7.adb (Build_Raise_Statement): Do not call
4603 Raise_From_Controlled_Operation when this routine is not present in
4604 the run-time library.
4605 (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
4606 libraries (Ravenscar), tasks are non-terminating, and protected objects
4607 and tasks can only appear at library level, so we do not want
4608 finalization of protected objects nor tasks.
4609 * exp_intr.adb: Minor clarification in comment.
4610 bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
4611 Gen_Output_File_C): Remove references to finalization of library-level
4612 objects when using restricted run-time libraries.
4613
46142011-08-03 Ed Schonberg <schonberg@adacore.com>
4615
4616 * sem_ch3.adb (Build_Discriminant_Constraints): Set
4617 Original_Discriminant only if the parent type is a generic formal.
4618
deb8dacc
HK
46192011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4620
4621 * exp_ch13.adb: Add with and use clause for Targparm;
4622 (Expand_N_Free_Statement): Prevent the generation of a custom
4623 Deallocate on .NET/JVM targets since this requires pools and address
4624 arithmetic.
4625 * exp_ch4.adb (Expand_Allocator_Expression): When compiling for
4626 .NET/JVM targets, attach the newly allocated object to the access
4627 type's finalization collection. Do not generate a call to
4628 Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
4629 exist in the runtime.
4630 (Expand_N_Allocator): When compiling for .NET/JVM targets, do not
4631 create a custom Allocate for object that do not require initialization.
4632 Attach a newly allocated object to the access type's finalization
4633 collection on .NET/JVM.
4634 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
4635 assignment of controlled types on .NET/JVM. The two hidden pointers
4636 Prev and Next and stored and later restored after the assignment takes
4637 place.
4638 * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
4639 kludge for .NET/JVM to recognize a particular piece of code coming from
4640 Heap_Management and change the call to Finalize into Deep_Finalize.
4641 * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
4642 finalization collections on .NET/JVM only for types derived from
4643 Controlled. Separate the association of storage pools with a collection
4644 and only allow it on non-.NET/JVM targets.
4645 (Make_Attach_Call): New routine.
4646 (Make_Detach_Call): New routine.
4647 (Process_Object_Declarations): Suppress the generation of
4648 build-in-place return object clean up code on .NET/JVM since it uses
4649 pools.
4650 * exp_ch7.ads (Make_Attach_Call): New routine.
4651 (Make_Detach_Call): New routine.
4652 * exp_intr.adb Add with and use clause for Targparm.
4653 (Expand_Unc_Deallocation): Detach a controlled object from a collection
4654 on .NET/JVM targets.
4655 * rtsfind.ads: Add entries RE_Attach, RE_Detach and
4656 RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
4657 * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
4658 names used in finalization.
4659
46602011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4661
4662 * a-fihema.adb: Add with and use clauses for System.Soft_Links.
4663 (Attach, Detach): Lock the current task when chaining an object onto a
4664 collection.
4665
df3e68b1
HK
46662011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4667
4668 * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
4669 Rewritten to create the message strings when the exception is not
4670 raised by an abort during finalization.
4671 * a-except.ads, a-except-2005.ads: Add pragma Export for procedure
4672 Raise_From_Controlled_Operation and update its associated comment.
4673 * a-fihema.ads, a-fihema.adb: New GNAT unit.
4674 Ada.Finalization.Heap_Management provides key functionality
4675 associated with controlled objects on the heap, their creation,
4676 finalization and reclamation. Type Finalization_Collection is
4677 effectively a wrapper which sits ontop of a storage pool and performs
4678 all necessary bookkeeping for all the objects it contains. Each
4679 access-to-controlled or access-to-class-wide type receives a collection
4680 as part of its expansion. The compiler generates buffer code and
4681 invokes Allocate / Deallocate to create and destroy allocated
4682 controlled objects.
4683 * a-finali.adb ("="): Removed.
4684 * a-finali.ads ("="): Removed. Controlled types no longer carry hidden
4685 fields Prev and Next.
4686 * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
4687 A library unit with at least one controlled object on the library level
4688 has a special finalizer which is invoked by the binder. To signal this,
4689 ali files carry field PF.
4690 * ali.ads: New field in type Unit_Record called Has_Finalizer. Add
4691 associated comment on field usage.
4692 * a-tags.adb (Get_RC_Offset): Removed.
4693 (Needs_Finalization): New routine.
4694 * a-tags.ads: Update the structure of the GNAT dispatch tables.
4695 Dispatch tables now carry field Needs_Finalization which provides
4696 runtime indication whether a type is controlled or has controlled
4697 components or both. Remove field RC_Offset.
4698 (Get_RC_Offset): Removed along with its associated pragma Export.
4699 Since tagged types with controlled components no longer carry hidden
4700 field _controller, the special mechanism to retrieve its location is no
4701 longer needed.
4702 (Needs_Finalization): New routine.
4703 * atree.ads, atree.adb (Elist24): New routine.
4704 (Set_Elist24): New routine.
4705 * atree.h: Add a define clause for Elist24.
4706 * bindgen.adb New library-level variable Lib_Final_Built.
4707 (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
4708 presence of a VM target, the routine generates calls to the proper
4709 library finalization routine.
4710 (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
4711 targets. Set the correct library finalization routine depending on
4712 whether the library has controlled objects or this is a VM compilation.
4713 (Gen_Finalize_Library_Ada): New routine. This procedure generates calls
4714 to library-level finalizers of compiled units in reverse order of
4715 elaboration. It also produces exception management code and reraises a
4716 potential exception after all units have been finalized.
4717 (Gen_Finalize_Library_C): New routine. This procedure generates calls to
4718 library-level finalizers of compiled units in reverse order of
4719 elaboration.
4720 (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
4721 definitions of all library-level finalizers available to the compilation
4722 (Gen_Main_Ada): Directly call Adafinal which now contails all target
4723 dependent code.
4724 (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
4725 System.Standard_Library.Adafinal directly. If the library needs
4726 finalization actions, create the sequence of finalization calls.
4727 (Gen_Output_File_Ada): Alphabetize local variables and constants.
4728 Generate a with clause for System.Soft_Links when compiling for a VM.
4729 Remove the code which imports System.Standard_Library.Adafinal as
4730 Do_Finalize. Generate the library finalization routine.
4731 (Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
4732 If the library needs finalization actions, create all the definitions
4733 of library- level finalizers.
4734 (Has_Finalizer): New routine. Determines whether at least one compiled
4735 unit has a library-level finalizer.
4736 Add type Qualification_Mode.
4737 (Set_Unit_Name): Add a formal which controls the replacement of a dot.
4738 * einfo.adb: New usage of field 15 as Return_Flag.
4739 Remove Finalization_Chain_Entity from the usages of field 19.
4740 Remove Associated_Final_Chain from the usages of field 23.
4741 New usage of field 23 as Associated_Collection.
4742 New usage of field 24 as Finalizer.
4743 New usage of flag 252 as Is_Processed_Transient.
4744 (Associated_Final_Chain): Removed.
4745 (Associated_Collection): New routine.
4746 (Finalization_Chain_Entity): Removed.
4747 (Finalizer): New routine.
4748 (Is_Finalizer): New routine.
4749 (Is_Processed_Transient): New routine.
4750 (Return_Flag): New routine.
4751 (Set_Associated_Final_Chain): Removed.
4752 (Set_Associated_Collection): New routine.
4753 (Set_Finalization_Chain_Entity): Removed.
4754 (Set_Finalizer): New routine.
4755 (Set_Is_Processed_Transient): New routine.
4756 (Set_Return_Flag): New routine.
4757 (Write_Entity_Flags): Include Is_Processed_Transient to the list of
4758 displayed flags.
4759 (Write_Field8_Name): Alphabetize the output.
4760 (Write_Field11_Name): Alphabetize the output.
4761 (Write_Field12_Name): Alphabetize the output.
4762 (Write_Field13_Name): Alphabetize the output.
4763 (Write_Field14_Name): Alphabetize the output.
4764 (Write_Field15_Name): Alphabetize the output.
4765 (Write_Field16_Name): Alphabetize the output.
4766 (Write_Field17_Name): Alphabetize the output.
4767 (Write_Field18_Name): Alphabetize the output.
4768 (Write_Field19_Name): Alphabetize the output. Remove the output of
4769 Finalization_Chain_Entity.
4770 (Write_Field20_Name): Alphabetize the output.
4771 (Write_Field21_Name): Alphabetize the output.
4772 (Write_Field22_Name): Alphabetize the output.
4773 (Write_Field23_Name): Alphabetize the output. Remove the output of
4774 Associated_Final_Chain. Add output for Associated_Collection.
4775 (Write_Field24_Name): Alphabetize the output.
4776 (Write_Field25_Name): Add output for Finalizer.
4777 (Write_Field26_Name): Alphabetize the output.
4778 (Write_Field27_Name): Alphabetize the output.
4779 (Write_Field28_Name): Alphabetize the output.
4780 * einfo.ads: Add new field description for Associated_Collection and
4781 its uses in nodes.
4782 Remove Associated_Final_Chain and its uses in nodes.
4783 Remove Finalization_Chain_Entity and its uses in nodes.
4784 Add new field description for Finalizer and its uses in nodes.
4785 Add new synthesized attribute Is_Finalizer.
4786 Add new flag description for Is_Processed_Transient and its uses in
4787 nodes.
4788 Add new field description for Return_Flag and its uses in nodes.
4789 (Associated_Final_Chain): Removed along with its pragma Inline.
4790 (Associated_Collection): New routine and pragma Inline.
4791 (Finalization_Chain_Entity): Removed along with its pragma Inline.
4792 (Finalizer): New routine and pragma Inline.
4793 (Is_Finalizer): New routine and pragma Inline.
4794 (Is_Processed_Transient): New routine and pragma Inline.
4795 (Return_Flag): New routine and pragma Inline.
4796 (Set_Associated_Final_Chain): Removed along with its pragma Inline.
4797 (Set_Associated_Collection): New routine and pragma Inline.
4798 (Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
4799 (Set_Finalizer): New routine and pragma Inline.
4800 (Set_Is_Processed_Transient): New routine and pragma Inline.
4801 (Set_Return_Flag): New routine and pragma Inline.
4802 * exp_aggr.adb: Alphabetize subprograms.
4803 (Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
4804 (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
4805 associated comments. Remove local variables External_Final_List and
4806 Attach.
4807 Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
4808 Ancestor. Remove the retrieval of finalization lists. Update the call to
4809 Make_Adjust_Call.
4810 (Convert_Aggr_In_Allocator): Remove the retrieval of finalization
4811 lists. Update the call to Late_Expansion.
4812 (Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
4813 (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
4814 (Gen_Assign): Remove the retrieval of the finalization list used to
4815 build the assignment. Update the calls to Make_Init_Call and
4816 Make_Adjust_Call.
4817 (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
4818 Remove the mechanism to determine attachment levels and finalization
4819 list retrieval. Remove the processing for coextensions.
4820 (Init_Controller): Removed. Controllers no longer exist.
4821 (Late_Expansion): Remove formals Flist and Obj along with their
4822 associated comments. Update the calls to Build_Record_Aggr_Code and
4823 Build_Array_Aggr_Code.
4824 * exp_ch13.adb (Expand_N_Free_Statement): New routine.
4825 (Expand_N_Freeze_Entity): Add special processing for finalizers which
4826 appear in entry bodies, protected subprograms and task bodies.
4827 * exp_ch13.ads (Expand_N_Free_Statement): New routine.
4828 * exp_ch3.adb (Add_Final_Chain): Removed.
4829 (Build_Array_Init_Proc): Alphabetize local variables.
4830 (Build_Assignment): Alphabetize local variables. Update the call to
4831 Maked_Adjust_Call.
4832 (Build_Class_Wide_Master): Rename local variables to better reflect
4833 their role.
4834 (Build_Discriminant_Assignments): Code reformatting.
4835 (Build_Init_Call_Thru): Code reformatting.
4836 (Build_Init_Procedure): Code reformatting. Generate a special version
4837 of Deep_Finalize which is capable of finalizing all initialized
4838 components and ignore the rest.
4839 (Build_Init_Statements): Rename local variables to better reflect their
4840 role.
4841 Reimplement the mechanism to include the creation and update of an index
4842 variable called a "counter". It is used as a bookmark for tracing
4843 initialized and non-initialized components.
4844 (Build_Initialization_Call): Remove local variable Controller_Typ.
4845 Alphabetize all local variables. Remove the initialization of the
4846 record controller and update the call to Make_Init_Call.
4847 (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
4848 New local variable Counter.
4849 (Constrain_Array): Alphabetize.
4850 (Expand_Freeze_Array_Type): Create a collection instead of a
4851 finalization list.
4852 (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
4853 Finalize_Address which is used in conjunction with allocated controlled
4854 objects.
4855 (Expand_N_Object_Declaration): Remove the creation of a finalization
4856 list for anonymous access types. Update the calls to Make_Init_Call and
4857 Make_Adjust_Call.
4858 (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
4859 retrieval of finalization lists. Remove the expansion of the record
4860 controller. Create TSS primitive Finalize_Address used in conjunction
4861 with controlled objects on the heap. Create finalization collections
4862 for access-to-controlled record components.
4863 (Expand_Record_Controller): Removed.
4864 (Freeze_Type): Remove the freezing of record controllers. Freezing of
4865 class-wide types now requires additional processing. Create
4866 finalization collections for access-to-controlled types.
4867 (Increment_Counter): New routine.
4868 (Make_Counter): New routine.
4869 (Make_Eq_If): Remove the mention of Name_uController.
4870 (Make_Predefined_Primitive_Specs): There is no longer need to skip
4871 types coming from System.Finalization_Root.
4872 (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
4873 (Predefined_Primitive_Bodies): There is no longer need to skip types
4874 coming from System.Finalization_Root.
4875 (Stream_Operation_OK): Do not generate stream routines for
4876 type Ada.Finalization.Heap_Management.Finalization_Collection.
4877 * exp_ch3.ads: Alphabetize subprograms.
4878 * exp_ch4.adb: Remove with and use clause for Sem_Ch8.
4879 Add with and use clause for Lib.
4880 (Complete_Coextension_Finalization): Removed.
4881 (Complete_Controlled_Allocation): New routine. Create a finalization
4882 collection for anonymous access-to-controlled types. Create a custom
4883 Allocate which interfaces with the back end and the machinery in
4884 Heap_Management.
4885 (Expand_Allocator_Expression): Add necessary calls to
4886 Complete_Controlled_Allocation. Remove the retrieval of finalization
4887 lists. Update the calls to Make_Adjust_Call. Generate a call to
4888 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
4889 the associated collection.
4890 (Expand_N_Allocator): Remove the processing for dynamic coextensions.
4891 Code clean up. Remove the retrieval of finalization lists and
4892 attachment levels.
4893 Update the call to Make_Init_Call. Generate a call to
4894 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
4895 the associated collection.
4896 (Get_Allocator_Final_List): Removed. Finalization lists are not
4897 available.
4898 (Suitable_Element): Remove the mention of Name_uController.
4899 * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
4900 (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
4901 the left hand side, carry out the assignment and adjust the left hand
4902 side.
4903 * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
4904 (Add_Collection_Actual_To_Build_In_Place_Call): New routine.
4905 (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
4906 BIP_Collection and BIPcollection.
4907 (Build_Heap_Allocator): New routine used to allocate the return object
4908 of a build-in-place function onto a collection.
4909 (Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
4910 (Expand_Call): Do not replace direct calls to Deep routines with their
4911 aliases.
4912 (Expand_N_Extended_Return_Statement): Give all variables shorter names
4913 and update their occurrences. Add a special return flag to monitor the
4914 [ab]normal execution of the function. The flag is set right before the
4915 return statement.
4916 Rewrite the mechanism used to allocate a build-in-place return object
4917 on the heap or on a storage pool.
4918 (Is_Direct_Deep_Call): New routine.
4919 (Make_Build_In_Place_Call_In_Allocator): Add a collection to a
4920 build-in-place function call instead of a final list. Build a call to
4921 Set_Finalize_Address_Ptr to decorate the associated collection.
4922 (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
4923 order to name the build-in-place function call's result for later
4924 finalization. Add a collection to a build-in-place function call
4925 instead of a final list.
4926 (Make_Build_In_Place_Call_In_Assignment): Add a collection to a
4927 build-in-place function call instead of a final list. Remove the code
4928 which moves one final list and transforms it into the actual in a
4929 nested build-in-place call.
4930 (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
4931 build-in-place function call instead of a final list.
4932 (Move_Final_List): Removed.
4933 (Needs_BIP_Collection): New routine.
4934 (Needs_BIP_Final_List): Removed.
4935 * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
4936 enumeration type BIP_Formal_Kind.
4937 Update the related comment.
4938 (Needs_BIP_Collection): New routine.
4939 (Needs_BIP_Final_List): Removed.
4940 * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
4941 and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
4942 majority of subprograms in this unit. Add Name_Finalize_Address to
4943 array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
4944 (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
4945 statements for an array type.
4946 (Build_Adjust_Statements): Create the adjust statements for a record
4947 type.
4948 (Build_Cleanup_Statements): New routine. A procedure which given any
4949 construct containing asynchronous calls, references to _master, or is a
4950 task body, a task allocation or a protected body produces the necessary
4951 runtime calls to clean up these constructs.
4952 (Build_Exception_Handler): New routine.
4953 (Build_Final_List): Removed.
4954 (Build_Finalization_Collection): New routine. A core procedure which
4955 creates a collection to service heap allocated controlled objects
4956 associated with an access-to-controlled type.
4957 (Build_Finalize_Statements): Create the finalization statements for a
4958 record types.
4959 (Build_Finalizer): New routine. A core procedure which given any
4960 construct with declarations and/or statements detects all objects which
4961 need any type of clean up (controlled objects, protected objects) and
4962 generates all necessary code to clean up the said objects in the proper
4963 order.
4964 (Build_Finalizer_Call): New routine.
4965 (Build_Initialize_Statements): Create the initialization statements for
4966 an array type. The generated routine contains code to finalize partially
4967 initialized arrays.
4968 (Build_Object_Declarations): New routine.
4969 (Build_Raise_Statement): New routine.
4970 (Clean_Simple_Protected_Objects): Removed.
4971 (Controller_Component): Removed.
4972 (Enclosing_Function): New routine.
4973 (Expand_Cleanup_Actions): Create a finalizer for a construct which has
4974 either declarations or statements or both.
4975 (Expand_N_Package_Body): Create a finalizer for a non-generic package.
4976 (Expand_N_Package_Declaration): Create a finalizer for a non-generic
4977 package.
4978 (Find_Final_List): Removed.
4979 (Global_Flist_Ref): Removed.
4980 (In_Finalization_Root): Removed.
4981 (Insert_Actions_In_Scope_Around): Determine the range of the transient
4982 scope in terms of tree nodes. Process all transient variables within
4983 that range.
4984 (Make_Adjust_Call): Rewritten. There is no longer an attach call
4985 generated after the adjust.
4986 (Make_Attach_Call): Removed.
4987 (Make_Call): New routine.
4988 (Make_Clean): Removed.
4989 (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
4990 build routines.
4991 (Make_Deep_Proc): Rewritten to generate the new profile signature used
4992 in Deep routines.
4993 (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
4994 build routines.
4995 (Make_Final_Call): Modified to simply create a call to either
4996 Deep_Finalize or Finalize.
4997 (Make_Finalize_Address_Body): New routine.
4998 (Make_Finalize_Address_Stmts): New routine. A function which produces
4999 TSS primitive Finalize_Address used in conjunction with heap allocated
5000 controlled objects.
5001 (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
5002 (Make_Init_Call): Rewritten. There is no longer an attach call
5003 generated after initialization.
5004 (Make_Local_Deep_Finalize): New routine.
5005 (Make_Set_Finalize_Address_Ptr_Call): New routine.
5006 (Make_Transient_Block): Remove the finalization list retrieval and
5007 manipulation.
5008 (Needs_Finalization): Moved to Exp_Util.
5009 (Parent_Field_Type): New routine.
5010 (Preprocess_Components): New routine.
5011 (Process_Transient_Objects): New routine.
5012 (Wrap_HSS_In_Block): New routine.
5013 (Wrap_Transient_Declaration): Remove finalization list management and
5014 controller insertion.
5015 (Wrap_Transient_Expression): Code reformatting.
5016 (Wrap_Transient_Statement): Code reformatting.
5017 * exp_ch7.ads (Build_Final_List): Removed.
5018 (Build_Finalization_Collection): New routine.
5019 (Build_Raise_Statement): New routine.
5020 (Controller_Component): Removed.
5021 (Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
5022 (Find_Final_List): Removed.
5023 (In_Finalization_Root): Removed.
5024 (Is_Simple_Protected_Type): Update related comment.
5025 (Make_Adjust_Call): New parameter profile and associated comments.
5026 (Make_Attach_Call): Removed.
5027 (Make_Final_Call): New parameter profile and associated comments.
5028 (Make_Finalize_Address_Body): New routine.
5029 (Make_Init_Call): New parameter profile and associated comments.
5030 (Make_Local_Deep_Finalize): New routine.
5031 (Make_Set_Finalize_Address_Ptr_Call): New routine.
5032 (Needs_Finalization): Moved to Exp_Util.
5033 * exp_ch9.adb (Add_Object_Pointer): Code reformatting.
5034 (Expand_N_Protected_Body): Remove the handling of finalization lists.
5035 (Find_Protection_Type): Moved to Exp_Util.
5036 * exp_disp.adb: Remove with and use clauses for Exp_Ch7.
5037 (Make_DT): Update sequence of dispatch table initialization. Remove the
5038 initialization of field RC_Offset. Add initialization of field Needs_
5039 Finalization.
5040 * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
5041 Reimplement how an object is first finalized, then deallocated.
5042 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
5043 Code reformatting.
5044 * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
5045 Register TSS_Finalize_Address with type TSS_Names.
5046 * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
5047 procedure provides the interface between an allocation / deallocation
5048 and the support machinery in Ada.Finalization.Heap_Management.
5049 (Find_Init_Call): Code reformatting.
5050 (Find_Init_Call_In_List): Code reformatting.
5051 (Find_Protection_Type): Moved from Exp_Ch9.
5052 (Find_Prim_Op): Reimplement to add preference of recovered primitive.
5053 (Has_Controlled_Coextensions): Removed.
5054 (Has_Controlled_Objects): New routine.
5055 (In_Library_Level_Package_Body): New routine.
5056 (Insert_Action_After): New routine.
5057 (Is_Finalizable_Transient): New routine. This predicate determines
5058 whether an object declaration is one of the many variants of controlled
5059 transients.
5060 (Is_Null_Access_BIP_Func_Call): New routine.
5061 (Is_Non_BIP_Func_Call): New routine.
5062 (Is_Related_To_Func_Return): New routine.
5063 (Needs_Finalization): Moved from Exp_Ch7.
5064 * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
5065 (Find_Protection_Type): Moved from Exp_Ch9.
5066 (Has_Controlled_Coextensions): Removed.
5067 (Has_Controlled_Objects): New routine.
5068 (In_Library_Level_Package_Body): New routine.
5069 (Insert_Action_After): New routine.
5070 (Is_Finalizable_Transient): New routine.
5071 (Is_Null_Access_BIP_Func_Call): New routine.
5072 (Is_Non_BIP_Func_Call): New routine.
5073 (Is_Related_To_Func_Return): New routine.
5074 (Needs_Finalization): Moved from Exp_ch7.
5075 * expander.adb (Expand): Add a case for N_Free_Statement.
5076 * freeze.adb (Freeze_All): Replace the generation of a finalization
5077 list with a collection for access-to-controlled types.
5078 (Freeze_Entity): Code reformatting.
5079 (Freeze_Record_Type): Remove the freezing of a record controller
5080 component.
5081 (Freeze_Subprogram): Code reformatting.
5082 * inline.adb (Cleanup_Scopes): Remove the reset of the scope
5083 finalization list.
5084 * lib-writ.adb (Write_Unit_Information): Output "PF" when a package
5085 has a library-level finalizer.
5086 * lib-writ.ads: Add "PF" to the sequence of unit attributes.
5087 * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
5088 * Makefile.rtl: Remove a-filico and s-finimp from the list of object
5089 files. Add a-fihema to the list of object files.
5090 * par-ch4.adb:
5091 Alphabetize the associations in type Is_Parameterless_Attribute.
5092 * rtsfind.ads: Ada.Finalization_List.Controller and
5093 System.Finalization_Implementation are no longer a GNAT unit.
5094 Update the range of type Ada_Finalization_Child. Remove the following
5095 recoverable entities:
2c7f9cc0 5096
df3e68b1
HK
5097 RE_Attach_To_Final_List
5098 RE_Deep_Tag_Attach
5099 RE_Finalize_List
5100 RE_Finalize_One
5101 RE_Finalizable_Ptr_Ptr
5102 RE_Global_Final_List
5103 RE_Limited_Record_Controller
5104 RE_List_Controller
5105 RE_Move_Final_List
5106 RE_Record_Controller
5107 RE_Simple_List_Controller
2c7f9cc0 5108
df3e68b1 5109 Add the following recoverable entities:
2c7f9cc0 5110
df3e68b1
HK
5111 RE_Add_Offset_To_Address
5112 RE_Allocate
5113 RE_Base_Pool
5114 RE_Deallocate
5115 RE_Exception_Identity
5116 RE_Finalization_Collection
5117 RE_Finalization_Collection_Ptr
5118 RE_Needs_Finalization
5119 RE_Save_Library_Occurrence
5120 RE_Set_Finalize_Address_Ptr
5121 RE_Set_Storage_Pool_Ptr
5122 RE_Storage_Count
5123 * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
5124 Name_uController.
5125 * sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
5126 (First_Stored_Discriminant): Remove the mention of Name_uController.
5127 * sem_aux.ads: Comment reformatting.
5128 * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
5129 to redecorate an already existing class-wide type.
5130 (Decorate_Tagged_Type): New parameter profile and associated comment.
5131 Create a "shadow class-wide type" for a shadow entity.
5132 * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
5133 of the final chain along with the associated comment.
5134 * sem_ch3.adb (Access_Type_Declaration): Add new local variable
5135 Full_Desig and set it to the full view of the designated type.
5136 Initialize the finalization collection to empty.
5137 (Build_Derived_Record_Type): Alphabetize local variables. Code
5138 reformatting.
5139 (Collect_Fixed_Components): Remove the mention of Name_uController.
5140 (Create_Constrained_Components): Remove the mention of Name_uController.
5141 (Make_Class_Wide_Type): Add specialized code to redecorate an existing
5142 class-wide type of a shadow entity.
5143 (Process_Full_View): Update the machinery which marks type
5144 Limited_Controlled's entity as limited.
5145 * sem_ch4.adb (Analyze_One_Call): Code reformatting.
5146 * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
5147 list, instead make a collection build-in-place formal.
5148 * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
5149 a designated type in order to establish a match between the renaming
5150 and the renamed entity.
5151 (Find_Selected_Component): Add guard to prevent spurious exceptions
5152 from being raised on .NET/JVM.
5153 * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
5154 to the list of primitive that need special processing. Update arrays
5155 C_Names and D_Names.
5156 (Replace_Types): Handle class-wide types.
5157 * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
5158 different parameter profile, look at the first formal.
5159 * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
5160 use clauses for Exp_Util.
5161 * sem_res.adb: Remove with and use clauses for Elists.
5162 (Propagate_Coextensions): Removed.
5163 (Resolve_Allocator): Do not propagate the list of coextensions from one
5164 allocator to another.
5165 * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
5166 Deaccessed_T to Desig_Typ.
5167 (Enter_Name): Remove the mention of Name_uController.
5168 (Gather_Components): Remove the mention of Name_uController.
5169 (Incomplete_Or_Private_View): New routine.
5170 (Is_Coextension_Root): Removed.
5171 (Is_Fully_Initialized_Type): Remove the mention of Name_uController.
5172 * sem_util.ads (Incomplete_Or_Private_View): New routine.
5173 (Is_Coextension_Root): Removed.
5174 * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
5175 Controlled types are now derived from a null tagged record. Remove
5176 types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
5177 * sinfo.adb (Coextensions): Removed.
5178 (Set_Coextensions): Removed.
5179 * sinfo.ads: Remove Coextensions from the explanation of node fields
5180 and its uses in nodes.
5181 Update the field usage of N_Allocator.
5182 (Coextensions): Removed along with its pragma Inline.
5183 (Set_Coextensions): Removed along with its pragma Inline.
5184 * snames.ads-tmpl: Remove names
2c7f9cc0 5185
df3e68b1
HK
5186 Name_uClean
5187 Name_uController
5188 Name_uFinal_List
5189 Name_uLocal_Final_List
5190 Name_Finalization_Root
5191 Name_Next
5192 Name_Prev
2c7f9cc0 5193
df3e68b1 5194 Add names
2c7f9cc0 5195
df3e68b1
HK
5196 Name_uFinalizer
5197 Name_Finalize_Address
5198 * s-pooglo.adb (Allocate): Add overriding indicator.
5199 (Deallocate): Add overriding indicator.
5200 (Storage_Size): Add overriding indicator.
5201 * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
5202 than Finalize_Global_List.
5203 (Null_Finalize_Global_List): Removed.
5204 (Save_Library_Occurrence): New routine.
5205 * s-soflin.ads: Remove variable Finalize_Global_List along with its
5206 initialization. Add variable Finalize_Library_Objects along with its
5207 pragma Export. Add variables Library_Exception and
5208 Library_Exception_Set along with their pragma Export.
5209 (Null_Finalize_Global_List): Removed.
5210 (Save_Library_Occurrence): New routine.
5211 * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
5212 rather than Finalize_Global_List.
5213 * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
5214 of the constructed node.
5215
2ee06322
RO
52162011-08-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5217
5218 * link.c: Include "auto-host.h" before system headers.
5219
f77b022b
VC
52202011-08-03 Vincent Celier <celier@adacore.com>
5221
5222 * make.adb (Gnatmake): Add to table Library_Projs only library projects
5223 that are not extended. Do not check if a library project that is
5224 extended should be regenerated. Do not add to table Library_Paths the
5225 libraries that are in extended projects. Link only with libraries that
5226 are in libray projects that are not extended.
5227 * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
5228 for a library project that is extended.
5229
0187b60e
AC
52302011-08-03 Gary Dismukes <dismukes@adacore.com>
5231
5232 * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
5233 conforming subprogram renamings that appear to be completions if they
5234 are not fully conformant.
5235 Such renamings are homographs but not completions.
5236 * sem_type.adb (Disambiguate): Handle disambiguation of overloaded
5237 names in a subprogram renaming that appears in an instance.
5238
52392011-08-03 Ed Schonberg <schonberg@adacore.com>
5240
5241 * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
5242 not immutably limited, build actual subtype from expression to provide
5243 proper bounds to caller.
5244
52452011-08-03 Gary Dismukes <dismukes@adacore.com>
5246
5247 * sem_ch8.adb: Minor comment correction.
5248
52492011-08-03 Thomas Quinot <quinot@adacore.com>
5250
5251 * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
5252 returning a limited array, use an extended return statement.
5253
52542011-08-03 Vincent Celier <celier@adacore.com>
5255
5256 * make.adb (Initialize): If --subdirs= is used, but no project file is
5257 specified, attempt to create the specify subdir if it does not already
5258 exist and use it as the object directory as if -D had been specified.
5259
52602011-08-03 Arnaud Charlet <charlet@adacore.com>
5261
5262 * s-tpopsp-vms.adb: New file.
5263 * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
5264 * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.
5265
e280f981
AC
52662011-08-03 Emmanuel Briot <briot@adacore.com>
5267
5268 * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
5269 package.
5270
52712011-08-03 Yannick Moy <moy@adacore.com>
5272
5273 * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
5274 * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
5275 * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
5276 detect that an array has static bounds.
5277
98c99a5a
AC
52782011-08-03 Thomas Quinot <quinot@adacore.com>
5279
5280 * exp_dist.adb: Minor reformatting.
5281
52822011-08-03 Arnaud Charlet <charlet@adacore.com>
5283
5284 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
5285 (ATCB_Key): Removed, not always used.
5286
52872011-08-03 Emmanuel Briot <briot@adacore.com>
5288
5289 * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
5290 clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
5291 most remaining global variables.
5292
686d0984
AC
52932011-08-03 Robert Dewar <dewar@adacore.com>
5294
5295 * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
5296 prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
5297 reformatting.
5298
52992011-08-03 Javier Miranda <miranda@adacore.com>
5300
5301 * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
5302 that must be passed by copy in VM targets.
5303
53042011-08-03 Emmanuel Briot <briot@adacore.com>
5305
5306 * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
5307 duplicates a similar htable now in the project tree.
5308
53092011-08-03 Claire Dross <dross@adacore.com>
5310
5311 * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
5312 a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
5313 Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
5314 Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
5315 Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
5316 Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
5317 Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
5318 update.
5319
53202011-08-03 Arnaud Charlet <charlet@adacore.com>
5321
5322 * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
5323 (ATCB_Key): Removed, not always used.
5324 * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
5325 s-taprop-posix.adb.
5326 * s-tpopsp-tls.adb: New file.
5327 * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
5328 x86/x64/ia64/powerpc/sparc Linux.
5329
53302011-08-03 Arnaud Charlet <charlet@adacore.com>
5331
5332 * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
5333 * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.
5334
53352011-08-03 Thomas Quinot <quinot@adacore.com>
5336
5337 * rtsfind.ads, exp_dist.adb, exp_dist.ads
5338 (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
5339 Fix type selection for mapping integer types to PolyORB types.
5340
53412011-08-03 Bob Duff <duff@adacore.com>
5342
5343 * sem_ch7.adb: Minor comment clarification.
5344
53452011-08-03 Bob Duff <duff@adacore.com>
5346
5347 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
5348 an error analyzing a choice, skip further processing. Further
5349 processing could cause a crash or cascade errors.
5350
40ecf2f5
EB
53512011-08-03 Emmanuel Briot <briot@adacore.com>
5352
5353 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
5354 prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
5355 prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
5356 prj-env.ads (Shared_Project_Tree_Data): new type
5357 An aggregate project and its aggregated trees need to share the common
5358 data structures used for lists of strings, packages,... This makes the
5359 code simpler since otherwise we have to pass the root tree (also used
5360 for the configuration file data) in addition to the current project
5361 tree. This also avoids ambiguities as to which tree should be used.
5362 And finally this saves a bit of memory.
5363 (For_Every_Project_Imported): new parameter Tree.
5364 Since aggregated projects are using a different tree, we need to let
5365 the caller know which tree to use to manipulate the returned project.
5366
9fde638d
RD
53672011-08-03 Robert Dewar <dewar@adacore.com>
5368
5369 * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
5370 prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
5371 lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
5372 prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.
5373
95eb8b69
AC
53742011-08-03 Javier Miranda <miranda@adacore.com>
5375
5376 * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
5377 Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
5378
53792011-08-03 Bob Duff <duff@adacore.com>
5380
5381 * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
5382 the Base_Type.
5383
53842011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>
5385
5386 * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
5387 g-sehash.ads: Fix typo. Update header.
5388
53892011-08-03 Thomas Quinot <quinot@adacore.com>
5390
5391 * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
5392 expansion.
5393
53942011-08-03 Gary Dismukes <dismukes@adacore.com>
5395
5396 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
5397 prefixes of private types along with records, since the selector may be
5398 a discriminant.
5399 * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
5400 private types along with records, since the selector may be a
5401 discriminant.
5402
92e77027
AC
54032011-08-03 Emmanuel Briot <briot@adacore.com>
5404
b2f7ebc1 5405 * prj-pp.adb (Pretty_Print): Remove trailing blank line.
92e77027
AC
5406
54072011-08-03 Javier Miranda <miranda@adacore.com>
5408
5409 * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
5410 Tagged_Type_Expansion.
5411
54122011-08-03 Yannick Moy <moy@adacore.com>
5413
b2f7ebc1
GP
5414 * sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARK
5415 violation when the argument of concatenation is the name of a
5416 constant.
92e77027 5417
ab29a348
EB
54182011-08-03 Emmanuel Briot <briot@adacore.com>
5419
5420 * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
5421 prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
5422 (Process_Declarative_Items): new parameter Child_Env.
5423
9466892f
AC
54242011-08-03 Yannick Moy <moy@adacore.com>
5425
589ef536
GP
5426 * alfa.ads: Update format of ALFA section in ALI file in order to
5427 add a mapping from bodies to specs when both are present.
5428 (ALFA_Scope_Record): Add components for spec file/scope.
5429 * get_alfa.adb (Get_ALFA): Read the new file/scope for spec when
5430 present.
5431 * lib-xref-alfa.adb (Collect_ALFA): After all scopes have been
5432 collected, fill in the spec information when relevant.
5433 * put_alfa.adb (Put_ALFA): Write the new file/scope for spec when
9466892f
AC
5434 present.
5435
54362011-08-03 Eric Botcazou <ebotcazou@adacore.com>
5437
5438 * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
5439 code unit to decide whether to add internally generated subprograms.
2c7f9cc0 5440
9466892f
AC
54412011-08-03 Javier Miranda <miranda@adacore.com>
5442
5443 * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
589ef536
GP
5444 * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must
5445 be handled by copy in VM targets.
9466892f
AC
5446
54472011-08-03 Emmanuel Briot <briot@adacore.com>
5448
589ef536 5449 * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Share
9466892f
AC
5450 code with Makeutl.Get_Switches.
5451 * prj-tree.adb: Update comment.
5452
b5ea9143
AC
54532011-08-03 Thomas Quinot <quinot@adacore.com>
5454
5455 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
5456 subprogram with a limited formal that does not support external
5457 streaming.
5458
54592011-08-03 Yannick Moy <moy@adacore.com>
5460
5461 * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
5462 continuation line
5463 * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
5464 not from current unit in two phases, because it is not possible to
5465 change the table while iterating over its content.
5466 * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity
5467
54682011-08-03 Sergey Rybin <rybin@adacore.com>
5469
5470 * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
5471 * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)
5472
668a19bc
ES
54732011-08-03 Ed Schonberg <schonberg@adacore.com>
5474
5475 * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
5476 and the component type is composite, this is ambiguous for predefined
5477 concatenation, but if the node is not overloaded and the entity is a use
5478 -defined function its profile can be used to resolve that aggregate.
5479
170b2989
AC
54802011-08-03 Robert Dewar <dewar@adacore.com>
5481
5482 * exp_ch4.adb: Minor code cleanup.
5483
54842011-08-03 Thomas Quinot <quinot@adacore.com>
5485
5486 * exp_dist.adb: Do not generate distribution stubs if serious errors
5487 have been diagnosed.
5488
54892011-08-03 Ed Schonberg <schonberg@adacore.com>
5490
5491 * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
5492 the first formal of a primitive operation, go to the base type to
5493 handle properly an access to a derived type with constrained
5494 discriminants.
5495 * sem_type.adb (Disambiguate): an immediately visible operator hides a
5496 user-defined function that is only use-visible.
170b2989 5497
e917aec2
RD
54982011-08-03 Robert Dewar <dewar@adacore.com>
5499
5500 * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
5501 make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
5502 fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
5503 prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
5504 sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
5505 prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
5506 prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
5507 alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting
5508
55092011-08-03 Robert Dewar <dewar@adacore.com>
5510
5511 * repinfo.adb (List_Mechanism): Add handling of
5512 Convention_Ada_Pass_By_XXX.
5513 * sem_mech.adb (Set_Mechanism): Ditto.
5514 * sem_prag.adb (Process_Convention): Add entries for
5515 Convention_Ada_Pass_By_XXX.
5516 * snames.adb-tmpl, snames.ads-tmpl: Ditto.
5517
49bfcf43
AC
55182011-08-03 Pascal Obry <obry@adacore.com>
5519
5520 * makeutl.adb: Minor reformatting.
5521
55222011-08-03 Vincent Celier <celier@adacore.com>
5523
5524 * fname-uf.adb
5525 (Get_File_Name) If the file cannot be found when there are no config
5526 pragmas file and May_Fail is True, return No_File instead of the file
5527 name, to be consistent.
5528
55292011-08-03 Pascal Obry <obry@adacore.com>
5530
5531 * adaint.c (__gnat_is_executable_file_attr): Avoid access
5532 to null pointer.
5533
55342011-08-03 Javier Miranda <miranda@adacore.com>
5535
5536 * sem_ch13.adb
5537 (Same_Representation): In VM targets the representation of arrays with
5538 aliased components differs from arrays with non-aliased components.
5539
34798441
EB
55402011-08-03 Emmanuel Briot <briot@adacore.com>
5541
5542 * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
5543 not systematically lower case attribute indexes that contain no "."
5544 Fix definition of several Naming attributes, which take
5545 a unit name as index and therefore should be case insensitive.
5546 Minor refactoring (reduce length of variable names).
5547
55482011-08-03 Emmanuel Briot <briot@adacore.com>
5549
5550 * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.
5551
4437a530
EB
55522011-08-03 Emmanuel Briot <briot@adacore.com>
5553
5554 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
5555 prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
5556 prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
5557 prj-tree.ads (Prj.Tree.Environment): new type.
5558
804fe3c4
EB
55592011-08-03 Emmanuel Briot <briot@adacore.com>
5560
5561 * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
5562 prj-tree.adb, prj-tree.ads (Environment): new type.
5563
c565bc66
AC
55642011-08-03 Emmanuel Briot <briot@adacore.com>
5565
5566 * prj-tree.ads: Remove unused variable.
5567
55682011-08-03 Yannick Moy <moy@adacore.com>
5569
5570 * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
5571 issuing messages related to SPARK restriction violation.
5572
4ee646da
AC
55732011-08-03 Ed Schonberg <schonberg@adacore.com>
5574
5575 * sem_ch6.adb: guard against error nodes in return statements.
5576
55772011-08-03 Arnaud Charlet <charlet@adacore.com>
5578
5579 * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
5580 a warning can only appear on a configuration file, so emit warning
5581 without further checks.
5582
55832011-08-03 Arnaud Charlet <charlet@adacore.com>
5584
5585 * s-interr.ads: add overriding keyword.
5586
55872011-08-03 Geert Bosch <bosch@adacore.com>
5588
5589 * exp_attr.adb: Fix minor typo.
5590
55912011-08-03 Ed Schonberg <schonberg@adacore.com>
5592
5593 * par-ch4.adb: improve error recovery.
5594
c0e538ad
AC
55952011-08-03 Emmanuel Briot <briot@adacore.com>
5596
5597 * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
5598 prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
5599 to Errout_Handling.
5600
56012011-08-03 Emmanuel Briot <briot@adacore.com>
5602
5603 * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
5604 "external" as an attribute name in aggregate projects.
5605
56062011-08-03 Jose Ruiz <ruiz@adacore.com>
5607
5608 * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
5609 uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
5610 from 0, so we need to adjust.
5611
56122011-08-03 Emmanuel Briot <briot@adacore.com>
5613
5614 * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
5615 prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.
5616
c4d67e2d
AC
56172011-08-03 Yannick Moy <moy@adacore.com>
5618
5619 * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
5620 restriction on overloaded entity if the entity is not an operator.
5621
56222011-08-03 Yannick Moy <moy@adacore.com>
5623
5624 * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
5625 restrict.ads: Rename remaining Check_Formal_Restriction* into
5626 Check_SPARK_Restriction*.
5627
56282011-08-03 Emmanuel Briot <briot@adacore.com>
5629
5630 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
5631 prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
5632 qualifier.
5633 (Project_Empty): removed
5634 (Empty_Project): new parameter Qualifier
5635 This is used to have fields specific to aggregate projects, cleaner
5636 New field to store the list of aggregated projects.
5637 (Check_Aggregate_Project): removed
5638 (Process_Aggregated_Projects, Free): new subprograms.
5639
3f5a8fee
AC
56402011-08-03 Olivier Hainque <hainque@adacore.com>
5641
5642 * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.
5643
56442011-08-03 Ed Schonberg <schonberg@adacore.com>
5645
5646 * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
5647 explicit dereference of an unconstrained type, create a constrained
5648 subtype for it, as is done for function calls that return an
5649 unconstrained type.
5650
56512011-08-03 Thomas Quinot <quinot@adacore.com>
5652
5653 * g-pehage.adb (Finalize): Avoid possible double-free.
5654
56552011-08-03 Steve Baird <baird@adacore.com>
5656
5657 * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
5658 Elab_Spec/Body attrs in CodePeer_Mode.
5659
56602011-08-03 Javier Miranda <miranda@adacore.com>
5661
5662 * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
5663 low bound is not known at compile time but they have no others choice.
5664 Done because in this case the bounds can be obtained directly from the
5665 aggregate.
5666
56672011-08-03 Ed Falis <falis@adacore.com>
5668
5669 * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
5670 on VxWorks SMP. Remove unusable constant ANY_CPU.
5671
a96ca600
EB
56722011-08-03 Emmanuel Briot <briot@adacore.com>
5673
5674 * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
5675 clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
5676 prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
5677 Prj.Env.Initialize_Empty): new subprograms
5678 (Get_Env, Find_Project): remove parameter Target_Name.
5679
3e582869
AC
56802011-08-03 Gary Dismukes <dismukes@adacore.com>
5681
5682 * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
5683 as a condition for the delayed call to Derived_Subprograms done for the
5684 case of the rewriting of a derived type that constrains the
5685 discriminants of its parent type.
5686 Avoids redundant subprogram derivations for private subtype derivations.
5687
56882011-08-03 Javier Miranda <miranda@adacore.com>
5689
5690 * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
5691 Build_Record_Aggr_Code.
5692 (Build_Record_Aggr_Code): Add missing support to initialize hidden
5693 discriminants in extension aggregates.
5694
56952011-08-03 Emmanuel Briot <briot@adacore.com>
5696
5697 * prj-pp.adb (Print): also output project qualifiers, since in
5698 particular "aggregate" is mandatory in an aggregate project.
5699
57002011-08-03 Emmanuel Briot <briot@adacore.com>
5701
5702 * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
5703 (Debug_Output): new function.
5704
56e94186
AC
57052011-08-03 Eric Botcazou <ebotcazou@adacore.com>
5706
5707 * gnat_ugn.texi: Document -Wstack-usage.
5708 * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
5709
57102011-08-03 Thomas Quinot <quinot@adacore.com>
5711
5712 * sem_prag.adb Issue an error (not a warning) when a C++ type does not
5713 have keyword LIMITED.
5714
57152011-08-03 Yannick Moy <moy@adacore.com>
5716
5717 * alfa.adb, alfa.ads, alfa_test.adb: New files.
5718 * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
5719 (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
5720 section (does not happen in compiler, only if code directly calls
5721 Scan_ALI).
5722 * get_alfa.adb, get_alfa.ads: New files.
5723 * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
5724 needed.
5725 * lib-xref-alfa.adb: New file.
5726 * lib-xref.adb, lib-xref.ads
5727 (Xref_Entry): redefine information needed in cross-references for ALFA.
5728 Push ALFA treatments in separated local package.
5729 (Enclosing_Subpragram_Or_Package): treat specially subprogram
5730 identifiers. Return entity of package body instead of spec. Return
5731 Empty for a scope with no location.
5732 (Generate_Reference): adapt to new components for ALFA information.
5733 Remove the need for D references on definitions.
5734 (Is_Local_Reference): moved to ALFA local package
5735 (Output_References): extract subfunction as Extract_Source_Name
5736 (Output_Local_References): remove procedure, replaced by filtering of
5737 cross-references in package ALFA and printing in Put_ALFA.
5738 (Write_Entity_Name): remove procedure
5739 * lib.adb, lib.ads (Extract_Source_Name): extract here function to
5740 print exact name of entity as it appears in source file
5741 (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
5742 * put_alfa.adb, put_alfa.ads: New files.
5743 * xref_lib.adb (Search_Xref): protect read of cross-references against
5744 reading other sections of the ALI file, in gnatxref
5745 (Search): protect read of cross-references against reading other
5746 sections of the ALI file, in gnatfind.
5747 * gcc-interface/Make-lang.in: Update dependencies.
5748
57492011-08-03 Thomas Quinot <quinot@adacore.com>
5750
5751 * sem_ch3.adb: Minor reformatting.
5752
57532011-08-03 Jose Ruiz <ruiz@adacore.com>
5754
5755 * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
5756 raising an exception.
5757
57582011-08-03 Ed Schonberg <schonberg@adacore.com>
5759
5760 * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
5761 type, always use 1 as the lower bound or string, even if lower bound of
5762 context is not static, to handle properly null strings in a non-static
5763 context.
5764
57652011-08-03 Bob Duff <duff@adacore.com>
5766
5767 * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
5768 always legal on the right-hand side of an assignment statement; there
5769 is always an applicable index constraint in this case. Therefore, the
5770 check for Pkind = N_Assignment_Statement is now unconditional -- it
5771 doesn't depend on whether Is_Constrained (Typ).
5772
4317e442
AC
57732011-08-03 Robert Dewar <dewar@adacore.com>
5774
5775 * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.
5776
57772011-08-03 Ed Schonberg <schonberg@adacore.com>
5778
5779 * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
5780 for an itype created within a generic unit.
5781
57822011-08-03 Eric Botcazou <ebotcazou@adacore.com>
5783
5784 * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
5785 suppresses all inlining.
5786
53f29d4f
AC
57872011-08-03 Robert Dewar <dewar@adacore.com>
5788
5789 * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
5790 exp_aggr.adb: Minor reformatting.
5791
57922011-08-03 Thomas Quinot <quinot@adacore.com>
5793
5794 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
5795 tagged assignment when discriminant checks are suppressed. This is
5796 useless and extremely costly in terms of static stack usage.
5797
57982011-08-03 Bob Duff <duff@adacore.com>
5799
5800 * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
5801 of generics, because this leads to the wrong entity in the wrong scope,
5802 causing (e.g.) pragma Export_Procedure to get an error if the entity is
5803 an instance.
5804 (Process_Interface_Name): Follow Alias for instances of generics, to
5805 correct for the above change.
5806
58072011-08-03 Ed Schonberg <schonberg@adacore.com>
5808
5809 * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
5810 is an integer literal it is always safe to replace the reference. In
5811 addition, if the reference appears in the generated code for an object
5812 declaration it is necessary to copy because otherwise the reference
5813 might be to the uninitilized value of the discriminant of the object
5814 itself.
5815
58162011-08-03 Pascal Obry <obry@adacore.com>
5817
5818 * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
5819 ACL used, in this case we want to check for ending .exe, not .exe
5820 anywhere in the path.
5821
58222011-08-03 Sergey Rybin <rybin@adacore.com>
5823
5824 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
5825 the tree structure (semantic decoration of references to record
5826 discriminants).
5827
c0b11850
AC
58282011-08-03 Gary Dismukes <dismukes@adacore.com>
5829
5830 * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
5831 choices of a named array aggregate, bail out when any choices are
5832 marked as Errors_Posted.
5833
58342011-08-03 Ed Schonberg <schonberg@adacore.com>
5835
5836 * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
5837 in which entity is frozen, to handle properly loop variables in
5838 iterators.
5839
58402011-08-03 Ed Schonberg <schonberg@adacore.com>
5841
5842 * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
5843 subtype is not static, compute the upper bound using attributes, to
5844 handle properly index types that are not integer types.
5845
58462011-08-03 Bob Duff <duff@adacore.com>
5847
5848 * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
5849 Update copyright notice.
5850
58512011-08-03 Ed Schonberg <schonberg@adacore.com>
5852
5853 * sem_ch3.adb (Build_Discriminant_Constraints): Only use
5854 Original_Discriminant if within an instance.
5855 * sem_ch4.adb (Analyze_Selected_Component): Ditto.
5856
58572011-08-03 Thomas Quinot <quinot@adacore.com>
5858
5859 * einfo.ads: Minor reformatting.
5860
58612011-08-03 Ed Schonberg <schonberg@adacore.com>
5862
5863 * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
5864 composite type with an unfrozen subcomponent, in the profile of a
5865 primitive operation.
5866
5c34e9cd
AC
58672011-08-03 Robert Dewar <dewar@adacore.com>
5868
5869 * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.
5870
58712011-08-03 Ed Schonberg <schonberg@adacore.com>
5872
5873 * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
5874 unconstrained type with discriminants is initialized with an aggregate,
5875 use the constrained subtype of the aggregate as the type of the object,
5876 because it is immutable, and this allows the back-end to generate no
5877 code for the object declaration.
5878
abcd9db2
AC
58792011-08-03 Robert Dewar <dewar@adacore.com>
5880
5881 * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
5882 comparison operand is variable, and turns out to be zero or negative.
5883
58842011-08-03 Javier Miranda <miranda@adacore.com>
5885
5886 * exp_intr.adb
5887 (Expand_Dispatching_Constructor_Call): Disable expansion of
5888 code required for native targets. Done to avoid generating
5889 references to unavailable runtime entities in VM targets.
5890 * exp_ch3.adb
5891 (Expand_N_Object_Declaration): Add missing support to handle
5892 the explicit initialization of class-wide interface objects.
5893 Fix documentation.
5894
58952011-08-03 Matthew Heaney <heaney@adacore.com>
5896
5897 * a-cobove.adb (Merge): Move source onto target, instead of using Assign
5898
58992011-08-03 Matthew Heaney <heaney@adacore.com>
5900
5901 * a-cbdlli.adb (Splice): move source items from first to last
5902
59032011-08-03 Yannick Moy <moy@adacore.com>
5904
5905 * sem_util.ads: comment added.
5906
59072011-08-03 Javier Miranda <miranda@adacore.com>
5908
5909 * exp_aggr.adb
5910 (Expand_Record_Aggregate): In VM targets disable the expansion into
5911 assignments of aggregates whose type is not known at compile time.
5912
b474d6c3
ES
59132011-08-03 Ed Schonberg <schonberg@adacore.com>
5914
5915 * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
5916 protected entries and task entries, to build the proper renaming
5917 declaration for entry formals, used in debugging.
5918 * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
5919 parameters in the same way.
5920
0580d807
AC
59212011-08-02 Robert Dewar <dewar@adacore.com>
5922
5923 * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
5924 sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
5925 code reorganization.
5926
59272011-08-02 Robert Dewar <dewar@adacore.com>
5928
5929 * debug.adb: Debug flag d.P to suppress length comparison optimization
5930 * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
5931 comparison of Length by comparing First/Last instead.
5932
59332011-08-02 Matthew Heaney <heaney@adacore.com>
5934
5935 * a-cobove.ads: Code clean up.
5936
b191a125
AC
59372011-08-02 Vincent Celier <celier@adacore.com>
5938
5939 * adaint.c (file_names_case_sensitive_cache): New static int.
5940 (__gnat_get_file_names_case_sensitive): Cache the return value in
5941 file_names_case_sensitive_cache at the first invocation, to avoid
5942 multiple calls to getenv.
5943
59442011-08-02 Bob Duff <duff@adacore.com>
5945
5946 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.
5947
316a0661
AC
59482011-08-02 Yannick Moy <moy@adacore.com>
5949
5950 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
5951 sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
5952 sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
5953 indicate that we are in a precondition or postcondition. This is used in
5954 Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
5955 decide whether to flag the spec or body of the current subprogram as
5956 not in ALFA.
5957
59582011-08-02 Fabien Chouteau <chouteau@adacore.com>
5959
5960 * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
5961 list.
5962 * a-extiin.ads: New file.
5963
59642011-08-02 Bob Duff <duff@adacore.com>
5965
5966 * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
5967 now raises Name_Error instead of Use_Error in certain cases. The other
5968 parts of this AI were already implemented properly.
5969
f9adb9d4
AC
59702011-08-02 Vincent Celier <celier@adacore.com>
5971
5972 * link.c: Only import "auto-host.h" when building the gnattools.
5973
59742011-08-02 Yannick Moy <moy@adacore.com>
5975
5976 * sem_util.adb: Inter-unit inlining does not work for a subprogram
5977 which calls a local subprogram, so extract subprogram
5978 from Mark_Non_ALFA_Subprogram_Body.
5979
59802011-08-02 Javier Miranda <miranda@adacore.com>
5981
5982 * exp_ch9.adb
5983 (Extract_Dispatching_Call): If the type of the dispatching object is an
5984 access type then return an explicit dereference in the Object out-mode
5985 parameter.
5986
59872011-08-02 Gary Dismukes <dismukes@adacore.com>
5988
5989 * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
5990 compatibility checks for all indexes of an array subtype, not just the
5991 first. Reset Has_Dynamic_Range_Check on the subtype before each
5992 potential check to ensure that Insert_Range_Checks will not elide any
5993 of the dynamic checks.
5994
59952011-08-02 Yannick Moy <moy@adacore.com>
5996
5997 * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
5998 SPARK restriction at parsing time.
5999 * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
6000 directive only if the SPARK restriction is set for this unit.
6001
83f33150
YM
60022011-08-02 Yannick Moy <moy@adacore.com>
6003
6004 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
6005 sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
6006 sem_ch11.adb: Protect call to Current_Subprogram which might be costly
6007 when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
6008 Mark_Non_ALFA_Subprogram_Body.
6009 Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
6010 inlined.
6011
7b98672f
YM
60122011-08-02 Yannick Moy <moy@adacore.com>
6013
6014 * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
6015 might be costly.
6016
052e0603
AC
60172011-08-02 Robert Dewar <dewar@adacore.com>
6018
6019 * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
6020 exp_ch3.adb: Minor reformatting.
6021
60222011-08-02 Emmanuel Briot <briot@adacore.com>
6023
6024 * adaint.c (__gnat_locate_exec_on_path): only returns executable
6025 files, not any regular file.
6026 (__gnat_locate_file_with_predicate): new subprogram.
6027
60282011-08-02 Yannick Moy <moy@adacore.com>
6029
6030 * sinfo.adb, sinfo.ads: Restrict the use of flags
6031 Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
6032 nodes, plus N_Subtype_Declaration for the 2nd one.
6033
4fbad0ba
AC
60342011-08-02 Sergey Rybin <rybin@adacore.com>
6035
6036 * gnat_rm.texi: Ramification of pragma Eliminate documentation
6037 - fix bugs in the description of Source_Trace;
6038 - get rid of UNIT_NAME;
6039
052e0603
AC
60402011-08-02 Javier Miranda <miranda@adacore.com>
6041
6042 * exp_ch9.adb
6043 (Build_Dispatching_Requeue): Adding support for VM targets
6044 since we cannot directly reference the Tag entity.
6045 * exp_sel.adb (Build_K): Adding support for VM targets.
6046 (Build_S_Assignment): Adding support for VM targets.
6047 * exp_disp.adb
6048 (Default_Prim_Op_Position): In VM targets do not restrict availability
6049 of predefined interface primitives to compiling in Ada 2005 mode.
6050 (Is_Predefined_Interface_Primitive): In VM targets this service is not
6051 restricted to compiling in Ada 2005 mode.
6052 (Make_VM_TSD): Generate code that declares and initializes the OSD
6053 record. Needed to support dispatching calls through synchronized
6054 interfaces.
6055 * exp_ch3.adb
6056 (Make_Predefined_Primitive_Specs): Enable generation of predefined
6057 primitives associated with synchronized interfaces.
6058 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
6059 primitives associated with synchronized interfaces.
6060
60612011-08-02 Yannick Moy <moy@adacore.com>
6062
6063 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
6064 statements hidden in SPARK if preceded by the HIDE directive
6065 (Parse_Exception_Handlers): mark each exception handler in a sequence of
6066 exception handlers as hidden in SPARK if preceded by the HIDE directive
6067 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
6068 if starting with the HIDE directive
6069 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
6070 starting with the HIDE directive; mark the declarations in a private
6071 part as hidden in SPARK if the private part starts with the HIDE
6072 directive
6073 * restrict.adb, restrict.ads
6074 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
6075 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
6076 argument node belongs to a part which is hidden in SPARK
6077 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
6078 parts in SPARK; protect the possibly costly call to
6079 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
6080 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
6081 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
6082 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
6083 Tok_SPARK_Hide.
6084 (Scan): recognize special comment starting with '#' and followed by
6085 SPARK keyword "hide" as a HIDE directive.
6086
60872011-08-02 Yannick Moy <moy@adacore.com>
6088
6089 * types.ads, erroutc.ads: Minor reformatting.
6090
60912011-08-02 Vincent Celier <celier@adacore.com>
6092
6093 * link.c: Add response file support for cross platforms.
6094
60952011-08-02 Ed Schonberg <schonberg@adacore.com>
6096
6097 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
6098 in an association, set parent field of copy before partial analysis.
6099 * sem_res.adb (Resolve_Slice): create reference to itype only when
6100 expansion is enabled.
6101
61022011-08-02 Yannick Moy <moy@adacore.com>
6103
6104 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
6105 for new flag denoting which subprogram bodies are in ALFA
6106 * restrict.adb, sem_ch7.adb: Update comment
6107 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
6108 sem_ch9.adb, sem_res.adb: Add calls to
6109 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
6110 * sem_ch6.adb (Analyze_Function_Return): add calls to
6111 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
6112 middle of the body, and extended return.
6113 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
6114 False when missing return.
6115 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
6116 to True for subprograms whose spec is in ALFA. Remove later on the flag
6117 on the entity used for a subprogram body when there exists a separate
6118 declaration.
6119 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
6120 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
6121 False, otherwise do nothing.
6122
61232011-08-02 Robert Dewar <dewar@adacore.com>
6124
6125 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
6126
61272011-08-02 Yannick Moy <moy@adacore.com>
6128
6129 * sem_ch4.ads: minor formatting.
6130
61312011-08-02 Yannick Moy <moy@adacore.com>
6132
6133 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
6134 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
6135 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
6136 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
6137 opt.ads: cleanup of SPARK mode
6138
61392011-08-02 Yannick Moy <moy@adacore.com>
6140
6141 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
6142 types.
6143 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
6144 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
6145 * sem_ch3.adb
6146 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
6147 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
6148 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
6149 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
6150 types.
6151 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
6152 non-static range.
6153 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
6154 functions whose return type is not in ALFA.
6155 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
6156 specifications.
6157 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
6158 parameter's type is not in ALFA.
6159 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
6160 types are in ALFA.
6161
61622011-08-02 Ed Schonberg <schonberg@adacore.com>
6163
6164 * sem_ch6 (Analyze_Expression_Function): treat the function as
6165 Inline_Always, and introduce a subprogram declaration for it when it is
6166 not a completion.
6167 * inline.adb (Add_Inlined_Body): recognize bodies that come from
6168 expression functions, so that the back-end can determine whether they
6169 can in fact be inlined.
6170 * sem_util.adb (Is_Expression_Function): predicate to determine whether
6171 a function body comes from an expression function.
6172
61732011-08-02 Gary Dismukes <dismukes@adacore.com>
6174
6175 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
6176 null exclusions to test Can_Never_Be_Null on the anonymous access types
6177 of the formals rather than testing the formals themselves. Exclude this
6178 check in cases where the Old_Formal is marked as a controlling formal,
6179 to avoid issuing spurious errors for bodies completing dispatching
6180 operations (due to the flag not getting set on controlling access
6181 formals in body specs).
6182 (Find_Corresponding_Spec): When checking full and subtype conformance of
6183 subprogram bodies in instances, pass Designated and E in that order, for
6184 consistency with the expected order of the formals (New_Id followed by
6185 Old_Id).
6186
61872011-08-02 Robert Dewar <dewar@adacore.com>
6188
6189 * sem_ch8.adb: Minor reformatting.
6190
61912011-08-02 Ed Schonberg <schonberg@adacore.com>
6192
6193 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
6194 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
6195 primitive operations of class-wide actuals.
6196
61972011-08-02 Javier Miranda <miranda@adacore.com>
6198
6199 * exp_atag.ads, exp_atag.adb
6200 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
6201 since its value is implicitly passed in argument Typ.
6202 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
6203 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
6204 Build_Common_Dispatching_Select_Statements.
6205
62062011-08-02 Robert Dewar <dewar@adacore.com>
6207
6208 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
6209 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
6210 Minor reformatting.
6211
62122011-08-02 Robert Dewar <dewar@adacore.com>
6213
6214 * sem_res.adb: Minor reformatting.
6215 * sem_prag.adb: Minor reformatting.
6216
62172011-08-02 Javier Miranda <miranda@adacore.com>
6218
6219 * exp_atag.adb, exp_atags.ads
6220 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
6221 by the tagged type Entity. Required to use this routine in the VM
6222 targets since we do not have available the Tag entity in the VM
6223 platforms.
6224 * exp_ch6.adb
6225 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
6226 Ada.Tags has not been previously loaded.
6227 * exp_ch7.adb
6228 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
6229 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
6230 * sem_aux.adb
6231 (Enclosing_Dynamic_Scope): Add missing support to handle the full
6232 view of enclosing scopes. Required to handle enclosing scopes that
6233 are synchronized types whose full view is a task type.
6234 * exp_disp.adb
6235 (Build_VM_TSDs): Minor code improvement to avoid generating and
6236 analyzing lists with empty nodes.
6237 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
6238 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
6239 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
6240 (Make_Disp_Timed_Select_Body): Add support for VM targets.
6241 (Make_Select_Specific_Data_Table): Add support for VM targets.
6242 (Make_VM_TSD): Generate code to initialize the SSD structure of
6243 the TSD.
6244
62452011-08-02 Yannick Moy <moy@adacore.com>
6246
6247 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
6248 cross-references section in ALI.
6249 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
6250 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
6251 Sub).
6252 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
6253 subprogram or package entity of a node
6254 (Is_Local_Reference_Type): new function returns True for references
6255 selected in local cross-references.
6256 (Lt): function extracted from Lt in Output_References
6257 (Write_Entity_Name): function extracted from Output_References
6258 (Generate_Definition): generate reference with type 'D' for definition
6259 of objects (object declaration and parameter specification), with
6260 appropriate locations and units, for use in local cross-references.
6261 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
6262 references of type 'I' for initialization in object definition.
6263 (Output_References): move part of function Lt and procedure
6264 Write_Entity_Name outside of the body. Ignore references of types 'D'
6265 and 'I' introduced for local cross-references.
6266 (Output_Local_References): new procedure to output the local
6267 cross-references sections.
6268 (Lref_Entity_Status): new array defining whether an entity is a local
6269 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
6270 with 'I' type when initialization expression is present.
6271 * get_scos.adb, get_scos.ads: Correct comments and typos
6272
62732011-08-02 Javier Miranda <miranda@adacore.com>
6274
6275 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
6276 the JVM target.
6277 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
6278 the JVM target.
6279 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
6280 TSD support.
6281
62822011-08-02 Vincent Celier <celier@adacore.com>
6283
6284 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
6285 (No_Space_Img): New function
6286 (Find_Excluded_Sources): When reading from a file, record the file name
6287 and the line number for each excluded source.
6288 (Mark_Excluded_Sources): When reporting an error, if the excluded
6289 sources were read from a file, include file name and line number in
6290 the error message.
6291
62922011-08-02 Ed Schonberg <schonberg@adacore.com>
6293
6294 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
6295
62962011-08-02 Robert Dewar <dewar@adacore.com>
6297
6298 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
6299
63002011-08-02 Javier Miranda <miranda@adacore.com>
6301
6302 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
6303 generation of TSDs to the DOTNET compiler.
6304 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
6305 generation of TSDs to the DOTNET compiler.
6306
63072011-08-02 Javier Miranda <miranda@adacore.com>
6308
6309 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
6310 record of all the tagged types declared inside library level package
6311 declarations, library level package bodies or library level subprograms.
6312 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
6313 associated with a given tagged type.
6314 (Build_VM_TSDs): New subprogram.
6315 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
6316 compilation units that are subprograms.
6317 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
6318 compilation units that are package bodies.
6319 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
6320 units that are a package declaration or a package instantiation.
6321 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
6322 reorganization to improve the error generated by the frontend when the
6323 function Ada.Tags.Secondary_Tag is not available.
6324 * rtsfind.ads (RE_Register_TSD): New runtime entity.
6325 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
6326
63272011-08-02 Javier Miranda <miranda@adacore.com>
6328
6329 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
6330
63312011-08-02 Robert Dewar <dewar@adacore.com>
6332
6333 * s-imenne.ads: Minor reformatting.
6334
63352011-08-02 Robert Dewar <dewar@adacore.com>
6336
6337 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
6338 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
6339 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
6340
63412011-08-02 Robert Dewar <dewar@adacore.com>
6342
6343 * einfo.ads (Materialize_Entity): Document this is only for renamings
6344 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
6345 required debug information in the case where we transform the object
6346 declaration into a renaming declaration.
6347 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
6348 object
6349 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
6350 Materialize_Entity.
6351
63522011-08-02 Robert Dewar <dewar@adacore.com>
6353
6354 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
6355 Suppress_Init_Procs.
6356 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
6357 Suppress_Initialization/Initialization_Suppressed.
6358 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
6359 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
6360 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
6361 * sem_prag.adb: New processing for pragma Suppress_Initialization.
6362
63632011-08-02 Robert Dewar <dewar@adacore.com>
6364
6365 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
6366 Minor reformatting.
6367
63682011-08-02 Ed Schonberg <schonberg@adacore.com>
6369
6370 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
6371 only have inheritable classwide pre/postconditions.
6372
63732011-08-02 Javier Miranda <miranda@adacore.com>
6374
6375 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
6376 * rtsfind.ads (RE_Check_TSD): New runtime entity.
6377 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
6378 checks if the external tag of a type is the same as the external tag
6379 of some other declaration.
6380
63812011-08-02 Thomas Quinot <quinot@adacore.com>
6382
6383 * s-taskin.ads: Minor reformatting.
6384
63852011-08-02 Emmanuel Briot <briot@adacore.com>
6386
6387 * g-comlin.adb (Display_Help): swap the order in which it prints the
6388 short help and the general usage.
6389
63902011-08-02 Ed Schonberg <schonberg@adacore.com>
6391
6392 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
6393 the aspect declarations and attach them to the generic copy for
6394 subsequent analysis.
6395 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
6396 declarations of the generic tree to the new subprogram declarations.
6397 * sem_attr.adb (Check_Precondition_Postcondition): recognize
6398 conditions that apply to a subprogram instance.
6399
64002011-08-02 Robert Dewar <dewar@adacore.com>
6401
6402 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
6403
64042011-08-02 Ed Schonberg <schonberg@adacore.com>
6405
6406 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
6407 private type with a tagged full view is not derived in the immediate
6408 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
6409
64102011-08-02 Robert Dewar <dewar@adacore.com>
6411
6412 * exp_ch4.adb: Minor reformatting.
6413
64142011-08-02 Ed Schonberg <schonberg@adacore.com>
6415
6416 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
6417 Ada2012 iterator, the loop will be rewritten during expansion into a
6418 while loop with a cursor and an element declaration. Do not analyze the
6419 body in this case, because if the container is for indefinite types the
6420 actual subtype of the elements will only be determined when the cursor
6421 declaration is analyzed.
6422
64232011-08-02 Arnaud Charlet <charlet@adacore.com>
6424
6425 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
6426 size/alignment related attributes in CodePeer_Mode.
6427
64282011-08-02 Gary Dismukes <dismukes@adacore.com>
6429
6430 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
6431 Prepend_Element, since this can result in the operation getting the
6432 wrong slot in the full type's dispatch table if the full type has
6433 inherited operations. The incomplete type's operation will get added
6434 to the proper position in the full type's primitives
6435 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
6436 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
6437 dispatching operations, since there are cases where nonprimitive
6438 subprograms can get added to the list of incomplete dependents (such
6439 as subprograms in nested packages).
6440 * sem_ch6.adb (Process_Formals): First, remove test for being in a
6441 private part when determining whether to add a primitive with a
6442 parameter of a tagged incomplete type to the Private_Dependents list.
6443 Such primitives can also occur in the visible part, and should not have
6444 been excluded from being private dependents.
6445 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
6446 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
6447 list of a Taft-amendment incomplete type is a primitive before issuing
6448 an error that the full type must appear in the same unit. There are
6449 cases where nonprimitives can be in the list (such as subprograms in
6450 nested packages).
6451 * sem_disp.adb (Derives_From): Use correct condition for checking that
6452 a formal's type is derived from the type of the corresponding formal in
6453 the parent subprogram (the condition was completely wrong). Add
6454 checking that was missing for controlling result types being derived
6455 from the result type of the parent operation.
6456
64572011-08-02 Yannick Moy <moy@adacore.com>
6458
6459 * errout.adb (First_Node): minor renaming
6460 * restrict.adb (Check_Formal_Restriction): put restriction warning on
6461 first node.
6462
64632011-08-02 Yannick Moy <moy@adacore.com>
6464
6465 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
6466 before accessing operands.
6467 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
6468 decide whether an initialization expression respects SPARK rules, as
6469 the plain node is the expanded one. This allows for more valid warnings
6470 to be issued.
6471 * gnat_rm.texi: Minor update.
6472
64732011-08-02 Arnaud Charlet <charlet@adacore.com>
6474
6475 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
6476 previous change.
6477
64782011-08-02 Robert Dewar <dewar@adacore.com>
6479
6480 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
6481
64822011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
6483
6484 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
6485 loop statements and the element renaming declaration with a block when
6486 the element type is controlled.
6487
64882011-08-02 Yannick Moy <moy@adacore.com>
6489
6490 * sinfo.ads: Minor formatting.
6491
64922011-08-02 Ed Schonberg <schonberg@adacore.com>
6493
6494 * sem_aggr.adb (Add_Association): if the association has a box and no
6495 expression, use the Sloc of the aggregate itself for the new
6496 association.
6497 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
6498 the Original_Node.
6499
65002011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
6501
6502 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
6503 When a container is provided via a function call, generate a renaming
6504 of the function result. This avoids the creation of a transient scope
6505 and the premature finalization of the container.
6506 * exp_ch7.adb (Is_Container_Cursor): Removed.
6507 (Wrap_Transient_Declaration): Remove the supression of the finalization
6508 of the list controller when the declaration denotes a container cursor,
6509 it is not needed.
6510
65112011-08-02 Yannick Moy <moy@adacore.com>
6512
6513 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
6514 node is from source, instead of the original node being from source.
6515 * sem_aggr.adb
6516 (Resolve_Array_Aggregate): refine the check for a static expression, to
6517 recognize also static ranges
6518 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
6519 Array_Type_Declaration): postpone the test for the type being a subtype
6520 mark after the type has been resolved, so that component-selection and
6521 expanded-name are discriminated.
6522 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
6523 to distinguish the case of an iteration scheme, so that an error is
6524 issed on a non-static range in SPARK except in an iteration scheme.
6525 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
6526 In_Iter_Schm = True.
6527 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
6528 user-defined operators so that they are allowed in renaming
6529 * sem_ch8.adb
6530 (Find_Selected_Component): refine the check for prefixing of operators
6531 so that they are allowed in renaming. Move the checks for restrictions
6532 on selector name after analysis discriminated between
6533 component-selection and expanded-name.
6534 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
6535 concatenation argument of string type if it is static.
6536 * sem_util.adb, sem_util.ads
6537 (Check_Later_Vs_Basic_Declarations): add a new function
6538 Is_Later_Declarative_Item to decice which declarations are allowed as
6539 later items, in the two different modes Ada 83 and SPARK. In the SPARK
6540 mode, add that renamings are considered as later items.
6541 (Enclosing_Package): new function to return the enclosing package
6542 (Enter_Name): correct the rule for homonyms in SPARK
6543 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
6544 from source (result of expansion) to avoid issuing wrong warnings.
6545
65462011-08-02 Ed Schonberg <schonberg@adacore.com>
6547
6548 * errout.adb: On anything but an expression First_Node returns its
6549 argument.
6550
65512011-08-02 Pascal Obry <obry@adacore.com>
6552
6553 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
6554
65552011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
6556
6557 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
6558 Set the associated loop as the related expression of internally
6559 generated cursors.
6560 * exp_ch7.adb (Is_Container_Cursor): New routine.
6561 (Wrap_Transient_Declaration): Supress the finalization of the list
6562 controller when the declaration denotes a container cursor.
6563
65642011-08-02 Yannick Moy <moy@adacore.com>
6565
6566 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
6567 command line now.
6568 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
6569 expression is a simple expression. This check cannot be performed in
6570 the semantics, so just drop it.
6571 (P_Index_Or_Discriminant_Constraint): move check that the index or
6572 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
6573 semantics. Other cases were previously checked in the semantics.
6574 * par-ch4.adb (P_Name): move checks that a selector name is not
6575 character literal or an operator symbol to Find_Selected_Component in
6576 the semantics
6577 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
6578 declarations are not placed after later declarations in a separate
6579 procedure in Sem_Util (possibly not the best choice?), to be used both
6580 during parsing, for Ada 83 mode, and during semantic analysis, for
6581 SPARK mode.
6582 * par-endh.adb (Check_End): move check that end label is not missing
6583 to Process_End_Label in the semantics
6584 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
6585 the special case for SPARK restriction
6586 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
6587 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
6588 parameter Force to issue the error message even on internal node (used
6589 for generated end label). Call Check_Restriction to check when an error
6590 must be issued. In SPARK mode, issue an error message even if the
6591 restriction is not set.
6592 (Check_Restriction): new procedure with an additional out parameter to
6593 inform the caller that a message has been issued
6594 * sem_aggr.adb: Minor modification of message
6595 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
6596 instead of issuing an error message directly
6597 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
6598 declarations are not placed after later declarations, by calling
6599 Check_Later_Vs_Basic_Declarations
6600 (Analyze_Subtype_Declaration): move here the check that an index or
6601 discriminant constraint must be a subtype mark. Change the check that
6602 a subtype of String must start at one so that it works on subtype marks.
6603 * sem_ch4.adb (Analyze_Call): move here the check that a named
6604 association cannot follow a positional one in a call
6605 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
6606 instead of issuing an error message directly
6607 * sem_ch8.adb (Find_Selected_Component): move here the check that a
6608 selector name is not a character literal or an operator symbol. Move
6609 here the check that the prefix of an expanded name cannot be a
6610 subprogram or a loop statement.
6611 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
6612 procedure called from parsing and semantics to check that basic
6613 declarations are not placed after later declarations
6614 (Process_End_Label): move here the check that end label is not missing
6615
66162011-08-02 Arnaud Charlet <charlet@adacore.com>
6617
6618 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
6619 representation clause in codepeer mode, since it confuses CodePeer and
6620 does not bring useful info.
6621
66222011-08-02 Ed Falis <falis@adacore.com>
6623
6624 * init.c: initialize fp hw on MILS.
6625
66262011-08-02 Ed Schonberg <schonberg@adacore.com>
6627
6628 * errout.adb (First_Node): for bodies, return the node itself (small
6629 optimization). For other nodes, do not check source_unit if the node
6630 comes from Standard.
6631
66322011-08-02 Robert Dewar <dewar@adacore.com>
6633
6634 * exp_ch3.adb: Minor comment additions.
6635 * sem_ch13.adb: Minor reformatting.
6636
66372011-08-02 Pascal Obry <obry@adacore.com>
6638
6639 * make.adb, makeutl.adb: Removes some superfluous directory separator.
6640
66412011-08-02 Robert Dewar <dewar@adacore.com>
6642
6643 * sem_attr.adb: Minor reformatting.
6644
66452011-08-02 Robert Dewar <dewar@adacore.com>
6646
6647 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
6648 (Has_Default_Component_Value): Removed
6649 * einfo.ads Comment updates
6650 (Has_Default_Aspect): Replaces Has_Default_Value
6651 (Has_Default_Component_Value): Removed
6652 * exp_ch13.adb
6653 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
6654 * exp_ch3.adb
6655 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
6656 (Get_Simple_Init_Val): Handle Default_Value aspect
6657 (Needs_Simple_Initialization): Handle Default_Value aspect
6658 * exp_ch3.ads: Needs_Simple_Initialization
6659 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
6660 * par-prag.adb (Pragma_Default[_Component]Value) Removed
6661 * sem_ch13.adb
6662 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
6663 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
6664 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
6665
66662011-08-02 Ed Schonberg <schonberg@adacore.com>
6667
6668 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
6669 package containing iteration primitives.
6670 exp_ch5.adb (Expand_Iterator_Loop): ditto.
6671
66722011-08-02 Ed Schonberg <schonberg@adacore.com>
6673
6674 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
6675 "of", pre-analyze expression in case it is a function call with
6676 finalization actions that must be placed ahead of the loop.
6677 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
6678 on an Ada2012 iterator, insert them ahead of the rewritten loop.
6679
66802011-08-02 Geert Bosch <bosch@adacore.com>
6681
6682 * cstand.adb (Create_Float_Types): Only consider C's long double for
6683 Long_Long_Float, in addition to double.
6684
66852011-08-02 Robert Dewar <dewar@adacore.com>
6686
6687 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
6688 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
6689 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
6690 Minor reformatting.
6691
66922011-08-02 Ed Schonberg <schonberg@adacore.com>
6693
6694 * sem_attr.adb: handle properly 'Result when it is a prefix of an
6695 indexed component.
6696
66972011-08-02 Javier Miranda <miranda@adacore.com>
6698
6699 * einfo.ads, einfo.adb
6700 (Original_Access_Type): Move this attribute to Node26 since there was
6701 an undocumented use of Node21 in E_Access_Subprogram_Type entities
6702 which causes conflicts and breaks the generation of the .NET compiler.
6703 (Interface_Name): Add missing documentation on JGNAT only uses of
6704 this attribute.
6705
67062011-08-02 Geert Bosch <bosch@adacore.com>
6707
6708 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
6709 (Find_Back_End_Float_Type): Likewise
6710 (Create_Back_End_Float_Types): Likewise
6711 (Create_Float_Types): Likewise
6712 (Register_Float_Type): Likewise
6713 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
6714 Nlist and split out type selection in new local Find_Base_Type function.
6715 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
6716 Nlist
6717 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
6718
67192011-08-02 Robert Dewar <dewar@adacore.com>
6720
6721 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
6722 alpha order).
6723 * opt.ads: Minor comment change.
6724 * sem_ch12.adb: Minor code reorganization.
6725
67262011-08-02 Gary Dismukes <dismukes@adacore.com>
6727
6728 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
6729 subtype's list of rep items to the list on the full subtype in the case
6730 where the lists are the same.
6731
67322011-08-02 Geert Bosch <bosch@adacore.com>
6733
6734 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
6735 using the one from System.Strings, which also deallocates all strings.
6736
67372011-08-02 Geert Bosch <bosch@adacore.com>
6738
6739 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
6740 function.
6741 * gcc-interface/Make-lang.in: Update dependencies.
6742
67432011-08-02 Olivier Hainque <hainque@adacore.com>
6744
6745 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
6746 end_locus.
6747
67482011-08-02 Javier Miranda <miranda@adacore.com>
6749
6750 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
6751 associated with anonymous access to subprograms.
6752
67532011-08-02 Geert Bosch <bosch@adacore.com>
6754
6755 * opt.ads
6756 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
6757 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
6758 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
6759 (Add_Symbol_Definition): Move to switch-c.adb
6760 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
6761 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
6762 (Add_Symbol_Definition): Move to switch-c.adb.
6763 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
6764 * sem_warn.adb
6765 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
6766 Move to warnsw.adb.
6767 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
6768 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
6769 Move to warnsw.adb.
6770 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
6771 (Add_Symbol_Definition): Moved from Prepcomp.
6772 * switch-c.ads: Update copyright notice. Use String_List instead of
6773 Argument_List, removing dependency on System.OS_Lib.
6774
67752011-08-02 Yannick Moy <moy@adacore.com>
6776
6777 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
6778 mode on initialization expression which does not respect SPARK
6779 restrictions.
6780 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
6781 if the tree referenced by its argument represents an initialization
6782 expression in SPARK, suitable for initializing an object in an object
6783 declaration.
6784
67852011-08-02 Javier Miranda <miranda@adacore.com>
6786
6787 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
6788 internally generated access to subprogram with its associated protected
6789 subprogram type.
6790 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
6791
67922011-08-02 Geert Bosch <bosch@adacore.com>
6793
6794 * cstand.adb (Register_Float_Type): Print information about type to
6795 register, if the Debug_Flag_Dot_B is set.
6796 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
6797 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
6798 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
6799 with a requested precision of more than Max_Digits digits and no more
6800 than Max_Base_Digits digits, if a range specification is present and the
6801 Predefined_Float_Types list has a suitable type to derive from.
6802 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
6803 case of type completion with pragma Import
6804 * sem_prag.adb
6805 (Process_Import_Predefined_Type): Processing to complete a type
6806 with pragma Import. Currently supports floating point types only.
6807 (Set_Convention_From_Pragma): Do nothing without underlying type.
6808 (Process_Convention): Guard against absence of underlying type,
6809 which may happen when importing incomplete types.
6810 (Process_Import_Or_Interface): Handle case of importing predefined
6811 types. Tweak error message.
6812
68132011-08-02 Eric Botcazou <ebotcazou@adacore.com>
6814
6815 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
6816 functions to previous change. Reorganize code slightly.
6817
68182011-08-02 Geert Bosch <bosch@adacore.com>
6819
6820 * back_end.ads (Register_Type_Proc): New call back procedure type for
6821 allowing the back end to provide information about available types.
6822 (Register_Back_End_Types): New procedure to register back end types.
6823 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
6824 available types.
6825 * cstand.adb (Back_End_Float_Types): New list for floating point types
6826 supported by the back end.
6827 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
6828 (Copy_Float_Type): New procedure to make new copies of predefined types.
6829 (Register_Float_Type): New call back procedure to populate the BEFT list
6830 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
6831 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
6832 (Create_Float_Types): New procedure to create entities for floating
6833 point types predefined in Standard, and put these and any remaining
6834 BEFTs on the Predefined_Float_Types list.
6835 * stand.ads (Predefined_Float_Types): New list for predefined floating
6836 point types that do not have declarations in package Standard.
6837
68382011-08-02 Eric Botcazou <ebotcazou@adacore.com>
6839
6840 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
6841 entity node for the unit containing the parameter.
6842 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
6843 (Add_Inlined_Subprogram): Likewise.
6844 * gcc-interface/Make-lang.in: Update dependencies.
6845
68462011-08-02 Thomas Quinot <quinot@adacore.com>
6847
6848 * s-stusta.adb (Print): Make sure Pos is always initialized to a
6849 suitable value.
6850
68512011-08-02 Geert Bosch <bosch@adacore.com>
6852
6853 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
6854
68552011-08-02 Eric Botcazou <ebotcazou@adacore.com>
6856
6857 * sem_type.adb (Covers): Move trivial case to the top and reuse the
6858 computed value of Base_Type.
6859
68602011-08-02 Yannick Moy <moy@adacore.com>
6861
6862 * restrict.adb (Check_Restriction): issue an error for any use of
6863 class-wide, even if the No_Dispatch restriction is not set.
6864 * sem_aggr.adb: Correct typos in comments and messages in formal mode
6865 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
6866 when completing a private extension, the type named in the private part
6867 is not the same as that named in the visible part.
6868 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
6869 of an inherited primitive operations of a tagged type or type extension
6870 that returns the tagged type.
6871 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
6872 function which returns True for an implicit operation inherited by the
6873 derived type declaration for the argument type.
6874 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
6875 order.
6876
68772011-08-02 Ed Schonberg <schonberg@adacore.com>
6878
6879 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
6880 Process_Bounds, to perform analysis with expansion of a range or an
6881 expression that is the iteration scheme for a loop.
6882 (Analyze_Iterator_Specification): If domain of iteration is given by a
6883 function call with a controlled result, as is the case if call returns
6884 a predefined container, ensure that finalization actions are properly
6885 generated.
6886 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
6887
68882011-08-02 Javier Miranda <miranda@adacore.com>
6889
6890 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
6891 * gcc-interface/Make-lang.in: Update dependencies.
6892
68932011-08-02 Javier Miranda <miranda@adacore.com>
6894
6895 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
6896 determine if the analysis is performed using N or Original_Node (N).
6897 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
6898 functionality of routine Is_Variable avoids code duplication.
6899 * checks.adb (Determine_Range): Handle temporaries generated by
6900 Remove_Side_Effects.
6901
69022011-08-02 Javier Miranda <miranda@adacore.com>
6903
6904 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
6905 expansion of the condition. Required since the previous analysis was
6906 done with expansion disabled (see Resolve_Quantified_Expression) and
6907 hence checks were not inserted and record comparisons have not been
6908 expanded.
6909
69102011-08-02 Ed Falis <falis@adacore.com>
6911
6912 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
6913 Update header.
6914
69152011-08-02 Bob Duff <duff@adacore.com>
6916
6917 * opt.ads: Minor comment fix.
6918
69192011-08-02 Bob Duff <duff@adacore.com>
6920
6921 * sem_ch12.adb (Analyze_Package_Instantiation,
6922 Analyze_Subprogram_Instantiation): Turn off style checking while
6923 analyzing an instance. Whatever style checks that apply to the generic
6924 unit should apply, so it makes no sense to apply them in an instance.
6925 This was causing trouble when compiling an instance of a runtime
6926 unit that violates the -gnatyO switch.
6927 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
6928 one of the two case statements, causing spurious errors.
6929
69302011-08-02 Robert Dewar <dewar@adacore.com>
6931
6932 * uname.adb: Minor reformatting.
6933 * gnatcmd.adb: Minor reformatting.
6934 * exp_attr.adb: Minor reformatting.
6935
69362011-08-02 Ed Schonberg <schonberg@adacore.com>
6937
6938 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
6939 No_Dispatching_Calls, do not look for the Assign primitive, because
6940 predefined primitives are not created in this case.
6941
69422011-08-02 Bob Duff <duff@adacore.com>
6943
6944 * stylesw.ads: Minor comment fixes.
6945
69462011-08-02 Robert Dewar <dewar@adacore.com>
6947
6948 * freeze.adb (Add_To_Result): New procedure.
6949
69502011-08-02 Jose Ruiz <ruiz@adacore.com>
6951
6952 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
6953 time, if the specific run-time routines for handling streams of strings
6954 are not available, use the default mechanism.
6955
69562011-08-02 Arnaud Charlet <charlet@adacore.com>
6957
6958 * s-regpat.ads: Fix typo.
6959
69602011-08-02 Vincent Celier <celier@adacore.com>
6961
6962 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
6963 not null, call it to create the in memory config project file without
6964 parsing an existing default config project file.
6965
69662011-08-02 Eric Botcazou <ebotcazou@adacore.com>
6967
6968 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
6969
69702011-08-02 Ed Schonberg <schonberg@adacore.com>
6971
6972 * sem_elim.adb: an abstract subprogram does not need an eliminate
6973 pragma for its descendant to be eliminable.
6974
69752011-08-02 Ed Falis <falis@adacore.com>
6976
6977 * init.c: revert to handling before previous checkin for VxWorks
6978 * s-intman-vxworks.adb: delete unnecessary declarations related to
6979 using Ada interrupt facilities for handling signals.
6980 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
6981 * s-intman-vxworks.ads: Import __gnat_install_handler as
6982 Initialize_Interrupts.
6983 * s-taprop-vxworks.adb: Delete Signal_Mask.
6984 (Abort_Handler): change construction of mask to unblock exception
6985 signals.
6986
69872011-08-02 Jerome Guitton <guitton@adacore.com>
6988
6989 * a-except-2005.adb (Raise_From_Signal_Handler): Call
6990 Debug_Raise_Exception before propagation starts.
6991
69922011-08-02 Eric Botcazou <ebotcazou@adacore.com>
6993
6994 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
6995 to Restriction_Check_Required.
6996 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
6997 * sem_res.adb (Resolve_Call): Likewise.
6998 * sem_attr.adb (Check_Stream_Attribute): Likewise.
6999
70002011-08-02 Bob Duff <duff@adacore.com>
7001
7002 * stylesw.ads: Update comment.
7003 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
7004 * errout.ads: Remove obsolete comment.
7005
70062011-08-02 Javier Miranda <miranda@adacore.com>
7007
7008 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
7009 (Set_Is_Safe_To_Reevaluate): new procedure.
7010 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
7011 assignment is allowed on safe-to-reevaluate variables.
7012 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
7013 temporary created to remove side effects in expressions that use
7014 the secondary stack as safe-to-reevaluate.
7015 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
7016 variables that are not true constants.
7017
70182011-08-02 Robert Dewar <dewar@adacore.com>
7019
7020 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
7021 sem_res.adb, sem_ch6.adb: Minor reformatting.
7022
70232011-08-02 Jerome Guitton <guitton@adacore.com>
7024
7025 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
7026
70272011-08-02 Ed Schonberg <schonberg@adacore.com>
7028
7029 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
7030 not set Overridden_Operation if subprogram is an initialization
7031 procedure.
7032
70332011-08-02 Yannick Moy <moy@adacore.com>
7034
7035 * par-ch6.adb: Correct obsolete name in comments
7036 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
7037 which takes two message arguments (existing function takes one), with
7038 second message used for continuation.
7039 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
7040 block statements that originate from a source block statement, not
7041 generated block statements
7042 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
7043 symmetry with procedure case
7044 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
7045 function to issue an error in formal mode if a package specification
7046 contains more than one tagged type or type extension.
7047 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
7048 parameters matching formals of tagged types are objects (or ancestor
7049 type conversions of objects), not general expressions. Issue an error
7050 on view conversions that are not involving ancestor conversion of an
7051 extended type.
7052 (Resolve_Type_Conversion): in formal mode, issue an error on the
7053 operand of an ancestor type conversion which is not an object
7054 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
7055 procedure so that it works also for actuals of function calls
7056 (Is_Actual_Tagged_Parameter): new function which determines if its
7057 argument is an actual parameter of a formal of tagged type in a
7058 subprogram call
7059 (Is_SPARK_Object_Reference): new function which determines if the tree
7060 referenced by its argument represents an object in SPARK
7061
70622011-08-02 Robert Dewar <dewar@adacore.com>
7063
7064 * sem_ch3.adb: Minor reformatting
7065 Minor comment addition
7066 Minor error msg text change
7067
70682011-08-02 Javier Miranda <miranda@adacore.com>
7069
7070 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
7071 function. Used to be more precise when we generate a variable plus one
7072 assignment to remove side effects in the evaluation of the Bound
7073 expressions.
7074 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
7075 of the bound expression to force its re-analysis and thus expand the
7076 associated transient scope (if required). Code cleanup replacing the
7077 previous code that declared the constant entity by an invocation to
7078 routine Force_Evaluation which centralizes this work in the frontend.
7079
70802011-08-02 Robert Dewar <dewar@adacore.com>
7081
7082 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
7083 (Base_Type): Now uses improved Is_Base_Type function
7084 * einfo.ads (Base_Type): Inline this function
7085
70862011-08-02 Robert Dewar <dewar@adacore.com>
7087
7088 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
7089 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
7090
70912011-08-02 Arnaud Charlet <charlet@adacore.com>
7092
7093 * gcc-interface/Make-lang.in: Update dependencies.
7094 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
7095 targets.
7096
70972011-08-02 Yannick Moy <moy@adacore.com>
7098
7099 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
7100 non-simple expression used in delta constraint
7101 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
7102 index constraint which is not a subtype mark
7103 * par.adb: With and use Restrict
7104 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
7105 mode on component type which is not a subtype mark and default
7106 expression on component
7107 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
7108 of string which does not have a lower index bound equal to 1
7109 (Array_Type_Declaration): issue an error in formal mode on index or
7110 component type which is not a subtype mark, and on aliased keyword on
7111 component
7112 (Derived_Type_Declaration): issue an error in formal mode on interface,
7113 limited or abstract type
7114 (Record_Type_Declaration): issue an error in formal mode on interface
7115 (Record_Type_Definition): issue an error in formal mode on tagged types
7116 and type extensions not declared in the specification of a library unit
7117 package; on null non-tagged record; on variant part
7118
71192011-08-02 Vincent Celier <celier@adacore.com>
7120
7121 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
7122 not declared for qualified library project when Library_Name is not
7123 declared, but Library_Dir is.
7124
71252011-08-02 Robert Dewar <dewar@adacore.com>
7126
7127 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
7128 pragmas (affects aspects [Component_]Default_Value
7129 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
7130 component type for the resolution
7131
71322011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7133
7134 * einfo.adb (Base_Type): Tune implementation for speed.
7135
71362011-08-02 Robert Dewar <dewar@adacore.com>
7137
7138 * freeze.adb: Minor reformatting.
7139
71402011-08-02 Thomas Quinot <quinot@adacore.com>
7141
7142 * scos.ads: Update comments.
7143
71442011-08-02 Ed Schonberg <schonberg@adacore.com>
7145
7146 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
7147 base type, because the parent may be a subtype of a private type whose
7148 convention is established in a private part.
7149
71502011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
7151
7152 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
7153 statement in a block when the expansion of the return expression has
7154 created a finalization chain.
7155 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
7156 with the parent node.
7157 Add N_Extended_Return_Statement to handle the case where a transient
7158 object declaration appears in the Return_Object_Declarations list of
7159 an extended return statement.
7160
71612011-08-02 Matthew Gingell <gingell@adacore.com>
7162
7163 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
7164 unused parameter 'name'.
7165
71662011-08-02 Ed Schonberg <schonberg@adacore.com>
7167
7168 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
7169 inherited operation, check whether its alias, which is the source
7170 operastion that it renames, has been marked eliminated.
7171
71722011-08-02 Javier Miranda <miranda@adacore.com>
7173
7174 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
7175 in-mode parameter whose type is an access type since it can be used to
7176 modify its designated object. Enforce code that handles as safe an
7177 access type that is not access-to-constant but it is the result of a
7178 previous removal of side-effects.
7179 (Remove_Side_Effects): Minor code reorganization of cases which require
7180 no action. Done to incorporate documentation on new cases uncovered
7181 working in this ticket: no action needed if this routine was invoked
7182 too early and the nodes are not yet decorated.
7183 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
7184 to routine Remove_Side_Effects by calls to Force_Evaluation since they
7185 were issued with actuals that are implicitly provided by
7186 Force_Evaluation.
7187
71882011-08-02 Robert Dewar <dewar@adacore.com>
7189
7190 * sem_ch3.adb, sem_res.adb: Minor reformatting.
7191
71922011-08-02 Yannick Moy <moy@adacore.com>
7193
7194 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
7195 to issue an error in formal mode on attribute not supported in this mode
7196 (Analyze_Attribute): issue errors on standard attributes not supported
7197 in formal mode.
7198 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
7199 comment, and issue error in formal mode on modulus which is not a power
7200 of 2.
7201 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
7202 range.
7203 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
7204 subtype mark.
7205 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
7206 operator on modular type (except 'not').
7207
72082011-08-02 Robert Dewar <dewar@adacore.com>
7209
7210 * gnat_rm.texi: Minor reformatting.
7211
72122011-08-02 Arnaud Charlet <charlet@adacore.com>
7213
7214 * s-osinte-linux.ads: Minor comment update and reformatting.
7215 * i-cexten.ads: Make this unit pure, as for its parent.
7216 Will allow its usage in more contexts if needed.
7217
72182011-08-02 Robert Dewar <dewar@adacore.com>
7219
7220 * s-utf_32.ads: Minor comment fix.
7221
72222011-08-02 Ed Schonberg <schonberg@adacore.com>
7223
7224 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
7225 operation of a tagged synchronized type, handle the case where the
7226 controlling argument is overloaded.
7227
72282011-08-02 Yannick Moy <moy@adacore.com>
7229
7230 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
7231 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
7232 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
7233 SPARK mode and formal verification mode on processing SPARK restriction
7234 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
7235 requiring consistency checking.
7236
72372011-08-02 Robert Dewar <dewar@adacore.com>
7238
7239 * sem_res.adb: Minor reformatting.
7240
72412011-08-02 Robert Dewar <dewar@adacore.com>
7242
7243 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
7244 a-cforse.ads: Remove unneeded with of Ada.Containers
7245 Remove commented out pragma Inline's
7246 Move specifications of new subprograms to the actual specs
7247
72482011-08-02 Yannick Moy <moy@adacore.com>
7249
7250 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
7251 a-cforse.ads: Update comments.
7252
72532011-08-02 Ed Schonberg <schonberg@adacore.com>
7254
7255 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
7256
72572011-08-02 Robert Dewar <dewar@adacore.com>
7258
7259 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
7260 a-cforse.ads, a-cofove.ads: Minor reformatting.
7261
72622011-08-02 Claire Dross <dross@adacore.com>
7263
7264 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
7265 a-cofove.ads: Add comments.
7266
72672011-08-02 Yannick Moy <moy@adacore.com>
7268
7269 * gnat_rm.texi: Document formal containers.
7270
72712011-08-02 Emmanuel Briot <briot@adacore.com>
7272
7273 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
7274 are empty sections.
7275
72762011-08-02 Robert Dewar <dewar@adacore.com>
7277
7278 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
7279 reformatting.
7280
72812011-08-02 Robert Dewar <dewar@adacore.com>
7282
7283 * aspects.adb: New aspects Default_Value and Default_Component_Value
7284 New format of Aspect_Names table checks for omitted entries
7285 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
7286 handling of boolean aspects for derived types.
7287 New aspects Default_Value and Default_Component_Value
7288 New format of Aspect_Names table checks for omitted entries
7289 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
7290 (Has_Default_Value): New flag
7291 (Has_Default_Component_Value): New flag
7292 (Has_Default_Value): New flag
7293 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
7294 table.
7295 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
7296 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
7297 Default_Value and Default_Component_Value
7298 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
7299 New aspects Default_Value and Default_Component_Value
7300 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
7301 * sprint.adb: Print N_Aspect_Specification node when called from gdb
7302
73032011-08-02 Vincent Celier <celier@adacore.com>
7304
7305 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
7306 inherit library kind.
7307
73082011-08-02 Ed Schonberg <schonberg@adacore.com>
7309
7310 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
7311 Minor reformatting.
7312
73132011-08-02 Robert Dewar <dewar@adacore.com>
7314
7315 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
7316
73172011-08-02 Yannick Moy <moy@adacore.com>
7318
7319 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
7320
73212011-08-02 Robert Dewar <dewar@adacore.com>
7322
7323 * impunit.adb: Add comment.
7324
73252011-08-02 Yannick Moy <moy@adacore.com>
7326
7327 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
7328 qualification of aggregates in formal mode
7329 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
7330 another aggregate
7331 (Resolve_Aggregate): complete the test that an aggregate is adequately
7332 qualified in formal mode
7333
73342011-08-02 Pascal Obry <obry@adacore.com>
7335
7336 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
7337 * mlib-prj.adb: Supress warning when compiling binder generated file.
7338 (Build_Library): Supress all warnings when compiling the binder
7339 generated file.
7340
73412011-08-02 Yannick Moy <moy@adacore.com>
7342
7343 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
7344 from here...
7345 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
7346 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
7347 Add with/use clauses to make Check_Formal_Restriction visible
7348
73492011-08-02 Ed Schonberg <schonberg@adacore.com>
7350
7351 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
7352 in-parameters when type of the generic formal is private in the generic
7353 spec and non-private in the body.
7354
73552011-08-02 Claire Dross <dross@adacore.com>
7356
7357 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
7358 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
7359 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
7360 * impunit.adb, Makefile.rtl: Take new files into account.
7361
73622011-08-02 Robert Dewar <dewar@adacore.com>
7363
7364 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
7365 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
7366
73672011-08-02 Yannick Moy <moy@adacore.com>
7368
7369 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
7370 formal mode
7371 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
7372 matching static array bounds, taking into account the special case of
7373 string literals
7374 * sem_ch3.adb: Typo in comment.
7375
73762011-08-02 Yannick Moy <moy@adacore.com>
7377
7378 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
7379 which issues an error in formal mode if its argument node is originally
7380 from source
7381 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
7382 has a discriminant specification so that it does not include the case
7383 of derived types
7384 (Derived_Type_Declaration): move here the test that a derived type has a
7385 discriminant specification
7386 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
7387 first element of a component association before accessing its choices
7388 (presence of component association is not enough)
7389 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
7390 declaration is a library item before accessing the next element in a
7391 list, as library items are not member of lists
7392 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
7393 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
7394 Check_Formal_Restriction whenever possible.
7395
73962011-08-02 Ed Schonberg <schonberg@adacore.com>
7397
7398 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
7399 reference when needed.
7400
74012011-08-02 Bob Duff <duff@adacore.com>
7402
7403 * gnat_ugn.texi: Fix typo.
7404
74052011-08-02 Vincent Celier <celier@adacore.com>
7406
7407 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
7408 archive file name. Do not use the full path name of archives for Open
7409 VMS.
7410
74112011-08-02 Robert Dewar <dewar@adacore.com>
7412
7413 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
7414 Analyze_Aspect_Specifications
7415 * sem_ch13.adb
7416 (Analyze_Aspect_Specifications): New handling for boolean aspects
7417 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
7418 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
7419 sequence for Analyze_Aspect_Specifications
7420 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
7421 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
7422
74232011-08-02 Robert Dewar <dewar@adacore.com>
7424
7425 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
7426 aspects, since these no longer exist.
7427
74282011-08-02 Robert Dewar <dewar@adacore.com>
7429
7430 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
7431 semicolon, do not try to see if there are aspects following it.
7432 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
7433 aspect spec.
7434
74352011-08-02 Robert Dewar <dewar@adacore.com>
7436
7437 * sem_ch8.adb, aspects.ads: Minor reformatting.
7438
74392011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7440
7441 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
7442 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
7443 extracted from...
7444 (Analyze_Aspect_Specifications): ...here. Call above procedure.
7445
74462011-08-02 Yannick Moy <moy@adacore.com>
7447
7448 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
7449 mode on subprogram declaration outside of package specification, unless
7450 it is followed by a pragma Import
7451 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
7452 Access_Type_Declaration): issue error in formal mode on access type
7453 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
7454 incomplete type
7455 (Analyze_Object_Declaration): issue error in formal mode on object
7456 declaration which does not respect SPARK restrictions
7457 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
7458 declaration which does not respect SPARK restrictions
7459 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
7460 error in formal mode on digits or delta constraint
7461 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
7462 decimal fixed point type
7463 (Derived_Type_Declaration): issue error in formal mode on derived type
7464 other than type extensions of tagged record types
7465 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
7466 with check on access definition
7467 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
7468 mode on protected definition.
7469 (Analyze_Task_Definition): issue error in formal mode on task definition
7470
74712011-08-02 Robert Dewar <dewar@adacore.com>
7472
7473 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
7474
74752011-08-02 Javier Miranda <miranda@adacore.com>
7476
7477 * sem_ch6.adb (Can_Override_Operator): New function.
7478 (Verify_Overriding_Indicator): Add missing code to check overriding
7479 indicator in operators. Fixes regression.
7480 (Check_Overriding_Indicator): Minor reformating after replacing the
7481 code that evaluates if the subprogram can override an operator by
7482 invocations to the above new function.
7483 * einfo.adb
7484 (Write_Field26_Name): Add missing code to ensure that, following
7485 the documentation in einfo.ads, this field is not shown as attribute
7486 "Static_Initialization" on non-dispatching functions.
7487
74882011-08-02 Jose Ruiz <ruiz@adacore.com>
7489
7490 * sem_res.adb (Resolve_Call): A call to
7491 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
7492 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
7493 i.e., when the second parameter is of type Time_Span.
7494
74952011-08-02 Vincent Celier <celier@adacore.com>
7496
7497 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
7498 with an archive instead of -L<library dir> -l<library name>.
7499
75002011-08-02 Ed Schonberg <schonberg@adacore.com>
7501
7502 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
7503 mark the base types In_Use in addition to making the operations
7504 use_visible.
7505
75062011-08-02 Ed Falis <falis@adacore.com>
7507
7508 * init.c: add and setup __gnat_signal_mask for the exception signals
7509 * s-inmaop-vxworks.adb: new file.
7510 * s-intman-vxworks.adb: remove unnecessary initializations and
7511 simplify remaining
7512 * s-intman-vxworks.ads: remove unnecessary variable
7513 * s-taprop-vxworks.adb: simplify signal initialization
7514
75152011-08-02 Robert Dewar <dewar@adacore.com>
7516
7517 * sem_ch8.adb: Minor code reorganization, comment updates.
7518
75192011-08-02 Robert Dewar <dewar@adacore.com>
7520
7521 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
7522 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
7523 here from Sem_Res.
7524 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
7525 (Matching_Static_Array_Bounds): Moved here from Sem_Res
7526
75272011-08-02 Ed Schonberg <schonberg@adacore.com>
7528
7529 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
7530 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
7531 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
7532 use_type_clauses, to handle more efficiently use_type and use_all_type
7533 constructs.
7534 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
7535 Ada2012 Use_All_Type clause.
7536 (Use_Class_Wide_Operations): new procedure.
7537
75382011-08-02 Robert Dewar <dewar@adacore.com>
7539
7540 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
7541 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
7542 expression to expression function.
7543
75442011-08-02 Ed Schonberg <schonberg@adacore.com>
7545
7546 * sem_ch4.adb: transform simple Ada2012 membership into equality only
7547 if types are compatible.
7548
75492011-08-02 Yannick Moy <moy@adacore.com>
7550
7551 * sem_res.adb (Matching_Static_Array_Bounds): new function which
7552 returns True if its argument array types have same dimension and same
7553 static bounds at each index.
7554 (Resolve_Actuals): issue an error in formal mode on actuals passed as
7555 OUT or IN OUT paramaters which are not view conversions in SPARK.
7556 (Resolve_Arithmetic_Op): issue an error in formal mode on
7557 multiplication or division with operands of fixed point types which are
7558 not qualified or explicitly converted.
7559 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
7560 Boolean or array type (except String) operands.
7561 (Resolve_Equality_Op): issue an error in formal mode on equality
7562 operators for array types other than String with non-matching static
7563 bounds.
7564 (Resolve_Logical_Op): issue an error in formal mode on logical operators
7565 for array types with non-matching static bounds. Factorize the code in
7566 Matching_Static_Array_Bounds.
7567 (Resolve_Qualified_Expression): issue an error in formal mode on
7568 qualified expressions for array types with non-matching static bounds.
7569 (Resolve_Type_Conversion): issue an error in formal mode on type
7570 conversion for array types with non-matching static bounds
7571
75722011-08-02 Robert Dewar <dewar@adacore.com>
7573
7574 * par-ch10.adb: Minor code reorganization (use Nkind_In).
7575
75762011-08-02 Ed Schonberg <schonberg@adacore.com>
7577
7578 * par-ch9.adb: save location of entry for proper error message.
7579
75802011-08-02 Javier Miranda <miranda@adacore.com>
7581
7582 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
7583 (Use_Full_View) which permits this routine to climb through the
7584 ancestors using the full-view of private parents.
7585 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
7586 Use_Full_View to true in calls to Is_Ancestor.
7587 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
7588 true in call to Is_Ancestor.
7589 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
7590 Use_Full_View to true in call to Is_Ancestor.
7591 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
7592 call to Is_Ancestor.
7593 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
7594 Use_Full_View to true in calls to Is_Ancestor.
7595 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
7596 Make_Select_Specific_Data_Table, Register_Primitive,
7597 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
7598 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
7599 to true in call to Is_Ancestor.
7600 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
7601 Use_Full_View to true in calls to Is_Ancestor.
7602 * exp_cg.adb
7603 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
7604 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
7605
76062011-08-02 Robert Dewar <dewar@adacore.com>
7607
7608 * gnat_rm.texi: Minor reformatting.
7609 * sem_prag.adb: Minor reformatting.
7610
76112011-08-02 Tristan Gingold <gingold@adacore.com>
7612
7613 * vms_data.ads: Add VMS qualifier for -gnateP.
7614
76152011-08-02 Robert Dewar <dewar@adacore.com>
7616
7617 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
7618 * par-ch7.adb (P_Package): Proper placement of aspects for package
7619 decl/instantiation.
7620 * par-endh.adb (Check_End): Ad Is_Sloc parameter
7621 (End_Statements): Add Is_Sloc parameterr
7622 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
7623 (Check_End): Ad Is_Sloc parameter
7624 (End_Statements): Add Is_Sloc parameterr
7625
76262011-08-02 Vincent Celier <celier@adacore.com>
7627
7628 * ug_words: Add VMS qualifier equivalent to -gnateP:
7629 /SYMBOL_PREPROCESSING.
7630
76312011-08-02 Jose Ruiz <ruiz@adacore.com>
7632
7633 * gnat-style.texi: For hexadecimal numeric literals the typical
7634 grouping of digits is 4 to represent 2 bytes.
7635 A procedure spec which is split into several lines is indented two
7636 characters.
7637
76382011-08-02 Yannick Moy <moy@adacore.com>
7639
7640 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
7641 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
7642 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
7643 properly qualified
7644 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
7645 choice in array aggregate
7646 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
7647 mark as ancestor
7648 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
7649 positional and named aggregate for record, or others in record
7650 aggregate, or multiple choice in record aggregate
7651 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
7652 array operands to logical operations AND, OR and XOR do not have the
7653 same static lower and higher bounds
7654 * sem_ch5.adb, sinfo.ads: Correct typos in comments
7655
76562011-08-01 Robert Dewar <dewar@adacore.com>
7657
7658 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
7659 Replaces Last_Source_Node_In_Sequence.
7660 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
7661 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
7662 parens and blank in string (this was inconsistently implemented).
7663 * errout.ads
7664 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
7665 blank in string (this was inconsistently implemented).
7666 * gnat1drv.adb
7667 (Set_Global_Switches): Set formal mode switches appropriately
7668 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
7669 * par-prag.adb
7670 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
7671 call Set_Error_Msg_Lang to set "spark" as language name.
7672 * par.adb: Remove unnecessary call to set formal language for errout
7673 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
7674 appropriately and call Set_Error_Msg_Lang to set "spark" as language
7675 name.
7676 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
7677 calls to it, moved after resolution so that types are known
7678 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
7679 result of concatenation is not of type String
7680 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
7681 concatenation is not properly restricted
7682 * gnat_rm.texi: Add doc on pragma Spark_95.
7683 * gcc-interface/Makefile.in: Remove obsolete target pairs for
7684 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
7685 * gcc-interface/Make-lang.in: Update dependencies.
7686
76872011-08-01 Javier Miranda <miranda@adacore.com>
7688
7689 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
7690 condition that detects if the overridden operation must replace an
7691 existing entity.
7692
76932011-08-01 Javier Miranda <miranda@adacore.com>
7694
7695 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
7696 code declarations inserted by Insert_Actions in each alternative of the
7697 N_Case_Expression node.
7698
76992011-08-01 Robert Dewar <dewar@adacore.com>
7700
7701 * sem_ch6.adb: Minor code reorganization.
7702 * sem_util.adb: Minor reformatting.
7703
77042011-08-01 Pascal Obry <obry@adacore.com>
7705
7706 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
7707 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
7708
77092011-08-01 Yannick Moy <moy@adacore.com>
7710
7711 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
7712 literal or operator symbol which is prefixed
7713 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
7714 mode on access attributes.
7715 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
7716 that concatenation operands are properly restricted in formal mode
7717 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
7718 Analyze_Concatenation_Operand. Issue an error in formal mode if the
7719 result of the concatenation has a type different from String.
7720 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
7721 Analyze_Quantified_Expression, Analyze_Slice,
7722 Analyze_Null): issue an error in formal mode on unsupported constructs
7723 * sem_ch5.adb
7724 (Analyze_Block_Statement): only issue error on source block statement
7725 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
7726 function which returns the last node in a list of nodes for which
7727 Comes_From_Source returns True, if any
7728 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
7729 Last_Source_Node_In_Sequence
7730 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
7731 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
7732 mode on unsupported constructs
7733 * sem_ch9.adb Do not return after issuing error in formal mode, as the
7734 rest of the actions may be needed later on since the error is marked as
7735 not serious.
7736 * sinfo.ads: Typos in comments.
7737
77382011-08-01 Pascal Obry <obry@adacore.com>
7739
7740 * projects.texi: Minor editing.
7741
77422011-08-01 Yannick Moy <moy@adacore.com>
7743
7744 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
7745 insertion character ~~
7746 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
7747 (Set_Error_Msg_Lang): new procedure which fixes the language for use
7748 with insertion character ~~
7749 (Set_Msg_Text): treat insertion character ~~
7750 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
7751 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
7752 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
7753 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
7754 errors related to the formal language restriction not serious
7755 (insertion character |).
7756 * par.adb (Par): set formal language for error messages if needed
7757 * sem_ch6.adb (Check_Missing_Return): take into account possible
7758 generated statements at the end of the function
7759 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
7760 enumeration value to define a new pragma SPARK_95
7761 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
7762 SPARK_Version): new type and variables to store the SPARK version
7763 (none by default).
7764 (SPARK_Mode): return True when SPARK_Version is set
7765 * par-prag.adb: Correct indentation
7766 (Prag): take Pragma_SPARK_95 into account
7767 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
7768 into account.
7769
77702011-08-01 Robert Dewar <dewar@adacore.com>
7771
7772 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
7773 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
7774 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
7775
77762011-08-01 Pascal Obry <obry@adacore.com>
7777
7778 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
7779 Target_Name to Get_Path call.
7780 (Parse_Single_Project): Likewise.
7781 (Post_Parse_Context_Clause): Likewise.
7782 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
7783 Call Initialise_Project_Path with the proper Target_Name.
7784 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
7785 search path.
7786 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
7787 with the proper Target_Name.
7788 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
7789 Part.Parse routine.
7790 (Parse_Project_And_Apply_Config): Likewise.
7791 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
7792 This is fine as this part of the code is supporting only native
7793 compilation.
7794 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
7795 is fine as this part of the code is supporting only native compilation.
7796
77972011-08-01 Yannick Moy <moy@adacore.com>
7798
7799 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
7800 of homonym, unless the homonym is one of the cases allowed in SPARK
7801 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
7802 package declaration occurring after a body.
7803
78042011-08-01 Robert Dewar <dewar@adacore.com>
7805
7806 * checks.adb, exp_ch4.adb: Minor reformatting.
7807
78082011-08-01 Javier Miranda <miranda@adacore.com>
7809
7810 * einfo.ads (Access_Disp_Table): Fix documentation.
7811 (Dispatch_Table_Wrappers): Fix documentation.
7812
78132011-08-01 Pascal Obry <obry@adacore.com>
7814
7815 * prj-env.adb, prj-env.ads: Minor reformatting.
7816
78172011-08-01 Yannick Moy <moy@adacore.com>
7818
7819 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
7820 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
7821 procedures out of these packages.
2c7f9cc0 7822 * errout.ads, errout.adb
052e0603
AC
7823 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
7824 procedures in of this package
7825 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
7826 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
7827 on misplaced later vs initial declarations, like in Ada 83
7828 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
7829 formal mode on attribute of private type whose full type declaration
7830 is not visible
7831 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
7832 package declaration inside a package specification
7833 (Analyze_Full_Type_Declaration): issue error in formal mode on
7834 controlled type or discriminant type
7835 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
7836 user-defined operator means that it should come from the source
7837 (New_Overloaded_Entity): issue error in formal mode on overloaded
7838 entity.
7839 * sem_ch6.ads, sem_ch13.ads: typos in comments.
7840
78412011-08-01 Thomas Quinot <quinot@adacore.com>
7842
7843 * atree.adb: Minor reformatting.
7844 * checks.adb: Minor reformatting.
7845
78462011-08-01 Vincent Celier <celier@adacore.com>
7847
7848 * s-parame-vms-ia64.ads: Fix typo in comment
7849 Minor reformatting
7850 * s-parame-vms-restrict.ads: Removed, unused.
7851
78522011-08-01 Javier Miranda <miranda@adacore.com>
7853
7854 * exp_ch3.adb
7855 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
7856 * sem_ch3.adb
7857 (Constrain_Index): Remove side effects in the evaluation of the bounds.
7858 * sem_ch3.ads, sem_ch3.adb
7859 (Is_Constant_Bound): New extended version of the subprogram that was
7860 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
7861 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
7862 * sem_aux.ads (Constant_Value): Fix typo in comment.
7863 * checks.adb (Generate_Index_Checks): New implementation which, for
7864 array objects with constant bounds, generates the runtime check
7865 referencing the bounds of the array type. For other cases this routine
7866 provides its previous behavior obtaining such values from the array
7867 object.
7868 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
7869 parent type.
7870 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
7871 we cannot have semantic interpretations of the new node.
7872
78732011-08-01 Ed Schonberg <schonberg@adacore.com>
7874
7875 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
7876 expressions.
7877
78782011-08-01 Arnaud Charlet <charlet@adacore.com>
7879
7880 * sem_ch8.adb: Minor code editing.
7881 * s-vxwext.adb: Remove trailing space.
7882 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
7883 consistency with other files.
7884
78852011-08-01 Thomas Quinot <quinot@adacore.com>
7886
7887 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
7888
78892011-08-01 Ed Schonberg <schonberg@adacore.com>
7890
7891 * par-ch10.adb: reject parameterized expressions as compilation unit.
7892 * sem_ch4.adb: handle properly conditional expression with overloaded
7893 then_clause and no else_clause.
7894
78952011-08-01 Tristan Gingold <gingold@adacore.com>
7896
7897 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
7898 like done by System.Aux_DEC.
7899 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
7900
79012011-08-01 Yannick Moy <moy@adacore.com>
7902
7903 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
7904 missing label at end of declaration (subprogram or package)
7905 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
7906 of positional and named parameter association
7907 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
7908 Error_Msg_SP which adds a prefix to the error message giving the name
7909 of the formal language analyzed
7910 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
7911 access result type in subprogram, unconstrained array as result type,.
7912 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
7913 procedure
7914 * sem_ch8.adb: Code clean up.
7915
79162011-08-01 Javier Miranda <miranda@adacore.com>
7917
7918 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
7919 * einfo.ads (Access_Disp_Table): Fix documentation.
7920 (Dispatch_Table_Wrappers): Fix documentation.
7921 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
7922 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
7923 to enforce the documentation of this attribute.
7924 (Set_Is_Interface): Cleanup the assertion.
7925 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
7926 the Underlying_Type entity before reading attribute Access_Disp_Table.
7927 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
7928 Locate the Underlying_Type before reading attribute Access_Disp_Table.
7929 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
7930 the Underlying_Type entity before reading attribute Access_Disp_Table.
7931 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
7932 Locate the Underlying_Type entity before reading attribute
7933 Access_Disp_Table.
7934
79352011-08-01 Ed Schonberg <schonberg@adacore.com>
7936
7937 * s-poosiz.ads: Additional overriding indicators.
7938
79392011-08-01 Yannick Moy <moy@adacore.com>
7940
7941 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
7942 formal mode.
7943 (Analyze_Iteration_Scheme): issue error in formal mode when loop
7944 parameter specification does not include a subtype mark.
7945 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
7946 formal mode on abstract subprogram.
7947 (Analyze_Subprogram_Specification): issue error in formal mode on
7948 user-defined operator.
7949 (Process_Formals): issue error in formal mode on access parameter and
7950 default expression.
7951 * sem_ch9.adb (Analyze_Abort_Statement,
7952 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
7953 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
7954 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
7955 Analyze_Requeue, Analyze_Selective_Accept,
7956 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
7957 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
7958 issue error in formal mode on user-defined raise statement.
7959
79602011-08-01 Thomas Quinot <quinot@adacore.com>
7961
7962 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
7963 declaration being hidden when overriding an implicit inherited
7964 subprogram.
7965 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
7966 (-gnats), do not complain about a source file that contains only a
7967 pragma No_Body.
7968
79692011-08-01 Ed Schonberg <schonberg@adacore.com>
7970
7971 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
7972 variable if already set.
7973
79742011-08-01 Arnaud Charlet <charlet@adacore.com>
7975
7976 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
7977 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
7978 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
7979 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
7980 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
7981 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
7982 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
7983 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
7984 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
7985 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
7986 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
7987 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
7988 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
7989 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
7990 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
7991 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
7992 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
7993 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
7994 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
7995 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
7996 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
7997 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
7998 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
7999 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
8000 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
8001 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
8002 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
8003 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
8004 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
8005 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
8006 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
8007 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
8008 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
8009 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
8010 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
8011 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
8012 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
8013 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
8014 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
8015 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
8016 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
8017 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
8018 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
8019 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
8020 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
8021 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
8022 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
8023 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
8024 s-osinte-mingw.ads: Update to GPLv3 run-time license.
8025 Use GNAT instead of GNARL.
8026
80272011-08-01 Bob Duff <duff@adacore.com>
8028
8029 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
8030 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
8031 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
8032 reformatting.
8033
80342011-08-01 Yannick Moy <moy@adacore.com>
8035
8036 * debug.adb (d.D) reverve flag for the SPARK mode
8037 (d.E) reverve flag for SPARK generation mode
8038 (d.F) reverve flag for Why generation mode
2c7f9cc0 8039 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
052e0603
AC
8040 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
8041 functions which return True when the corresponding modes are set
8042 (Formal_Language): return "spark" or "alfa" when in formal verification
8043 mode.
8044 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
8045 Error_Msg to prefix the error message with a tag giving the formal
8046 language
8047 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
8048 message with a tag giving the formal language
8049 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
8050 block statement
8051 (Analyze_Case_Statement): issue error in formal mode on case statement
8052 with a single "others" case alternative
8053 (Analyze_Exit_Statement): issue errors in formal mode on exit
8054 statements which do not respect SPARK restrictions
8055 (Analyze_Goto_Statement): issue error in formal mode on goto statement
8056 (Check_Unreachable_Code): always issue an error (not a warning) in
8057 formal mode on unreachable code (concerns both code after an infinite
8058 loop and after an unconditional jump, both not allowed in SPARK)
8059 * sem_ch6.adb (Analyze_Return_Statement): add call to
8060 Set_Return_Present for a procedure containing a return statement
8061 (already done for functions in Analyze_Function_Return)
8062 (Analyze_Function_Return): issue error in formal mode on extended
8063 return or if return is not last statement in function
8064 (Check_Missing_Return): issue error in formal mode if function does
8065 not end with return or if procedure contains a return
8066 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
8067 function to detect if there is an inner scope of its parameter S which
8068 is a loop.
8069
80702011-08-01 Thomas Quinot <quinot@adacore.com>
8071
8072 * sem_ch6.ads: Minor reformatting.
8073
80742011-08-01 Javier Miranda <miranda@adacore.com>
8075
8076 * sem_util.adb (Abstract_Interface_List): Complete condition when
8077 processing private type declarations to avoid reading unavailable
8078 attribute.
8079 (Is_Synchronized_Tagged_Type): Complete condition when processing
8080 private extension declaration nodes to avoid reading unavailable
8081 attribute.
8082
80832011-08-01 Thomas Quinot <quinot@adacore.com>
8084
8085 * sem_ch3.adb: Minor reformatting.
8086
80872011-08-01 Thomas Quinot <quinot@adacore.com>
8088
8089 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
8090 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
8091 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
8092 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
8093 for VMS, instead parametrize the common implementation with
8094 System.Parameters declarations.
8095
80962011-08-01 Eric Botcazou <ebotcazou@adacore.com>
8097
8098 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
8099
81002011-08-01 Tristan Gingold <gingold@adacore.com>
8101
8102 * seh_init.c: Fix SEH handler installation on win64.
8103
81042011-08-01 Ed Schonberg <schonberg@adacore.com>
8105
8106 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
8107 double analysis of an anonymous access to subprogram, because it can
8108 lead to improper sharing of profiles and a back-end crash.
8109
81102011-08-01 Robert Dewar <dewar@adacore.com>
8111
8112 * make.adb, sem_ch4.adb: Minor reformatting.
8113 * gcc-interface/Make-lang.in: Update dependencies.
8114 * sem_util.adb, exp_ch5.adb: Minor reformatting.
8115
81162011-08-01 Arnaud Charlet <charlet@adacore.com>
8117
8118 * gnat_rm.texi: Fix definition of Long_Integer.
8119
81202011-08-01 Ed Schonberg <schonberg@adacore.com>
8121
8122 * exp_aggr.adb: check limit size of static aggregate unconditionally,
8123 to prevent storage exhaustion.
8124 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
8125 finalized is a function body, insert the cleanup code before the final
8126 return statement, to prevent spurious warnings.
8127 * s-pooglo.ads: add overriding indicator.
8128
81292011-08-01 Ed Schonberg <schonberg@adacore.com>
8130
8131 * sem_ch4.adb (Operator_Check): improve error message when both a
8132 with_clause and a use_clause are needed to make operator usage legal.
8133 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
8134 determine whether a compilation unit is visible within an other,
8135 either through a with_clause in the current unit, or a with_clause in
8136 its library unit or one one of its parents.
8137
81382011-08-01 Ed Schonberg <schonberg@adacore.com>
8139
8140 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
8141 over an arbitrary expression of an array or container type.
8142 * lib-xref.adb: clarify comment.
8143
81442011-08-01 Bob Duff <duff@adacore.com>
8145
8146 * einfo.ads: Minor reformatting.
8147 * debug.adb: Minor comment improvement.
8148
81492011-08-01 Javier Miranda <miranda@adacore.com>
8150
8151 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
8152 consider hidden subprograms as valid candidates.
8153
81542011-08-01 Arnaud Charlet <charlet@adacore.com>
8155
8156 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
8157
81582011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
8159
8160 * gnat_ugn.texi: Fix typo.
8161
81622011-08-01 Robert Dewar <dewar@adacore.com>
8163
8164 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
8165 lib-xref.adb: Minor reformatting
8166
81672011-08-01 Gary Dismukes <dismukes@adacore.com>
8168
8169 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
8170 when to generate a call to Move_Final_List.
8171 (Has_Controlled_Parts): Remove this function.
8172
81732011-08-01 Geert Bosch <bosch@adacore.com>
8174
8175 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
8176 "," in choice list.
8177
81782011-08-01 Thomas Quinot <quinot@adacore.com>
8179
8180 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
8181 explicit raise of a predefined exception as Comes_From_Source if the
8182 original N_Raise_Statement comes from source.
8183
81842011-08-01 Robert Dewar <dewar@adacore.com>
8185
8186 * sinfo.ads: Add comment.
8187 * sem_ch6.adb: Minor reformatting.
8188
81892011-08-01 Robert Dewar <dewar@adacore.com>
8190
8191 * freeze.adb (Freeze_Entity): Refine check for bad component size
8192 clause to avoid rejecting confirming clause when atomic/aliased present.
8193
81942011-08-01 Ed Schonberg <schonberg@adacore.com>
8195
8196 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
8197 better determine whether an entity reference is a write.
8198 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
8199 subcomponent.
8200 * lib-xref.adb (Output_References): Do no suppress a read reference at
8201 the same location as an immediately preceeding modify-reference, to
8202 handle properly in-out actuals.
8203
82042011-08-01 Tristan Gingold <gingold@adacore.com>
8205
8206 * env.c (__gnat_setenv) [VMS]: Refine previous change.
8207
82082011-08-01 Quentin Ochem <ochem@adacore.com>
8209
8210 * i-cstrin.adb (New_String): Changed implementation, now uses only the
8211 heap to compute the result.
8212
82132011-08-01 Robert Dewar <dewar@adacore.com>
8214
8215 * atree.ads: Minor reformatting.
8216
82172011-08-01 Emmanuel Briot <briot@adacore.com>
8218
8219 * g-expect.adb (Get_Command_Output): Fix memory leak.
8220
82212011-08-01 Geert Bosch <bosch@adacore.com>
8222
8223 * cstand.adb (P_Float_Type): New procedure to print the definition of
8224 predefined fpt types.
8225 (P_Mixed_Name): New procedure to print a name using mixed case
8226 (Print_Standard): Use P_Float_Type for printing floating point types
8227 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
8228 precision IEEE float.
8229
82302011-08-01 Thomas Quinot <quinot@adacore.com>
8231
8232 * sem_ch3.adb: Minor reformatting.
8233
82342011-08-01 Ed Schonberg <schonberg@adacore.com>
8235
8236 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
8237 the completion of a generic function, insert the new body rather than
8238 rewriting the original.
8239
82402011-08-01 Yannick Moy <moy@adacore.com>
8241
8242 * sinfo.ads, errout.ads: Typos in comments.
8243
82442011-08-01 Robert Dewar <dewar@adacore.com>
8245
8246 * par-endh.adb: Minor reformatting.
8247
82482011-08-01 Robert Dewar <dewar@adacore.com>
8249
8250 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
8251 (Pre_Post_Aspects): New subtype.
8252 * par-ch12.adb (P_Generic): New syntax for aspects in packages
8253 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
8254 * par-ch7.adb (P_Package): Remove Decl parameter
8255 (P_Package): Handle new syntax for aspects (before IS)
8256 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
8257 new aspect syntax
8258 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
8259 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
8260 (P_Package): Remove Decl parameter
8261 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
8262 aspects
8263 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
8264 specs
8265 * sem_util.ads, sem_util.adb (Static_Boolean): New function
8266 * sinfo.ads: Document new syntax for aspects in packages etc.
8267 * sprint.adb: Handle new syntax of aspects before IS in package
8268
82692011-08-01 Thomas Quinot <quinot@adacore.com>
8270
8271 * atree.ads: Minor reformatting.
8272 * sem_prag.adb: Minor reformatting.
8273
82742011-08-01 Robert Dewar <dewar@adacore.com>
8275
8276 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
8277 case expr alternative.
8278
82792011-08-01 Ed Schonberg <schonberg@adacore.com>
8280
8281 * sem_ch12.adb: Fix typo.
8282
82832011-08-01 Geert Bosch <bosch@adacore.com>
8284
8285 * sem_prag.adb (Check_No_Link_Name): New procedure.
8286 (Process_Import_Or_Interface): Use Check_No_Link_Name.
8287 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
8288 instead of Standard_Long_Long_Float_Size global. Preparation for
8289 eventual removal of per type constants.
8290 * exp_util.ads (Get_Stream_Size): New function returning the stream
8291 size value of subtype E.
8292 * exp_util.adb (Get_Stream_Size): Implement new function.
8293 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
8294 function.
8295 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
8296 * einfo.adb:
8297 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
8298
82992011-08-01 Geert Bosch <bosch@adacore.com>
8300
8301 * cstand.adb: Fix comments.
8302 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
8303 count of arguments.
8304
83052011-08-01 Robert Dewar <dewar@adacore.com>
8306
8307 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
8308
83092011-08-01 Geert Bosch <bosch@adacore.com>
8310
8311 * atree.ads: Fix comment.
8312
83132011-08-01 Robert Dewar <dewar@adacore.com>
8314
8315 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
8316 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
8317 * par.adb: Add with for Namet.Sp.
8318 * par-tchk.adb: Minor reformatting.
8319
83202011-08-01 Vincent Celier <celier@adacore.com>
8321
8322 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
8323 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
8324 of the init procedure of a SAL.
8325 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
8326 New procedure.
8327
83282011-08-01 Thomas Quinot <quinot@adacore.com>
8329
8330 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
8331 reformatting.
8332
83332011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8334
8335 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
8336
83372011-08-01 Thomas Quinot <quinot@adacore.com>
8338
8339 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
8340 conformant with its spec (return True only for types that have
8341 an overriding Initialize primitive operation that prevents them from
8342 having preelaborable initialization).
8343 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
8344 initialization for controlled types in Ada 2005 or later mode.
8345
83462011-08-01 Robert Dewar <dewar@adacore.com>
8347
8348 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
8349 Postcondition.
8350 (Same_Aspect): New function.
8351 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
8352 Type_Invariant, Precondition, Postcondition.
8353 * snames.ads-tmpl: Add Name_Type_Invariant.
8354
83552011-08-01 Robert Dewar <dewar@adacore.com>
8356
8357 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
8358 here.
8359 (Freeze_All_Ent): Fix error in handling inherited aspects.
8360 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
8361 already analyzed, but don't skip entire processing of a declaration,
8362 that's wrong in some cases of declarations being rewritten.
8363 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
8364 Don't delay for integer, string literals
8365 Treat predicates in usual manner for delay, remove special case code,
8366 not needed.
8367 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
8368 (Build_Predicate_Function): Update saved expression in aspect
8369 (Build_Invariant_Procedure): Update saved expression in aspect
8370 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
8371 of replacement of discriminant references if the reference is simple.
8372
83732011-08-01 Robert Dewar <dewar@adacore.com>
8374
8375 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
8376 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
8377 Static_Predicate and Dynamic_Predicate.
8378 (Build_Predicate_Function): Add processing for Static_Predicate
8379 and Dynamic_Predicate.
8380 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
8381 (From_Static_Predicate): New flag
8382 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
8383
83842011-08-01 Robert Dewar <dewar@adacore.com>
8385
8386 * usage.adb: Documentation cleanup for Ada version modes in usage.
8387 * expander.adb: Minor reformatting.
8388
83892011-08-01 Robert Dewar <dewar@adacore.com>
8390
8391 * atree.ads: Minor comment fix.
8392 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
8393 a-witeio.ads, sem_prag.adb: Minor reformatting.
8394
83952011-08-01 Doug Rupp <rupp@adacore.com>
8396
8397 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
8398 pointers. Use descrip.h header file for convenience. Add some
8399 comments.
8400
84012011-08-01 Robert Dewar <dewar@adacore.com>
8402
8403 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
8404 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
8405 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
8406 New procedure.
8407 (Check_Aspect_At_End_Of_Declarations): New procedure
8408 (Analye_Aspect_Specification): Minor changes for above procedures
8409 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
8410 specification node as well.
8411
84122011-08-01 Pascal Obry <obry@adacore.com>
8413
8414 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
8415 Windows files. Use GetFilesAttributes() in this case to check for file
8416 existence instead of returning with an error code.
8417
84182011-08-01 Vincent Celier <celier@adacore.com>
8419
8420 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
8421 High is above Source length.
8422
84232011-08-01 Robert Dewar <dewar@adacore.com>
8424
8425 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
8426
84272011-08-01 Robert Dewar <dewar@adacore.com>
8428
8429 * aspects.ads (Boolean_Aspects): New subtype.
8430 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
8431 for derived types in cases where the parent type and derived type have
8432 aspects.
8433 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
8434 with aspects when parent type also has aspects.
8435 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
8436 boolean expression at this point).
8437 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
8438 accordance with final decision on the Ada 2012 feature.
8439 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
8440
84412011-08-01 Matthew Heaney <heaney@adacore.com>
8442
8443 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
8444
84452011-08-01 Pascal Obry <obry@adacore.com>
8446
8447 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
8448 Fix Replace_Slice when High is above current string size.
8449 (Replace_Slice): Fix DL computation when High is above current
8450 string length.
8451
84522011-08-01 Gary Dismukes <dismukes@adacore.com>
8453
8454 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
8455
84562011-08-01 Matthew Heaney <heaney@adacore.com>
8457
8458 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
8459 of node.
8460
84612011-08-01 Pascal Obry <obry@adacore.com>
8462
8463 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
8464 reformatting.
8465
84662011-08-01 Ed Schonberg <schonberg@adacore.com>
8467
8468 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
8469 access to protected subprograms in generic bodies.
8470 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
8471 protected type, indicate that the convention of the subprogram is
8472 Convention_Protected, because it may be used in subsequent declarations
8473 within the protected declaration.
8474
84752011-08-01 Vincent Celier <celier@adacore.com>
8476
8477 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
8478 and "final" procedures when the name of the library is "ada", to avoid
8479 duplicate symbols "adainit" and "adafinal" in executables.
8480
84812011-08-01 Ed Schonberg <schonberg@adacore.com>
8482
8483 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
8484 quantified expression that appears within a postcondition and uses the
8485 Ada2012 'Result attribute.
8486
84872011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8488
8489 * init.c (__gnat_error_handler): Cast reason to int.
8490 (__gnat_install_handler): Explain sa_sigaction use.
8491
84922011-07-24 Eric Botcazou <ebotcazou@adacore.com>
8493
8494 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
8495 subprogram has copy-in copy-out parameters, try to promote the mode of
8496 the return type if it is passed in registers.
8497
84982011-07-24 Eric Botcazou <ebotcazou@adacore.com>
8499
8500 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
8501 left operand as addressable.
8502
85032011-07-24 Eric Botcazou <ebotcazou@adacore.com>
8504
8505 * gcc-interface/gigi.h (build_function_stub): Remove.
8506 (build_return_expr): Likewise.
8507 (convert_vms_descriptor): Declare.
8508 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
8509 (build_function_stub): Move to...
8510 * gcc-interface/utils2.c (build_return_expr): Move to...
8511 * gcc-interface/trans.c (build_function_stub): ...here.
8512 (build_return_expr): ...here.
8513 (Subprogram_Body_to_gnu): Add local variable for language_function.
8514 Disconnect the parameter attributes cache, if any, once done with it.
8515 Call end_subprog_body only after setting the end_locus.
8516 Build the stub associated with the function, if any, at the very end.
8517 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
8518 variables and streamline control flow.
8519
85202011-07-23 Arnaud Charlet <charlet@adacore.com>
8521
8522 PR ada/49819
8523 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
8524 g-trasym-dwarf.adb.
8525
85262011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8527
8528 PR bootstrap/49794
8529 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
8530 Assign to act.sa_sigaction.
8531 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
8532 current->return_address to char * before arithmetic.
8533
85342011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8535
8536 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
8537 Correct argument types.
8538 Extract code from reason.
8539 (__gnat_install_handler): Assign to act.sa_sigaction.
8540
85412011-07-21 Eric Botcazou <ebotcazou@adacore.com>
8542
8543 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
8544 (GNAT1_OBJS): ...here.
8545
85462011-07-15 Eric Botcazou <ebotcazou@adacore.com>
8547
8548 PR ada/48711
8549 * g-socthi-mingw.adb (Fill): Fix formatting.
8550
8551 * gcc-interface/gigi.h: Move around comment.
8552
85532011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8554
8555 PR ada/46350
8556 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
8557
85582011-07-14 Florian Weimer <fw@deneb.enyo.de>
8559
8560 PR ada/48711
8561 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
8562
85632011-07-13 Eric Botcazou <ebotcazou@adacore.com>
8564
8565 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
8566 range comparison if Pmode is SImode.
8567
85682011-07-12 Laurent GUERBY <laurent@guerby.net>
8569 Eric Botcazou <ebotcazou@adacore.com>
8570
8571 * adadecode.c: Wrap up in extern "C" block.
8572 * adadecode.h: Likewise.
8573 * adaint.c: Likewise. Remove 'const' keyword.
8574 * adaint.h: Likewise.
8575 * argv.c: Likewise.
8576 * atree.h: Likewise.
8577 * cio.c: Likewise.
8578 * cstreams.c: Likewise.
8579 * env.c: Likewise.
8580 * exit.c: Likewise.
8581 * fe.h: Likewise.
8582 * final.c: Likewise.
8583 * init.c: Likewise.
8584 * initialize.c: Likewise.
8585 * link.c: Likewise.
8586 * namet.h: Likewise.
8587 * nlists.h: Likewise.
8588 * raise.c: Likewise.
8589 * raise.h: Likewise.
8590 * repinfo.h: Likewise.
8591 * seh_init.c: Likewise.
8592 * targext.c: Likewise.
8593 * tracebak.c: Likewise.
8594 * uintp.h: Likewise.
8595 * urealp.h: Likewise.
8596 * xeinfo.adb: Wrap up generated C code in extern "C" block.
8597 * xsinfo.adb: Likewise.
8598 * xsnamest.adb: Likewise.
8599 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
8600 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
8601 * gcc-interface/misc.c: Likewise.
8602 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
8603 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
8604 ada/targext.o here...
8605 (GNAT_ADA_OBJS): ...and not here.
8606 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
8607 (GNATBIND_OBJS): Reorder.
8608
86092011-07-07 Richard Henderson <rth@redhat.com>
8610
8611 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
8612 dwarf2out_frame_init.
8613
86142011-07-07 Eric Botcazou <ebotcazou@adacore.com>
8615
8616 * gcc-interface/misc.c (gnat_init): Tweak previous change.
8617
86182011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8619
8620 PR target/39150
8621 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
8622
86232011-07-06 Richard Guenther <rguenther@suse.de>
8624
8625 * gcc-interface/misc.c (gnat_init): Merge calls to
8626 build_common_tree_nodes and build_common_tree_nodes_2.
8627 Re-initialize boolean_false_node.
8628
86292011-07-02 Eric Botcazou <ebotcazou@adacore.com>
8630 Olivier Hainque <hainque@adacore.com>
8631 Nicolas Setton <setton@adacore.com>
8632
8633 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
8634 the type according to the ARTIFICIAL_P parameter.
8635 (create_type_decl): Likewise.
8636 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
8637
86382011-07-01 Eric Botcazou <ebotcazou@adacore.com>
8639
8640 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
8641 (gnatbind): Likewise.
8642
86432011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8644
8645 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
8646
86472011-06-18 Eric Botcazou <ebotcazou@adacore.com>
8648
8649 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
8650 local variable throughout. Remove useless call to Base_Type.
8651 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
8652 Take it also into account for the volatileness of the field. Set the
8653 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
8654
86552011-06-18 Eric Botcazou <ebotcazou@adacore.com>
8656
8657 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
8658 on a dereference built for a by-ref object if it has an address clause.
8659
86602011-06-18 Eric Botcazou <ebotcazou@adacore.com>
8661
8662 * einfo.ads (Address_Taken): Document use for the second argument of
8663 Asm_Input and Asm_Output attributes.
8664 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
8665 argument is an entity name, then set Address_Taken on it.
8666 <Attribute_Asm_Output>: Likewise.
8667 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
8668 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
8669 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
8670 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
8671
86722011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
8673
8674 PR middle-end/46500
8675 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
8676
86772011-06-14 Joseph Myers <joseph@codesourcery.com>
8678
8679 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
8680 (ada/utils.o): Update dependencies.
8681 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
8682 ../../../libcpp/libcpp.a.
8683 * gcc-interface/utils.c: Include common/common-target.h.
8684 (process_attributes): Use targetm_common.have_named_sections.
8685
86862011-06-07 Richard Guenther <rguenther@suse.de>
8687
8688 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
8689 set_sizetype.
8690
86912011-06-06 Eric Botcazou <ebotcazou@adacore.com>
8692
8693 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
8694 TREE_THIS_NOTRAP flag.
8695
86962011-06-06 Eric Botcazou <ebotcazou@adacore.com>
8697
8698 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
8699 Fix thinko.
8700
87012011-06-06 Eric Botcazou <ebotcazou@adacore.com>
8702
8703 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
8704 constants whose full view has discriminants specially.
8705
87062011-06-06 Eric Botcazou <ebotcazou@adacore.com>
8707
8708 * gcc-interface/utils.c: Include diagnostic.h.
8709 (gnat_write_global_declarations): Output debug information for all
8710 global type declarations before finalizing the compilation unit.
8711 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
8712
87132011-05-25 Jakub Jelinek <jakub@redhat.com>
8714
8715 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
8716
87172011-05-25 Kai Tietz <ktietz@redhat.com>
8718
8719 * adaint.c (__gnat_to_canonical_file_list_next): Use array
8720 initialization instead of const/none-const pointer assignment.
8721
87222011-05-24 Joseph Myers <joseph@codesourcery.com>
8723
8724 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
8725 $(EXTRA_GNAT1_OBJS).
8726 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
8727 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
8728 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
8729 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
8730 libcommon-target.a instead of prefix.o.
8731
87322011-05-21 Joseph Myers <joseph@codesourcery.com>
8733
8734 PR ada/49097
8735 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
8736
87372011-05-20 Joseph Myers <joseph@codesourcery.com>
8738
8739 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
8740 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
8741 instead of version.o.
8742
87432011-05-18 Kai Tietz <ktietz@redhat.com>
8744
8745 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
8746 boolean_false_node instead of integer_zero_node.
8747 (convert_with_check): Likewise.
8748 * gcc-interface/decl.c (choices_to_gnu): Likewise.
8749
87502011-05-12 Eric Botcazou <ebotcazou@adacore.com>
8751
8752 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
8753 type of the parameter is an unconstrained array, convert the actual to
8754 the type of the formal in the In Out and Out cases as well.
8755
87562011-05-11 Nathan Froyd <froydnj@codesourcery.com>
8757
8758 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
8759 call build_function_type_array or build_varargs_function_type_array
8760 instead.
8761 (create_subprog_type): Don't call build_function_type; call
8762 build_function_type_vec instead.
8763
87642011-05-11 Nathan Froyd <froydnj@codesourcery.com>
8765
8766 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
8767 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
8768 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
8769
87702011-05-07 Eric Botcazou <ebotcazou@adacore.com>
8771
8772 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
8773
8774 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
8775 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
8776
87772011-05-05 Nathan Froyd <froydnj@codesourcery.com>
8778
8779 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
8780
87812011-05-05 Nathan Froyd <froydnj@codesourcery.com>
8782
8783 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
8784 instead of accessing TYPE_ARG_TYPES directly.
8785 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
8786
87872011-05-05 Eric Botcazou <ebotcazou@adacore.com>
8788
8789 PR ada/48844
8790 * gcc-interface/gigi.h (get_variant_part): Declare.
8791 * gcc-interface/decl.c (get_variant_part): Make global.
8792 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
8793 types have the same constant size, are record types and T1 has a
8794 variant part while T2 doesn't.
8795
87962011-05-05 Eric Botcazou <ebotcazou@adacore.com>
8797
8798 * gcc-interface/utils.c (begin_subprog_body): Do not call
8799 get_pending_sizes.
8800 (end_subprog_body): Likewise.
8801
88022011-05-04 Richard Guenther <rguenther@suse.de>
8803
8804 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
8805 int_const_binop.
8806 (pos_to_constructor): Likewise.
8807
88082011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2c7f9cc0 8809 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
8810
8811 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
8812 of build_function_type. Adjust calls to...
8813 (build_raise_check): ...this. Do not take a void_tree parameter.
8814 Call build_function_type_list instead of build_function_type.
8815 Fix head comment and swap couple of conditional blocks.
8816
88172011-04-30 Eric Botcazou <ebotcazou@adacore.com>
8818
8819 * gnatvsn.ads (Library_Version): Bump to 4.7.
8820 (Current_Year): Bump to 2011.
8821
88222011-04-29 Michael Matz <matz@suse.de>
8823
8824 * gcc-interface/misc.c (gnat_handle_option): Set
8825 warn_maybe_uninitialized.
8826
88272011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
8828
8829 * gnat_ugn.texi (Complexity Metrics Control): Update link to
8830 the Watson/McCabe paper.
8831
88322011-04-23 Jim Meyering <meyering@redhat.com>
8833
8834 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
8835
88362011-04-22 Eric Botcazou <ebotcazou@adacore.com>
8837
8838 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
8839 onto the new type.
8840
88412011-04-22 Eric Botcazou <ebotcazou@adacore.com>
8842
8843 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
8844 parameter.
8845 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
8846 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
8847 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
8848 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
8849 <all>: Do not set flags on the reused DECL node coming from an alias.
8850 Set DECL_IGNORED_P on the DECL node built for subprograms if they
8851 don't need debug info here...
8852 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
8853 (gigi): Adjust calls to create_subprog_decl.
8854 (build_raise_check): Likewise.
8855 (establish_gnat_vms_condition_handler): Likewise.
8856 (Compilation_Unit_to_gnu): Likewise.
8857 (gnat_to_gnu): Likewise.
8858
88592011-04-21 Eric Botcazou <ebotcazou@adacore.com>
8860
8861 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
8862 (NO_REORDER_ADAFLAGS): New variable.
8863 (EXTRA_GNATTOOLS): Always define.
8864 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
8865 Clean up and adjust list of files compiled with special options.
8866 * gcc-interface/Make-lang.in: Likewise.
8867 (ada/decl.o): Cosmetical change.
8868 (ada/misc.o): Remove dependency on $(PLUGIN_H).
8869
88702011-04-20 Jim Meyering <meyering@redhat.com>
8871
8872 * initialize.c (__gnat_initialize): Remove useless if-before-free.
8873
88742011-04-17 Eric Botcazou <ebotcazou@adacore.com>
8875
8876 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
8877 $(CFLAGS) on the link line.
8878
88792011-04-17 Eric Botcazou <ebotcazou@adacore.com>
8880
8881 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
8882 padded type built for the return type if it is unconstrained.
8883
88842011-04-14 Nathan Froyd <froydnj@codesourcery.com>
8885
8886 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
8887
88882011-04-12 Nathan Froyd <froydnj@codesourcery.com>
8889
8890 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
8891 before calling TREE_CHAIN.
8892 * gcc-interface/misc.c (gnat_init_ts): New function.
8893 (LANG_HOOKS_INIT_TS): Define.
8894
88952011-04-12 Martin Jambor <mjambor@suse.cz>
8896
8897 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
8898 instead of cgraph_node.
8899
89002011-04-08 Eric Botcazou <ebotcazou@adacore.com>
8901
8902 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
8903 alignment on fields of the RETURN type built for the Copy-In Copy-Out
8904 mechanism.
8905
89062011-04-08 Eric Botcazou <ebotcazou@adacore.com>
8907
8908 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
8909 of aggregate types that contain a placeholder.
8910
89112011-04-08 Nathan Froyd <froydnj@codesourcery.com>
8912
8913 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
8914 TYPE_ARG_TYPES.
8915 (handle_type_generic_attribute): Likewise.
8916
89172011-04-04 Eric Botcazou <ebotcazou@adacore.com>
8918
8919 PR ada/47163
8920 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
8921
89222011-04-04 Kai Tietz <ktietz@redhat.com>
8923
8924 PR ada/47163
8925 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
8926 to flag value.
8927
89282011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8929
8930 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
8931 type case, do not strip a padding type around the array type.
8932
89332011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8934
8935 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
8936 types.
8937
89382011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8939
8940 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
8941 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
8942 code for -feliminate-unused-debug-types.
8943 (gnat_post_options): Likewise.
8944
89452011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8946
8947 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
8948 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
8949 distinct copy.
8950
89512011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8952
8953 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
8954 DECL_ARTIFICIAL flag on enumeration types.
8955
89562011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8957
8958 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
8959 fat pointer types artificial unconditionally.
8960 <E_Array_Subtype>: Attach the base array type as a parallel type if it
8961 isn't artificial.
8962
89632011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8964
8965 * gcc-interface/gigi.h (get_dummy_type): Declare.
8966 (build_dummy_unc_pointer_types): Likewise.
8967 (finish_fat_pointer_type): Likewise.
8968 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
8969 fat pointer type has been built, complete it in place.
8970 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
8971 and thin pointers. Remove useless variable.
8972 (finish_fat_pointer_type): Make global and move to...
8973 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
8974 (get_dummy_type): New function.
8975 (build_dummy_unc_pointer_types): Likewise.
8976 (gnat_pushdecl): Propage the name to the anonymous variants only.
8977 (update_pointer_to): Only adjust the pointer types in the unconstrained
8978 array case.
8979
89802011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8981
8982 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
8983 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
8984 if this is a Taft amendment type and the full declaration is available.
8985 * gcc-interface/trans.c (process_type): Likewise.
8986 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
8987 (process_freeze_entity): Likewise.
8988 * gcc-interface/utils.c (dummy_global): New static variable.
8989 (gnat_write_global_declarations): If there are types declared as used
8990 at the global level, insert them in the global hash table.
8991
89922011-04-02 Eric Botcazou <ebotcazou@adacore.com>
8993
8994 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
8995 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
8996 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
8997 copy.
8998 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
8999 flag of the type accordingly.
9000 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
9001
90022011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9003
9004 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
9005 finalizing types when updating the pointers to the designated type.
9006 <all>: Finalize the deferred types even if we didn't defer processing
9007 of incomplete types in this invocation.
9008
90092011-04-01 Olivier Hainque <hainque@adacore.com>
2c7f9cc0
AS
9010 Nicolas Setton <setton@adacore.com>
9011 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
9012
9013 * gcc-interface/misc.c (gnat_descriptive_type): New function.
9014 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
9015
90162011-03-28 Kai Tietz <ktietz@redhat.com>
9017
9018 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
9019 Windows targets.
9020 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
9021 * system-mingw.ads (System): Change ZCX_By_Default default to True.
9022
9023 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
9024
90252011-03-28 Tristan Gingold <gingold@adacore.com>
9026
9027 PR ada/44431
9028 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
9029 Use ada output of gnatbind.
9030 (ada/b_gnatb.adb): Ditto.
9031 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
9032 (ada.mostlyclean, ada.stage1)
9033 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
9034 (ada.stagefeedback): Adjust.
9035 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
9036 Use ada output of gnatbind.
9037 (b_gnatm.adb): Ditto.
9038 (b_gnatl.o, b_gnatm.o): New rules.
9039
90402011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9041
9042 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
9043 for the padded type built to support a specified size or alignment.
9044
90452011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9046
9047 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
9048 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
9049 unconditionally to the end of the unit when the designated type is
9050 limited_with'ed.
9051 <all>: Rename local variable. Attempt to un-defer types only and do it
9052 for limited_with'ed types as well.
9053 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
9054 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
9055 consistently and remove redundant call to finalize_from_with_types.
9056
90572011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9058
9059 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
9060 subprograms without a previous spec declared in the same unit.
9061 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
9062 subprograms at the end of the unit instead of at the beginning.
9063 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
9064 isn't public for the special handling of non-inline functions nested
9065 inside inline external functions.
9066
90672011-03-25 Jeff Law <law@redhat.com>
9068
9069 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
9070
90712011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9072
9073 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
9074 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
9075 to compute Set_Size_Depends_On_Discriminant.
9076 (Layout_Type): Call it on array types in back-end layout mode.
9077 * sem_util.adb (Requires_Transient_Scope): Return true for array
9078 types only if the size depends on the value of discriminants.
9079 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
9080 type if the RHS is a call to a function that returns an unconstrained
9081 type with default discriminant.
9082
90832011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9084
9085 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
9086 non-conversion to the nominal result type at the end.
9087
90882011-03-23 Eric Botcazou <ebotcazou@adacore.com>
9089
9090 * gcc-interface/trans.c (create_temporary): New function taken from...
9091 (create_init_temporary): ...here. Call it.
9092 (call_to_gnu): Create the temporary for the return value early, if any.
9093 Create it for a function with copy-in/copy-out parameters if there is
9094 no target; in other cases of copy-in/copy-out, use another temporary.
9095 Push the new binding level lazily. Add and rename local variables.
9096
90972011-03-23 Eric Botcazou <ebotcazou@adacore.com>
9098
9099 * gcc-interface/decl.c (validate_size): Improve comments and tweak
9100 error message.
9101 (set_rm_size): Likewise.
9102
91032011-03-23 Eric Botcazou <ebotcazou@adacore.com>
9104
9105 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
9106 for the padded type built in order to support a specified alignment.
9107 Fix incorrect formatting.
9108
91092011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9110
9111 PR bootstrap/48216
9112 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
9113
91142011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9115
9116 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
9117 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
9118 to the end of the list. Adjust recursive call. Rename local variable.
9119 If REORDER is true, reorder components of the record type.
9120 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
9121 components_to_record and adjust the parameter list.
9122
91232011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9124
9125 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
9126 disabled, use the variable for bounds of loop iteration scheme.
9127
91282011-03-21 Kai Tietz <ktietz@redhat.com>
9129
9130 PR target/12171
9131 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
9132
91332011-03-17 Eric Botcazou <ebotcazou@adacore.com>
9134
9135 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
9136 out whether the expression is read-only. Short-circuit placeholder
9137 case and rename a couple of local variables.
9138
91392011-03-17 Eric Botcazou <ebotcazou@adacore.com>
9140
9141 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
9142 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
9143 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
9144 (convert): Deal with conversions from a smaller form type specially.
9145
91462011-02-14 Eric Botcazou <ebotcazou@adacore.com>
9147
9148 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
9149 its argument, except for the special -I- switch.
9150
91512011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
9152
9153 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
9154 "Ada Issues".
9155
91562011-02-08 Eric Botcazou <ebotcazou@adacore.com>
9157
9158 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
9159
91602011-02-03 Eric Botcazou <ebotcazou@adacore.com>
9161
9162 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
9163 GNAT_FORMAL.
9164 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
9165 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
9166 instead of GNAT_FORMAL. Protect the expression against multiple uses.
9167 Do not generate the check directly, instead instantiate the template
9168 check present in the descriptor.
9169 (make_descriptor_field): Move around.
9170 (build_vms_descriptor32): Build a template check in the POINTER field.
9171 (build_vms_descriptor): Remove useless suffixes.
9172 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
9173
91742011-01-26 Eric Botcazou <ebotcazou@adacore.com>
9175
9176 PR bootstrap/47467
9177 * targext.c: Include target files if IN_RTS is defined.
9178
91792011-01-26 Richard Guenther <rguenther@suse.de>
9180
9181 PR bootstrap/47467
9182 * targext.c: Include config.h.
9183 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
9184 dependency.
9185
91862011-01-04 Pascal Obry <obry@adacore.com>
2c7f9cc0 9187 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
9188
9189 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
9190
91912011-01-04 Eric Botcazou <ebotcazou@adacore.com>
9192
9193 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
9194 end-of-case on the end label and its associated gotos, if any.
9195
91962011-01-04 Eric Botcazou <ebotcazou@adacore.com>
9197
9198 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
9199 expressions of the parameter cache within the statement group of
9200 the CICO mechanism.
9201
92022011-01-04 Olivier Hainque <hainque@adacore.com>
2c7f9cc0 9203 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
9204
9205 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
9206 (set_end_locus_from_node): New function.
9207 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
9208 make and the function end_locus.
9209 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
9210 for the elaboration subprogram.
9211 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
9212 set the end_locus of the expression as well.
9213
92142011-01-04 Eric Botcazou <ebotcazou@adacore.com>
9215
9216 PR ada/47131
9217 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
9218 variables that are referenced in exception handlers volatile.
9219
9220
9221\f
9222Copyright (C) 2011 Free Software Foundation, Inc.
9223
9224Copying and distribution of this file, with or without modification,
9225are permitted in any medium without royalty provided the copyright
9226notice and this notice are preserved.
9227
9228 * gnat_rm.texi: Ramification of pragma Eliminate documentation
9229 - fix bugs in the description of Source_Trace;
9230 - get rid of UNIT_NAME;
9231
4fbad0ba
AC
92322011-08-02 Javier Miranda <miranda@adacore.com>
9233
9234 * exp_ch9.adb
9235 (Build_Dispatching_Requeue): Adding support for VM targets
9236 since we cannot directly reference the Tag entity.
9237 * exp_sel.adb (Build_K): Adding support for VM targets.
9238 (Build_S_Assignment): Adding support for VM targets.
9239 * exp_disp.adb
9240 (Default_Prim_Op_Position): In VM targets do not restrict availability
9241 of predefined interface primitives to compiling in Ada 2005 mode.
9242 (Is_Predefined_Interface_Primitive): In VM targets this service is not
9243 restricted to compiling in Ada 2005 mode.
9244 (Make_VM_TSD): Generate code that declares and initializes the OSD
9245 record. Needed to support dispatching calls through synchronized
9246 interfaces.
9247 * exp_ch3.adb
9248 (Make_Predefined_Primitive_Specs): Enable generation of predefined
9249 primitives associated with synchronized interfaces.
9250 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
9251 primitives associated with synchronized interfaces.
9252
92532011-08-02 Yannick Moy <moy@adacore.com>
9254
9255 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
9256 statements hidden in SPARK if preceded by the HIDE directive
9257 (Parse_Exception_Handlers): mark each exception handler in a sequence of
9258 exception handlers as hidden in SPARK if preceded by the HIDE directive
9259 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
9260 if starting with the HIDE directive
9261 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
9262 starting with the HIDE directive; mark the declarations in a private
9263 part as hidden in SPARK if the private part starts with the HIDE
9264 directive
9265 * restrict.adb, restrict.ads
9266 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
9267 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
9268 argument node belongs to a part which is hidden in SPARK
9269 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
9270 parts in SPARK; protect the possibly costly call to
9271 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
9272 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
9273 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
9274 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
9275 Tok_SPARK_Hide.
9276 (Scan): recognize special comment starting with '#' and followed by
9277 SPARK keyword "hide" as a HIDE directive.
9278
92792011-08-02 Yannick Moy <moy@adacore.com>
9280
9281 * types.ads, erroutc.ads: Minor reformatting.
9282
92832011-08-02 Vincent Celier <celier@adacore.com>
9284
9285 * link.c: Add response file support for cross platforms.
9286
6ff6152d
ES
92872011-08-02 Ed Schonberg <schonberg@adacore.com>
9288
9289 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
9290 in an association, set parent field of copy before partial analysis.
9291 * sem_res.adb (Resolve_Slice): create reference to itype only when
9292 expansion is enabled.
9293
975c6896
YM
92942011-08-02 Yannick Moy <moy@adacore.com>
9295
9296 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
9297 for new flag denoting which subprogram bodies are in ALFA
9298 * restrict.adb, sem_ch7.adb: Update comment
9299 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
9300 sem_ch9.adb, sem_res.adb: Add calls to
9301 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
9302 * sem_ch6.adb (Analyze_Function_Return): add calls to
9303 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
9304 middle of the body, and extended return.
9305 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
9306 False when missing return.
9307 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
9308 to True for subprograms whose spec is in ALFA. Remove later on the flag
9309 on the entity used for a subprogram body when there exists a separate
9310 declaration.
9311 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
9312 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
9313 False, otherwise do nothing.
9314
afc8324d
AC
93152011-08-02 Robert Dewar <dewar@adacore.com>
9316
9317 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
9318
93192011-08-02 Yannick Moy <moy@adacore.com>
9320
9321 * sem_ch4.ads: minor formatting.
9322
2ba431e5
YM
93232011-08-02 Yannick Moy <moy@adacore.com>
9324
9325 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
9326 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
9327 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
9328 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
9329 opt.ads: cleanup of SPARK mode
9330
0f853035
YM
93312011-08-02 Yannick Moy <moy@adacore.com>
9332
9333 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
9334 types.
9335 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
9336 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
9337 * sem_ch3.adb
9338 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
9339 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
9340 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
9341 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
9342 types.
9343 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
9344 non-static range.
9345 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
9346 functions whose return type is not in ALFA.
9347 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
9348 specifications.
9349 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
9350 parameter's type is not in ALFA.
9351 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
9352 types are in ALFA.
9353
d2b10647
ES
93542011-08-02 Ed Schonberg <schonberg@adacore.com>
9355
9356 * sem_ch6 (Analyze_Expression_Function): treat the function as
9357 Inline_Always, and introduce a subprogram declaration for it when it is
9358 not a completion.
9359 * inline.adb (Add_Inlined_Body): recognize bodies that come from
9360 expression functions, so that the back-end can determine whether they
9361 can in fact be inlined.
9362 * sem_util.adb (Is_Expression_Function): predicate to determine whether
9363 a function body comes from an expression function.
9364
c7b9d548
AC
93652011-08-02 Gary Dismukes <dismukes@adacore.com>
9366
9367 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
9368 null exclusions to test Can_Never_Be_Null on the anonymous access types
9369 of the formals rather than testing the formals themselves. Exclude this
9370 check in cases where the Old_Formal is marked as a controlling formal,
9371 to avoid issuing spurious errors for bodies completing dispatching
9372 operations (due to the flag not getting set on controlling access
9373 formals in body specs).
9374 (Find_Corresponding_Spec): When checking full and subtype conformance of
9375 subprogram bodies in instances, pass Designated and E in that order, for
9376 consistency with the expected order of the formals (New_Id followed by
9377 Old_Id).
9378
93792011-08-02 Robert Dewar <dewar@adacore.com>
9380
9381 * sem_ch8.adb: Minor reformatting.
9382
1138cf59
AC
93832011-08-02 Ed Schonberg <schonberg@adacore.com>
9384
9385 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
9386 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
9387 primitive operations of class-wide actuals.
9388
93892011-08-02 Javier Miranda <miranda@adacore.com>
9390
9391 * exp_atag.ads, exp_atag.adb
9392 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
9393 since its value is implicitly passed in argument Typ.
9394 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
9395 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
9396 Build_Common_Dispatching_Select_Statements.
9397
7b9db926
RD
93982011-08-02 Robert Dewar <dewar@adacore.com>
9399
9400 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
9401 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
9402 Minor reformatting.
9403
e8374e7a
AC
94042011-08-02 Robert Dewar <dewar@adacore.com>
9405
9406 * sem_res.adb: Minor reformatting.
9407 * sem_prag.adb: Minor reformatting.
9408
94092011-08-02 Javier Miranda <miranda@adacore.com>
9410
9411 * exp_atag.adb, exp_atags.ads
9412 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
9413 by the tagged type Entity. Required to use this routine in the VM
9414 targets since we do not have available the Tag entity in the VM
9415 platforms.
9416 * exp_ch6.adb
9417 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
9418 Ada.Tags has not been previously loaded.
9419 * exp_ch7.adb
9420 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
9421 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
9422 * sem_aux.adb
9423 (Enclosing_Dynamic_Scope): Add missing support to handle the full
9424 view of enclosing scopes. Required to handle enclosing scopes that
9425 are synchronized types whose full view is a task type.
9426 * exp_disp.adb
9427 (Build_VM_TSDs): Minor code improvement to avoid generating and
9428 analyzing lists with empty nodes.
9429 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
9430 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
9431 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
9432 (Make_Disp_Timed_Select_Body): Add support for VM targets.
9433 (Make_Select_Specific_Data_Table): Add support for VM targets.
9434 (Make_VM_TSD): Generate code to initialize the SSD structure of
9435 the TSD.
9436
94372011-08-02 Yannick Moy <moy@adacore.com>
9438
9439 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
9440 cross-references section in ALI.
9441 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
9442 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
9443 Sub).
9444 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
9445 subprogram or package entity of a node
9446 (Is_Local_Reference_Type): new function returns True for references
9447 selected in local cross-references.
9448 (Lt): function extracted from Lt in Output_References
9449 (Write_Entity_Name): function extracted from Output_References
9450 (Generate_Definition): generate reference with type 'D' for definition
9451 of objects (object declaration and parameter specification), with
9452 appropriate locations and units, for use in local cross-references.
9453 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
9454 references of type 'I' for initialization in object definition.
9455 (Output_References): move part of function Lt and procedure
9456 Write_Entity_Name outside of the body. Ignore references of types 'D'
9457 and 'I' introduced for local cross-references.
9458 (Output_Local_References): new procedure to output the local
9459 cross-references sections.
9460 (Lref_Entity_Status): new array defining whether an entity is a local
9461 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
9462 with 'I' type when initialization expression is present.
9463 * get_scos.adb, get_scos.ads: Correct comments and typos
9464
1f6439e3
AC
94652011-08-02 Javier Miranda <miranda@adacore.com>
9466
9467 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
9468 the JVM target.
9469 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
9470 the JVM target.
9471 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
9472 TSD support.
9473
94742011-08-02 Vincent Celier <celier@adacore.com>
9475
9476 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
9477 (No_Space_Img): New function
9478 (Find_Excluded_Sources): When reading from a file, record the file name
9479 and the line number for each excluded source.
9480 (Mark_Excluded_Sources): When reporting an error, if the excluded
9481 sources were read from a file, include file name and line number in
9482 the error message.
9483
94842011-08-02 Ed Schonberg <schonberg@adacore.com>
9485
9486 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
9487
ab027d28
RD
94882011-08-02 Robert Dewar <dewar@adacore.com>
9489
9490 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
9491
b3b28b0c
JM
94922011-08-02 Javier Miranda <miranda@adacore.com>
9493
9494 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
9495 generation of TSDs to the DOTNET compiler.
9496 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
9497 generation of TSDs to the DOTNET compiler.
9498
9732e886
JM
94992011-08-02 Javier Miranda <miranda@adacore.com>
9500
9501 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
9502 record of all the tagged types declared inside library level package
9503 declarations, library level package bodies or library level subprograms.
9504 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
9505 associated with a given tagged type.
9506 (Build_VM_TSDs): New subprogram.
9507 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
9508 compilation units that are subprograms.
9509 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
9510 compilation units that are package bodies.
9511 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
9512 units that are a package declaration or a package instantiation.
9513 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
9514 reorganization to improve the error generated by the frontend when the
9515 function Ada.Tags.Secondary_Tag is not available.
9516 * rtsfind.ads (RE_Register_TSD): New runtime entity.
9517 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
9518
e526d0c7
AC
95192011-08-02 Javier Miranda <miranda@adacore.com>
9520
9521 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
9522
95232011-08-02 Robert Dewar <dewar@adacore.com>
9524
9525 * s-imenne.ads: Minor reformatting.
9526
95272011-08-02 Robert Dewar <dewar@adacore.com>
9528
9529 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
9530 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
9531 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
9532
95332011-08-02 Robert Dewar <dewar@adacore.com>
9534
9535 * einfo.ads (Materialize_Entity): Document this is only for renamings
9536 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
9537 required debug information in the case where we transform the object
9538 declaration into a renaming declaration.
9539 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
9540 object
9541 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
9542 Materialize_Entity.
9543
5b1e6aca
RD
95442011-08-02 Robert Dewar <dewar@adacore.com>
9545
9546 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
9547 Suppress_Init_Procs.
9548 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
9549 Suppress_Initialization/Initialization_Suppressed.
9550 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
9551 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
9552 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
9553 * sem_prag.adb: New processing for pragma Suppress_Initialization.
9554
5ad4969d
RD
95552011-08-02 Robert Dewar <dewar@adacore.com>
9556
9557 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
9558 Minor reformatting.
9559
8c4ee6f5
AC
95602011-08-02 Ed Schonberg <schonberg@adacore.com>
9561
9562 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
9563 only have inheritable classwide pre/postconditions.
9564
95652011-08-02 Javier Miranda <miranda@adacore.com>
9566
9567 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
9568 * rtsfind.ads (RE_Check_TSD): New runtime entity.
9569 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
9570 checks if the external tag of a type is the same as the external tag
9571 of some other declaration.
9572
0b3d16c0
AC
95732011-08-02 Thomas Quinot <quinot@adacore.com>
9574
9575 * s-taskin.ads: Minor reformatting.
9576
95772011-08-02 Emmanuel Briot <briot@adacore.com>
9578
9579 * g-comlin.adb (Display_Help): swap the order in which it prints the
9580 short help and the general usage.
9581
95822011-08-02 Ed Schonberg <schonberg@adacore.com>
9583
9584 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
9585 the aspect declarations and attach them to the generic copy for
9586 subsequent analysis.
9587 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
9588 declarations of the generic tree to the new subprogram declarations.
9589 * sem_attr.adb (Check_Precondition_Postcondition): recognize
9590 conditions that apply to a subprogram instance.
9591
95922011-08-02 Robert Dewar <dewar@adacore.com>
9593
9594 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
9595
95962011-08-02 Ed Schonberg <schonberg@adacore.com>
9597
9598 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
9599 private type with a tagged full view is not derived in the immediate
9600 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
9601
4637729f
AC
96022011-08-02 Robert Dewar <dewar@adacore.com>
9603
9604 * exp_ch4.adb: Minor reformatting.
9605
96062011-08-02 Ed Schonberg <schonberg@adacore.com>
9607
9608 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
9609 Ada2012 iterator, the loop will be rewritten during expansion into a
9610 while loop with a cursor and an element declaration. Do not analyze the
9611 body in this case, because if the container is for indefinite types the
9612 actual subtype of the elements will only be determined when the cursor
9613 declaration is analyzed.
9614
96152011-08-02 Arnaud Charlet <charlet@adacore.com>
9616
9617 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
9618 size/alignment related attributes in CodePeer_Mode.
9619
96202011-08-02 Gary Dismukes <dismukes@adacore.com>
9621
9622 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
9623 Prepend_Element, since this can result in the operation getting the
9624 wrong slot in the full type's dispatch table if the full type has
9625 inherited operations. The incomplete type's operation will get added
9626 to the proper position in the full type's primitives
9627 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
9628 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
9629 dispatching operations, since there are cases where nonprimitive
9630 subprograms can get added to the list of incomplete dependents (such
9631 as subprograms in nested packages).
9632 * sem_ch6.adb (Process_Formals): First, remove test for being in a
9633 private part when determining whether to add a primitive with a
9634 parameter of a tagged incomplete type to the Private_Dependents list.
9635 Such primitives can also occur in the visible part, and should not have
9636 been excluded from being private dependents.
9637 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
9638 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
9639 list of a Taft-amendment incomplete type is a primitive before issuing
9640 an error that the full type must appear in the same unit. There are
9641 cases where nonprimitives can be in the list (such as subprograms in
9642 nested packages).
9643 * sem_disp.adb (Derives_From): Use correct condition for checking that
9644 a formal's type is derived from the type of the corresponding formal in
9645 the parent subprogram (the condition was completely wrong). Add
9646 checking that was missing for controlling result types being derived
9647 from the result type of the parent operation.
9648
4c60de0c
YM
96492011-08-02 Yannick Moy <moy@adacore.com>
9650
9651 * errout.adb (First_Node): minor renaming
9652 * restrict.adb (Check_Formal_Restriction): put restriction warning on
9653 first node.
9654
f5afb270
AC
96552011-08-02 Yannick Moy <moy@adacore.com>
9656
9657 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
9658 before accessing operands.
9659 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
9660 decide whether an initialization expression respects SPARK rules, as
9661 the plain node is the expanded one. This allows for more valid warnings
9662 to be issued.
9663 * gnat_rm.texi: Minor update.
9664
96652011-08-02 Arnaud Charlet <charlet@adacore.com>
9666
9667 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
9668 previous change.
9669
96702011-08-02 Robert Dewar <dewar@adacore.com>
9671
9672 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
9673
96742011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
9675
9676 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
9677 loop statements and the element renaming declaration with a block when
9678 the element type is controlled.
9679
96802011-08-02 Yannick Moy <moy@adacore.com>
9681
9682 * sinfo.ads: Minor formatting.
9683
96842011-08-02 Ed Schonberg <schonberg@adacore.com>
9685
9686 * sem_aggr.adb (Add_Association): if the association has a box and no
9687 expression, use the Sloc of the aggregate itself for the new
9688 association.
9689 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
9690 the Original_Node.
9691
db72f10a
AC
96922011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
9693
9694 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
9695 When a container is provided via a function call, generate a renaming
9696 of the function result. This avoids the creation of a transient scope
9697 and the premature finalization of the container.
9698 * exp_ch7.adb (Is_Container_Cursor): Removed.
9699 (Wrap_Transient_Declaration): Remove the supression of the finalization
9700 of the list controller when the declaration denotes a container cursor,
9701 it is not needed.
9702
97032011-08-02 Yannick Moy <moy@adacore.com>
9704
9705 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
9706 node is from source, instead of the original node being from source.
9707 * sem_aggr.adb
9708 (Resolve_Array_Aggregate): refine the check for a static expression, to
9709 recognize also static ranges
9710 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
9711 Array_Type_Declaration): postpone the test for the type being a subtype
9712 mark after the type has been resolved, so that component-selection and
9713 expanded-name are discriminated.
9714 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
9715 to distinguish the case of an iteration scheme, so that an error is
9716 issed on a non-static range in SPARK except in an iteration scheme.
9717 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
9718 In_Iter_Schm = True.
9719 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
9720 user-defined operators so that they are allowed in renaming
9721 * sem_ch8.adb
9722 (Find_Selected_Component): refine the check for prefixing of operators
9723 so that they are allowed in renaming. Move the checks for restrictions
9724 on selector name after analysis discriminated between
9725 component-selection and expanded-name.
9726 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
9727 concatenation argument of string type if it is static.
9728 * sem_util.adb, sem_util.ads
9729 (Check_Later_Vs_Basic_Declarations): add a new function
9730 Is_Later_Declarative_Item to decice which declarations are allowed as
9731 later items, in the two different modes Ada 83 and SPARK. In the SPARK
9732 mode, add that renamings are considered as later items.
9733 (Enclosing_Package): new function to return the enclosing package
9734 (Enter_Name): correct the rule for homonyms in SPARK
9735 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
9736 from source (result of expansion) to avoid issuing wrong warnings.
9737
97382011-08-02 Ed Schonberg <schonberg@adacore.com>
9739
9740 * errout.adb: On anything but an expression First_Node returns its
9741 argument.
9742
23685ae6
AC
97432011-08-02 Pascal Obry <obry@adacore.com>
9744
9745 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
9746
97472011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
9748
9749 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
9750 Set the associated loop as the related expression of internally
9751 generated cursors.
9752 * exp_ch7.adb (Is_Container_Cursor): New routine.
9753 (Wrap_Transient_Declaration): Supress the finalization of the list
9754 controller when the declaration denotes a container cursor.
9755
97562011-08-02 Yannick Moy <moy@adacore.com>
9757
9758 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
9759 command line now.
9760 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
9761 expression is a simple expression. This check cannot be performed in
9762 the semantics, so just drop it.
9763 (P_Index_Or_Discriminant_Constraint): move check that the index or
9764 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
9765 semantics. Other cases were previously checked in the semantics.
9766 * par-ch4.adb (P_Name): move checks that a selector name is not
9767 character literal or an operator symbol to Find_Selected_Component in
9768 the semantics
9769 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
9770 declarations are not placed after later declarations in a separate
9771 procedure in Sem_Util (possibly not the best choice?), to be used both
9772 during parsing, for Ada 83 mode, and during semantic analysis, for
9773 SPARK mode.
9774 * par-endh.adb (Check_End): move check that end label is not missing
9775 to Process_End_Label in the semantics
9776 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
9777 the special case for SPARK restriction
9778 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
9779 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
9780 parameter Force to issue the error message even on internal node (used
9781 for generated end label). Call Check_Restriction to check when an error
9782 must be issued. In SPARK mode, issue an error message even if the
9783 restriction is not set.
9784 (Check_Restriction): new procedure with an additional out parameter to
9785 inform the caller that a message has been issued
9786 * sem_aggr.adb: Minor modification of message
9787 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
9788 instead of issuing an error message directly
9789 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
9790 declarations are not placed after later declarations, by calling
9791 Check_Later_Vs_Basic_Declarations
9792 (Analyze_Subtype_Declaration): move here the check that an index or
9793 discriminant constraint must be a subtype mark. Change the check that
9794 a subtype of String must start at one so that it works on subtype marks.
9795 * sem_ch4.adb (Analyze_Call): move here the check that a named
9796 association cannot follow a positional one in a call
9797 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
9798 instead of issuing an error message directly
9799 * sem_ch8.adb (Find_Selected_Component): move here the check that a
9800 selector name is not a character literal or an operator symbol. Move
9801 here the check that the prefix of an expanded name cannot be a
9802 subprogram or a loop statement.
9803 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
9804 procedure called from parsing and semantics to check that basic
9805 declarations are not placed after later declarations
9806 (Process_End_Label): move here the check that end label is not missing
9807
98082011-08-02 Arnaud Charlet <charlet@adacore.com>
9809
9810 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
9811 representation clause in codepeer mode, since it confuses CodePeer and
9812 does not bring useful info.
9813
98142011-08-02 Ed Falis <falis@adacore.com>
9815
9816 * init.c: initialize fp hw on MILS.
9817
98182011-08-02 Ed Schonberg <schonberg@adacore.com>
9819
9820 * errout.adb (First_Node): for bodies, return the node itself (small
9821 optimization). For other nodes, do not check source_unit if the node
9822 comes from Standard.
9823
d2d9cc22
AC
98242011-08-02 Robert Dewar <dewar@adacore.com>
9825
9826 * exp_ch3.adb: Minor comment additions.
9827 * sem_ch13.adb: Minor reformatting.
9828
98292011-08-02 Pascal Obry <obry@adacore.com>
9830
9831 * make.adb, makeutl.adb: Removes some superfluous directory separator.
9832
a01b9df6
AC
98332011-08-02 Robert Dewar <dewar@adacore.com>
9834
9835 * sem_attr.adb: Minor reformatting.
9836
98372011-08-02 Robert Dewar <dewar@adacore.com>
9838
9839 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
9840 (Has_Default_Component_Value): Removed
9841 * einfo.ads Comment updates
9842 (Has_Default_Aspect): Replaces Has_Default_Value
9843 (Has_Default_Component_Value): Removed
9844 * exp_ch13.adb
9845 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
9846 * exp_ch3.adb
9847 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
9848 (Get_Simple_Init_Val): Handle Default_Value aspect
9849 (Needs_Simple_Initialization): Handle Default_Value aspect
9850 * exp_ch3.ads: Needs_Simple_Initialization
9851 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
9852 * par-prag.adb (Pragma_Default[_Component]Value) Removed
9853 * sem_ch13.adb
9854 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
9855 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
9856 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
9857
98582011-08-02 Ed Schonberg <schonberg@adacore.com>
9859
9860 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
9861 package containing iteration primitives.
9862 exp_ch5.adb (Expand_Iterator_Loop): ditto.
9863
75c90775
AC
98642011-08-02 Ed Schonberg <schonberg@adacore.com>
9865
9866 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
9867 "of", pre-analyze expression in case it is a function call with
9868 finalization actions that must be placed ahead of the loop.
9869 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
9870 on an Ada2012 iterator, insert them ahead of the rewritten loop.
9871
98722011-08-02 Geert Bosch <bosch@adacore.com>
9873
9874 * cstand.adb (Create_Float_Types): Only consider C's long double for
9875 Long_Long_Float, in addition to double.
9876
ded8909b
AC
98772011-08-02 Robert Dewar <dewar@adacore.com>
9878
9879 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
9880 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
9881 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
9882 Minor reformatting.
9883
98842011-08-02 Ed Schonberg <schonberg@adacore.com>
9885
9886 * sem_attr.adb: handle properly 'Result when it is a prefix of an
9887 indexed component.
9888
98892011-08-02 Javier Miranda <miranda@adacore.com>
9890
9891 * einfo.ads, einfo.adb
9892 (Original_Access_Type): Move this attribute to Node26 since there was
9893 an undocumented use of Node21 in E_Access_Subprogram_Type entities
9894 which causes conflicts and breaks the generation of the .NET compiler.
9895 (Interface_Name): Add missing documentation on JGNAT only uses of
9896 this attribute.
9897
70c34e1c
AC
98982011-08-02 Geert Bosch <bosch@adacore.com>
9899
9900 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
9901 (Find_Back_End_Float_Type): Likewise
9902 (Create_Back_End_Float_Types): Likewise
9903 (Create_Float_Types): Likewise
9904 (Register_Float_Type): Likewise
9905 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
9906 Nlist and split out type selection in new local Find_Base_Type function.
9907 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
9908 Nlist
9909 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
9910
99112011-08-02 Robert Dewar <dewar@adacore.com>
9912
9913 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
9914 alpha order).
9915 * opt.ads: Minor comment change.
9916 * sem_ch12.adb: Minor code reorganization.
9917
b715bc59
AC
99182011-08-02 Gary Dismukes <dismukes@adacore.com>
9919
9920 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
9921 subtype's list of rep items to the list on the full subtype in the case
9922 where the lists are the same.
9923
99242011-08-02 Geert Bosch <bosch@adacore.com>
9925
9926 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
9927 using the one from System.Strings, which also deallocates all strings.
9928
002bdd68
AC
99292011-08-02 Geert Bosch <bosch@adacore.com>
9930
9931 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
9932 function.
9933 * gcc-interface/Make-lang.in: Update dependencies.
9934
99352011-08-02 Olivier Hainque <hainque@adacore.com>
9936
9937 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
9938 end_locus.
9939
499769ec
AC
99402011-08-02 Javier Miranda <miranda@adacore.com>
9941
9942 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
9943 associated with anonymous access to subprograms.
9944
99452011-08-02 Geert Bosch <bosch@adacore.com>
9946
9947 * opt.ads
9948 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
9949 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
9950 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
9951 (Add_Symbol_Definition): Move to switch-c.adb
9952 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
9953 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
9954 (Add_Symbol_Definition): Move to switch-c.adb.
9955 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
9956 * sem_warn.adb
9957 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
9958 Move to warnsw.adb.
9959 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
9960 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
9961 Move to warnsw.adb.
9962 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
9963 (Add_Symbol_Definition): Moved from Prepcomp.
9964 * switch-c.ads: Update copyright notice. Use String_List instead of
9965 Argument_List, removing dependency on System.OS_Lib.
9966
aa1e353a
AC
99672011-08-02 Yannick Moy <moy@adacore.com>
9968
9969 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
9970 mode on initialization expression which does not respect SPARK
9971 restrictions.
9972 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
9973 if the tree referenced by its argument represents an initialization
9974 expression in SPARK, suitable for initializing an object in an object
9975 declaration.
9976
99772011-08-02 Javier Miranda <miranda@adacore.com>
9978
9979 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
9980 internally generated access to subprogram with its associated protected
9981 subprogram type.
9982 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
9983
15b682ca
GB
99842011-08-02 Geert Bosch <bosch@adacore.com>
9985
9986 * cstand.adb (Register_Float_Type): Print information about type to
9987 register, if the Debug_Flag_Dot_B is set.
9988 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
9989 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
9990 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
9991 with a requested precision of more than Max_Digits digits and no more
9992 than Max_Base_Digits digits, if a range specification is present and the
9993 Predefined_Float_Types list has a suitable type to derive from.
9994 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
9995 case of type completion with pragma Import
9996 * sem_prag.adb
9997 (Process_Import_Predefined_Type): Processing to complete a type
9998 with pragma Import. Currently supports floating point types only.
9999 (Set_Convention_From_Pragma): Do nothing without underlying type.
10000 (Process_Convention): Guard against absence of underlying type,
10001 which may happen when importing incomplete types.
10002 (Process_Import_Or_Interface): Handle case of importing predefined
10003 types. Tweak error message.
10004
f8726f2b
AC
100052011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10006
10007 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
10008 functions to previous change. Reorganize code slightly.
10009
100102011-08-02 Geert Bosch <bosch@adacore.com>
10011
10012 * back_end.ads (Register_Type_Proc): New call back procedure type for
10013 allowing the back end to provide information about available types.
10014 (Register_Back_End_Types): New procedure to register back end types.
10015 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
10016 available types.
10017 * cstand.adb (Back_End_Float_Types): New list for floating point types
10018 supported by the back end.
10019 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
10020 (Copy_Float_Type): New procedure to make new copies of predefined types.
10021 (Register_Float_Type): New call back procedure to populate the BEFT list
10022 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
10023 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
10024 (Create_Float_Types): New procedure to create entities for floating
10025 point types predefined in Standard, and put these and any remaining
10026 BEFTs on the Predefined_Float_Types list.
10027 * stand.ads (Predefined_Float_Types): New list for predefined floating
10028 point types that do not have declarations in package Standard.
10029
feecad68
AC
100302011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10031
10032 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
10033 entity node for the unit containing the parameter.
10034 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
10035 (Add_Inlined_Subprogram): Likewise.
10036 * gcc-interface/Make-lang.in: Update dependencies.
10037
100382011-08-02 Thomas Quinot <quinot@adacore.com>
10039
10040 * s-stusta.adb (Print): Make sure Pos is always initialized to a
10041 suitable value.
10042
12f0c50c
AC
100432011-08-02 Geert Bosch <bosch@adacore.com>
10044
10045 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
10046
100472011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10048
10049 * sem_type.adb (Covers): Move trivial case to the top and reuse the
10050 computed value of Base_Type.
10051
100522011-08-02 Yannick Moy <moy@adacore.com>
10053
10054 * restrict.adb (Check_Restriction): issue an error for any use of
10055 class-wide, even if the No_Dispatch restriction is not set.
10056 * sem_aggr.adb: Correct typos in comments and messages in formal mode
10057 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
10058 when completing a private extension, the type named in the private part
10059 is not the same as that named in the visible part.
10060 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
10061 of an inherited primitive operations of a tagged type or type extension
10062 that returns the tagged type.
10063 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
10064 function which returns True for an implicit operation inherited by the
10065 derived type declaration for the argument type.
10066 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
10067 order.
10068
fb86fe11
ES
100692011-08-02 Ed Schonberg <schonberg@adacore.com>
10070
10071 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
10072 Process_Bounds, to perform analysis with expansion of a range or an
10073 expression that is the iteration scheme for a loop.
10074 (Analyze_Iterator_Specification): If domain of iteration is given by a
10075 function call with a controlled result, as is the case if call returns
10076 a predefined container, ensure that finalization actions are properly
10077 generated.
10078 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
10079
62be5d0a
JM
100802011-08-02 Javier Miranda <miranda@adacore.com>
10081
10082 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
10083 * gcc-interface/Make-lang.in: Update dependencies.
10084
100852011-08-02 Javier Miranda <miranda@adacore.com>
10086
10087 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
10088 determine if the analysis is performed using N or Original_Node (N).
10089 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
10090 functionality of routine Is_Variable avoids code duplication.
10091 * checks.adb (Determine_Range): Handle temporaries generated by
10092 Remove_Side_Effects.
10093
100942011-08-02 Javier Miranda <miranda@adacore.com>
10095
10096 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
10097 expansion of the condition. Required since the previous analysis was
10098 done with expansion disabled (see Resolve_Quantified_Expression) and
10099 hence checks were not inserted and record comparisons have not been
10100 expanded.
10101
a20f4389
AC
101022011-08-02 Ed Falis <falis@adacore.com>
10103
10104 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
10105 Update header.
10106
101072011-08-02 Bob Duff <duff@adacore.com>
10108
10109 * opt.ads: Minor comment fix.
10110
101112011-08-02 Bob Duff <duff@adacore.com>
10112
10113 * sem_ch12.adb (Analyze_Package_Instantiation,
10114 Analyze_Subprogram_Instantiation): Turn off style checking while
10115 analyzing an instance. Whatever style checks that apply to the generic
10116 unit should apply, so it makes no sense to apply them in an instance.
10117 This was causing trouble when compiling an instance of a runtime
10118 unit that violates the -gnatyO switch.
10119 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
10120 one of the two case statements, causing spurious errors.
10121
101222011-08-02 Robert Dewar <dewar@adacore.com>
10123
10124 * uname.adb: Minor reformatting.
10125 * gnatcmd.adb: Minor reformatting.
10126 * exp_attr.adb: Minor reformatting.
10127
90878b12
AC
101282011-08-02 Ed Schonberg <schonberg@adacore.com>
10129
10130 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
10131 No_Dispatching_Calls, do not look for the Assign primitive, because
10132 predefined primitives are not created in this case.
10133
101342011-08-02 Bob Duff <duff@adacore.com>
10135
10136 * stylesw.ads: Minor comment fixes.
10137
101382011-08-02 Robert Dewar <dewar@adacore.com>
10139
10140 * freeze.adb (Add_To_Result): New procedure.
10141
101422011-08-02 Jose Ruiz <ruiz@adacore.com>
10143
10144 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
10145 time, if the specific run-time routines for handling streams of strings
10146 are not available, use the default mechanism.
10147
101482011-08-02 Arnaud Charlet <charlet@adacore.com>
10149
10150 * s-regpat.ads: Fix typo.
10151
101522011-08-02 Vincent Celier <celier@adacore.com>
10153
10154 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
10155 not null, call it to create the in memory config project file without
10156 parsing an existing default config project file.
10157
101582011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10159
10160 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
10161
101622011-08-02 Ed Schonberg <schonberg@adacore.com>
10163
10164 * sem_elim.adb: an abstract subprogram does not need an eliminate
10165 pragma for its descendant to be eliminable.
10166
101672011-08-02 Ed Falis <falis@adacore.com>
10168
10169 * init.c: revert to handling before previous checkin for VxWorks
10170 * s-intman-vxworks.adb: delete unnecessary declarations related to
10171 using Ada interrupt facilities for handling signals.
10172 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
10173 * s-intman-vxworks.ads: Import __gnat_install_handler as
10174 Initialize_Interrupts.
10175 * s-taprop-vxworks.adb: Delete Signal_Mask.
10176 (Abort_Handler): change construction of mask to unblock exception
10177 signals.
10178
273adcdf
AC
101792011-08-02 Jerome Guitton <guitton@adacore.com>
10180
10181 * a-except-2005.adb (Raise_From_Signal_Handler): Call
10182 Debug_Raise_Exception before propagation starts.
10183
101842011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10185
10186 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
10187 to Restriction_Check_Required.
10188 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
10189 * sem_res.adb (Resolve_Call): Likewise.
10190 * sem_attr.adb (Check_Stream_Attribute): Likewise.
10191
101922011-08-02 Bob Duff <duff@adacore.com>
10193
10194 * stylesw.ads: Update comment.
10195 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
10196 * errout.ads: Remove obsolete comment.
10197
101982011-08-02 Javier Miranda <miranda@adacore.com>
10199
10200 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
10201 (Set_Is_Safe_To_Reevaluate): new procedure.
10202 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
10203 assignment is allowed on safe-to-reevaluate variables.
10204 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
10205 temporary created to remove side effects in expressions that use
10206 the secondary stack as safe-to-reevaluate.
10207 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
10208 variables that are not true constants.
10209
6320f5e1
AC
102102011-08-02 Robert Dewar <dewar@adacore.com>
10211
10212 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
10213 sem_res.adb, sem_ch6.adb: Minor reformatting.
10214
102152011-08-02 Jerome Guitton <guitton@adacore.com>
10216
10217 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
10218
2fe829ae
ES
102192011-08-02 Ed Schonberg <schonberg@adacore.com>
10220
10221 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
10222 not set Overridden_Operation if subprogram is an initialization
10223 procedure.
10224
e24329cd
YM
102252011-08-02 Yannick Moy <moy@adacore.com>
10226
10227 * par-ch6.adb: Correct obsolete name in comments
10228 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
10229 which takes two message arguments (existing function takes one), with
10230 second message used for continuation.
10231 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
10232 block statements that originate from a source block statement, not
10233 generated block statements
10234 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
10235 symmetry with procedure case
10236 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
10237 function to issue an error in formal mode if a package specification
10238 contains more than one tagged type or type extension.
10239 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
10240 parameters matching formals of tagged types are objects (or ancestor
10241 type conversions of objects), not general expressions. Issue an error
10242 on view conversions that are not involving ancestor conversion of an
10243 extended type.
10244 (Resolve_Type_Conversion): in formal mode, issue an error on the
10245 operand of an ancestor type conversion which is not an object
10246 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
10247 procedure so that it works also for actuals of function calls
10248 (Is_Actual_Tagged_Parameter): new function which determines if its
10249 argument is an actual parameter of a formal of tagged type in a
10250 subprogram call
10251 (Is_SPARK_Object_Reference): new function which determines if the tree
10252 referenced by its argument represents an object in SPARK
10253
176dadf6
AC
102542011-08-02 Robert Dewar <dewar@adacore.com>
10255
10256 * sem_ch3.adb: Minor reformatting
10257 Minor comment addition
10258 Minor error msg text change
10259
102602011-08-02 Javier Miranda <miranda@adacore.com>
10261
10262 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
10263 function. Used to be more precise when we generate a variable plus one
10264 assignment to remove side effects in the evaluation of the Bound
10265 expressions.
10266 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
10267 of the bound expression to force its re-analysis and thus expand the
10268 associated transient scope (if required). Code cleanup replacing the
10269 previous code that declared the constant entity by an invocation to
10270 routine Force_Evaluation which centralizes this work in the frontend.
10271
d8b962d8
AC
102722011-08-02 Robert Dewar <dewar@adacore.com>
10273
10274 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
10275 (Base_Type): Now uses improved Is_Base_Type function
10276 * einfo.ads (Base_Type): Inline this function
10277
102782011-08-02 Robert Dewar <dewar@adacore.com>
10279
10280 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
10281 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
10282
102832011-08-02 Arnaud Charlet <charlet@adacore.com>
10284
10285 * gcc-interface/Make-lang.in: Update dependencies.
10286 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
10287 targets.
10288
102892011-08-02 Yannick Moy <moy@adacore.com>
10290
10291 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
10292 non-simple expression used in delta constraint
10293 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
10294 index constraint which is not a subtype mark
10295 * par.adb: With and use Restrict
10296 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
10297 mode on component type which is not a subtype mark and default
10298 expression on component
10299 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
10300 of string which does not have a lower index bound equal to 1
10301 (Array_Type_Declaration): issue an error in formal mode on index or
10302 component type which is not a subtype mark, and on aliased keyword on
10303 component
10304 (Derived_Type_Declaration): issue an error in formal mode on interface,
10305 limited or abstract type
10306 (Record_Type_Declaration): issue an error in formal mode on interface
10307 (Record_Type_Definition): issue an error in formal mode on tagged types
10308 and type extensions not declared in the specification of a library unit
10309 package; on null non-tagged record; on variant part
10310
103112011-08-02 Vincent Celier <celier@adacore.com>
10312
10313 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
10314 not declared for qualified library project when Library_Name is not
10315 declared, but Library_Dir is.
10316
103172011-08-02 Robert Dewar <dewar@adacore.com>
10318
10319 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
10320 pragmas (affects aspects [Component_]Default_Value
10321 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
10322 component type for the resolution
10323
f96b2d85
AC
103242011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10325
10326 * einfo.adb (Base_Type): Tune implementation for speed.
10327
103282011-08-02 Robert Dewar <dewar@adacore.com>
10329
10330 * freeze.adb: Minor reformatting.
10331
8b3c6430
AC
103322011-08-02 Thomas Quinot <quinot@adacore.com>
10333
10334 * scos.ads: Update comments.
10335
103362011-08-02 Ed Schonberg <schonberg@adacore.com>
10337
10338 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
10339 base type, because the parent may be a subtype of a private type whose
10340 convention is established in a private part.
10341
103422011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10343
10344 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
10345 statement in a block when the expansion of the return expression has
10346 created a finalization chain.
10347 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
10348 with the parent node.
10349 Add N_Extended_Return_Statement to handle the case where a transient
10350 object declaration appears in the Return_Object_Declarations list of
10351 an extended return statement.
10352
103532011-08-02 Matthew Gingell <gingell@adacore.com>
10354
10355 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
10356 unused parameter 'name'.
10357
103582011-08-02 Ed Schonberg <schonberg@adacore.com>
10359
10360 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
10361 inherited operation, check whether its alias, which is the source
10362 operastion that it renames, has been marked eliminated.
10363
cae81f17
JM
103642011-08-02 Javier Miranda <miranda@adacore.com>
10365
10366 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
10367 in-mode parameter whose type is an access type since it can be used to
10368 modify its designated object. Enforce code that handles as safe an
10369 access type that is not access-to-constant but it is the result of a
10370 previous removal of side-effects.
10371 (Remove_Side_Effects): Minor code reorganization of cases which require
10372 no action. Done to incorporate documentation on new cases uncovered
10373 working in this ticket: no action needed if this routine was invoked
10374 too early and the nodes are not yet decorated.
10375 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
10376 to routine Remove_Side_Effects by calls to Force_Evaluation since they
10377 were issued with actuals that are implicitly provided by
10378 Force_Evaluation.
10379
218e6dee
RD
103802011-08-02 Robert Dewar <dewar@adacore.com>
10381
10382 * sem_ch3.adb, sem_res.adb: Minor reformatting.
10383
7a489a2b
AC
103842011-08-02 Yannick Moy <moy@adacore.com>
10385
10386 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
10387 to issue an error in formal mode on attribute not supported in this mode
10388 (Analyze_Attribute): issue errors on standard attributes not supported
10389 in formal mode.
10390 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
10391 comment, and issue error in formal mode on modulus which is not a power
10392 of 2.
10393 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
10394 range.
10395 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
10396 subtype mark.
10397 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
10398 operator on modular type (except 'not').
10399
104002011-08-02 Robert Dewar <dewar@adacore.com>
10401
10402 * gnat_rm.texi: Minor reformatting.
10403
cb7fa356
AC
104042011-08-02 Arnaud Charlet <charlet@adacore.com>
10405
10406 * s-osinte-linux.ads: Minor comment update and reformatting.
10407 * i-cexten.ads: Make this unit pure, as for its parent.
10408 Will allow its usage in more contexts if needed.
10409
104102011-08-02 Robert Dewar <dewar@adacore.com>
10411
10412 * s-utf_32.ads: Minor comment fix.
10413
104142011-08-02 Ed Schonberg <schonberg@adacore.com>
10415
10416 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
10417 operation of a tagged synchronized type, handle the case where the
10418 controlling argument is overloaded.
10419
104202011-08-02 Yannick Moy <moy@adacore.com>
10421
10422 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
10423 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
10424 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
10425 SPARK mode and formal verification mode on processing SPARK restriction
10426 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
10427 requiring consistency checking.
10428
5cc9353d
RD
104292011-08-02 Robert Dewar <dewar@adacore.com>
10430
10431 * sem_res.adb: Minor reformatting.
10432
e51537ff
RD
104332011-08-02 Robert Dewar <dewar@adacore.com>
10434
10435 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
10436 a-cforse.ads: Remove unneeded with of Ada.Containers
10437 Remove commented out pragma Inline's
10438 Move specifications of new subprograms to the actual specs
10439
83fa09c5
AC
104402011-08-02 Yannick Moy <moy@adacore.com>
10441
10442 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
10443 a-cforse.ads: Update comments.
10444
104452011-08-02 Ed Schonberg <schonberg@adacore.com>
10446
10447 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
10448
d11cfaf8
RD
104492011-08-02 Robert Dewar <dewar@adacore.com>
10450
10451 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
10452 a-cforse.ads, a-cofove.ads: Minor reformatting.
10453
300b98bb
AC
104542011-08-02 Claire Dross <dross@adacore.com>
10455
10456 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
10457 a-cofove.ads: Add comments.
10458
104592011-08-02 Yannick Moy <moy@adacore.com>
10460
10461 * gnat_rm.texi: Document formal containers.
10462
104632011-08-02 Emmanuel Briot <briot@adacore.com>
10464
10465 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
10466 are empty sections.
10467
19fb051c
AC
104682011-08-02 Robert Dewar <dewar@adacore.com>
10469
10470 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
10471 reformatting.
10472
104732011-08-02 Robert Dewar <dewar@adacore.com>
10474
10475 * aspects.adb: New aspects Default_Value and Default_Component_Value
10476 New format of Aspect_Names table checks for omitted entries
10477 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
10478 handling of boolean aspects for derived types.
10479 New aspects Default_Value and Default_Component_Value
10480 New format of Aspect_Names table checks for omitted entries
10481 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
10482 (Has_Default_Value): New flag
10483 (Has_Default_Component_Value): New flag
10484 (Has_Default_Value): New flag
10485 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
10486 table.
10487 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
10488 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
10489 Default_Value and Default_Component_Value
10490 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
10491 New aspects Default_Value and Default_Component_Value
10492 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
10493 * sprint.adb: Print N_Aspect_Specification node when called from gdb
10494
104952011-08-02 Vincent Celier <celier@adacore.com>
10496
10497 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
10498 inherit library kind.
10499
105002011-08-02 Ed Schonberg <schonberg@adacore.com>
10501
10502 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
10503 Minor reformatting.
10504
105052011-08-02 Robert Dewar <dewar@adacore.com>
10506
10507 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
10508
5f7747af
AC
105092011-08-02 Yannick Moy <moy@adacore.com>
10510
10511 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
10512
105132011-08-02 Robert Dewar <dewar@adacore.com>
10514
10515 * impunit.adb: Add comment.
10516
a5fe697b
AC
105172011-08-02 Yannick Moy <moy@adacore.com>
10518
10519 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
10520 qualification of aggregates in formal mode
10521 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
10522 another aggregate
10523 (Resolve_Aggregate): complete the test that an aggregate is adequately
10524 qualified in formal mode
10525
105262011-08-02 Pascal Obry <obry@adacore.com>
10527
10528 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
10529 * mlib-prj.adb: Supress warning when compiling binder generated file.
10530 (Build_Library): Supress all warnings when compiling the binder
10531 generated file.
10532
bd65a2d7 105332011-08-02 Yannick Moy <moy@adacore.com>
d4487611 10534
bd65a2d7
AC
10535 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
10536 from here...
10537 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
10538 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
10539 Add with/use clauses to make Check_Formal_Restriction visible
10540
105412011-08-02 Ed Schonberg <schonberg@adacore.com>
10542
10543 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
10544 in-parameters when type of the generic formal is private in the generic
10545 spec and non-private in the body.
10546
105472011-08-02 Claire Dross <dross@adacore.com>
10548
10549 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
10550 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
10551 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
10552 * impunit.adb, Makefile.rtl: Take new files into account.
d4487611
AC
10553
105542011-08-02 Robert Dewar <dewar@adacore.com>
10555
10556 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
10557 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
10558
bd434b3f
YM
105592011-08-02 Yannick Moy <moy@adacore.com>
10560
10561 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
10562 formal mode
10563 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
10564 matching static array bounds, taking into account the special case of
10565 string literals
10566 * sem_ch3.adb: Typo in comment.
10567
fe5d3068
YM
105682011-08-02 Yannick Moy <moy@adacore.com>
10569
10570 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
10571 which issues an error in formal mode if its argument node is originally
10572 from source
10573 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
10574 has a discriminant specification so that it does not include the case
10575 of derived types
10576 (Derived_Type_Declaration): move here the test that a derived type has a
10577 discriminant specification
10578 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
10579 first element of a component association before accessing its choices
10580 (presence of component association is not enough)
10581 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
10582 declaration is a library item before accessing the next element in a
10583 list, as library items are not member of lists
10584 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
10585 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
10586 Check_Formal_Restriction whenever possible.
10587
b60a3f26
AC
105882011-08-02 Ed Schonberg <schonberg@adacore.com>
10589
10590 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
10591 reference when needed.
10592
105932011-08-02 Bob Duff <duff@adacore.com>
10594
10595 * gnat_ugn.texi: Fix typo.
10596
105972011-08-02 Vincent Celier <celier@adacore.com>
10598
10599 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
10600 archive file name. Do not use the full path name of archives for Open
10601 VMS.
10602
eaba57fb
RD
106032011-08-02 Robert Dewar <dewar@adacore.com>
10604
10605 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
10606 Analyze_Aspect_Specifications
10607 * sem_ch13.adb
10608 (Analyze_Aspect_Specifications): New handling for boolean aspects
10609 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
10610 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
10611 sequence for Analyze_Aspect_Specifications
10612 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
10613 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
10614
106152011-08-02 Robert Dewar <dewar@adacore.com>
10616
10617 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
10618 aspects, since these no longer exist.
10619
106202011-08-02 Robert Dewar <dewar@adacore.com>
10621
10622 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
10623 semicolon, do not try to see if there are aspects following it.
10624 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
10625 aspect spec.
10626
8830d1d2
AC
106272011-08-02 Robert Dewar <dewar@adacore.com>
10628
10629 * sem_ch8.adb, aspects.ads: Minor reformatting.
10630
106312011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10632
10633 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
10634 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
10635 extracted from...
10636 (Analyze_Aspect_Specifications): ...here. Call above procedure.
10637
7ff2d234
AC
106382011-08-02 Yannick Moy <moy@adacore.com>
10639
10640 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
10641 mode on subprogram declaration outside of package specification, unless
10642 it is followed by a pragma Import
10643 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
10644 Access_Type_Declaration): issue error in formal mode on access type
10645 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
10646 incomplete type
10647 (Analyze_Object_Declaration): issue error in formal mode on object
10648 declaration which does not respect SPARK restrictions
10649 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
10650 declaration which does not respect SPARK restrictions
10651 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
10652 error in formal mode on digits or delta constraint
10653 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
10654 decimal fixed point type
10655 (Derived_Type_Declaration): issue error in formal mode on derived type
10656 other than type extensions of tagged record types
10657 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
10658 with check on access definition
10659 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
10660 mode on protected definition.
10661 (Analyze_Task_Definition): issue error in formal mode on task definition
10662
106632011-08-02 Robert Dewar <dewar@adacore.com>
10664
10665 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
10666
806f6d37
AC
106672011-08-02 Javier Miranda <miranda@adacore.com>
10668
10669 * sem_ch6.adb (Can_Override_Operator): New function.
10670 (Verify_Overriding_Indicator): Add missing code to check overriding
10671 indicator in operators. Fixes regression.
10672 (Check_Overriding_Indicator): Minor reformating after replacing the
10673 code that evaluates if the subprogram can override an operator by
10674 invocations to the above new function.
10675 * einfo.adb
10676 (Write_Field26_Name): Add missing code to ensure that, following
10677 the documentation in einfo.ads, this field is not shown as attribute
10678 "Static_Initialization" on non-dispatching functions.
10679
106802011-08-02 Jose Ruiz <ruiz@adacore.com>
10681
10682 * sem_res.adb (Resolve_Call): A call to
10683 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
10684 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
10685 i.e., when the second parameter is of type Time_Span.
10686
106872011-08-02 Vincent Celier <celier@adacore.com>
10688
10689 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
10690 with an archive instead of -L<library dir> -l<library name>.
10691
106922011-08-02 Ed Schonberg <schonberg@adacore.com>
10693
10694 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
10695 mark the base types In_Use in addition to making the operations
10696 use_visible.
10697
106982011-08-02 Ed Falis <falis@adacore.com>
10699
10700 * init.c: add and setup __gnat_signal_mask for the exception signals
10701 * s-inmaop-vxworks.adb: new file.
10702 * s-intman-vxworks.adb: remove unnecessary initializations and
10703 simplify remaining
10704 * s-intman-vxworks.ads: remove unnecessary variable
10705 * s-taprop-vxworks.adb: simplify signal initialization
10706
780d052e
RD
107072011-08-02 Robert Dewar <dewar@adacore.com>
10708
10709 * sem_ch8.adb: Minor code reorganization, comment updates.
10710
107112011-08-02 Robert Dewar <dewar@adacore.com>
10712
10713 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
10714 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
10715 here from Sem_Res.
10716 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
10717 (Matching_Static_Array_Bounds): Moved here from Sem_Res
10718
29efbb8c
ES
107192011-08-02 Ed Schonberg <schonberg@adacore.com>
10720
10721 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
10722 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
10723 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
10724 use_type_clauses, to handle more efficiently use_type and use_all_type
10725 constructs.
10726 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
10727 Ada2012 Use_All_Type clause.
10728 (Use_Class_Wide_Operations): new procedure.
10729
b0186f71
AC
107302011-08-02 Robert Dewar <dewar@adacore.com>
10731
10732 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
10733 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
10734 expression to expression function.
10735
107362011-08-02 Ed Schonberg <schonberg@adacore.com>
10737
10738 * sem_ch4.adb: transform simple Ada2012 membership into equality only
10739 if types are compatible.
10740
107412011-08-02 Yannick Moy <moy@adacore.com>
10742
10743 * sem_res.adb (Matching_Static_Array_Bounds): new function which
10744 returns True if its argument array types have same dimension and same
10745 static bounds at each index.
10746 (Resolve_Actuals): issue an error in formal mode on actuals passed as
10747 OUT or IN OUT paramaters which are not view conversions in SPARK.
10748 (Resolve_Arithmetic_Op): issue an error in formal mode on
10749 multiplication or division with operands of fixed point types which are
10750 not qualified or explicitly converted.
10751 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
10752 Boolean or array type (except String) operands.
10753 (Resolve_Equality_Op): issue an error in formal mode on equality
10754 operators for array types other than String with non-matching static
10755 bounds.
10756 (Resolve_Logical_Op): issue an error in formal mode on logical operators
10757 for array types with non-matching static bounds. Factorize the code in
10758 Matching_Static_Array_Bounds.
10759 (Resolve_Qualified_Expression): issue an error in formal mode on
10760 qualified expressions for array types with non-matching static bounds.
10761 (Resolve_Type_Conversion): issue an error in formal mode on type
10762 conversion for array types with non-matching static bounds
10763
767bb4e8
AC
107642011-08-02 Robert Dewar <dewar@adacore.com>
10765
10766 * par-ch10.adb: Minor code reorganization (use Nkind_In).
10767
107682011-08-02 Ed Schonberg <schonberg@adacore.com>
10769
10770 * par-ch9.adb: save location of entry for proper error message.
10771
4ac2477e
JM
107722011-08-02 Javier Miranda <miranda@adacore.com>
10773
10774 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
10775 (Use_Full_View) which permits this routine to climb through the
10776 ancestors using the full-view of private parents.
10777 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
10778 Use_Full_View to true in calls to Is_Ancestor.
10779 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
10780 true in call to Is_Ancestor.
10781 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
10782 Use_Full_View to true in call to Is_Ancestor.
10783 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
10784 call to Is_Ancestor.
10785 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
10786 Use_Full_View to true in calls to Is_Ancestor.
10787 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
10788 Make_Select_Specific_Data_Table, Register_Primitive,
10789 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
10790 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
10791 to true in call to Is_Ancestor.
10792 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
10793 Use_Full_View to true in calls to Is_Ancestor.
10794 * exp_cg.adb
10795 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
10796 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
10797
9f90d123
AC
107982011-08-02 Robert Dewar <dewar@adacore.com>
10799
10800 * gnat_rm.texi: Minor reformatting.
10801 * sem_prag.adb: Minor reformatting.
10802
108032011-08-02 Tristan Gingold <gingold@adacore.com>
10804
10805 * vms_data.ads: Add VMS qualifier for -gnateP.
10806
108072011-08-02 Robert Dewar <dewar@adacore.com>
10808
10809 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
10810 * par-ch7.adb (P_Package): Proper placement of aspects for package
10811 decl/instantiation.
10812 * par-endh.adb (Check_End): Ad Is_Sloc parameter
10813 (End_Statements): Add Is_Sloc parameterr
10814 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
10815 (Check_End): Ad Is_Sloc parameter
10816 (End_Statements): Add Is_Sloc parameterr
10817
108182011-08-02 Vincent Celier <celier@adacore.com>
10819
10820 * ug_words: Add VMS qualifier equivalent to -gnateP:
10821 /SYMBOL_PREPROCESSING.
10822
108232011-08-02 Jose Ruiz <ruiz@adacore.com>
10824
10825 * gnat-style.texi: For hexadecimal numeric literals the typical
10826 grouping of digits is 4 to represent 2 bytes.
10827 A procedure spec which is split into several lines is indented two
10828 characters.
10829
108302011-08-02 Yannick Moy <moy@adacore.com>
10831
10832 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
10833 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
10834 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
10835 properly qualified
10836 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
10837 choice in array aggregate
10838 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
10839 mark as ancestor
10840 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
10841 positional and named aggregate for record, or others in record
10842 aggregate, or multiple choice in record aggregate
10843 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
10844 array operands to logical operations AND, OR and XOR do not have the
10845 same static lower and higher bounds
10846 * sem_ch5.adb, sinfo.ads: Correct typos in comments
10847
2933b16c
RD
108482011-08-01 Robert Dewar <dewar@adacore.com>
10849
10850 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
10851 Replaces Last_Source_Node_In_Sequence.
10852 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
10853 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
10854 parens and blank in string (this was inconsistently implemented).
10855 * errout.ads
10856 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
10857 blank in string (this was inconsistently implemented).
10858 * gnat1drv.adb
10859 (Set_Global_Switches): Set formal mode switches appropriately
10860 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
10861 * par-prag.adb
10862 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
10863 call Set_Error_Msg_Lang to set "spark" as language name.
10864 * par.adb: Remove unnecessary call to set formal language for errout
10865 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
10866 appropriately and call Set_Error_Msg_Lang to set "spark" as language
10867 name.
10868 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
10869 calls to it, moved after resolution so that types are known
10870 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
10871 result of concatenation is not of type String
10872 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
10873 concatenation is not properly restricted
10874 * gnat_rm.texi: Add doc on pragma Spark_95.
10875 * gcc-interface/Makefile.in: Remove obsolete target pairs for
10876 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
10877 * gcc-interface/Make-lang.in: Update dependencies.
10878
05dbd302
AC
108792011-08-01 Javier Miranda <miranda@adacore.com>
10880
10881 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
10882 condition that detects if the overridden operation must replace an
10883 existing entity.
10884
108852011-08-01 Javier Miranda <miranda@adacore.com>
10886
10887 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
10888 code declarations inserted by Insert_Actions in each alternative of the
10889 N_Case_Expression node.
10890
108912011-08-01 Robert Dewar <dewar@adacore.com>
10892
10893 * sem_ch6.adb: Minor code reorganization.
10894 * sem_util.adb: Minor reformatting.
10895
af9e051f
PO
108962011-08-01 Pascal Obry <obry@adacore.com>
10897
10898 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
10899 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
10900
1d801f21
AC
109012011-08-01 Yannick Moy <moy@adacore.com>
10902
10903 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
10904 literal or operator symbol which is prefixed
10905 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
10906 mode on access attributes.
10907 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
10908 that concatenation operands are properly restricted in formal mode
10909 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
10910 Analyze_Concatenation_Operand. Issue an error in formal mode if the
10911 result of the concatenation has a type different from String.
10912 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
10913 Analyze_Quantified_Expression, Analyze_Slice,
10914 Analyze_Null): issue an error in formal mode on unsupported constructs
10915 * sem_ch5.adb
10916 (Analyze_Block_Statement): only issue error on source block statement
10917 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
10918 function which returns the last node in a list of nodes for which
10919 Comes_From_Source returns True, if any
10920 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
10921 Last_Source_Node_In_Sequence
10922 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
10923 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
10924 mode on unsupported constructs
10925 * sem_ch9.adb Do not return after issuing error in formal mode, as the
10926 rest of the actions may be needed later on since the error is marked as
10927 not serious.
10928 * sinfo.ads: Typos in comments.
10929
109302011-08-01 Pascal Obry <obry@adacore.com>
10931
10932 * projects.texi: Minor editing.
10933
53beff22
YM
109342011-08-01 Yannick Moy <moy@adacore.com>
10935
10936 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
10937 insertion character ~~
10938 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
10939 (Set_Error_Msg_Lang): new procedure which fixes the language for use
10940 with insertion character ~~
10941 (Set_Msg_Text): treat insertion character ~~
10942 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
10943 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
10944 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
10945 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
10946 errors related to the formal language restriction not serious
10947 (insertion character |).
10948 * par.adb (Par): set formal language for error messages if needed
10949 * sem_ch6.adb (Check_Missing_Return): take into account possible
10950 generated statements at the end of the function
10951 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
10952 enumeration value to define a new pragma SPARK_95
10953 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
10954 SPARK_Version): new type and variables to store the SPARK version
10955 (none by default).
10956 (SPARK_Mode): return True when SPARK_Version is set
10957 * par-prag.adb: Correct indentation
10958 (Prag): take Pragma_SPARK_95 into account
10959 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
10960 into account.
10961
8d606a78
RD
109622011-08-01 Robert Dewar <dewar@adacore.com>
10963
10964 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
10965 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
10966 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
10967
1982d5a8
PO
109682011-08-01 Pascal Obry <obry@adacore.com>
10969
10970 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
10971 Target_Name to Get_Path call.
10972 (Parse_Single_Project): Likewise.
10973 (Post_Parse_Context_Clause): Likewise.
10974 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
10975 Call Initialise_Project_Path with the proper Target_Name.
10976 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
10977 search path.
10978 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
10979 with the proper Target_Name.
10980 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
10981 Part.Parse routine.
10982 (Parse_Project_And_Apply_Config): Likewise.
10983 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
10984 This is fine as this part of the code is supporting only native
10985 compilation.
10986 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
10987 is fine as this part of the code is supporting only native compilation.
10988
0d53d36b
AC
109892011-08-01 Yannick Moy <moy@adacore.com>
10990
10991 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
10992 of homonym, unless the homonym is one of the cases allowed in SPARK
10993 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
10994 package declaration occurring after a body.
10995
109962011-08-01 Robert Dewar <dewar@adacore.com>
10997
10998 * checks.adb, exp_ch4.adb: Minor reformatting.
10999
110002011-08-01 Javier Miranda <miranda@adacore.com>
11001
11002 * einfo.ads (Access_Disp_Table): Fix documentation.
11003 (Dispatch_Table_Wrappers): Fix documentation.
11004
110052011-08-01 Pascal Obry <obry@adacore.com>
11006
11007 * prj-env.adb, prj-env.ads: Minor reformatting.
11008
8ed68165
AC
110092011-08-01 Yannick Moy <moy@adacore.com>
11010
11011 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
11012 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
11013 procedures out of these packages.
2c7f9cc0 11014 * errout.ads, errout.adb
8ed68165
AC
11015 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
11016 procedures in of this package
11017 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
11018 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
11019 on misplaced later vs initial declarations, like in Ada 83
11020 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
11021 formal mode on attribute of private type whose full type declaration
11022 is not visible
11023 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
11024 package declaration inside a package specification
11025 (Analyze_Full_Type_Declaration): issue error in formal mode on
11026 controlled type or discriminant type
11027 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
11028 user-defined operator means that it should come from the source
11029 (New_Overloaded_Entity): issue error in formal mode on overloaded
11030 entity.
11031 * sem_ch6.ads, sem_ch13.ads: typos in comments.
11032
110332011-08-01 Thomas Quinot <quinot@adacore.com>
11034
11035 * atree.adb: Minor reformatting.
11036 * checks.adb: Minor reformatting.
11037
4230bdb7
AC
110382011-08-01 Vincent Celier <celier@adacore.com>
11039
11040 * s-parame-vms-ia64.ads: Fix typo in comment
11041 Minor reformatting
11042 * s-parame-vms-restrict.ads: Removed, unused.
11043
110442011-08-01 Javier Miranda <miranda@adacore.com>
11045
11046 * exp_ch3.adb
11047 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
11048 * sem_ch3.adb
11049 (Constrain_Index): Remove side effects in the evaluation of the bounds.
11050 * sem_ch3.ads, sem_ch3.adb
11051 (Is_Constant_Bound): New extended version of the subprogram that was
11052 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
11053 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
11054 * sem_aux.ads (Constant_Value): Fix typo in comment.
11055 * checks.adb (Generate_Index_Checks): New implementation which, for
11056 array objects with constant bounds, generates the runtime check
11057 referencing the bounds of the array type. For other cases this routine
11058 provides its previous behavior obtaining such values from the array
11059 object.
11060 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
11061 parent type.
11062 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
11063 we cannot have semantic interpretations of the new node.
11064
2010d078
AC
110652011-08-01 Ed Schonberg <schonberg@adacore.com>
11066
11067 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
11068 expressions.
11069
110702011-08-01 Arnaud Charlet <charlet@adacore.com>
11071
11072 * sem_ch8.adb: Minor code editing.
11073 * s-vxwext.adb: Remove trailing space.
11074 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
11075 consistency with other files.
11076
110772011-08-01 Thomas Quinot <quinot@adacore.com>
11078
11079 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
11080
110812011-08-01 Ed Schonberg <schonberg@adacore.com>
11082
11083 * par-ch10.adb: reject parameterized expressions as compilation unit.
11084 * sem_ch4.adb: handle properly conditional expression with overloaded
11085 then_clause and no else_clause.
11086
110872011-08-01 Tristan Gingold <gingold@adacore.com>
11088
11089 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
11090 like done by System.Aux_DEC.
11091 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
11092
daec8eeb
YM
110932011-08-01 Yannick Moy <moy@adacore.com>
11094
11095 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
11096 missing label at end of declaration (subprogram or package)
11097 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
11098 of positional and named parameter association
11099 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
11100 Error_Msg_SP which adds a prefix to the error message giving the name
11101 of the formal language analyzed
11102 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
11103 access result type in subprogram, unconstrained array as result type,.
11104 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
11105 procedure
11106 * sem_ch8.adb: Code clean up.
11107
38171f43
AC
111082011-08-01 Javier Miranda <miranda@adacore.com>
11109
11110 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
11111 * einfo.ads (Access_Disp_Table): Fix documentation.
11112 (Dispatch_Table_Wrappers): Fix documentation.
11113 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
11114 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
11115 to enforce the documentation of this attribute.
11116 (Set_Is_Interface): Cleanup the assertion.
11117 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
11118 the Underlying_Type entity before reading attribute Access_Disp_Table.
11119 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
11120 Locate the Underlying_Type before reading attribute Access_Disp_Table.
11121 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
11122 the Underlying_Type entity before reading attribute Access_Disp_Table.
11123 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
11124 Locate the Underlying_Type entity before reading attribute
11125 Access_Disp_Table.
11126
111272011-08-01 Ed Schonberg <schonberg@adacore.com>
11128
11129 * s-poosiz.ads: Additional overriding indicators.
11130
111312011-08-01 Yannick Moy <moy@adacore.com>
11132
11133 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
11134 formal mode.
11135 (Analyze_Iteration_Scheme): issue error in formal mode when loop
11136 parameter specification does not include a subtype mark.
11137 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
11138 formal mode on abstract subprogram.
11139 (Analyze_Subprogram_Specification): issue error in formal mode on
11140 user-defined operator.
11141 (Process_Formals): issue error in formal mode on access parameter and
11142 default expression.
11143 * sem_ch9.adb (Analyze_Abort_Statement,
11144 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
11145 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
11146 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
11147 Analyze_Requeue, Analyze_Selective_Accept,
11148 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
11149 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
11150 issue error in formal mode on user-defined raise statement.
11151
1f250383
AC
111522011-08-01 Thomas Quinot <quinot@adacore.com>
11153
11154 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
11155 declaration being hidden when overriding an implicit inherited
11156 subprogram.
11157 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
11158 (-gnats), do not complain about a source file that contains only a
11159 pragma No_Body.
11160
111612011-08-01 Ed Schonberg <schonberg@adacore.com>
11162
11163 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
11164 variable if already set.
11165
607d0635
AC
111662011-08-01 Arnaud Charlet <charlet@adacore.com>
11167
11168 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
11169 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
11170 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
11171 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
11172 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
11173 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
11174 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
11175 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
11176 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
11177 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
11178 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
11179 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
11180 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
11181 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
11182 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
11183 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
11184 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
11185 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
11186 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
11187 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
11188 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
11189 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
11190 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
11191 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
11192 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
11193 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
11194 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
11195 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
11196 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
11197 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
11198 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
11199 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
11200 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
11201 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
11202 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
11203 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
11204 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
11205 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
11206 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
11207 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
11208 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
11209 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
11210 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
11211 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
11212 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
11213 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
11214 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
11215 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
11216 s-osinte-mingw.ads: Update to GPLv3 run-time license.
11217 Use GNAT instead of GNARL.
11218
112192011-08-01 Bob Duff <duff@adacore.com>
11220
11221 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
11222 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
11223 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
11224 reformatting.
11225
112262011-08-01 Yannick Moy <moy@adacore.com>
11227
11228 * debug.adb (d.D) reverve flag for the SPARK mode
11229 (d.E) reverve flag for SPARK generation mode
11230 (d.F) reverve flag for Why generation mode
2c7f9cc0 11231 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
607d0635
AC
11232 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
11233 functions which return True when the corresponding modes are set
11234 (Formal_Language): return "spark" or "alfa" when in formal verification
11235 mode.
11236 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
11237 Error_Msg to prefix the error message with a tag giving the formal
11238 language
11239 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
11240 message with a tag giving the formal language
11241 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
11242 block statement
11243 (Analyze_Case_Statement): issue error in formal mode on case statement
11244 with a single "others" case alternative
11245 (Analyze_Exit_Statement): issue errors in formal mode on exit
11246 statements which do not respect SPARK restrictions
11247 (Analyze_Goto_Statement): issue error in formal mode on goto statement
11248 (Check_Unreachable_Code): always issue an error (not a warning) in
11249 formal mode on unreachable code (concerns both code after an infinite
11250 loop and after an unconditional jump, both not allowed in SPARK)
11251 * sem_ch6.adb (Analyze_Return_Statement): add call to
11252 Set_Return_Present for a procedure containing a return statement
11253 (already done for functions in Analyze_Function_Return)
11254 (Analyze_Function_Return): issue error in formal mode on extended
11255 return or if return is not last statement in function
11256 (Check_Missing_Return): issue error in formal mode if function does
11257 not end with return or if procedure contains a return
11258 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
11259 function to detect if there is an inner scope of its parameter S which
11260 is a loop.
11261
112622011-08-01 Thomas Quinot <quinot@adacore.com>
11263
11264 * sem_ch6.ads: Minor reformatting.
11265
d8b3ccb9
AC
112662011-08-01 Javier Miranda <miranda@adacore.com>
11267
11268 * sem_util.adb (Abstract_Interface_List): Complete condition when
11269 processing private type declarations to avoid reading unavailable
11270 attribute.
11271 (Is_Synchronized_Tagged_Type): Complete condition when processing
11272 private extension declaration nodes to avoid reading unavailable
11273 attribute.
11274
112752011-08-01 Thomas Quinot <quinot@adacore.com>
11276
11277 * sem_ch3.adb: Minor reformatting.
11278
112792011-08-01 Thomas Quinot <quinot@adacore.com>
11280
11281 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
11282 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
11283 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
11284 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
11285 for VMS, instead parametrize the common implementation with
11286 System.Parameters declarations.
11287
0bb9276c
AC
112882011-08-01 Eric Botcazou <ebotcazou@adacore.com>
11289
11290 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
11291
112922011-08-01 Tristan Gingold <gingold@adacore.com>
11293
11294 * seh_init.c: Fix SEH handler installation on win64.
11295
112962011-08-01 Ed Schonberg <schonberg@adacore.com>
11297
11298 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
11299 double analysis of an anonymous access to subprogram, because it can
11300 lead to improper sharing of profiles and a back-end crash.
11301
6a2e4f0b
AC
113022011-08-01 Robert Dewar <dewar@adacore.com>
11303
11304 * make.adb, sem_ch4.adb: Minor reformatting.
11305 * gcc-interface/Make-lang.in: Update dependencies.
11306 * sem_util.adb, exp_ch5.adb: Minor reformatting.
11307
113082011-08-01 Arnaud Charlet <charlet@adacore.com>
11309
11310 * gnat_rm.texi: Fix definition of Long_Integer.
11311
113122011-08-01 Ed Schonberg <schonberg@adacore.com>
11313
11314 * exp_aggr.adb: check limit size of static aggregate unconditionally,
11315 to prevent storage exhaustion.
11316 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
11317 finalized is a function body, insert the cleanup code before the final
11318 return statement, to prevent spurious warnings.
11319 * s-pooglo.ads: add overriding indicator.
11320
4561baf7
ES
113212011-08-01 Ed Schonberg <schonberg@adacore.com>
11322
11323 * sem_ch4.adb (Operator_Check): improve error message when both a
11324 with_clause and a use_clause are needed to make operator usage legal.
11325 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
11326 determine whether a compilation unit is visible within an other,
11327 either through a with_clause in the current unit, or a with_clause in
11328 its library unit or one one of its parents.
11329
383e179e
AC
113302011-08-01 Ed Schonberg <schonberg@adacore.com>
11331
11332 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
11333 over an arbitrary expression of an array or container type.
11334 * lib-xref.adb: clarify comment.
11335
113362011-08-01 Bob Duff <duff@adacore.com>
11337
11338 * einfo.ads: Minor reformatting.
11339 * debug.adb: Minor comment improvement.
11340
113412011-08-01 Javier Miranda <miranda@adacore.com>
11342
11343 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
11344 consider hidden subprograms as valid candidates.
11345
113462011-08-01 Arnaud Charlet <charlet@adacore.com>
11347
11348 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
11349
113502011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
11351
11352 * gnat_ugn.texi: Fix typo.
11353
61c161b2
AC
113542011-08-01 Robert Dewar <dewar@adacore.com>
11355
11356 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
11357 lib-xref.adb: Minor reformatting
11358
113592011-08-01 Gary Dismukes <dismukes@adacore.com>
11360
11361 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
11362 when to generate a call to Move_Final_List.
11363 (Has_Controlled_Parts): Remove this function.
11364
84df40f7
AC
113652011-08-01 Geert Bosch <bosch@adacore.com>
11366
11367 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
11368 "," in choice list.
11369
113702011-08-01 Thomas Quinot <quinot@adacore.com>
11371
11372 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
11373 explicit raise of a predefined exception as Comes_From_Source if the
11374 original N_Raise_Statement comes from source.
11375
113762011-08-01 Robert Dewar <dewar@adacore.com>
11377
11378 * sinfo.ads: Add comment.
11379 * sem_ch6.adb: Minor reformatting.
11380
113812011-08-01 Robert Dewar <dewar@adacore.com>
11382
11383 * freeze.adb (Freeze_Entity): Refine check for bad component size
11384 clause to avoid rejecting confirming clause when atomic/aliased present.
11385
113862011-08-01 Ed Schonberg <schonberg@adacore.com>
11387
11388 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
11389 better determine whether an entity reference is a write.
11390 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
11391 subcomponent.
11392 * lib-xref.adb (Output_References): Do no suppress a read reference at
11393 the same location as an immediately preceeding modify-reference, to
11394 handle properly in-out actuals.
11395
113962011-08-01 Tristan Gingold <gingold@adacore.com>
11397
11398 * env.c (__gnat_setenv) [VMS]: Refine previous change.
11399
114002011-08-01 Quentin Ochem <ochem@adacore.com>
11401
11402 * i-cstrin.adb (New_String): Changed implementation, now uses only the
11403 heap to compute the result.
11404
c7f0d2c0
AC
114052011-08-01 Robert Dewar <dewar@adacore.com>
11406
11407 * atree.ads: Minor reformatting.
11408
114092011-08-01 Emmanuel Briot <briot@adacore.com>
11410
11411 * g-expect.adb (Get_Command_Output): Fix memory leak.
11412
114132011-08-01 Geert Bosch <bosch@adacore.com>
11414
11415 * cstand.adb (P_Float_Type): New procedure to print the definition of
11416 predefined fpt types.
11417 (P_Mixed_Name): New procedure to print a name using mixed case
11418 (Print_Standard): Use P_Float_Type for printing floating point types
11419 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
11420 precision IEEE float.
11421
114222011-08-01 Thomas Quinot <quinot@adacore.com>
11423
11424 * sem_ch3.adb: Minor reformatting.
11425
114262011-08-01 Ed Schonberg <schonberg@adacore.com>
11427
11428 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
11429 the completion of a generic function, insert the new body rather than
11430 rewriting the original.
11431
114322011-08-01 Yannick Moy <moy@adacore.com>
11433
11434 * sinfo.ads, errout.ads: Typos in comments.
11435
1c54829e
AC
114362011-08-01 Robert Dewar <dewar@adacore.com>
11437
11438 * par-endh.adb: Minor reformatting.
11439
114402011-08-01 Robert Dewar <dewar@adacore.com>
11441
11442 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
11443 (Pre_Post_Aspects): New subtype.
11444 * par-ch12.adb (P_Generic): New syntax for aspects in packages
11445 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
11446 * par-ch7.adb (P_Package): Remove Decl parameter
11447 (P_Package): Handle new syntax for aspects (before IS)
11448 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
11449 new aspect syntax
11450 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
11451 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
11452 (P_Package): Remove Decl parameter
11453 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
11454 aspects
11455 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
11456 specs
11457 * sem_util.ads, sem_util.adb (Static_Boolean): New function
11458 * sinfo.ads: Document new syntax for aspects in packages etc.
11459 * sprint.adb: Handle new syntax of aspects before IS in package
11460
114612011-08-01 Thomas Quinot <quinot@adacore.com>
11462
11463 * atree.ads: Minor reformatting.
11464 * sem_prag.adb: Minor reformatting.
11465
114662011-08-01 Robert Dewar <dewar@adacore.com>
11467
11468 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
11469 case expr alternative.
11470
114712011-08-01 Ed Schonberg <schonberg@adacore.com>
11472
11473 * sem_ch12.adb: Fix typo.
11474
9eea4346
GB
114752011-08-01 Geert Bosch <bosch@adacore.com>
11476
11477 * sem_prag.adb (Check_No_Link_Name): New procedure.
11478 (Process_Import_Or_Interface): Use Check_No_Link_Name.
11479 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
11480 instead of Standard_Long_Long_Float_Size global. Preparation for
11481 eventual removal of per type constants.
11482 * exp_util.ads (Get_Stream_Size): New function returning the stream
11483 size value of subtype E.
11484 * exp_util.adb (Get_Stream_Size): Implement new function.
11485 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
11486 function.
11487 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
11488 * einfo.adb:
11489 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
11490
3d6c3bd7
GB
114912011-08-01 Geert Bosch <bosch@adacore.com>
11492
11493 * cstand.adb: Fix comments.
11494 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
11495 count of arguments.
11496
e7d897b8
AC
114972011-08-01 Robert Dewar <dewar@adacore.com>
11498
11499 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
11500
115012011-08-01 Geert Bosch <bosch@adacore.com>
11502
11503 * atree.ads: Fix comment.
11504
c228a069
AC
115052011-08-01 Robert Dewar <dewar@adacore.com>
11506
11507 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
11508 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
11509 * par.adb: Add with for Namet.Sp.
11510 * par-tchk.adb: Minor reformatting.
11511
115122011-08-01 Vincent Celier <celier@adacore.com>
11513
11514 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
11515 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
11516 of the init procedure of a SAL.
11517 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
11518 New procedure.
11519
115202011-08-01 Thomas Quinot <quinot@adacore.com>
11521
11522 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
11523 reformatting.
11524
115252011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11526
11527 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
11528
115292011-08-01 Thomas Quinot <quinot@adacore.com>
11530
11531 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
11532 conformant with its spec (return True only for types that have
11533 an overriding Initialize primitive operation that prevents them from
11534 having preelaborable initialization).
11535 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
11536 initialization for controlled types in Ada 2005 or later mode.
11537
857ade1b
RD
115382011-08-01 Robert Dewar <dewar@adacore.com>
11539
11540 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
11541 Postcondition.
11542 (Same_Aspect): New function.
11543 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
11544 Type_Invariant, Precondition, Postcondition.
11545 * snames.ads-tmpl: Add Name_Type_Invariant.
11546
bd949ee2
RD
115472011-08-01 Robert Dewar <dewar@adacore.com>
11548
11549 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
11550 here.
11551 (Freeze_All_Ent): Fix error in handling inherited aspects.
11552 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
11553 already analyzed, but don't skip entire processing of a declaration,
11554 that's wrong in some cases of declarations being rewritten.
11555 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
11556 Don't delay for integer, string literals
11557 Treat predicates in usual manner for delay, remove special case code,
11558 not needed.
11559 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
11560 (Build_Predicate_Function): Update saved expression in aspect
11561 (Build_Invariant_Procedure): Update saved expression in aspect
11562 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
11563 of replacement of discriminant references if the reference is simple.
11564
f1c952af
RD
115652011-08-01 Robert Dewar <dewar@adacore.com>
11566
11567 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
11568 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
11569 Static_Predicate and Dynamic_Predicate.
11570 (Build_Predicate_Function): Add processing for Static_Predicate
11571 and Dynamic_Predicate.
11572 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
11573 (From_Static_Predicate): New flag
11574 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
11575
115762011-08-01 Robert Dewar <dewar@adacore.com>
11577
11578 * usage.adb: Documentation cleanup for Ada version modes in usage.
11579 * expander.adb: Minor reformatting.
11580
47e11d08
AC
115812011-08-01 Robert Dewar <dewar@adacore.com>
11582
11583 * atree.ads: Minor comment fix.
11584 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
11585 a-witeio.ads, sem_prag.adb: Minor reformatting.
11586
115872011-08-01 Doug Rupp <rupp@adacore.com>
11588
11589 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
11590 pointers. Use descrip.h header file for convenience. Add some
11591 comments.
11592
115932011-08-01 Robert Dewar <dewar@adacore.com>
11594
11595 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
11596 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
11597 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
11598 New procedure.
11599 (Check_Aspect_At_End_Of_Declarations): New procedure
11600 (Analye_Aspect_Specification): Minor changes for above procedures
11601 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
11602 specification node as well.
11603
116042011-08-01 Pascal Obry <obry@adacore.com>
11605
11606 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
11607 Windows files. Use GetFilesAttributes() in this case to check for file
11608 existence instead of returning with an error code.
11609
a3a16b21
VC
116102011-08-01 Vincent Celier <celier@adacore.com>
11611
11612 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
11613 High is above Source length.
11614
ff58cc69
RD
116152011-08-01 Robert Dewar <dewar@adacore.com>
11616
11617 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
11618
6bb88533
AC
116192011-08-01 Robert Dewar <dewar@adacore.com>
11620
11621 * aspects.ads (Boolean_Aspects): New subtype.
11622 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
11623 for derived types in cases where the parent type and derived type have
11624 aspects.
11625 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
11626 with aspects when parent type also has aspects.
11627 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
11628 boolean expression at this point).
11629 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
11630 accordance with final decision on the Ada 2012 feature.
11631 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
11632
116332011-08-01 Matthew Heaney <heaney@adacore.com>
11634
11635 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
11636
060a3f28
AC
116372011-08-01 Pascal Obry <obry@adacore.com>
11638
11639 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
11640 Fix Replace_Slice when High is above current string size.
11641 (Replace_Slice): Fix DL computation when High is above current
11642 string length.
11643
116442011-08-01 Gary Dismukes <dismukes@adacore.com>
11645
11646 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
11647
e7f567a3
AC
116482011-08-01 Matthew Heaney <heaney@adacore.com>
11649
11650 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
11651 of node.
11652
116532011-08-01 Pascal Obry <obry@adacore.com>
11654
11655 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
11656 reformatting.
11657
1a265e78
AC
116582011-08-01 Ed Schonberg <schonberg@adacore.com>
11659
11660 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
11661 access to protected subprograms in generic bodies.
11662 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
11663 protected type, indicate that the convention of the subprogram is
11664 Convention_Protected, because it may be used in subsequent declarations
11665 within the protected declaration.
11666
116672011-08-01 Vincent Celier <celier@adacore.com>
11668
11669 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
11670 and "final" procedures when the name of the library is "ada", to avoid
11671 duplicate symbols "adainit" and "adafinal" in executables.
11672
67e28ef8
ES
116732011-08-01 Ed Schonberg <schonberg@adacore.com>
11674
11675 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
11676 quantified expression that appears within a postcondition and uses the
11677 Ada2012 'Result attribute.
11678
6da2ca7d
RO
116792011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11680
11681 * init.c (__gnat_error_handler): Cast reason to int.
11682 (__gnat_install_handler): Explain sa_sigaction use.
11683
7d5997c6
EB
116842011-07-24 Eric Botcazou <ebotcazou@adacore.com>
11685
11686 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
11687 subprogram has copy-in copy-out parameters, try to promote the mode of
11688 the return type if it is passed in registers.
11689
4b4cfdd5
EB
116902011-07-24 Eric Botcazou <ebotcazou@adacore.com>
11691
11692 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
11693 left operand as addressable.
11694
f3d34576
EB
116952011-07-24 Eric Botcazou <ebotcazou@adacore.com>
11696
11697 * gcc-interface/gigi.h (build_function_stub): Remove.
11698 (build_return_expr): Likewise.
11699 (convert_vms_descriptor): Declare.
11700 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
11701 (build_function_stub): Move to...
11702 * gcc-interface/utils2.c (build_return_expr): Move to...
11703 * gcc-interface/trans.c (build_function_stub): ...here.
11704 (build_return_expr): ...here.
11705 (Subprogram_Body_to_gnu): Add local variable for language_function.
11706 Disconnect the parameter attributes cache, if any, once done with it.
11707 Call end_subprog_body only after setting the end_locus.
11708 Build the stub associated with the function, if any, at the very end.
11709 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
11710 variables and streamline control flow.
11711
0a6ecc08
AC
117122011-07-23 Arnaud Charlet <charlet@adacore.com>
11713
11714 PR ada/49819
11715 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
11716 g-trasym-dwarf.adb.
11717
5b6d595b
RO
117182011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11719
11720 PR bootstrap/49794
11721 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
11722 Assign to act.sa_sigaction.
11723 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
11724 current->return_address to char * before arithmetic.
11725
94017021
RO
117262011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11727
11728 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
11729 Correct argument types.
11730 Extract code from reason.
11731 (__gnat_install_handler): Assign to act.sa_sigaction.
11732
52fd02bb
EB
117332011-07-21 Eric Botcazou <ebotcazou@adacore.com>
11734
11735 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
11736 (GNAT1_OBJS): ...here.
11737
f39a9ca2
EB
117382011-07-15 Eric Botcazou <ebotcazou@adacore.com>
11739
11740 PR ada/48711
11741 * g-socthi-mingw.adb (Fill): Fix formatting.
11742
9e36aa23
EB
11743 * gcc-interface/gigi.h: Move around comment.
11744
e3aca522
JDA
117452011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11746
11747 PR ada/46350
11748 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
11749
696b1960
FW
117502011-07-14 Florian Weimer <fw@deneb.enyo.de>
11751
11752 PR ada/48711
11753 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
11754
f542c405
EB
117552011-07-13 Eric Botcazou <ebotcazou@adacore.com>
11756
11757 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
11758 range comparison if Pmode is SImode.
11759
9e9bd455
LG
117602011-07-12 Laurent GUERBY <laurent@guerby.net>
11761 Eric Botcazou <ebotcazou@adacore.com>
11762
11763 * adadecode.c: Wrap up in extern "C" block.
11764 * adadecode.h: Likewise.
11765 * adaint.c: Likewise. Remove 'const' keyword.
11766 * adaint.h: Likewise.
11767 * argv.c: Likewise.
11768 * atree.h: Likewise.
11769 * cio.c: Likewise.
11770 * cstreams.c: Likewise.
11771 * env.c: Likewise.
11772 * exit.c: Likewise.
11773 * fe.h: Likewise.
11774 * final.c: Likewise.
11775 * init.c: Likewise.
11776 * initialize.c: Likewise.
11777 * link.c: Likewise.
11778 * namet.h: Likewise.
11779 * nlists.h: Likewise.
11780 * raise.c: Likewise.
11781 * raise.h: Likewise.
11782 * repinfo.h: Likewise.
11783 * seh_init.c: Likewise.
11784 * targext.c: Likewise.
11785 * tracebak.c: Likewise.
11786 * uintp.h: Likewise.
11787 * urealp.h: Likewise.
11788 * xeinfo.adb: Wrap up generated C code in extern "C" block.
11789 * xsinfo.adb: Likewise.
11790 * xsnamest.adb: Likewise.
11791 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
11792 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
11793 * gcc-interface/misc.c: Likewise.
11794 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
11795 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
11796 ada/targext.o here...
11797 (GNAT_ADA_OBJS): ...and not here.
11798 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
11799 (GNATBIND_OBJS): Reorder.
11800
7644b3c7
RH
118012011-07-07 Richard Henderson <rth@redhat.com>
11802
11803 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
11804 dwarf2out_frame_init.
11805
8384ac41
EB
118062011-07-07 Eric Botcazou <ebotcazou@adacore.com>
11807
11808 * gcc-interface/misc.c (gnat_init): Tweak previous change.
11809
fbdd5d87
RO
118102011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11811
11812 PR target/39150
11813 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
11814
1a072294
RG
118152011-07-06 Richard Guenther <rguenther@suse.de>
11816
8384ac41
EB
11817 * gcc-interface/misc.c (gnat_init): Merge calls to
11818 build_common_tree_nodes and build_common_tree_nodes_2.
1a072294
RG
11819 Re-initialize boolean_false_node.
11820
bc712852
EB
118212011-07-02 Eric Botcazou <ebotcazou@adacore.com>
11822 Olivier Hainque <hainque@adacore.com>
11823 Nicolas Setton <setton@adacore.com>
11824
11825 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
11826 the type according to the ARTIFICIAL_P parameter.
11827 (create_type_decl): Likewise.
11828 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
11829
2eb22389
EB
118302011-07-01 Eric Botcazou <ebotcazou@adacore.com>
11831
11832 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
11833 (gnatbind): Likewise.
11834
4bdaaf2f
RO
118352011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11836
11837 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
11838
c020c92b
EB
118392011-06-18 Eric Botcazou <ebotcazou@adacore.com>
11840
11841 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
11842 local variable throughout. Remove useless call to Base_Type.
11843 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
11844 Take it also into account for the volatileness of the field. Set the
11845 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
11846
96769d32
EB
118472011-06-18 Eric Botcazou <ebotcazou@adacore.com>
11848
11849 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
11850 on a dereference built for a by-ref object if it has an address clause.
11851
7e4680c1
EB
118522011-06-18 Eric Botcazou <ebotcazou@adacore.com>
11853
11854 * einfo.ads (Address_Taken): Document use for the second argument of
11855 Asm_Input and Asm_Output attributes.
11856 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
11857 argument is an entity name, then set Address_Taken on it.
11858 <Attribute_Asm_Output>: Likewise.
11859 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
11860 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
11861 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
11862 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
11863
118642011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
11865
11866 PR middle-end/46500
11867 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
11868
677f3fa8
JM
118692011-06-14 Joseph Myers <joseph@codesourcery.com>
11870
11871 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
11872 (ada/utils.o): Update dependencies.
11873 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
11874 ../../../libcpp/libcpp.a.
11875 * gcc-interface/utils.c: Include common/common-target.h.
11876 (process_attributes): Use targetm_common.have_named_sections.
11877
009db074
RG
118782011-06-07 Richard Guenther <rguenther@suse.de>
11879
0bad0e23
EB
11880 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
11881 set_sizetype.
009db074 11882
3bfc61cf
EB
118832011-06-06 Eric Botcazou <ebotcazou@adacore.com>
11884
0bad0e23 11885 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
3bfc61cf
EB
11886 TREE_THIS_NOTRAP flag.
11887
5c4a1c7b
EB
118882011-06-06 Eric Botcazou <ebotcazou@adacore.com>
11889
11890 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
11891 Fix thinko.
11892
e9f57686
EB
118932011-06-06 Eric Botcazou <ebotcazou@adacore.com>
11894
11895 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
11896 constants whose full view has discriminants specially.
11897
10e4d056
EB
118982011-06-06 Eric Botcazou <ebotcazou@adacore.com>
11899
11900 * gcc-interface/utils.c: Include diagnostic.h.
11901 (gnat_write_global_declarations): Output debug information for all
11902 global type declarations before finalizing the compilation unit.
11903 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
11904
0957c029
JJ
119052011-05-25 Jakub Jelinek <jakub@redhat.com>
11906
11907 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
11908
52d0a7ac
KT
119092011-05-25 Kai Tietz <ktietz@redhat.com>
11910
11911 * adaint.c (__gnat_to_canonical_file_list_next): Use array
11912 initialization instead of const/none-const pointer assignment.
11913
1ed1641d
JM
119142011-05-24 Joseph Myers <joseph@codesourcery.com>
11915
11916 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
11917 $(EXTRA_GNAT1_OBJS).
11918 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
11919 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
11920 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
11921 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
11922 libcommon-target.a instead of prefix.o.
11923
9fe72ebd
JM
119242011-05-21 Joseph Myers <joseph@codesourcery.com>
11925
11926 PR ada/49097
0bad0e23 11927 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
9fe72ebd 11928
2691e6d7
JM
119292011-05-20 Joseph Myers <joseph@codesourcery.com>
11930
0bad0e23
EB
11931 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
11932 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
11933 instead of version.o.
2691e6d7 11934
bf6490b5
KT
119352011-05-18 Kai Tietz <ktietz@redhat.com>
11936
11937 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
11938 boolean_false_node instead of integer_zero_node.
11939 (convert_with_check): Likewise.
11940 * gcc-interface/decl.c (choices_to_gnu): Likewise.
11941
7bf9a5ac
EB
119422011-05-12 Eric Botcazou <ebotcazou@adacore.com>
11943
11944 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
11945 type of the parameter is an unconstrained array, convert the actual to
11946 the type of the formal in the In Out and Out cases as well.
11947
e5b00edf
NF
119482011-05-11 Nathan Froyd <froydnj@codesourcery.com>
11949
11950 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
11951 call build_function_type_array or build_varargs_function_type_array
11952 instead.
11953 (create_subprog_type): Don't call build_function_type; call
11954 build_function_type_vec instead.
11955
51545682
NF
119562011-05-11 Nathan Froyd <froydnj@codesourcery.com>
11957
11958 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
11959 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
11960 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
11961
c99c0026
EB
119622011-05-07 Eric Botcazou <ebotcazou@adacore.com>
11963
f620bd21
EB
11964 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
11965
c99c0026
EB
11966 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
11967 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
11968
3d528853
NF
119692011-05-05 Nathan Froyd <froydnj@codesourcery.com>
11970
c99c0026 11971 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
3d528853 11972
d7d058c5
NF
119732011-05-05 Nathan Froyd <froydnj@codesourcery.com>
11974
11975 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
11976 instead of accessing TYPE_ARG_TYPES directly.
11977 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
11978
805e60a0
EB
119792011-05-05 Eric Botcazou <ebotcazou@adacore.com>
11980
11981 PR ada/48844
11982 * gcc-interface/gigi.h (get_variant_part): Declare.
11983 * gcc-interface/decl.c (get_variant_part): Make global.
11984 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
11985 types have the same constant size, are record types and T1 has a
11986 variant part while T2 doesn't.
11987
907a08d9
EB
119882011-05-05 Eric Botcazou <ebotcazou@adacore.com>
11989
11990 * gcc-interface/utils.c (begin_subprog_body): Do not call
11991 get_pending_sizes.
11992 (end_subprog_body): Likewise.
11993
d35936ab
RG
119942011-05-04 Richard Guenther <rguenther@suse.de>
11995
11996 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
11997 int_const_binop.
11998 (pos_to_constructor): Likewise.
11999
c1fd8753 120002011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2c7f9cc0 12001 Eric Botcazou <ebotcazou@adacore.com>
c1fd8753
NF
12002
12003 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
12004 of build_function_type. Adjust calls to...
12005 (build_raise_check): ...this. Do not take a void_tree parameter.
12006 Call build_function_type_list instead of build_function_type.
12007 Fix head comment and swap couple of conditional blocks.
12008
4fb87d2b
EB
120092011-04-30 Eric Botcazou <ebotcazou@adacore.com>
12010
12011 * gnatvsn.ads (Library_Version): Bump to 4.7.
12012 (Current_Year): Bump to 2011.
12013
fa5e5a76
MM
120142011-04-29 Michael Matz <matz@suse.de>
12015
12016 * gcc-interface/misc.c (gnat_handle_option): Set
12017 warn_maybe_uninitialized.
12018
8d6a2f69
GP
120192011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
12020
12021 * gnat_ugn.texi (Complexity Metrics Control): Update link to
12022 the Watson/McCabe paper.
12023
770937fd
JM
120242011-04-23 Jim Meyering <meyering@redhat.com>
12025
12026 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
12027
eb601ae1
EB
120282011-04-22 Eric Botcazou <ebotcazou@adacore.com>
12029
12030 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
12031 onto the new type.
12032
7d7fcb08
EB
120332011-04-22 Eric Botcazou <ebotcazou@adacore.com>
12034
12035 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
12036 parameter.
12037 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
12038 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
12039 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
12040 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
12041 <all>: Do not set flags on the reused DECL node coming from an alias.
12042 Set DECL_IGNORED_P on the DECL node built for subprograms if they
12043 don't need debug info here...
12044 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
12045 (gigi): Adjust calls to create_subprog_decl.
12046 (build_raise_check): Likewise.
12047 (establish_gnat_vms_condition_handler): Likewise.
12048 (Compilation_Unit_to_gnu): Likewise.
12049 (gnat_to_gnu): Likewise.
12050
e1876cac
EB
120512011-04-21 Eric Botcazou <ebotcazou@adacore.com>
12052
12053 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
12054 (NO_REORDER_ADAFLAGS): New variable.
12055 (EXTRA_GNATTOOLS): Always define.
12056 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
12057 Clean up and adjust list of files compiled with special options.
12058 * gcc-interface/Make-lang.in: Likewise.
12059 (ada/decl.o): Cosmetical change.
12060 (ada/misc.o): Remove dependency on $(PLUGIN_H).
12061
04695783
JM
120622011-04-20 Jim Meyering <meyering@redhat.com>
12063
12064 * initialize.c (__gnat_initialize): Remove useless if-before-free.
12065
23399579
EB
120662011-04-17 Eric Botcazou <ebotcazou@adacore.com>
12067
12068 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
12069 $(CFLAGS) on the link line.
12070
51c5169c
EB
120712011-04-17 Eric Botcazou <ebotcazou@adacore.com>
12072
12073 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
12074 padded type built for the return type if it is unconstrained.
12075
61e46a7d
NF
120762011-04-14 Nathan Froyd <froydnj@codesourcery.com>
12077
12078 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
12079
81f653d6
NF
120802011-04-12 Nathan Froyd <froydnj@codesourcery.com>
12081
b4867846
EB
12082 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
12083 before calling TREE_CHAIN.
81f653d6
NF
12084 * gcc-interface/misc.c (gnat_init_ts): New function.
12085 (LANG_HOOKS_INIT_TS): Define.
12086
a358e188
MJ
120872011-04-12 Martin Jambor <mjambor@suse.cz>
12088
b4867846
EB
12089 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
12090 instead of cgraph_node.
a358e188 12091
29b1c5a4
EB
120922011-04-08 Eric Botcazou <ebotcazou@adacore.com>
12093
12094 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
12095 alignment on fields of the RETURN type built for the Copy-In Copy-Out
12096 mechanism.
12097
88872b00
EB
120982011-04-08 Eric Botcazou <ebotcazou@adacore.com>
12099
12100 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
12101 of aggregate types that contain a placeholder.
12102
dcf0c47e
NF
121032011-04-08 Nathan Froyd <froydnj@codesourcery.com>
12104
12105 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
b4867846 12106 TYPE_ARG_TYPES.
dcf0c47e
NF
12107 (handle_type_generic_attribute): Likewise.
12108
53e3000c
EB
121092011-04-04 Eric Botcazou <ebotcazou@adacore.com>
12110
12111 PR ada/47163
12112 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
12113
ab380bb4
KT
121142011-04-04 Kai Tietz <ktietz@redhat.com>
12115
12116 PR ada/47163
0bad0e23
EB
12117 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
12118 to flag value.
ab380bb4 12119
8ffac116
EB
121202011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12121
12122 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
12123 type case, do not strip a padding type around the array type.
12124
de9528f0
EB
121252011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12126
12127 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
12128 types.
12129
d9d7a26c
EB
121302011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12131
12132 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
12133 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
de9528f0 12134 code for -feliminate-unused-debug-types.
d9d7a26c
EB
12135 (gnat_post_options): Likewise.
12136
4cb12a90
EB
121372011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12138
12139 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
12140 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
12141 distinct copy.
12142
acccc61c
EB
121432011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12144
12145 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
12146 DECL_ARTIFICIAL flag on enumeration types.
12147
583eb0c9
EB
121482011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12149
12150 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
12151 fat pointer types artificial unconditionally.
12152 <E_Array_Subtype>: Attach the base array type as a parallel type if it
12153 isn't artificial.
12154
e3edbd56
EB
121552011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12156
12157 * gcc-interface/gigi.h (get_dummy_type): Declare.
12158 (build_dummy_unc_pointer_types): Likewise.
12159 (finish_fat_pointer_type): Likewise.
12160 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
12161 fat pointer type has been built, complete it in place.
12162 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
12163 and thin pointers. Remove useless variable.
12164 (finish_fat_pointer_type): Make global and move to...
12165 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
12166 (get_dummy_type): New function.
12167 (build_dummy_unc_pointer_types): Likewise.
12168 (gnat_pushdecl): Propage the name to the anonymous variants only.
12169 (update_pointer_to): Only adjust the pointer types in the unconstrained
12170 array case.
12171
65444786
EB
121722011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12173
12174 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
12175 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
12176 if this is a Taft amendment type and the full declaration is available.
12177 * gcc-interface/trans.c (process_type): Likewise.
12178 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
12179 (process_freeze_entity): Likewise.
12180 * gcc-interface/utils.c (dummy_global): New static variable.
12181 (gnat_write_global_declarations): If there are types declared as used
12182 at the global level, insert them in the global hash table.
12183
1aeb40dd
EB
121842011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12185
12186 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
12187 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
12188 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
12189 copy.
12190 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
12191 flag of the type accordingly.
12192 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
12193
80ec8b4c
EB
121942011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12195
12196 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
12197 finalizing types when updating the pointers to the designated type.
12198 <all>: Finalize the deferred types even if we didn't defer processing
12199 of incomplete types in this invocation.
12200
2a9d769a 122012011-04-01 Olivier Hainque <hainque@adacore.com>
2c7f9cc0
AS
12202 Nicolas Setton <setton@adacore.com>
12203 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
12204
12205 * gcc-interface/misc.c (gnat_descriptive_type): New function.
12206 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
12207
2438d7a6
KT
122082011-03-28 Kai Tietz <ktietz@redhat.com>
12209
333d8aff 12210 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
80ec8b4c
EB
12211 Windows targets.
12212 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
12213 * system-mingw.ads (System): Change ZCX_By_Default default to True.
333d8aff 12214
80ec8b4c 12215 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
2438d7a6 12216
8ad150f6
TG
122172011-03-28 Tristan Gingold <gingold@adacore.com>
12218
12219 PR ada/44431
80ec8b4c
EB
12220 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
12221 Use ada output of gnatbind.
8ad150f6
TG
12222 (ada/b_gnatb.adb): Ditto.
12223 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
12224 (ada.mostlyclean, ada.stage1)
12225 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
12226 (ada.stagefeedback): Adjust.
80ec8b4c 12227 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
8ad150f6
TG
12228 Use ada output of gnatbind.
12229 (b_gnatm.adb): Ditto.
12230 (b_gnatl.o, b_gnatm.o): New rules.
12231
51c7954d
EB
122322011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12233
12234 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
12235 for the padded type built to support a specified size or alignment.
12236
6ddf9843
EB
122372011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12238
12239 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
12240 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
12241 unconditionally to the end of the unit when the designated type is
12242 limited_with'ed.
12243 <all>: Rename local variable. Attempt to un-defer types only and do it
12244 for limited_with'ed types as well.
12245 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
12246 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
12247 consistently and remove redundant call to finalize_from_with_types.
12248
5daed84a
EB
122492011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12250
12251 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
12252 subprograms without a previous spec declared in the same unit.
12253 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
12254 subprograms at the end of the unit instead of at the beginning.
12255 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
12256 isn't public for the special handling of non-inline functions nested
12257 inside inline external functions.
12258
0edf1bb2
JL
122592011-03-25 Jeff Law <law@redhat.com>
12260
5daed84a 12261 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
0edf1bb2 12262
e3c4580e
EB
122632011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12264
12265 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
12266 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
12267 to compute Set_Size_Depends_On_Discriminant.
12268 (Layout_Type): Call it on array types in back-end layout mode.
12269 * sem_util.adb (Requires_Transient_Scope): Return true for array
12270 types only if the size depends on the value of discriminants.
12271 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
12272 type if the RHS is a call to a function that returns an unconstrained
12273 type with default discriminant.
12274
abbc8c7b
EB
122752011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12276
12277 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
12278 non-conversion to the nominal result type at the end.
12279
ddb5a105
EB
122802011-03-23 Eric Botcazou <ebotcazou@adacore.com>
12281
12282 * gcc-interface/trans.c (create_temporary): New function taken from...
12283 (create_init_temporary): ...here. Call it.
12284 (call_to_gnu): Create the temporary for the return value early, if any.
12285 Create it for a function with copy-in/copy-out parameters if there is
12286 no target; in other cases of copy-in/copy-out, use another temporary.
12287 Push the new binding level lazily. Add and rename local variables.
12288
0d853156
EB
122892011-03-23 Eric Botcazou <ebotcazou@adacore.com>
12290
12291 * gcc-interface/decl.c (validate_size): Improve comments and tweak
12292 error message.
12293 (set_rm_size): Likewise.
12294
4184ef1b
EB
122952011-03-23 Eric Botcazou <ebotcazou@adacore.com>
12296
12297 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
12298 for the padded type built in order to support a specified alignment.
12299 Fix incorrect formatting.
12300
bf7eefab
EB
123012011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12302
12303 PR bootstrap/48216
12304 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
12305
ef0feeb2
EB
123062011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12307
12308 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
12309 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
12310 to the end of the list. Adjust recursive call. Rename local variable.
12311 If REORDER is true, reorder components of the record type.
12312 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
12313 components_to_record and adjust the parameter list.
12314
646f9414
EB
123152011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12316
12317 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
12318 disabled, use the variable for bounds of loop iteration scheme.
12319
62d784f7
KT
123202011-03-21 Kai Tietz <ktietz@redhat.com>
12321
12322 PR target/12171
0bad0e23 12323 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
62d784f7 12324
f230d759
EB
123252011-03-17 Eric Botcazou <ebotcazou@adacore.com>
12326
12327 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
12328 out whether the expression is read-only. Short-circuit placeholder
12329 case and rename a couple of local variables.
12330
bb1f7929
EB
123312011-03-17 Eric Botcazou <ebotcazou@adacore.com>
12332
12333 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
12334 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
12335 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
12336 (convert): Deal with conversions from a smaller form type specially.
12337
400a2d24
EB
123382011-02-14 Eric Botcazou <ebotcazou@adacore.com>
12339
12340 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
12341 its argument, except for the special -I- switch.
12342
c26bc3ad
GP
123432011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
12344
0bad0e23
EB
12345 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
12346 "Ada Issues".
c26bc3ad 12347
07b8e910
EB
123482011-02-08 Eric Botcazou <ebotcazou@adacore.com>
12349
12350 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
12351
31a5a547
EB
123522011-02-03 Eric Botcazou <ebotcazou@adacore.com>
12353
12354 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
12355 GNAT_FORMAL.
12356 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
12357 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
12358 instead of GNAT_FORMAL. Protect the expression against multiple uses.
12359 Do not generate the check directly, instead instantiate the template
12360 check present in the descriptor.
12361 (make_descriptor_field): Move around.
12362 (build_vms_descriptor32): Build a template check in the POINTER field.
12363 (build_vms_descriptor): Remove useless suffixes.
12364 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
12365
dcf25f59
EB
123662011-01-26 Eric Botcazou <ebotcazou@adacore.com>
12367
12368 PR bootstrap/47467
12369 * targext.c: Include target files if IN_RTS is defined.
12370
0418e131
RG
123712011-01-26 Richard Guenther <rguenther@suse.de>
12372
12373 PR bootstrap/47467
12374 * targext.c: Include config.h.
12375 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
12376 dependency.
12377
c6eecbd8 123782011-01-04 Pascal Obry <obry@adacore.com>
2c7f9cc0 12379 Eric Botcazou <ebotcazou@adacore.com>
c6eecbd8
PO
12380
12381 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
12382
2d3c7e4f
EB
123832011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12384
12385 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
12386 end-of-case on the end label and its associated gotos, if any.
12387
0394741f
EB
123882011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12389
12390 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
12391 expressions of the parameter cache within the statement group of
12392 the CICO mechanism.
12393
2a02d090 123942011-01-04 Olivier Hainque <hainque@adacore.com>
2c7f9cc0 12395 Eric Botcazou <ebotcazou@adacore.com>
2a02d090
OH
12396
12397 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
12398 (set_end_locus_from_node): New function.
12399 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
12400 make and the function end_locus.
12401 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
12402 for the elaboration subprogram.
12403 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
12404 set the end_locus of the expression as well.
12405
89f5e978
EB
124062011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12407
12408 PR ada/47131
12409 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
12410 variables that are referenced in exception handlers volatile.
12411
12412
ad41bd84 12413\f
797103eb 12414Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
12415
12416Copying and distribution of this file, with or without modification,
12417are permitted in any medium without royalty provided the copyright
12418notice and this notice are preserved.