]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[multiple changes]
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
11fa950b
AC
12011-08-31 Javier Miranda <miranda@adacore.com>
2
3 * sem_ch4.adb (Try_Object_Operation): When a dispatching primitive is
4 found check if there is a class-wide subprogram covering the primitive.
5
62011-08-31 Yannick Moy <moy@adacore.com>
7
8 * sem_res.adb: Further cases where full expansion test is needed,
9 rather than expansion test.
10
112011-08-31 Pascal Obry <obry@adacore.com>
12
13 * prj-attr.adb: Fix Source_File_Switches attribute kind (must be a list)
14
152011-08-31 Ed Schonberg <schonberg@adacore.com>
16
17 * exp_ch5.adb: Handle iterators over derived container types.
18
192011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
20
21 * einfo.ads, einfo.adb: Add new flag Has_Anonymous_Master.
22 (Has_Anonymous_Master): New routine.
23 (Set_Has_Anonymous_Master): New routine.
24 (Write_Entity_Flags): Add an entry for Has_Anonymous_Master.
25 * exp_ch4.adb: Add with and use clause for Sem_Ch8.
26 (Current_Anonymous_Master): New routine.
27 (Current_Unit_First_Declaration): Removed.
28 (Current_Unit_Scope): Removed.
29 (Expand_N_Allocator): Anonymous access-to-controlled types now chain
30 their objects on a per-unit heterogeneous finalization master.
31
322011-08-31 Matthew Heaney <heaney@adacore.com>
33
34 * a-cbhama.adb, a-cbhase.adb (Insert): Check for zero-length buckets
35 array.
36
372011-08-31 Jose Ruiz <ruiz@adacore.com>
38
39 * s-taprop-linux.adb (Create_Task): Avoid changing the affinity mask
40 when not needed.
41
422011-08-31 Gary Dismukes <dismukes@adacore.com>
43
44 * sem_disp.adb (Propagate_Tag): Return without propagating in the case
45 where the actual is an unexpanded call to 'Input.
46
d2b4b3da
AC
472011-08-31 Yannick Moy <moy@adacore.com>
48
49 * sem_ch4.adb: Code clean up.
50
512011-08-31 Yannick Moy <moy@adacore.com>
52
53 * exp_alfa.adb, exp_alfa.ads: Minor correction of copyright notice.
54
552011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
56
57 * exp_ch7.adb (Build_Array_Deep_Procs): Do not generate Deep_Finalize
58 and TSS primitive Finalize_Address if finalization is suppressed.
59 (Build_Record_Deep_Procs): Do not generate Deep_Finalize and TSS
60 primitive Finalize_Address if finalization is suppressed.
61
622011-08-31 Jose Ruiz <ruiz@adacore.com>
63
64 * s-mudido-affinity.adb, s-taprop-linux.adb, s-taprop-mingw.adb,
65 s-taprop-solaris.adb, s-taprop-vxworks.adb (Set_Task_Affinity): Make
66 sure that the underlying task has already been created before trying
67 to change its affinity.
68 (Set_CPU): Use the term processor instead of CPU, as we do in
69 Assign_Task.
70
712011-08-31 Vincent Celier <celier@adacore.com>
72
73 * prj-attr.adb: New Compiler attribute Source_File_Switches.
74 * prj-nmsc.adb (Process_Compiler): Process attribute
75 Source_File_Switches.
76 * prj.ads (Language_Config): New name list component
77 Name_Source_File_Switches.
78 * snames.ads-tmpl (Name_Source_File_Switches): New standard name.
79
802011-08-31 Ed Schonberg <schonberg@adacore.com>
81
82 * sem_attr.adb (Analyze_Attribute, case 'Old): If prefix may be a
83 discriminated component of an actual, expand at once to prevent
84 ouf-of-order references with generated subtypes.
85
862011-08-31 Yannick Moy <moy@adacore.com>
87
88 * lib-xref-alfa.adb (Add_Alfa_Xrefs): Do not take into account read
89 reference to operator in Alfa xrefs.
90
912011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
92
93 * sem_ch12.adb (Freeze_Subprogram_Body): Add code to handle the case
94 where the parent instance was frozen before the current instance due to
95 the presence of a source body. Update calls to Insert_After_Last_Decl.
96 (Insert_After_Last_Decl): Renamed to Insert_Freeze_Node_For_Instance.
97 Update the comment which illustrates the purpose of the routine.
98 Package instances are now frozen by source bodies which appear after
99 the instance. This ensures that entities coming from within the
100 instance are available for use in the said bodies.
101 (Install_Body): Add code to handle the case where the parent instance
102 was frozen before the current instance due to the presence of a source
103 body. Update calls to Insert_After_Last_Decl.
104
56812278
AC
1052011-08-31 Jose Ruiz <ruiz@adacore.com>
106
107 * s-taprop-linux.adb (Set_Task_Affinity): Avoid the use of anonymous
108 access types.
109 * affinity.c (__gnat_set_affinity_mask): Declare index variable.
110
1112011-08-31 Yannick Moy <moy@adacore.com>
112
113 * sem_ch8.adb (Analyze_Subprogram_Renaming): Refine expander test in
114 full-expander test.
16c3301a
AC
115 * alfa.adb, alfa.ads, alfa_test.adb, ali.adb, debug.adb, errout.adb,
116 errout.ads, erroutc.adb, expander.adb, exp_ch4.adb, exp_ch7.adb,
117 freeze.adb, get_alfa.adb, get_alfa.ads, gnat1drv.adb, lib-writ.adb,
118 lib-writ.ads, lib-xref.adb, lib-xref.ads, lib-xref-alfa.adb, opt.adb,
119 opt.ads, put_alfa.adb, put_alfa.ads, restrict.adb, sem_ch12.adb,
120 sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
121 sem_prag.adb, sem_res.adb, sem_util.adb: Minor reformatting, renaming
122 ALFA in Alfa (we dropped acronym).
56812278
AC
123 * einfo.adb (Primitive_Operations): Correctly return list of primitive
124 operations in a case where it returned previously No_Elist.
125
7cda9727
RD
1262011-08-31 Robert Dewar <dewar@adacore.com>
127
128 * s-taprop-vxworks.adb, sem_ch5.adb, s-taprop-tru64.adb, exp_alfa.adb,
129 s-taprop-vms.adb, bindgen.adb, s-mudido.adb, s-mudido.ads,
130 sem_res.adb, expander.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
131 s-taprop-solaris.adb, s-mudido-affinity.adb, vms_conv.adb,
132 s-taprop-irix.adb, s-taprop.ads, s-taskin.adb, s-taskin.ads,
133 s-taprop-hpux-dce.adb, a-chtgbo.adb, s-taprop-posix.adb: Minor
134 reformatting.
135
0a190dfd
AC
1362011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
137
138 * sem_ch12 (Check_Private_View): Revert previous change.
139 * sem_res.adb (Conversion_Check): Do not emit the error message if the
140 conversion is in a generic instance.
141
1422011-08-31 Matthew Heaney <heaney@adacore.com>
143
144 * a-cbhase.adb (Symmetric_Difference): Dereference correct node array.
145 * a-chtgbo.adb (Free): Allow 0 as index value.
146
1472011-08-31 Matthew Heaney <heaney@adacore.com>
148
149 * a-cborma.adb (Insert): Add comment to explain why no element
150 assignment.
151
1522011-08-31 Gary Dismukes <dismukes@adacore.com>
153
154 * sem_util.adb (Find_Body_Discriminal): Test whether the scope of the
155 spec discriminant is already a concurrent type, in which case just use
156 it, otherwise fetch the Corresponding_Concurrent_Type as before.
157
7d266442
EB
1582011-08-30 Eric Botcazou <ebotcazou@adacore.com>
159
160 * system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads,
161 system-linux-mips.ads, system-linux-mipsel.ads,
162 system-linux-mips64el.ads, system-linux-ppc64.ads,
163 system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support.
164
4f1a975c
EB
1652011-08-30 Eric Botcazou <ebotcazou@adacore.com>
166
167 * gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
168 * gcc-interface/utils2.c (build_binary_op): Tighten condition.
169 (build_unary_op): Likewise.
170
f2991b48
EB
1712011-08-30 Eric Botcazou <ebotcazou@adacore.com>
172
173 * raise-gcc.c: Do not include coretypes.h and tm.h.
174 (setup_to_install): Remove test for compiler macro.
175 * targext.c: Document use for the library.
176 * gcc-interface/Makefile.in: Fix comment on the use of IN_GCC.
177
10a22f43
EB
1782011-08-30 Eric Botcazou <ebotcazou@adacore.com>
179
180 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not convert
181 the expression to the nominal type if the latter is a record type with
182 a variant part and the type of the former is a record type without one.
183
bfa2e39d
AC
1842011-08-30 Yannick Moy <moy@adacore.com>
185
186 * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
187 expansion in Alfa mode.
188 * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public
189 * exp_alfa.adb, exp_alfa.ads: New package defining light expansion for
190 Alfa mode.
191 * gnat1drv.adb (Adjust_Global_Switches): Update Comment.
192 * sem_res.adb: Ditto.
bd34109a 193 * gcc-interface/Make-lang.in: Update dependencies.
bfa2e39d
AC
194
1952011-08-30 Thomas Quinot <quinot@adacore.com>
196
197 * g-socket.ads: Minor documentation adjustment.
198
a0347839
AC
1992011-08-30 Robert Dewar <dewar@adacore.com>
200
201 * exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting.
202
2032011-08-30 Yannick Moy <moy@adacore.com>
204
205 * exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb,
206 exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads,
207 exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb,
208 gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb:
209 Revert change which introduced files for "light"
210 expansion, to be replaced by a single file for Alfa expansion.
211
3597c0e9
RD
2122011-08-30 Robert Dewar <dewar@adacore.com>
213
214 * opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment.
215 Minor code reorg/reformatting.
216
da94696d
AC
2172011-08-30 Yannick Moy <moy@adacore.com>
218
219 * opt.adb, opt.ads (Full_Expander_Active): New function defines a
220 common shorthand for (Expander_Active and not ALFA_Mode) that can be
221 used for testing full expansion, that is active expansion not in the
222 reduced mode for Alfa
223 * exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb,
224 sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead
225 of the verbose (Expander_Active and not ALFA_Mode)
226
2272011-08-30 Tristan Gingold <gingold@adacore.com>
228
229 * s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb,
230 s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb,
5b8ca141
TG
231 s-secsta.ads, s-parame.ads, s-parame-vxworks.ads, s-parame-ae653.ads:
232 Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage
da94696d 233
c199ccf7
AC
2342011-08-30 Gary Dismukes <dismukes@adacore.com>
235
236 * sem_res.adb (Valid_Conversion): Revise test for implicit anonymous
237 access conversions to check that the conversion is a rewritten node,
238 rather than just having Comes_From_Source set to False, which wasn't
239 sufficient.
240
2412011-08-30 Robert Dewar <dewar@adacore.com>
242
243 * exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb,
244 g-socket.ads: Minor reformatting.
245
2462011-08-30 Thomas Quinot <quinot@adacore.com>
247
248 * sem_util.adb: Minor reformatting.
249
2502011-08-30 Tristan Gingold <gingold@adacore.com>
251
252 * raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set,
253 to be compliant with the ABI.
254
dff99e1a
AC
2552011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
256
257 * sem_ch12.adb (Check_Private_View): Exchange the private and full view
258 of a designated type when the related access type is an actual in an
259 instance. This ensures that the full view of designated type is
260 available when inside the body of the instance.
261
2622011-08-30 Ed Schonberg <schonberg@adacore.com>
263
264 * sem_util.adb (May_Be_Lvalue): To determine whether a reference may be
265 in a position to be modified, a slice is treated like an indexed
266 component.
267
63be2a5a
AC
2682011-08-30 Thomas Quinot <quinot@adacore.com>
269
270 * s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for
271 field tv_sec in struct timeval.
272
2732011-08-30 Yannick Moy <moy@adacore.com>
274
275 * exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several
276 blocks of code doing full expansion, previously only guarded by
277 Expander_Active, by anding the test that ALFA_Mode is not set
278
2792011-08-30 Ed Schonberg <schonberg@adacore.com>
280
281 * sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,
282 add the function to the list of private dependents, for subsequent
283 legality check on Taft amendment types.
284 * sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize
285 Private_Dependents, as for other incomplete types.
286 * sem_util.adb (Wrong_Type): Avoid cascaded errors when a
287 Taft-amendment type is used as the return type of a function.
288
dd54644b
JM
2892011-08-30 Javier Miranda <miranda@adacore.com>
290
291 * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code
292 which emits an error by a call to a new routine which report the error.
293 * exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the
294 entity does not cover an existing interface.
295 * errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize
296 code.
297 * sem_ch6.adb (Check_Conformance): Add specific error for wrappers of
298 protected procedures or entries whose mode is not conformant.
299 (Check_Synchronized_Overriding): Code cleanup: replace code which emits
300 an error by a call to a new routine which report the error.
301
d3ba478e
AC
3022011-08-30 Robert Dewar <dewar@adacore.com>
303
304 * gnat_rm.texi: Minor change.
305 * exp_attr_light.adb: Minor reformatting.
306
3072011-08-30 Ed Schonberg <schonberg@adacore.com>
308
309 * sem_ch3.adb: Patch inheritance of aspects in
310 Complete_Private_Subtype, to avoid infinite loop.
311
c01817d2
AC
3122011-08-30 Javier Miranda <miranda@adacore.com>
313
314 * sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
315 been reported and a subprogram covering an interface primitive is not
316 found then skip generating the internal entity. Done to avoid crashing
317 the frontend.
318 (Check_Abstract_Overriding): Change text of error of wrong formal of
319 protected subprogram or entry. Done for consistency to emit exactly the
320 same error reported by Check_Synchronized_Overriding. In addition, the
321 error is restricted to protected types (bug found working on AI05-0090)
322
3232011-08-30 Yannick Moy <moy@adacore.com>
324
325 * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
326 expansion in Alfa mode.
327 * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
328 * exp_light.adb, exp_light.ads: New package defining light expansion.
329 * expander.adb (Expand): Call light expansion in Alfa mode
330 * exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
331 constructs.
332 * exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
333 constructs.
334 * exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
335 * gnat1drv.adb (Adjust_Global_Switches): Comment
336
3372011-08-30 Yannick Moy <moy@adacore.com>
338
339 * lib-xref-alfa.adb: Minor refactoring.
340
3412011-08-30 Yannick Moy <moy@adacore.com>
342
343 * exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
344 mode.
345 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
346 expansion in Alfa mode.
347 * sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
348 mode.
349
3502011-08-30 Robert Dewar <dewar@adacore.com>
351
352 * debug_a.adb: Update comment.
353
996c8821
RD
3542011-08-30 Robert Dewar <dewar@adacore.com>
355
356 * exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,
357 sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,
358 exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb,
359 sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting
360
3612011-08-30 Robert Dewar <dewar@adacore.com>
362
363 * gnat_rm.texi: Add section on C.6(16) implementation advice for pragma
364 volatile.
365
3647ca26
HK
3662011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
367
368 * exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to
369 Build_Finalization_Master by supplying an insertion node and enclosing
370 scope. In its old version, the call did not generate a finalization
371 master.
372 (Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to
373 recognize anonymous access-to-controlled components. Rewrite the
374 machinery which creates finalization masters to service anonymous
375 access-to-controlled components of a record type. In its current state,
376 only one heterogeneous master is necessary to handle multiple anonymous
377 components.
378 (Freeze_Type): Comment reformatting.
379 * rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and
380 RE_Unit_Table.
381 * s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which
382 associates TSS primitive Finalize_Address with either the master itself
383 or with the internal hash table depending on the mode of operation of
384 the master.
385
6d4e4fbc
JM
3862011-08-30 Javier Miranda <miranda@adacore.com>
387
388 * exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an
389 interface type then do not generate code to compare this component.
390 Required since they have no components and their equality operator is
391 abstract.
392
d15f9422
AC
3932011-08-30 Steve Baird <baird@adacore.com>
394
395 * sem_util.ads (Deepest_Type_Access_Level): New function; for the type
396 of a saooaaat (i.e, a stand-alone object of an anonymous access type),
397 returns the (static) accessibility level of the object. Otherwise, the
398 same as Type_Access_Level.
399 (Dynamic_Accessibility_Level): New function; given an expression which
400 could occur as the rhs of an assignment to a saooaaat (i.e., an
401 expression of an access-to-object type), return the new value for the
402 saooaaat's associated Extra_Accessibility object.
403 (Effective_Extra_Accessibility): New function; same as
404 Einfo.Extra_Accessibility except that object renames are looked through.
405 * sem_util.adb
406 (Deepest_Type_Access_Level): New function; see sem_util.ads description.
407 (Dynamic_Accessibility_Level): New function; see sem_util.ads
408 description.
409 (Effective_Extra_Accessibility): New function; see sem_util.ads
410 description.
411 * einfo.ads (Is_Local_Anonymous_Access): Update comments.
412 (Extra_Accessibility): Update comments.
413 (Init_Object_Size_Align): New procedure; same as Init_Size_Align
414 except RM_Size field (which is only for types) is unaffected.
415 * einfo.adb
416 (Extra_Accessibility): Expand domain to allow objects, not just formals.
417 (Set_Extra_Accessibility): Expand domain to allow objects, not just
418 formals.
419 (Init_Size): Add assertion that we are not trashing the
420 Extra_Accessibility attribute of an object.
421 (Init_Size_Align): Add assertion that we are not trashing the
422 Extra_Accessibility attribute of an object.
423 (Init_Object_Size_Align): New procedure; see einfo.ads description.
424 * sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access
425 differently for the type of a (non-library-level) saooaaat depending
426 whether Ada_Version < Ada_2012. This is the only point where Ada_Version
427 is queried in this set of changes - everything else (in particular,
428 setting of the Extra_Accessibility attribute in exp_ch3.adb) is
429 driven off of the setting of the Is_Local_Anonymous_Access attribute.
430 The special treatment of library-level saooaaats is an optimization,
431 not required for correctnesss. This is based on the observation that the
432 Ada2012 rules (static and dynamic) for saooaaats turn out to be
433 equivalent to the Ada2005 rules in the case of a library-level saooaaat.
434 * exp_ch3.adb
435 (Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is
436 false for the type of a saooaaat, declare and initialize its
437 accessibility level object and set the Extra_Accessibility attribute
438 of the saooaaat to refer to this object.
439 * checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.
440 * exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with
441 calls to Effective_Extra_Accessibility in order to support
442 renames of saooaaats.
443 (Expand_N_Type_Conversion): Add new local function,
444 Has_Extra_Accessibility, and call it when determining whether an
445 accessibility check is needed.
446 It returns True iff Present (Effective_Extra_Accessibility (Id)) would
447 evaluate to True (without raising an exception).
448 * exp_ch5.adb
449 (Expand_N_Assignment_Statement): When assigning to an Ada2012
450 saooaaat, update its associated Extra_Accessibility object (if
451 it has one). This includes an accessibility check.
452 * exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates
453 a saooaaat, update its Extra_Accessibility object too (if it
454 has one).
455 (Expand_Call): Replace a couple of calls to Type_Access_Level
456 with calls to Dynamic_Access_Level to handle cases where
457 passing a literal (any literal) is incorrect.
458 * sem_attr.adb (Resolve_Attribute): Handle the static accessibility
459 checks associated with "Saooaat := Some_Object'Access;"; this must
460 be rejected if Some_Object is declared in a more nested scope
461 than Saooaat.
462 * sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an
463 assignment to a saooaaat even if Is_Local_Anonymous_Access
464 returns False for its type (indicating a 2012-style saooaaat).
465 * sem_ch8.adb
466 (Analyze_Object_Renaming): Replace a call to Init_Size_Align
467 (which is only appropriate for objects, not types) with a call
468 of Init_Object_Size_Align in order to avoid trashing the
469 Extra_Accessibility attribute of a rename (the two attributes
470 share storage).
471 * sem_res.adb
472 (Valid_Conversion) Replace six calls to Type_Access_Level with
473 calls to Deepest_Type_Access_Level. This is a bit tricky. For an
474 Ada2012 non-library-level saooaaat, the former returns library level
475 while the latter returns the (static) accessibility level of the
476 saooaaat. A type conversion to the anonymous type of a saooaaat
477 can only occur as part of an assignment to the saooaaat, so we
478 know that such a conversion must be in a lhs context, so Deepest
479 yields the result that we need. If such a conversion could occur,
480 say, as the operand of an equality operator, then this might not
481 be right. Also add a test so that static accessibilty checks are
482 performed for converting to a saooaaat's type even if
483 Is_Local_Anonymous_Access yields False for the type.
484
4852011-08-30 Javier Miranda <miranda@adacore.com>
486
487 * sem_disp.adb (Check_Dispatching_Operation): Complete condition that
488 controls generation of a warning associated with late declaration of
489 dispatching functions. Required to avoid generating spurious
490 warnings.
491
6cce2156
GD
4922011-08-30 Gary Dismukes <dismukes@adacore.com>
493
494 * sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the
495 return object has an anonymous access type and the function's type is
496 a named access type.
497 * sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming
498 conversions on implicit conversions, since such conversions can occur
499 for anonymous access cases due to expansion. Issue error for attempt
500 to rename an anonymous expression as an object of a named access type.
501 * sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,
502 to indicate whether this function should report errors on invalid
503 conversions.
504 * sem_res.adb (Resolve): For Ada 2012, in the case where the type of
505 the expression is of an anonymous access type and the expected type is
506 a named general access type, rewrite the expression as a type
507 conversion, unless this is an expression of a membership test.
508 (Valid_Conversion.Error_Msg_N): New procedure that conditions the
509 calling of Error_Msg_N on new formal Report_Errs.
510 (Valid_Conversion.Error_Msg_NE): New procedure that conditions the
511 calling of Error_Msg_NE on new formal Report_Errs.
512 (Valid_Conversion): Move declaration of this function to the package
513 spec, to allow calls from membership test processing. For Ada 2012,
514 enforce legality restrictions on implicit conversions of anonymous
515 access values to general access types, disallowing such conversions in
516 cases where the expression has a dynamic accessibility level (access
517 parameters, stand-alone anonymous access objects, or a component of a
518 dereference of one of the first two cases).
519 * sem_type.adb (Covers): For Ada 2012, allow an anonymous access type
520 in the context of a named general access expected type.
521 * exp_ch4.adb Add with and use of Exp_Ch2.
522 (Expand_N_In): Add processing for membership tests applied to
523 expressions of an anonymous access type. First, Valid_Conversion is
524 called to check whether the test is statically False, and then the
525 conversion is expanded to test that the expression's accessibility
526 level is no deeper than that of the tested type. In the case of
527 anonymous access-to-tagged types, a tagged membership test is applied
528 as well.
529 (Tagged_Membership): Extend to handle access type cases, applying the
530 test to the designated types.
531 * exp_ch6.adb (Expand_Call): When creating an extra actual for an
532 accessibility level, and the actual is a 'Access applied to a current
533 instance, pass the accessibility level of the type of the current
534 instance rather than applying Object_Access_Level to the prefix. Add a
535 ??? comment, since this level isn't quite right either (will eventually
536 need to pass an implicit level parameter to init procs).
537
747de90b
AC
5382011-08-30 Bob Duff <duff@adacore.com>
539
540 * s-taskin.ads: Minor comment fix.
541
5422011-08-30 Ed Schonberg <schonberg@adacore.com>
543
544 * sem_res.adb (Check_Parameterless_Call): If the node is a selected
545 component and the selector is a dispatching operation, check if it is
546 a prefixed call before rewriting as a parameterless function call.
547
cdc4cc65
JJ
5482011-08-29 Jakub Jelinek <jakub@redhat.com>
549
550 * gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy
551 tsystem.h into $(RTSDIR) instead of rts.
552
226a7fa4
AC
5532011-08-29 Robert Dewar <dewar@adacore.com>
554
555 * sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
556 reformatting.
557 * gcc-interface/Make-lang.in: Update dependencies.
558
5592011-08-29 Yannick Moy <moy@adacore.com>
560
561 * alfa.ads (Name_Of_Heap_Variable): New constant name.
562 * lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
563 table to hold dereferences.
564 (Add_ALFA_Xrefs): Take into account dereferences as special
565 reads/writes to the variable "HEAP".
566 (Enclosing_Subprogram_Or_Package): Move subprogram here.
567 (Generate_Dereference): New procedure to store a read/write dereferencew
568 in the table Drefs.
569 * put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
570 the special "HEAP" var.
571 * sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
572 in ALFA mode.
573 * sem_util.adb (Note_Possible_Modification): Store write dereference
574 in ALFA mode.
575
dfbcb149
HK
5762011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
577
578 * exp_ch3.adb (Freeze_Type): Generate an accessibility check which
579 ensures that the level of the subpool access type is not deeper than
580 that of the pool object.
581 * sem_util.adb (Object_Access_Level): Expand to handle defining
582 identifiers.
583 * sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
584 subpool handle name of a rewritten allocator.
585
1df4f514
AC
5862011-08-29 Robert Dewar <dewar@adacore.com>
587
588 * impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.
589
5902011-08-29 Thomas Quinot <quinot@adacore.com>
591
592 * exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
593 values, we generate multiple triples of parameters in the TypeCode.
594 Bump Choice_Index for each such triple so that a subsequent default
595 choice is associated with the correct index in the typecode.
596
5972011-08-29 Ed Schonberg <schonberg@adacore.com>
598
599 * a-cdlili.adb (Iterate): Initialize properly an iterator over a null
600 container.
601 (First, Last): Handle properly an iterator over a null container.
602
6032011-08-29 Bob Duff <duff@adacore.com>
604
605 * sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
606 processing if we run across a node with no Scope. This can happen if
607 we're with-ing an library-level instance, and that instance got errors
608 that caused "instantiation abandoned".
609 * sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
610 an exception instead of using Assert, so it won't go into an infinite
611 loop, even when assertions are turned off.
612
6132011-08-29 Ed Schonberg <schonberg@adacore.com>
614
615 * a-coorse.adb: Proper handling of empty ordered sets.
616
14f0f659
AC
6172011-08-29 Johannes Kanig <kanig@adacore.com>
618
619 * debug.adb: Add comments.
620
8027b455
AC
6212011-08-29 Thomas Quinot <quinot@adacore.com>
622
623 * a-except.adb, a-except-2005.adb: Minor comment rewording and
624 reformatting.
625
6262011-08-29 Yannick Moy <moy@adacore.com>
627
628 * sem_ch3.adb (Array_Type_Declaration): Remove insertion of
629 declaration for Itypes in Alfa mode.
630
d85fd922
AC
6312011-08-29 Robert Dewar <dewar@adacore.com>
632
633 * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
634 a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
635 a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
636 reformatting.
637
6382011-08-29 Tristan Gingold <gingold@adacore.com>
639
640 * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
641 package spec.
642 * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
643 * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
644 while raising PE.
645
fd3d2680
AC
6462011-08-29 Robert Dewar <dewar@adacore.com>
647
648 * a-cbhama.adb, a-cbhama.ads: Minor reformatting.
649
6502011-08-29 Javier Miranda <miranda@adacore.com>
651
652 * sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
653 renamings of formal subprograms when the actual for a formal type is
654 class-wide.
655
dfbf013f
MH
6562011-08-29 Matthew Heaney <heaney@adacore.com>
657
658 * a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
659 to Target.
660
6612011-08-29 Matthew Heaney <heaney@adacore.com>
662
663 * a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
664 components of record type.
665 * a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
666 to Target.
667
a6dd3a54
ES
6682011-08-29 Ed Schonberg <schonberg@adacore.com>
669
670 * a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,
671 a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to
672 container packages.
673
c54796e0
AC
6742011-08-29 Robert Dewar <dewar@adacore.com>
675
676 * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
677 reformatting.
678
6792011-08-29 Matthew Heaney <heaney@adacore.com>
680
681 * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
682 components of record type.
683
6842011-08-29 Bob Duff <duff@adacore.com>
685
686 * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
687 by the termination handler.
688
9fd9d2be
AC
6892011-08-29 Yannick Moy <moy@adacore.com>
690
691 * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
692 created in Alfa mode, instead of inserting artificial declarations of
693 non-Itypes in the tree.
694 * sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
695 know if an Itype has a corresponding declaration, as defined in
696 itypes.ads.
697
6982011-08-29 Yannick Moy <moy@adacore.com>
699
700 * gnat1drv.adb: Minor rewrite.
701
7022011-08-29 Bob Duff <duff@adacore.com>
703
704 * s-tasuti.adb (Make_Passive): Work around race condition in
705 Make_Independent, which can cause Wait_Count to be zero. So instead of
706 asserting that Wait_Count > 0, and then decrementing it, decrement it
707 only if Wait_Count > 0.
708 * s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
709 should be nonnegative, so declare them Natural instead of Integer.
710
833eaa8a
AC
7112011-08-29 Robert Dewar <dewar@adacore.com>
712
713 * exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
714 sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
715 a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
716 a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
717 exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.
718
7192011-08-29 Tristan Gingold <gingold@adacore.com>
720
721 * s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.
722
7232011-08-29 Vadim Godunko <godunko@adacore.com>
724
725 * s-parint.ads: Minor comment clarification.
726
7272011-08-29 Vincent Celier <celier@adacore.com>
728
729 * prj.adb (Initialize): Make sure that new reserved words after Ada 95
730 may be used as identifiers.
731
7322011-08-29 Ed Schonberg <schonberg@adacore.com>
733
734 * a-coinho.ads: Minor reformating.
735
3a613a36
AC
7362011-08-29 Ed Schonberg <schonberg@adacore.com>
737
738 * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a
739 container of a derived type.
740
3a613a36
AC
7412011-08-29 Ed Schonberg <schonberg@adacore.com>
742
743 * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
744 a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers.
745
14848f57
AC
7462011-08-29 Pascal Obry <obry@adacore.com>
747
748 * exp_disp.adb: Minor comment fix.
749 (Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
750 to avoid warnings when compiling with -Wall.
751 (Make_Disp_Conditional_Select_Body): Likewise.
752 (Make_Disp_Timed_Select_Body): Likewise.
753
7542011-08-29 Ed Schonberg <schonberg@adacore.com>
755
756 * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
757 an entity name, generate reference for it.
758
7592011-08-29 Ed Schonberg <schonberg@adacore.com>
760
761 * exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
762 iterator form.
763 * sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
764 the class-wide type.
765 * sem_ch5.adb: Move some rewriting to the expander, where it belongs.
766
7672011-08-29 Ed Schonberg <schonberg@adacore.com>
768
769 * sem_ch8.adb (Check_Constrained_Object): Do not create an actual
770 subtype for an object whose type is an unconstrained union.
771
7722011-08-29 Ed Schonberg <schonberg@adacore.com>
773
774 * par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
775 is allowed in a component definition, by AI95-406.
776
7772011-08-29 Matthew Heaney <heaney@adacore.com>
778
779 * a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.
780
7812011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
782
783 * a-except-2005.adb: Alphabetize all routines.
784 (Triggered_By_Abort): New routine.
785 * a-except-2005.ads (Triggered_By_Abort): New routine.
786 * a-except.adb Alphabetize all routines.
787 (Triggered_By_Abort): New routine.
788 * a-except.ads (Triggered_By_Abort): New routine.
789 * exp_ch7.adb: Update all comments involving the detection of aborts in
790 finalization code.
791 (Build_Object_Declarations): Do not generate code to detect the
792 presence of an abort at the start of finalization code, use a runtime
793 routine istead.
794 * rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
795 RE_Unit_Table.
796 * sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
797 allocate a task on a subpool.
798 * s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
799 The flag disables all actions related to the maintenance of
800 Finalize_Address_Table when subpools are not in use.
801 (Allocate_Any_Controlled): Signal the machinery that subpools are in
802 use.
803 (Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
804 performs costly task locking when subpools are not in use.
805
57a8057a
AC
8062011-08-29 Yannick Moy <moy@adacore.com>
807
808 * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged
809 types and dispatching calls in Alfa mode.
810 * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of
811 correspondance between body and spec scopes, to reuse utility functions
812 (Traverse_Declarations_Or_Statements): Protect access to body for stub
813 by testing the presence of the library unit for the body
814 * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa
815 mode the expansion of accept statements is skipped
816 * sem_util.adb, sem_util.ads (Unique_Entity): New function returning
817 the unique entity corresponding to the one returned by
818 Unique_Defining_Entity applied to the enclosing declaration of the
819 argument.
820
8212011-08-29 Bob Duff <duff@adacore.com>
822
823 * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in
824 gdb when x is not a node (it can be a node list, name_id, etc). pp is
825 an alias for pn. ppp is an alias for pt.
826
8272011-08-29 Javier Miranda <miranda@adacore.com>
828
829 * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing
830 aggregate to take a consistent decision on the need to convert into
831 assignments aggregates that initialize constant objects.
832
8332011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
834
835 * exp_ch4.adb (Expand_Allocator_Expression): Add a call to
836 Build_Allocate_Deallocate_Proc in order to handle allocation of
837 non-controlled objects on subpools.
838 * impunit.adb: Remove s-finmas and s-spsufi since they were never meant
839 to be end-user visible.
840 * s-finmas.adb: Add with and use clause for System.HTable.
841 Add an instantiation of Simple_HTable which provides a mapping between
842 the address of a controlled object and the corresponding
843 Finalize_Address used to clean up the object. The table is used when a
844 master is operating in heterogeneous mode.
845 (Attach): Explain why the input node is not verified on being already
846 attached.
847 (Delete_Finalize_Address): New routine.
848 (Detach): Add pragma Assert which ensures that a node is already
849 attached.
850 (Finalize): Add local variable Cleanup. Rewrite the iteration scheme
851 since nodes are no longer removed on traversal. Explain why node
852 detachment is undesirable in this case.
853 (Get_Finalize_Address): New routine.
854 (Hash): New routine.
855 (Is_Empty_List): Removed.
856 (pm): Renamed to Print_Master. Add output for discriminant
857 Is_Homogeneous.
858 Comment reformatting.
859 (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
860 * s-finmas.ads: Various comments additions / improvements.
861 Type Finalization_Master has a discriminant which determines the mode of
862 operation.
863 (Delete_Finalize_Address): New routine.
864 (Get_Finalize_Address): New routine.
865 (pm): Renamed to Print_Master.
866 (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
867 * s-stposu.adb: Add with clause for System.Address_Image; Add with and
868 use clause for System.IO.
869 (Allocate_Any_Controlled): Add machinery to set TSS primitive
870 Finalize_Address depending on the mode of allocation and the mode of
871 the master.
872 (Deallocate_Any_Controlled): Remove the relation pair object -
873 Finalize_Address regardless of the master mode. Add comment explaining
874 the reason.
875 (Detach): Ensure that fields Prev and Next are null after detachment.
876 (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration
877 scheme to check whether the list of subpools is empty. There is no
878 longer need to store the next subpool or advance the current pointer.
879 (Is_Empty_List): New routine.
880 (Print_Pool): New routine.
881 (Print_Subpool): New routine.
882 * s-stposu.ads: Various comments additions / improvements.
883 Field Master of type Root_Subpool is now a heterogeneous collection.
884 (Print_Pool): New routine.
885 (Print_Subpool): New routine.
886
8872011-08-29 Ed Schonberg <schonberg@adacore.com>
888
889 * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator
890 forms, using aspects of container types.
891 * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and
892 Has_Implicit_Dereference flags, that may be set on the partial view.
893 * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a
894 container type with an indexing aspect.
895 (Analyze_Quantified_Expression): Analyze construct with expansion
896 disabled, because it will be rewritten as a loop during expansion.
897 (Try_Container_Indexing): The prefix itself may be a container type
898 with an indexing aspect, as with a vector of vectors.
899 * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze
900 the original doamin of iteration, for name capture.
901 (Analyze_Iterator_Specification): If the domain is an expression that
902 needs finalization, create a separate declaration for it.
903 For an iterator with "of" retrieve default iterator info from aspect of
904 container type. For "in" iterator, retrieve type of Iterate function.
905 * sem_ch13.adb (Check_Iterator_Function): Fix typo.
906 (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before
907 analysis, to prevent spurious errors about late attributes.
908 * sprint.adb: Handle quantified expression with either loop or iterator
909 specification.
910 * a-convec.ads, a-convec.adb: Iterate function returns a reversible
911 iterator.
912
ddf67a1d
AC
9132011-08-29 Vincent Celier <celier@adacore.com>
914
915 * make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
916 Binder or Linker of the main project file.
917
9182011-08-29 Ed Schonberg <schonberg@adacore.com>
919
920 * inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
921 unit.
922
9232011-08-29 Yannick Moy <moy@adacore.com>
924
925 * exp_ch9.adb: Partial revert of previous change for Alfa mode
926
9272011-08-29 Yannick Moy <moy@adacore.com>
928
929 * exp_ch11.adb: Minor expansion of comment.
930
9312011-08-29 Yannick Moy <moy@adacore.com>
932
933 * lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.
934
9352011-08-29 Ed Schonberg <schonberg@adacore.com>
936
937 * sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
938 interpretation, set the type before resolving the operands, because
939 legality checks on an exponention operand need to know the type of the
940 context.
941
9422011-08-29 Ed Schonberg <schonberg@adacore.com>
943
944 * sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
945 cleanups on a master if the instance is within a generic unit.
946 Complement to the corresponding fix to inline.adb for K520-030.
947
9482011-08-29 Tristan Gingold <gingold@adacore.com>
949
950 * exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
951 occurrence.
952 * exp_intr.adb: Minor comment fix.
953
9542011-08-29 Bob Duff <duff@adacore.com>
955
956 * sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
957 Delay_Required was used as an uninitialized variable.
958
690943fc
RD
9592011-08-29 Robert Dewar <dewar@adacore.com>
960
961 * a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,
962 sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,
963 a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.
964
9f0ee988
TQ
9652011-08-29 Thomas Quinot <quinot@adacore.com>
966
967 * system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
968 Remove unused variables.
969
3e24afaa
AC
9702011-08-29 Ed Schonberg <schonberg@adacore.com>
971
972 * sem_res.adb: Remove Build_Explicit_Dereference.
973 * sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
974 from sem_res.adb, used in analysis of additional constructs.
975 (Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012
976 expansion of iterators.
977 (Is_Object_Reference): Recognize variables rewritten as explicit
978 dereferences in Ada2012.
979 * snames.ads-tmpl: Add Has_Element, Forward_Iterator,
980 Reversible_Iterator names, for expansion of Ada2012 iterators.
981 * aspects.ads, aspects.adb (Find_Aspect): Utility.
982 * a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
983 linked list container.
984 * a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
985 * a-coorse.ads, a-coorse.adb: Ditto for ordered sets.
986
9872011-08-29 Ed Schonberg <schonberg@adacore.com>
988
989 * a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
990 containers.
991
9922011-08-29 Vincent Celier <celier@adacore.com>
993
994 * make.adb (Gnatmake): Get the maximum number of simultaneous
995 compilation processes after the Builder switches has been scanned, as
996 there may include -jnn.
997
9982011-08-29 Matthew Heaney <heaney@adacore.com>
999
1000 * a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.
1001
10022011-08-29 Tristan Gingold <gingold@adacore.com>
1003
1004 * gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
1005 GNAT_DRIVER_COMMAND_LINE to 255.
1006
10072011-08-29 Pascal Obry <obry@adacore.com>
1008
1009 * freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
1010 reformatting and style fix (class attribute casing).
1011
10122011-08-29 Yannick Moy <moy@adacore.com>
1013
1014 * exp_ch11.adb: Yet another case where expansion should be common
1015 between CodePeer and Alfa.
1016
10172011-08-29 Yannick Moy <moy@adacore.com>
1018
1019 * exp_ch9.adb: Partial revert of previous change for Alfa mode.
1020
10212011-08-29 Ed Schonberg <schonberg@adacore.com>
1022
1023 * sem_ch6.adb (Matches_Limited_With_View): The limited views of an
1024 incomplete type and its completion match.
1025
3ddd922e
AC
10262011-08-29 Yannick Moy <moy@adacore.com>
1027
1028 * exp_ch13.adb: Adjust previous change.
1029
10302011-08-29 Robert Dewar <dewar@adacore.com>
1031
1032 * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
1033 exp_ch4.adb, sem_ch8.adb: Minor code reorganization
1034 Minor reformatting.
1035
444acbdd
AC
10362011-08-29 Emmanuel Briot <briot@adacore.com>
1037
1038 * make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
1039 initialize aggregated projects.
1040
10412011-08-29 Ed Schonberg <schonberg@adacore.com>
1042
1043 * sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
1044 depth of candidates to resolve a potentially spurious ambiguity between
1045 two visible subprograms.
1046
e0296583
AC
10472011-08-29 Yannick Moy <moy@adacore.com>
1048
1049 * sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without
1050 Requires/Ensures.
1051 * sem_util.adb (Get_Ensures_From_Test_Case_Pragma,
1052 Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without
1053 Requires/Ensures.
1054
10552011-08-29 Arnaud Charlet <charlet@adacore.com>
1056
1057 * gnat1drv.adb (Adjust_Global_Switches): Improve previous change.
1058 Add comment.
1059
10602011-08-29 Thomas Quinot <quinot@adacore.com>
1061
1062 * sem_res.adb: Minor reformatting.
1063
69794413
JK
10642011-08-29 Johannes Kanig <kanig@adacore.com>
1065
1066 * exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
1067 mode.
1068 * gnat1drv.adb (Adjust_Global_Switches): Set
1069 Use_Expressions_With_Actions to False in ALFA mode.
1070 * sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
1071 ALFA mode.
1072
59e6b23c
AC
10732011-08-29 Yannick Moy <moy@adacore.com>
1074
1075 * exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
1076 * exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
1077 * gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
1078 tagged types and dispatching calls in Alfa mode.
1079
10802011-08-29 Javier Miranda <miranda@adacore.com>
1081
1082 * sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
1083 we do not report an error on an Empty node.
1084
10852011-08-29 Geert Bosch <bosch@adacore.com>
1086
1087 * Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
1088 a-nlrear.o and a-nurear.o.
1089
10902011-08-29 Robert Dewar <dewar@adacore.com>
1091
1092 * freeze.adb: Minor code reorganization.
1093 Minor reformatting.
1094 * sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
1095 sem_ch6.adb: Minor reformatting
1096
10972011-08-29 Tristan Gingold <gingold@adacore.com>
1098
1099 * s-except.ads, s-except.adb: Provide dummy body.
1100
11012011-08-29 Yannick Moy <moy@adacore.com>
1102
1103 * sem_warn.adb (Within_Postcondition): Take into account the case of
1104 an Ensures component in a Test_Case.
1105
4d792549
AC
11062011-08-29 Tristan Gingold <gingold@adacore.com>
1107
1108 * s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
1109 * rtsfind.ads (RTU_Id): Replaces System_Exceptions by
1110 System_Exceptions_Debug
1111 (RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
1112 * a-except.adb: With and use System.Exceptions_Debug instead of
1113 System.Exceptions.
1114 * a-except-2005.adb: Likewise.
1115 * s-assert.adb: Likewise.
1116 * s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
1117 * Makefile.rtl: Add s-excdeb. Adjust compilation rule.
1118 * gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
1119 s-excdeb. Update dependencies.
1120 (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
1121 as these no longer need external libraries.
1122
11232011-08-29 Ed Schonberg <schonberg@adacore.com>
1124
1125 * sem_res.adb (Resolve_Op_Expon): Additional check to reject an
1126 exponentiation operator on universal values in a context that requires
1127 a fixed-point type.
1128
11292011-08-29 Tristan Gingold <gingold@adacore.com>
1130
1131 * raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence
1132 before calling notify_handled_exception.
1133 * a-exextr.adb: Fix comment.
1134
b254da66
AC
11352011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1136
1137 * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute
1138 Finalize_Address of the access type's finalization master.
1139 (Expand_N_Allocator): Add code to set attribute Finalize_Address of the
1140 access type's finalization master. Add a guard to prevent
1141 Associated_Storage_Pool from being set on .NET/JVM.
1142 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set
1143 attribute Finalize_Address of the access type's finalization master.
1144 * exp_ch7.adb (Make_Finalize_Address_Call): New routine.
1145 * exp_ch7.ads (Make_Finalize_Address_Call): New routine.
1146 * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and
1147 RE_Unit_Table.
1148 * s-finmas.adb: Add with clause for System.Address_Image. Add with and
1149 use clause for System.IO
1150 (Detach): Relax the assertion, to be reinstated later.
1151 (Finalize): Rewrite the iteration loop to avoid pointer comparison.
1152 Relax the assertion on Finalize_Address, to be reinstated later.
1153 (Is_Empty_List): New routine.
1154 (pm): New debug routine.
1155 (Set_Finalize_Address): New routine.
1156 * s-finmas.ads (pm): New debug routine.
1157 (Set_Finalize_Address): New routine.
1158 * s-stposu.adb (Allocate_Any_Controlled): Code reformatting.
1159
11602011-08-29 Tristan Gingold <gingold@adacore.com>
1161
1162 * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):
1163 Remove convention C.
1164
11652011-08-29 Tristan Gingold <gingold@adacore.com>
1166
1167 * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.
1168 (Initialize_TCB): Remove Exc_Stack_Ptr initialization.
1169 (Finalize_TCB): Remove its finalization.
1170 (Initialize): Remove assignment of GET_Exc_Stack_Addr
1171 * s-soflin.adb (NT_Exc_Stack): Remove
1172 (Get_Exc_Stack_Addr_NT): Likewise.
1173 (Get_Exc_Stack_Addr_Soft): Likewise.
1174 * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.
1175 (Get_Exc_Stack_Addr): Likewise.
1176 (Get_Exc_Stack_Addr_Soft): Likewise
1177 * s-taspri-vms.ads (Exc_Stack_T): Remove.
1178 (Exc_Stack_Ptr_T): Likewise.
1179 (Private_Data): Remove Exc_Stack_Ptr component.
1180
11812011-08-29 Tristan Gingold <gingold@adacore.com>
1182
1183 * raise-gcc.c (get_ip_from_context): New function. Factorize code.
1184
11852011-08-29 Tristan Gingold <gingold@adacore.com>
1186
1187 * gnat_ugn.texi: Fix aix and x86-solaris info for run-time.
1188
11892011-08-29 Geert Bosch <bosch@adacore.com>
1190
1191 * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,
1192 L2_Norm, Swap_Column): New generic subprograms
1193 * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,
1194 L2_Norm, Swap_Column): Implement new subprograms in order to
1195 eliminate dependency on BLAS and LAPACK libraries in
1196 Ada.Numerics.Generic_Real_Arrays and eventually also the complex
1197 version. Forward_Eliminate/Back_Substitute can be used to put a
1198 matrix in row echelon or reduced row echelon form using partial
1199 pivoting.
1200 * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,
1201 Swap_Column): Instantiate from System.Generic_Array_Operations.
1202 ("*", "abs"): Implement by instantiation from Generic_Array_Operations.
1203 (Sqrt): Local function for simple computation of square root without
1204 adding dependencies on Generic_Elementary_Functions.
1205 (Swap): New subprogram to exchange floating point numbers.
1206 (Inverse): Reimplement using Jordan-Gauss elimination.
1207 (Jacobi): New procedure implementing Jacobi's method for computation
1208 of eigensystems, based on Rutishauser's implementation.
1209 (L2_Norm): Implement directly using the inner product.
1210 (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of
1211 decreasing eigenvalue as required by the Ada RM.
1212 (Swap_Column): New helper procedure for Sort_Eigensystem.
1213 Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.
1214 Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for
1215 Sort_Eigensystems.
1216
12172011-08-29 Thomas Quinot <quinot@adacore.com>
1218
1219 * put_scos.adb (Put_SCOs): Do not emit a newline for an empty
1220 statements line.
1221
60370fb1
AC
12222011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1223
1224 * s-finmas.adb (Finalize): Check Finalize_Address of the master rather
1225 than the current node.
1226 * s-finmas.ads: Move field Finalize_Address from type FM_Node to
1227 Finalization_Master. The list headers have two fields instead of three.
1228 This should fix alignment issue but subpool allocations are now
1229 unusable. Alphabetize subprograms.
1230 * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than
1231 the size of the header when converting the beginning of the object to
1232 a FM_Node. Set the master's Finalize_Address attribute if not already
1233 set.
1234 (Deallocate_Any_Controlled): Use the offset rather than the size of the
1235 header when converting the beginning of the object to a FM_Node.
1236
12372011-08-29 Gary Dismukes <dismukes@adacore.com>
1238
1239 * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of
1240 reraise when compiling for CodePeer.
1241
12422011-08-29 Arnaud Charlet <charlet@adacore.com>
1243
1244 * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,
1245 now needed by a-convec.adb. Fix warning.
1246
12472011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1248
1249 * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the
1250 processing of TSS routine Finalize_Address when compiling in
1251 CodePeer_Mode.
1252
12532011-08-29 Thomas Quinot <quinot@adacore.com>
1254
1255 * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,
1256 sem_warn.adb: Minor reformatting.
1257
12582011-08-29 Emmanuel Briot <briot@adacore.com>
1259
1260 * prj-conf.adb (Get_Config_Switches): Also collect the list of
1261 languages from aggregated projects.
1262
12632011-08-29 Yannick Moy <moy@adacore.com>
1264
1265 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,
1266 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
1267 Traverse_Package_Declaration, Traverse_Subprogram_Body,
1268 Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies
1269 for stubs are traversed too when parameter is set
1270 (Traverse_All_Compilation_Units): Traverse without going inside stubs
1271 (Traverse_Declarations_Or_Statements): Do the special traversing for
1272 stubs when required.
1273 * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to
1274 return subprogram or package body from stub.
1275 (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect
1276 stubs without prior subprogram decl.
1277
12782011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
1279
1280 * gnat_ugn.texi: Fix typo.
1281
e9c9d122
HK
12822011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1283
1284 * s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
1285 which accounts for size vs alignment issues and calculates the size of
1286 the list header.
1287 (Deallocate_Any_Controlled): Ditto.
1288 (Nearest_Multiple_Rounded_Up): New routine.
1289
25ebc085
AC
12902011-08-29 Tristan Gingold <gingold@adacore.com>
1291
1292 * a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
1293 * a-exexda.adb (Set_Exception_C_Msg): Ditto.
1294 (Set_Exception_Msg): Ditto.
1295 * a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set
1296 Private_Data.
1297 * a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
1298 Use Save_Occurrence instead of Save_Occurrence_No_Private.
1299 (Raise_With_Msg): Remove Cleanup_Flag.
1300 * a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
1301 Clean_Flag and Private_Data components.
1302
13032011-08-29 Yannick Moy <moy@adacore.com>
1304
1305 * freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
1306 in CodePeer mode.
1307 * sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
1308 of an explicitly declared type, so that the base types of the original
1309 type and this generated type are the same, and a "type" (not a subtype
1310 like previously).
1311 * errout.adb (Special_Msg_Delete): Do not issue messages "Size too
1312 small" in Alfa mode, like in CodePeer mode.
1313 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
1314 clauses in Alfa mode.
1315
13162011-08-29 Javier Miranda <miranda@adacore.com>
1317
1318 * exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
1319 function to the package spec.
1320 * sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
1321 internally generated bodies of null procedures locate the internally
1322 generated spec enforcing mode conformance.
1323 (Is_Interface_Conformant): Ensure that the controlling formal of the
1324 primitives match.
1325
13262011-08-29 Ed Schonberg <schonberg@adacore.com>
1327
1328 * sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
1329 reject the pragma if it appears to apply to a formal subprogram.
1330
13312011-08-29 Ed Schonberg <schonberg@adacore.com>
1332
1333 * exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
1334 inner expression, to prevent double evaluation.
1335
590549fb
AC
13362011-08-29 Tristan Gingold <gingold@adacore.com>
1337
1338 * a-exexpr.adb (Propagate_Exception): Remove all the parameters as
1339 they were unused.
1340 * a-exexpr-gcc.adb (Propagate_Exception): Ditto.
1341 * a-except-2005.adb (Propagate_Exception): Adjust spec.
1342 (Raise_Current_Excep): Adjust call.
1343 (Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.
1344
13452011-08-29 Thomas Quinot <quinot@adacore.com>
1346
1347 * exp_disp.adb: Minor reformatting.
1348
62380e66
TG
13492011-08-29 Tristan Gingold <gingold@adacore.com>
1350
1351 * a-exexpr.adb (Setup_Exception): Removed.
1352 * a-exexpr-gcc.adb (Setup_Exception): Removed.
1353 * a-except.adb (Exception_Propagation): Removed.
1354 * a-except-2005.adb (Setup_Exception): Removed.
1355 (Reraise): Remove call to Setup_Exception.
1356 (Reraise_Occurrence): Ditto.
1357 (Reraise_Occurrence_Always): Ditto.
1358 (Reraise_Occurrence_No_Defer): Ditto.
1359 (Transfer_Occurrence): Ditto.
1360 * a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.
1361 (Set_Exception_Msg): Ditto.
1362
c95aa61c
AC
13632011-08-29 Robert Dewar <dewar@adacore.com>
1364
1365 * a-convec.adb, exp_disp.adb: Minor reformatting.
1366
13672011-08-29 Tristan Gingold <gingold@adacore.com>
1368
1369 * a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.
1370
624e1688
AC
13712011-08-29 Gary Dismukes <dismukes@adacore.com>
1372
1373 * exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
1374 Exception_Handlers to No_List instead of Empty_List in the case where
1375 there are no handlers.
1376
13772011-08-29 Tristan Gingold <gingold@adacore.com>
1378
1379 * gcc-interface/gigi.h (enum standard_datatypes): Add
1380 ADT_reraise_zcx_decl
1381 (reraise_zcx_decl): New macro.
1382 * gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
1383 (gigi): Set reraise_zcx_decl.
1384 (Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
1385 (gnat_to_gnu): Handle N_Raise_Statement.
1386
7134062a
AC
13872011-08-29 Robert Dewar <dewar@adacore.com>
1388
1389 * sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,
1390 a-undesu.adb: Minor reformatting.
1391
13922011-08-29 Ed Schonberg <schonberg@adacore.com>
1393
1394 * exp_disp.adb (Check_Premature_Freezing): When building a dispatch
1395 table, accept an unfrozen untagged component if it is an actual for a
1396 formal incomplete type.
1397 * a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to
1398 provide new iterator forms over vectors.
1399 Introduce type Iterator in package body to implement operations of
1400 Reversible_Iterator interface.
1401 * a-iteint.ads: Make package pure so it is usable with new container
1402 packages, that are categorized Remote_Types.
1403
ca5af305
AC
14042011-08-29 Robert Dewar <dewar@adacore.com>
1405
1406 * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting.
1407
14082011-08-29 Bob Duff <duff@adacore.com>
1409
1410 * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case
1411 of <>, because this is the routine that checks for dimensionality
1412 errors (for example, for a two-dimensional array, (others => <>) should
1413 be (others => (others => <>)).
1414
14152011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1416
1417 * impunit.adb: Add new run-time units.
1418 * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb,
1419 s-stposu.ads, s-stposu.adb: Code clean up.
1420 Handle protected class-wide or task class-wide types
1421 Handle C/C++/CIL/Java types.
1422 * s-spsufi.adb, s-spsufi.ads: New files.
1423
5accd7b6
AC
14242011-08-29 Yannick Moy <moy@adacore.com>
1425
1426 * sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on
1427 library-level subprogram.
1428 * sem_prag.adb (Check_Test_Case): Stricter rules for test-case
1429 placement.
1430 (Analyze_Pragma): Change name "Normal" for "Nominal" in test-case
1431 component.
1432 * snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case
1433 component.
1434 * gnat_rm.texi: Update doc for Test_Case pragma.
1435
14362011-08-29 Tristan Gingold <gingold@adacore.com>
1437
1438 * a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it
1439 convention C.
1440 (GCC_Exception_Access): New type.
1441 (Unwind_DeleteException): New imported procedure
1442 (Foreign_Exception): Import it.
1443 (GNAT_GCC_Exception): Simply have the occurrence inside.
1444 (To_GCC_Exception): New function.
1445 (To_GNAT_GCC_Exception): New function.
1446 (GNAT_GCC_Exception_Cleanup): New procedure..
1447 (Propagate_GCC_Exception): New procedure.
1448 (Reraise_GCC_Exception): New procedure.
1449 (Setup_Current_Excep): New procedure.
1450 (CleanupUnwind_Handler): Change type of UW_Exception parameter.
1451 (Unwind_RaiseException): Ditto.
1452 (Unwind_ForcedUnwind): Ditto.
1453 (Remove): Removed.
1454 (Begin_Handler): Change type of parameter.
1455 (End_Handler): Ditto. Now delete the exception if still present.
1456 (Setup_Key): Removed.
1457 (Is_Setup_And_Not_Propagated): Removed.
1458 (Set_Setup_And_Not_Propagated): Ditto.
1459 (Clear_Setup_And_Not_Propagated): Ditto.
1460 (Save_Occurrence_And_Private): Ditto.
1461 (EID_For): Add 'not null' constraint on parameter.
1462 (Setup_Exception): Does nothing.
1463 (Propagate_Exception): Simplified.
1464 * exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,
1465 re-raise is not expanded anymore.
1466 * s-except.ads (Foreign_Exception): New exception - placeholder for
1467 non Ada exceptions.
1468 * raise-gcc.c (__gnat_setup_current_excep): Declare
1469 (CXX_EXCEPTION_CLASS): Define (not yet used)
1470 (GNAT_EXCEPTION_CLASS): Define.
1471 (is_handled_by): Handle foreign exceptions.
1472 (PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.
1473
14742011-08-29 Jose Ruiz <ruiz@adacore.com>
1475
1476 * a-synbar.adb (Synchronous_Barrier): Some additional clarification.
1477
2ef48385
AC
14782011-08-29 Thomas Quinot <quinot@adacore.com>
1479
1480 * a-synbar-posix.adb: Minor reformatting.
1481
14822011-08-29 Jose Ruiz <ruiz@adacore.com>
1483
1484 * a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,
1485 a-exetim-default.ads (Interrupt_Clocks_Supported,
1486 Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
1487 definitions to be compliant with AI-0171. The target systems do not
1488 support separate account for the execution time of interrupt handlers.
1489
14902011-08-29 Jose Ruiz <ruiz@adacore.com>
1491
1492 * a-synbar.adb (Wait): Change the order of evaluation of the conditions
1493 in the barrier to put first the easiest to evaluate (and the one which
1494 will be True more often). More efficient.
1495
14962011-08-29 Eric Botcazou <ebotcazou@adacore.com>
1497
1498 * s-atocou-x86.adb: Fix constraint in machine code insertion.
1499
15002011-08-29 Bob Duff <duff@adacore.com>
1501
1502 * aspects.ads, aspects.adb: Add new aspects for various pragmas and
1503 attributes that are now aspects, as specified by AI05-0229-1.
1504 * sem_ch13.adb (Analyze_Aspect_Specifications,
1505 Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into
1506 pragmas or attribute references, as appropriate.
1507
0db16b1e
AC
15082011-08-29 Robert Dewar <dewar@adacore.com>
1509
1510 * a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,
1511 a-synbar-posix.ads: Minor reformatting.
1512
15132011-08-29 Yannick Moy <moy@adacore.com>
1514
1515 * snames.ads-tmpl: Add name Force.
1516
978ffe02
AC
15172011-08-29 Pascal Obry <obry@adacore.com>
1518
1519 * prj-nmsc.adb: Minor reformatting.
1520
15212011-08-29 Jose Ruiz <ruiz@adacore.com>
1522
1523 * a-exetim.ads (Interrupt_Clocks_Supported,
1524 Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
1525 definitions to be compliant with AI-0171.
1526
15272011-08-29 Robert Dewar <dewar@adacore.com>
1528
1529 * a-ngelfu.adb: Add comments.
1530
718f39dc
AC
15312011-08-29 Geert Bosch <bosch@adacore.com>
1532
1533 * a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is
1534 the closest machine number to Pi / 2.0.
1535
15362011-08-29 Jose Ruiz <ruiz@adacore.com>
1537
1538 * impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012
1539 package Ada.Synchronous_Barriers.
1540 * a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:
1541 Add new specs and bodies for Ada.Synchronous_Barriers. There is a
1542 default implementation using protected objects and another one
1543 a-synbar-posix using POSIX barriers as the underlying support.
1544 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,
1545 x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of
1546 Ada.Synchronous_Barriers which uses POSIX barriers (more efficient).
1547 Clean up dependencies.
1548 * Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o
1549
ee2e3f6b
AC
15502011-08-29 Robert Dewar <dewar@adacore.com>
1551
1552 * sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,
1553 exp_dist.adb: Minor code reorganization.
1554 Minor reformatting.
1555
15562011-08-29 Thomas Quinot <quinot@adacore.com>
1557
1558 * sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW
1559 primitive operation must support external streaming if it is not a
1560 controlling access result.
1561
646e2823
AC
15622011-08-29 Thomas Quinot <quinot@adacore.com>
1563
1564 * sinfo.ads, sem_ch7.adb: Minor reformatting.
1565
15662011-08-29 Bob Duff <duff@adacore.com>
1567
1568 * sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
1569 restriction on allocators, as required by AI05-0013-1.
1570 * restrict.ads: Minor comment fix.
1571
5d59eef2
AC
15722011-08-29 Tristan Gingold <gingold@adacore.com>
1573
1574 * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb
1575 (To_Jmpbuf_Address): Ditto
1576 (builtin_longjmp): Ditto
1577
15782011-08-29 Thomas Quinot <quinot@adacore.com>
1579
1580 * sem_res.adb: Minor reformatting.
1581
15822011-08-29 Vincent Celier <celier@adacore.com>
1583
1584 * make.adb (Gnatmake): Move special processing for VM targets after the
1585 call to Get_Target_Parameters.
1586
15872011-08-29 Thomas Quinot <quinot@adacore.com>
1588
1589 * sem_ch12.adb, par-ch12.adb: Minor reformatting.
1590
949a18cc
AC
15912011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1592
1593 * sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases
1594 where an anonymous access discriminant of a limited designated type
1595 appears in a non-immutably limited discriminated type and issue an
1596 error message. Add local variable Desig_T and replace all occurrences
1597 of Designated_Type.
1598
15992011-08-29 Jose Ruiz <ruiz@adacore.com>
1600
1601 * a-rttiev.adb (Set_Handler): Update comment to indicate that our
1602 implementation is compliant to RM D.15(15/2) after the modification
1603 imposed by AI05-0094-1 (binding interpretation).
1604
cb25faf8
AC
16052011-08-29 Robert Dewar <dewar@adacore.com>
1606
1607 * exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb,
1608 s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting.
1609
16102011-08-29 Thomas Quinot <quinot@adacore.com>
1611
1612 * par-endh.adb (Check_End): For an END where it is mandatory to repeat
1613 the scope name, do not report a missing label as a style violation (it
1614 will be diagnosed as an illegality).
1615 * exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of
1616 variant records: Get_Enum_Lit_From_Pos already returns a usage
1617 occurrence of the literal, no need to use New_Occurrence_Of. Set Etype
1618 on Expr in Integer_Literal case so that it can be used by
1619 Build_To_Any_Call.
1620
1d10f669
AC
16212011-08-29 Tristan Gingold <gingold@adacore.com>
1622
1623 * exp_sel.ads (Build_Abort_BLock_Handler): New function spec.
1624 Adjust comment.
1625 * exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler.
1626 (Build_Abort_Block_Handler): New function to build an Abort_Signal
1627 exception handler.
1628 * exp_ch9.adb (Expand_N_Asynchronous_Select): Call
1629 Build_Abort_Block_Handler to build the exception handler. Do not
1630 undefer aborts for the Abort_Signal exception handler if back-end
1631 exception mechanism.
1632 * exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if
1633 back_end exceptions for all others and abort_signal.
1634 * s-except.ads (ZCX_By_Default): New constant.
1635 * a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX.
1636 (Raise_Exception_Always): Ditto.
1637 (Raise_From_Signal_Handler): Ditto.
1638 (Raise_With_Location_And_Msg): Ditto.
1639 (Raise_With_Msg): Ditto.
1640 (Reraise): Ditto.
1641 (Reraise_Occurence): Ditto.
1642 (Reraise_Occurrence_Always): Ditto.
1643 * s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX.
1644 * s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX.
1d10f669
AC
1645
16462011-08-29 Thomas Quinot <quinot@adacore.com>
1647
1648 * sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation.
1649
d986066d
AC
16502011-08-29 Robert Dewar <dewar@adacore.com>
1651
1652 * snames.adb-tmpl, sem_ch13.adb: Minor reformatting
1653 Minor code reorganization.
1654
16552011-08-29 Bob Duff <duff@adacore.com>
1656
1657 * usage.adb (-gnatwy): Fix documentation: this switch applies to Ada
1658 2012, not just Ada 2005.
1659
16602011-08-29 Vincent Celier <celier@adacore.com>
1661
1662 * gnat_ugn.texi: Indicate that when the compiler is called by gnatmake
1663 with a project file or with gprbuid, if -gnatep= is specified, the
1664 builder may need to be invoked with -x.
1665
16662011-08-29 Tristan Gingold <gingold@adacore.com>
1667
1668 * a-exexpr-gcc.adb: Minor comment fix.
1669
ff4f0ed0
AC
16702011-08-29 Robert Dewar <dewar@adacore.com>
1671
1672 * sem_ch8.adb: Minor reformatting.
1673
16742011-08-29 Bob Duff <duff@adacore.com>
1675
1676 * par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012.
1677 * par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for
1678 treating "some" as unreserved in earlier Ada versions. This is now
1679 handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some,
1680 rather than Name_Some, since Tok_Some is now recognized as reserved.
1681 * scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other
1682 reserved word.
1683 * scans.ads: Minor comment fixes.
1684 * snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as
1685 for other language versions.
1686 * scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for
1687 treating "some" as unreserved in earlier Ada versions. This is now
1688 handled in Snames.Is_Keyword_Name.
1689 * par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in
1690 Ada 2012.
1691 (P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as
1692 unreserved in earlier Ada versions. This is now handled in
1693 Snames.Is_Keyword_Name.
1694 * snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved
1695 words as for other language versions.
1696 * gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to
1697 Ada 2012, not just Ada 2005.
1698
d941cee6
AC
16992011-08-29 Ed Schonberg <schonberg@adacore.com>
1700
1701 * sem_ch13.adb: Additional semantic checks for aspects involved in
1702 iterators.
1703
17042011-08-29 Matthew Heaney <heaney@adacore.com>
1705
1706 * a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb,
1707 a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous
1708 Container parameter.
1709 (Ancestor_Find): ditto.
1710
b970af39
TQ
17112011-08-29 Thomas Quinot <quinot@adacore.com>
1712
1713 * par-endh.adb: Minor reformatting.
d941cee6 1714
92db5dee
AC
17152011-08-29 Tristan Gingold <gingold@adacore.com>
1716
1717 * a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants.
1718 (GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component.
1719 (Adjust_N_CLeanups_For): Remove.
1720 (CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of
1721 stack is reached.
1722 (Propgate_Exception): Adjust.
1723 * raise-gcc.c: Add a few static/const.
1724 (Adjust_N_Cleanups_For): Remove declaration.
1725 (PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger.
1726
17272011-08-29 Ed Schonberg <schonberg@adacore.com>
1728
1729 * sem_ch8.adb: Use type of function return when rewriting as object
1730 declaration.
1731
1378bf10
AC
17322011-08-29 Gary Dismukes <dismukes@adacore.com>
1733
1734 * sem_type.adb: Minor reformatting.
1735
17362011-08-29 Robert Dewar <dewar@adacore.com>
1737
1738 * makeutl.adb: Minor reformatting.
1739
17402011-08-29 Ed Schonberg <schonberg@adacore.com>
1741
1742 * sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a
1743 function call of a limited type, the expansion of the renaming is
1744 complicated by the presence of various temporaries and subtypes that
1745 capture constraints of the renamed object.
1746 Rewrite node as an object declaration, whose expansion is simpler.
1747 Given that the object is limited there is no copy involved and no
1748 performance hit.
1749
164e06c6
AC
17502011-08-29 Robert Dewar <dewar@adacore.com>
1751
1752 * exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb,
1753 freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting.
1754
17552011-08-29 Tristan Gingold <gingold@adacore.com>
1756
1757 * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
1758 system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads,
1759 system-linux-hppa.ads, system-linux-s390.ads,
1760 system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
1761 system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads,
1762 system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads,
1763 system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads,
1764 system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads,
1765 system-solaris-sparc.ads, system-lynxos-x86.ads,
1766 system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads,
1767 system-solaris-x86_64.ads, system-mingw-x86_64.ads,
1768 system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads,
1769 system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads,
7d266442 1770 system-vxworks-x86.ads: Remove GCC_ZCX_Support.
164e06c6
AC
1771 * s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb,
1772 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto.
1773 * opt.ads: Adjust comment.
1774 * targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target.
1775 * gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target.
1776 * system.ads: Move GCC_ZCX_Support to obsolete entries.
1777
17782011-08-29 Emmanuel Briot <briot@adacore.com>
1779
1780 * makeutl.adb (Do_Complete): Resolve symbolic links when a relative
1781 file name is specified on the gnatmake or gprbuild command line, and
1782 before we search for that file in the project.
1783
17842011-08-29 Ed Schonberg <schonberg@adacore.com>
1785
1786 * sem_type.adb (Within_Instance): New predicate in Collect_Interps,
1787 used to determine whether a possible interpretation for an overloadable
1788 entity is declared within the current instantiation and should be
1789 included in the candidate set.
1790
17912011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
1792
1793 * gnat_rm.texi, gnat_ugn.texi: Clean ups.
1794
97216ca8
ES
17952011-08-29 Ed Schonberg <schonberg@adacore.com>
1796
1797 * sem_res.adb (Resolve_Actuals): Use base type to determine whether an
1798 access subtype is access_to_subprogram, when applying checks for
1799 RM 3.10.2 (27).
1800
d3cb4cc0
AC
18012011-08-29 Matthew Heaney <heaney@adacore.com>
1802
1803 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check
1804 for sibling when common parent.
1805
18062011-08-29 Thomas Quinot <quinot@adacore.com>
1807
1808 * get_scos.adb: Literals of Pragma_Id are pragma names prefixed with
1809 "pragma_".
1810
18112011-08-29 Ed Schonberg <schonberg@adacore.com>
1812
1813 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions
1814 for the return type when in ASIS mode.
1815
18162011-08-29 Vincent Celier <celier@adacore.com>
1817
1818 * make.adb (Gnatmake): Get the default search dirs, then the target
1819 parameters after getting the Builder switches, as the Builder switches
1820 may include --RTS= and that could change the default search dirs.
1821
18222011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1823
1824 * exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of
1825 Make_Final_Call. Move the processing for class-wide types before the
1826 processing for derivations from [Limited_]Controlled.
1827 (Make_Final_Call): Move the processing for class-wide types before the
1828 processing for derivations from [Limited_]Controlled.
1829 * s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.
1830 Add code to account for alignments larger than the list header. Add a
1831 comment illustrating the structure of the allocated object + padding +
1832 header.
1833 (Deallocate_Any_Controlled): Add code to account for alignments larger
1834 than the list header.
1835
18362011-08-29 Ed Schonberg <schonberg@adacore.com>
1837
1838 * sinfo.ads, sinfo.adb: New node kind
1839 N_Formal_Incomplete_Type_Definition, related flags.
1840 par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):
1841 Parse formal incomplete types.
1842 * sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in
1843 sem_ch12.
1844 * sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):
1845 Formal incomplete types do not need completion.
1846 * sem_ch12.adb (Analyze_Formal_Incomplete_Type,
1847 Validate_Incomplete_Type_Instance): New procedures to handle formal
1848 incomplete types.
1849 * freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual
1850 that corresponds to a formal incomplete type.
1851 * sprint.adb: Handle formal incomplete type declarations.
1852 * exp_util.adb (Insert_Actions): An incomplete_type_definition is not
1853 an insertion point.
1854
d3f70b35
AC
18552011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
1856
1857 * a-fihema.ads, a-fihema.adb: Unit removed.
1858 * a-undesu.ads, a-undesu.adb: New unit implementing
1859 Ada.Unchecked_Deallocate_Subpool.
1860 * einfo.adb: Remove Associated_Collection from the node usage.
1861 Add Finalization_Master to the node usage.
1862 (Associated_Collection): Removed.
1863 (Finalization_Master): New routine.
1864 (Set_Associated_Collection): Removed.
1865 (Set_Finalization_Master): New routine.
1866 (Write_Field23_Name): Remove Associated_Collection from the output. Add
1867 Finalization_Master to the output.
1868 * einfo.ads: Remove attribute Associated_Collection and its uses in
1869 entities.
1870 Add new attribute Finalization_Master along with its uses in entitites.
1871 (Associated_Collection): Removed along with its pragma import.
1872 (Finalization_Master): New routine along with a pragma import.
1873 (Set_Associated_Collection): Removed along with its pragma import.
1874 (Set_Finalization_Master): New routine along with a pragma import.
1875 * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to
1876 Build_Finalization_Collection with Build_Finalization_Master.
1877 (Expand_Freeze_Record_Type): Move the generation of Finalize_Address
1878 before the bodies of the predefined routines. Add comment explaining
1879 this. Replace call to Build_Finalization_Collection with
1880 Build_Finalization_Master.
1881 (Freeze_Type): Replace call to Build_Finalization_Collection with
1882 Build_Finalization_Master.
1883 (Make_Finalize_Address_Body): Comment reformatting.
1884 (Make_Predefined_Primitive_Specs): Code reformatting.
1885 (Stream_Operation_OK): Update comment mentioning finalization
1886 collections. Replace RE_Finalization_Collection with
1887 RE_Finalization_Master.
1888 * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to
1889 Associated_Collection with Finalization_Master. Replace call to
1890 Build_Finalization_Collection with Build_Finalization_Master.
1891 (Expand_Allocator_Expression): Replace call to Associated_Collection
1892 with Finalization_Master. Replace call to Set_Associated_Collection with
1893 Set_Finalization_Master. Remove the generation of
1894 Set_Finalize_Address_Ptr.
1895 (Expand_N_Allocator): Replace call to Associated_Collection with
1896 Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr.
1897 * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to
1898 Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the
1899 comment on usage. Replace call to Needs_BIP_Collection with
1900 Needs_BIP_Finalization_Master Remplace BIP_Collection with
1901 BIP_Finalization_Master. Update all comments which mention finalization
1902 collections. Replace Associated_Collection with
1903 Finalization_Master. Replace Build_Finalization_Collection with
1904 Build_Finalization_Master.
1905 (BIP_Formal_Suffix): Update BIP_Collection's case.
1906 (Build_Heap_Allocator): Update the related comment. Rename local
1907 variable Collect to Fin_Mas_Id and update its occurrences. Update
1908 comments which mention finalization collections. Replace
1909 Set_Associated_Collection with Set_Finalization_Master.
1910 (Expand_Call): Update the code which detects a special piece of library
1911 code for .NET/JVM.
1912 (Make_Build_In_Place_Call_In_Allocator): Replace the call to
1913 Add_Collection_Actual_To_Build_In_Place_Call with
1914 Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code
1915 which generates a call to Make_Set_Finalize_Address_Ptr_Call.
1916 (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to
1917 Add_Collection_Actual_To_Build_In_Place_Call with
1918 Add_Finalization_Master_Actual_To_Build_In_Place_Call.
1919 (Make_Build_In_Place_Call_In_Assignment): Replace call to
1920 Add_Collection_Actual_To_Build_In_Place_Call with
1921 Add_Finalization_Master_Actual_To_Build_In_Place_Call.
1922 (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
1923 * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master.
1924 (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
1925 * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage.
1926 Rename local variable Collect to Fin_Mas_Id and update its occurrences.
1927 Replace call to Set_Associated_Collection with Set_Finalization_Master.
1928 (Build_Finalization_Collection): Renamed to Build_Finalization_Master.
1929 Replace the call to Associated_Collection with Finalization_Master.
1930 Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences.
1931 Update the way finalization master names are generated. Update the
1932 retrieval of the correct access type which will carry the pool and
1933 master attributes.
1934 (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved.
1935 (Make_Finalize_Address_Body): Abstract types do not need
1936 Finalize_Address. Code reformatting.
1937 (Make_Finalize_Address_Stmts): Update comment on usage.
1938 (Make_Set_Finalize_Address_Ptr_Call): Removed.
1939 (Process_Declarations): Update comments.
1940 * exp_ch7.ads (Build_Finalization_Collection): Renamed to
1941 Build_Finalization_Master. Update associated comment.
1942 (Make_Set_Finalize_Address_Ptr_Call): Removed.
1943 * exp_ch13.adb: Update comments which mention finalization collections.
1944 (Expand_N_Free_Statement): Replace the call to Associated_Collection
1945 with Finalization_Master.
1946 * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to
1947 create calls to routines Allocate_Any_Controlled and
1948 Deallocate_Any_Controlled.
1949 (Find_Finalize_Address): New routine.
1950 (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the
1951 comparison.
1952 (Requires_Cleanup_Actions): Update the comment on freeze node
1953 inspection.
1954 * exp_util.ads: Remove comment on generated code for
1955 Build_Allocate_Deallocate_Proc. The code is now quite complex and it
1956 is better to simply look in the body.
1957 * freeze.adb (Freeze_All): Update the comment of finalization
1958 collections. Replace the call to Associated_Collection with
1959 Finalization_Master. Replace the call to Build_Finalization_Collection
1960 with Build_Finalization_Master.
1961 * impunit.adb: Add a-undesu and s-stposu to the list of units.
1962 * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file
1963 a-fihema.
1964 * rtsfind.adb (Get_Unit_Name): Remove the processing for children of
1965 Ada.Finalization. Add processing for children of System.Storage_Pools.
1966 * rtsfind.ads: Remove the naming of second level children of
1967 Ada.Finalization.
1968 Remove Ada_Finalization_Heap_Management from the list of units.
1969 Remove subtype Ada_Finalization_Child.
1970 Remove the following subprogram entities:
1971
1972 RE_Allocate
1973 RE_Deallocate
1974 RE_Finalization_Collection
1975 RE_Finalization_Collection_Ptr
1976 RE_Set_Finalize_Address_Ptr
1977
1978 Add the naming of second level children of System.Storage_Pools.
1979 Add System_Finalization_Masters and System_Storage_Pools_Subpools to
1980 the list of units.
1981 Add subtype System_Storage_Pools_Child.
1982 Add the following subprogram entities to System.Finalization_Masters:
1983
1984 RE_Finalization_Master
1985 RE_Finalization_Master_Ptr
1986
1987 Add the following subprogram entities to System.Storage_Pools.Subpools:
1988
1989 RE_Allocate_Any_Controlled
1990 RE_Deallocate_Any_Controlled
1991 RE_Root_Storage_Pool_With_Subpools
1992 RE_Root_Subpool
1993 RE_Subpool_Handle
1994
1995 Move the following subprogram entities from
1996 Ada.Finalization.Heap_Management to System.Finalization_Masters:
1997
1998 RE_Add_Offset_To_Address
1999 RE_Attach
2000 RE_Base_Pool
2001 RE_Detach
2002
2003 * sem_ch3.adb (Access_Type_Declaration): Replace the call to
2004 Set_Associated_Collection with Set_Finalization_Master.
2005 * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal
2006 BIP_Finalization_Master is created.
2007 * s-finmas.adb: New unit System.Finalization_Masters.
2008 * s-finmas.ads: New unit System.Finalization_Masters.
2009 * s-stopoo.ads, s-stopoo.adb: Minor code reformatting.
2010 * s-stposu.ads, s-stposu.adb: New unit implementing
2011 System.Storage_Pools.Subpools.
2012
20132011-08-29 Bob Duff <duff@adacore.com>
2014
2015 * tbuild.adb: Add assertion.
2016
8c889ae4
AC
20172011-08-29 Thomas Quinot <quinot@adacore.com>
2018
2019 * s-pooglo.adb: Minor reformatting.
2020
20212011-08-29 Ed Schonberg <schonberg@adacore.com>
2022
2023 * exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is
2024 an indexed component of a packed array whose element type is a record
2025 with a representation clause different from that of the right-hand
2026 side, generate a temporary to minimuze the number of bit-field
2027 operations generated.
2028
20292011-08-29 Ed Schonberg <schonberg@adacore.com>
2030
2031 * exp_util.adb (Insert_Actions): Use clauses can be part of lists of
2032 declarations, and thus are likely insertion points for actions.
2033
20342011-08-29 Bob Duff <duff@adacore.com>
2035
2036 * einfo.ads: Minor comment fix.
2037
1a07a71a
AC
20382011-08-29 Robert Dewar <dewar@adacore.com>
2039
2040 * frontend.adb, gnat1drv.adb: Minor reformatting.
2041
20422011-08-29 Tristan Gingold <gingold@adacore.com>
2043
2044 * s-pooglo.adb (Allocate, Deallocate): Take into account the alignment.
2045 * a-fihema.adb (Allocate, Deallocate): Ditto. Possibly add padding
2046 space in front of the header.
2047
4bcd6411
JK
20482011-08-29 Johannes Kanig <kanig@adacore.com>
2049
2050 * frontend.adb (Frontend): Exit after creating Standard package when
2051 -gnatd.H is present.
2052 * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is
2053 present.
2054
f0f88eb6
RD
20552011-08-29 Robert Dewar <dewar@adacore.com>
2056
2057 * exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,
2058 makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl,
2059 snames.ads-tmpl: Minor reformatting.
2060
3e37be71
PG
20612011-08-29 Philippe Gil <gil@adacore.com>
2062
2063 * prj.adb (Reset_Units_In_Table): New procedure.
2064 Reset units to avoid access to freed memory.
2065
94fb7608
AC
20662011-08-29 Thomas Quinot <quinot@adacore.com>
2067
2068 * get_scos.adb: When reading a P statement SCO without a pragma name
2069 (from an older ALI file), ensure that the Pragma_Name component is set
2070 to Unknown_Pragma (not left uninitialized).
2071
20722011-08-29 Vincent Celier <celier@adacore.com>
2073
2074 * makeutl.adb (Get_Directories): New procedure moved from Buildgpr and
2075 modified to compute correctly the object path of a SAL project that is
2076 extending another library project.
2077 (Write_Path_File): New procedure.
2078 * makeutl.ads (Directories): New table moved from Buildgpr
2079 (Get_Directories): New procedure moved from Buildgpr
2080 (Write_Path_File): New procedure
2081 * mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the
2082 paths before binding SALs, instead of Set_Ada_Paths.
2083 * prj-env.adb (Set_Path_File_Var): Procedure has been moved to package
2084 Prj.
2085 * prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env
2086 (Current_Source_Path_File_Of): New function
2087 (Set_Current_Object_Path_File_Of): New procedure
2088 (Current_Source_Object_File_Of): New function
2089 (Set_Current_Object_Path_File_Of): New procedure
2090 * prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env
2091 (Current_Source_Path_File_Of): New function
2092 (Set_Current_Object_Path_File_Of): New procedure
2093 (Current_Source_Object_File_Of): New function
2094 (Set_Current_Object_Path_File_Of): New procedure
2095
20962011-08-29 Ed Schonberg <schonberg@adacore.com>
2097
2098 * exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a
2099 packed entity, use a bit-field assignment only if there is no change of
2100 representation.
2101
c5ecd6b7
AC
21022011-08-29 Thomas Quinot <quinot@adacore.com>
2103
2104 * rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, use
2105 Is_RTU instead of using Chars comparisons.
2106
21072011-08-29 Thomas Quinot <quinot@adacore.com>
2108
2109 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create a
2110 temporary object if the actual is constrained, and the discriminants
2111 read from the stream don't match.
2112
21132011-08-29 Tristan Gingold <gingold@adacore.com>
2114
2115 * sem_attr.adb, exp_attr.adb: Add handling of
2116 Attribute_System_Allocator_Alignment
2117 * snames.ads-tmpl: Add Name_System_Allocator_Alignment and
2118 Attribute_System_Allocator_Alignment.
2119 * ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment.
2120 * gcc-interface/targtyps.c, gcc-interface/utils2.c,
2121 gcc-interface/gigi.h: Renames get_target_default_allocator_alignment to
2122 get_target_system_allocator_alignment.
2123
21242011-08-29 Arnaud Charlet <charlet@adacore.com>
2125
2126 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
2127 dependencies.
2128
8abdac29
AC
21292011-08-29 Arnaud Charlet <charlet@adacore.com>
2130
2131 * exp_ch3.adb (In_Runtime): Fix typo.
2132
df170605
AC
21332011-08-29 Bob Duff <duff@adacore.com>
2134
2135 * sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification.
2136
21372011-08-29 Ed Schonberg <schonberg@adacore.com>
2138
2139 * exp_ch3.adb (Expand_N_Object_Declaration): If the entity is tagged
2140 and a separate tag assignment is generated, ensure that the tag
2141 assignment is analyzed.
2142
864a4236
ES
21432011-08-29 Ed Schonberg <schonberg@adacore.com>
2144
2145 * atree.ads, atree.adb (Copy_Separate_List): New function that applies
2146 Copy_Separate_Tree to a list of nodes. Used to create disjoint copies
2147 of statement lists that may contain local declarations.
df170605
AC
2148 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use Copy_Separate_List to
2149 duplicate the triggering statements needed for the expansion of this
2150 construct, when the trigger is a dispatching call to a synchronized
2151 primitive.
864a4236 2152
7f394c1d
AC
21532011-08-29 Arnaud Charlet <charlet@adacore.com>
2154
2155 * gnat_rm.texi: Add doc for 'Elab_Subp_Body.
2156 * bindgen.adb: Add comments.
2157 * snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Body
2158 in CodePeer mode.
2159
2c1a2cf3
RD
21602011-08-29 Robert Dewar <dewar@adacore.com>
2161
2162 * exp_attr.adb: Minor reformatting.
2163 Minor code reorganization and commenting.
2164 * par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minor
2165 reformatting.
2166
0bfc9a64
AC
21672011-08-29 Thomas Quinot <quinot@adacore.com>
2168
2169 * get_scos.adb: Ignore chaining indicators not currently supported
2170 by Ada.
2171
21722011-08-29 Arnaud Charlet <charlet@adacore.com>
2173
2174 * system.ads: Minor editing.
2175
21762011-08-29 Arnaud Charlet <charlet@adacore.com>
2177
2178 * bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in
2179 CodePeer mode.
2180 * sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of
2181 Attribute_Elab_Subp_Body.
2182 * snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New.
2183 * sem_util.adb: Update comments.
2184
828d4cf0
TQ
21852011-08-29 Thomas Quinot <quinot@adacore.com>
2186
2187 * par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record
2188 pragma name for each SCO statement corresponding to a pragma.
2189
5cd7bb15
AC
21902011-08-29 Arnaud Charlet <charlet@adacore.com>
2191
2192 * opt.ads: Minor editing.
2193
21942011-08-29 Yannick Moy <moy@adacore.com>
2195
2196 * gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode
2197 that only made sense for CodePeer mode.
2198
21992011-08-29 Jose Ruiz <ruiz@adacore.com>
2200
2201 * targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag
2202 which is no longer used.
2203 * targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the
2204 handling of the 64-bit division check.
2205 * exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit
2206 division available.
2207 * system*.ads (Support_64_Bit_Divides): Remove this flag which is no
2208 longer used.
2209
22102011-08-29 Thomas Quinot <quinot@adacore.com>
2211
2212 * get_scos.adb: Minor reformatting.
2213
25b589cb
AC
22142011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
2215
2216 * exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a
2217 statement list is wrapped in a block, the block is explicitly analyzed
2218 in order to properly redecorate the entities and create a servicing
2219 finalizer.
2220
22212011-08-29 Tristan Gingold <gingold@adacore.com>
2222
2223 * sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove.
2224 (Set_Zero_Cost_Handling): Remove.
2225
22262011-08-29 Thomas Quinot <quinot@adacore.com>
2227
2228 * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting
2229
1197ddb1
AC
22302011-08-29 Geert Bosch <bosch@adacore.com>
2231
2232 * s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation
2233 instruction, as the latter may produce -0.0, which is not a valid VAX
2234 F float number.
2235 (Neg_G): Likewise for VAX F float.
2236
22372011-08-29 Robert Dewar <dewar@adacore.com>
2238
2239 * exp_util.adb: Minor reformatting.
2240
22412011-08-29 Yannick Moy <moy@adacore.com>
2242
2243 * sem_ch3.adb: Minor comment update.
2244
22452011-08-29 Thomas Quinot <quinot@adacore.com>
2246
2247 * checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of
2248 the operand type.
2249
22502011-08-29 Thomas Quinot <quinot@adacore.com>
2251
2252 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush
2253 current statement sequence on a generic instantiation or a subprogram
2254 declaration.
2255
8f66cda7
AC
22562011-08-29 Robert Dewar <dewar@adacore.com>
2257
2258 * sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:
2259 Minor reformatting.
2260
22612011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
2262
2263 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
2264 Correct the check which involves the freeze node of a controlled or
2265 access-to-controlled type.
2266
22672011-08-29 Geert Bosch <bosch@adacore.com>
2268
2269 * sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm
2270 statements.
2271 * s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from
2272 Asm statements.
2273
cf161d66
AC
22742011-08-29 Yannick Moy <moy@adacore.com>
2275
2276 * sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration
2277 for every index type and component type that is not a subtype_mark.
2278 (Process_Subtype): Set Etype of subtype.
2279
22802011-08-29 Robert Dewar <dewar@adacore.com>
2281
2282 * a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code
2283 reorganization. Minor reformatting.
2284
7cc83cd8
AC
22852011-08-29 Steve Baird <baird@adacore.com>
2286
2287 * exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion
2288 for CodePeer and ALFA modes.
2289
22902011-08-29 Ed Schonberg <schonberg@adacore.com>
2291
2292 * sem_type.adb (Collect_Interps): Within an instance, collect a homonym
2293 that comes from an enclosing scope if it is not the renaming of an
2294 actual, to handle properly a spurious ambiguity in an instance.
2295
76af4137
AC
22962011-08-29 Eric Botcazou <ebotcazou@adacore.com>
2297
2298 * sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to...
2299 (Alignment_Check_For_Size_Change): ...this. Add SIZE parameter and
2300 use it instead of the Esize of the first parameter.
2301 (Analyze_Attribute_Definition_Clause) <Object_Size>: Adjust call to
2302 above change.
2303 <Size>: Likewise. Call it for composite types on the RM size.
2304
23052011-08-29 Yannick Moy <moy@adacore.com>
2306
2307 * exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array.
2308 * sem_util.adb (Unique_Name): Correct behaviour for names of
2309 compilation units.
2310
9b20e59b
AC
23112011-08-29 Yannick Moy <moy@adacore.com>
2312
2313 * sem_prag.adb (Check_Precondition_Postcondition): In formal
2314 verification mode, analyze pragma expression for correctness, for
2315 pre/post on library-level subprogram, as it is not expanded later.
2316
23172011-08-29 Yannick Moy <moy@adacore.com>
2318
2319 * exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates
2320 in formal verification.
2321
23222011-08-29 Thomas Quinot <quinot@adacore.com>
2323
2324 * sem_util.adb: Minor reformatting.
2325 * freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute,
2326 there's no pragma.
2327 * par_sco.ads, par_sco.adb: Update comments.
2328
23292011-08-29 Yannick Moy <moy@adacore.com>
2330
2331 * einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and
2332 associated getter/setter.
2333 * sem_ch6.adb: Remove reference to Is_Postcondition_Proc.
2334
23352011-08-29 Vincent Celier <celier@adacore.com>
2336
2337 * prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind
2338 * prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler
2339 with declarations for Language_Kind and Dependency_Kind for Ada.
2340 * prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name
2341 (Process_Compiler): Take into account the new attributes Dependency_Kind
2342 and Language_Kind.
2343 (Check_Configuration): Check if language kind is unit based, not if the
2344 language name is Ada.
2345 (Process_Exceptions_Unit_Based): Ditto
2346 (Add_Language): Remove default additions of language and dependency kind
2347 * prj.ads: Minor comment change
2348 * snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind
2349
23502011-08-29 Johannes Kanig <kanig@adacore.com>
2351
2352 * debug.adb: Update comments.
2353
c5bc3df6
JM
23542011-08-24 Joseph Myers <joseph@codesourcery.com>
2355
2356 * gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)
2357 (CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)
2358 (CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.
2359 (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)
2360 (ada/initialize.o, ada/raise.o): Remove explicit compilation rules.
2361
e3aa9eba
RO
23622011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2363
2364 * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
2365 (GNATLIBCFLAGS_FOR_C): Replace
2366 TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
2367 (gnatlib-shared-default, gnatlib-shared-dual-win32)
2368 (gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
2369 (gnatlib-sjlj, gnatlib-zcx): Likewise.
2370
f446d60e
EB
23712011-08-07 Eric Botcazou <ebotcazou@adacore.com>
2372
2373 * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.
2374
588c8f48
EB
2375 * gcc-interface/gigi.h (enumerate_modes): Fix formatting.
2376
2377 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change.
2378
28d711bf
NR
23792011-08-05 Nicolas Roche <roche@adacore.com>
2380
2381 * gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared
2382 libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with
2383 canadian cross.
2384 * gcc-interface/Make-lang.in: Add support for canadian cross setting.
2385
993f8920
AC
23862011-08-05 Matthew Heaney <heaney@adacore.com>
2387
2388 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth):
2389 subprogram bodies declared out-of-order.
2390
23912011-08-05 Yannick Moy <moy@adacore.com>
2392
2393 * sem_util.adb (Unique_Name): only prefix with "standard" the names of
2394 entities directly in package Standard, otherwise skip the standard
2395 prefix.
2396
9b3956dd
RD
23972011-08-05 Robert Dewar <dewar@adacore.com>
2398
2399 * a-cbmutr.adb: Minor reformatting
2400 (Allocate_Node): refactor node allocation algorithm
2401
24022011-08-05 Robert Dewar <dewar@adacore.com>
2403
2404 * opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch.
2405 * sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable
2406 mode.
2407 (Analyze_Pragma, case Check_Policy): Ditto.
2408 * sem_prag.ads (Check_Disabled): New function
2409 * snames.ads-tmpl: Add Name_Disable.
2410
24112011-08-05 Robert Dewar <dewar@adacore.com>
2412
2413 * gnat_rm.texi: Document implementation-defined policy DISABLE for
2414 pragmas Assertion_Policy, Check_Policy, Debug_Policy.
2415
79e705d6
AC
24162011-08-05 Ed Schonberg <schonberg@adacore.com>
2417
2418 * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
2419 that appears in a generic formal part and applies to a formal
2420 subprogram.
2421
24222011-08-05 Robert Dewar <dewar@adacore.com>
2423
2424 * a-cbmutr.ads: Minor reformatting.
2425
23b6deca
AC
24262011-08-05 Matthew Heaney <heaney@adacore.com>
2427
2428 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
2429 to check count, check sign of value instead.
2430 * a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty
2431 (Copy_Subtree): allocate copy of source element
2432 (Equal_Subtree): compare elements, not access objects
2433
24342011-08-05 Vincent Celier <celier@adacore.com>
2435
2436 * gnat_ugn.texi: Fix VMS alternative.
2437
a2773bd3
AC
24382011-08-05 Thomas Quinot <quinot@adacore.com>
2439
2440 * sem_ch11.adb: Add comment.
2441
24422011-08-05 Robert Dewar <dewar@adacore.com>
2443
2444 * exp_util.adb: Minor comment fix.
2445
24462011-08-05 Robert Dewar <dewar@adacore.com>
2447
2448 * scng.adb (Error_Unterminated_String): Improve flag position when
2449 comma present.
2450
24512011-08-05 Matthew Heaney <heaney@adacore.com>
2452
2453 * Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway
2454 tree containers).
2455 * a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded
2456 multiway tree containers.
2457
24582011-08-05 Robert Dewar <dewar@adacore.com>
2459
2460 * styleg.adb (Check_Comment): Implement comment spacing of 1 or 2
2461 * stylesw.adb: Implement -gnatyC to control comment spacing
2462 * stylesw.ads (Style_Check_Comments_Spacing): New switch (set by
2463 -gnatyc/C).
2464 * usage.adb: Add line for -gnatyC.
2465
24662011-08-05 Robert Dewar <dewar@adacore.com>
2467
f446d60e 2468 * gnat_ugn.texi: Document -gnatyC.
a2773bd3
AC
2469 * vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a
2470 synonym for COMMENTS2).
2471
dedac3eb
RD
24722011-08-05 Robert Dewar <dewar@adacore.com>
2473
2474 * par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb,
2475 a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb,
2476 sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb,
2477 a-comutr.ads, lib-xref.adb: Minor reformatting.
2478
24792011-08-05 Robert Dewar <dewar@adacore.com>
2480
2481 * sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal
2482 warning if there is an exception handler present.
2483
7c62a85a
AC
24842011-08-05 Pascal Obry <obry@adacore.com>
2485
2486 * a-iteint.ads: Fix copyright year.
2487
24882011-08-05 Thomas Quinot <quinot@adacore.com>
2489
2490 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a
2491 statement SCO for a USE clause or a representation clause.
2492
24932011-08-05 Yannick Moy <moy@adacore.com>
2494
2495 * lib-xref-alfa.adb (Collect_ALFA): generate the proper relation
2496 between body and spec for stub.
2497 (Detect_And_Add_ALFA_Scope): take into account subprogram stub
2498 * lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a
2499 pragma precondition or postcondition, for which the enclosing
2500 subprogram or package in the AST is not the desired one, return empty.
2501
e49208a9
AC
25022011-08-05 Thomas Quinot <quinot@adacore.com>
2503
2504 * g-expect.adb: Minor reformatting.
2505
25062011-08-05 Bob Duff <duff@adacore.com>
2507
2508 * a-fihema.adb: Comment out OS_Lib.
2509
25102011-08-05 Matthew Heaney <heaney@adacore.com>
2511
2512 * Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb]
2513 (unbounded multiway tree containers) and a-iteint.ads.
2514 * a-comutr.ads, a-comutr.adb:
2515 This is the new Ada 2012 unit for unbounded multiway tree containers
2516 * a-cimutr.ads, a-cimutr.adb
2517 This is the new Ada 2012 unit for indefinite multiway tree containers
2518 * a-iteint.ads: New file.
2519
201cdb74
RO
25202011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2521
f446d60e 2522 * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc.
201cdb74 2523
d50f4827
AC
25242011-08-05 Bob Duff <duff@adacore.com>
2525
2526 * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for
2527 subpools.
2528 * par-ch4.adb (P_Allocator): Parse new subpool specification syntax.
2529
25302011-08-05 Ed Schonberg <schonberg@adacore.com>
2531
2532 * sem_ch4.adb (Try_Container_Indexing): New procedure to implement the
2533 general indexing aspects of Ada2012. Called when analyzing indexed
2534 components when other interpretations fail.
2535 * sem_ch8.adb (Find_Direct_Name): check for implicit dereference only
2536 in an expression context where overloading is meaningful. This excludes
2537 the occurrence in an aspect specification (efficiency only).
2538 * sem_attr.adb (Analyze_Attribute): indicate that the attributes
2539 related to iterators can be set by an attribute specification, but
2540 cannot be queried.
2541 * sem_ch13.adb (Analyze_Aspect_Specifications): handle
2542 Constant_Indexing and Variable_Indexing.
2543 (Check_Indexing_Functions): New procedure to perform legality checks.
2544 Additional semantic checks at end of declarations.
2545
efe05dfc
AC
25462011-08-05 Sergey Rybin <rybin@adacore.com>
2547
2548 * tree_io.ads: Update ASIS_Version_Number because of the change of the
2549 order of calling Tree_Write/Tree_Read routines made for aspects.
2550
25512011-08-05 Bob Duff <duff@adacore.com>
2552
2553 * a-fihema.adb (Finalize): Fix race condition.
2554
5f9cdefe
AC
25552011-08-05 Yannick Moy <moy@adacore.com>
2556
2557 * sem_ch12.adb (Analyze_Package_Instantiation,
2558 Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
2559 mode.
2560
25612011-08-05 Ed Schonberg <schonberg@adacore.com>
2562
2563 * sem_type.adb (Specific_Type): in an instance, the type-specific
2564 operand of an equality check that involves null may have a private
2565 type. Use full view to determine legality of construct.
2566
822868aa
AC
25672011-08-05 Vincent Celier <celier@adacore.com>
2568
2569 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
2570 delete or close the file when the call to gnatmake was successful.
2571
25722011-08-05 Yannick Moy <moy@adacore.com>
2573
2574 * gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set
2575 Global_Discard_Names.
2576
25772011-08-05 Ed Schonberg <schonberg@adacore.com>
2578
2579 * sinfo.ads: comments on use of entity field for aspect specifications.
2580
25812011-08-05 Ed Schonberg <schonberg@adacore.com>
2582
2583 * sem_ch12.adb (Reset_Entity): If the entity field of the associated
2584 node is not itself an entity but a selected component, it is a
2585 rewritten parameterless call to an en enclosing synchronized operation,
2586 and this expansion will be performed again in the instance, so there is
2587 no global information to preserve.
2588
44a10091
AC
25892011-08-05 Javier Miranda <miranda@adacore.com>
2590
2591 * exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support
2592 for renamings of predefined primitives.
2593 (In_Predef_Prims_DT): New subprogram.
2594
25952011-08-05 Ed Schonberg <schonberg@adacore.com>
2596
2597 * sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a
2598 possible interpretation of name is a reference type, add an
2599 interpretation that is the designated type of the reference
2600 discriminant of that type.
2601 * sem_res.adb (resolve): If the interpretation imposed by context is an
2602 implicit dereference, rewrite the node as the deference of the
2603 reference discriminant.
2604 * sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,
2605 Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from
2606 parent type or base type.
2607 * sem_ch4.adb (Process_Indexed_Component,
2608 Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,
2609 Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):
2610 Check for implicit dereference.
2611 (List_Operand_Interps): Indicate when an implicit dereference is
2612 ambiguous.
2613 * sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.
2614
26152011-08-05 Thomas Quinot <quinot@adacore.com>
2616
2617 * scos.ads: Update documentation of SCO table. Pragma statements can now
2618 be marked as disabled (using 'p' instead of 'P' as the statement kind).
2619 * par_sco.ads, par_sco.adb: Implement the above change.
2620 (Process_Decisions_Defer): Generate a P decision for the first parameter
2621 of a dyadic pragma Debug.
2622 * sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if
2623 necessary.
2624 * put_scos.adb: Code simplification based on above change.
2625
bb3c784c
AC
26262011-08-05 Robert Dewar <dewar@adacore.com>
2627
2628 * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb,
2629 bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb,
2630 a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads,
2631 prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting
2632
26332011-08-05 Bob Duff <duff@adacore.com>
2634
2635 * a-stunau.ads, g-spipat.adb: Update comments.
2636
36f686f9
BD
26372011-08-05 Bob Duff <duff@adacore.com>
2638
2639 * a-fihema.ads: Minor comment fix.
2640 * a-fihema.adb (Allocate, Deallocate): Assert that the alignment is
2641 correct.
2642 (Attach, Detach): Remove some unnecessary code.
2643 (Finalize): Remove Node_Ptr_To_Address, replace with a constant.
2644
7882673f
BD
26452011-08-05 Bob Duff <duff@adacore.com>
2646
2647 * a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap
2648 allocation for Objects component. This simplifies the code somewhat. It
2649 is also a little more efficient in the not-so-unusual case where there
2650 are no controlled objects allocated.
2651 Make Finalization_Started flag atomic.
2652 (Finalize): Avoid unnecessary detachment of items from the list.
2653 (pcol): Minor cleanup.
2654
d34cd274
AC
26552011-08-05 Ed Schonberg <schonberg@adacore.com>
2656
2657 * sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal
2658 package whose name is the same as that of the generic unit, or its
2659 ultimate prefix.
2660
26612011-08-05 Bob Duff <duff@adacore.com>
2662
2663 * a-fihema.adb, a-fihema.ads: Minor comment improvements.
2664 * sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:
2665 Minor comment fixes.
2666
00332244
AC
26672011-08-05 Arnaud Charlet <charlet@adacore.com>
2668
2669 * make.adb (Linking_Phase): No longer need to set source search path
2670 before calling gnatlink in CodePeer mode.
2671 * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to
2672 gcc in CodePeer mode, since the binder generated file no longer has a
2673 'with Main'.
2674 * switch.ads, switch.adb (Is_Language_Switch): Removed.
2675 * switch-c.adb: Update comment.
2676
26772011-08-05 Thomas Quinot <quinot@adacore.com>
2678
2679 * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.
2680
26812011-08-05 Nicolas Roche <roche@adacore.com>
2682
2683 * gnat_ugn.texi: Fix minor syntax error issue.
2684
26852011-08-05 Vincent Celier <celier@adacore.com>
2686
2687 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
2688 delete or close the file when the call to gnatmake returns a non
2689 successful return code.
2690
26912011-08-05 Ed Schonberg <schonberg@adacore.com>
2692
2693 * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate
2694 check, indicate that the copy of the original node does not come from
2695 source, to prevent an infinite recursion of the expansion.
2696
26972011-08-05 Johannes Kanig <kanig@adacore.com>
2698
2699 * debug.adb: document switch -gnatd.G for gnat2why, which deactivates
2700 VC generation for subprogram bodies.
2701
27022011-08-05 Yannick Moy <moy@adacore.com>
2703
2704 * einfo.ads: Typo.
2705 * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define
2706 the base type with the smallest allowed base type.
2707
27082011-08-05 Sergey Rybin <rybin@adacore.com>
2709
2710 * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for
2711 aspects.
2712
27132011-08-05 Ed Schonberg <schonberg@adacore.com>
2714
2715 * sem_ch12.ads: minor comment updates.
2716
27172011-08-05 Ed Schonberg <schonberg@adacore.com>
2718
2719 * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an
2720 instantiation and a formal package the compiler generates a package
2721 renaming declaration so that the generic name within the declaration
2722 is interpreted as a renaming of the instance. At the end of a formal
2723 package declaration, this renaming must become invisible.
2724
0da80d7d
AC
27252011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
2726
2727 * exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character
2728 comparison and rely on concrete entities instead.
2729
27302011-08-05 Ed Schonberg <schonberg@adacore.com>
2731
2732 * einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types
2733 and discriminants, to indicate that the type has an access discriminant
2734 that supports implicit dereference.
2735 * snames.ads-tmpl: Add names of aspects and attributes related to
2736 Ada2012 iterators: constant_indexing, default_iterator,
2737 iterator_element, implicit_dereference, variable_indexing.
2738 * aspects.ads, aspects.adb: entries for iterator-related aspects.
2739 * sem_ch13.adb (Analyze_aspect_specifications): dummy entries for
2740 iterator-related aspects.
2741 * sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.
2742
27432011-08-05 Sergey Rybin <rybin@adacore.com>
2744
2745 * gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling
2746 metrics in gnatmetric to cover new kinds of coupling mentrics.
2747
27482011-08-05 Steve Baird <baird@adacore.com>
2749
2750 * bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead
2c7f9cc0 2751 of calling the user-defined main subprogram.
0da80d7d
AC
2752 (Gen_Main): Declare Ada_Main_Program and (if CodePeer_Mode
2753 is set) Call_Main_Subprogram ahead of, as opposed to
2754 inside of, Main.
2755 (Gen_Output_File_Ada): Remove CodePeer_Mode-conditional
2756 generation of a "with" of the user-defined main subprogram.
2757 Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper
2758 (which is now called from Gen_Main instead).
2759
73242473
AC
27602011-08-05 Emmanuel Briot <briot@adacore.com>
2761
2762 * projects.texi: Added reference to the Makefile package.
2763
27642011-08-05 Thomas Quinot <quinot@adacore.com>
2765
2766 * exp_ch7.adb: Minor comment rewording.
2767
27682011-08-05 Ed Falis <falis@adacore.com>
2769
2770 * env.c: Fix comment.
2771
27722011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
2773
2774 * sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid
2775 character comparison and rely on concrete entities instead.
2776
97ed5872
AC
27772011-08-05 Ed Schonberg <schonberg@adacore.com>
2778
2779 * sem_ch3.adb: (Check_Private_Overriding): better error message,
2780 suggested by AI95-0068.
2781
27822011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
2783
2784 * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve
2785 the two potential initialization calls. This accounts for any
2786 access-before-elaboration checks which may precede the initialization
2787 calls.
2788 (Next_Suitable_Statement): New routine. Returns the next real statement
2789 after the input node while skipping generated checks.
2790 * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along
2791 with comment on usage.
2792 Do not generate Elaborate_All when the trigger is a finalization call
2793 coming from a type init proc.
2794 (Check_Elab_Call): Propagate the initialization procedure context to
2795 subsequent calls to Check_A_Call.
2796 (Check_Internal_Call_Continue): Propagate the initialization procedure
2797 context to subsequent calls to Check_Elab_Call.
2798 (Is_Finalization_Procedure): New routine. Returns True if the input
2799 entity denotes a [Deep_]Finalize routine.
2800 * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc
2801 along with comment on usage.
2802
28032011-08-05 Vadim Godunko <godunko@adacore.com>
2804
2805 * s-atocou.ads: Add list of supported platforms.
2806
28072011-08-05 Yannick Moy <moy@adacore.com>
2808
2809 * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables
2810
2811 * opt.ads (Disable_ALI_File): new Boolean flag
2812 * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing
2813
28142011-08-05 Ed Falis <falis@adacore.com>
2815
2816 * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that
2817 environ is properly defined.
2818
28192011-08-05 Vincent Celier <celier@adacore.com>
2820
2821 * make.adb (Compilation_Phase): Exit immediately when all objects have
2822 been found up to date, to avoid multiple exit messages.
2823 * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the
2824 same project for languages with no compiler.
2825 * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch
2826 -eI.
9aff36e9
RD
28272011-08-05 Robert Dewar <dewar@adacore.com>
2828
2829 * exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb,
2830 sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb,
2831 prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb,
2832 s-atocou-builtin.adb: Minor reformatting.
2833
406935b6
AC
28342011-08-05 Yannick Moy <moy@adacore.com>
2835
2836 * exp_ch7.adb (Establish_Transient_Scope): in formal verification mode,
2837 if the node to wrap is a pragma check, this node and enclosed
2838 expression are not expanded, so do not apply any transformations here.
2839 * exp_prag.adb (Expand_Pragma_Check): document the need to avoid
2840 introducing transient scopes.
2841
28422011-08-05 Jose Ruiz <ruiz@adacore.com>
2843
2844 * adaint.c (__gnat_set_writable, __gnat_set_readable,
2845 __gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable,
2846 __gnat_copy_attribs): On VxWorks 6.x and later, the required chmod
2847 routine is available, so we use the default implementation of these
2848 functions.
2849 * s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is
2850 support for copying attributes on VxWorks 6.
2851
28522011-08-05 Yannick Moy <moy@adacore.com>
2853
2854 * debug.adb: Remove use of -gnatd.D.
2855 * gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode
2856 * opt.ads: Simplify variables for ALFA mode, to keep one only
2857 * restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode
2858 to ALFA mode.
2859
28602011-08-05 Vincent Celier <celier@adacore.com>
2861
2862 * prj-conf.adb (Do_Autoconf): Look also for --RTS in
2863 Builder'Default_Switches.
2864
28652011-08-05 Vincent Celier <celier@adacore.com>
2866
2867 * makeusg.adb: Add lines for --create-map-file switches.
2868
28692011-08-05 Ed Schonberg <schonberg@adacore.com>
2870
2871 * freeze.adb (Freeze_Entity): For a subprogram, if a type in the
2872 profile is incomplete and the full view is available, replace it with
2873 the full view.
2874 * sem_ch6.adb (Possible_Freeze): if a type in the profile is
2875 incomplete, freezing the subprogram is delayed until the full view is
2876 frozen.
2877 * sem_type.adb (Disambiguate): an ambiguity between a user-defined
2878 fixed-point multiplication operator and the predefined operator is
2879 resolved in favor of the user-defined one.
2880
96c891b3
RO
28812011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2882
2883 * init.c [__alpha__ && __osf__] (__gnat_error_handler): Use
2884 CONST_CAST.
2885
276e7ed0
AC
28862011-08-04 Ed Schonberg <schonberg@adacore.com>
2887
2888 * sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine
2889 whether a type lacks user-defined Read or Write operations, or has a
2890 component that lacks them.
2891 * sem_attr.adb (Check_Stream_Attribute): if restriction
2892 No_Default_Stream_Attributes is active, verify that all subcomponent
2893 types of the target have user-defined stream operations, and report
2894 error otherwise.
2895 * exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation.
2896 * exp_strm.adb: Build_Elementary_Input_Call,
2897 Build_Elementary_Write_Call): remove checks for restriction
2898 No_Default_Stream_Attributes, now checked in semantics.
2899
29002011-08-04 Vincent Celier <celier@adacore.com>
2901
2902 * prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS
2903 switches on the command line, look for all valid --RTS switches in the
2904 Builder switches and for each language use the first runtime name found
2905 to invoke gprconfig.
2906 (Get_Or_Create_Configuration_File): Warn if --RTS is specified on the
2907 command line and there is no auto-configuration.
2908 (Runtime_Name_Set_For): New function.
2909
29102011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2911
2912 * exp_ch7.adb (Build_Object_Declarations): Do not generate the
2913 elaborate initialization expression for variable Abort when processing
2914 a package body or a declaration.
2915 (Create_Finalizer): Propagate the package context when creating the
2916 exception-related variables.
2917 * exp_ch7.ads (Build_Object_Declarations): New formal parameter
2918 For_Package along with usage comment.
2919
19172ae9
AC
29202011-08-04 Arnaud Charlet <charlet@adacore.com>
2921
2922 * gcc-interface/Makefile.in: Clean up targets.
2923 Enable new package for atomic counters and copy-on-write implementation
2924 of unbounded strings on x86 platforms.
2925 * gcc-interface/Make-lang.in: Update dependencies.
2926
0319cacc
AC
29272011-08-04 Robert Dewar <dewar@adacore.com>
2928
2929 * exp_ch7.adb: Minor reformatting.
2930
29312011-08-04 Robert Dewar <dewar@adacore.com>
2932
2933 * exp_strm.adb: Minor reformatting.
2934
29352011-08-04 Vadim Godunko <godunko@adacore.com>
2936
2937 * s-atocou.adb: Replace by dummy version and use on targets where atomic
2938 operations are not supported.
2939 * s-atocou-builtin.adb: Renamed from s-atocou.adb.
2940 * s-atocou-x86.adb: New file.
2941 * Makefile.rtl: Add s-atocou.o file
2942
29432011-08-04 Arnaud Charlet <charlet@adacore.com>
2944
2945 * make.adb (Compile): Move setting of CodePeer_Mode to ...
2946 (Compilation_Phase): ... here.
2947 (Scan_Make_Arg): Now bind and link by default in CodePeer mode.
2948
29492011-08-04 Thomas Quinot <quinot@adacore.com>
2950
2951 * Make-generated.in: Fix minor typo in comment.
2952
26e7e1a0
AC
29532011-08-04 Thomas Quinot <quinot@adacore.com>
2954
2955 * gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve
2956 the project path.
2957
29582011-08-04 Robert Dewar <dewar@adacore.com>
2959
2960 * a-coinho.adb: Minor reformatting.
2961
29622011-08-04 Robert Dewar <dewar@adacore.com>
2963
2964 * a-coinho.ads: Minor reformatting.
2965
29662011-08-04 Vadim Godunko <godunko@adacore.com>
2967
2968 * s-atocou.ads, s-atocou.adb: New files.
2969 * a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads,
2970 a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove
2971 direct use of GCC's atomic builtins and replace them by use of new
2972 atomic counter package.
2973
29742011-08-04 Ed Schonberg <schonberg@adacore.com>
2975
2976 * exp_strm.adb: better error message for No_Default_Stream_Attributes.
2977
29782011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
2979
2980 * a-tags.adb (Unregister_Tag): Replace the complex address arithmetic
2981 with a call to Get_External_Tag.
2982 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on
2983 subprogram usage. Remove the guard against package declarations and
2984 bodies since Build_Cleanup_Statements is no longer invoked in that
2985 context.
2986 (Build_Components): Initialize Tagged_Type_Stmts when the context
2987 contains at least one library-level tagged type.
2988 (Build_Finalizer): New local variables Has_Tagged_Types and
2989 Tagged_Type_Stmts along with associated comments on usage. Update the
2990 logic to include tagged type processing.
2991 (Create_Finalizer): Insert all library-level tagged type unregistration
2992 code before the jump block circuitry.
2993 (Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements.
2994 (Expand_N_Package_Declaration): Remove the call to
2995 Build_Cleanup_Statements.
2996 (Process_Tagged_Type_Declaration): New routine. Generate a call to
2997 unregister the external tag of a tagged type.
2998 (Processing_Actions): Reimplemented to handle tagged types.
2999 (Process_Declarations): Detect the declaration of a library-level
3000 tagged type and carry out the appropriate actions.
3001 (Unregister_Tagged_Types): Removed. The machinery has been directly
3002 merged with Build_Finalizer.
3003
7483c888
AC
30042011-08-04 Robert Dewar <dewar@adacore.com>
3005
3006 * bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb,
3007 gnatls.adb, exp_ch3.adb: Minor reformatting.
3008
30092011-08-04 Marc Sango <sango@adacore.com>
3010
3011 * sem_attr.adb (Analyze_Attribute): Replace the message
3012 "invisible attribute of}" of the spark restriction violation in
3013 attribute reference by the simple message "invisible attribute of type".
3014 Indeed, the node value Error_Msg_Node_1 used is in conflit with the
3015 two insertion characters: '&' and '}'.
3016
30172011-08-04 Vadim Godunko <godunko@adacore.com>
3018
3019 * impunit.adb (Non_Imp_File_Names_12): Add "a-coinho".
3020 * a-coinho.ads, a-coinho.adb: New file.
3021 * Makefile.rtl: Add Ada.Containers.Indefinite_Holders.
3022
5207696c
AC
30232011-08-04 Nicolas Roche <roche@adacore.com>
3024
3025 * alfa_test.adb: Not all ali files are containing alfa information even
3026 if compiled with -gnatd.F. So suppress warning about missing ALFA
3027 information.
3028
30292011-08-04 Yannick Moy <moy@adacore.com>
3030
3031 * lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for
3032 scope.
3033 * put_alfa.adb: Check that scope name is not empty.
3034
30352011-08-04 Ed Schonberg <schonberg@adacore.com>
3036
3037 * exp_ch3.adb (Stream_Operation_Ok): new predicate
3038 Needs_Elementary_Stream_Operation, to determine whether user-defined
3039 Read and Write attributes are available for the elementary components
3040 of the given type. If only the predefined attributes are available,
3041 then when restriction No_Default_Stream_Attributes is active the
3042 predefined stream attributes for the composite type cannot be created.
3043
30442011-08-04 Robert Dewar <dewar@adacore.com>
3045
3046 * bindgen.adb: Fix obsolete comments and names from Ada/C days.
3047 Put routines in alpha order
3048
2bd2d858
JR
30492011-08-04 Jose Ruiz <ruiz@adacore.com>
3050
3051 * gcc-interface/Makefile.in: Remove xenomai specific versions of system.
3052 * gcc-interface/Make-lang.in: Update dependencies.
3053
8fae6016
AC
30542011-08-04 Arnaud Charlet <charlet@adacore.com>
3055
3056 * gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada.
3057 * gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls
3058 gnat1why).
3059
a54d0eb4
AC
30602011-08-04 Robert Dewar <dewar@adacore.com>
3061
3062 * sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb,
3063 lib-xref-alfa.adb: Minor reformatting.
3064
30652011-08-04 Marc Sango <sango@adacore.com>
3066
3067 * sem_ch12.adb (Analyze_Generic_Package_Declaration,
3068 Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,
3069 Analyze_Subprogram_Instantiation): Check absence of generic in SPARK
3070 mode.
3071
30722011-08-04 Tristan Gingold <gingold@adacore.com>
3073
3074 * bindgen.adb (Gen_Adainit_C): Remove.
3075 (Gen_Adafinal_C): Ditto.
3076 (Gen_Elab_Externals_C): Ditto.
3077 (Gen_Elab_Calls_C): Ditto.
3078 (Gen_Elab_Order_C): Ditto.
3079 (Gen_Elab_Defs_C): Ditto.
3080 (Gen_Finalize_Library_C): Ditto.
3081 (Gen_Finalize_Library_Defs_C): Ditto.
3082 (Gen_Main_C): Ditto.
3083 (Gen_Output_File_C): Ditto.
3084 (Gen_Restrictions_C): Ditto.
3085 (Gen_Versions_C): Ditto.
3086 (Write_Info_Ada_C): Ditto.
3087 (Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C
3088 (Gen_Output_File): Do not force Ada_Bind_File anymore.
3089 Always call Gen_Output_File_Ada.
3090 * gnatlink.adb (Begin_Info): Now a constant.
3091 (End_Info): Ditto.
3092 (Ada_Bind_File): Remove
3093 (Process_Args): Do not handle -A/-C. Remove not Ada_Bind_File cases.
3094 * switch-b.adb (Scan_Binder_Switches): Do not handle -C.
3095 * gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases.
3096 * opt.ads (Ada_Bind_File): Remove.
3097
30982011-08-04 Thomas Quinot <quinot@adacore.com>
3099
3100 * projects.texi: Document target-specific directory in default project
3101 path for gnatmake.
3102
31032011-08-04 Thomas Quinot <quinot@adacore.com>
3104
3105 * gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project
3106 path in all cases .
3107
24558db8
AC
31082011-08-04 Yannick Moy <moy@adacore.com>
3109
3110 * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
3111 opt.ads, lib-xref.ads: Code clean up.
3112
31132011-08-04 Yannick Moy <moy@adacore.com>
3114
3115 * gnat_rm.texi: Update description of Test_Case
3116 * gnat_ugn.texi: Typo.
3117
31182011-08-04 Ed Falis <falis@adacore.com>
3119
3120 * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.
3121
31222011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3123
3124 * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
3125 it is of type Root_Controlled. This action eliminates fields Prev and
3126 Next from type equality.
3127
31282011-08-04 Yannick Moy <moy@adacore.com>
3129
3130 * lib-xref-alfa.adb: Correct typo.
3131
31322011-08-04 Matthew Heaney <heaney@adacore.com>
3133
3134 * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
3135 component.
3136
1f9939b5
AC
31372011-08-04 Yannick Moy <moy@adacore.com>
3138
3139 * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure
3140 (Analyze_Pragma): allow static string expression for name of Test_Case,
3141 instead of simply string literals.
3142 * sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string
3143 expressions.
3144
31452011-08-04 Vincent Celier <celier@adacore.com>
3146
3147 * makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical
3148 case suffixes to find truncated main sources.
3149
31502011-08-04 Tristan Gingold <gingold@adacore.com>
3151
3152 * impunit.adb (Non_Imp_File_Names_95): Add g-tastus.
3153 s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put.
3154 (Compute_Current_Task): Ditto.
3155
31562011-08-04 Tristan Gingold <gingold@adacore.com>
3157
3158 * gnat_ugn.texi: Mention GNAT.Task_Stack_Usage.
3159
31602011-08-04 Yannick Moy <moy@adacore.com>
3161
3162 * lib-xref-alfa.adb (Is_Global_Constant): new function that detects
3163 library-level constant.
3164 (Add_ALFA_Xrefs): ignore global constants in ALFA xref.
3165 * sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal
3166 used as selector of parameter association, in ALFA mode.
3167
15d8a51d
AC
31682011-08-04 Robert Dewar <dewar@adacore.com>
3169
3170 * exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb,
3171 s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor
3172 reformatting.
3173
31742011-08-04 Arnaud Charlet <charlet@adacore.com>
3175
3176 * make.adb (Linking_Phase): Set source search path before calling
3177 gnatlink in CodePeer mode.
3178
f46faa08
AC
31792011-08-04 Javier Miranda <miranda@adacore.com>
3180
3181 * exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration):
3182 Remove code which takes care of building TSDs.
3183 * rtsfind.ads (RE_Check_Interface_Conversion): New entity.
3184 * exp_ch4.adb (Apply_Accessibility_Check): Add support for generating
3185 the accessibility check in VM targets.
3186 * exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads
3187 (Building_Static_DT): Now returns false for VM targets.
3188 (Build_VM_TSDs): Removed.
3189 (Expand_Interface_Conversion): Generate missing runtime check for
3190 conversions to interface types whose target type is unknown at compile
3191 time.
3192 (Make_VM_TSD): Add missing code to disable the generation of calls to
3193 Check_TSD if the tagged type is not defined at library level, or not
3194 has a representation clause specifying its external tag, or -gnatdQ is
3195 active.
3196 * exp_disp.ads (Build_VM_TSDs): Removed.
3197 (Make_VM_TSDs): Spec relocated from exp_disp.adb
3198 * sem_disp.adb (Check_Dispatching_Operation): No code required to
3199 register primitives in the dispatch tables in VM targets.
3200 * exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of
3201 initialization of class-wide interface objects in VM targets.
3202 (Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead
3203 of Make_DT).
3204
32052011-08-04 Jerome Lambourg <lambourg@adacore.com>
3206
3207 * gnatlink.adb (Gnatlink): Correct missleading error message displayed
3208 when dotnet-ld cannot be found.
3209
32102011-08-04 Arnaud Charlet <charlet@adacore.com>
3211
3212 * bindgen.adb: Simplify significantly generation of binder body file in
3213 CodePeer mode.
3214 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure
3215 when compiling binder generated file in CodePeer mode (xxx'Elab_Spec
3216 not expanded).
3217
2ba7e31e
AC
32182011-08-04 Yannick Moy <moy@adacore.com>
3219
3220 * sem_prag.adb, sem.ads: Code cleanup.
3221
32222011-08-04 Tristan Gingold <gingold@adacore.com>
3223
3224 * s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part.
3225 * s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate
3226 results if possible.
3227 * s-stusta.adb (Print): Adjust after changes in s-stausa.
3228 * gnat_ugn.texi: Update dynamic stack usage section.
3229
32302011-08-04 Steve Baird <baird@adacore.com>
3231
3232 * bindgen.adb (Gen_CodePeer_Wrapper): new procedure.
3233 Generate (if CodePeer_Mode is set) a "wrapper" subprogram which
3234 contains only a call to the user-defined main subprogram.
3235 (Gen_Main_Ada) - If CodePeer_Mode is set, then
3236 call the "wrapper" subprogram instead of directly
3237 calling the user-defined main subprogram.
3238
32392011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3240
3241 * exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all
3242 alternatives of a case statement for controlled objects. Rename local
3243 variable A to Dead_Alt.
3244 (Expand_N_If_Statement): Check the then and else statements of an if
3245 statement for controlled objects. Check the then statements of all
3246 elsif parts of an if statement for controlled objects.
3247 (Expand_N_Loop_Statement): Check the statements of a loop for controlled
3248 objects.
3249 * exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which
3250 detects a loop associated with the expansion of an array object.
3251 Augment the processing of the loop statements to account for a possible
3252 wrap done by Process_Statements_For_Controlled_Objects.
3253 * exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering
3254 statements and abortable part of an asynchronous select for controlled
3255 objects.
3256 (Expand_N_Conditional_Entry_Call): Check the else statements of a
3257 conditional entry call for controlled objects.
3258 (Expand_N_Selective_Accept): Check the alternatives of a selective
3259 accept for controlled objects.
3260 (Expand_N_Timed_Entry_Call): Check the entry call and delay
3261 alternatives of a timed entry call for controlled objects.
3262 * exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an
3263 exception handler for controlled objects.
3264 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
3265 Add formal parameter Nested_Constructs along with its associated
3266 comment.
3267 (Requires_Cleanup_Actions (Node_Id)): Update all calls to
3268 Requires_Cleanup_Actions.
3269 (Process_Statements_For_Controlled_Objects): New routine.
3270 * exp_util.ads (Process_Statements_For_Controlled_Objects): New
3271 routine. Inspect a node which contains a non-handled sequence of
3272 statements for controlled objects. If such an object is found, the
3273 statements are wrapped in a block.
3274
1bf773bb
AC
32752011-08-04 Bob Duff <duff@adacore.com>
3276
3277 * sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we
3278 need to compare with Class_Wide_Type (T2), in order to get at the
3279 original class-wide type node.
3280 * sem_type.ads (Covers): Improve the comment.
3281 * einfo.ads (Class_Wide_Type): Improve the comment.
3282 * exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of
3283 the type of the Deref.
3284
32852011-08-04 Yannick Moy <moy@adacore.com>
3286
3287 * gnat_rm.texi: Document that Test_Case pragma can only appear on
3288 separate declarations.
3289 * sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to
3290 check identifier of pragma argument.
3291 (Chain_TC): check that no other test case associated to the same entity
3292 share the same name.
3293 (Check_Test_Case): disallow test case inside subprogram body
3294 (Analyze_Pragma): correct call to check identifier and not argument
3295 * sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new
3296 function gets name from test case pragma.
3297
dac3bede
YM
32982011-08-04 Yannick Moy <moy@adacore.com>
3299
3300 * gnat_rm.texi: Document new pragma and aspect.
3301 * aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case
3302 (No_Duplicates_Allowed): new constant array defining whether duplicates
3303 aspects of each kind can appear on the same declaration.
3304 * einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract
3305 field, which points to a node holding the previous Spec_PPC_List.
3306 * exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List
3307 through the indirection with Contract.
3308 * exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node
3309 * par-prag.adb (Prag): do nothing on Test_Case pragma
3310 * sem.adb (Analyze): abort on N_Contract, on which Analyze should not
3311 be called directly.
3312 * sem_attr.adb (Analyze_Attribute): allow attribute 'Result in
3313 component Ensures of Test_Case.
3314 * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb
3315 (Analyze_Generic_Subprogram_Declaration,
3316 Analyze_Subprogram_Instantiation,
3317 Analyze_Abstract_Subprogram_Declaration,
3318 Analyze_Subprogram_Body_Helper,
3319 Analyze_Subprogram_Specification, Analyze_Entry_Declaration):
3320 insert contract in subprogram node at point of definition
3321 * sem_ch13.adb
3322 (Aspect_Loop): do not raise error on duplicate Test_Case aspect
3323 (Analyze_Aspect_Specifications): analyze Test_Case aspect and create
3324 corresponding pragma
3325 (Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect
3326 * sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases,
3327 similar to the analysis of pre/post
3328 (Derive_Subprogram): insert contract in subprogram node at point of
3329 derivation.
3330 * sem_prag.adb, sem_prag.ads
3331 (Check_Arg_Is_String_Literal, Check_Identifier):
3332 new checking procedures to be called in treatment of pragmas
3333 (Check_Test_Case): new procedure to check that a Test_Case aspect or
3334 pragma is well-formed. This does not check currently that 'Result is
3335 used only in the Ensures component of a Test_Case.
3336 (Analyze_Pragma): add case for Test_Case
3337 (Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures
3338 components of a Test_Case.
3339 (Preanalyze_TC_Args): new procedure to preanalyze the boolean
3340 expressions in the 3rd (and 4th if present) arguments of a Test_Case
3341 pragma, treated as spec expressions.
3342 (Sig_Flags): add value -1 for Test_Case.
3343 * sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma,
3344 Get_Requires_From_Test_Case_Pragma): getters for both expression
3345 components of a Test_Case.
3346 * sinfo.adb, sinfo.ads (N_Contract): new kind of node used as
3347 indirection between an entry or [generic] subprogram entity and its
3348 pre/post + test-cases.
3349 (Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List):
3350 get/set for fields of an N_Contract node.
3351 * snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode,
3352 Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new
3353 names and pragma for Test_Case.
3354 * sprint.adb (Sprint_Node): raise Program_Error on N_Contract node
3355
6a2e5d0f
AC
33562011-08-04 Vincent Celier <celier@adacore.com>
3357
3358 * gnat_ugn.texi: Improve documentation of gnatmake switch
3359 --source-info-file=.
3360
33612011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3362
3363 * exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion
3364 type). Initialize Atyp to the appropriate type which is later checked
3365 for completion. Rewrite the assertion associated with private type
3366 completion.
3367
33682011-08-04 Ed Falis <falis@adacore.com>
3369
3370 * adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to
3371 initialize the number of CPUs.
3372
33732011-08-04 Ed Schonberg <schonberg@adacore.com>
3374
3375 * sem_type.adb (Disambiguate): New subsidiary routine
3376 In_Same_Declaration_List, to implement AI05-0020: a user-defined
3377 equality on an anonymous access type whose designated type is private
3378 does not lead to an ambiguity with the universal access equality
3379 operator in the body or child units of the defining package. The same
3380 is true for a multiplication operator on a private type completed with
3381 a fixed-point-type.
3382
33832011-08-04 Javier Miranda <miranda@adacore.com>
3384
3385 * opt.ads (Init_Or_Norm_Scalars_Config): Removed.
3386 (Normalize_Scalars_Config): Removed.
3387 * opt.adb
3388 (Register_Opt_Config_Switches): Remove registering config values of
3389 Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config.
3390 (Restore_Opt_Config_Switches): Remove code which restores the values of
3391 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
3392 Init_Or_Norm_Scalars.
3393 (Save_Opt_Config_Switches): Remove code which saves values of
3394 Init_Or_Norm_Scalars and Normalize_Scalars.
3395 (Set_Opt_Config_Switches): Remove code which restores config values of
3396 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
3397 Init_Or_Norm_Scalars.
3398
33992011-08-04 Yannick Moy <moy@adacore.com>
3400
3401 * frontend.adb (Frontend): remove previous patch to avoid full
3402 qualification in ALFA mode.
3403 * lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables.
3404 * sem_util.adb, sem_util.ads (Unique_Name): new function to define a
3405 unique name for an entity, which could be used to identify the entity
3406 across compilation units.
3407
34082011-08-04 Thomas Quinot <quinot@adacore.com>
3409
3410 * prj-env.adb
3411 (Initialize_Default_Project_Path): Add target specific directory
3412 ($prefix/$target/lib/gnat) in front of project path in all cases
3413 (making gnatmake's behaviour consistent with gprbuild).
3414 * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb:
3415 Pass target name from Sdefault to project subsystem.
3416 * gnatls.adb: Show new target specific default project directory.
3417
34182011-08-04 Johannes Kanig <kanig@adacore.com>
3419
3420 * cstand.adb: Add Information to Identifier in Standard
3421 (Identifer_For): Set Entity to the corresponding entity
3422
483361a6
AC
34232011-08-04 Sergey Rybin <rybin@adacore.com>
3424
3425 * gnat_ugn.texi: Update doc on gnatcheck.
3426
34272011-08-04 Yannick Moy <moy@adacore.com>
3428
3429 * lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of
3430 xrefs in a scope.
3431
34322011-08-04 Yannick Moy <moy@adacore.com>
3433
3434 * exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without
3435 performing expansion.
3436 * sem_ch6.adb (Analyze_Subprogram_Body_Helper,
3437 Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that
3438 it is not called in ALFA mode.
3439
ef5569c6
AC
34402011-08-04 Emmanuel Briot <briot@adacore.com>
3441
3442 * make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used
3443 after all, so removed.
3444
34452011-08-04 Sergey Rybin <rybin@adacore.com>
3446
3447 * vms_data.ads: Add missing VMS qualifiers.
3448
1ab4a286
EB
34492011-08-04 Emmanuel Briot <briot@adacore.com>
3450
3451 * make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild
3452 the list of files on the command line after processing it through
3453 Complete_Mains.
3454
7ae0d98c
AC
34552011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3456
3457 * exp_ch7.adb (Build_Raise_Statement): Remove the specialized
3458 processing for .NET/JVM. These targets can now benefit from
3459 Raise_From_Controlled_Operation and they share the same processing with
3460 standard targets.
3461 (Establish_Transient_Scope): Remove the restriction for .NET/JVM.
3462 These targets need transient scopes in order to properly finalize short
3463 lived controlled objects.
3464 (Make_Handler_For_Ctrl_Operation): Remove the specialized processing for
3465 NET/JVM. These targets can now benefit from
3466 Raise_From_Controlled_Operation and they share the same processing with
3467 standard targets.
3468
34692011-08-04 Geert Bosch <bosch@adacore.com>
3470
3471 * tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack
3472
34732011-08-04 Ed Schonberg <schonberg@adacore.com>
3474
3475 * exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to
3476 Expand_Record_Aggregate, to determine whether aggregate must be
3477 expanded into assignments. This is the case if the ancestor part is
3478 private, regarless of the setting of the flag Has_Private_Ancestor.
3479
34802011-08-04 Ed Falis <falis@adacore.com>
3481
3482 * vxaddr2line.adb: Add support for e500v2 and for Linux hosts
3483
34842011-08-04 Bob Duff <duff@adacore.com>
3485
3486 * sinfo.ads: Fix comment.
3487
34882011-08-04 Steve Baird <baird@adacore.com>
3489
3490 * bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then
3491 choose a package name in much the same way as is
3492 done for JGNAT when VM_Target /= No_VM, except that
3493 a slightly more distinctive prefix string is used.
3494
34952011-08-04 Emmanuel Briot <briot@adacore.com>
3496
3497 * makeutl.adb (Complete_Mains): no longer accept unit names on the
3498 gnatmake command line.
3499 This behavior was never documented (and was supported only because of
3500 an early bug in the code). This case might lead to ambiguous cases
3501 (between unit names and truncated base names without suffixes).
3502
87729e5a
AC
35032011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3504
3505 * a-tags.ads, a-tags.adb (Unregister_Tag): New routine.
3506 Remove the external tag of a tagged type from the internal hash table.
3507 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the
3508 expanded usage of the routine. Strenghten the check for Is_Master. Add
3509 processing for tagged types.
3510 (Build_Finalizer): Create all the necessary lists used in finalizer
3511 creation when the processed context is a package that may contain
3512 tagged types.
3513 (Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to
3514 Requires_Cleanup_Actions.
3515 (Expand_N_Package_Body): Package bodies may need clean up code
3516 depending on whether they contain tagged types.
3517 (Expand_N_Package_Declaration): Package declarations may need clean up
3518 code depending on whether they contain tagged types.
3519 (Unregister_Tagged_Types): New routine. Search through a list of
3520 declarations or statements, looking for non-abstract Ada tagged types.
3521 For each such type, generate code to unregister the external tag.
3522 * exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to
3523 Requires_Cleanup_Actions.
3524 (Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search
3525 through a list of declarations or statements looking for non-abstract
3526 Ada tagged types or controlled objects.
3527 * exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to
3528 Requires_Cleanup_Actions.
3529 (Has_Controlled_Objects (List_Id, Boolean)): Removed.
3530 * rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and
3531 RE_Unit_Table.
3532
35332011-08-04 Vincent Celier <celier@adacore.com>
3534
3535 * prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj
3536 has Ada sources, not project Project, because if the root project
3537 Project has no sources of its own, all projects will be deemed without
3538 sources.
3539
35402011-08-04 Gary Dismukes <dismukes@adacore.com>
3541
3542 * bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration
3543 of the No_Param_Proc acc-to-subp type used for initialization of
3544 __gnat_finalize_library_objects so that it's declared at library level
3545 rather than nested inside of the adainit routine.
3546
35472011-08-04 Javier Miranda <miranda@adacore.com>
3548
3549 * exp_disp.adb (Make_DT): Generate code to check the external tag ONLY
3550 if the tagged type has a representation clause which specifies its
3551 external tag.
3552
35532011-08-04 Ed Schonberg <schonberg@adacore.com>
3554
3555 * einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types.
3556 Remove previous procedure with that name.
3557 * sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor
3558 when appropriate.
3559 * sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a
3560 subtype mark, the ancestor cannot have unknown discriminants.
3561 (Resolve_Record_Aggregate): if the type has invisible components
3562 because of a private ancestor, the aggregate is illegal.
3563
35642011-08-04 Vincent Celier <celier@adacore.com>
3565
3566 * switch-m.adb (Normalize_Compiler_Switches): Recognize and take into
3567 account switches -gnat2005, -gnat12 and -gnat2012.
3568
35692011-08-04 Bob Duff <duff@adacore.com>
3570
3571 * s-tasdeb.ads: Minor comment fix.
3572
35732011-08-04 Arnaud Charlet <charlet@adacore.com>
3574
3575 * gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in
3576 CodePeer mode.
3577 * switch.ads, switch.adb (Is_Language_Switch): New function.
3578
35792011-08-04 Vincent Celier <celier@adacore.com>
3580
3581 * switch-c.adb: Minor comment addition.
3582
35832011-08-04 Vincent Celier <celier@adacore.com>
3584
3585 * vms_conv.adb (Process_Argument): Fail graciously when qualifier
3586 ending with '=' is followed by a space (missing file name).
3587
35882011-08-04 Pascal Obry <obry@adacore.com>
3589
3590 * g-regist.ads: Fix size of HKEY on x86_64-windows.
3591
35922011-08-04 Ed Schonberg <schonberg@adacore.com>
3593
3594 * sem_ch12.adb (Analyze_Associations): New routine
3595 Check_Overloaded_Formal_Subprogram to reject a formal package when
3596 there is a named association or a box initialisation for an overloaded
3597 formal subprogram of the corresponding generic.
3598
35992011-08-04 Yannick Moy <moy@adacore.com>
3600
3601 * alfa.ads (ALFA_Xref_Record): add component for type of entity
3602 * get_alfa.adb, put_alfa.adb: Read and write new component of
3603 cross-reference.
3604 * lib-xref-alfa.adb (Collect_ALFA): generate new component.
3605
88f47280
AC
36062011-08-04 Pascal Obry <obry@adacore.com>
3607
3608 * urealp.adb: Minor reformatting.
3609
36102011-08-04 Tristan Gingold <gingold@adacore.com>
3611
3612 * exp_ch7.adb (build_finalizer.process_declarations.processing_actions):
3613 Handle the case when Cleanup_Protected_Object returns Empty.
3614
36152011-08-04 Yannick Moy <moy@adacore.com>
3616
3617 * frontend.adb (Frontend): only qualify names in non-ALFA mode
3618
36192011-08-04 Ed Schonberg <schonberg@adacore.com>
3620
3621 * sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure
3622 call, ignore functions.
3623
05c53a69
GB
36242011-08-04 Geert Bosch <bosch@adacore.com>
3625
3626 * urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating
3627 point.
3628
23cc1ace
EB
36292011-08-04 Emmanuel Briot <briot@adacore.com>
3630
3631 * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name
3632 as an index for Builder'Switches. This conforms to the documentation.
3633 * make.adb (Insert_Project_Sources): avoid duplicate code
3634
cef14201
AC
36352011-08-04 Emmanuel Briot <briot@adacore.com>
3636
3637 * makeutl.adb (Complete_Mains): if the user has passed a relative file
3638 name on the command line (for instance "../dummy"), never assume it can
3639 be a unit name.
3640
36412011-08-04 Tristan Gingold <gingold@adacore.com>
3642
3643 * bindgen.adb: Remove code the reference or create the
3644 Break_Start/__gnat_break_start procedure.
3645 * s-stalib.adb (Break_Start): Removed.
3646
e2fee30d
EB
36472011-08-04 Emmanuel Briot <briot@adacore.com>
3648
3649 * make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now
3650 shared with gprbuild.
3651
2d395256
AC
36522011-08-04 Yannick Moy <moy@adacore.com>
3653
3654 * par-ch4.adb (P_Primary): preferentially issue an error message about
3655 a missing parenthesis arount a conditional or case expression in Ada
3656 2012 mode, if we detect that the alignment is not correct for a
3657 statement.
3658
36592011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3660
3661 * exp_ch7.adb (Process_Declarations): Do not consider the result of a
3662 tag-to-class-wide conversion as needing finalization actions.
3663 * exp_util.adb (Has_Controlled_Objects): Do not consider the result of
3664 a tag-to-class-wide conversion as needing finalization actions.
3665 (Is_Finalizable_Transient): The result of a tag-to-class-wide
3666 conversion does not need finalization actions.
3667 (Is_Tag_To_CW_Conversion): New routine.
3668 * exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines
3669 whether an object is the result of a tag-to-class-wide conversion.
3670
36712011-08-04 Yannick Moy <moy@adacore.com>
3672
3673 * sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which
3674 the left-hand-side and right-hand-side of a conjunct are inserted when
3675 translating a pre- or postcondition
3676 * sem_ch6.adb: Correct typo in comment
3677
36782011-08-04 Ed Schonberg <schonberg@adacore.com>
3679
3680 * gnat_rm.texi: Ravenscar does not prohibit dependence on
3681 Unchecked_Conversion and Unchecked_Deallocation.
3682
36832011-08-04 Thomas Quinot <quinot@adacore.com>
3684
3685 * make.adb: Minor reformatting.
3686
767ab2fd
EB
36872011-08-04 Emmanuel Briot <briot@adacore.com>
3688
3689 * prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the
3690 sources in the project and its imported projects, but not in the whole
3691 tree.
3692
8fb3f5df
AC
36932011-08-04 Emmanuel Briot <briot@adacore.com>
3694
3695 * make.adb: Remove debug trace.
3696
36972011-08-04 Vincent Celier <celier@adacore.com>
3698
3699 * makeutl.adb (Do_Complete): Get the absolute path name of a relative
3700 path in canonical form, to be able to compare path names on platforms
3701 such as Windows or Darwin.
3702
37032011-08-04 Thomas Quinot <quinot@adacore.com>
3704
3705 * par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry):
3706 For a pragma (statement with C1 = 'P'), record the sloc of the pragma.
3707 * scos.ads: Update documentation accordingly.
3708 * put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled
3709 pragmas.
3710
9515740f
AC
37112011-08-04 Ed Schonberg <schonberg@adacore.com>
3712
3713 * sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of
3714 attribute only if prefix type is scalar.
3715
37162011-08-04 Emmanuel Briot <briot@adacore.com>
3717
3718 * make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support
3719 in gnatmake for specifying mains on the command line that do not belong
3720 to the main project. These mains must currently all belong to the same
3721 project, though.
3722 (Ultimate_Extension_Of): removed, since duplicated
3723 Ultimate_Extending_Project.
3724
92966893
AC
37252011-08-04 Arnaud Charlet <charlet@adacore.com>
3726
3727 * make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode
3728 instead.
3729 (CodePeer_Mode_String): New.
3730 (Linking_Phase, Binding_Phase): Call gnatlink with -P switch in
3731 CodePeer mode.
3732 (Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode.
3733 * bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer
3734 mode, since no useful elaboration subprogram is needed by CodePeer.
3735 * gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode).
3736 In this mode, compile binder file with -gnatC and do stop after this
3737 step.
3738
37392011-08-04 Vincent Celier <celier@adacore.com>
3740
3741 * exp_ch7.adb: Minor comment fix.
3742
5969611f
RD
37432011-08-04 Robert Dewar <dewar@adacore.com>
3744
3745 * exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb,
3746 exp_ch4.adb, makeutl.adb: Minor reformatting.
3747
6367dd30
AC
37482011-08-04 Emmanuel Briot <briot@adacore.com>
3749
3750 * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.
3751 Create several new subprograms to move code out of Make. This makes the
3752 code more readable, removes code duplication, and is a preparation work
3753 for adding support for aggregate projects.
3754
37552011-08-04 Tristan Gingold <gingold@adacore.com>
3756
3757 * s-po32gl.ads, s-po32gl.adb: New files.
3758 * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.
3759 * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.
3760 (Build_Finalization_Collection): Use it.
3761 * exp_ch4.adb (Complete_Controlled_Allocation): Ditto.
3762 * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New
3763 literals.
3764 * gcc-interface/Makefile.in: Use s-po32gl.o on VMS.
3765 * gcc-interface/Make-lang.in: Update dependencies.
3766
cd8bfe35
EB
37672011-08-04 Emmanuel Briot <briot@adacore.com>
3768
3769 * makeutl.adb (Complete_Mains): add support for specs with no suffix on
3770 the command line.
3771
7db29ea7
EB
37722011-08-04 Emmanuel Briot <briot@adacore.com>
3773
3774 * make.adb, makeutl.adb (Complete_Mains): if a main specified on the
3775 command line is not a file name, also check whether it could be a unit
3776 name.
3777
d9b056ea
AC
37782011-08-04 Eric Botcazou <ebotcazou@adacore.com>
3779
3780 * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate
3781 the header of the finalization routine.
3782 If the unit has no finalizer but is a body whose spec has one, then
3783 generate the decrement of the elaboration entity only.
3784 If the unit has a finalizer and is a spec, then do not generate the
3785 decrement of the elaboration entity.
3786 (Gen_Finalize_Library_C): Likewise.
3787
37882011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
3789
3790 * exp_ch7.adb (Alignment_Of): New subsidiary routine.
3791 (Bounds_Size_Expression): Removed.
3792 (Double_Alignment_Of): New subsidiary routine.
3793 (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account
3794 for a hole in the dope vector of unconstrained arrays due to different
3795 index and element alignments.
3796
37972011-08-04 Ed Schonberg <schonberg@adacore.com>
3798
3799 * sem_res.adb (Resolve_Allocator): diagnose task allocator that will
3800 raise program_error because body has not been seen yet.
3801
38022011-08-04 Ed Schonberg <schonberg@adacore.com>
3803
3804 * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with
3805 an unresolved name.
3806
38072011-08-04 Vincent Celier <celier@adacore.com>
3808
3809 * makeutl.adb (Do_Complete): Check absolute paths in canonical forms
3810
38112011-08-04 Yannick Moy <moy@adacore.com>
3812
3813 * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here
3814 * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here
3815
38162011-08-04 Thomas Quinot <quinot@adacore.com>
3817
3818 * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for
3819 instantiation in RCI.
3820
38212011-08-04 Emmanuel Briot <briot@adacore.com>
3822
3823 * make.adb: Share more code with gprbuild
3824
f5fc5b9d
AC
38252011-08-04 Emmanuel Briot <briot@adacore.com>
3826
3827 * projects.texi: Added documentation for the IDE'Gnat project file
3828 attribute.
3829
38302011-08-04 Nicolas Roche <roche@adacore.com>
3831
3832 * gnat_rm.texi: Minor editing.
3833
38342011-08-04 Javier Miranda <miranda@adacore.com>
3835
3836 * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case
3837 and the library case for VM targets.
3838 (Gen_Adainit_Ada): Likewise.
3839
38402011-08-04 Robert Dewar <dewar@adacore.com>
3841
3842 * g-altive.ads: Minor comment updates.
3843 * prj-nmsc.adb: Minor reformatting.
3844
38452011-08-04 Javier Miranda <miranda@adacore.com>
3846
3847 * opt.ads
3848 (Normalize_Scalars_Config): Value of the configuration switch set by
3849 pragma Normalize_Scalars when it appears in the gnat.adc file.
3850 (Normalize_Scalars): New field for record Config_Switches_Type. Used
3851 to save and restore settings of this pragma.
3852 * opt.adb
3853 (Register_Opt_Config_Switches, Save_Opt_Config_Switches,
3854 Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.
3855
38562011-08-04 Vincent Celier <celier@adacore.com>
3857
3858 * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile
3859
0c4683cf
AC
38602011-08-04 Arnaud Charlet <charlet@adacore.com>
3861
3862 * makeutl.adb: Minor reformatting.
3863
38642011-08-04 Olivier Hainque <hainque@adacore.com>
3865
3866 * g-altive.ads: Update comments to reflect that only the soft
3867 binding is available today.
3868
2598ee6d
RD
38692011-08-04 Robert Dewar <dewar@adacore.com>
3870
3871 * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,
3872 makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting
3873 * gcc-interface/Make-lang.in: Update dependencies.
3874
c2db4b32
AC
38752011-08-04 Arnaud Charlet <charlet@adacore.com>
3876
3877 * prj-env.adb: Remove local debug traces.
3878
38792011-08-04 Yannick Moy <moy@adacore.com>
3880
3881 * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK
3882 was used instead of Hi_OK, which could cause a read of an uninitialized
3883 value later on. Detected while working on the new warning.
3884 * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment
3885 to local variable.
3886 * sem_ch5.adb (Analyze_Assignment): set the last assignment component
3887 in more cases, in order to detect more unreferenced values.
3888 * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing
3889 object for expression, if any.
3890
38912011-08-04 Eric Botcazou <ebotcazou@adacore.com>
3892
3893 * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of
3894 the operand types instead of the Esize.
3895
38962011-08-04 Steve Baird <baird@adacore.com>
3897
3898 * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to
3899 enable CodePeer_Mode.
3900 * bindusg.adb (Display): Add help message describing -P binder switch.
3901 * gnat_ugn.texi: Document -P binder switch.
3902 * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the
3903 user-defined main program directly.
3904 (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the
3905 user-defined main program in the context clause of the package body.
3906
ad05f2e9
AC
39072011-08-04 Yannick Moy <moy@adacore.com>
3908
3909 * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial
3910 duplicate of Defining_Entity
3911 (Get_Unique_Entity_For_Decl): rename function into
3912 Unique_Defining_Entity
3913 * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags
3914 (Formal_Proof_On): remove synthesized flag
3915 * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
3916 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,
3917 sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA
3918 * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma
3919 Annotate (Formal_Proof)
3920
39212011-08-04 Emmanuel Briot <briot@adacore.com>
3922
3923 * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit
3924 source files with non-standard naming schemes, in imported projects
3925
756ef2a0
AC
39262011-08-04 Emmanuel Briot <briot@adacore.com>
3927
3928 * makeutl.adb (Complete_Mains): when a multi-unit source file is
3929 specified on the gprbuild command line, we need to compile all units
3930 within that file, not just the first one we find
3931 Fix error message for mains that are not found.
3932
39332011-08-04 Thomas Quinot <quinot@adacore.com>
3934
3935 * sem_ch6.adb: Update comment.
3936 * sem_ch12.adb: Minor reformatting.
3937
39382011-08-04 Bob Duff <duff@adacore.com>
3939
3940 * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading
3941 Acceptor.Terminate_Alternative without locking Acceptor, which causes a
3942 race condition whose symptom is to fail to lock Parent. That, in turn,
3943 causes Parent.Awake_Count to be accessed without locking Parent, which
3944 causes another race condition whose symptom is that Parent.Awake_Count
3945 can be off by 1 (either too high or too low). The solution is to lock
3946 Parent unconditionally, and then lock Acceptor, before reading
3947 Acceptor.Terminate_Alternative.
3948
4fdebd93
AC
39492011-08-04 Arnaud Charlet <charlet@adacore.com>
3950
3951 * debug.adb: Update comment.
3952
39532011-08-04 Robert Dewar <dewar@adacore.com>
3954
3955 * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,
3956 sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,
3957 exp_ch6.adb: Minor reformatting.
3958
39592011-08-04 Gary Dismukes <dismukes@adacore.com>
3960
3961 * gnat_ugn.texi: Add sentence about the case of compile-time-detected
3962 checks for -gnateE.
3963
39642011-08-04 Ed Schonberg <schonberg@adacore.com>
3965
3966 * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.
3967
39682011-08-04 Thomas Quinot <quinot@adacore.com>
3969
3970 * sinfo.ads: Minor reformatting.
3971
39722011-08-04 Emmanuel Briot <briot@adacore.com>
3973
3974 * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error
3975 even if there is no location.
3976
6aaa0587
ES
39772011-08-04 Ed Schonberg <schonberg@adacore.com>
3978
3979 * sem_res.adb, sem_ch4.adb: move check for restriction
3980 No_Task_Hierarchy to resolve_allocator.
3981
35a1c212
AC
39822011-08-04 Thomas Quinot <quinot@adacore.com>
3983
3984 * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):
3985 This flag of N_Pragma nodes is not used, remove it as well as all of
3986 the associated circuitry.
3987
39882011-08-04 Javier Miranda <miranda@adacore.com>
3989
3990 * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the
3991 runtime check on duplicated externa tags
3992 * debug.adb Document switch -gnatdQ.
3993
39942011-08-04 Gary Dismukes <dismukes@adacore.com>
3995
3996 * a-fihema.ads: Minor typo fix.
3997
39982011-08-04 Yannick Moy <moy@adacore.com>
3999
4000 * sem_ch10.adb: Minor comment update.
4001
40022011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4003
4004 * einfo.adb: Update the node field usage to reflect the renaming of
4005 Return_Flag to Return_ Flag_Or_Transient_Decl.
4006 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.
4007 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.
4008 (Write_Field15_Name): Change Return_Flag to
4009 Return_Flag_Or_Transient_Decl.
4010 * einfo.ads: Rename node field Return_Flag to
4011 Return_Flag_Or_Transient_Decl. Update the associated comment and all
4012 occurrences in entities.
4013 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update
4014 associated Inline pragma.
4015 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update
4016 associated Inline pragma.
4017 * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New
4018 routine.
4019 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to
4020 Return_Flag and Set_Return_Flag.
4021 * exp_ch7.adb (Process_Declarations): Add code to recognize hook
4022 objects generated for controlled transients declared inside an
4023 Exception_With_Actions. Update the calls to Return_Flag.
4024 (Process_Object_Declaration): Add code to add a null guard for hook
4025 objects generated for controlled transients declared inside an
4026 Exception_With_Actions. Update related comment.
4027 * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook
4028 objects generated for controlled transients declared inside an
4029 Exception_With_Actions. Update the calls to Return_Flag.
4030 * expander.adb (Expand): Add new case for N_Expression_With_Actions.
4031
40322011-08-04 Ed Schonberg <schonberg@adacore.com>
4033
4034 * sem_util.adb:(Wrong_Type): Improve error message on a one-element
4035 positional aggregate.
4036
40372011-08-04 Vincent Celier <celier@adacore.com>
4038
4039 * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma
4040 SLOC only for pragmas.
4041
40422011-08-04 Emmanuel Briot <briot@adacore.com>
4043
4044 * projects.texi: Minor typo fix.
4045
40462011-08-04 Emmanuel Briot <briot@adacore.com>
4047
4048 * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging
4049 on case-sensitive file systems.
4050
c2873f74
TQ
40512011-08-04 Thomas Quinot <quinot@adacore.com>
4052
4053 * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision
4054 nested in a disabled pragma.
4055 * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of
4056 enclosing pragma, if any, for X decisions.
4057
40582011-08-04 Thomas Quinot <quinot@adacore.com>
4059
4060 * sem_prag.adb: Minor reformatting.
4061
46414266
VC
40622011-08-04 Vincent Celier <celier@adacore.com>
4063
4064 * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not
4065 allowed in no run time mode.
4066
40672011-08-04 Vincent Celier <celier@adacore.com>
4068
4069 * make.adb (Check): When -gnatc is used, check for the source file
4070 inside the ALI file with a canonical case file name.
4071
afab164f
EB
40722011-08-04 Emmanuel Briot <briot@adacore.com>
4073
4074 * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for
4075 overriding the separator.
4076
fe0ec02f
AC
40772011-08-04 Robert Dewar <dewar@adacore.com>
4078
4079 * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,
4080 prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.
4081
40822011-08-04 Robert Dewar <dewar@adacore.com>
4083
4084 * gnat_rm.texi: Minor documentation fix for pragma Annotate.
4085
40862011-08-04 Yannick Moy <moy@adacore.com>
4087
4088 * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that
4089 'Result only appears in postcondition of function.
4090
40912011-08-04 Thomas Quinot <quinot@adacore.com>
4092
4093 * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated
4094 external tag, include the value of the external tag in the exception
4095 message.
4096
0180fd26
AC
40972011-08-04 Yannick Moy <moy@adacore.com>
4098
4099 * sem_attr.adb (Result): modify error message for misplaced 'Result
4100
41012011-08-04 Sergey Rybin <rybin@adacore.com>
4102
4103 * gnat_rm.texi (pragma Annotate): Fix syntax description to make it
4104 clear that the second argument must be an identifier.
4105
41062011-08-04 Thomas Quinot <quinot@adacore.com>
4107
4108 * exp_ch9.adb (Build_Barrier_Function): When compiling with
4109 -fpreserve-control-flow, insert an IF statement on the barrier
4110 condition to ensure that a conditional branch instruction is generated.
4111
41122011-08-04 Emmanuel Briot <briot@adacore.com>
4113
4114 * prj-part.adb, prj.adb, prj.ads, prj-tree.ads
4115 (Processing_Flags.Ignore_Missing_With): new flag.
4116
41172011-08-04 Emmanuel Briot <briot@adacore.com>
4118
4119 * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of
4120 Source_List_File on case-insensitive systems where the file is actually
4121 on a case-sensitive file system (NFS,...).
4122
41232011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4124
4125 * sem_ch6.adb (Analyze_Function_Return): In a rare case where a
4126 function return contains a controlled [extension] aggregate and the
4127 return statement is not part of a handled sequence of statements, wrap
4128 the return in a block. This ensures that all controlled temporaries
4129 generated during aggregate resolution will be picked up by the
4130 finalization machinery.
4131
41322011-08-04 Ed Schonberg <schonberg@adacore.com>
4133
4134 * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized
4135 components, freeze type before resolution, to ensure that default
4136 initializations are present for all components.
4137 * sem_res.adb (Resolve_Actuals): the designated object of an
4138 accces-to-constant type is a legal actual in a call to an
4139 initialization procedure.
4140
41412011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4142
4143 * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and
4144 N_Unchecked_Type_Conversion to the possible containers of a renamed
4145 transient variable.
4146
78efd712
AC
41472011-08-04 Yannick Moy <moy@adacore.com>
4148
4149 * par-ch13.adb (Aspect_Specifications_Present): recognize
4150 "with Identifier'Class =>" as an aspect, so that a meaningful warning
4151 is issued in Strict mode.
4152 * par.adb: Fix typos in comments.
4153
41542011-08-04 Yannick Moy <moy@adacore.com>
4155
4156 * sem_attr.adb (Result): modify error message to take into account Post
4157 aspect when compiling Ada 2012 (or newer) code.
4158
41592011-08-04 Nicolas Roche <roche@adacore.com>
4160
4161 * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to
2c7f9cc0 4162 remove need for GCC exceptions.
78efd712
AC
4163
41642011-08-04 Vincent Celier <celier@adacore.com>
4165
4166 * makeutl.adb (Do_Complete): Call Debug_Output with the name of the
4167 project, not the source file name.
4168 * prj.adb (Find_Sources.Look_For_Sources): If the source has been
4169 excluded, continue looking. This excluded source will only be returned
4170 if there is no other source with the same base name that is not locally
4171 removed.
4172
41732011-08-04 Ed Schonberg <schonberg@adacore.com>
4174
4175 * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is
4176 private and one of the operands is a real literal, use a qualified
4177 expression rather than a conversion which is not meaningful to the
4178 back-end.
4179
0170a691
AC
41802011-08-04 Yannick Moy <moy@adacore.com>
4181
4182 * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise
4183 corresponding aspect X'Class are allowed, proceed with analysis of the
4184 aspect instead of skipping it.
4185
41862011-08-04 Tristan Gingold <gingold@adacore.com>
4187
4188 * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads
4189 This will allow to have an Ada implementation for the subprogram.
4190
deb4f5ba
ES
41912011-08-04 Ed Schonberg <schonberg@adacore.com>
4192
4193 * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a
4194 completion and aspects are present, apply them to the entity for the
4195 type which is currently the partial view, but which is the one that
4196 will be frozen.
4197 * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate
4198 applies to a partial view, indicate that the full view has predicates
4199 and delayed aspects.
4200 (Replace_Type_Reference): Handle properly predicates that apply to the
4201 full view of a private completion.
4202
fc893455
AC
42032011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4204
4205 * layout.adb (Layout_Type): For composite types, do not set Esize.
4206 * freeze.adb (Set_Small_Size): Remove test on alignment and do not
4207 set Esize.
4208 (Size_Known): Look at the RM size of components instead of the Esize.
4209 (Freeze_Record_Type): Look at the RM size instead of the Esize to
4210 issue warning and activate Implicit_Packing.
4211 (Freeze_Entity): Likewise. Do not issue a warning for alias/atomic
4212 if the Esize is not known.
4213 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esize
4214 for elementary types only.
4215 (Analyze_Record_Representation_Clause): Look at the RM size instead
4216 of the Esize to issue errors.
4217 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it
4218 is not known.
4219 <E_Record_Type>: Look at the RM size instead of the Esize. Remove
2c7f9cc0 4220 obsolete block.
fc893455
AC
4221 Look at the RM size instead of the Esize for types if the latter is
4222 not known.
4223 (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.
4224
42252011-08-04 Ed Schonberg <schonberg@adacore.com>
4226
4227 * sem_type.adb: proper handling of equality not involving anonymous
4228 access types.
4229
b37d5bc6
AC
42302011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4231
4232 * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and
4233 Vis_Decls. When creating a library-level finalizer for a package spec,
4234 both the declaration and body of the finalizer are inserted either in
4235 the visible or private declarations of the package spec.
4236
42372011-08-04 Javier Miranda <miranda@adacore.com>
4238
4239 * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the
4240 use of the full-view of a type when invoking Is_Ancestor.
4241 * sem_type.adb (Is_Ancestor): For consistency, when the traversal of
4242 the full-view of private parents is requested, then use also the
4243 full-view of the parent of the first derivation.
4244
7ab4d95a
AC
42452011-08-04 Tristan Gingold <gingold@adacore.com>
4246
4247 * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset
4248 instead of the locally imported procedure.
4249 * s-taprop-mingw.adb (Enter_Task): Ditto.
4250 * s-valrea.adb (Scan_Real): Ditto.
4251 * s-imgrea.adb (Set_Image_Real): Ditto.
4252 * s-flocon.ads: Make the package pure.
4253
42542011-08-04 Thomas Quinot <quinot@adacore.com>
4255
4256 * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.
4257 * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.
4258 * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):
4259 New subprogram, moved here from...
4260 * par.adb, par-ch5.adb (P_Statement_Name): ... here.
4261 * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any
4262 rewriting of the last argument into a procedure call statement here...
4263 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there
4264 instead.
4265
42662011-08-04 Thomas Quinot <quinot@adacore.com>
4267
4268 * par_sco.adb: Minor reformatting.
4269
51c400f5
AC
42702011-08-04 Robert Dewar <dewar@adacore.com>
4271
4272 * erroutc.adb: Minor reformatting.
4273
42742011-08-04 Thomas Quinot <quinot@adacore.com>
4275
4276 * par_sco.adb: Comment update.
4277
42782011-08-04 Tristan Gingold <gingold@adacore.com>
4279
4280 * s-flocon.ads: New file.
4281 * g-flocon.ads: Now a renaming of s-flocon.
4282 * Makefile.rtl: Add s-flocon.o
4283
6a49f110
AC
42842011-08-04 Javier Miranda <miranda@adacore.com>
4285
4286 * exp_strm.adb (Build_Array_Input_Function): if the array type is
4287 constrained, do not attempt to build a subtype of it.
4288
42892011-08-04 Yannick Moy <moy@adacore.com>
4290
4291 * errout.ads Change comments: remove 'R'M as an example where quotes
4292 are needed; add ALFA as another case where quotes are not needed
4293 * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
4294 case where quotes are not needed.
4295 * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
4296 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
4297 Remove all occurrences of 'A'L'F'A
4298
42992011-08-04 Ed Schonberg <schonberg@adacore.com>
4300
4301 * sem_ch13.adb: check legality of invariant pragma.
4302
a4640a39
AC
43032011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4304
4305 * bindgen.adb: Add comments.
4306
43072011-08-04 Yannick Moy <moy@adacore.com>
4308
4309 * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a
4310 synthesized flag.
4311 * sem_prag.adb (Analyze_Pragma): record the pragma Annotate
4312 (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.
4313
43142011-08-04 Robert Dewar <dewar@adacore.com>
4315
4316 * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,
4317 osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,
4318 sem_ch13.adb, s-pooloc.adb: Minor reformatting.
4319
39ade2f9
AC
43202011-08-04 Thomas Quinot <quinot@adacore.com>
4321
4322 * s-pooloc.ads, s-pooglo.ads: Minor reformatting
4323
43242011-08-04 Thomas Quinot <quinot@adacore.com>
4325
4326 PR ada/47880
4327 * s-pooloc.adb (Deallocate): Fix the case of deallocating the only
4328 allocated object.
4329
43302011-08-04 Robert Dewar <dewar@adacore.com>
4331
4332 * einfo.ads, exp_ch4.adb: Minor reformatting.
4333
43342011-08-04 Jerome Lambourg <lambourg@adacore.com>
4335
4336 * back_end.ads (Gen_Or_Update_Object_File): Add more comments.
4337
7efc3f2d
AC
43382011-08-04 Ed Schonberg <schonberg@adacore.com>
4339
4340 * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component
4341 type in all cases to compute list of primitive operations, because full
4342 view may be an itype that is not attached to the list of declarations.
4343
43442011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4345
4346 * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the
4347 library has already been finalized.
4348 (Gen_Adafinal_C): Likewise.
4349 (Gen_Adainit_Ada): Generate an early return if the library has
4350 already been elaborated.
4351 (Gen_Adainit_C): Likewise.
4352 (Gen_Output_File_Ada): Generate an elaboration flag.
4353 (Gen_Output_File_C): Likewise.
4354
f65df609
HK
43552011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4356
4357 * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of
4358 Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not
4359 built in the first place.
4360 (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr
4361 for CodePeer because Finalize_Address was not built to begin with.
4362 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.
4363
a0fb8fe8
AC
43642011-08-04 Pascal Obry <obry@adacore.com>
4365
4366 * adaint.c (__gnat_tmp_name): Use current process id to create temp
4367 filenames, this ensures unicity of filenames across processes.
4368
43692011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4370
4371 * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine
4372 Raise_Controlled to Raise_From_Controlled_Operation. Update the
4373 signature of Raise_From_Controlled_Operation by adding flag From_Abort.
4374 Add False as the actual to From_Abort in the generated call to
4375 Raise_From_Controlled_Operation.
4376
43772011-08-04 Jerome Lambourg <lambourg@adacore.com>
4378
4379 * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration
4380 so that the ali file name can be retrieved from outside of this package.
4381 * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method
4382 doing nothing in the general case, but used to update the object file
4383 timestamp if directly generated by the backend.
4384 * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set
4385 to a later time than the ali file one.
4386
9534ab17
AC
43872011-08-04 Yannick Moy <moy@adacore.com>
4388
4389 * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram
4390 entities whose body contains an Annotate pragma which forces formal
4391 proof on this body.
4392 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
4393 sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to
4394 Mark_Non_ALFA_Subprogram to pass in a message and node.
4395 * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate
4396 (Forma_Proof, On) which sets the flag Formal_Proof_On in the
4397 surrounding subprogram.
4398 * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,
4399 Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked
4400 as not in ALFA is annotated with Formal_Proof being On, then an error
4401 is issued based on the additional parameters for message and node.
4402 * snames.ads-tmpl (Name_Formal_Proof): new name for annotation.
4403 * gcc-interface/Make-lang.in: Update dependencies.
4404
44052011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4406
4407 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate
4408 Finalize_Address when CodePeer is enabled.
4409
44102011-08-04 Pascal Obry <obry@adacore.com>
4411
4412 * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as
4413 the latter returns a pointer to a static buffer which is deallocated
4414 at the end of the routine.
4415
5c0e97dd
AC
44162011-08-04 Yannick Moy <moy@adacore.com>
4417
4418 * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA
4419 after index creation; mark unconstrained base array type generated as
4420 being in/not in ALFA as well
4421 (Make_Index): mark subtype created as in/not in ALFA
4422 * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating
4423 over a loop as in/not in ALFA, depending on its type and form of loop
4424 iteration.
4425
44262011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4427
4428 * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort
4429 directly to False on .NET and JVM.
4430
7a93c64b
YM
44312011-08-04 Yannick Moy <moy@adacore.com>
4432
4433 * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove
4434 constraint that subtype must come from source code to be in ALFA, so
4435 that anonymous subtypes can be in ALFA too.
4436
e9a1ed9b
YM
44372011-08-04 Yannick Moy <moy@adacore.com>
4438
4439 * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of
4440 reference for ALFA mode.
4441 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make
4442 procedure public so as to use it from formal verification back-end.
4443
8e293fbd
AC
44442011-08-04 Jerome Lambourg <lambourg@adacore.com>
4445
4446 * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the
4447 invalid checks of the Parameter, making Remove_Switch not working
4448 correctly.
4449
44502011-08-04 Arnaud Charlet <charlet@adacore.com>
4451
4452 * targparm.ads: Update header: no run-time exception is needed on this
4453 file.
4454
44552011-08-04 Vincent Celier <celier@adacore.com>
4456
4457 * a-fihema.adb: Use System.IO instead of GNAT.IO
4458
44592011-08-04 Thomas Quinot <quinot@adacore.com>
4460
4461 * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types
4462 are forbidden in Compiler_Unit mode.
4463
cfae2bed
AC
44642011-08-04 Robert Dewar <dewar@adacore.com>
4465
4466 * sem_util.adb: Minor reformatting.
4467
44682011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4469
4470 * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for
4471 library-level finalizers.
4472 (Gen_Finalize_Library_C): Update the import string for library-level
4473 finalizers.
4474 (Gen_Finalize_Library_Defs_C): Update the definition name of a
4475 library-level finalizer.
4476 * exp_ch7.adb: Remove with and use clauses for Stringt.
4477 (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,
4478 Spec_Decl. Add local variable Body_Id. The names of library-level
4479 finalizers are now manually fully qualified and are no longer external.
4480 A single name is now capable of servicing .NET, JVM and non-VM targets.
4481 Pragma Export is no longer required to provide visibility for the name.
4482 (Create_Finalizer_String): Removed.
4483 (New_Finalizer_Name): New routine which mimics New_..._Name.
4484
01f0729a
AC
44852011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4486
4487 * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the
4488 elaboration counter to Standard_Short_Integer.
4489 * sem_util.adb (Build_Elaboration_Entity): Likewise.
4490 * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.
4491 (Gen_Elab_Externals_C): Likewise.
4492
44932011-08-04 Ed Falis <falis@adacore.com>
4494
4495 * system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
4496 system-vxworks-ppc.ads, system-vxworks-m68k.ads,
4497 system-vxworks-mips.ads, system-vxworks-x86.ads
4498 (Always_Compatible_Rep): set to False for all VxWorks targets.
4499
2c1b72d7
AC
45002011-08-04 Robert Dewar <dewar@adacore.com>
4501
4502 * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,
4503 makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,
4504 exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,
4505 exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,
4506 exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,
4507 sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,
4508 sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:
4509 Minor reformatting and code reorganization.
4510
45112011-08-04 Emmanuel Briot <briot@adacore.com>
4512
4513 * projects.texi: Added doc for aggregate projects.
4514
824e9320
AC
45152011-08-04 Emmanuel Briot <briot@adacore.com>
4516
4517 * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):
4518 Add support for overriding the Project_Path in aggregate projects.
4519
45202011-08-04 Robert Dewar <dewar@adacore.com>
4521
4522 * a-cofove.ads: Minor reformatting.
4523
45242011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
4525
4526 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment
4527 on the generated code.
4528 (Build_Finalize_Statements): Update the comment on the generated code.
4529 (Build_Initialize_Statements): Update the comment on the generated code.
4530 (Build_Object_Declarations): Add local variable Result. The object
4531 declarations are now built in sequence.
4532 * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and
4533 RE_Unit_Table.
4534
45352011-08-04 Robert Dewar <dewar@adacore.com>
4536
4537 * checks.adb, alfa.adb, alfa.ads: Minor reformatting.
4538
45392011-08-04 Eric Botcazou <ebotcazou@adacore.com>
4540
4541 * einfo.ads (Elaboration_Entity): Document new definition and use.
4542 (Elaboration_Entity_Required): Adjust to above change.
4543 * exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
4544 * exp_ch12.adb: And with and use for Snames.
4545 (Expand_N_Generic_Instantiation): Test 'Elaborated attribute.
4546 * exp_util.adb (Set_Elaboration_Flag): Likewise.
4547 * sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.
4548 <Check_Unit_Name>: Deal with N_Expanded_Name.
4549 <Attribute_Elaborated>: Extend to all unit names.
4550 * sem_elab.adb: And with and use for Uintp.
4551 (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.
4552 * sem_util.ads (Build_Elaboration_Entity): Adjust comment.
4553 * sem_util.adb (Build_Elaboration_Entity): Change type to Integer.
4554 * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken
4555 from Gen_Adainit_Ada.
4556 (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.
4557 (Gen_Adafinal_Ada): Remove redundant test. In the non-main program
4558 case, do not call System.Standard_Library.Adafinal; instead call
4559 finalize_library if needed.
4560 (Gen_Adafinal_C): Likewise.
4561 (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the
4562 non-main program case.
4563 (Gen_Adainit_C): Generate a couple of external declarations here.
4564 In the main program case, set SSL.Finalize_Library_Objects.
4565 (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.
4566 (Gen_Elab_Calls_C): Likewise.
4567 (Gen_Finalize_Library_Ada): Likewise. Skip SAL interface units.
4568 (Gen_Finalize_Library_C): Likewise. Generate a full function.
4569 (Gen_Main_C): Put back call to Ada_Final and don't finalize library
4570 objects here.
4571 (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final
4572 if -a is specified. Call Gen_Elab_Externals_Ada. Move around call to
4573 Gen_Adafinal_Ada.
4574 (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final
4575 if -a is specified. Call Gen_Elab_Externals_C. Remove useless couple
2c7f9cc0 4576 of external declarations. Call Gen_Finalize_Library_C.
824e9320 4577
316d9d4f
EB
45782011-08-04 Emmanuel Briot <briot@adacore.com>
4579
4580 * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,
4581 Compute_Compilation_Phases): new subprogram.
4582 (Builder_Data, Builder_Project_Tree_Data): new subprogram and type
4583 The number of mains as well as the various compilation phases that
4584 need to be run are now project tree specific, since various
4585 aggregated trees might have different requirements. In particular,
4586 they do not all require bind or link phases.
4587
9434c32e
EB
45882011-08-04 Emmanuel Briot <briot@adacore.com>
4589
4590 * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb
4591 (Project_Tree_Appdata): New type.
4592 It is now possible to associate application-specific data to a project
4593 tree. In particular, this is used in the gprbuild builder to avoid a
4594 number of global tables and htables, especially now that there can be
4595 several project trees loaded at once because of aggregate projects.
4596 (Debug_Name): new procedure.
4597 * projects.texi: Clarify syntax of "**" for Source_Dirs
4598
41ba34db
EB
45992011-08-03 Emmanuel Briot <briot@adacore.com>
4600
4601 * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts
4602 the "roots" for a main.
4603 (Fill_From_Project): add support for aggregate projects. Main units
4604 in aggregated projects are now automatically added in the list of
4605 files to build (although this fails later on in gprbuild, because
4606 these files are not using the root proejct tree, so this needs
4607 further cleanup)
4608 * gcc-interface/Make-lang.in: Update dependencies.
4609
fccd42a9
AC
46102011-08-03 Yannick Moy <moy@adacore.com>
4611
4612 * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean
4613 conditional expression in ALFA.
4614 * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean
4615 expressions as not in ALFA.
4616
46172011-08-03 Robert Dewar <dewar@adacore.com>
4618
4619 * a-cofove.adb: Minor reformatting.
4620
46212011-08-03 Emmanuel Briot <briot@adacore.com>
4622
4623 * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads
4624 (Insert_Project_Sources, Insert_withed_Sources_For): moved from the
4625 gprbuild sources.
4626 These packages are more logically placed in the Queue package, since
4627 they manipulate the queue. It is also likely that they can be adapted
4628 for gnatmake, thus sharing more code.
4629 (Finish_Program, Fail_Program): moved from the gprbuild sources, so
4630 that we could move the above.
4631
46322011-08-03 Emmanuel Briot <briot@adacore.com>
4633
4634 * errutil.adb (Finalize): clean up the list of error messages on exit.
4635 Calling this subprogram multiple times will no longer show duplicate
4636 error messages on stderr.
4637
46382011-08-03 Emmanuel Briot <briot@adacore.com>
4639
4640 * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter
4641 Getopt_Switches when we have already define a command line
4642 configuration.
4643
5e8c8e44
YM
46442011-08-03 Yannick Moy <moy@adacore.com>
4645
4646 * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not
4647 in ALFA. Instead, they are considered as assertions to prove.
4648 * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such
4649 nodes as not in ALFA. Instead, include conditional expressions in ALFA
4650 if they have no ELSE part, or if they occur in pre- and postconditions,
4651 where the Condition cannot have side-effects in ALFA
4652 (Analyze_Membership_Op): do not mark such nodes as not in ALFA
4653 (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.
4654 Instead, include type conversion between scalar types in ALFA.
4655 * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA
4656 if-and-only-if its type is in ALFA.
4657
5ffe0bab
AC
46582011-08-03 Thomas Quinot <quinot@adacore.com>
4659
4660 * scos.adb, get_scos.adb, put_scos.adb
4661 New code letter for decisions: G (entry guard)
4662 * par_sco.adb
4663 (Traverse_Subprogram_Body): Rename to...
4664 (Traverse_Subprogram_Or_Task_Body): New subrpogram.
4665 (Traverse_Protected_Body): New subprogram
4666 (Traverse_Declarations_Or_Statements): Add traversal of task bodies,
4667 protected bodies and entry bodies.
4668
46692011-08-03 Yannick Moy <moy@adacore.com>
4670
4671 * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure
4672 entities with get/set subprograms, which is set on procedure entities
4673 generated by the compiler for a postcondition.
4674 * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures
4675 * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the
4676 entity for a declaration
4677 (Get_Unique_Entity_For_Decl): new function returning an entity which
4678 represents a declaration, so that matching spec and body have the same
4679 entity.
4680
46812011-08-03 Robert Dewar <dewar@adacore.com>
4682
4683 * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,
4684 a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting
4685
46862011-08-03 Yannick Moy <moy@adacore.com>
4687
4688 * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram
4689 library-level because retriction No_Implicit_Dynamic_Code in the
4690 front-end prevents its definition as a local subprogram
4691 (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,
4692 for reuse in other contexts
4693 (Traverse_Declarations_Or_Statements,
4694 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
4695 Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these
4696 procedures take a callback parameter to be called on all declarations
4697 * lib-xref.ads
4698 (Traverse_All_Compilation_Units): new generic function to traverse a
4699 compilation unit and call a callback parameter on all declarations
4700
f9ad6b62
AC
47012011-08-03 Javier Miranda <miranda@adacore.com>
4702
4703 * sem_prag.adb (Process_Interface_Name): Allow duplicated export names
4704 in Java since they are always enclosed in a namespace that
4705 differentiates them, and overloaded entities are supported by the VM.
4706
47072011-08-03 Ed Schonberg <schonberg@adacore.com>
4708
4709 * checks.adb (Determine_Range): If a computed bound of an operation is
4710 outside the range of the base type of the expression, and overflow
4711 checks are enabled, the result is unknown and cannot be used for any
4712 subsequent constant folding.
4713 * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are
4714 unknown, so is the result of the comparison.
4715
47162011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4717
4718 * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal
4719 From_Abort. When finalization was triggered by an abort, propagate
4720 Standard'Abort_Signal rather than Program_Error.
4721 * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal
4722 From_Abort.
4723 * a-except.adb (Raise_From_Controlled_Operation): Add new formal
4724 From_Abort. When finalization was triggered by an abort, propagate
4725 Standard'Abort_Signal rather than Program_Error.
4726 * a-except.ads:(Raise_From_Controlled_Operation): Add new formal
4727 From_Abort.
4728 * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable
4729 Abort_Id. Update the calls to Build_Object_Declarations and
4730 Build_Raise_Statement to include Abort_Id.
4731 (Build_Adjust_Statements): New local variable Abort_Id. Update the
4732 calls to Build_Object_Declarations and Build_Raise_Statement to include
4733 Abort_Id.
4734 (Build_Finalize_Statements): New local variable Abort_Id. Update the
4735 calls to Build_Object_Declarations and Build_Raise_Statement to include
4736 Abort_Id.
4737 (Build_Components): Create an entity for Abort_Id when exceptions are
4738 allowed on the target.
4739 (Build_Finalizer): New local variable Abort_Id.
4740 (Build_Initialize_Statements): New local variable Abort_Id. Update the
4741 calls to Build_Object_Declarations and Build_Raise_Statement to include
4742 Abort_Id.
4743 (Build_Object_Declarations): Add new formal Abort_Id. Create the
4744 declaration of flag Abort_Id to preserve the original abort status
4745 before finalization code is executed.
4746 (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to
4747 runtime routine Raise_From_Controlled_Operation.
4748 (Create_Finalizer): Update the call to Build_Raise_Statement to include
4749 Abort_Id. Update the call to Build_Object_Declarations to include
4750 Abort_Id. Update the layout of the finalizer body.
4751 (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.
4752 (Process_Transient_Objects): New local variable Abort_Id. Remove the
4753 clunky code to create all flags and objects related to
4754 exception propagation and replace it with a call to
4755 Build_Object_Declarations. Update the call to Build_Raise_Statement to
4756 include Abort_Id.
4757 * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.
4758 Add new formal Abort_Id and associated comment on its use.
4759 (Build_Raise_Statement): Add new formal Abort_Id and associated comment
4760 on its use.
4761 * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.
4762 Remove the clunky code to create all flags and objects related to
4763 exception propagation and replace it with a call to
4764 Build_Object_Declarations. Update the call to Build_Raise_Statement.
4765
47662011-08-03 Eric Botcazou <ebotcazou@adacore.com>
4767
4768 * s-tassta.adb: Fix minor typos.
4769
47702011-08-03 Robert Dewar <dewar@adacore.com>
4771
4772 * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,
4773 lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.
4774
1cdfa9be
AC
47752011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4776
4777 * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion
4778 to packages. This ensures that the finalizer body will not end up
4779 inside the freeze node.
4780 (Process_Declarations): Add code to detect whether a freeze node has a
4781 nested finalization collection.
4782
47832011-08-03 Pascal Obry <obry@adacore.com>
4784
4785 * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.
4786 (Current_Session): Return a not null access to Session_Type.
4787 (Default_Session): Likewise.
4788
243cae0a
AC
47892011-08-03 Robert Dewar <dewar@adacore.com>
4790
4791 * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,
4792 exp_ch3.adb, exp_ch3.ads: Minor reformatting.
4793
47942011-08-03 Pascal Obry <obry@adacore.com>
4795
4796 * g-awk.ads: Minor comment fix.
4797
47982011-08-03 Sergey Rybin <rybin@adacore.com>
4799
4800 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
4801 the tree structure related to discriminant constraints.
4802 Original_Discriminant cannot be used any more for computing the
4803 defining name for the reference to a discriminant.
4804
48052011-08-03 Ed Schonberg <schonberg@adacore.com>
4806
4807 * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the
4808 function is not visibly tagged, this is not a dispatching call and
4809 therfore is not Tag_Indeterminate, even if the function is marked as
4810 dispatching on result.
4811
f553e7bc
AC
48122011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4813
4814 * exp_ch13.adb: Add with and use clauses for Restrict and Rident.
4815 (Expand_N_Free_Statement): Add a guard to protect against run-times
4816 which do not support controlled types.
4817 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
4818 against run-times which do not support controlled types.
4819 * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
4820 against run-times which do not support controlled types.
4821 * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
4822 against run-times which do not support controlled types.
4823 * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
4824 protect against run-times which do not support controlled types.
4825
48262011-08-03 Eric Botcazou <ebotcazou@adacore.com>
4827
4828 * exp_intr.adb: Put back with and use clauses for Exp_Ch11.
4829 (Expand_Unc_Deallocation): Expand the AT_END handler at the very end.
4830
e4982b64
AC
48312011-08-03 Ed Schonberg <schonberg@adacore.com>
4832
4833 * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
4834 modified in the source, to prevent spurious warnings when compiling
4835 with -gnatg.
4836
48372011-08-03 Thomas Quinot <quinot@adacore.com>
4838
4839 * a-except-2005.adb: Minor reformatting.
4840
48412011-08-03 Ed Schonberg <schonberg@adacore.com>
4842
4843 * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
4844 is a renaming declaration in the private part of a package, do not emit
4845 a warning that the with_clause could be moved because the renaming may
4846 be used in the body or in a child unit.
4847
48482011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4849
4850 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
4851 Propagate the Comes_From_Source attribute from the original return
4852 object to the renaming.
4853
48542011-08-03 Jose Ruiz <ruiz@adacore.com>
4855
4856 * exp_ch7.adb (Build_Raise_Statement): Do not call
4857 Raise_From_Controlled_Operation when this routine is not present in
4858 the run-time library.
4859 (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
4860 libraries (Ravenscar), tasks are non-terminating, and protected objects
4861 and tasks can only appear at library level, so we do not want
4862 finalization of protected objects nor tasks.
4863 * exp_intr.adb: Minor clarification in comment.
4864 bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
4865 Gen_Output_File_C): Remove references to finalization of library-level
4866 objects when using restricted run-time libraries.
4867
48682011-08-03 Ed Schonberg <schonberg@adacore.com>
4869
4870 * sem_ch3.adb (Build_Discriminant_Constraints): Set
4871 Original_Discriminant only if the parent type is a generic formal.
4872
deb8dacc
HK
48732011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4874
4875 * exp_ch13.adb: Add with and use clause for Targparm;
4876 (Expand_N_Free_Statement): Prevent the generation of a custom
4877 Deallocate on .NET/JVM targets since this requires pools and address
4878 arithmetic.
4879 * exp_ch4.adb (Expand_Allocator_Expression): When compiling for
4880 .NET/JVM targets, attach the newly allocated object to the access
4881 type's finalization collection. Do not generate a call to
4882 Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
4883 exist in the runtime.
4884 (Expand_N_Allocator): When compiling for .NET/JVM targets, do not
4885 create a custom Allocate for object that do not require initialization.
4886 Attach a newly allocated object to the access type's finalization
4887 collection on .NET/JVM.
4888 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
4889 assignment of controlled types on .NET/JVM. The two hidden pointers
4890 Prev and Next and stored and later restored after the assignment takes
4891 place.
4892 * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
4893 kludge for .NET/JVM to recognize a particular piece of code coming from
4894 Heap_Management and change the call to Finalize into Deep_Finalize.
4895 * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
4896 finalization collections on .NET/JVM only for types derived from
4897 Controlled. Separate the association of storage pools with a collection
4898 and only allow it on non-.NET/JVM targets.
4899 (Make_Attach_Call): New routine.
4900 (Make_Detach_Call): New routine.
4901 (Process_Object_Declarations): Suppress the generation of
4902 build-in-place return object clean up code on .NET/JVM since it uses
4903 pools.
4904 * exp_ch7.ads (Make_Attach_Call): New routine.
4905 (Make_Detach_Call): New routine.
4906 * exp_intr.adb Add with and use clause for Targparm.
4907 (Expand_Unc_Deallocation): Detach a controlled object from a collection
4908 on .NET/JVM targets.
4909 * rtsfind.ads: Add entries RE_Attach, RE_Detach and
4910 RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
4911 * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
4912 names used in finalization.
4913
49142011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4915
4916 * a-fihema.adb: Add with and use clauses for System.Soft_Links.
4917 (Attach, Detach): Lock the current task when chaining an object onto a
4918 collection.
4919
df3e68b1
HK
49202011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
4921
4922 * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
4923 Rewritten to create the message strings when the exception is not
4924 raised by an abort during finalization.
4925 * a-except.ads, a-except-2005.ads: Add pragma Export for procedure
4926 Raise_From_Controlled_Operation and update its associated comment.
4927 * a-fihema.ads, a-fihema.adb: New GNAT unit.
4928 Ada.Finalization.Heap_Management provides key functionality
4929 associated with controlled objects on the heap, their creation,
4930 finalization and reclamation. Type Finalization_Collection is
4931 effectively a wrapper which sits ontop of a storage pool and performs
4932 all necessary bookkeeping for all the objects it contains. Each
4933 access-to-controlled or access-to-class-wide type receives a collection
4934 as part of its expansion. The compiler generates buffer code and
4935 invokes Allocate / Deallocate to create and destroy allocated
4936 controlled objects.
4937 * a-finali.adb ("="): Removed.
4938 * a-finali.ads ("="): Removed. Controlled types no longer carry hidden
4939 fields Prev and Next.
4940 * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
4941 A library unit with at least one controlled object on the library level
4942 has a special finalizer which is invoked by the binder. To signal this,
4943 ali files carry field PF.
4944 * ali.ads: New field in type Unit_Record called Has_Finalizer. Add
4945 associated comment on field usage.
4946 * a-tags.adb (Get_RC_Offset): Removed.
4947 (Needs_Finalization): New routine.
4948 * a-tags.ads: Update the structure of the GNAT dispatch tables.
4949 Dispatch tables now carry field Needs_Finalization which provides
4950 runtime indication whether a type is controlled or has controlled
4951 components or both. Remove field RC_Offset.
4952 (Get_RC_Offset): Removed along with its associated pragma Export.
4953 Since tagged types with controlled components no longer carry hidden
4954 field _controller, the special mechanism to retrieve its location is no
4955 longer needed.
4956 (Needs_Finalization): New routine.
4957 * atree.ads, atree.adb (Elist24): New routine.
4958 (Set_Elist24): New routine.
4959 * atree.h: Add a define clause for Elist24.
4960 * bindgen.adb New library-level variable Lib_Final_Built.
4961 (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
4962 presence of a VM target, the routine generates calls to the proper
4963 library finalization routine.
4964 (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
4965 targets. Set the correct library finalization routine depending on
4966 whether the library has controlled objects or this is a VM compilation.
4967 (Gen_Finalize_Library_Ada): New routine. This procedure generates calls
4968 to library-level finalizers of compiled units in reverse order of
4969 elaboration. It also produces exception management code and reraises a
4970 potential exception after all units have been finalized.
4971 (Gen_Finalize_Library_C): New routine. This procedure generates calls to
4972 library-level finalizers of compiled units in reverse order of
4973 elaboration.
4974 (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
4975 definitions of all library-level finalizers available to the compilation
4976 (Gen_Main_Ada): Directly call Adafinal which now contails all target
4977 dependent code.
4978 (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
4979 System.Standard_Library.Adafinal directly. If the library needs
4980 finalization actions, create the sequence of finalization calls.
4981 (Gen_Output_File_Ada): Alphabetize local variables and constants.
4982 Generate a with clause for System.Soft_Links when compiling for a VM.
4983 Remove the code which imports System.Standard_Library.Adafinal as
4984 Do_Finalize. Generate the library finalization routine.
4985 (Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
4986 If the library needs finalization actions, create all the definitions
4987 of library- level finalizers.
4988 (Has_Finalizer): New routine. Determines whether at least one compiled
4989 unit has a library-level finalizer.
4990 Add type Qualification_Mode.
4991 (Set_Unit_Name): Add a formal which controls the replacement of a dot.
4992 * einfo.adb: New usage of field 15 as Return_Flag.
4993 Remove Finalization_Chain_Entity from the usages of field 19.
4994 Remove Associated_Final_Chain from the usages of field 23.
4995 New usage of field 23 as Associated_Collection.
4996 New usage of field 24 as Finalizer.
4997 New usage of flag 252 as Is_Processed_Transient.
4998 (Associated_Final_Chain): Removed.
4999 (Associated_Collection): New routine.
5000 (Finalization_Chain_Entity): Removed.
5001 (Finalizer): New routine.
5002 (Is_Finalizer): New routine.
5003 (Is_Processed_Transient): New routine.
5004 (Return_Flag): New routine.
5005 (Set_Associated_Final_Chain): Removed.
5006 (Set_Associated_Collection): New routine.
5007 (Set_Finalization_Chain_Entity): Removed.
5008 (Set_Finalizer): New routine.
5009 (Set_Is_Processed_Transient): New routine.
5010 (Set_Return_Flag): New routine.
5011 (Write_Entity_Flags): Include Is_Processed_Transient to the list of
5012 displayed flags.
5013 (Write_Field8_Name): Alphabetize the output.
5014 (Write_Field11_Name): Alphabetize the output.
5015 (Write_Field12_Name): Alphabetize the output.
5016 (Write_Field13_Name): Alphabetize the output.
5017 (Write_Field14_Name): Alphabetize the output.
5018 (Write_Field15_Name): Alphabetize the output.
5019 (Write_Field16_Name): Alphabetize the output.
5020 (Write_Field17_Name): Alphabetize the output.
5021 (Write_Field18_Name): Alphabetize the output.
5022 (Write_Field19_Name): Alphabetize the output. Remove the output of
5023 Finalization_Chain_Entity.
5024 (Write_Field20_Name): Alphabetize the output.
5025 (Write_Field21_Name): Alphabetize the output.
5026 (Write_Field22_Name): Alphabetize the output.
5027 (Write_Field23_Name): Alphabetize the output. Remove the output of
5028 Associated_Final_Chain. Add output for Associated_Collection.
5029 (Write_Field24_Name): Alphabetize the output.
5030 (Write_Field25_Name): Add output for Finalizer.
5031 (Write_Field26_Name): Alphabetize the output.
5032 (Write_Field27_Name): Alphabetize the output.
5033 (Write_Field28_Name): Alphabetize the output.
5034 * einfo.ads: Add new field description for Associated_Collection and
5035 its uses in nodes.
5036 Remove Associated_Final_Chain and its uses in nodes.
5037 Remove Finalization_Chain_Entity and its uses in nodes.
5038 Add new field description for Finalizer and its uses in nodes.
5039 Add new synthesized attribute Is_Finalizer.
5040 Add new flag description for Is_Processed_Transient and its uses in
5041 nodes.
5042 Add new field description for Return_Flag and its uses in nodes.
5043 (Associated_Final_Chain): Removed along with its pragma Inline.
5044 (Associated_Collection): New routine and pragma Inline.
5045 (Finalization_Chain_Entity): Removed along with its pragma Inline.
5046 (Finalizer): New routine and pragma Inline.
5047 (Is_Finalizer): New routine and pragma Inline.
5048 (Is_Processed_Transient): New routine and pragma Inline.
5049 (Return_Flag): New routine and pragma Inline.
5050 (Set_Associated_Final_Chain): Removed along with its pragma Inline.
5051 (Set_Associated_Collection): New routine and pragma Inline.
5052 (Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
5053 (Set_Finalizer): New routine and pragma Inline.
5054 (Set_Is_Processed_Transient): New routine and pragma Inline.
5055 (Set_Return_Flag): New routine and pragma Inline.
5056 * exp_aggr.adb: Alphabetize subprograms.
5057 (Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
5058 (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
5059 associated comments. Remove local variables External_Final_List and
5060 Attach.
5061 Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
5062 Ancestor. Remove the retrieval of finalization lists. Update the call to
5063 Make_Adjust_Call.
5064 (Convert_Aggr_In_Allocator): Remove the retrieval of finalization
5065 lists. Update the call to Late_Expansion.
5066 (Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
5067 (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
5068 (Gen_Assign): Remove the retrieval of the finalization list used to
5069 build the assignment. Update the calls to Make_Init_Call and
5070 Make_Adjust_Call.
5071 (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
5072 Remove the mechanism to determine attachment levels and finalization
5073 list retrieval. Remove the processing for coextensions.
5074 (Init_Controller): Removed. Controllers no longer exist.
5075 (Late_Expansion): Remove formals Flist and Obj along with their
5076 associated comments. Update the calls to Build_Record_Aggr_Code and
5077 Build_Array_Aggr_Code.
5078 * exp_ch13.adb (Expand_N_Free_Statement): New routine.
5079 (Expand_N_Freeze_Entity): Add special processing for finalizers which
5080 appear in entry bodies, protected subprograms and task bodies.
5081 * exp_ch13.ads (Expand_N_Free_Statement): New routine.
5082 * exp_ch3.adb (Add_Final_Chain): Removed.
5083 (Build_Array_Init_Proc): Alphabetize local variables.
5084 (Build_Assignment): Alphabetize local variables. Update the call to
5085 Maked_Adjust_Call.
5086 (Build_Class_Wide_Master): Rename local variables to better reflect
5087 their role.
5088 (Build_Discriminant_Assignments): Code reformatting.
5089 (Build_Init_Call_Thru): Code reformatting.
5090 (Build_Init_Procedure): Code reformatting. Generate a special version
5091 of Deep_Finalize which is capable of finalizing all initialized
5092 components and ignore the rest.
5093 (Build_Init_Statements): Rename local variables to better reflect their
5094 role.
5095 Reimplement the mechanism to include the creation and update of an index
5096 variable called a "counter". It is used as a bookmark for tracing
5097 initialized and non-initialized components.
5098 (Build_Initialization_Call): Remove local variable Controller_Typ.
5099 Alphabetize all local variables. Remove the initialization of the
5100 record controller and update the call to Make_Init_Call.
5101 (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
5102 New local variable Counter.
5103 (Constrain_Array): Alphabetize.
5104 (Expand_Freeze_Array_Type): Create a collection instead of a
5105 finalization list.
5106 (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
5107 Finalize_Address which is used in conjunction with allocated controlled
5108 objects.
5109 (Expand_N_Object_Declaration): Remove the creation of a finalization
5110 list for anonymous access types. Update the calls to Make_Init_Call and
5111 Make_Adjust_Call.
5112 (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
5113 retrieval of finalization lists. Remove the expansion of the record
5114 controller. Create TSS primitive Finalize_Address used in conjunction
5115 with controlled objects on the heap. Create finalization collections
5116 for access-to-controlled record components.
5117 (Expand_Record_Controller): Removed.
5118 (Freeze_Type): Remove the freezing of record controllers. Freezing of
5119 class-wide types now requires additional processing. Create
5120 finalization collections for access-to-controlled types.
5121 (Increment_Counter): New routine.
5122 (Make_Counter): New routine.
5123 (Make_Eq_If): Remove the mention of Name_uController.
5124 (Make_Predefined_Primitive_Specs): There is no longer need to skip
5125 types coming from System.Finalization_Root.
5126 (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
5127 (Predefined_Primitive_Bodies): There is no longer need to skip types
5128 coming from System.Finalization_Root.
5129 (Stream_Operation_OK): Do not generate stream routines for
5130 type Ada.Finalization.Heap_Management.Finalization_Collection.
5131 * exp_ch3.ads: Alphabetize subprograms.
5132 * exp_ch4.adb: Remove with and use clause for Sem_Ch8.
5133 Add with and use clause for Lib.
5134 (Complete_Coextension_Finalization): Removed.
5135 (Complete_Controlled_Allocation): New routine. Create a finalization
5136 collection for anonymous access-to-controlled types. Create a custom
5137 Allocate which interfaces with the back end and the machinery in
5138 Heap_Management.
5139 (Expand_Allocator_Expression): Add necessary calls to
5140 Complete_Controlled_Allocation. Remove the retrieval of finalization
5141 lists. Update the calls to Make_Adjust_Call. Generate a call to
5142 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
5143 the associated collection.
5144 (Expand_N_Allocator): Remove the processing for dynamic coextensions.
5145 Code clean up. Remove the retrieval of finalization lists and
5146 attachment levels.
5147 Update the call to Make_Init_Call. Generate a call to
5148 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
5149 the associated collection.
5150 (Get_Allocator_Final_List): Removed. Finalization lists are not
5151 available.
5152 (Suitable_Element): Remove the mention of Name_uController.
5153 * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
5154 (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
5155 the left hand side, carry out the assignment and adjust the left hand
5156 side.
5157 * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
5158 (Add_Collection_Actual_To_Build_In_Place_Call): New routine.
5159 (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
5160 BIP_Collection and BIPcollection.
5161 (Build_Heap_Allocator): New routine used to allocate the return object
5162 of a build-in-place function onto a collection.
5163 (Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
5164 (Expand_Call): Do not replace direct calls to Deep routines with their
5165 aliases.
5166 (Expand_N_Extended_Return_Statement): Give all variables shorter names
5167 and update their occurrences. Add a special return flag to monitor the
5168 [ab]normal execution of the function. The flag is set right before the
5169 return statement.
5170 Rewrite the mechanism used to allocate a build-in-place return object
5171 on the heap or on a storage pool.
5172 (Is_Direct_Deep_Call): New routine.
5173 (Make_Build_In_Place_Call_In_Allocator): Add a collection to a
5174 build-in-place function call instead of a final list. Build a call to
5175 Set_Finalize_Address_Ptr to decorate the associated collection.
5176 (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
5177 order to name the build-in-place function call's result for later
5178 finalization. Add a collection to a build-in-place function call
5179 instead of a final list.
5180 (Make_Build_In_Place_Call_In_Assignment): Add a collection to a
5181 build-in-place function call instead of a final list. Remove the code
5182 which moves one final list and transforms it into the actual in a
5183 nested build-in-place call.
5184 (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
5185 build-in-place function call instead of a final list.
5186 (Move_Final_List): Removed.
5187 (Needs_BIP_Collection): New routine.
5188 (Needs_BIP_Final_List): Removed.
5189 * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
5190 enumeration type BIP_Formal_Kind.
5191 Update the related comment.
5192 (Needs_BIP_Collection): New routine.
5193 (Needs_BIP_Final_List): Removed.
5194 * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
5195 and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
5196 majority of subprograms in this unit. Add Name_Finalize_Address to
5197 array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
5198 (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
5199 statements for an array type.
5200 (Build_Adjust_Statements): Create the adjust statements for a record
5201 type.
5202 (Build_Cleanup_Statements): New routine. A procedure which given any
5203 construct containing asynchronous calls, references to _master, or is a
5204 task body, a task allocation or a protected body produces the necessary
5205 runtime calls to clean up these constructs.
5206 (Build_Exception_Handler): New routine.
5207 (Build_Final_List): Removed.
5208 (Build_Finalization_Collection): New routine. A core procedure which
5209 creates a collection to service heap allocated controlled objects
5210 associated with an access-to-controlled type.
5211 (Build_Finalize_Statements): Create the finalization statements for a
5212 record types.
5213 (Build_Finalizer): New routine. A core procedure which given any
5214 construct with declarations and/or statements detects all objects which
5215 need any type of clean up (controlled objects, protected objects) and
5216 generates all necessary code to clean up the said objects in the proper
5217 order.
5218 (Build_Finalizer_Call): New routine.
5219 (Build_Initialize_Statements): Create the initialization statements for
5220 an array type. The generated routine contains code to finalize partially
5221 initialized arrays.
5222 (Build_Object_Declarations): New routine.
5223 (Build_Raise_Statement): New routine.
5224 (Clean_Simple_Protected_Objects): Removed.
5225 (Controller_Component): Removed.
5226 (Enclosing_Function): New routine.
5227 (Expand_Cleanup_Actions): Create a finalizer for a construct which has
5228 either declarations or statements or both.
5229 (Expand_N_Package_Body): Create a finalizer for a non-generic package.
5230 (Expand_N_Package_Declaration): Create a finalizer for a non-generic
5231 package.
5232 (Find_Final_List): Removed.
5233 (Global_Flist_Ref): Removed.
5234 (In_Finalization_Root): Removed.
5235 (Insert_Actions_In_Scope_Around): Determine the range of the transient
5236 scope in terms of tree nodes. Process all transient variables within
5237 that range.
5238 (Make_Adjust_Call): Rewritten. There is no longer an attach call
5239 generated after the adjust.
5240 (Make_Attach_Call): Removed.
5241 (Make_Call): New routine.
5242 (Make_Clean): Removed.
5243 (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
5244 build routines.
5245 (Make_Deep_Proc): Rewritten to generate the new profile signature used
5246 in Deep routines.
5247 (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
5248 build routines.
5249 (Make_Final_Call): Modified to simply create a call to either
5250 Deep_Finalize or Finalize.
5251 (Make_Finalize_Address_Body): New routine.
5252 (Make_Finalize_Address_Stmts): New routine. A function which produces
5253 TSS primitive Finalize_Address used in conjunction with heap allocated
5254 controlled objects.
5255 (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
5256 (Make_Init_Call): Rewritten. There is no longer an attach call
5257 generated after initialization.
5258 (Make_Local_Deep_Finalize): New routine.
5259 (Make_Set_Finalize_Address_Ptr_Call): New routine.
5260 (Make_Transient_Block): Remove the finalization list retrieval and
5261 manipulation.
5262 (Needs_Finalization): Moved to Exp_Util.
5263 (Parent_Field_Type): New routine.
5264 (Preprocess_Components): New routine.
5265 (Process_Transient_Objects): New routine.
5266 (Wrap_HSS_In_Block): New routine.
5267 (Wrap_Transient_Declaration): Remove finalization list management and
5268 controller insertion.
5269 (Wrap_Transient_Expression): Code reformatting.
5270 (Wrap_Transient_Statement): Code reformatting.
5271 * exp_ch7.ads (Build_Final_List): Removed.
5272 (Build_Finalization_Collection): New routine.
5273 (Build_Raise_Statement): New routine.
5274 (Controller_Component): Removed.
5275 (Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
5276 (Find_Final_List): Removed.
5277 (In_Finalization_Root): Removed.
5278 (Is_Simple_Protected_Type): Update related comment.
5279 (Make_Adjust_Call): New parameter profile and associated comments.
5280 (Make_Attach_Call): Removed.
5281 (Make_Final_Call): New parameter profile and associated comments.
5282 (Make_Finalize_Address_Body): New routine.
5283 (Make_Init_Call): New parameter profile and associated comments.
5284 (Make_Local_Deep_Finalize): New routine.
5285 (Make_Set_Finalize_Address_Ptr_Call): New routine.
5286 (Needs_Finalization): Moved to Exp_Util.
5287 * exp_ch9.adb (Add_Object_Pointer): Code reformatting.
5288 (Expand_N_Protected_Body): Remove the handling of finalization lists.
5289 (Find_Protection_Type): Moved to Exp_Util.
5290 * exp_disp.adb: Remove with and use clauses for Exp_Ch7.
5291 (Make_DT): Update sequence of dispatch table initialization. Remove the
5292 initialization of field RC_Offset. Add initialization of field Needs_
5293 Finalization.
5294 * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
5295 Reimplement how an object is first finalized, then deallocated.
5296 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
5297 Code reformatting.
5298 * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
5299 Register TSS_Finalize_Address with type TSS_Names.
5300 * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
5301 procedure provides the interface between an allocation / deallocation
5302 and the support machinery in Ada.Finalization.Heap_Management.
5303 (Find_Init_Call): Code reformatting.
5304 (Find_Init_Call_In_List): Code reformatting.
5305 (Find_Protection_Type): Moved from Exp_Ch9.
5306 (Find_Prim_Op): Reimplement to add preference of recovered primitive.
5307 (Has_Controlled_Coextensions): Removed.
5308 (Has_Controlled_Objects): New routine.
5309 (In_Library_Level_Package_Body): New routine.
5310 (Insert_Action_After): New routine.
5311 (Is_Finalizable_Transient): New routine. This predicate determines
5312 whether an object declaration is one of the many variants of controlled
5313 transients.
5314 (Is_Null_Access_BIP_Func_Call): New routine.
5315 (Is_Non_BIP_Func_Call): New routine.
5316 (Is_Related_To_Func_Return): New routine.
5317 (Needs_Finalization): Moved from Exp_Ch7.
5318 * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
5319 (Find_Protection_Type): Moved from Exp_Ch9.
5320 (Has_Controlled_Coextensions): Removed.
5321 (Has_Controlled_Objects): New routine.
5322 (In_Library_Level_Package_Body): New routine.
5323 (Insert_Action_After): New routine.
5324 (Is_Finalizable_Transient): New routine.
5325 (Is_Null_Access_BIP_Func_Call): New routine.
5326 (Is_Non_BIP_Func_Call): New routine.
5327 (Is_Related_To_Func_Return): New routine.
5328 (Needs_Finalization): Moved from Exp_ch7.
5329 * expander.adb (Expand): Add a case for N_Free_Statement.
5330 * freeze.adb (Freeze_All): Replace the generation of a finalization
5331 list with a collection for access-to-controlled types.
5332 (Freeze_Entity): Code reformatting.
5333 (Freeze_Record_Type): Remove the freezing of a record controller
5334 component.
5335 (Freeze_Subprogram): Code reformatting.
5336 * inline.adb (Cleanup_Scopes): Remove the reset of the scope
5337 finalization list.
5338 * lib-writ.adb (Write_Unit_Information): Output "PF" when a package
5339 has a library-level finalizer.
5340 * lib-writ.ads: Add "PF" to the sequence of unit attributes.
5341 * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
5342 * Makefile.rtl: Remove a-filico and s-finimp from the list of object
5343 files. Add a-fihema to the list of object files.
5344 * par-ch4.adb:
5345 Alphabetize the associations in type Is_Parameterless_Attribute.
5346 * rtsfind.ads: Ada.Finalization_List.Controller and
5347 System.Finalization_Implementation are no longer a GNAT unit.
5348 Update the range of type Ada_Finalization_Child. Remove the following
5349 recoverable entities:
2c7f9cc0 5350
df3e68b1
HK
5351 RE_Attach_To_Final_List
5352 RE_Deep_Tag_Attach
5353 RE_Finalize_List
5354 RE_Finalize_One
5355 RE_Finalizable_Ptr_Ptr
5356 RE_Global_Final_List
5357 RE_Limited_Record_Controller
5358 RE_List_Controller
5359 RE_Move_Final_List
5360 RE_Record_Controller
5361 RE_Simple_List_Controller
2c7f9cc0 5362
df3e68b1 5363 Add the following recoverable entities:
2c7f9cc0 5364
df3e68b1
HK
5365 RE_Add_Offset_To_Address
5366 RE_Allocate
5367 RE_Base_Pool
5368 RE_Deallocate
5369 RE_Exception_Identity
5370 RE_Finalization_Collection
5371 RE_Finalization_Collection_Ptr
5372 RE_Needs_Finalization
5373 RE_Save_Library_Occurrence
5374 RE_Set_Finalize_Address_Ptr
5375 RE_Set_Storage_Pool_Ptr
5376 RE_Storage_Count
5377 * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
5378 Name_uController.
5379 * sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
5380 (First_Stored_Discriminant): Remove the mention of Name_uController.
5381 * sem_aux.ads: Comment reformatting.
5382 * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
5383 to redecorate an already existing class-wide type.
5384 (Decorate_Tagged_Type): New parameter profile and associated comment.
5385 Create a "shadow class-wide type" for a shadow entity.
5386 * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
5387 of the final chain along with the associated comment.
5388 * sem_ch3.adb (Access_Type_Declaration): Add new local variable
5389 Full_Desig and set it to the full view of the designated type.
5390 Initialize the finalization collection to empty.
5391 (Build_Derived_Record_Type): Alphabetize local variables. Code
5392 reformatting.
5393 (Collect_Fixed_Components): Remove the mention of Name_uController.
5394 (Create_Constrained_Components): Remove the mention of Name_uController.
5395 (Make_Class_Wide_Type): Add specialized code to redecorate an existing
5396 class-wide type of a shadow entity.
5397 (Process_Full_View): Update the machinery which marks type
5398 Limited_Controlled's entity as limited.
5399 * sem_ch4.adb (Analyze_One_Call): Code reformatting.
5400 * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
5401 list, instead make a collection build-in-place formal.
5402 * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
5403 a designated type in order to establish a match between the renaming
5404 and the renamed entity.
5405 (Find_Selected_Component): Add guard to prevent spurious exceptions
5406 from being raised on .NET/JVM.
5407 * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
5408 to the list of primitive that need special processing. Update arrays
5409 C_Names and D_Names.
5410 (Replace_Types): Handle class-wide types.
5411 * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
5412 different parameter profile, look at the first formal.
5413 * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
5414 use clauses for Exp_Util.
5415 * sem_res.adb: Remove with and use clauses for Elists.
5416 (Propagate_Coextensions): Removed.
5417 (Resolve_Allocator): Do not propagate the list of coextensions from one
5418 allocator to another.
5419 * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
5420 Deaccessed_T to Desig_Typ.
5421 (Enter_Name): Remove the mention of Name_uController.
5422 (Gather_Components): Remove the mention of Name_uController.
5423 (Incomplete_Or_Private_View): New routine.
5424 (Is_Coextension_Root): Removed.
5425 (Is_Fully_Initialized_Type): Remove the mention of Name_uController.
5426 * sem_util.ads (Incomplete_Or_Private_View): New routine.
5427 (Is_Coextension_Root): Removed.
5428 * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
5429 Controlled types are now derived from a null tagged record. Remove
5430 types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
5431 * sinfo.adb (Coextensions): Removed.
5432 (Set_Coextensions): Removed.
5433 * sinfo.ads: Remove Coextensions from the explanation of node fields
5434 and its uses in nodes.
5435 Update the field usage of N_Allocator.
5436 (Coextensions): Removed along with its pragma Inline.
5437 (Set_Coextensions): Removed along with its pragma Inline.
5438 * snames.ads-tmpl: Remove names
2c7f9cc0 5439
df3e68b1
HK
5440 Name_uClean
5441 Name_uController
5442 Name_uFinal_List
5443 Name_uLocal_Final_List
5444 Name_Finalization_Root
5445 Name_Next
5446 Name_Prev
2c7f9cc0 5447
df3e68b1 5448 Add names
2c7f9cc0 5449
df3e68b1
HK
5450 Name_uFinalizer
5451 Name_Finalize_Address
5452 * s-pooglo.adb (Allocate): Add overriding indicator.
5453 (Deallocate): Add overriding indicator.
5454 (Storage_Size): Add overriding indicator.
5455 * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
5456 than Finalize_Global_List.
5457 (Null_Finalize_Global_List): Removed.
5458 (Save_Library_Occurrence): New routine.
5459 * s-soflin.ads: Remove variable Finalize_Global_List along with its
5460 initialization. Add variable Finalize_Library_Objects along with its
5461 pragma Export. Add variables Library_Exception and
5462 Library_Exception_Set along with their pragma Export.
5463 (Null_Finalize_Global_List): Removed.
5464 (Save_Library_Occurrence): New routine.
5465 * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
5466 rather than Finalize_Global_List.
5467 * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
5468 of the constructed node.
5469
2ee06322
RO
54702011-08-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5471
5472 * link.c: Include "auto-host.h" before system headers.
5473
f77b022b
VC
54742011-08-03 Vincent Celier <celier@adacore.com>
5475
5476 * make.adb (Gnatmake): Add to table Library_Projs only library projects
5477 that are not extended. Do not check if a library project that is
5478 extended should be regenerated. Do not add to table Library_Paths the
5479 libraries that are in extended projects. Link only with libraries that
5480 are in libray projects that are not extended.
5481 * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
5482 for a library project that is extended.
5483
0187b60e
AC
54842011-08-03 Gary Dismukes <dismukes@adacore.com>
5485
5486 * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
5487 conforming subprogram renamings that appear to be completions if they
5488 are not fully conformant.
5489 Such renamings are homographs but not completions.
5490 * sem_type.adb (Disambiguate): Handle disambiguation of overloaded
5491 names in a subprogram renaming that appears in an instance.
5492
54932011-08-03 Ed Schonberg <schonberg@adacore.com>
5494
5495 * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
5496 not immutably limited, build actual subtype from expression to provide
5497 proper bounds to caller.
5498
54992011-08-03 Gary Dismukes <dismukes@adacore.com>
5500
5501 * sem_ch8.adb: Minor comment correction.
5502
55032011-08-03 Thomas Quinot <quinot@adacore.com>
5504
5505 * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
5506 returning a limited array, use an extended return statement.
5507
55082011-08-03 Vincent Celier <celier@adacore.com>
5509
5510 * make.adb (Initialize): If --subdirs= is used, but no project file is
5511 specified, attempt to create the specify subdir if it does not already
5512 exist and use it as the object directory as if -D had been specified.
5513
55142011-08-03 Arnaud Charlet <charlet@adacore.com>
5515
5516 * s-tpopsp-vms.adb: New file.
5517 * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
5518 * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.
5519
e280f981
AC
55202011-08-03 Emmanuel Briot <briot@adacore.com>
5521
5522 * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
5523 package.
5524
55252011-08-03 Yannick Moy <moy@adacore.com>
5526
5527 * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
5528 * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
5529 * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
5530 detect that an array has static bounds.
5531
98c99a5a
AC
55322011-08-03 Thomas Quinot <quinot@adacore.com>
5533
5534 * exp_dist.adb: Minor reformatting.
5535
55362011-08-03 Arnaud Charlet <charlet@adacore.com>
5537
5538 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
5539 (ATCB_Key): Removed, not always used.
5540
55412011-08-03 Emmanuel Briot <briot@adacore.com>
5542
5543 * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
5544 clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
5545 most remaining global variables.
5546
686d0984
AC
55472011-08-03 Robert Dewar <dewar@adacore.com>
5548
5549 * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
5550 prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
5551 reformatting.
5552
55532011-08-03 Javier Miranda <miranda@adacore.com>
5554
5555 * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
5556 that must be passed by copy in VM targets.
5557
55582011-08-03 Emmanuel Briot <briot@adacore.com>
5559
5560 * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
5561 duplicates a similar htable now in the project tree.
5562
55632011-08-03 Claire Dross <dross@adacore.com>
5564
5565 * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
5566 a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
5567 Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
5568 Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
5569 Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
5570 Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
5571 Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
5572 update.
5573
55742011-08-03 Arnaud Charlet <charlet@adacore.com>
5575
5576 * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
5577 (ATCB_Key): Removed, not always used.
5578 * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
5579 s-taprop-posix.adb.
5580 * s-tpopsp-tls.adb: New file.
5581 * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
5582 x86/x64/ia64/powerpc/sparc Linux.
5583
55842011-08-03 Arnaud Charlet <charlet@adacore.com>
5585
5586 * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
5587 * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.
5588
55892011-08-03 Thomas Quinot <quinot@adacore.com>
5590
5591 * rtsfind.ads, exp_dist.adb, exp_dist.ads
5592 (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
5593 Fix type selection for mapping integer types to PolyORB types.
5594
55952011-08-03 Bob Duff <duff@adacore.com>
5596
5597 * sem_ch7.adb: Minor comment clarification.
5598
55992011-08-03 Bob Duff <duff@adacore.com>
5600
5601 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
5602 an error analyzing a choice, skip further processing. Further
5603 processing could cause a crash or cascade errors.
5604
40ecf2f5
EB
56052011-08-03 Emmanuel Briot <briot@adacore.com>
5606
5607 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
5608 prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
5609 prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
5610 prj-env.ads (Shared_Project_Tree_Data): new type
5611 An aggregate project and its aggregated trees need to share the common
5612 data structures used for lists of strings, packages,... This makes the
5613 code simpler since otherwise we have to pass the root tree (also used
5614 for the configuration file data) in addition to the current project
5615 tree. This also avoids ambiguities as to which tree should be used.
5616 And finally this saves a bit of memory.
5617 (For_Every_Project_Imported): new parameter Tree.
5618 Since aggregated projects are using a different tree, we need to let
5619 the caller know which tree to use to manipulate the returned project.
5620
9fde638d
RD
56212011-08-03 Robert Dewar <dewar@adacore.com>
5622
5623 * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
5624 prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
5625 lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
5626 prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.
5627
95eb8b69
AC
56282011-08-03 Javier Miranda <miranda@adacore.com>
5629
5630 * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
5631 Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
5632
56332011-08-03 Bob Duff <duff@adacore.com>
5634
5635 * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
5636 the Base_Type.
5637
56382011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>
5639
5640 * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
5641 g-sehash.ads: Fix typo. Update header.
5642
56432011-08-03 Thomas Quinot <quinot@adacore.com>
5644
5645 * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
5646 expansion.
5647
56482011-08-03 Gary Dismukes <dismukes@adacore.com>
5649
5650 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
5651 prefixes of private types along with records, since the selector may be
5652 a discriminant.
5653 * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
5654 private types along with records, since the selector may be a
5655 discriminant.
5656
92e77027
AC
56572011-08-03 Emmanuel Briot <briot@adacore.com>
5658
b2f7ebc1 5659 * prj-pp.adb (Pretty_Print): Remove trailing blank line.
92e77027
AC
5660
56612011-08-03 Javier Miranda <miranda@adacore.com>
5662
5663 * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
5664 Tagged_Type_Expansion.
5665
56662011-08-03 Yannick Moy <moy@adacore.com>
5667
b2f7ebc1
GP
5668 * sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARK
5669 violation when the argument of concatenation is the name of a
5670 constant.
92e77027 5671
ab29a348
EB
56722011-08-03 Emmanuel Briot <briot@adacore.com>
5673
5674 * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
5675 prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
5676 (Process_Declarative_Items): new parameter Child_Env.
5677
9466892f
AC
56782011-08-03 Yannick Moy <moy@adacore.com>
5679
589ef536
GP
5680 * alfa.ads: Update format of ALFA section in ALI file in order to
5681 add a mapping from bodies to specs when both are present.
5682 (ALFA_Scope_Record): Add components for spec file/scope.
5683 * get_alfa.adb (Get_ALFA): Read the new file/scope for spec when
5684 present.
5685 * lib-xref-alfa.adb (Collect_ALFA): After all scopes have been
5686 collected, fill in the spec information when relevant.
5687 * put_alfa.adb (Put_ALFA): Write the new file/scope for spec when
9466892f
AC
5688 present.
5689
56902011-08-03 Eric Botcazou <ebotcazou@adacore.com>
5691
5692 * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
5693 code unit to decide whether to add internally generated subprograms.
2c7f9cc0 5694
9466892f
AC
56952011-08-03 Javier Miranda <miranda@adacore.com>
5696
5697 * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
589ef536
GP
5698 * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must
5699 be handled by copy in VM targets.
9466892f
AC
5700
57012011-08-03 Emmanuel Briot <briot@adacore.com>
5702
589ef536 5703 * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Share
9466892f
AC
5704 code with Makeutl.Get_Switches.
5705 * prj-tree.adb: Update comment.
5706
b5ea9143
AC
57072011-08-03 Thomas Quinot <quinot@adacore.com>
5708
5709 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
5710 subprogram with a limited formal that does not support external
5711 streaming.
5712
57132011-08-03 Yannick Moy <moy@adacore.com>
5714
5715 * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
5716 continuation line
5717 * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
5718 not from current unit in two phases, because it is not possible to
5719 change the table while iterating over its content.
5720 * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity
5721
57222011-08-03 Sergey Rybin <rybin@adacore.com>
5723
5724 * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
5725 * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)
5726
668a19bc
ES
57272011-08-03 Ed Schonberg <schonberg@adacore.com>
5728
5729 * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
5730 and the component type is composite, this is ambiguous for predefined
5731 concatenation, but if the node is not overloaded and the entity is a use
5732 -defined function its profile can be used to resolve that aggregate.
5733
170b2989
AC
57342011-08-03 Robert Dewar <dewar@adacore.com>
5735
5736 * exp_ch4.adb: Minor code cleanup.
5737
57382011-08-03 Thomas Quinot <quinot@adacore.com>
5739
5740 * exp_dist.adb: Do not generate distribution stubs if serious errors
5741 have been diagnosed.
5742
57432011-08-03 Ed Schonberg <schonberg@adacore.com>
5744
5745 * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
5746 the first formal of a primitive operation, go to the base type to
5747 handle properly an access to a derived type with constrained
5748 discriminants.
5749 * sem_type.adb (Disambiguate): an immediately visible operator hides a
5750 user-defined function that is only use-visible.
170b2989 5751
e917aec2
RD
57522011-08-03 Robert Dewar <dewar@adacore.com>
5753
5754 * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
5755 make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
5756 fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
5757 prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
5758 sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
5759 prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
5760 prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
5761 alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting
5762
57632011-08-03 Robert Dewar <dewar@adacore.com>
5764
5765 * repinfo.adb (List_Mechanism): Add handling of
5766 Convention_Ada_Pass_By_XXX.
5767 * sem_mech.adb (Set_Mechanism): Ditto.
5768 * sem_prag.adb (Process_Convention): Add entries for
5769 Convention_Ada_Pass_By_XXX.
5770 * snames.adb-tmpl, snames.ads-tmpl: Ditto.
5771
49bfcf43
AC
57722011-08-03 Pascal Obry <obry@adacore.com>
5773
5774 * makeutl.adb: Minor reformatting.
5775
57762011-08-03 Vincent Celier <celier@adacore.com>
5777
5778 * fname-uf.adb
5779 (Get_File_Name) If the file cannot be found when there are no config
5780 pragmas file and May_Fail is True, return No_File instead of the file
5781 name, to be consistent.
5782
57832011-08-03 Pascal Obry <obry@adacore.com>
5784
5785 * adaint.c (__gnat_is_executable_file_attr): Avoid access
5786 to null pointer.
5787
57882011-08-03 Javier Miranda <miranda@adacore.com>
5789
5790 * sem_ch13.adb
5791 (Same_Representation): In VM targets the representation of arrays with
5792 aliased components differs from arrays with non-aliased components.
5793
34798441
EB
57942011-08-03 Emmanuel Briot <briot@adacore.com>
5795
5796 * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
5797 not systematically lower case attribute indexes that contain no "."
5798 Fix definition of several Naming attributes, which take
5799 a unit name as index and therefore should be case insensitive.
5800 Minor refactoring (reduce length of variable names).
5801
58022011-08-03 Emmanuel Briot <briot@adacore.com>
5803
5804 * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.
5805
4437a530
EB
58062011-08-03 Emmanuel Briot <briot@adacore.com>
5807
5808 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
5809 prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
5810 prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
5811 prj-tree.ads (Prj.Tree.Environment): new type.
5812
804fe3c4
EB
58132011-08-03 Emmanuel Briot <briot@adacore.com>
5814
5815 * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
5816 prj-tree.adb, prj-tree.ads (Environment): new type.
5817
c565bc66
AC
58182011-08-03 Emmanuel Briot <briot@adacore.com>
5819
5820 * prj-tree.ads: Remove unused variable.
5821
58222011-08-03 Yannick Moy <moy@adacore.com>
5823
5824 * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
5825 issuing messages related to SPARK restriction violation.
5826
4ee646da
AC
58272011-08-03 Ed Schonberg <schonberg@adacore.com>
5828
5829 * sem_ch6.adb: guard against error nodes in return statements.
5830
58312011-08-03 Arnaud Charlet <charlet@adacore.com>
5832
5833 * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
5834 a warning can only appear on a configuration file, so emit warning
5835 without further checks.
5836
58372011-08-03 Arnaud Charlet <charlet@adacore.com>
5838
5839 * s-interr.ads: add overriding keyword.
5840
58412011-08-03 Geert Bosch <bosch@adacore.com>
5842
5843 * exp_attr.adb: Fix minor typo.
5844
58452011-08-03 Ed Schonberg <schonberg@adacore.com>
5846
5847 * par-ch4.adb: improve error recovery.
5848
c0e538ad
AC
58492011-08-03 Emmanuel Briot <briot@adacore.com>
5850
5851 * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
5852 prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
5853 to Errout_Handling.
5854
58552011-08-03 Emmanuel Briot <briot@adacore.com>
5856
5857 * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
5858 "external" as an attribute name in aggregate projects.
5859
58602011-08-03 Jose Ruiz <ruiz@adacore.com>
5861
5862 * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
5863 uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
5864 from 0, so we need to adjust.
5865
58662011-08-03 Emmanuel Briot <briot@adacore.com>
5867
5868 * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
5869 prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.
5870
c4d67e2d
AC
58712011-08-03 Yannick Moy <moy@adacore.com>
5872
5873 * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
5874 restriction on overloaded entity if the entity is not an operator.
5875
58762011-08-03 Yannick Moy <moy@adacore.com>
5877
5878 * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
5879 restrict.ads: Rename remaining Check_Formal_Restriction* into
5880 Check_SPARK_Restriction*.
5881
58822011-08-03 Emmanuel Briot <briot@adacore.com>
5883
5884 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
5885 prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
5886 qualifier.
5887 (Project_Empty): removed
5888 (Empty_Project): new parameter Qualifier
5889 This is used to have fields specific to aggregate projects, cleaner
5890 New field to store the list of aggregated projects.
5891 (Check_Aggregate_Project): removed
5892 (Process_Aggregated_Projects, Free): new subprograms.
5893
3f5a8fee
AC
58942011-08-03 Olivier Hainque <hainque@adacore.com>
5895
5896 * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.
5897
58982011-08-03 Ed Schonberg <schonberg@adacore.com>
5899
5900 * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
5901 explicit dereference of an unconstrained type, create a constrained
5902 subtype for it, as is done for function calls that return an
5903 unconstrained type.
5904
59052011-08-03 Thomas Quinot <quinot@adacore.com>
5906
5907 * g-pehage.adb (Finalize): Avoid possible double-free.
5908
59092011-08-03 Steve Baird <baird@adacore.com>
5910
5911 * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
5912 Elab_Spec/Body attrs in CodePeer_Mode.
5913
59142011-08-03 Javier Miranda <miranda@adacore.com>
5915
5916 * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
5917 low bound is not known at compile time but they have no others choice.
5918 Done because in this case the bounds can be obtained directly from the
5919 aggregate.
5920
59212011-08-03 Ed Falis <falis@adacore.com>
5922
5923 * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
5924 on VxWorks SMP. Remove unusable constant ANY_CPU.
5925
a96ca600
EB
59262011-08-03 Emmanuel Briot <briot@adacore.com>
5927
5928 * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
5929 clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
5930 prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
5931 Prj.Env.Initialize_Empty): new subprograms
5932 (Get_Env, Find_Project): remove parameter Target_Name.
5933
3e582869
AC
59342011-08-03 Gary Dismukes <dismukes@adacore.com>
5935
5936 * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
5937 as a condition for the delayed call to Derived_Subprograms done for the
5938 case of the rewriting of a derived type that constrains the
5939 discriminants of its parent type.
5940 Avoids redundant subprogram derivations for private subtype derivations.
5941
59422011-08-03 Javier Miranda <miranda@adacore.com>
5943
5944 * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
5945 Build_Record_Aggr_Code.
5946 (Build_Record_Aggr_Code): Add missing support to initialize hidden
5947 discriminants in extension aggregates.
5948
59492011-08-03 Emmanuel Briot <briot@adacore.com>
5950
5951 * prj-pp.adb (Print): also output project qualifiers, since in
5952 particular "aggregate" is mandatory in an aggregate project.
5953
59542011-08-03 Emmanuel Briot <briot@adacore.com>
5955
5956 * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
5957 (Debug_Output): new function.
5958
56e94186
AC
59592011-08-03 Eric Botcazou <ebotcazou@adacore.com>
5960
5961 * gnat_ugn.texi: Document -Wstack-usage.
5962 * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
5963
59642011-08-03 Thomas Quinot <quinot@adacore.com>
5965
5966 * sem_prag.adb Issue an error (not a warning) when a C++ type does not
5967 have keyword LIMITED.
5968
59692011-08-03 Yannick Moy <moy@adacore.com>
5970
5971 * alfa.adb, alfa.ads, alfa_test.adb: New files.
5972 * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
5973 (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
5974 section (does not happen in compiler, only if code directly calls
5975 Scan_ALI).
5976 * get_alfa.adb, get_alfa.ads: New files.
5977 * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
5978 needed.
5979 * lib-xref-alfa.adb: New file.
5980 * lib-xref.adb, lib-xref.ads
5981 (Xref_Entry): redefine information needed in cross-references for ALFA.
5982 Push ALFA treatments in separated local package.
5983 (Enclosing_Subpragram_Or_Package): treat specially subprogram
5984 identifiers. Return entity of package body instead of spec. Return
5985 Empty for a scope with no location.
5986 (Generate_Reference): adapt to new components for ALFA information.
5987 Remove the need for D references on definitions.
5988 (Is_Local_Reference): moved to ALFA local package
5989 (Output_References): extract subfunction as Extract_Source_Name
5990 (Output_Local_References): remove procedure, replaced by filtering of
5991 cross-references in package ALFA and printing in Put_ALFA.
5992 (Write_Entity_Name): remove procedure
5993 * lib.adb, lib.ads (Extract_Source_Name): extract here function to
5994 print exact name of entity as it appears in source file
5995 (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
5996 * put_alfa.adb, put_alfa.ads: New files.
5997 * xref_lib.adb (Search_Xref): protect read of cross-references against
5998 reading other sections of the ALI file, in gnatxref
5999 (Search): protect read of cross-references against reading other
6000 sections of the ALI file, in gnatfind.
6001 * gcc-interface/Make-lang.in: Update dependencies.
6002
60032011-08-03 Thomas Quinot <quinot@adacore.com>
6004
6005 * sem_ch3.adb: Minor reformatting.
6006
60072011-08-03 Jose Ruiz <ruiz@adacore.com>
6008
6009 * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
6010 raising an exception.
6011
60122011-08-03 Ed Schonberg <schonberg@adacore.com>
6013
6014 * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
6015 type, always use 1 as the lower bound or string, even if lower bound of
6016 context is not static, to handle properly null strings in a non-static
6017 context.
6018
60192011-08-03 Bob Duff <duff@adacore.com>
6020
6021 * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
6022 always legal on the right-hand side of an assignment statement; there
6023 is always an applicable index constraint in this case. Therefore, the
6024 check for Pkind = N_Assignment_Statement is now unconditional -- it
6025 doesn't depend on whether Is_Constrained (Typ).
6026
4317e442
AC
60272011-08-03 Robert Dewar <dewar@adacore.com>
6028
6029 * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.
6030
60312011-08-03 Ed Schonberg <schonberg@adacore.com>
6032
6033 * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
6034 for an itype created within a generic unit.
6035
60362011-08-03 Eric Botcazou <ebotcazou@adacore.com>
6037
6038 * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
6039 suppresses all inlining.
6040
53f29d4f
AC
60412011-08-03 Robert Dewar <dewar@adacore.com>
6042
6043 * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
6044 exp_aggr.adb: Minor reformatting.
6045
60462011-08-03 Thomas Quinot <quinot@adacore.com>
6047
6048 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
6049 tagged assignment when discriminant checks are suppressed. This is
6050 useless and extremely costly in terms of static stack usage.
6051
60522011-08-03 Bob Duff <duff@adacore.com>
6053
6054 * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
6055 of generics, because this leads to the wrong entity in the wrong scope,
6056 causing (e.g.) pragma Export_Procedure to get an error if the entity is
6057 an instance.
6058 (Process_Interface_Name): Follow Alias for instances of generics, to
6059 correct for the above change.
6060
60612011-08-03 Ed Schonberg <schonberg@adacore.com>
6062
6063 * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
6064 is an integer literal it is always safe to replace the reference. In
6065 addition, if the reference appears in the generated code for an object
6066 declaration it is necessary to copy because otherwise the reference
6067 might be to the uninitilized value of the discriminant of the object
6068 itself.
6069
60702011-08-03 Pascal Obry <obry@adacore.com>
6071
6072 * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
6073 ACL used, in this case we want to check for ending .exe, not .exe
6074 anywhere in the path.
6075
60762011-08-03 Sergey Rybin <rybin@adacore.com>
6077
6078 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
6079 the tree structure (semantic decoration of references to record
6080 discriminants).
6081
c0b11850
AC
60822011-08-03 Gary Dismukes <dismukes@adacore.com>
6083
6084 * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
6085 choices of a named array aggregate, bail out when any choices are
6086 marked as Errors_Posted.
6087
60882011-08-03 Ed Schonberg <schonberg@adacore.com>
6089
6090 * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
6091 in which entity is frozen, to handle properly loop variables in
6092 iterators.
6093
60942011-08-03 Ed Schonberg <schonberg@adacore.com>
6095
6096 * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
6097 subtype is not static, compute the upper bound using attributes, to
6098 handle properly index types that are not integer types.
6099
61002011-08-03 Bob Duff <duff@adacore.com>
6101
6102 * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
6103 Update copyright notice.
6104
61052011-08-03 Ed Schonberg <schonberg@adacore.com>
6106
6107 * sem_ch3.adb (Build_Discriminant_Constraints): Only use
6108 Original_Discriminant if within an instance.
6109 * sem_ch4.adb (Analyze_Selected_Component): Ditto.
6110
61112011-08-03 Thomas Quinot <quinot@adacore.com>
6112
6113 * einfo.ads: Minor reformatting.
6114
61152011-08-03 Ed Schonberg <schonberg@adacore.com>
6116
6117 * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
6118 composite type with an unfrozen subcomponent, in the profile of a
6119 primitive operation.
6120
5c34e9cd
AC
61212011-08-03 Robert Dewar <dewar@adacore.com>
6122
6123 * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.
6124
61252011-08-03 Ed Schonberg <schonberg@adacore.com>
6126
6127 * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
6128 unconstrained type with discriminants is initialized with an aggregate,
6129 use the constrained subtype of the aggregate as the type of the object,
6130 because it is immutable, and this allows the back-end to generate no
6131 code for the object declaration.
6132
abcd9db2
AC
61332011-08-03 Robert Dewar <dewar@adacore.com>
6134
6135 * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
6136 comparison operand is variable, and turns out to be zero or negative.
6137
61382011-08-03 Javier Miranda <miranda@adacore.com>
6139
6140 * exp_intr.adb
6141 (Expand_Dispatching_Constructor_Call): Disable expansion of
6142 code required for native targets. Done to avoid generating
6143 references to unavailable runtime entities in VM targets.
6144 * exp_ch3.adb
6145 (Expand_N_Object_Declaration): Add missing support to handle
6146 the explicit initialization of class-wide interface objects.
6147 Fix documentation.
6148
61492011-08-03 Matthew Heaney <heaney@adacore.com>
6150
6151 * a-cobove.adb (Merge): Move source onto target, instead of using Assign
6152
61532011-08-03 Matthew Heaney <heaney@adacore.com>
6154
6155 * a-cbdlli.adb (Splice): move source items from first to last
6156
61572011-08-03 Yannick Moy <moy@adacore.com>
6158
6159 * sem_util.ads: comment added.
6160
61612011-08-03 Javier Miranda <miranda@adacore.com>
6162
6163 * exp_aggr.adb
6164 (Expand_Record_Aggregate): In VM targets disable the expansion into
6165 assignments of aggregates whose type is not known at compile time.
6166
b474d6c3
ES
61672011-08-03 Ed Schonberg <schonberg@adacore.com>
6168
6169 * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
6170 protected entries and task entries, to build the proper renaming
6171 declaration for entry formals, used in debugging.
6172 * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
6173 parameters in the same way.
6174
0580d807
AC
61752011-08-02 Robert Dewar <dewar@adacore.com>
6176
6177 * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
6178 sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
6179 code reorganization.
6180
61812011-08-02 Robert Dewar <dewar@adacore.com>
6182
6183 * debug.adb: Debug flag d.P to suppress length comparison optimization
6184 * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
6185 comparison of Length by comparing First/Last instead.
6186
61872011-08-02 Matthew Heaney <heaney@adacore.com>
6188
6189 * a-cobove.ads: Code clean up.
6190
b191a125
AC
61912011-08-02 Vincent Celier <celier@adacore.com>
6192
6193 * adaint.c (file_names_case_sensitive_cache): New static int.
6194 (__gnat_get_file_names_case_sensitive): Cache the return value in
6195 file_names_case_sensitive_cache at the first invocation, to avoid
6196 multiple calls to getenv.
6197
61982011-08-02 Bob Duff <duff@adacore.com>
6199
6200 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.
6201
316a0661
AC
62022011-08-02 Yannick Moy <moy@adacore.com>
6203
6204 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
6205 sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
6206 sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
6207 indicate that we are in a precondition or postcondition. This is used in
6208 Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
6209 decide whether to flag the spec or body of the current subprogram as
6210 not in ALFA.
6211
62122011-08-02 Fabien Chouteau <chouteau@adacore.com>
6213
6214 * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
6215 list.
6216 * a-extiin.ads: New file.
6217
62182011-08-02 Bob Duff <duff@adacore.com>
6219
6220 * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
6221 now raises Name_Error instead of Use_Error in certain cases. The other
6222 parts of this AI were already implemented properly.
6223
f9adb9d4
AC
62242011-08-02 Vincent Celier <celier@adacore.com>
6225
6226 * link.c: Only import "auto-host.h" when building the gnattools.
6227
62282011-08-02 Yannick Moy <moy@adacore.com>
6229
6230 * sem_util.adb: Inter-unit inlining does not work for a subprogram
6231 which calls a local subprogram, so extract subprogram
6232 from Mark_Non_ALFA_Subprogram_Body.
6233
62342011-08-02 Javier Miranda <miranda@adacore.com>
6235
6236 * exp_ch9.adb
6237 (Extract_Dispatching_Call): If the type of the dispatching object is an
6238 access type then return an explicit dereference in the Object out-mode
6239 parameter.
6240
62412011-08-02 Gary Dismukes <dismukes@adacore.com>
6242
6243 * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
6244 compatibility checks for all indexes of an array subtype, not just the
6245 first. Reset Has_Dynamic_Range_Check on the subtype before each
6246 potential check to ensure that Insert_Range_Checks will not elide any
6247 of the dynamic checks.
6248
62492011-08-02 Yannick Moy <moy@adacore.com>
6250
6251 * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
6252 SPARK restriction at parsing time.
6253 * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
6254 directive only if the SPARK restriction is set for this unit.
6255
83f33150
YM
62562011-08-02 Yannick Moy <moy@adacore.com>
6257
6258 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
6259 sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
6260 sem_ch11.adb: Protect call to Current_Subprogram which might be costly
6261 when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
6262 Mark_Non_ALFA_Subprogram_Body.
6263 Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
6264 inlined.
6265
7b98672f
YM
62662011-08-02 Yannick Moy <moy@adacore.com>
6267
6268 * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
6269 might be costly.
6270
052e0603
AC
62712011-08-02 Robert Dewar <dewar@adacore.com>
6272
6273 * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
6274 exp_ch3.adb: Minor reformatting.
6275
62762011-08-02 Emmanuel Briot <briot@adacore.com>
6277
6278 * adaint.c (__gnat_locate_exec_on_path): only returns executable
6279 files, not any regular file.
6280 (__gnat_locate_file_with_predicate): new subprogram.
6281
62822011-08-02 Yannick Moy <moy@adacore.com>
6283
6284 * sinfo.adb, sinfo.ads: Restrict the use of flags
6285 Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
6286 nodes, plus N_Subtype_Declaration for the 2nd one.
6287
4fbad0ba
AC
62882011-08-02 Sergey Rybin <rybin@adacore.com>
6289
6290 * gnat_rm.texi: Ramification of pragma Eliminate documentation
6291 - fix bugs in the description of Source_Trace;
6292 - get rid of UNIT_NAME;
6293
052e0603
AC
62942011-08-02 Javier Miranda <miranda@adacore.com>
6295
6296 * exp_ch9.adb
6297 (Build_Dispatching_Requeue): Adding support for VM targets
6298 since we cannot directly reference the Tag entity.
6299 * exp_sel.adb (Build_K): Adding support for VM targets.
6300 (Build_S_Assignment): Adding support for VM targets.
6301 * exp_disp.adb
6302 (Default_Prim_Op_Position): In VM targets do not restrict availability
6303 of predefined interface primitives to compiling in Ada 2005 mode.
6304 (Is_Predefined_Interface_Primitive): In VM targets this service is not
6305 restricted to compiling in Ada 2005 mode.
6306 (Make_VM_TSD): Generate code that declares and initializes the OSD
6307 record. Needed to support dispatching calls through synchronized
6308 interfaces.
6309 * exp_ch3.adb
6310 (Make_Predefined_Primitive_Specs): Enable generation of predefined
6311 primitives associated with synchronized interfaces.
6312 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
6313 primitives associated with synchronized interfaces.
6314
63152011-08-02 Yannick Moy <moy@adacore.com>
6316
6317 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
6318 statements hidden in SPARK if preceded by the HIDE directive
6319 (Parse_Exception_Handlers): mark each exception handler in a sequence of
6320 exception handlers as hidden in SPARK if preceded by the HIDE directive
6321 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
6322 if starting with the HIDE directive
6323 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
6324 starting with the HIDE directive; mark the declarations in a private
6325 part as hidden in SPARK if the private part starts with the HIDE
6326 directive
6327 * restrict.adb, restrict.ads
6328 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
6329 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
6330 argument node belongs to a part which is hidden in SPARK
6331 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
6332 parts in SPARK; protect the possibly costly call to
6333 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
6334 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
6335 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
6336 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
6337 Tok_SPARK_Hide.
6338 (Scan): recognize special comment starting with '#' and followed by
6339 SPARK keyword "hide" as a HIDE directive.
6340
63412011-08-02 Yannick Moy <moy@adacore.com>
6342
6343 * types.ads, erroutc.ads: Minor reformatting.
6344
63452011-08-02 Vincent Celier <celier@adacore.com>
6346
6347 * link.c: Add response file support for cross platforms.
6348
63492011-08-02 Ed Schonberg <schonberg@adacore.com>
6350
6351 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
6352 in an association, set parent field of copy before partial analysis.
6353 * sem_res.adb (Resolve_Slice): create reference to itype only when
6354 expansion is enabled.
6355
63562011-08-02 Yannick Moy <moy@adacore.com>
6357
6358 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
6359 for new flag denoting which subprogram bodies are in ALFA
6360 * restrict.adb, sem_ch7.adb: Update comment
6361 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
6362 sem_ch9.adb, sem_res.adb: Add calls to
6363 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
6364 * sem_ch6.adb (Analyze_Function_Return): add calls to
6365 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
6366 middle of the body, and extended return.
6367 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
6368 False when missing return.
6369 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
6370 to True for subprograms whose spec is in ALFA. Remove later on the flag
6371 on the entity used for a subprogram body when there exists a separate
6372 declaration.
6373 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
6374 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
6375 False, otherwise do nothing.
6376
63772011-08-02 Robert Dewar <dewar@adacore.com>
6378
6379 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
6380
63812011-08-02 Yannick Moy <moy@adacore.com>
6382
6383 * sem_ch4.ads: minor formatting.
6384
63852011-08-02 Yannick Moy <moy@adacore.com>
6386
6387 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
6388 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
6389 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
6390 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
6391 opt.ads: cleanup of SPARK mode
6392
63932011-08-02 Yannick Moy <moy@adacore.com>
6394
6395 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
6396 types.
6397 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
6398 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
6399 * sem_ch3.adb
6400 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
6401 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
6402 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
6403 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
6404 types.
6405 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
6406 non-static range.
6407 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
6408 functions whose return type is not in ALFA.
6409 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
6410 specifications.
6411 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
6412 parameter's type is not in ALFA.
6413 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
6414 types are in ALFA.
6415
64162011-08-02 Ed Schonberg <schonberg@adacore.com>
6417
6418 * sem_ch6 (Analyze_Expression_Function): treat the function as
6419 Inline_Always, and introduce a subprogram declaration for it when it is
6420 not a completion.
6421 * inline.adb (Add_Inlined_Body): recognize bodies that come from
6422 expression functions, so that the back-end can determine whether they
6423 can in fact be inlined.
6424 * sem_util.adb (Is_Expression_Function): predicate to determine whether
6425 a function body comes from an expression function.
6426
64272011-08-02 Gary Dismukes <dismukes@adacore.com>
6428
6429 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
6430 null exclusions to test Can_Never_Be_Null on the anonymous access types
6431 of the formals rather than testing the formals themselves. Exclude this
6432 check in cases where the Old_Formal is marked as a controlling formal,
6433 to avoid issuing spurious errors for bodies completing dispatching
6434 operations (due to the flag not getting set on controlling access
6435 formals in body specs).
6436 (Find_Corresponding_Spec): When checking full and subtype conformance of
6437 subprogram bodies in instances, pass Designated and E in that order, for
6438 consistency with the expected order of the formals (New_Id followed by
6439 Old_Id).
6440
64412011-08-02 Robert Dewar <dewar@adacore.com>
6442
6443 * sem_ch8.adb: Minor reformatting.
6444
64452011-08-02 Ed Schonberg <schonberg@adacore.com>
6446
6447 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
6448 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
6449 primitive operations of class-wide actuals.
6450
64512011-08-02 Javier Miranda <miranda@adacore.com>
6452
6453 * exp_atag.ads, exp_atag.adb
6454 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
6455 since its value is implicitly passed in argument Typ.
6456 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
6457 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
6458 Build_Common_Dispatching_Select_Statements.
6459
64602011-08-02 Robert Dewar <dewar@adacore.com>
6461
6462 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
6463 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
6464 Minor reformatting.
6465
64662011-08-02 Robert Dewar <dewar@adacore.com>
6467
6468 * sem_res.adb: Minor reformatting.
6469 * sem_prag.adb: Minor reformatting.
6470
64712011-08-02 Javier Miranda <miranda@adacore.com>
6472
6473 * exp_atag.adb, exp_atags.ads
6474 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
6475 by the tagged type Entity. Required to use this routine in the VM
6476 targets since we do not have available the Tag entity in the VM
6477 platforms.
6478 * exp_ch6.adb
6479 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
6480 Ada.Tags has not been previously loaded.
6481 * exp_ch7.adb
6482 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
6483 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
6484 * sem_aux.adb
6485 (Enclosing_Dynamic_Scope): Add missing support to handle the full
6486 view of enclosing scopes. Required to handle enclosing scopes that
6487 are synchronized types whose full view is a task type.
6488 * exp_disp.adb
6489 (Build_VM_TSDs): Minor code improvement to avoid generating and
6490 analyzing lists with empty nodes.
6491 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
6492 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
6493 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
6494 (Make_Disp_Timed_Select_Body): Add support for VM targets.
6495 (Make_Select_Specific_Data_Table): Add support for VM targets.
6496 (Make_VM_TSD): Generate code to initialize the SSD structure of
6497 the TSD.
6498
64992011-08-02 Yannick Moy <moy@adacore.com>
6500
6501 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
6502 cross-references section in ALI.
6503 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
6504 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
6505 Sub).
6506 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
6507 subprogram or package entity of a node
6508 (Is_Local_Reference_Type): new function returns True for references
6509 selected in local cross-references.
6510 (Lt): function extracted from Lt in Output_References
6511 (Write_Entity_Name): function extracted from Output_References
6512 (Generate_Definition): generate reference with type 'D' for definition
6513 of objects (object declaration and parameter specification), with
6514 appropriate locations and units, for use in local cross-references.
6515 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
6516 references of type 'I' for initialization in object definition.
6517 (Output_References): move part of function Lt and procedure
6518 Write_Entity_Name outside of the body. Ignore references of types 'D'
6519 and 'I' introduced for local cross-references.
6520 (Output_Local_References): new procedure to output the local
6521 cross-references sections.
6522 (Lref_Entity_Status): new array defining whether an entity is a local
6523 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
6524 with 'I' type when initialization expression is present.
6525 * get_scos.adb, get_scos.ads: Correct comments and typos
6526
65272011-08-02 Javier Miranda <miranda@adacore.com>
6528
6529 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
6530 the JVM target.
6531 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
6532 the JVM target.
6533 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
6534 TSD support.
6535
65362011-08-02 Vincent Celier <celier@adacore.com>
6537
6538 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
6539 (No_Space_Img): New function
6540 (Find_Excluded_Sources): When reading from a file, record the file name
6541 and the line number for each excluded source.
6542 (Mark_Excluded_Sources): When reporting an error, if the excluded
6543 sources were read from a file, include file name and line number in
6544 the error message.
6545
65462011-08-02 Ed Schonberg <schonberg@adacore.com>
6547
6548 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
6549
65502011-08-02 Robert Dewar <dewar@adacore.com>
6551
6552 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
6553
65542011-08-02 Javier Miranda <miranda@adacore.com>
6555
6556 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
6557 generation of TSDs to the DOTNET compiler.
6558 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
6559 generation of TSDs to the DOTNET compiler.
6560
65612011-08-02 Javier Miranda <miranda@adacore.com>
6562
6563 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
6564 record of all the tagged types declared inside library level package
6565 declarations, library level package bodies or library level subprograms.
6566 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
6567 associated with a given tagged type.
6568 (Build_VM_TSDs): New subprogram.
6569 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
6570 compilation units that are subprograms.
6571 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
6572 compilation units that are package bodies.
6573 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
6574 units that are a package declaration or a package instantiation.
6575 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
6576 reorganization to improve the error generated by the frontend when the
6577 function Ada.Tags.Secondary_Tag is not available.
6578 * rtsfind.ads (RE_Register_TSD): New runtime entity.
6579 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
6580
65812011-08-02 Javier Miranda <miranda@adacore.com>
6582
6583 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
6584
65852011-08-02 Robert Dewar <dewar@adacore.com>
6586
6587 * s-imenne.ads: Minor reformatting.
6588
65892011-08-02 Robert Dewar <dewar@adacore.com>
6590
6591 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
6592 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
6593 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
6594
65952011-08-02 Robert Dewar <dewar@adacore.com>
6596
6597 * einfo.ads (Materialize_Entity): Document this is only for renamings
6598 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
6599 required debug information in the case where we transform the object
6600 declaration into a renaming declaration.
6601 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
6602 object
6603 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
6604 Materialize_Entity.
6605
66062011-08-02 Robert Dewar <dewar@adacore.com>
6607
6608 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
6609 Suppress_Init_Procs.
6610 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
6611 Suppress_Initialization/Initialization_Suppressed.
6612 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
6613 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
6614 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
6615 * sem_prag.adb: New processing for pragma Suppress_Initialization.
6616
66172011-08-02 Robert Dewar <dewar@adacore.com>
6618
6619 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
6620 Minor reformatting.
6621
66222011-08-02 Ed Schonberg <schonberg@adacore.com>
6623
6624 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
6625 only have inheritable classwide pre/postconditions.
6626
66272011-08-02 Javier Miranda <miranda@adacore.com>
6628
6629 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
6630 * rtsfind.ads (RE_Check_TSD): New runtime entity.
6631 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
6632 checks if the external tag of a type is the same as the external tag
6633 of some other declaration.
6634
66352011-08-02 Thomas Quinot <quinot@adacore.com>
6636
6637 * s-taskin.ads: Minor reformatting.
6638
66392011-08-02 Emmanuel Briot <briot@adacore.com>
6640
6641 * g-comlin.adb (Display_Help): swap the order in which it prints the
6642 short help and the general usage.
6643
66442011-08-02 Ed Schonberg <schonberg@adacore.com>
6645
6646 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
6647 the aspect declarations and attach them to the generic copy for
6648 subsequent analysis.
6649 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
6650 declarations of the generic tree to the new subprogram declarations.
6651 * sem_attr.adb (Check_Precondition_Postcondition): recognize
6652 conditions that apply to a subprogram instance.
6653
66542011-08-02 Robert Dewar <dewar@adacore.com>
6655
6656 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
6657
66582011-08-02 Ed Schonberg <schonberg@adacore.com>
6659
6660 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
6661 private type with a tagged full view is not derived in the immediate
6662 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
6663
66642011-08-02 Robert Dewar <dewar@adacore.com>
6665
6666 * exp_ch4.adb: Minor reformatting.
6667
66682011-08-02 Ed Schonberg <schonberg@adacore.com>
6669
6670 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
6671 Ada2012 iterator, the loop will be rewritten during expansion into a
6672 while loop with a cursor and an element declaration. Do not analyze the
6673 body in this case, because if the container is for indefinite types the
6674 actual subtype of the elements will only be determined when the cursor
6675 declaration is analyzed.
6676
66772011-08-02 Arnaud Charlet <charlet@adacore.com>
6678
6679 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
6680 size/alignment related attributes in CodePeer_Mode.
6681
66822011-08-02 Gary Dismukes <dismukes@adacore.com>
6683
6684 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
6685 Prepend_Element, since this can result in the operation getting the
6686 wrong slot in the full type's dispatch table if the full type has
6687 inherited operations. The incomplete type's operation will get added
6688 to the proper position in the full type's primitives
6689 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
6690 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
6691 dispatching operations, since there are cases where nonprimitive
6692 subprograms can get added to the list of incomplete dependents (such
6693 as subprograms in nested packages).
6694 * sem_ch6.adb (Process_Formals): First, remove test for being in a
6695 private part when determining whether to add a primitive with a
6696 parameter of a tagged incomplete type to the Private_Dependents list.
6697 Such primitives can also occur in the visible part, and should not have
6698 been excluded from being private dependents.
6699 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
6700 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
6701 list of a Taft-amendment incomplete type is a primitive before issuing
6702 an error that the full type must appear in the same unit. There are
6703 cases where nonprimitives can be in the list (such as subprograms in
6704 nested packages).
6705 * sem_disp.adb (Derives_From): Use correct condition for checking that
6706 a formal's type is derived from the type of the corresponding formal in
6707 the parent subprogram (the condition was completely wrong). Add
6708 checking that was missing for controlling result types being derived
6709 from the result type of the parent operation.
6710
67112011-08-02 Yannick Moy <moy@adacore.com>
6712
6713 * errout.adb (First_Node): minor renaming
6714 * restrict.adb (Check_Formal_Restriction): put restriction warning on
6715 first node.
6716
67172011-08-02 Yannick Moy <moy@adacore.com>
6718
6719 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
6720 before accessing operands.
6721 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
6722 decide whether an initialization expression respects SPARK rules, as
6723 the plain node is the expanded one. This allows for more valid warnings
6724 to be issued.
6725 * gnat_rm.texi: Minor update.
6726
67272011-08-02 Arnaud Charlet <charlet@adacore.com>
6728
6729 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
6730 previous change.
6731
67322011-08-02 Robert Dewar <dewar@adacore.com>
6733
6734 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
6735
67362011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
6737
6738 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
6739 loop statements and the element renaming declaration with a block when
6740 the element type is controlled.
6741
67422011-08-02 Yannick Moy <moy@adacore.com>
6743
6744 * sinfo.ads: Minor formatting.
6745
67462011-08-02 Ed Schonberg <schonberg@adacore.com>
6747
6748 * sem_aggr.adb (Add_Association): if the association has a box and no
6749 expression, use the Sloc of the aggregate itself for the new
6750 association.
6751 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
6752 the Original_Node.
6753
67542011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
6755
6756 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
6757 When a container is provided via a function call, generate a renaming
6758 of the function result. This avoids the creation of a transient scope
6759 and the premature finalization of the container.
6760 * exp_ch7.adb (Is_Container_Cursor): Removed.
6761 (Wrap_Transient_Declaration): Remove the supression of the finalization
6762 of the list controller when the declaration denotes a container cursor,
6763 it is not needed.
6764
67652011-08-02 Yannick Moy <moy@adacore.com>
6766
6767 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
6768 node is from source, instead of the original node being from source.
6769 * sem_aggr.adb
6770 (Resolve_Array_Aggregate): refine the check for a static expression, to
6771 recognize also static ranges
6772 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
6773 Array_Type_Declaration): postpone the test for the type being a subtype
6774 mark after the type has been resolved, so that component-selection and
6775 expanded-name are discriminated.
6776 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
6777 to distinguish the case of an iteration scheme, so that an error is
6778 issed on a non-static range in SPARK except in an iteration scheme.
6779 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
6780 In_Iter_Schm = True.
6781 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
6782 user-defined operators so that they are allowed in renaming
6783 * sem_ch8.adb
6784 (Find_Selected_Component): refine the check for prefixing of operators
6785 so that they are allowed in renaming. Move the checks for restrictions
6786 on selector name after analysis discriminated between
6787 component-selection and expanded-name.
6788 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
6789 concatenation argument of string type if it is static.
6790 * sem_util.adb, sem_util.ads
6791 (Check_Later_Vs_Basic_Declarations): add a new function
6792 Is_Later_Declarative_Item to decice which declarations are allowed as
6793 later items, in the two different modes Ada 83 and SPARK. In the SPARK
6794 mode, add that renamings are considered as later items.
6795 (Enclosing_Package): new function to return the enclosing package
6796 (Enter_Name): correct the rule for homonyms in SPARK
6797 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
6798 from source (result of expansion) to avoid issuing wrong warnings.
6799
68002011-08-02 Ed Schonberg <schonberg@adacore.com>
6801
6802 * errout.adb: On anything but an expression First_Node returns its
6803 argument.
6804
68052011-08-02 Pascal Obry <obry@adacore.com>
6806
6807 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
6808
68092011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
6810
6811 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
6812 Set the associated loop as the related expression of internally
6813 generated cursors.
6814 * exp_ch7.adb (Is_Container_Cursor): New routine.
6815 (Wrap_Transient_Declaration): Supress the finalization of the list
6816 controller when the declaration denotes a container cursor.
6817
68182011-08-02 Yannick Moy <moy@adacore.com>
6819
6820 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
6821 command line now.
6822 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
6823 expression is a simple expression. This check cannot be performed in
6824 the semantics, so just drop it.
6825 (P_Index_Or_Discriminant_Constraint): move check that the index or
6826 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
6827 semantics. Other cases were previously checked in the semantics.
6828 * par-ch4.adb (P_Name): move checks that a selector name is not
6829 character literal or an operator symbol to Find_Selected_Component in
6830 the semantics
6831 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
6832 declarations are not placed after later declarations in a separate
6833 procedure in Sem_Util (possibly not the best choice?), to be used both
6834 during parsing, for Ada 83 mode, and during semantic analysis, for
6835 SPARK mode.
6836 * par-endh.adb (Check_End): move check that end label is not missing
6837 to Process_End_Label in the semantics
6838 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
6839 the special case for SPARK restriction
6840 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
6841 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
6842 parameter Force to issue the error message even on internal node (used
6843 for generated end label). Call Check_Restriction to check when an error
6844 must be issued. In SPARK mode, issue an error message even if the
6845 restriction is not set.
6846 (Check_Restriction): new procedure with an additional out parameter to
6847 inform the caller that a message has been issued
6848 * sem_aggr.adb: Minor modification of message
6849 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
6850 instead of issuing an error message directly
6851 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
6852 declarations are not placed after later declarations, by calling
6853 Check_Later_Vs_Basic_Declarations
6854 (Analyze_Subtype_Declaration): move here the check that an index or
6855 discriminant constraint must be a subtype mark. Change the check that
6856 a subtype of String must start at one so that it works on subtype marks.
6857 * sem_ch4.adb (Analyze_Call): move here the check that a named
6858 association cannot follow a positional one in a call
6859 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
6860 instead of issuing an error message directly
6861 * sem_ch8.adb (Find_Selected_Component): move here the check that a
6862 selector name is not a character literal or an operator symbol. Move
6863 here the check that the prefix of an expanded name cannot be a
6864 subprogram or a loop statement.
6865 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
6866 procedure called from parsing and semantics to check that basic
6867 declarations are not placed after later declarations
6868 (Process_End_Label): move here the check that end label is not missing
6869
68702011-08-02 Arnaud Charlet <charlet@adacore.com>
6871
6872 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
6873 representation clause in codepeer mode, since it confuses CodePeer and
6874 does not bring useful info.
6875
68762011-08-02 Ed Falis <falis@adacore.com>
6877
6878 * init.c: initialize fp hw on MILS.
6879
68802011-08-02 Ed Schonberg <schonberg@adacore.com>
6881
6882 * errout.adb (First_Node): for bodies, return the node itself (small
6883 optimization). For other nodes, do not check source_unit if the node
6884 comes from Standard.
6885
68862011-08-02 Robert Dewar <dewar@adacore.com>
6887
6888 * exp_ch3.adb: Minor comment additions.
6889 * sem_ch13.adb: Minor reformatting.
6890
68912011-08-02 Pascal Obry <obry@adacore.com>
6892
6893 * make.adb, makeutl.adb: Removes some superfluous directory separator.
6894
68952011-08-02 Robert Dewar <dewar@adacore.com>
6896
6897 * sem_attr.adb: Minor reformatting.
6898
68992011-08-02 Robert Dewar <dewar@adacore.com>
6900
6901 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
6902 (Has_Default_Component_Value): Removed
6903 * einfo.ads Comment updates
6904 (Has_Default_Aspect): Replaces Has_Default_Value
6905 (Has_Default_Component_Value): Removed
6906 * exp_ch13.adb
6907 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
6908 * exp_ch3.adb
6909 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
6910 (Get_Simple_Init_Val): Handle Default_Value aspect
6911 (Needs_Simple_Initialization): Handle Default_Value aspect
6912 * exp_ch3.ads: Needs_Simple_Initialization
6913 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
6914 * par-prag.adb (Pragma_Default[_Component]Value) Removed
6915 * sem_ch13.adb
6916 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
6917 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
6918 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
6919
69202011-08-02 Ed Schonberg <schonberg@adacore.com>
6921
6922 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
6923 package containing iteration primitives.
6924 exp_ch5.adb (Expand_Iterator_Loop): ditto.
6925
69262011-08-02 Ed Schonberg <schonberg@adacore.com>
6927
6928 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
6929 "of", pre-analyze expression in case it is a function call with
6930 finalization actions that must be placed ahead of the loop.
6931 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
6932 on an Ada2012 iterator, insert them ahead of the rewritten loop.
6933
69342011-08-02 Geert Bosch <bosch@adacore.com>
6935
6936 * cstand.adb (Create_Float_Types): Only consider C's long double for
6937 Long_Long_Float, in addition to double.
6938
69392011-08-02 Robert Dewar <dewar@adacore.com>
6940
6941 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
6942 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
6943 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
6944 Minor reformatting.
6945
69462011-08-02 Ed Schonberg <schonberg@adacore.com>
6947
6948 * sem_attr.adb: handle properly 'Result when it is a prefix of an
6949 indexed component.
6950
69512011-08-02 Javier Miranda <miranda@adacore.com>
6952
6953 * einfo.ads, einfo.adb
6954 (Original_Access_Type): Move this attribute to Node26 since there was
6955 an undocumented use of Node21 in E_Access_Subprogram_Type entities
6956 which causes conflicts and breaks the generation of the .NET compiler.
6957 (Interface_Name): Add missing documentation on JGNAT only uses of
6958 this attribute.
6959
69602011-08-02 Geert Bosch <bosch@adacore.com>
6961
6962 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
6963 (Find_Back_End_Float_Type): Likewise
6964 (Create_Back_End_Float_Types): Likewise
6965 (Create_Float_Types): Likewise
6966 (Register_Float_Type): Likewise
6967 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
6968 Nlist and split out type selection in new local Find_Base_Type function.
6969 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
6970 Nlist
6971 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
6972
69732011-08-02 Robert Dewar <dewar@adacore.com>
6974
6975 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
6976 alpha order).
6977 * opt.ads: Minor comment change.
6978 * sem_ch12.adb: Minor code reorganization.
6979
69802011-08-02 Gary Dismukes <dismukes@adacore.com>
6981
6982 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
6983 subtype's list of rep items to the list on the full subtype in the case
6984 where the lists are the same.
6985
69862011-08-02 Geert Bosch <bosch@adacore.com>
6987
6988 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
6989 using the one from System.Strings, which also deallocates all strings.
6990
69912011-08-02 Geert Bosch <bosch@adacore.com>
6992
6993 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
6994 function.
6995 * gcc-interface/Make-lang.in: Update dependencies.
6996
69972011-08-02 Olivier Hainque <hainque@adacore.com>
6998
6999 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
7000 end_locus.
7001
70022011-08-02 Javier Miranda <miranda@adacore.com>
7003
7004 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
7005 associated with anonymous access to subprograms.
7006
70072011-08-02 Geert Bosch <bosch@adacore.com>
7008
7009 * opt.ads
7010 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
7011 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
7012 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
7013 (Add_Symbol_Definition): Move to switch-c.adb
7014 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
7015 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
7016 (Add_Symbol_Definition): Move to switch-c.adb.
7017 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
7018 * sem_warn.adb
7019 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
7020 Move to warnsw.adb.
7021 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
7022 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
7023 Move to warnsw.adb.
7024 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
7025 (Add_Symbol_Definition): Moved from Prepcomp.
7026 * switch-c.ads: Update copyright notice. Use String_List instead of
7027 Argument_List, removing dependency on System.OS_Lib.
7028
70292011-08-02 Yannick Moy <moy@adacore.com>
7030
7031 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
7032 mode on initialization expression which does not respect SPARK
7033 restrictions.
7034 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
7035 if the tree referenced by its argument represents an initialization
7036 expression in SPARK, suitable for initializing an object in an object
7037 declaration.
7038
70392011-08-02 Javier Miranda <miranda@adacore.com>
7040
7041 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
7042 internally generated access to subprogram with its associated protected
7043 subprogram type.
7044 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
7045
70462011-08-02 Geert Bosch <bosch@adacore.com>
7047
7048 * cstand.adb (Register_Float_Type): Print information about type to
7049 register, if the Debug_Flag_Dot_B is set.
7050 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
7051 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
7052 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
7053 with a requested precision of more than Max_Digits digits and no more
7054 than Max_Base_Digits digits, if a range specification is present and the
7055 Predefined_Float_Types list has a suitable type to derive from.
7056 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
7057 case of type completion with pragma Import
7058 * sem_prag.adb
7059 (Process_Import_Predefined_Type): Processing to complete a type
7060 with pragma Import. Currently supports floating point types only.
7061 (Set_Convention_From_Pragma): Do nothing without underlying type.
7062 (Process_Convention): Guard against absence of underlying type,
7063 which may happen when importing incomplete types.
7064 (Process_Import_Or_Interface): Handle case of importing predefined
7065 types. Tweak error message.
7066
70672011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7068
7069 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
7070 functions to previous change. Reorganize code slightly.
7071
70722011-08-02 Geert Bosch <bosch@adacore.com>
7073
7074 * back_end.ads (Register_Type_Proc): New call back procedure type for
7075 allowing the back end to provide information about available types.
7076 (Register_Back_End_Types): New procedure to register back end types.
7077 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
7078 available types.
7079 * cstand.adb (Back_End_Float_Types): New list for floating point types
7080 supported by the back end.
7081 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
7082 (Copy_Float_Type): New procedure to make new copies of predefined types.
7083 (Register_Float_Type): New call back procedure to populate the BEFT list
7084 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
7085 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
7086 (Create_Float_Types): New procedure to create entities for floating
7087 point types predefined in Standard, and put these and any remaining
7088 BEFTs on the Predefined_Float_Types list.
7089 * stand.ads (Predefined_Float_Types): New list for predefined floating
7090 point types that do not have declarations in package Standard.
7091
70922011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7093
7094 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
7095 entity node for the unit containing the parameter.
7096 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
7097 (Add_Inlined_Subprogram): Likewise.
7098 * gcc-interface/Make-lang.in: Update dependencies.
7099
71002011-08-02 Thomas Quinot <quinot@adacore.com>
7101
7102 * s-stusta.adb (Print): Make sure Pos is always initialized to a
7103 suitable value.
7104
71052011-08-02 Geert Bosch <bosch@adacore.com>
7106
7107 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
7108
71092011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7110
7111 * sem_type.adb (Covers): Move trivial case to the top and reuse the
7112 computed value of Base_Type.
7113
71142011-08-02 Yannick Moy <moy@adacore.com>
7115
7116 * restrict.adb (Check_Restriction): issue an error for any use of
7117 class-wide, even if the No_Dispatch restriction is not set.
7118 * sem_aggr.adb: Correct typos in comments and messages in formal mode
7119 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
7120 when completing a private extension, the type named in the private part
7121 is not the same as that named in the visible part.
7122 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
7123 of an inherited primitive operations of a tagged type or type extension
7124 that returns the tagged type.
7125 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
7126 function which returns True for an implicit operation inherited by the
7127 derived type declaration for the argument type.
7128 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
7129 order.
7130
71312011-08-02 Ed Schonberg <schonberg@adacore.com>
7132
7133 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
7134 Process_Bounds, to perform analysis with expansion of a range or an
7135 expression that is the iteration scheme for a loop.
7136 (Analyze_Iterator_Specification): If domain of iteration is given by a
7137 function call with a controlled result, as is the case if call returns
7138 a predefined container, ensure that finalization actions are properly
7139 generated.
7140 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
7141
71422011-08-02 Javier Miranda <miranda@adacore.com>
7143
7144 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
7145 * gcc-interface/Make-lang.in: Update dependencies.
7146
71472011-08-02 Javier Miranda <miranda@adacore.com>
7148
7149 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
7150 determine if the analysis is performed using N or Original_Node (N).
7151 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
7152 functionality of routine Is_Variable avoids code duplication.
7153 * checks.adb (Determine_Range): Handle temporaries generated by
7154 Remove_Side_Effects.
7155
71562011-08-02 Javier Miranda <miranda@adacore.com>
7157
7158 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
7159 expansion of the condition. Required since the previous analysis was
7160 done with expansion disabled (see Resolve_Quantified_Expression) and
7161 hence checks were not inserted and record comparisons have not been
7162 expanded.
7163
71642011-08-02 Ed Falis <falis@adacore.com>
7165
7166 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
7167 Update header.
7168
71692011-08-02 Bob Duff <duff@adacore.com>
7170
7171 * opt.ads: Minor comment fix.
7172
71732011-08-02 Bob Duff <duff@adacore.com>
7174
7175 * sem_ch12.adb (Analyze_Package_Instantiation,
7176 Analyze_Subprogram_Instantiation): Turn off style checking while
7177 analyzing an instance. Whatever style checks that apply to the generic
7178 unit should apply, so it makes no sense to apply them in an instance.
7179 This was causing trouble when compiling an instance of a runtime
7180 unit that violates the -gnatyO switch.
7181 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
7182 one of the two case statements, causing spurious errors.
7183
71842011-08-02 Robert Dewar <dewar@adacore.com>
7185
7186 * uname.adb: Minor reformatting.
7187 * gnatcmd.adb: Minor reformatting.
7188 * exp_attr.adb: Minor reformatting.
7189
71902011-08-02 Ed Schonberg <schonberg@adacore.com>
7191
7192 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
7193 No_Dispatching_Calls, do not look for the Assign primitive, because
7194 predefined primitives are not created in this case.
7195
71962011-08-02 Bob Duff <duff@adacore.com>
7197
7198 * stylesw.ads: Minor comment fixes.
7199
72002011-08-02 Robert Dewar <dewar@adacore.com>
7201
7202 * freeze.adb (Add_To_Result): New procedure.
7203
72042011-08-02 Jose Ruiz <ruiz@adacore.com>
7205
7206 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
7207 time, if the specific run-time routines for handling streams of strings
7208 are not available, use the default mechanism.
7209
72102011-08-02 Arnaud Charlet <charlet@adacore.com>
7211
7212 * s-regpat.ads: Fix typo.
7213
72142011-08-02 Vincent Celier <celier@adacore.com>
7215
7216 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
7217 not null, call it to create the in memory config project file without
7218 parsing an existing default config project file.
7219
72202011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7221
7222 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
7223
72242011-08-02 Ed Schonberg <schonberg@adacore.com>
7225
7226 * sem_elim.adb: an abstract subprogram does not need an eliminate
7227 pragma for its descendant to be eliminable.
7228
72292011-08-02 Ed Falis <falis@adacore.com>
7230
7231 * init.c: revert to handling before previous checkin for VxWorks
7232 * s-intman-vxworks.adb: delete unnecessary declarations related to
7233 using Ada interrupt facilities for handling signals.
7234 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
7235 * s-intman-vxworks.ads: Import __gnat_install_handler as
7236 Initialize_Interrupts.
7237 * s-taprop-vxworks.adb: Delete Signal_Mask.
7238 (Abort_Handler): change construction of mask to unblock exception
7239 signals.
7240
72412011-08-02 Jerome Guitton <guitton@adacore.com>
7242
7243 * a-except-2005.adb (Raise_From_Signal_Handler): Call
7244 Debug_Raise_Exception before propagation starts.
7245
72462011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7247
7248 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
7249 to Restriction_Check_Required.
7250 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
7251 * sem_res.adb (Resolve_Call): Likewise.
7252 * sem_attr.adb (Check_Stream_Attribute): Likewise.
7253
72542011-08-02 Bob Duff <duff@adacore.com>
7255
7256 * stylesw.ads: Update comment.
7257 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
7258 * errout.ads: Remove obsolete comment.
7259
72602011-08-02 Javier Miranda <miranda@adacore.com>
7261
7262 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
7263 (Set_Is_Safe_To_Reevaluate): new procedure.
7264 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
7265 assignment is allowed on safe-to-reevaluate variables.
7266 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
7267 temporary created to remove side effects in expressions that use
7268 the secondary stack as safe-to-reevaluate.
7269 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
7270 variables that are not true constants.
7271
72722011-08-02 Robert Dewar <dewar@adacore.com>
7273
7274 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
7275 sem_res.adb, sem_ch6.adb: Minor reformatting.
7276
72772011-08-02 Jerome Guitton <guitton@adacore.com>
7278
7279 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
7280
72812011-08-02 Ed Schonberg <schonberg@adacore.com>
7282
7283 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
7284 not set Overridden_Operation if subprogram is an initialization
7285 procedure.
7286
72872011-08-02 Yannick Moy <moy@adacore.com>
7288
7289 * par-ch6.adb: Correct obsolete name in comments
7290 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
7291 which takes two message arguments (existing function takes one), with
7292 second message used for continuation.
7293 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
7294 block statements that originate from a source block statement, not
7295 generated block statements
7296 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
7297 symmetry with procedure case
7298 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
7299 function to issue an error in formal mode if a package specification
7300 contains more than one tagged type or type extension.
7301 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
7302 parameters matching formals of tagged types are objects (or ancestor
7303 type conversions of objects), not general expressions. Issue an error
7304 on view conversions that are not involving ancestor conversion of an
7305 extended type.
7306 (Resolve_Type_Conversion): in formal mode, issue an error on the
7307 operand of an ancestor type conversion which is not an object
7308 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
7309 procedure so that it works also for actuals of function calls
7310 (Is_Actual_Tagged_Parameter): new function which determines if its
7311 argument is an actual parameter of a formal of tagged type in a
7312 subprogram call
7313 (Is_SPARK_Object_Reference): new function which determines if the tree
7314 referenced by its argument represents an object in SPARK
7315
73162011-08-02 Robert Dewar <dewar@adacore.com>
7317
7318 * sem_ch3.adb: Minor reformatting
7319 Minor comment addition
7320 Minor error msg text change
7321
73222011-08-02 Javier Miranda <miranda@adacore.com>
7323
7324 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
7325 function. Used to be more precise when we generate a variable plus one
7326 assignment to remove side effects in the evaluation of the Bound
7327 expressions.
7328 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
7329 of the bound expression to force its re-analysis and thus expand the
7330 associated transient scope (if required). Code cleanup replacing the
7331 previous code that declared the constant entity by an invocation to
7332 routine Force_Evaluation which centralizes this work in the frontend.
7333
73342011-08-02 Robert Dewar <dewar@adacore.com>
7335
7336 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
7337 (Base_Type): Now uses improved Is_Base_Type function
7338 * einfo.ads (Base_Type): Inline this function
7339
73402011-08-02 Robert Dewar <dewar@adacore.com>
7341
7342 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
7343 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
7344
73452011-08-02 Arnaud Charlet <charlet@adacore.com>
7346
7347 * gcc-interface/Make-lang.in: Update dependencies.
7348 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
7349 targets.
7350
73512011-08-02 Yannick Moy <moy@adacore.com>
7352
7353 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
7354 non-simple expression used in delta constraint
7355 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
7356 index constraint which is not a subtype mark
7357 * par.adb: With and use Restrict
7358 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
7359 mode on component type which is not a subtype mark and default
7360 expression on component
7361 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
7362 of string which does not have a lower index bound equal to 1
7363 (Array_Type_Declaration): issue an error in formal mode on index or
7364 component type which is not a subtype mark, and on aliased keyword on
7365 component
7366 (Derived_Type_Declaration): issue an error in formal mode on interface,
7367 limited or abstract type
7368 (Record_Type_Declaration): issue an error in formal mode on interface
7369 (Record_Type_Definition): issue an error in formal mode on tagged types
7370 and type extensions not declared in the specification of a library unit
7371 package; on null non-tagged record; on variant part
7372
73732011-08-02 Vincent Celier <celier@adacore.com>
7374
7375 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
7376 not declared for qualified library project when Library_Name is not
7377 declared, but Library_Dir is.
7378
73792011-08-02 Robert Dewar <dewar@adacore.com>
7380
7381 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
7382 pragmas (affects aspects [Component_]Default_Value
7383 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
7384 component type for the resolution
7385
73862011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7387
7388 * einfo.adb (Base_Type): Tune implementation for speed.
7389
73902011-08-02 Robert Dewar <dewar@adacore.com>
7391
7392 * freeze.adb: Minor reformatting.
7393
73942011-08-02 Thomas Quinot <quinot@adacore.com>
7395
7396 * scos.ads: Update comments.
7397
73982011-08-02 Ed Schonberg <schonberg@adacore.com>
7399
7400 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
7401 base type, because the parent may be a subtype of a private type whose
7402 convention is established in a private part.
7403
74042011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
7405
7406 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
7407 statement in a block when the expansion of the return expression has
7408 created a finalization chain.
7409 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
7410 with the parent node.
7411 Add N_Extended_Return_Statement to handle the case where a transient
7412 object declaration appears in the Return_Object_Declarations list of
7413 an extended return statement.
7414
74152011-08-02 Matthew Gingell <gingell@adacore.com>
7416
7417 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
7418 unused parameter 'name'.
7419
74202011-08-02 Ed Schonberg <schonberg@adacore.com>
7421
7422 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
7423 inherited operation, check whether its alias, which is the source
7424 operastion that it renames, has been marked eliminated.
7425
74262011-08-02 Javier Miranda <miranda@adacore.com>
7427
7428 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
7429 in-mode parameter whose type is an access type since it can be used to
7430 modify its designated object. Enforce code that handles as safe an
7431 access type that is not access-to-constant but it is the result of a
7432 previous removal of side-effects.
7433 (Remove_Side_Effects): Minor code reorganization of cases which require
7434 no action. Done to incorporate documentation on new cases uncovered
7435 working in this ticket: no action needed if this routine was invoked
7436 too early and the nodes are not yet decorated.
7437 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
7438 to routine Remove_Side_Effects by calls to Force_Evaluation since they
7439 were issued with actuals that are implicitly provided by
7440 Force_Evaluation.
7441
74422011-08-02 Robert Dewar <dewar@adacore.com>
7443
7444 * sem_ch3.adb, sem_res.adb: Minor reformatting.
7445
74462011-08-02 Yannick Moy <moy@adacore.com>
7447
7448 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
7449 to issue an error in formal mode on attribute not supported in this mode
7450 (Analyze_Attribute): issue errors on standard attributes not supported
7451 in formal mode.
7452 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
7453 comment, and issue error in formal mode on modulus which is not a power
7454 of 2.
7455 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
7456 range.
7457 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
7458 subtype mark.
7459 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
7460 operator on modular type (except 'not').
7461
74622011-08-02 Robert Dewar <dewar@adacore.com>
7463
7464 * gnat_rm.texi: Minor reformatting.
7465
74662011-08-02 Arnaud Charlet <charlet@adacore.com>
7467
7468 * s-osinte-linux.ads: Minor comment update and reformatting.
7469 * i-cexten.ads: Make this unit pure, as for its parent.
7470 Will allow its usage in more contexts if needed.
7471
74722011-08-02 Robert Dewar <dewar@adacore.com>
7473
7474 * s-utf_32.ads: Minor comment fix.
7475
74762011-08-02 Ed Schonberg <schonberg@adacore.com>
7477
7478 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
7479 operation of a tagged synchronized type, handle the case where the
7480 controlling argument is overloaded.
7481
74822011-08-02 Yannick Moy <moy@adacore.com>
7483
7484 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
7485 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
7486 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
7487 SPARK mode and formal verification mode on processing SPARK restriction
7488 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
7489 requiring consistency checking.
7490
74912011-08-02 Robert Dewar <dewar@adacore.com>
7492
7493 * sem_res.adb: Minor reformatting.
7494
74952011-08-02 Robert Dewar <dewar@adacore.com>
7496
7497 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
7498 a-cforse.ads: Remove unneeded with of Ada.Containers
7499 Remove commented out pragma Inline's
7500 Move specifications of new subprograms to the actual specs
7501
75022011-08-02 Yannick Moy <moy@adacore.com>
7503
7504 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
7505 a-cforse.ads: Update comments.
7506
75072011-08-02 Ed Schonberg <schonberg@adacore.com>
7508
7509 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
7510
75112011-08-02 Robert Dewar <dewar@adacore.com>
7512
7513 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
7514 a-cforse.ads, a-cofove.ads: Minor reformatting.
7515
75162011-08-02 Claire Dross <dross@adacore.com>
7517
7518 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
7519 a-cofove.ads: Add comments.
7520
75212011-08-02 Yannick Moy <moy@adacore.com>
7522
7523 * gnat_rm.texi: Document formal containers.
7524
75252011-08-02 Emmanuel Briot <briot@adacore.com>
7526
7527 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
7528 are empty sections.
7529
75302011-08-02 Robert Dewar <dewar@adacore.com>
7531
7532 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
7533 reformatting.
7534
75352011-08-02 Robert Dewar <dewar@adacore.com>
7536
7537 * aspects.adb: New aspects Default_Value and Default_Component_Value
7538 New format of Aspect_Names table checks for omitted entries
7539 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
7540 handling of boolean aspects for derived types.
7541 New aspects Default_Value and Default_Component_Value
7542 New format of Aspect_Names table checks for omitted entries
7543 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
7544 (Has_Default_Value): New flag
7545 (Has_Default_Component_Value): New flag
7546 (Has_Default_Value): New flag
7547 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
7548 table.
7549 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
7550 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
7551 Default_Value and Default_Component_Value
7552 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
7553 New aspects Default_Value and Default_Component_Value
7554 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
7555 * sprint.adb: Print N_Aspect_Specification node when called from gdb
7556
75572011-08-02 Vincent Celier <celier@adacore.com>
7558
7559 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
7560 inherit library kind.
7561
75622011-08-02 Ed Schonberg <schonberg@adacore.com>
7563
7564 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
7565 Minor reformatting.
7566
75672011-08-02 Robert Dewar <dewar@adacore.com>
7568
7569 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
7570
75712011-08-02 Yannick Moy <moy@adacore.com>
7572
7573 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
7574
75752011-08-02 Robert Dewar <dewar@adacore.com>
7576
7577 * impunit.adb: Add comment.
7578
75792011-08-02 Yannick Moy <moy@adacore.com>
7580
7581 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
7582 qualification of aggregates in formal mode
7583 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
7584 another aggregate
7585 (Resolve_Aggregate): complete the test that an aggregate is adequately
7586 qualified in formal mode
7587
75882011-08-02 Pascal Obry <obry@adacore.com>
7589
7590 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
7591 * mlib-prj.adb: Supress warning when compiling binder generated file.
7592 (Build_Library): Supress all warnings when compiling the binder
7593 generated file.
7594
75952011-08-02 Yannick Moy <moy@adacore.com>
7596
7597 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
7598 from here...
7599 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
7600 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
7601 Add with/use clauses to make Check_Formal_Restriction visible
7602
76032011-08-02 Ed Schonberg <schonberg@adacore.com>
7604
7605 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
7606 in-parameters when type of the generic formal is private in the generic
7607 spec and non-private in the body.
7608
76092011-08-02 Claire Dross <dross@adacore.com>
7610
7611 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
7612 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
7613 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
7614 * impunit.adb, Makefile.rtl: Take new files into account.
7615
76162011-08-02 Robert Dewar <dewar@adacore.com>
7617
7618 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
7619 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
7620
76212011-08-02 Yannick Moy <moy@adacore.com>
7622
7623 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
7624 formal mode
7625 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
7626 matching static array bounds, taking into account the special case of
7627 string literals
7628 * sem_ch3.adb: Typo in comment.
7629
76302011-08-02 Yannick Moy <moy@adacore.com>
7631
7632 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
7633 which issues an error in formal mode if its argument node is originally
7634 from source
7635 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
7636 has a discriminant specification so that it does not include the case
7637 of derived types
7638 (Derived_Type_Declaration): move here the test that a derived type has a
7639 discriminant specification
7640 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
7641 first element of a component association before accessing its choices
7642 (presence of component association is not enough)
7643 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
7644 declaration is a library item before accessing the next element in a
7645 list, as library items are not member of lists
7646 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
7647 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
7648 Check_Formal_Restriction whenever possible.
7649
76502011-08-02 Ed Schonberg <schonberg@adacore.com>
7651
7652 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
7653 reference when needed.
7654
76552011-08-02 Bob Duff <duff@adacore.com>
7656
7657 * gnat_ugn.texi: Fix typo.
7658
76592011-08-02 Vincent Celier <celier@adacore.com>
7660
7661 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
7662 archive file name. Do not use the full path name of archives for Open
7663 VMS.
7664
76652011-08-02 Robert Dewar <dewar@adacore.com>
7666
7667 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
7668 Analyze_Aspect_Specifications
7669 * sem_ch13.adb
7670 (Analyze_Aspect_Specifications): New handling for boolean aspects
7671 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
7672 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
7673 sequence for Analyze_Aspect_Specifications
7674 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
7675 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
7676
76772011-08-02 Robert Dewar <dewar@adacore.com>
7678
7679 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
7680 aspects, since these no longer exist.
7681
76822011-08-02 Robert Dewar <dewar@adacore.com>
7683
7684 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
7685 semicolon, do not try to see if there are aspects following it.
7686 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
7687 aspect spec.
7688
76892011-08-02 Robert Dewar <dewar@adacore.com>
7690
7691 * sem_ch8.adb, aspects.ads: Minor reformatting.
7692
76932011-08-02 Eric Botcazou <ebotcazou@adacore.com>
7694
7695 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
7696 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
7697 extracted from...
7698 (Analyze_Aspect_Specifications): ...here. Call above procedure.
7699
77002011-08-02 Yannick Moy <moy@adacore.com>
7701
7702 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
7703 mode on subprogram declaration outside of package specification, unless
7704 it is followed by a pragma Import
7705 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
7706 Access_Type_Declaration): issue error in formal mode on access type
7707 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
7708 incomplete type
7709 (Analyze_Object_Declaration): issue error in formal mode on object
7710 declaration which does not respect SPARK restrictions
7711 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
7712 declaration which does not respect SPARK restrictions
7713 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
7714 error in formal mode on digits or delta constraint
7715 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
7716 decimal fixed point type
7717 (Derived_Type_Declaration): issue error in formal mode on derived type
7718 other than type extensions of tagged record types
7719 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
7720 with check on access definition
7721 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
7722 mode on protected definition.
7723 (Analyze_Task_Definition): issue error in formal mode on task definition
7724
77252011-08-02 Robert Dewar <dewar@adacore.com>
7726
7727 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
7728
77292011-08-02 Javier Miranda <miranda@adacore.com>
7730
7731 * sem_ch6.adb (Can_Override_Operator): New function.
7732 (Verify_Overriding_Indicator): Add missing code to check overriding
7733 indicator in operators. Fixes regression.
7734 (Check_Overriding_Indicator): Minor reformating after replacing the
7735 code that evaluates if the subprogram can override an operator by
7736 invocations to the above new function.
7737 * einfo.adb
7738 (Write_Field26_Name): Add missing code to ensure that, following
7739 the documentation in einfo.ads, this field is not shown as attribute
7740 "Static_Initialization" on non-dispatching functions.
7741
77422011-08-02 Jose Ruiz <ruiz@adacore.com>
7743
7744 * sem_res.adb (Resolve_Call): A call to
7745 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
7746 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
7747 i.e., when the second parameter is of type Time_Span.
7748
77492011-08-02 Vincent Celier <celier@adacore.com>
7750
7751 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
7752 with an archive instead of -L<library dir> -l<library name>.
7753
77542011-08-02 Ed Schonberg <schonberg@adacore.com>
7755
7756 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
7757 mark the base types In_Use in addition to making the operations
7758 use_visible.
7759
77602011-08-02 Ed Falis <falis@adacore.com>
7761
7762 * init.c: add and setup __gnat_signal_mask for the exception signals
7763 * s-inmaop-vxworks.adb: new file.
7764 * s-intman-vxworks.adb: remove unnecessary initializations and
7765 simplify remaining
7766 * s-intman-vxworks.ads: remove unnecessary variable
7767 * s-taprop-vxworks.adb: simplify signal initialization
7768
77692011-08-02 Robert Dewar <dewar@adacore.com>
7770
7771 * sem_ch8.adb: Minor code reorganization, comment updates.
7772
77732011-08-02 Robert Dewar <dewar@adacore.com>
7774
7775 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
7776 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
7777 here from Sem_Res.
7778 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
7779 (Matching_Static_Array_Bounds): Moved here from Sem_Res
7780
77812011-08-02 Ed Schonberg <schonberg@adacore.com>
7782
7783 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
7784 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
7785 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
7786 use_type_clauses, to handle more efficiently use_type and use_all_type
7787 constructs.
7788 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
7789 Ada2012 Use_All_Type clause.
7790 (Use_Class_Wide_Operations): new procedure.
7791
77922011-08-02 Robert Dewar <dewar@adacore.com>
7793
7794 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
7795 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
7796 expression to expression function.
7797
77982011-08-02 Ed Schonberg <schonberg@adacore.com>
7799
7800 * sem_ch4.adb: transform simple Ada2012 membership into equality only
7801 if types are compatible.
7802
78032011-08-02 Yannick Moy <moy@adacore.com>
7804
7805 * sem_res.adb (Matching_Static_Array_Bounds): new function which
7806 returns True if its argument array types have same dimension and same
7807 static bounds at each index.
7808 (Resolve_Actuals): issue an error in formal mode on actuals passed as
7809 OUT or IN OUT paramaters which are not view conversions in SPARK.
7810 (Resolve_Arithmetic_Op): issue an error in formal mode on
7811 multiplication or division with operands of fixed point types which are
7812 not qualified or explicitly converted.
7813 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
7814 Boolean or array type (except String) operands.
7815 (Resolve_Equality_Op): issue an error in formal mode on equality
7816 operators for array types other than String with non-matching static
7817 bounds.
7818 (Resolve_Logical_Op): issue an error in formal mode on logical operators
7819 for array types with non-matching static bounds. Factorize the code in
7820 Matching_Static_Array_Bounds.
7821 (Resolve_Qualified_Expression): issue an error in formal mode on
7822 qualified expressions for array types with non-matching static bounds.
7823 (Resolve_Type_Conversion): issue an error in formal mode on type
7824 conversion for array types with non-matching static bounds
7825
78262011-08-02 Robert Dewar <dewar@adacore.com>
7827
7828 * par-ch10.adb: Minor code reorganization (use Nkind_In).
7829
78302011-08-02 Ed Schonberg <schonberg@adacore.com>
7831
7832 * par-ch9.adb: save location of entry for proper error message.
7833
78342011-08-02 Javier Miranda <miranda@adacore.com>
7835
7836 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
7837 (Use_Full_View) which permits this routine to climb through the
7838 ancestors using the full-view of private parents.
7839 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
7840 Use_Full_View to true in calls to Is_Ancestor.
7841 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
7842 true in call to Is_Ancestor.
7843 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
7844 Use_Full_View to true in call to Is_Ancestor.
7845 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
7846 call to Is_Ancestor.
7847 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
7848 Use_Full_View to true in calls to Is_Ancestor.
7849 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
7850 Make_Select_Specific_Data_Table, Register_Primitive,
7851 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
7852 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
7853 to true in call to Is_Ancestor.
7854 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
7855 Use_Full_View to true in calls to Is_Ancestor.
7856 * exp_cg.adb
7857 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
7858 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
7859
78602011-08-02 Robert Dewar <dewar@adacore.com>
7861
7862 * gnat_rm.texi: Minor reformatting.
7863 * sem_prag.adb: Minor reformatting.
7864
78652011-08-02 Tristan Gingold <gingold@adacore.com>
7866
7867 * vms_data.ads: Add VMS qualifier for -gnateP.
7868
78692011-08-02 Robert Dewar <dewar@adacore.com>
7870
7871 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
7872 * par-ch7.adb (P_Package): Proper placement of aspects for package
7873 decl/instantiation.
7874 * par-endh.adb (Check_End): Ad Is_Sloc parameter
7875 (End_Statements): Add Is_Sloc parameterr
7876 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
7877 (Check_End): Ad Is_Sloc parameter
7878 (End_Statements): Add Is_Sloc parameterr
7879
78802011-08-02 Vincent Celier <celier@adacore.com>
7881
7882 * ug_words: Add VMS qualifier equivalent to -gnateP:
7883 /SYMBOL_PREPROCESSING.
7884
78852011-08-02 Jose Ruiz <ruiz@adacore.com>
7886
7887 * gnat-style.texi: For hexadecimal numeric literals the typical
7888 grouping of digits is 4 to represent 2 bytes.
7889 A procedure spec which is split into several lines is indented two
7890 characters.
7891
78922011-08-02 Yannick Moy <moy@adacore.com>
7893
7894 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
7895 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
7896 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
7897 properly qualified
7898 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
7899 choice in array aggregate
7900 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
7901 mark as ancestor
7902 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
7903 positional and named aggregate for record, or others in record
7904 aggregate, or multiple choice in record aggregate
7905 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
7906 array operands to logical operations AND, OR and XOR do not have the
7907 same static lower and higher bounds
7908 * sem_ch5.adb, sinfo.ads: Correct typos in comments
7909
79102011-08-01 Robert Dewar <dewar@adacore.com>
7911
7912 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
7913 Replaces Last_Source_Node_In_Sequence.
7914 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
7915 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
7916 parens and blank in string (this was inconsistently implemented).
7917 * errout.ads
7918 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
7919 blank in string (this was inconsistently implemented).
7920 * gnat1drv.adb
7921 (Set_Global_Switches): Set formal mode switches appropriately
7922 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
7923 * par-prag.adb
7924 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
7925 call Set_Error_Msg_Lang to set "spark" as language name.
7926 * par.adb: Remove unnecessary call to set formal language for errout
7927 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
7928 appropriately and call Set_Error_Msg_Lang to set "spark" as language
7929 name.
7930 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
7931 calls to it, moved after resolution so that types are known
7932 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
7933 result of concatenation is not of type String
7934 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
7935 concatenation is not properly restricted
7936 * gnat_rm.texi: Add doc on pragma Spark_95.
7937 * gcc-interface/Makefile.in: Remove obsolete target pairs for
7938 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
7939 * gcc-interface/Make-lang.in: Update dependencies.
7940
79412011-08-01 Javier Miranda <miranda@adacore.com>
7942
7943 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
7944 condition that detects if the overridden operation must replace an
7945 existing entity.
7946
79472011-08-01 Javier Miranda <miranda@adacore.com>
7948
7949 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
7950 code declarations inserted by Insert_Actions in each alternative of the
7951 N_Case_Expression node.
7952
79532011-08-01 Robert Dewar <dewar@adacore.com>
7954
7955 * sem_ch6.adb: Minor code reorganization.
7956 * sem_util.adb: Minor reformatting.
7957
79582011-08-01 Pascal Obry <obry@adacore.com>
7959
7960 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
7961 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
7962
79632011-08-01 Yannick Moy <moy@adacore.com>
7964
7965 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
7966 literal or operator symbol which is prefixed
7967 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
7968 mode on access attributes.
7969 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
7970 that concatenation operands are properly restricted in formal mode
7971 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
7972 Analyze_Concatenation_Operand. Issue an error in formal mode if the
7973 result of the concatenation has a type different from String.
7974 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
7975 Analyze_Quantified_Expression, Analyze_Slice,
7976 Analyze_Null): issue an error in formal mode on unsupported constructs
7977 * sem_ch5.adb
7978 (Analyze_Block_Statement): only issue error on source block statement
7979 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
7980 function which returns the last node in a list of nodes for which
7981 Comes_From_Source returns True, if any
7982 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
7983 Last_Source_Node_In_Sequence
7984 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
7985 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
7986 mode on unsupported constructs
7987 * sem_ch9.adb Do not return after issuing error in formal mode, as the
7988 rest of the actions may be needed later on since the error is marked as
7989 not serious.
7990 * sinfo.ads: Typos in comments.
7991
79922011-08-01 Pascal Obry <obry@adacore.com>
7993
7994 * projects.texi: Minor editing.
7995
79962011-08-01 Yannick Moy <moy@adacore.com>
7997
7998 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
7999 insertion character ~~
8000 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
8001 (Set_Error_Msg_Lang): new procedure which fixes the language for use
8002 with insertion character ~~
8003 (Set_Msg_Text): treat insertion character ~~
8004 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
8005 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
8006 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
8007 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
8008 errors related to the formal language restriction not serious
8009 (insertion character |).
8010 * par.adb (Par): set formal language for error messages if needed
8011 * sem_ch6.adb (Check_Missing_Return): take into account possible
8012 generated statements at the end of the function
8013 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
8014 enumeration value to define a new pragma SPARK_95
8015 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
8016 SPARK_Version): new type and variables to store the SPARK version
8017 (none by default).
8018 (SPARK_Mode): return True when SPARK_Version is set
8019 * par-prag.adb: Correct indentation
8020 (Prag): take Pragma_SPARK_95 into account
8021 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
8022 into account.
8023
80242011-08-01 Robert Dewar <dewar@adacore.com>
8025
8026 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
8027 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
8028 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
8029
80302011-08-01 Pascal Obry <obry@adacore.com>
8031
8032 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
8033 Target_Name to Get_Path call.
8034 (Parse_Single_Project): Likewise.
8035 (Post_Parse_Context_Clause): Likewise.
8036 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
8037 Call Initialise_Project_Path with the proper Target_Name.
8038 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
8039 search path.
8040 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
8041 with the proper Target_Name.
8042 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
8043 Part.Parse routine.
8044 (Parse_Project_And_Apply_Config): Likewise.
8045 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
8046 This is fine as this part of the code is supporting only native
8047 compilation.
8048 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
8049 is fine as this part of the code is supporting only native compilation.
8050
80512011-08-01 Yannick Moy <moy@adacore.com>
8052
8053 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
8054 of homonym, unless the homonym is one of the cases allowed in SPARK
8055 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
8056 package declaration occurring after a body.
8057
80582011-08-01 Robert Dewar <dewar@adacore.com>
8059
8060 * checks.adb, exp_ch4.adb: Minor reformatting.
8061
80622011-08-01 Javier Miranda <miranda@adacore.com>
8063
8064 * einfo.ads (Access_Disp_Table): Fix documentation.
8065 (Dispatch_Table_Wrappers): Fix documentation.
8066
80672011-08-01 Pascal Obry <obry@adacore.com>
8068
8069 * prj-env.adb, prj-env.ads: Minor reformatting.
8070
80712011-08-01 Yannick Moy <moy@adacore.com>
8072
8073 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
8074 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
8075 procedures out of these packages.
2c7f9cc0 8076 * errout.ads, errout.adb
052e0603
AC
8077 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
8078 procedures in of this package
8079 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
8080 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
8081 on misplaced later vs initial declarations, like in Ada 83
8082 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
8083 formal mode on attribute of private type whose full type declaration
8084 is not visible
8085 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
8086 package declaration inside a package specification
8087 (Analyze_Full_Type_Declaration): issue error in formal mode on
8088 controlled type or discriminant type
8089 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
8090 user-defined operator means that it should come from the source
8091 (New_Overloaded_Entity): issue error in formal mode on overloaded
8092 entity.
8093 * sem_ch6.ads, sem_ch13.ads: typos in comments.
8094
80952011-08-01 Thomas Quinot <quinot@adacore.com>
8096
8097 * atree.adb: Minor reformatting.
8098 * checks.adb: Minor reformatting.
8099
81002011-08-01 Vincent Celier <celier@adacore.com>
8101
8102 * s-parame-vms-ia64.ads: Fix typo in comment
8103 Minor reformatting
8104 * s-parame-vms-restrict.ads: Removed, unused.
8105
81062011-08-01 Javier Miranda <miranda@adacore.com>
8107
8108 * exp_ch3.adb
8109 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
8110 * sem_ch3.adb
8111 (Constrain_Index): Remove side effects in the evaluation of the bounds.
8112 * sem_ch3.ads, sem_ch3.adb
8113 (Is_Constant_Bound): New extended version of the subprogram that was
8114 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
8115 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
8116 * sem_aux.ads (Constant_Value): Fix typo in comment.
8117 * checks.adb (Generate_Index_Checks): New implementation which, for
8118 array objects with constant bounds, generates the runtime check
8119 referencing the bounds of the array type. For other cases this routine
8120 provides its previous behavior obtaining such values from the array
8121 object.
8122 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
8123 parent type.
8124 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
8125 we cannot have semantic interpretations of the new node.
8126
81272011-08-01 Ed Schonberg <schonberg@adacore.com>
8128
8129 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
8130 expressions.
8131
81322011-08-01 Arnaud Charlet <charlet@adacore.com>
8133
8134 * sem_ch8.adb: Minor code editing.
8135 * s-vxwext.adb: Remove trailing space.
8136 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
8137 consistency with other files.
8138
81392011-08-01 Thomas Quinot <quinot@adacore.com>
8140
8141 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
8142
81432011-08-01 Ed Schonberg <schonberg@adacore.com>
8144
8145 * par-ch10.adb: reject parameterized expressions as compilation unit.
8146 * sem_ch4.adb: handle properly conditional expression with overloaded
8147 then_clause and no else_clause.
8148
81492011-08-01 Tristan Gingold <gingold@adacore.com>
8150
8151 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
8152 like done by System.Aux_DEC.
8153 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
8154
81552011-08-01 Yannick Moy <moy@adacore.com>
8156
8157 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
8158 missing label at end of declaration (subprogram or package)
8159 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
8160 of positional and named parameter association
8161 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
8162 Error_Msg_SP which adds a prefix to the error message giving the name
8163 of the formal language analyzed
8164 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
8165 access result type in subprogram, unconstrained array as result type,.
8166 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
8167 procedure
8168 * sem_ch8.adb: Code clean up.
8169
81702011-08-01 Javier Miranda <miranda@adacore.com>
8171
8172 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
8173 * einfo.ads (Access_Disp_Table): Fix documentation.
8174 (Dispatch_Table_Wrappers): Fix documentation.
8175 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
8176 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
8177 to enforce the documentation of this attribute.
8178 (Set_Is_Interface): Cleanup the assertion.
8179 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
8180 the Underlying_Type entity before reading attribute Access_Disp_Table.
8181 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
8182 Locate the Underlying_Type before reading attribute Access_Disp_Table.
8183 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
8184 the Underlying_Type entity before reading attribute Access_Disp_Table.
8185 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
8186 Locate the Underlying_Type entity before reading attribute
8187 Access_Disp_Table.
8188
81892011-08-01 Ed Schonberg <schonberg@adacore.com>
8190
8191 * s-poosiz.ads: Additional overriding indicators.
8192
81932011-08-01 Yannick Moy <moy@adacore.com>
8194
8195 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
8196 formal mode.
8197 (Analyze_Iteration_Scheme): issue error in formal mode when loop
8198 parameter specification does not include a subtype mark.
8199 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
8200 formal mode on abstract subprogram.
8201 (Analyze_Subprogram_Specification): issue error in formal mode on
8202 user-defined operator.
8203 (Process_Formals): issue error in formal mode on access parameter and
8204 default expression.
8205 * sem_ch9.adb (Analyze_Abort_Statement,
8206 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
8207 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
8208 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
8209 Analyze_Requeue, Analyze_Selective_Accept,
8210 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
8211 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
8212 issue error in formal mode on user-defined raise statement.
8213
82142011-08-01 Thomas Quinot <quinot@adacore.com>
8215
8216 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
8217 declaration being hidden when overriding an implicit inherited
8218 subprogram.
8219 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
8220 (-gnats), do not complain about a source file that contains only a
8221 pragma No_Body.
8222
82232011-08-01 Ed Schonberg <schonberg@adacore.com>
8224
8225 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
8226 variable if already set.
8227
82282011-08-01 Arnaud Charlet <charlet@adacore.com>
8229
8230 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
8231 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
8232 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
8233 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
8234 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
8235 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
8236 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
8237 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
8238 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
8239 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
8240 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
8241 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
8242 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
8243 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
8244 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
8245 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
8246 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
8247 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
8248 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
8249 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
8250 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
8251 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
8252 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
8253 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
8254 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
8255 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
8256 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
8257 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
8258 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
8259 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
8260 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
8261 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
8262 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
8263 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
8264 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
8265 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
8266 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
8267 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
8268 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
8269 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
8270 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
8271 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
8272 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
8273 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
8274 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
8275 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
8276 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
8277 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
8278 s-osinte-mingw.ads: Update to GPLv3 run-time license.
8279 Use GNAT instead of GNARL.
8280
82812011-08-01 Bob Duff <duff@adacore.com>
8282
8283 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
8284 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
8285 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
8286 reformatting.
8287
82882011-08-01 Yannick Moy <moy@adacore.com>
8289
8290 * debug.adb (d.D) reverve flag for the SPARK mode
8291 (d.E) reverve flag for SPARK generation mode
8292 (d.F) reverve flag for Why generation mode
2c7f9cc0 8293 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
052e0603
AC
8294 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
8295 functions which return True when the corresponding modes are set
8296 (Formal_Language): return "spark" or "alfa" when in formal verification
8297 mode.
8298 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
8299 Error_Msg to prefix the error message with a tag giving the formal
8300 language
8301 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
8302 message with a tag giving the formal language
8303 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
8304 block statement
8305 (Analyze_Case_Statement): issue error in formal mode on case statement
8306 with a single "others" case alternative
8307 (Analyze_Exit_Statement): issue errors in formal mode on exit
8308 statements which do not respect SPARK restrictions
8309 (Analyze_Goto_Statement): issue error in formal mode on goto statement
8310 (Check_Unreachable_Code): always issue an error (not a warning) in
8311 formal mode on unreachable code (concerns both code after an infinite
8312 loop and after an unconditional jump, both not allowed in SPARK)
8313 * sem_ch6.adb (Analyze_Return_Statement): add call to
8314 Set_Return_Present for a procedure containing a return statement
8315 (already done for functions in Analyze_Function_Return)
8316 (Analyze_Function_Return): issue error in formal mode on extended
8317 return or if return is not last statement in function
8318 (Check_Missing_Return): issue error in formal mode if function does
8319 not end with return or if procedure contains a return
8320 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
8321 function to detect if there is an inner scope of its parameter S which
8322 is a loop.
8323
83242011-08-01 Thomas Quinot <quinot@adacore.com>
8325
8326 * sem_ch6.ads: Minor reformatting.
8327
83282011-08-01 Javier Miranda <miranda@adacore.com>
8329
8330 * sem_util.adb (Abstract_Interface_List): Complete condition when
8331 processing private type declarations to avoid reading unavailable
8332 attribute.
8333 (Is_Synchronized_Tagged_Type): Complete condition when processing
8334 private extension declaration nodes to avoid reading unavailable
8335 attribute.
8336
83372011-08-01 Thomas Quinot <quinot@adacore.com>
8338
8339 * sem_ch3.adb: Minor reformatting.
8340
83412011-08-01 Thomas Quinot <quinot@adacore.com>
8342
8343 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
8344 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
8345 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
8346 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
8347 for VMS, instead parametrize the common implementation with
8348 System.Parameters declarations.
8349
83502011-08-01 Eric Botcazou <ebotcazou@adacore.com>
8351
8352 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
8353
83542011-08-01 Tristan Gingold <gingold@adacore.com>
8355
8356 * seh_init.c: Fix SEH handler installation on win64.
8357
83582011-08-01 Ed Schonberg <schonberg@adacore.com>
8359
8360 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
8361 double analysis of an anonymous access to subprogram, because it can
8362 lead to improper sharing of profiles and a back-end crash.
8363
83642011-08-01 Robert Dewar <dewar@adacore.com>
8365
8366 * make.adb, sem_ch4.adb: Minor reformatting.
8367 * gcc-interface/Make-lang.in: Update dependencies.
8368 * sem_util.adb, exp_ch5.adb: Minor reformatting.
8369
83702011-08-01 Arnaud Charlet <charlet@adacore.com>
8371
8372 * gnat_rm.texi: Fix definition of Long_Integer.
8373
83742011-08-01 Ed Schonberg <schonberg@adacore.com>
8375
8376 * exp_aggr.adb: check limit size of static aggregate unconditionally,
8377 to prevent storage exhaustion.
8378 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
8379 finalized is a function body, insert the cleanup code before the final
8380 return statement, to prevent spurious warnings.
8381 * s-pooglo.ads: add overriding indicator.
8382
83832011-08-01 Ed Schonberg <schonberg@adacore.com>
8384
8385 * sem_ch4.adb (Operator_Check): improve error message when both a
8386 with_clause and a use_clause are needed to make operator usage legal.
8387 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
8388 determine whether a compilation unit is visible within an other,
8389 either through a with_clause in the current unit, or a with_clause in
8390 its library unit or one one of its parents.
8391
83922011-08-01 Ed Schonberg <schonberg@adacore.com>
8393
8394 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
8395 over an arbitrary expression of an array or container type.
8396 * lib-xref.adb: clarify comment.
8397
83982011-08-01 Bob Duff <duff@adacore.com>
8399
8400 * einfo.ads: Minor reformatting.
8401 * debug.adb: Minor comment improvement.
8402
84032011-08-01 Javier Miranda <miranda@adacore.com>
8404
8405 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
8406 consider hidden subprograms as valid candidates.
8407
84082011-08-01 Arnaud Charlet <charlet@adacore.com>
8409
8410 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
8411
84122011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
8413
8414 * gnat_ugn.texi: Fix typo.
8415
84162011-08-01 Robert Dewar <dewar@adacore.com>
8417
8418 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
8419 lib-xref.adb: Minor reformatting
8420
84212011-08-01 Gary Dismukes <dismukes@adacore.com>
8422
8423 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
8424 when to generate a call to Move_Final_List.
8425 (Has_Controlled_Parts): Remove this function.
8426
84272011-08-01 Geert Bosch <bosch@adacore.com>
8428
8429 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
8430 "," in choice list.
8431
84322011-08-01 Thomas Quinot <quinot@adacore.com>
8433
8434 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
8435 explicit raise of a predefined exception as Comes_From_Source if the
8436 original N_Raise_Statement comes from source.
8437
84382011-08-01 Robert Dewar <dewar@adacore.com>
8439
8440 * sinfo.ads: Add comment.
8441 * sem_ch6.adb: Minor reformatting.
8442
84432011-08-01 Robert Dewar <dewar@adacore.com>
8444
8445 * freeze.adb (Freeze_Entity): Refine check for bad component size
8446 clause to avoid rejecting confirming clause when atomic/aliased present.
8447
84482011-08-01 Ed Schonberg <schonberg@adacore.com>
8449
8450 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
8451 better determine whether an entity reference is a write.
8452 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
8453 subcomponent.
8454 * lib-xref.adb (Output_References): Do no suppress a read reference at
8455 the same location as an immediately preceeding modify-reference, to
8456 handle properly in-out actuals.
8457
84582011-08-01 Tristan Gingold <gingold@adacore.com>
8459
8460 * env.c (__gnat_setenv) [VMS]: Refine previous change.
8461
84622011-08-01 Quentin Ochem <ochem@adacore.com>
8463
8464 * i-cstrin.adb (New_String): Changed implementation, now uses only the
8465 heap to compute the result.
8466
84672011-08-01 Robert Dewar <dewar@adacore.com>
8468
8469 * atree.ads: Minor reformatting.
8470
84712011-08-01 Emmanuel Briot <briot@adacore.com>
8472
8473 * g-expect.adb (Get_Command_Output): Fix memory leak.
8474
84752011-08-01 Geert Bosch <bosch@adacore.com>
8476
8477 * cstand.adb (P_Float_Type): New procedure to print the definition of
8478 predefined fpt types.
8479 (P_Mixed_Name): New procedure to print a name using mixed case
8480 (Print_Standard): Use P_Float_Type for printing floating point types
8481 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
8482 precision IEEE float.
8483
84842011-08-01 Thomas Quinot <quinot@adacore.com>
8485
8486 * sem_ch3.adb: Minor reformatting.
8487
84882011-08-01 Ed Schonberg <schonberg@adacore.com>
8489
8490 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
8491 the completion of a generic function, insert the new body rather than
8492 rewriting the original.
8493
84942011-08-01 Yannick Moy <moy@adacore.com>
8495
8496 * sinfo.ads, errout.ads: Typos in comments.
8497
84982011-08-01 Robert Dewar <dewar@adacore.com>
8499
8500 * par-endh.adb: Minor reformatting.
8501
85022011-08-01 Robert Dewar <dewar@adacore.com>
8503
8504 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
8505 (Pre_Post_Aspects): New subtype.
8506 * par-ch12.adb (P_Generic): New syntax for aspects in packages
8507 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
8508 * par-ch7.adb (P_Package): Remove Decl parameter
8509 (P_Package): Handle new syntax for aspects (before IS)
8510 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
8511 new aspect syntax
8512 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
8513 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
8514 (P_Package): Remove Decl parameter
8515 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
8516 aspects
8517 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
8518 specs
8519 * sem_util.ads, sem_util.adb (Static_Boolean): New function
8520 * sinfo.ads: Document new syntax for aspects in packages etc.
8521 * sprint.adb: Handle new syntax of aspects before IS in package
8522
85232011-08-01 Thomas Quinot <quinot@adacore.com>
8524
8525 * atree.ads: Minor reformatting.
8526 * sem_prag.adb: Minor reformatting.
8527
85282011-08-01 Robert Dewar <dewar@adacore.com>
8529
8530 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
8531 case expr alternative.
8532
85332011-08-01 Ed Schonberg <schonberg@adacore.com>
8534
8535 * sem_ch12.adb: Fix typo.
8536
85372011-08-01 Geert Bosch <bosch@adacore.com>
8538
8539 * sem_prag.adb (Check_No_Link_Name): New procedure.
8540 (Process_Import_Or_Interface): Use Check_No_Link_Name.
8541 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
8542 instead of Standard_Long_Long_Float_Size global. Preparation for
8543 eventual removal of per type constants.
8544 * exp_util.ads (Get_Stream_Size): New function returning the stream
8545 size value of subtype E.
8546 * exp_util.adb (Get_Stream_Size): Implement new function.
8547 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
8548 function.
8549 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
8550 * einfo.adb:
8551 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
8552
85532011-08-01 Geert Bosch <bosch@adacore.com>
8554
8555 * cstand.adb: Fix comments.
8556 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
8557 count of arguments.
8558
85592011-08-01 Robert Dewar <dewar@adacore.com>
8560
8561 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
8562
85632011-08-01 Geert Bosch <bosch@adacore.com>
8564
8565 * atree.ads: Fix comment.
8566
85672011-08-01 Robert Dewar <dewar@adacore.com>
8568
8569 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
8570 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
8571 * par.adb: Add with for Namet.Sp.
8572 * par-tchk.adb: Minor reformatting.
8573
85742011-08-01 Vincent Celier <celier@adacore.com>
8575
8576 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
8577 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
8578 of the init procedure of a SAL.
8579 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
8580 New procedure.
8581
85822011-08-01 Thomas Quinot <quinot@adacore.com>
8583
8584 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
8585 reformatting.
8586
85872011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8588
8589 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
8590
85912011-08-01 Thomas Quinot <quinot@adacore.com>
8592
8593 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
8594 conformant with its spec (return True only for types that have
8595 an overriding Initialize primitive operation that prevents them from
8596 having preelaborable initialization).
8597 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
8598 initialization for controlled types in Ada 2005 or later mode.
8599
86002011-08-01 Robert Dewar <dewar@adacore.com>
8601
8602 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
8603 Postcondition.
8604 (Same_Aspect): New function.
8605 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
8606 Type_Invariant, Precondition, Postcondition.
8607 * snames.ads-tmpl: Add Name_Type_Invariant.
8608
86092011-08-01 Robert Dewar <dewar@adacore.com>
8610
8611 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
8612 here.
8613 (Freeze_All_Ent): Fix error in handling inherited aspects.
8614 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
8615 already analyzed, but don't skip entire processing of a declaration,
8616 that's wrong in some cases of declarations being rewritten.
8617 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
8618 Don't delay for integer, string literals
8619 Treat predicates in usual manner for delay, remove special case code,
8620 not needed.
8621 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
8622 (Build_Predicate_Function): Update saved expression in aspect
8623 (Build_Invariant_Procedure): Update saved expression in aspect
8624 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
8625 of replacement of discriminant references if the reference is simple.
8626
86272011-08-01 Robert Dewar <dewar@adacore.com>
8628
8629 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
8630 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
8631 Static_Predicate and Dynamic_Predicate.
8632 (Build_Predicate_Function): Add processing for Static_Predicate
8633 and Dynamic_Predicate.
8634 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
8635 (From_Static_Predicate): New flag
8636 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
8637
86382011-08-01 Robert Dewar <dewar@adacore.com>
8639
8640 * usage.adb: Documentation cleanup for Ada version modes in usage.
8641 * expander.adb: Minor reformatting.
8642
86432011-08-01 Robert Dewar <dewar@adacore.com>
8644
8645 * atree.ads: Minor comment fix.
8646 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
8647 a-witeio.ads, sem_prag.adb: Minor reformatting.
8648
86492011-08-01 Doug Rupp <rupp@adacore.com>
8650
8651 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
8652 pointers. Use descrip.h header file for convenience. Add some
8653 comments.
8654
86552011-08-01 Robert Dewar <dewar@adacore.com>
8656
8657 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
8658 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
8659 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
8660 New procedure.
8661 (Check_Aspect_At_End_Of_Declarations): New procedure
8662 (Analye_Aspect_Specification): Minor changes for above procedures
8663 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
8664 specification node as well.
8665
86662011-08-01 Pascal Obry <obry@adacore.com>
8667
8668 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
8669 Windows files. Use GetFilesAttributes() in this case to check for file
8670 existence instead of returning with an error code.
8671
86722011-08-01 Vincent Celier <celier@adacore.com>
8673
8674 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
8675 High is above Source length.
8676
86772011-08-01 Robert Dewar <dewar@adacore.com>
8678
8679 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
8680
86812011-08-01 Robert Dewar <dewar@adacore.com>
8682
8683 * aspects.ads (Boolean_Aspects): New subtype.
8684 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
8685 for derived types in cases where the parent type and derived type have
8686 aspects.
8687 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
8688 with aspects when parent type also has aspects.
8689 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
8690 boolean expression at this point).
8691 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
8692 accordance with final decision on the Ada 2012 feature.
8693 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
8694
86952011-08-01 Matthew Heaney <heaney@adacore.com>
8696
8697 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
8698
86992011-08-01 Pascal Obry <obry@adacore.com>
8700
8701 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
8702 Fix Replace_Slice when High is above current string size.
8703 (Replace_Slice): Fix DL computation when High is above current
8704 string length.
8705
87062011-08-01 Gary Dismukes <dismukes@adacore.com>
8707
8708 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
8709
87102011-08-01 Matthew Heaney <heaney@adacore.com>
8711
8712 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
8713 of node.
8714
87152011-08-01 Pascal Obry <obry@adacore.com>
8716
8717 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
8718 reformatting.
8719
87202011-08-01 Ed Schonberg <schonberg@adacore.com>
8721
8722 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
8723 access to protected subprograms in generic bodies.
8724 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
8725 protected type, indicate that the convention of the subprogram is
8726 Convention_Protected, because it may be used in subsequent declarations
8727 within the protected declaration.
8728
87292011-08-01 Vincent Celier <celier@adacore.com>
8730
8731 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
8732 and "final" procedures when the name of the library is "ada", to avoid
8733 duplicate symbols "adainit" and "adafinal" in executables.
8734
87352011-08-01 Ed Schonberg <schonberg@adacore.com>
8736
8737 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
8738 quantified expression that appears within a postcondition and uses the
8739 Ada2012 'Result attribute.
8740
87412011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8742
8743 * init.c (__gnat_error_handler): Cast reason to int.
8744 (__gnat_install_handler): Explain sa_sigaction use.
8745
87462011-07-24 Eric Botcazou <ebotcazou@adacore.com>
8747
8748 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
8749 subprogram has copy-in copy-out parameters, try to promote the mode of
8750 the return type if it is passed in registers.
8751
87522011-07-24 Eric Botcazou <ebotcazou@adacore.com>
8753
8754 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
8755 left operand as addressable.
8756
87572011-07-24 Eric Botcazou <ebotcazou@adacore.com>
8758
8759 * gcc-interface/gigi.h (build_function_stub): Remove.
8760 (build_return_expr): Likewise.
8761 (convert_vms_descriptor): Declare.
8762 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
8763 (build_function_stub): Move to...
8764 * gcc-interface/utils2.c (build_return_expr): Move to...
8765 * gcc-interface/trans.c (build_function_stub): ...here.
8766 (build_return_expr): ...here.
8767 (Subprogram_Body_to_gnu): Add local variable for language_function.
8768 Disconnect the parameter attributes cache, if any, once done with it.
8769 Call end_subprog_body only after setting the end_locus.
8770 Build the stub associated with the function, if any, at the very end.
8771 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
8772 variables and streamline control flow.
8773
87742011-07-23 Arnaud Charlet <charlet@adacore.com>
8775
8776 PR ada/49819
8777 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
8778 g-trasym-dwarf.adb.
8779
87802011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8781
8782 PR bootstrap/49794
8783 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
8784 Assign to act.sa_sigaction.
8785 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
8786 current->return_address to char * before arithmetic.
8787
87882011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8789
8790 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
8791 Correct argument types.
8792 Extract code from reason.
8793 (__gnat_install_handler): Assign to act.sa_sigaction.
8794
87952011-07-21 Eric Botcazou <ebotcazou@adacore.com>
8796
8797 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
8798 (GNAT1_OBJS): ...here.
8799
88002011-07-15 Eric Botcazou <ebotcazou@adacore.com>
8801
8802 PR ada/48711
8803 * g-socthi-mingw.adb (Fill): Fix formatting.
8804
8805 * gcc-interface/gigi.h: Move around comment.
8806
88072011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8808
8809 PR ada/46350
8810 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
8811
88122011-07-14 Florian Weimer <fw@deneb.enyo.de>
8813
8814 PR ada/48711
8815 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
8816
88172011-07-13 Eric Botcazou <ebotcazou@adacore.com>
8818
8819 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
8820 range comparison if Pmode is SImode.
8821
88222011-07-12 Laurent GUERBY <laurent@guerby.net>
8823 Eric Botcazou <ebotcazou@adacore.com>
8824
8825 * adadecode.c: Wrap up in extern "C" block.
8826 * adadecode.h: Likewise.
8827 * adaint.c: Likewise. Remove 'const' keyword.
8828 * adaint.h: Likewise.
8829 * argv.c: Likewise.
8830 * atree.h: Likewise.
8831 * cio.c: Likewise.
8832 * cstreams.c: Likewise.
8833 * env.c: Likewise.
8834 * exit.c: Likewise.
8835 * fe.h: Likewise.
8836 * final.c: Likewise.
8837 * init.c: Likewise.
8838 * initialize.c: Likewise.
8839 * link.c: Likewise.
8840 * namet.h: Likewise.
8841 * nlists.h: Likewise.
8842 * raise.c: Likewise.
8843 * raise.h: Likewise.
8844 * repinfo.h: Likewise.
8845 * seh_init.c: Likewise.
8846 * targext.c: Likewise.
8847 * tracebak.c: Likewise.
8848 * uintp.h: Likewise.
8849 * urealp.h: Likewise.
8850 * xeinfo.adb: Wrap up generated C code in extern "C" block.
8851 * xsinfo.adb: Likewise.
8852 * xsnamest.adb: Likewise.
8853 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
8854 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
8855 * gcc-interface/misc.c: Likewise.
8856 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
8857 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
8858 ada/targext.o here...
8859 (GNAT_ADA_OBJS): ...and not here.
8860 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
8861 (GNATBIND_OBJS): Reorder.
8862
88632011-07-07 Richard Henderson <rth@redhat.com>
8864
8865 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
8866 dwarf2out_frame_init.
8867
88682011-07-07 Eric Botcazou <ebotcazou@adacore.com>
8869
8870 * gcc-interface/misc.c (gnat_init): Tweak previous change.
8871
88722011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8873
8874 PR target/39150
8875 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
8876
88772011-07-06 Richard Guenther <rguenther@suse.de>
8878
8879 * gcc-interface/misc.c (gnat_init): Merge calls to
8880 build_common_tree_nodes and build_common_tree_nodes_2.
8881 Re-initialize boolean_false_node.
8882
88832011-07-02 Eric Botcazou <ebotcazou@adacore.com>
8884 Olivier Hainque <hainque@adacore.com>
8885 Nicolas Setton <setton@adacore.com>
8886
8887 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
8888 the type according to the ARTIFICIAL_P parameter.
8889 (create_type_decl): Likewise.
8890 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
8891
88922011-07-01 Eric Botcazou <ebotcazou@adacore.com>
8893
8894 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
8895 (gnatbind): Likewise.
8896
88972011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8898
8899 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
8900
89012011-06-18 Eric Botcazou <ebotcazou@adacore.com>
8902
8903 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
8904 local variable throughout. Remove useless call to Base_Type.
8905 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
8906 Take it also into account for the volatileness of the field. Set the
8907 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
8908
89092011-06-18 Eric Botcazou <ebotcazou@adacore.com>
8910
8911 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
8912 on a dereference built for a by-ref object if it has an address clause.
8913
89142011-06-18 Eric Botcazou <ebotcazou@adacore.com>
8915
8916 * einfo.ads (Address_Taken): Document use for the second argument of
8917 Asm_Input and Asm_Output attributes.
8918 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
8919 argument is an entity name, then set Address_Taken on it.
8920 <Attribute_Asm_Output>: Likewise.
8921 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
8922 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
8923 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
8924 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
8925
89262011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
8927
8928 PR middle-end/46500
8929 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
8930
89312011-06-14 Joseph Myers <joseph@codesourcery.com>
8932
8933 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
8934 (ada/utils.o): Update dependencies.
8935 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
8936 ../../../libcpp/libcpp.a.
8937 * gcc-interface/utils.c: Include common/common-target.h.
8938 (process_attributes): Use targetm_common.have_named_sections.
8939
89402011-06-07 Richard Guenther <rguenther@suse.de>
8941
8942 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
8943 set_sizetype.
8944
89452011-06-06 Eric Botcazou <ebotcazou@adacore.com>
8946
8947 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
8948 TREE_THIS_NOTRAP flag.
8949
89502011-06-06 Eric Botcazou <ebotcazou@adacore.com>
8951
8952 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
8953 Fix thinko.
8954
89552011-06-06 Eric Botcazou <ebotcazou@adacore.com>
8956
8957 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
8958 constants whose full view has discriminants specially.
8959
89602011-06-06 Eric Botcazou <ebotcazou@adacore.com>
8961
8962 * gcc-interface/utils.c: Include diagnostic.h.
8963 (gnat_write_global_declarations): Output debug information for all
8964 global type declarations before finalizing the compilation unit.
8965 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
8966
89672011-05-25 Jakub Jelinek <jakub@redhat.com>
8968
8969 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
8970
89712011-05-25 Kai Tietz <ktietz@redhat.com>
8972
8973 * adaint.c (__gnat_to_canonical_file_list_next): Use array
8974 initialization instead of const/none-const pointer assignment.
8975
89762011-05-24 Joseph Myers <joseph@codesourcery.com>
8977
8978 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
8979 $(EXTRA_GNAT1_OBJS).
8980 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
8981 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
8982 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
8983 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
8984 libcommon-target.a instead of prefix.o.
8985
89862011-05-21 Joseph Myers <joseph@codesourcery.com>
8987
8988 PR ada/49097
8989 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
8990
89912011-05-20 Joseph Myers <joseph@codesourcery.com>
8992
8993 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
8994 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
8995 instead of version.o.
8996
89972011-05-18 Kai Tietz <ktietz@redhat.com>
8998
8999 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
9000 boolean_false_node instead of integer_zero_node.
9001 (convert_with_check): Likewise.
9002 * gcc-interface/decl.c (choices_to_gnu): Likewise.
9003
90042011-05-12 Eric Botcazou <ebotcazou@adacore.com>
9005
9006 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
9007 type of the parameter is an unconstrained array, convert the actual to
9008 the type of the formal in the In Out and Out cases as well.
9009
90102011-05-11 Nathan Froyd <froydnj@codesourcery.com>
9011
9012 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
9013 call build_function_type_array or build_varargs_function_type_array
9014 instead.
9015 (create_subprog_type): Don't call build_function_type; call
9016 build_function_type_vec instead.
9017
90182011-05-11 Nathan Froyd <froydnj@codesourcery.com>
9019
9020 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
9021 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
9022 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
9023
90242011-05-07 Eric Botcazou <ebotcazou@adacore.com>
9025
9026 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
9027
9028 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
9029 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
9030
90312011-05-05 Nathan Froyd <froydnj@codesourcery.com>
9032
9033 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
9034
90352011-05-05 Nathan Froyd <froydnj@codesourcery.com>
9036
9037 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
9038 instead of accessing TYPE_ARG_TYPES directly.
9039 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
9040
90412011-05-05 Eric Botcazou <ebotcazou@adacore.com>
9042
9043 PR ada/48844
9044 * gcc-interface/gigi.h (get_variant_part): Declare.
9045 * gcc-interface/decl.c (get_variant_part): Make global.
9046 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
9047 types have the same constant size, are record types and T1 has a
9048 variant part while T2 doesn't.
9049
90502011-05-05 Eric Botcazou <ebotcazou@adacore.com>
9051
9052 * gcc-interface/utils.c (begin_subprog_body): Do not call
9053 get_pending_sizes.
9054 (end_subprog_body): Likewise.
9055
90562011-05-04 Richard Guenther <rguenther@suse.de>
9057
9058 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
9059 int_const_binop.
9060 (pos_to_constructor): Likewise.
9061
90622011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2c7f9cc0 9063 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
9064
9065 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
9066 of build_function_type. Adjust calls to...
9067 (build_raise_check): ...this. Do not take a void_tree parameter.
9068 Call build_function_type_list instead of build_function_type.
9069 Fix head comment and swap couple of conditional blocks.
9070
90712011-04-30 Eric Botcazou <ebotcazou@adacore.com>
9072
9073 * gnatvsn.ads (Library_Version): Bump to 4.7.
9074 (Current_Year): Bump to 2011.
9075
90762011-04-29 Michael Matz <matz@suse.de>
9077
9078 * gcc-interface/misc.c (gnat_handle_option): Set
9079 warn_maybe_uninitialized.
9080
90812011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
9082
9083 * gnat_ugn.texi (Complexity Metrics Control): Update link to
9084 the Watson/McCabe paper.
9085
90862011-04-23 Jim Meyering <meyering@redhat.com>
9087
9088 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
9089
90902011-04-22 Eric Botcazou <ebotcazou@adacore.com>
9091
9092 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
9093 onto the new type.
9094
90952011-04-22 Eric Botcazou <ebotcazou@adacore.com>
9096
9097 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
9098 parameter.
9099 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
9100 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
9101 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
9102 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
9103 <all>: Do not set flags on the reused DECL node coming from an alias.
9104 Set DECL_IGNORED_P on the DECL node built for subprograms if they
9105 don't need debug info here...
9106 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
9107 (gigi): Adjust calls to create_subprog_decl.
9108 (build_raise_check): Likewise.
9109 (establish_gnat_vms_condition_handler): Likewise.
9110 (Compilation_Unit_to_gnu): Likewise.
9111 (gnat_to_gnu): Likewise.
9112
91132011-04-21 Eric Botcazou <ebotcazou@adacore.com>
9114
9115 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
9116 (NO_REORDER_ADAFLAGS): New variable.
9117 (EXTRA_GNATTOOLS): Always define.
9118 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
9119 Clean up and adjust list of files compiled with special options.
9120 * gcc-interface/Make-lang.in: Likewise.
9121 (ada/decl.o): Cosmetical change.
9122 (ada/misc.o): Remove dependency on $(PLUGIN_H).
9123
91242011-04-20 Jim Meyering <meyering@redhat.com>
9125
9126 * initialize.c (__gnat_initialize): Remove useless if-before-free.
9127
91282011-04-17 Eric Botcazou <ebotcazou@adacore.com>
9129
9130 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
9131 $(CFLAGS) on the link line.
9132
91332011-04-17 Eric Botcazou <ebotcazou@adacore.com>
9134
9135 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
9136 padded type built for the return type if it is unconstrained.
9137
91382011-04-14 Nathan Froyd <froydnj@codesourcery.com>
9139
9140 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
9141
91422011-04-12 Nathan Froyd <froydnj@codesourcery.com>
9143
9144 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
9145 before calling TREE_CHAIN.
9146 * gcc-interface/misc.c (gnat_init_ts): New function.
9147 (LANG_HOOKS_INIT_TS): Define.
9148
91492011-04-12 Martin Jambor <mjambor@suse.cz>
9150
9151 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
9152 instead of cgraph_node.
9153
91542011-04-08 Eric Botcazou <ebotcazou@adacore.com>
9155
9156 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
9157 alignment on fields of the RETURN type built for the Copy-In Copy-Out
9158 mechanism.
9159
91602011-04-08 Eric Botcazou <ebotcazou@adacore.com>
9161
9162 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
9163 of aggregate types that contain a placeholder.
9164
91652011-04-08 Nathan Froyd <froydnj@codesourcery.com>
9166
9167 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
9168 TYPE_ARG_TYPES.
9169 (handle_type_generic_attribute): Likewise.
9170
91712011-04-04 Eric Botcazou <ebotcazou@adacore.com>
9172
9173 PR ada/47163
9174 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
9175
91762011-04-04 Kai Tietz <ktietz@redhat.com>
9177
9178 PR ada/47163
9179 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
9180 to flag value.
9181
91822011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9183
9184 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
9185 type case, do not strip a padding type around the array type.
9186
91872011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9188
9189 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
9190 types.
9191
91922011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9193
9194 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
9195 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
9196 code for -feliminate-unused-debug-types.
9197 (gnat_post_options): Likewise.
9198
91992011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9200
9201 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
9202 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
9203 distinct copy.
9204
92052011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9206
9207 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
9208 DECL_ARTIFICIAL flag on enumeration types.
9209
92102011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9211
9212 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
9213 fat pointer types artificial unconditionally.
9214 <E_Array_Subtype>: Attach the base array type as a parallel type if it
9215 isn't artificial.
9216
92172011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9218
9219 * gcc-interface/gigi.h (get_dummy_type): Declare.
9220 (build_dummy_unc_pointer_types): Likewise.
9221 (finish_fat_pointer_type): Likewise.
9222 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
9223 fat pointer type has been built, complete it in place.
9224 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
9225 and thin pointers. Remove useless variable.
9226 (finish_fat_pointer_type): Make global and move to...
9227 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
9228 (get_dummy_type): New function.
9229 (build_dummy_unc_pointer_types): Likewise.
9230 (gnat_pushdecl): Propage the name to the anonymous variants only.
9231 (update_pointer_to): Only adjust the pointer types in the unconstrained
9232 array case.
9233
92342011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9235
9236 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
9237 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
9238 if this is a Taft amendment type and the full declaration is available.
9239 * gcc-interface/trans.c (process_type): Likewise.
9240 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
9241 (process_freeze_entity): Likewise.
9242 * gcc-interface/utils.c (dummy_global): New static variable.
9243 (gnat_write_global_declarations): If there are types declared as used
9244 at the global level, insert them in the global hash table.
9245
92462011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9247
9248 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
9249 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
9250 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
9251 copy.
9252 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
9253 flag of the type accordingly.
9254 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
9255
92562011-04-02 Eric Botcazou <ebotcazou@adacore.com>
9257
9258 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
9259 finalizing types when updating the pointers to the designated type.
9260 <all>: Finalize the deferred types even if we didn't defer processing
9261 of incomplete types in this invocation.
9262
92632011-04-01 Olivier Hainque <hainque@adacore.com>
2c7f9cc0
AS
9264 Nicolas Setton <setton@adacore.com>
9265 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
9266
9267 * gcc-interface/misc.c (gnat_descriptive_type): New function.
9268 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
9269
92702011-03-28 Kai Tietz <ktietz@redhat.com>
9271
9272 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
9273 Windows targets.
9274 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
9275 * system-mingw.ads (System): Change ZCX_By_Default default to True.
9276
9277 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
9278
92792011-03-28 Tristan Gingold <gingold@adacore.com>
9280
9281 PR ada/44431
9282 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
9283 Use ada output of gnatbind.
9284 (ada/b_gnatb.adb): Ditto.
9285 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
9286 (ada.mostlyclean, ada.stage1)
9287 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
9288 (ada.stagefeedback): Adjust.
9289 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
9290 Use ada output of gnatbind.
9291 (b_gnatm.adb): Ditto.
9292 (b_gnatl.o, b_gnatm.o): New rules.
9293
92942011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9295
9296 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
9297 for the padded type built to support a specified size or alignment.
9298
92992011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9300
9301 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
9302 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
9303 unconditionally to the end of the unit when the designated type is
9304 limited_with'ed.
9305 <all>: Rename local variable. Attempt to un-defer types only and do it
9306 for limited_with'ed types as well.
9307 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
9308 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
9309 consistently and remove redundant call to finalize_from_with_types.
9310
93112011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9312
9313 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
9314 subprograms without a previous spec declared in the same unit.
9315 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
9316 subprograms at the end of the unit instead of at the beginning.
9317 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
9318 isn't public for the special handling of non-inline functions nested
9319 inside inline external functions.
9320
93212011-03-25 Jeff Law <law@redhat.com>
9322
9323 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
9324
93252011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9326
9327 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
9328 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
9329 to compute Set_Size_Depends_On_Discriminant.
9330 (Layout_Type): Call it on array types in back-end layout mode.
9331 * sem_util.adb (Requires_Transient_Scope): Return true for array
9332 types only if the size depends on the value of discriminants.
9333 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
9334 type if the RHS is a call to a function that returns an unconstrained
9335 type with default discriminant.
9336
93372011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9338
9339 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
9340 non-conversion to the nominal result type at the end.
9341
93422011-03-23 Eric Botcazou <ebotcazou@adacore.com>
9343
9344 * gcc-interface/trans.c (create_temporary): New function taken from...
9345 (create_init_temporary): ...here. Call it.
9346 (call_to_gnu): Create the temporary for the return value early, if any.
9347 Create it for a function with copy-in/copy-out parameters if there is
9348 no target; in other cases of copy-in/copy-out, use another temporary.
9349 Push the new binding level lazily. Add and rename local variables.
9350
93512011-03-23 Eric Botcazou <ebotcazou@adacore.com>
9352
9353 * gcc-interface/decl.c (validate_size): Improve comments and tweak
9354 error message.
9355 (set_rm_size): Likewise.
9356
93572011-03-23 Eric Botcazou <ebotcazou@adacore.com>
9358
9359 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
9360 for the padded type built in order to support a specified alignment.
9361 Fix incorrect formatting.
9362
93632011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9364
9365 PR bootstrap/48216
9366 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
9367
93682011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9369
9370 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
9371 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
9372 to the end of the list. Adjust recursive call. Rename local variable.
9373 If REORDER is true, reorder components of the record type.
9374 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
9375 components_to_record and adjust the parameter list.
9376
93772011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9378
9379 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
9380 disabled, use the variable for bounds of loop iteration scheme.
9381
93822011-03-21 Kai Tietz <ktietz@redhat.com>
9383
9384 PR target/12171
9385 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
9386
93872011-03-17 Eric Botcazou <ebotcazou@adacore.com>
9388
9389 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
9390 out whether the expression is read-only. Short-circuit placeholder
9391 case and rename a couple of local variables.
9392
93932011-03-17 Eric Botcazou <ebotcazou@adacore.com>
9394
9395 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
9396 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
9397 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
9398 (convert): Deal with conversions from a smaller form type specially.
9399
94002011-02-14 Eric Botcazou <ebotcazou@adacore.com>
9401
9402 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
9403 its argument, except for the special -I- switch.
9404
94052011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
9406
9407 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
9408 "Ada Issues".
9409
94102011-02-08 Eric Botcazou <ebotcazou@adacore.com>
9411
9412 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
9413
94142011-02-03 Eric Botcazou <ebotcazou@adacore.com>
9415
9416 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
9417 GNAT_FORMAL.
9418 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
9419 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
9420 instead of GNAT_FORMAL. Protect the expression against multiple uses.
9421 Do not generate the check directly, instead instantiate the template
9422 check present in the descriptor.
9423 (make_descriptor_field): Move around.
9424 (build_vms_descriptor32): Build a template check in the POINTER field.
9425 (build_vms_descriptor): Remove useless suffixes.
9426 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
9427
94282011-01-26 Eric Botcazou <ebotcazou@adacore.com>
9429
9430 PR bootstrap/47467
9431 * targext.c: Include target files if IN_RTS is defined.
9432
94332011-01-26 Richard Guenther <rguenther@suse.de>
9434
9435 PR bootstrap/47467
9436 * targext.c: Include config.h.
9437 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
9438 dependency.
9439
94402011-01-04 Pascal Obry <obry@adacore.com>
2c7f9cc0 9441 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
9442
9443 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
9444
94452011-01-04 Eric Botcazou <ebotcazou@adacore.com>
9446
9447 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
9448 end-of-case on the end label and its associated gotos, if any.
9449
94502011-01-04 Eric Botcazou <ebotcazou@adacore.com>
9451
9452 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
9453 expressions of the parameter cache within the statement group of
9454 the CICO mechanism.
9455
94562011-01-04 Olivier Hainque <hainque@adacore.com>
2c7f9cc0 9457 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
9458
9459 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
9460 (set_end_locus_from_node): New function.
9461 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
9462 make and the function end_locus.
9463 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
9464 for the elaboration subprogram.
9465 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
9466 set the end_locus of the expression as well.
9467
94682011-01-04 Eric Botcazou <ebotcazou@adacore.com>
9469
9470 PR ada/47131
9471 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
9472 variables that are referenced in exception handlers volatile.
9473
9474
9475\f
9476Copyright (C) 2011 Free Software Foundation, Inc.
9477
9478Copying and distribution of this file, with or without modification,
9479are permitted in any medium without royalty provided the copyright
9480notice and this notice are preserved.
9481
9482 * gnat_rm.texi: Ramification of pragma Eliminate documentation
9483 - fix bugs in the description of Source_Trace;
9484 - get rid of UNIT_NAME;
9485
4fbad0ba
AC
94862011-08-02 Javier Miranda <miranda@adacore.com>
9487
9488 * exp_ch9.adb
9489 (Build_Dispatching_Requeue): Adding support for VM targets
9490 since we cannot directly reference the Tag entity.
9491 * exp_sel.adb (Build_K): Adding support for VM targets.
9492 (Build_S_Assignment): Adding support for VM targets.
9493 * exp_disp.adb
9494 (Default_Prim_Op_Position): In VM targets do not restrict availability
9495 of predefined interface primitives to compiling in Ada 2005 mode.
9496 (Is_Predefined_Interface_Primitive): In VM targets this service is not
9497 restricted to compiling in Ada 2005 mode.
9498 (Make_VM_TSD): Generate code that declares and initializes the OSD
9499 record. Needed to support dispatching calls through synchronized
9500 interfaces.
9501 * exp_ch3.adb
9502 (Make_Predefined_Primitive_Specs): Enable generation of predefined
9503 primitives associated with synchronized interfaces.
9504 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
9505 primitives associated with synchronized interfaces.
9506
95072011-08-02 Yannick Moy <moy@adacore.com>
9508
9509 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
9510 statements hidden in SPARK if preceded by the HIDE directive
9511 (Parse_Exception_Handlers): mark each exception handler in a sequence of
9512 exception handlers as hidden in SPARK if preceded by the HIDE directive
9513 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
9514 if starting with the HIDE directive
9515 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
9516 starting with the HIDE directive; mark the declarations in a private
9517 part as hidden in SPARK if the private part starts with the HIDE
9518 directive
9519 * restrict.adb, restrict.ads
9520 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
9521 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
9522 argument node belongs to a part which is hidden in SPARK
9523 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
9524 parts in SPARK; protect the possibly costly call to
9525 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
9526 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
9527 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
9528 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
9529 Tok_SPARK_Hide.
9530 (Scan): recognize special comment starting with '#' and followed by
9531 SPARK keyword "hide" as a HIDE directive.
9532
95332011-08-02 Yannick Moy <moy@adacore.com>
9534
9535 * types.ads, erroutc.ads: Minor reformatting.
9536
95372011-08-02 Vincent Celier <celier@adacore.com>
9538
9539 * link.c: Add response file support for cross platforms.
9540
6ff6152d
ES
95412011-08-02 Ed Schonberg <schonberg@adacore.com>
9542
9543 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
9544 in an association, set parent field of copy before partial analysis.
9545 * sem_res.adb (Resolve_Slice): create reference to itype only when
9546 expansion is enabled.
9547
975c6896
YM
95482011-08-02 Yannick Moy <moy@adacore.com>
9549
9550 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
9551 for new flag denoting which subprogram bodies are in ALFA
9552 * restrict.adb, sem_ch7.adb: Update comment
9553 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
9554 sem_ch9.adb, sem_res.adb: Add calls to
9555 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
9556 * sem_ch6.adb (Analyze_Function_Return): add calls to
9557 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
9558 middle of the body, and extended return.
9559 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
9560 False when missing return.
9561 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
9562 to True for subprograms whose spec is in ALFA. Remove later on the flag
9563 on the entity used for a subprogram body when there exists a separate
9564 declaration.
9565 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
9566 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
9567 False, otherwise do nothing.
9568
afc8324d
AC
95692011-08-02 Robert Dewar <dewar@adacore.com>
9570
9571 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
9572
95732011-08-02 Yannick Moy <moy@adacore.com>
9574
9575 * sem_ch4.ads: minor formatting.
9576
2ba431e5
YM
95772011-08-02 Yannick Moy <moy@adacore.com>
9578
9579 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
9580 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
9581 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
9582 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
9583 opt.ads: cleanup of SPARK mode
9584
0f853035
YM
95852011-08-02 Yannick Moy <moy@adacore.com>
9586
9587 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
9588 types.
9589 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
9590 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
9591 * sem_ch3.adb
9592 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
9593 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
9594 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
9595 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
9596 types.
9597 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
9598 non-static range.
9599 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
9600 functions whose return type is not in ALFA.
9601 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
9602 specifications.
9603 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
9604 parameter's type is not in ALFA.
9605 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
9606 types are in ALFA.
9607
d2b10647
ES
96082011-08-02 Ed Schonberg <schonberg@adacore.com>
9609
9610 * sem_ch6 (Analyze_Expression_Function): treat the function as
9611 Inline_Always, and introduce a subprogram declaration for it when it is
9612 not a completion.
9613 * inline.adb (Add_Inlined_Body): recognize bodies that come from
9614 expression functions, so that the back-end can determine whether they
9615 can in fact be inlined.
9616 * sem_util.adb (Is_Expression_Function): predicate to determine whether
9617 a function body comes from an expression function.
9618
c7b9d548
AC
96192011-08-02 Gary Dismukes <dismukes@adacore.com>
9620
9621 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
9622 null exclusions to test Can_Never_Be_Null on the anonymous access types
9623 of the formals rather than testing the formals themselves. Exclude this
9624 check in cases where the Old_Formal is marked as a controlling formal,
9625 to avoid issuing spurious errors for bodies completing dispatching
9626 operations (due to the flag not getting set on controlling access
9627 formals in body specs).
9628 (Find_Corresponding_Spec): When checking full and subtype conformance of
9629 subprogram bodies in instances, pass Designated and E in that order, for
9630 consistency with the expected order of the formals (New_Id followed by
9631 Old_Id).
9632
96332011-08-02 Robert Dewar <dewar@adacore.com>
9634
9635 * sem_ch8.adb: Minor reformatting.
9636
1138cf59
AC
96372011-08-02 Ed Schonberg <schonberg@adacore.com>
9638
9639 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
9640 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
9641 primitive operations of class-wide actuals.
9642
96432011-08-02 Javier Miranda <miranda@adacore.com>
9644
9645 * exp_atag.ads, exp_atag.adb
9646 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
9647 since its value is implicitly passed in argument Typ.
9648 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
9649 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
9650 Build_Common_Dispatching_Select_Statements.
9651
7b9db926
RD
96522011-08-02 Robert Dewar <dewar@adacore.com>
9653
9654 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
9655 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
9656 Minor reformatting.
9657
e8374e7a
AC
96582011-08-02 Robert Dewar <dewar@adacore.com>
9659
9660 * sem_res.adb: Minor reformatting.
9661 * sem_prag.adb: Minor reformatting.
9662
96632011-08-02 Javier Miranda <miranda@adacore.com>
9664
9665 * exp_atag.adb, exp_atags.ads
9666 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
9667 by the tagged type Entity. Required to use this routine in the VM
9668 targets since we do not have available the Tag entity in the VM
9669 platforms.
9670 * exp_ch6.adb
9671 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
9672 Ada.Tags has not been previously loaded.
9673 * exp_ch7.adb
9674 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
9675 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
9676 * sem_aux.adb
9677 (Enclosing_Dynamic_Scope): Add missing support to handle the full
9678 view of enclosing scopes. Required to handle enclosing scopes that
9679 are synchronized types whose full view is a task type.
9680 * exp_disp.adb
9681 (Build_VM_TSDs): Minor code improvement to avoid generating and
9682 analyzing lists with empty nodes.
9683 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
9684 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
9685 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
9686 (Make_Disp_Timed_Select_Body): Add support for VM targets.
9687 (Make_Select_Specific_Data_Table): Add support for VM targets.
9688 (Make_VM_TSD): Generate code to initialize the SSD structure of
9689 the TSD.
9690
96912011-08-02 Yannick Moy <moy@adacore.com>
9692
9693 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
9694 cross-references section in ALI.
9695 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
9696 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
9697 Sub).
9698 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
9699 subprogram or package entity of a node
9700 (Is_Local_Reference_Type): new function returns True for references
9701 selected in local cross-references.
9702 (Lt): function extracted from Lt in Output_References
9703 (Write_Entity_Name): function extracted from Output_References
9704 (Generate_Definition): generate reference with type 'D' for definition
9705 of objects (object declaration and parameter specification), with
9706 appropriate locations and units, for use in local cross-references.
9707 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
9708 references of type 'I' for initialization in object definition.
9709 (Output_References): move part of function Lt and procedure
9710 Write_Entity_Name outside of the body. Ignore references of types 'D'
9711 and 'I' introduced for local cross-references.
9712 (Output_Local_References): new procedure to output the local
9713 cross-references sections.
9714 (Lref_Entity_Status): new array defining whether an entity is a local
9715 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
9716 with 'I' type when initialization expression is present.
9717 * get_scos.adb, get_scos.ads: Correct comments and typos
9718
1f6439e3
AC
97192011-08-02 Javier Miranda <miranda@adacore.com>
9720
9721 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
9722 the JVM target.
9723 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
9724 the JVM target.
9725 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
9726 TSD support.
9727
97282011-08-02 Vincent Celier <celier@adacore.com>
9729
9730 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
9731 (No_Space_Img): New function
9732 (Find_Excluded_Sources): When reading from a file, record the file name
9733 and the line number for each excluded source.
9734 (Mark_Excluded_Sources): When reporting an error, if the excluded
9735 sources were read from a file, include file name and line number in
9736 the error message.
9737
97382011-08-02 Ed Schonberg <schonberg@adacore.com>
9739
9740 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
9741
ab027d28
RD
97422011-08-02 Robert Dewar <dewar@adacore.com>
9743
9744 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
9745
b3b28b0c
JM
97462011-08-02 Javier Miranda <miranda@adacore.com>
9747
9748 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
9749 generation of TSDs to the DOTNET compiler.
9750 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
9751 generation of TSDs to the DOTNET compiler.
9752
9732e886
JM
97532011-08-02 Javier Miranda <miranda@adacore.com>
9754
9755 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
9756 record of all the tagged types declared inside library level package
9757 declarations, library level package bodies or library level subprograms.
9758 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
9759 associated with a given tagged type.
9760 (Build_VM_TSDs): New subprogram.
9761 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
9762 compilation units that are subprograms.
9763 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
9764 compilation units that are package bodies.
9765 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
9766 units that are a package declaration or a package instantiation.
9767 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
9768 reorganization to improve the error generated by the frontend when the
9769 function Ada.Tags.Secondary_Tag is not available.
9770 * rtsfind.ads (RE_Register_TSD): New runtime entity.
9771 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
9772
e526d0c7
AC
97732011-08-02 Javier Miranda <miranda@adacore.com>
9774
9775 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
9776
97772011-08-02 Robert Dewar <dewar@adacore.com>
9778
9779 * s-imenne.ads: Minor reformatting.
9780
97812011-08-02 Robert Dewar <dewar@adacore.com>
9782
9783 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
9784 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
9785 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
9786
97872011-08-02 Robert Dewar <dewar@adacore.com>
9788
9789 * einfo.ads (Materialize_Entity): Document this is only for renamings
9790 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
9791 required debug information in the case where we transform the object
9792 declaration into a renaming declaration.
9793 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
9794 object
9795 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
9796 Materialize_Entity.
9797
5b1e6aca
RD
97982011-08-02 Robert Dewar <dewar@adacore.com>
9799
9800 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
9801 Suppress_Init_Procs.
9802 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
9803 Suppress_Initialization/Initialization_Suppressed.
9804 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
9805 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
9806 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
9807 * sem_prag.adb: New processing for pragma Suppress_Initialization.
9808
5ad4969d
RD
98092011-08-02 Robert Dewar <dewar@adacore.com>
9810
9811 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
9812 Minor reformatting.
9813
8c4ee6f5
AC
98142011-08-02 Ed Schonberg <schonberg@adacore.com>
9815
9816 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
9817 only have inheritable classwide pre/postconditions.
9818
98192011-08-02 Javier Miranda <miranda@adacore.com>
9820
9821 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
9822 * rtsfind.ads (RE_Check_TSD): New runtime entity.
9823 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
9824 checks if the external tag of a type is the same as the external tag
9825 of some other declaration.
9826
0b3d16c0
AC
98272011-08-02 Thomas Quinot <quinot@adacore.com>
9828
9829 * s-taskin.ads: Minor reformatting.
9830
98312011-08-02 Emmanuel Briot <briot@adacore.com>
9832
9833 * g-comlin.adb (Display_Help): swap the order in which it prints the
9834 short help and the general usage.
9835
98362011-08-02 Ed Schonberg <schonberg@adacore.com>
9837
9838 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
9839 the aspect declarations and attach them to the generic copy for
9840 subsequent analysis.
9841 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
9842 declarations of the generic tree to the new subprogram declarations.
9843 * sem_attr.adb (Check_Precondition_Postcondition): recognize
9844 conditions that apply to a subprogram instance.
9845
98462011-08-02 Robert Dewar <dewar@adacore.com>
9847
9848 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
9849
98502011-08-02 Ed Schonberg <schonberg@adacore.com>
9851
9852 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
9853 private type with a tagged full view is not derived in the immediate
9854 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
9855
4637729f
AC
98562011-08-02 Robert Dewar <dewar@adacore.com>
9857
9858 * exp_ch4.adb: Minor reformatting.
9859
98602011-08-02 Ed Schonberg <schonberg@adacore.com>
9861
9862 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
9863 Ada2012 iterator, the loop will be rewritten during expansion into a
9864 while loop with a cursor and an element declaration. Do not analyze the
9865 body in this case, because if the container is for indefinite types the
9866 actual subtype of the elements will only be determined when the cursor
9867 declaration is analyzed.
9868
98692011-08-02 Arnaud Charlet <charlet@adacore.com>
9870
9871 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
9872 size/alignment related attributes in CodePeer_Mode.
9873
98742011-08-02 Gary Dismukes <dismukes@adacore.com>
9875
9876 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
9877 Prepend_Element, since this can result in the operation getting the
9878 wrong slot in the full type's dispatch table if the full type has
9879 inherited operations. The incomplete type's operation will get added
9880 to the proper position in the full type's primitives
9881 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
9882 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
9883 dispatching operations, since there are cases where nonprimitive
9884 subprograms can get added to the list of incomplete dependents (such
9885 as subprograms in nested packages).
9886 * sem_ch6.adb (Process_Formals): First, remove test for being in a
9887 private part when determining whether to add a primitive with a
9888 parameter of a tagged incomplete type to the Private_Dependents list.
9889 Such primitives can also occur in the visible part, and should not have
9890 been excluded from being private dependents.
9891 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
9892 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
9893 list of a Taft-amendment incomplete type is a primitive before issuing
9894 an error that the full type must appear in the same unit. There are
9895 cases where nonprimitives can be in the list (such as subprograms in
9896 nested packages).
9897 * sem_disp.adb (Derives_From): Use correct condition for checking that
9898 a formal's type is derived from the type of the corresponding formal in
9899 the parent subprogram (the condition was completely wrong). Add
9900 checking that was missing for controlling result types being derived
9901 from the result type of the parent operation.
9902
4c60de0c
YM
99032011-08-02 Yannick Moy <moy@adacore.com>
9904
9905 * errout.adb (First_Node): minor renaming
9906 * restrict.adb (Check_Formal_Restriction): put restriction warning on
9907 first node.
9908
f5afb270
AC
99092011-08-02 Yannick Moy <moy@adacore.com>
9910
9911 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
9912 before accessing operands.
9913 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
9914 decide whether an initialization expression respects SPARK rules, as
9915 the plain node is the expanded one. This allows for more valid warnings
9916 to be issued.
9917 * gnat_rm.texi: Minor update.
9918
99192011-08-02 Arnaud Charlet <charlet@adacore.com>
9920
9921 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
9922 previous change.
9923
99242011-08-02 Robert Dewar <dewar@adacore.com>
9925
9926 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
9927
99282011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
9929
9930 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
9931 loop statements and the element renaming declaration with a block when
9932 the element type is controlled.
9933
99342011-08-02 Yannick Moy <moy@adacore.com>
9935
9936 * sinfo.ads: Minor formatting.
9937
99382011-08-02 Ed Schonberg <schonberg@adacore.com>
9939
9940 * sem_aggr.adb (Add_Association): if the association has a box and no
9941 expression, use the Sloc of the aggregate itself for the new
9942 association.
9943 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
9944 the Original_Node.
9945
db72f10a
AC
99462011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
9947
9948 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
9949 When a container is provided via a function call, generate a renaming
9950 of the function result. This avoids the creation of a transient scope
9951 and the premature finalization of the container.
9952 * exp_ch7.adb (Is_Container_Cursor): Removed.
9953 (Wrap_Transient_Declaration): Remove the supression of the finalization
9954 of the list controller when the declaration denotes a container cursor,
9955 it is not needed.
9956
99572011-08-02 Yannick Moy <moy@adacore.com>
9958
9959 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
9960 node is from source, instead of the original node being from source.
9961 * sem_aggr.adb
9962 (Resolve_Array_Aggregate): refine the check for a static expression, to
9963 recognize also static ranges
9964 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
9965 Array_Type_Declaration): postpone the test for the type being a subtype
9966 mark after the type has been resolved, so that component-selection and
9967 expanded-name are discriminated.
9968 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
9969 to distinguish the case of an iteration scheme, so that an error is
9970 issed on a non-static range in SPARK except in an iteration scheme.
9971 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
9972 In_Iter_Schm = True.
9973 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
9974 user-defined operators so that they are allowed in renaming
9975 * sem_ch8.adb
9976 (Find_Selected_Component): refine the check for prefixing of operators
9977 so that they are allowed in renaming. Move the checks for restrictions
9978 on selector name after analysis discriminated between
9979 component-selection and expanded-name.
9980 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
9981 concatenation argument of string type if it is static.
9982 * sem_util.adb, sem_util.ads
9983 (Check_Later_Vs_Basic_Declarations): add a new function
9984 Is_Later_Declarative_Item to decice which declarations are allowed as
9985 later items, in the two different modes Ada 83 and SPARK. In the SPARK
9986 mode, add that renamings are considered as later items.
9987 (Enclosing_Package): new function to return the enclosing package
9988 (Enter_Name): correct the rule for homonyms in SPARK
9989 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
9990 from source (result of expansion) to avoid issuing wrong warnings.
9991
99922011-08-02 Ed Schonberg <schonberg@adacore.com>
9993
9994 * errout.adb: On anything but an expression First_Node returns its
9995 argument.
9996
23685ae6
AC
99972011-08-02 Pascal Obry <obry@adacore.com>
9998
9999 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
10000
100012011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10002
10003 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
10004 Set the associated loop as the related expression of internally
10005 generated cursors.
10006 * exp_ch7.adb (Is_Container_Cursor): New routine.
10007 (Wrap_Transient_Declaration): Supress the finalization of the list
10008 controller when the declaration denotes a container cursor.
10009
100102011-08-02 Yannick Moy <moy@adacore.com>
10011
10012 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
10013 command line now.
10014 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
10015 expression is a simple expression. This check cannot be performed in
10016 the semantics, so just drop it.
10017 (P_Index_Or_Discriminant_Constraint): move check that the index or
10018 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
10019 semantics. Other cases were previously checked in the semantics.
10020 * par-ch4.adb (P_Name): move checks that a selector name is not
10021 character literal or an operator symbol to Find_Selected_Component in
10022 the semantics
10023 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
10024 declarations are not placed after later declarations in a separate
10025 procedure in Sem_Util (possibly not the best choice?), to be used both
10026 during parsing, for Ada 83 mode, and during semantic analysis, for
10027 SPARK mode.
10028 * par-endh.adb (Check_End): move check that end label is not missing
10029 to Process_End_Label in the semantics
10030 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
10031 the special case for SPARK restriction
10032 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
10033 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
10034 parameter Force to issue the error message even on internal node (used
10035 for generated end label). Call Check_Restriction to check when an error
10036 must be issued. In SPARK mode, issue an error message even if the
10037 restriction is not set.
10038 (Check_Restriction): new procedure with an additional out parameter to
10039 inform the caller that a message has been issued
10040 * sem_aggr.adb: Minor modification of message
10041 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
10042 instead of issuing an error message directly
10043 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
10044 declarations are not placed after later declarations, by calling
10045 Check_Later_Vs_Basic_Declarations
10046 (Analyze_Subtype_Declaration): move here the check that an index or
10047 discriminant constraint must be a subtype mark. Change the check that
10048 a subtype of String must start at one so that it works on subtype marks.
10049 * sem_ch4.adb (Analyze_Call): move here the check that a named
10050 association cannot follow a positional one in a call
10051 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
10052 instead of issuing an error message directly
10053 * sem_ch8.adb (Find_Selected_Component): move here the check that a
10054 selector name is not a character literal or an operator symbol. Move
10055 here the check that the prefix of an expanded name cannot be a
10056 subprogram or a loop statement.
10057 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
10058 procedure called from parsing and semantics to check that basic
10059 declarations are not placed after later declarations
10060 (Process_End_Label): move here the check that end label is not missing
10061
100622011-08-02 Arnaud Charlet <charlet@adacore.com>
10063
10064 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
10065 representation clause in codepeer mode, since it confuses CodePeer and
10066 does not bring useful info.
10067
100682011-08-02 Ed Falis <falis@adacore.com>
10069
10070 * init.c: initialize fp hw on MILS.
10071
100722011-08-02 Ed Schonberg <schonberg@adacore.com>
10073
10074 * errout.adb (First_Node): for bodies, return the node itself (small
10075 optimization). For other nodes, do not check source_unit if the node
10076 comes from Standard.
10077
d2d9cc22
AC
100782011-08-02 Robert Dewar <dewar@adacore.com>
10079
10080 * exp_ch3.adb: Minor comment additions.
10081 * sem_ch13.adb: Minor reformatting.
10082
100832011-08-02 Pascal Obry <obry@adacore.com>
10084
10085 * make.adb, makeutl.adb: Removes some superfluous directory separator.
10086
a01b9df6
AC
100872011-08-02 Robert Dewar <dewar@adacore.com>
10088
10089 * sem_attr.adb: Minor reformatting.
10090
100912011-08-02 Robert Dewar <dewar@adacore.com>
10092
10093 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
10094 (Has_Default_Component_Value): Removed
10095 * einfo.ads Comment updates
10096 (Has_Default_Aspect): Replaces Has_Default_Value
10097 (Has_Default_Component_Value): Removed
10098 * exp_ch13.adb
10099 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
10100 * exp_ch3.adb
10101 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
10102 (Get_Simple_Init_Val): Handle Default_Value aspect
10103 (Needs_Simple_Initialization): Handle Default_Value aspect
10104 * exp_ch3.ads: Needs_Simple_Initialization
10105 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
10106 * par-prag.adb (Pragma_Default[_Component]Value) Removed
10107 * sem_ch13.adb
10108 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
10109 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
10110 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
10111
101122011-08-02 Ed Schonberg <schonberg@adacore.com>
10113
10114 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
10115 package containing iteration primitives.
10116 exp_ch5.adb (Expand_Iterator_Loop): ditto.
10117
75c90775
AC
101182011-08-02 Ed Schonberg <schonberg@adacore.com>
10119
10120 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
10121 "of", pre-analyze expression in case it is a function call with
10122 finalization actions that must be placed ahead of the loop.
10123 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
10124 on an Ada2012 iterator, insert them ahead of the rewritten loop.
10125
101262011-08-02 Geert Bosch <bosch@adacore.com>
10127
10128 * cstand.adb (Create_Float_Types): Only consider C's long double for
10129 Long_Long_Float, in addition to double.
10130
ded8909b
AC
101312011-08-02 Robert Dewar <dewar@adacore.com>
10132
10133 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
10134 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
10135 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
10136 Minor reformatting.
10137
101382011-08-02 Ed Schonberg <schonberg@adacore.com>
10139
10140 * sem_attr.adb: handle properly 'Result when it is a prefix of an
10141 indexed component.
10142
101432011-08-02 Javier Miranda <miranda@adacore.com>
10144
10145 * einfo.ads, einfo.adb
10146 (Original_Access_Type): Move this attribute to Node26 since there was
10147 an undocumented use of Node21 in E_Access_Subprogram_Type entities
10148 which causes conflicts and breaks the generation of the .NET compiler.
10149 (Interface_Name): Add missing documentation on JGNAT only uses of
10150 this attribute.
10151
70c34e1c
AC
101522011-08-02 Geert Bosch <bosch@adacore.com>
10153
10154 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
10155 (Find_Back_End_Float_Type): Likewise
10156 (Create_Back_End_Float_Types): Likewise
10157 (Create_Float_Types): Likewise
10158 (Register_Float_Type): Likewise
10159 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
10160 Nlist and split out type selection in new local Find_Base_Type function.
10161 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
10162 Nlist
10163 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
10164
101652011-08-02 Robert Dewar <dewar@adacore.com>
10166
10167 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
10168 alpha order).
10169 * opt.ads: Minor comment change.
10170 * sem_ch12.adb: Minor code reorganization.
10171
b715bc59
AC
101722011-08-02 Gary Dismukes <dismukes@adacore.com>
10173
10174 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
10175 subtype's list of rep items to the list on the full subtype in the case
10176 where the lists are the same.
10177
101782011-08-02 Geert Bosch <bosch@adacore.com>
10179
10180 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
10181 using the one from System.Strings, which also deallocates all strings.
10182
002bdd68
AC
101832011-08-02 Geert Bosch <bosch@adacore.com>
10184
10185 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
10186 function.
10187 * gcc-interface/Make-lang.in: Update dependencies.
10188
101892011-08-02 Olivier Hainque <hainque@adacore.com>
10190
10191 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
10192 end_locus.
10193
499769ec
AC
101942011-08-02 Javier Miranda <miranda@adacore.com>
10195
10196 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
10197 associated with anonymous access to subprograms.
10198
101992011-08-02 Geert Bosch <bosch@adacore.com>
10200
10201 * opt.ads
10202 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
10203 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
10204 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
10205 (Add_Symbol_Definition): Move to switch-c.adb
10206 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
10207 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
10208 (Add_Symbol_Definition): Move to switch-c.adb.
10209 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
10210 * sem_warn.adb
10211 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
10212 Move to warnsw.adb.
10213 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
10214 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
10215 Move to warnsw.adb.
10216 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
10217 (Add_Symbol_Definition): Moved from Prepcomp.
10218 * switch-c.ads: Update copyright notice. Use String_List instead of
10219 Argument_List, removing dependency on System.OS_Lib.
10220
aa1e353a
AC
102212011-08-02 Yannick Moy <moy@adacore.com>
10222
10223 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
10224 mode on initialization expression which does not respect SPARK
10225 restrictions.
10226 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
10227 if the tree referenced by its argument represents an initialization
10228 expression in SPARK, suitable for initializing an object in an object
10229 declaration.
10230
102312011-08-02 Javier Miranda <miranda@adacore.com>
10232
10233 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
10234 internally generated access to subprogram with its associated protected
10235 subprogram type.
10236 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
10237
15b682ca
GB
102382011-08-02 Geert Bosch <bosch@adacore.com>
10239
10240 * cstand.adb (Register_Float_Type): Print information about type to
10241 register, if the Debug_Flag_Dot_B is set.
10242 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
10243 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
10244 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
10245 with a requested precision of more than Max_Digits digits and no more
10246 than Max_Base_Digits digits, if a range specification is present and the
10247 Predefined_Float_Types list has a suitable type to derive from.
10248 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
10249 case of type completion with pragma Import
10250 * sem_prag.adb
10251 (Process_Import_Predefined_Type): Processing to complete a type
10252 with pragma Import. Currently supports floating point types only.
10253 (Set_Convention_From_Pragma): Do nothing without underlying type.
10254 (Process_Convention): Guard against absence of underlying type,
10255 which may happen when importing incomplete types.
10256 (Process_Import_Or_Interface): Handle case of importing predefined
10257 types. Tweak error message.
10258
f8726f2b
AC
102592011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10260
10261 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
10262 functions to previous change. Reorganize code slightly.
10263
102642011-08-02 Geert Bosch <bosch@adacore.com>
10265
10266 * back_end.ads (Register_Type_Proc): New call back procedure type for
10267 allowing the back end to provide information about available types.
10268 (Register_Back_End_Types): New procedure to register back end types.
10269 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
10270 available types.
10271 * cstand.adb (Back_End_Float_Types): New list for floating point types
10272 supported by the back end.
10273 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
10274 (Copy_Float_Type): New procedure to make new copies of predefined types.
10275 (Register_Float_Type): New call back procedure to populate the BEFT list
10276 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
10277 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
10278 (Create_Float_Types): New procedure to create entities for floating
10279 point types predefined in Standard, and put these and any remaining
10280 BEFTs on the Predefined_Float_Types list.
10281 * stand.ads (Predefined_Float_Types): New list for predefined floating
10282 point types that do not have declarations in package Standard.
10283
feecad68
AC
102842011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10285
10286 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
10287 entity node for the unit containing the parameter.
10288 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
10289 (Add_Inlined_Subprogram): Likewise.
10290 * gcc-interface/Make-lang.in: Update dependencies.
10291
102922011-08-02 Thomas Quinot <quinot@adacore.com>
10293
10294 * s-stusta.adb (Print): Make sure Pos is always initialized to a
10295 suitable value.
10296
12f0c50c
AC
102972011-08-02 Geert Bosch <bosch@adacore.com>
10298
10299 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
10300
103012011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10302
10303 * sem_type.adb (Covers): Move trivial case to the top and reuse the
10304 computed value of Base_Type.
10305
103062011-08-02 Yannick Moy <moy@adacore.com>
10307
10308 * restrict.adb (Check_Restriction): issue an error for any use of
10309 class-wide, even if the No_Dispatch restriction is not set.
10310 * sem_aggr.adb: Correct typos in comments and messages in formal mode
10311 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
10312 when completing a private extension, the type named in the private part
10313 is not the same as that named in the visible part.
10314 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
10315 of an inherited primitive operations of a tagged type or type extension
10316 that returns the tagged type.
10317 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
10318 function which returns True for an implicit operation inherited by the
10319 derived type declaration for the argument type.
10320 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
10321 order.
10322
fb86fe11
ES
103232011-08-02 Ed Schonberg <schonberg@adacore.com>
10324
10325 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
10326 Process_Bounds, to perform analysis with expansion of a range or an
10327 expression that is the iteration scheme for a loop.
10328 (Analyze_Iterator_Specification): If domain of iteration is given by a
10329 function call with a controlled result, as is the case if call returns
10330 a predefined container, ensure that finalization actions are properly
10331 generated.
10332 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
10333
62be5d0a
JM
103342011-08-02 Javier Miranda <miranda@adacore.com>
10335
10336 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
10337 * gcc-interface/Make-lang.in: Update dependencies.
10338
103392011-08-02 Javier Miranda <miranda@adacore.com>
10340
10341 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
10342 determine if the analysis is performed using N or Original_Node (N).
10343 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
10344 functionality of routine Is_Variable avoids code duplication.
10345 * checks.adb (Determine_Range): Handle temporaries generated by
10346 Remove_Side_Effects.
10347
103482011-08-02 Javier Miranda <miranda@adacore.com>
10349
10350 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
10351 expansion of the condition. Required since the previous analysis was
10352 done with expansion disabled (see Resolve_Quantified_Expression) and
10353 hence checks were not inserted and record comparisons have not been
10354 expanded.
10355
a20f4389
AC
103562011-08-02 Ed Falis <falis@adacore.com>
10357
10358 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
10359 Update header.
10360
103612011-08-02 Bob Duff <duff@adacore.com>
10362
10363 * opt.ads: Minor comment fix.
10364
103652011-08-02 Bob Duff <duff@adacore.com>
10366
10367 * sem_ch12.adb (Analyze_Package_Instantiation,
10368 Analyze_Subprogram_Instantiation): Turn off style checking while
10369 analyzing an instance. Whatever style checks that apply to the generic
10370 unit should apply, so it makes no sense to apply them in an instance.
10371 This was causing trouble when compiling an instance of a runtime
10372 unit that violates the -gnatyO switch.
10373 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
10374 one of the two case statements, causing spurious errors.
10375
103762011-08-02 Robert Dewar <dewar@adacore.com>
10377
10378 * uname.adb: Minor reformatting.
10379 * gnatcmd.adb: Minor reformatting.
10380 * exp_attr.adb: Minor reformatting.
10381
90878b12
AC
103822011-08-02 Ed Schonberg <schonberg@adacore.com>
10383
10384 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
10385 No_Dispatching_Calls, do not look for the Assign primitive, because
10386 predefined primitives are not created in this case.
10387
103882011-08-02 Bob Duff <duff@adacore.com>
10389
10390 * stylesw.ads: Minor comment fixes.
10391
103922011-08-02 Robert Dewar <dewar@adacore.com>
10393
10394 * freeze.adb (Add_To_Result): New procedure.
10395
103962011-08-02 Jose Ruiz <ruiz@adacore.com>
10397
10398 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
10399 time, if the specific run-time routines for handling streams of strings
10400 are not available, use the default mechanism.
10401
104022011-08-02 Arnaud Charlet <charlet@adacore.com>
10403
10404 * s-regpat.ads: Fix typo.
10405
104062011-08-02 Vincent Celier <celier@adacore.com>
10407
10408 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
10409 not null, call it to create the in memory config project file without
10410 parsing an existing default config project file.
10411
104122011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10413
10414 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
10415
104162011-08-02 Ed Schonberg <schonberg@adacore.com>
10417
10418 * sem_elim.adb: an abstract subprogram does not need an eliminate
10419 pragma for its descendant to be eliminable.
10420
104212011-08-02 Ed Falis <falis@adacore.com>
10422
10423 * init.c: revert to handling before previous checkin for VxWorks
10424 * s-intman-vxworks.adb: delete unnecessary declarations related to
10425 using Ada interrupt facilities for handling signals.
10426 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
10427 * s-intman-vxworks.ads: Import __gnat_install_handler as
10428 Initialize_Interrupts.
10429 * s-taprop-vxworks.adb: Delete Signal_Mask.
10430 (Abort_Handler): change construction of mask to unblock exception
10431 signals.
10432
273adcdf
AC
104332011-08-02 Jerome Guitton <guitton@adacore.com>
10434
10435 * a-except-2005.adb (Raise_From_Signal_Handler): Call
10436 Debug_Raise_Exception before propagation starts.
10437
104382011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10439
10440 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
10441 to Restriction_Check_Required.
10442 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
10443 * sem_res.adb (Resolve_Call): Likewise.
10444 * sem_attr.adb (Check_Stream_Attribute): Likewise.
10445
104462011-08-02 Bob Duff <duff@adacore.com>
10447
10448 * stylesw.ads: Update comment.
10449 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
10450 * errout.ads: Remove obsolete comment.
10451
104522011-08-02 Javier Miranda <miranda@adacore.com>
10453
10454 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
10455 (Set_Is_Safe_To_Reevaluate): new procedure.
10456 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
10457 assignment is allowed on safe-to-reevaluate variables.
10458 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
10459 temporary created to remove side effects in expressions that use
10460 the secondary stack as safe-to-reevaluate.
10461 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
10462 variables that are not true constants.
10463
6320f5e1
AC
104642011-08-02 Robert Dewar <dewar@adacore.com>
10465
10466 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
10467 sem_res.adb, sem_ch6.adb: Minor reformatting.
10468
104692011-08-02 Jerome Guitton <guitton@adacore.com>
10470
10471 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
10472
2fe829ae
ES
104732011-08-02 Ed Schonberg <schonberg@adacore.com>
10474
10475 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
10476 not set Overridden_Operation if subprogram is an initialization
10477 procedure.
10478
e24329cd
YM
104792011-08-02 Yannick Moy <moy@adacore.com>
10480
10481 * par-ch6.adb: Correct obsolete name in comments
10482 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
10483 which takes two message arguments (existing function takes one), with
10484 second message used for continuation.
10485 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
10486 block statements that originate from a source block statement, not
10487 generated block statements
10488 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
10489 symmetry with procedure case
10490 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
10491 function to issue an error in formal mode if a package specification
10492 contains more than one tagged type or type extension.
10493 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
10494 parameters matching formals of tagged types are objects (or ancestor
10495 type conversions of objects), not general expressions. Issue an error
10496 on view conversions that are not involving ancestor conversion of an
10497 extended type.
10498 (Resolve_Type_Conversion): in formal mode, issue an error on the
10499 operand of an ancestor type conversion which is not an object
10500 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
10501 procedure so that it works also for actuals of function calls
10502 (Is_Actual_Tagged_Parameter): new function which determines if its
10503 argument is an actual parameter of a formal of tagged type in a
10504 subprogram call
10505 (Is_SPARK_Object_Reference): new function which determines if the tree
10506 referenced by its argument represents an object in SPARK
10507
176dadf6
AC
105082011-08-02 Robert Dewar <dewar@adacore.com>
10509
10510 * sem_ch3.adb: Minor reformatting
10511 Minor comment addition
10512 Minor error msg text change
10513
105142011-08-02 Javier Miranda <miranda@adacore.com>
10515
10516 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
10517 function. Used to be more precise when we generate a variable plus one
10518 assignment to remove side effects in the evaluation of the Bound
10519 expressions.
10520 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
10521 of the bound expression to force its re-analysis and thus expand the
10522 associated transient scope (if required). Code cleanup replacing the
10523 previous code that declared the constant entity by an invocation to
10524 routine Force_Evaluation which centralizes this work in the frontend.
10525
d8b962d8
AC
105262011-08-02 Robert Dewar <dewar@adacore.com>
10527
10528 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
10529 (Base_Type): Now uses improved Is_Base_Type function
10530 * einfo.ads (Base_Type): Inline this function
10531
105322011-08-02 Robert Dewar <dewar@adacore.com>
10533
10534 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
10535 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
10536
105372011-08-02 Arnaud Charlet <charlet@adacore.com>
10538
10539 * gcc-interface/Make-lang.in: Update dependencies.
10540 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
10541 targets.
10542
105432011-08-02 Yannick Moy <moy@adacore.com>
10544
10545 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
10546 non-simple expression used in delta constraint
10547 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
10548 index constraint which is not a subtype mark
10549 * par.adb: With and use Restrict
10550 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
10551 mode on component type which is not a subtype mark and default
10552 expression on component
10553 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
10554 of string which does not have a lower index bound equal to 1
10555 (Array_Type_Declaration): issue an error in formal mode on index or
10556 component type which is not a subtype mark, and on aliased keyword on
10557 component
10558 (Derived_Type_Declaration): issue an error in formal mode on interface,
10559 limited or abstract type
10560 (Record_Type_Declaration): issue an error in formal mode on interface
10561 (Record_Type_Definition): issue an error in formal mode on tagged types
10562 and type extensions not declared in the specification of a library unit
10563 package; on null non-tagged record; on variant part
10564
105652011-08-02 Vincent Celier <celier@adacore.com>
10566
10567 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
10568 not declared for qualified library project when Library_Name is not
10569 declared, but Library_Dir is.
10570
105712011-08-02 Robert Dewar <dewar@adacore.com>
10572
10573 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
10574 pragmas (affects aspects [Component_]Default_Value
10575 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
10576 component type for the resolution
10577
f96b2d85
AC
105782011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10579
10580 * einfo.adb (Base_Type): Tune implementation for speed.
10581
105822011-08-02 Robert Dewar <dewar@adacore.com>
10583
10584 * freeze.adb: Minor reformatting.
10585
8b3c6430
AC
105862011-08-02 Thomas Quinot <quinot@adacore.com>
10587
10588 * scos.ads: Update comments.
10589
105902011-08-02 Ed Schonberg <schonberg@adacore.com>
10591
10592 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
10593 base type, because the parent may be a subtype of a private type whose
10594 convention is established in a private part.
10595
105962011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10597
10598 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
10599 statement in a block when the expansion of the return expression has
10600 created a finalization chain.
10601 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
10602 with the parent node.
10603 Add N_Extended_Return_Statement to handle the case where a transient
10604 object declaration appears in the Return_Object_Declarations list of
10605 an extended return statement.
10606
106072011-08-02 Matthew Gingell <gingell@adacore.com>
10608
10609 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
10610 unused parameter 'name'.
10611
106122011-08-02 Ed Schonberg <schonberg@adacore.com>
10613
10614 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
10615 inherited operation, check whether its alias, which is the source
10616 operastion that it renames, has been marked eliminated.
10617
cae81f17
JM
106182011-08-02 Javier Miranda <miranda@adacore.com>
10619
10620 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
10621 in-mode parameter whose type is an access type since it can be used to
10622 modify its designated object. Enforce code that handles as safe an
10623 access type that is not access-to-constant but it is the result of a
10624 previous removal of side-effects.
10625 (Remove_Side_Effects): Minor code reorganization of cases which require
10626 no action. Done to incorporate documentation on new cases uncovered
10627 working in this ticket: no action needed if this routine was invoked
10628 too early and the nodes are not yet decorated.
10629 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
10630 to routine Remove_Side_Effects by calls to Force_Evaluation since they
10631 were issued with actuals that are implicitly provided by
10632 Force_Evaluation.
10633
218e6dee
RD
106342011-08-02 Robert Dewar <dewar@adacore.com>
10635
10636 * sem_ch3.adb, sem_res.adb: Minor reformatting.
10637
7a489a2b
AC
106382011-08-02 Yannick Moy <moy@adacore.com>
10639
10640 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
10641 to issue an error in formal mode on attribute not supported in this mode
10642 (Analyze_Attribute): issue errors on standard attributes not supported
10643 in formal mode.
10644 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
10645 comment, and issue error in formal mode on modulus which is not a power
10646 of 2.
10647 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
10648 range.
10649 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
10650 subtype mark.
10651 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
10652 operator on modular type (except 'not').
10653
106542011-08-02 Robert Dewar <dewar@adacore.com>
10655
10656 * gnat_rm.texi: Minor reformatting.
10657
cb7fa356
AC
106582011-08-02 Arnaud Charlet <charlet@adacore.com>
10659
10660 * s-osinte-linux.ads: Minor comment update and reformatting.
10661 * i-cexten.ads: Make this unit pure, as for its parent.
10662 Will allow its usage in more contexts if needed.
10663
106642011-08-02 Robert Dewar <dewar@adacore.com>
10665
10666 * s-utf_32.ads: Minor comment fix.
10667
106682011-08-02 Ed Schonberg <schonberg@adacore.com>
10669
10670 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
10671 operation of a tagged synchronized type, handle the case where the
10672 controlling argument is overloaded.
10673
106742011-08-02 Yannick Moy <moy@adacore.com>
10675
10676 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
10677 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
10678 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
10679 SPARK mode and formal verification mode on processing SPARK restriction
10680 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
10681 requiring consistency checking.
10682
5cc9353d
RD
106832011-08-02 Robert Dewar <dewar@adacore.com>
10684
10685 * sem_res.adb: Minor reformatting.
10686
e51537ff
RD
106872011-08-02 Robert Dewar <dewar@adacore.com>
10688
10689 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
10690 a-cforse.ads: Remove unneeded with of Ada.Containers
10691 Remove commented out pragma Inline's
10692 Move specifications of new subprograms to the actual specs
10693
83fa09c5
AC
106942011-08-02 Yannick Moy <moy@adacore.com>
10695
10696 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
10697 a-cforse.ads: Update comments.
10698
106992011-08-02 Ed Schonberg <schonberg@adacore.com>
10700
10701 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
10702
d11cfaf8
RD
107032011-08-02 Robert Dewar <dewar@adacore.com>
10704
10705 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
10706 a-cforse.ads, a-cofove.ads: Minor reformatting.
10707
300b98bb
AC
107082011-08-02 Claire Dross <dross@adacore.com>
10709
10710 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
10711 a-cofove.ads: Add comments.
10712
107132011-08-02 Yannick Moy <moy@adacore.com>
10714
10715 * gnat_rm.texi: Document formal containers.
10716
107172011-08-02 Emmanuel Briot <briot@adacore.com>
10718
10719 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
10720 are empty sections.
10721
19fb051c
AC
107222011-08-02 Robert Dewar <dewar@adacore.com>
10723
10724 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
10725 reformatting.
10726
107272011-08-02 Robert Dewar <dewar@adacore.com>
10728
10729 * aspects.adb: New aspects Default_Value and Default_Component_Value
10730 New format of Aspect_Names table checks for omitted entries
10731 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
10732 handling of boolean aspects for derived types.
10733 New aspects Default_Value and Default_Component_Value
10734 New format of Aspect_Names table checks for omitted entries
10735 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
10736 (Has_Default_Value): New flag
10737 (Has_Default_Component_Value): New flag
10738 (Has_Default_Value): New flag
10739 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
10740 table.
10741 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
10742 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
10743 Default_Value and Default_Component_Value
10744 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
10745 New aspects Default_Value and Default_Component_Value
10746 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
10747 * sprint.adb: Print N_Aspect_Specification node when called from gdb
10748
107492011-08-02 Vincent Celier <celier@adacore.com>
10750
10751 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
10752 inherit library kind.
10753
107542011-08-02 Ed Schonberg <schonberg@adacore.com>
10755
10756 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
10757 Minor reformatting.
10758
107592011-08-02 Robert Dewar <dewar@adacore.com>
10760
10761 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
10762
5f7747af
AC
107632011-08-02 Yannick Moy <moy@adacore.com>
10764
10765 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
10766
107672011-08-02 Robert Dewar <dewar@adacore.com>
10768
10769 * impunit.adb: Add comment.
10770
a5fe697b
AC
107712011-08-02 Yannick Moy <moy@adacore.com>
10772
10773 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
10774 qualification of aggregates in formal mode
10775 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
10776 another aggregate
10777 (Resolve_Aggregate): complete the test that an aggregate is adequately
10778 qualified in formal mode
10779
107802011-08-02 Pascal Obry <obry@adacore.com>
10781
10782 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
10783 * mlib-prj.adb: Supress warning when compiling binder generated file.
10784 (Build_Library): Supress all warnings when compiling the binder
10785 generated file.
10786
bd65a2d7 107872011-08-02 Yannick Moy <moy@adacore.com>
d4487611 10788
bd65a2d7
AC
10789 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
10790 from here...
10791 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
10792 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
10793 Add with/use clauses to make Check_Formal_Restriction visible
10794
107952011-08-02 Ed Schonberg <schonberg@adacore.com>
10796
10797 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
10798 in-parameters when type of the generic formal is private in the generic
10799 spec and non-private in the body.
10800
108012011-08-02 Claire Dross <dross@adacore.com>
10802
10803 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
10804 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
10805 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
10806 * impunit.adb, Makefile.rtl: Take new files into account.
d4487611
AC
10807
108082011-08-02 Robert Dewar <dewar@adacore.com>
10809
10810 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
10811 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
10812
bd434b3f
YM
108132011-08-02 Yannick Moy <moy@adacore.com>
10814
10815 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
10816 formal mode
10817 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
10818 matching static array bounds, taking into account the special case of
10819 string literals
10820 * sem_ch3.adb: Typo in comment.
10821
fe5d3068
YM
108222011-08-02 Yannick Moy <moy@adacore.com>
10823
10824 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
10825 which issues an error in formal mode if its argument node is originally
10826 from source
10827 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
10828 has a discriminant specification so that it does not include the case
10829 of derived types
10830 (Derived_Type_Declaration): move here the test that a derived type has a
10831 discriminant specification
10832 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
10833 first element of a component association before accessing its choices
10834 (presence of component association is not enough)
10835 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
10836 declaration is a library item before accessing the next element in a
10837 list, as library items are not member of lists
10838 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
10839 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
10840 Check_Formal_Restriction whenever possible.
10841
b60a3f26
AC
108422011-08-02 Ed Schonberg <schonberg@adacore.com>
10843
10844 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
10845 reference when needed.
10846
108472011-08-02 Bob Duff <duff@adacore.com>
10848
10849 * gnat_ugn.texi: Fix typo.
10850
108512011-08-02 Vincent Celier <celier@adacore.com>
10852
10853 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
10854 archive file name. Do not use the full path name of archives for Open
10855 VMS.
10856
eaba57fb
RD
108572011-08-02 Robert Dewar <dewar@adacore.com>
10858
10859 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
10860 Analyze_Aspect_Specifications
10861 * sem_ch13.adb
10862 (Analyze_Aspect_Specifications): New handling for boolean aspects
10863 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
10864 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
10865 sequence for Analyze_Aspect_Specifications
10866 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
10867 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
10868
108692011-08-02 Robert Dewar <dewar@adacore.com>
10870
10871 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
10872 aspects, since these no longer exist.
10873
108742011-08-02 Robert Dewar <dewar@adacore.com>
10875
10876 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
10877 semicolon, do not try to see if there are aspects following it.
10878 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
10879 aspect spec.
10880
8830d1d2
AC
108812011-08-02 Robert Dewar <dewar@adacore.com>
10882
10883 * sem_ch8.adb, aspects.ads: Minor reformatting.
10884
108852011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10886
10887 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
10888 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
10889 extracted from...
10890 (Analyze_Aspect_Specifications): ...here. Call above procedure.
10891
7ff2d234
AC
108922011-08-02 Yannick Moy <moy@adacore.com>
10893
10894 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
10895 mode on subprogram declaration outside of package specification, unless
10896 it is followed by a pragma Import
10897 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
10898 Access_Type_Declaration): issue error in formal mode on access type
10899 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
10900 incomplete type
10901 (Analyze_Object_Declaration): issue error in formal mode on object
10902 declaration which does not respect SPARK restrictions
10903 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
10904 declaration which does not respect SPARK restrictions
10905 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
10906 error in formal mode on digits or delta constraint
10907 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
10908 decimal fixed point type
10909 (Derived_Type_Declaration): issue error in formal mode on derived type
10910 other than type extensions of tagged record types
10911 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
10912 with check on access definition
10913 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
10914 mode on protected definition.
10915 (Analyze_Task_Definition): issue error in formal mode on task definition
10916
109172011-08-02 Robert Dewar <dewar@adacore.com>
10918
10919 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
10920
806f6d37
AC
109212011-08-02 Javier Miranda <miranda@adacore.com>
10922
10923 * sem_ch6.adb (Can_Override_Operator): New function.
10924 (Verify_Overriding_Indicator): Add missing code to check overriding
10925 indicator in operators. Fixes regression.
10926 (Check_Overriding_Indicator): Minor reformating after replacing the
10927 code that evaluates if the subprogram can override an operator by
10928 invocations to the above new function.
10929 * einfo.adb
10930 (Write_Field26_Name): Add missing code to ensure that, following
10931 the documentation in einfo.ads, this field is not shown as attribute
10932 "Static_Initialization" on non-dispatching functions.
10933
109342011-08-02 Jose Ruiz <ruiz@adacore.com>
10935
10936 * sem_res.adb (Resolve_Call): A call to
10937 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
10938 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
10939 i.e., when the second parameter is of type Time_Span.
10940
109412011-08-02 Vincent Celier <celier@adacore.com>
10942
10943 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
10944 with an archive instead of -L<library dir> -l<library name>.
10945
109462011-08-02 Ed Schonberg <schonberg@adacore.com>
10947
10948 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
10949 mark the base types In_Use in addition to making the operations
10950 use_visible.
10951
109522011-08-02 Ed Falis <falis@adacore.com>
10953
10954 * init.c: add and setup __gnat_signal_mask for the exception signals
10955 * s-inmaop-vxworks.adb: new file.
10956 * s-intman-vxworks.adb: remove unnecessary initializations and
10957 simplify remaining
10958 * s-intman-vxworks.ads: remove unnecessary variable
10959 * s-taprop-vxworks.adb: simplify signal initialization
10960
780d052e
RD
109612011-08-02 Robert Dewar <dewar@adacore.com>
10962
10963 * sem_ch8.adb: Minor code reorganization, comment updates.
10964
109652011-08-02 Robert Dewar <dewar@adacore.com>
10966
10967 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
10968 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
10969 here from Sem_Res.
10970 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
10971 (Matching_Static_Array_Bounds): Moved here from Sem_Res
10972
29efbb8c
ES
109732011-08-02 Ed Schonberg <schonberg@adacore.com>
10974
10975 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
10976 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
10977 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
10978 use_type_clauses, to handle more efficiently use_type and use_all_type
10979 constructs.
10980 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
10981 Ada2012 Use_All_Type clause.
10982 (Use_Class_Wide_Operations): new procedure.
10983
b0186f71
AC
109842011-08-02 Robert Dewar <dewar@adacore.com>
10985
10986 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
10987 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
10988 expression to expression function.
10989
109902011-08-02 Ed Schonberg <schonberg@adacore.com>
10991
10992 * sem_ch4.adb: transform simple Ada2012 membership into equality only
10993 if types are compatible.
10994
109952011-08-02 Yannick Moy <moy@adacore.com>
10996
10997 * sem_res.adb (Matching_Static_Array_Bounds): new function which
10998 returns True if its argument array types have same dimension and same
10999 static bounds at each index.
11000 (Resolve_Actuals): issue an error in formal mode on actuals passed as
11001 OUT or IN OUT paramaters which are not view conversions in SPARK.
11002 (Resolve_Arithmetic_Op): issue an error in formal mode on
11003 multiplication or division with operands of fixed point types which are
11004 not qualified or explicitly converted.
11005 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
11006 Boolean or array type (except String) operands.
11007 (Resolve_Equality_Op): issue an error in formal mode on equality
11008 operators for array types other than String with non-matching static
11009 bounds.
11010 (Resolve_Logical_Op): issue an error in formal mode on logical operators
11011 for array types with non-matching static bounds. Factorize the code in
11012 Matching_Static_Array_Bounds.
11013 (Resolve_Qualified_Expression): issue an error in formal mode on
11014 qualified expressions for array types with non-matching static bounds.
11015 (Resolve_Type_Conversion): issue an error in formal mode on type
11016 conversion for array types with non-matching static bounds
11017
767bb4e8
AC
110182011-08-02 Robert Dewar <dewar@adacore.com>
11019
11020 * par-ch10.adb: Minor code reorganization (use Nkind_In).
11021
110222011-08-02 Ed Schonberg <schonberg@adacore.com>
11023
11024 * par-ch9.adb: save location of entry for proper error message.
11025
4ac2477e
JM
110262011-08-02 Javier Miranda <miranda@adacore.com>
11027
11028 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
11029 (Use_Full_View) which permits this routine to climb through the
11030 ancestors using the full-view of private parents.
11031 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
11032 Use_Full_View to true in calls to Is_Ancestor.
11033 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
11034 true in call to Is_Ancestor.
11035 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
11036 Use_Full_View to true in call to Is_Ancestor.
11037 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
11038 call to Is_Ancestor.
11039 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
11040 Use_Full_View to true in calls to Is_Ancestor.
11041 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
11042 Make_Select_Specific_Data_Table, Register_Primitive,
11043 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
11044 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
11045 to true in call to Is_Ancestor.
11046 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
11047 Use_Full_View to true in calls to Is_Ancestor.
11048 * exp_cg.adb
11049 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
11050 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
11051
9f90d123
AC
110522011-08-02 Robert Dewar <dewar@adacore.com>
11053
11054 * gnat_rm.texi: Minor reformatting.
11055 * sem_prag.adb: Minor reformatting.
11056
110572011-08-02 Tristan Gingold <gingold@adacore.com>
11058
11059 * vms_data.ads: Add VMS qualifier for -gnateP.
11060
110612011-08-02 Robert Dewar <dewar@adacore.com>
11062
11063 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
11064 * par-ch7.adb (P_Package): Proper placement of aspects for package
11065 decl/instantiation.
11066 * par-endh.adb (Check_End): Ad Is_Sloc parameter
11067 (End_Statements): Add Is_Sloc parameterr
11068 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
11069 (Check_End): Ad Is_Sloc parameter
11070 (End_Statements): Add Is_Sloc parameterr
11071
110722011-08-02 Vincent Celier <celier@adacore.com>
11073
11074 * ug_words: Add VMS qualifier equivalent to -gnateP:
11075 /SYMBOL_PREPROCESSING.
11076
110772011-08-02 Jose Ruiz <ruiz@adacore.com>
11078
11079 * gnat-style.texi: For hexadecimal numeric literals the typical
11080 grouping of digits is 4 to represent 2 bytes.
11081 A procedure spec which is split into several lines is indented two
11082 characters.
11083
110842011-08-02 Yannick Moy <moy@adacore.com>
11085
11086 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
11087 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
11088 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
11089 properly qualified
11090 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
11091 choice in array aggregate
11092 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
11093 mark as ancestor
11094 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
11095 positional and named aggregate for record, or others in record
11096 aggregate, or multiple choice in record aggregate
11097 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
11098 array operands to logical operations AND, OR and XOR do not have the
11099 same static lower and higher bounds
11100 * sem_ch5.adb, sinfo.ads: Correct typos in comments
11101
2933b16c
RD
111022011-08-01 Robert Dewar <dewar@adacore.com>
11103
11104 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
11105 Replaces Last_Source_Node_In_Sequence.
11106 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
11107 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
11108 parens and blank in string (this was inconsistently implemented).
11109 * errout.ads
11110 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
11111 blank in string (this was inconsistently implemented).
11112 * gnat1drv.adb
11113 (Set_Global_Switches): Set formal mode switches appropriately
11114 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
11115 * par-prag.adb
11116 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
11117 call Set_Error_Msg_Lang to set "spark" as language name.
11118 * par.adb: Remove unnecessary call to set formal language for errout
11119 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
11120 appropriately and call Set_Error_Msg_Lang to set "spark" as language
11121 name.
11122 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
11123 calls to it, moved after resolution so that types are known
11124 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
11125 result of concatenation is not of type String
11126 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
11127 concatenation is not properly restricted
11128 * gnat_rm.texi: Add doc on pragma Spark_95.
11129 * gcc-interface/Makefile.in: Remove obsolete target pairs for
11130 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
11131 * gcc-interface/Make-lang.in: Update dependencies.
11132
05dbd302
AC
111332011-08-01 Javier Miranda <miranda@adacore.com>
11134
11135 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
11136 condition that detects if the overridden operation must replace an
11137 existing entity.
11138
111392011-08-01 Javier Miranda <miranda@adacore.com>
11140
11141 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
11142 code declarations inserted by Insert_Actions in each alternative of the
11143 N_Case_Expression node.
11144
111452011-08-01 Robert Dewar <dewar@adacore.com>
11146
11147 * sem_ch6.adb: Minor code reorganization.
11148 * sem_util.adb: Minor reformatting.
11149
af9e051f
PO
111502011-08-01 Pascal Obry <obry@adacore.com>
11151
11152 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
11153 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
11154
1d801f21
AC
111552011-08-01 Yannick Moy <moy@adacore.com>
11156
11157 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
11158 literal or operator symbol which is prefixed
11159 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
11160 mode on access attributes.
11161 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
11162 that concatenation operands are properly restricted in formal mode
11163 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
11164 Analyze_Concatenation_Operand. Issue an error in formal mode if the
11165 result of the concatenation has a type different from String.
11166 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
11167 Analyze_Quantified_Expression, Analyze_Slice,
11168 Analyze_Null): issue an error in formal mode on unsupported constructs
11169 * sem_ch5.adb
11170 (Analyze_Block_Statement): only issue error on source block statement
11171 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
11172 function which returns the last node in a list of nodes for which
11173 Comes_From_Source returns True, if any
11174 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
11175 Last_Source_Node_In_Sequence
11176 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
11177 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
11178 mode on unsupported constructs
11179 * sem_ch9.adb Do not return after issuing error in formal mode, as the
11180 rest of the actions may be needed later on since the error is marked as
11181 not serious.
11182 * sinfo.ads: Typos in comments.
11183
111842011-08-01 Pascal Obry <obry@adacore.com>
11185
11186 * projects.texi: Minor editing.
11187
53beff22
YM
111882011-08-01 Yannick Moy <moy@adacore.com>
11189
11190 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
11191 insertion character ~~
11192 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
11193 (Set_Error_Msg_Lang): new procedure which fixes the language for use
11194 with insertion character ~~
11195 (Set_Msg_Text): treat insertion character ~~
11196 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
11197 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
11198 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
11199 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
11200 errors related to the formal language restriction not serious
11201 (insertion character |).
11202 * par.adb (Par): set formal language for error messages if needed
11203 * sem_ch6.adb (Check_Missing_Return): take into account possible
11204 generated statements at the end of the function
11205 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
11206 enumeration value to define a new pragma SPARK_95
11207 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
11208 SPARK_Version): new type and variables to store the SPARK version
11209 (none by default).
11210 (SPARK_Mode): return True when SPARK_Version is set
11211 * par-prag.adb: Correct indentation
11212 (Prag): take Pragma_SPARK_95 into account
11213 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
11214 into account.
11215
8d606a78
RD
112162011-08-01 Robert Dewar <dewar@adacore.com>
11217
11218 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
11219 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
11220 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
11221
1982d5a8
PO
112222011-08-01 Pascal Obry <obry@adacore.com>
11223
11224 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
11225 Target_Name to Get_Path call.
11226 (Parse_Single_Project): Likewise.
11227 (Post_Parse_Context_Clause): Likewise.
11228 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
11229 Call Initialise_Project_Path with the proper Target_Name.
11230 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
11231 search path.
11232 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
11233 with the proper Target_Name.
11234 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
11235 Part.Parse routine.
11236 (Parse_Project_And_Apply_Config): Likewise.
11237 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
11238 This is fine as this part of the code is supporting only native
11239 compilation.
11240 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
11241 is fine as this part of the code is supporting only native compilation.
11242
0d53d36b
AC
112432011-08-01 Yannick Moy <moy@adacore.com>
11244
11245 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
11246 of homonym, unless the homonym is one of the cases allowed in SPARK
11247 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
11248 package declaration occurring after a body.
11249
112502011-08-01 Robert Dewar <dewar@adacore.com>
11251
11252 * checks.adb, exp_ch4.adb: Minor reformatting.
11253
112542011-08-01 Javier Miranda <miranda@adacore.com>
11255
11256 * einfo.ads (Access_Disp_Table): Fix documentation.
11257 (Dispatch_Table_Wrappers): Fix documentation.
11258
112592011-08-01 Pascal Obry <obry@adacore.com>
11260
11261 * prj-env.adb, prj-env.ads: Minor reformatting.
11262
8ed68165
AC
112632011-08-01 Yannick Moy <moy@adacore.com>
11264
11265 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
11266 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
11267 procedures out of these packages.
2c7f9cc0 11268 * errout.ads, errout.adb
8ed68165
AC
11269 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
11270 procedures in of this package
11271 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
11272 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
11273 on misplaced later vs initial declarations, like in Ada 83
11274 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
11275 formal mode on attribute of private type whose full type declaration
11276 is not visible
11277 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
11278 package declaration inside a package specification
11279 (Analyze_Full_Type_Declaration): issue error in formal mode on
11280 controlled type or discriminant type
11281 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
11282 user-defined operator means that it should come from the source
11283 (New_Overloaded_Entity): issue error in formal mode on overloaded
11284 entity.
11285 * sem_ch6.ads, sem_ch13.ads: typos in comments.
11286
112872011-08-01 Thomas Quinot <quinot@adacore.com>
11288
11289 * atree.adb: Minor reformatting.
11290 * checks.adb: Minor reformatting.
11291
4230bdb7
AC
112922011-08-01 Vincent Celier <celier@adacore.com>
11293
11294 * s-parame-vms-ia64.ads: Fix typo in comment
11295 Minor reformatting
11296 * s-parame-vms-restrict.ads: Removed, unused.
11297
112982011-08-01 Javier Miranda <miranda@adacore.com>
11299
11300 * exp_ch3.adb
11301 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
11302 * sem_ch3.adb
11303 (Constrain_Index): Remove side effects in the evaluation of the bounds.
11304 * sem_ch3.ads, sem_ch3.adb
11305 (Is_Constant_Bound): New extended version of the subprogram that was
11306 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
11307 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
11308 * sem_aux.ads (Constant_Value): Fix typo in comment.
11309 * checks.adb (Generate_Index_Checks): New implementation which, for
11310 array objects with constant bounds, generates the runtime check
11311 referencing the bounds of the array type. For other cases this routine
11312 provides its previous behavior obtaining such values from the array
11313 object.
11314 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
11315 parent type.
11316 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
11317 we cannot have semantic interpretations of the new node.
11318
2010d078
AC
113192011-08-01 Ed Schonberg <schonberg@adacore.com>
11320
11321 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
11322 expressions.
11323
113242011-08-01 Arnaud Charlet <charlet@adacore.com>
11325
11326 * sem_ch8.adb: Minor code editing.
11327 * s-vxwext.adb: Remove trailing space.
11328 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
11329 consistency with other files.
11330
113312011-08-01 Thomas Quinot <quinot@adacore.com>
11332
11333 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
11334
113352011-08-01 Ed Schonberg <schonberg@adacore.com>
11336
11337 * par-ch10.adb: reject parameterized expressions as compilation unit.
11338 * sem_ch4.adb: handle properly conditional expression with overloaded
11339 then_clause and no else_clause.
11340
113412011-08-01 Tristan Gingold <gingold@adacore.com>
11342
11343 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
11344 like done by System.Aux_DEC.
11345 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
11346
daec8eeb
YM
113472011-08-01 Yannick Moy <moy@adacore.com>
11348
11349 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
11350 missing label at end of declaration (subprogram or package)
11351 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
11352 of positional and named parameter association
11353 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
11354 Error_Msg_SP which adds a prefix to the error message giving the name
11355 of the formal language analyzed
11356 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
11357 access result type in subprogram, unconstrained array as result type,.
11358 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
11359 procedure
11360 * sem_ch8.adb: Code clean up.
11361
38171f43
AC
113622011-08-01 Javier Miranda <miranda@adacore.com>
11363
11364 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
11365 * einfo.ads (Access_Disp_Table): Fix documentation.
11366 (Dispatch_Table_Wrappers): Fix documentation.
11367 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
11368 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
11369 to enforce the documentation of this attribute.
11370 (Set_Is_Interface): Cleanup the assertion.
11371 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
11372 the Underlying_Type entity before reading attribute Access_Disp_Table.
11373 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
11374 Locate the Underlying_Type before reading attribute Access_Disp_Table.
11375 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
11376 the Underlying_Type entity before reading attribute Access_Disp_Table.
11377 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
11378 Locate the Underlying_Type entity before reading attribute
11379 Access_Disp_Table.
11380
113812011-08-01 Ed Schonberg <schonberg@adacore.com>
11382
11383 * s-poosiz.ads: Additional overriding indicators.
11384
113852011-08-01 Yannick Moy <moy@adacore.com>
11386
11387 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
11388 formal mode.
11389 (Analyze_Iteration_Scheme): issue error in formal mode when loop
11390 parameter specification does not include a subtype mark.
11391 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
11392 formal mode on abstract subprogram.
11393 (Analyze_Subprogram_Specification): issue error in formal mode on
11394 user-defined operator.
11395 (Process_Formals): issue error in formal mode on access parameter and
11396 default expression.
11397 * sem_ch9.adb (Analyze_Abort_Statement,
11398 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
11399 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
11400 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
11401 Analyze_Requeue, Analyze_Selective_Accept,
11402 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
11403 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
11404 issue error in formal mode on user-defined raise statement.
11405
1f250383
AC
114062011-08-01 Thomas Quinot <quinot@adacore.com>
11407
11408 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
11409 declaration being hidden when overriding an implicit inherited
11410 subprogram.
11411 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
11412 (-gnats), do not complain about a source file that contains only a
11413 pragma No_Body.
11414
114152011-08-01 Ed Schonberg <schonberg@adacore.com>
11416
11417 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
11418 variable if already set.
11419
607d0635
AC
114202011-08-01 Arnaud Charlet <charlet@adacore.com>
11421
11422 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
11423 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
11424 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
11425 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
11426 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
11427 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
11428 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
11429 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
11430 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
11431 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
11432 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
11433 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
11434 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
11435 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
11436 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
11437 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
11438 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
11439 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
11440 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
11441 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
11442 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
11443 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
11444 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
11445 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
11446 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
11447 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
11448 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
11449 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
11450 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
11451 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
11452 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
11453 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
11454 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
11455 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
11456 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
11457 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
11458 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
11459 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
11460 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
11461 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
11462 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
11463 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
11464 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
11465 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
11466 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
11467 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
11468 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
11469 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
11470 s-osinte-mingw.ads: Update to GPLv3 run-time license.
11471 Use GNAT instead of GNARL.
11472
114732011-08-01 Bob Duff <duff@adacore.com>
11474
11475 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
11476 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
11477 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
11478 reformatting.
11479
114802011-08-01 Yannick Moy <moy@adacore.com>
11481
11482 * debug.adb (d.D) reverve flag for the SPARK mode
11483 (d.E) reverve flag for SPARK generation mode
11484 (d.F) reverve flag for Why generation mode
2c7f9cc0 11485 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
607d0635
AC
11486 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
11487 functions which return True when the corresponding modes are set
11488 (Formal_Language): return "spark" or "alfa" when in formal verification
11489 mode.
11490 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
11491 Error_Msg to prefix the error message with a tag giving the formal
11492 language
11493 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
11494 message with a tag giving the formal language
11495 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
11496 block statement
11497 (Analyze_Case_Statement): issue error in formal mode on case statement
11498 with a single "others" case alternative
11499 (Analyze_Exit_Statement): issue errors in formal mode on exit
11500 statements which do not respect SPARK restrictions
11501 (Analyze_Goto_Statement): issue error in formal mode on goto statement
11502 (Check_Unreachable_Code): always issue an error (not a warning) in
11503 formal mode on unreachable code (concerns both code after an infinite
11504 loop and after an unconditional jump, both not allowed in SPARK)
11505 * sem_ch6.adb (Analyze_Return_Statement): add call to
11506 Set_Return_Present for a procedure containing a return statement
11507 (already done for functions in Analyze_Function_Return)
11508 (Analyze_Function_Return): issue error in formal mode on extended
11509 return or if return is not last statement in function
11510 (Check_Missing_Return): issue error in formal mode if function does
11511 not end with return or if procedure contains a return
11512 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
11513 function to detect if there is an inner scope of its parameter S which
11514 is a loop.
11515
115162011-08-01 Thomas Quinot <quinot@adacore.com>
11517
11518 * sem_ch6.ads: Minor reformatting.
11519
d8b3ccb9
AC
115202011-08-01 Javier Miranda <miranda@adacore.com>
11521
11522 * sem_util.adb (Abstract_Interface_List): Complete condition when
11523 processing private type declarations to avoid reading unavailable
11524 attribute.
11525 (Is_Synchronized_Tagged_Type): Complete condition when processing
11526 private extension declaration nodes to avoid reading unavailable
11527 attribute.
11528
115292011-08-01 Thomas Quinot <quinot@adacore.com>
11530
11531 * sem_ch3.adb: Minor reformatting.
11532
115332011-08-01 Thomas Quinot <quinot@adacore.com>
11534
11535 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
11536 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
11537 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
11538 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
11539 for VMS, instead parametrize the common implementation with
11540 System.Parameters declarations.
11541
0bb9276c
AC
115422011-08-01 Eric Botcazou <ebotcazou@adacore.com>
11543
11544 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
11545
115462011-08-01 Tristan Gingold <gingold@adacore.com>
11547
11548 * seh_init.c: Fix SEH handler installation on win64.
11549
115502011-08-01 Ed Schonberg <schonberg@adacore.com>
11551
11552 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
11553 double analysis of an anonymous access to subprogram, because it can
11554 lead to improper sharing of profiles and a back-end crash.
11555
6a2e4f0b
AC
115562011-08-01 Robert Dewar <dewar@adacore.com>
11557
11558 * make.adb, sem_ch4.adb: Minor reformatting.
11559 * gcc-interface/Make-lang.in: Update dependencies.
11560 * sem_util.adb, exp_ch5.adb: Minor reformatting.
11561
115622011-08-01 Arnaud Charlet <charlet@adacore.com>
11563
11564 * gnat_rm.texi: Fix definition of Long_Integer.
11565
115662011-08-01 Ed Schonberg <schonberg@adacore.com>
11567
11568 * exp_aggr.adb: check limit size of static aggregate unconditionally,
11569 to prevent storage exhaustion.
11570 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
11571 finalized is a function body, insert the cleanup code before the final
11572 return statement, to prevent spurious warnings.
11573 * s-pooglo.ads: add overriding indicator.
11574
4561baf7
ES
115752011-08-01 Ed Schonberg <schonberg@adacore.com>
11576
11577 * sem_ch4.adb (Operator_Check): improve error message when both a
11578 with_clause and a use_clause are needed to make operator usage legal.
11579 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
11580 determine whether a compilation unit is visible within an other,
11581 either through a with_clause in the current unit, or a with_clause in
11582 its library unit or one one of its parents.
11583
383e179e
AC
115842011-08-01 Ed Schonberg <schonberg@adacore.com>
11585
11586 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
11587 over an arbitrary expression of an array or container type.
11588 * lib-xref.adb: clarify comment.
11589
115902011-08-01 Bob Duff <duff@adacore.com>
11591
11592 * einfo.ads: Minor reformatting.
11593 * debug.adb: Minor comment improvement.
11594
115952011-08-01 Javier Miranda <miranda@adacore.com>
11596
11597 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
11598 consider hidden subprograms as valid candidates.
11599
116002011-08-01 Arnaud Charlet <charlet@adacore.com>
11601
11602 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
11603
116042011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
11605
11606 * gnat_ugn.texi: Fix typo.
11607
61c161b2
AC
116082011-08-01 Robert Dewar <dewar@adacore.com>
11609
11610 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
11611 lib-xref.adb: Minor reformatting
11612
116132011-08-01 Gary Dismukes <dismukes@adacore.com>
11614
11615 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
11616 when to generate a call to Move_Final_List.
11617 (Has_Controlled_Parts): Remove this function.
11618
84df40f7
AC
116192011-08-01 Geert Bosch <bosch@adacore.com>
11620
11621 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
11622 "," in choice list.
11623
116242011-08-01 Thomas Quinot <quinot@adacore.com>
11625
11626 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
11627 explicit raise of a predefined exception as Comes_From_Source if the
11628 original N_Raise_Statement comes from source.
11629
116302011-08-01 Robert Dewar <dewar@adacore.com>
11631
11632 * sinfo.ads: Add comment.
11633 * sem_ch6.adb: Minor reformatting.
11634
116352011-08-01 Robert Dewar <dewar@adacore.com>
11636
11637 * freeze.adb (Freeze_Entity): Refine check for bad component size
11638 clause to avoid rejecting confirming clause when atomic/aliased present.
11639
116402011-08-01 Ed Schonberg <schonberg@adacore.com>
11641
11642 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
11643 better determine whether an entity reference is a write.
11644 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
11645 subcomponent.
11646 * lib-xref.adb (Output_References): Do no suppress a read reference at
11647 the same location as an immediately preceeding modify-reference, to
11648 handle properly in-out actuals.
11649
116502011-08-01 Tristan Gingold <gingold@adacore.com>
11651
11652 * env.c (__gnat_setenv) [VMS]: Refine previous change.
11653
116542011-08-01 Quentin Ochem <ochem@adacore.com>
11655
11656 * i-cstrin.adb (New_String): Changed implementation, now uses only the
11657 heap to compute the result.
11658
c7f0d2c0
AC
116592011-08-01 Robert Dewar <dewar@adacore.com>
11660
11661 * atree.ads: Minor reformatting.
11662
116632011-08-01 Emmanuel Briot <briot@adacore.com>
11664
11665 * g-expect.adb (Get_Command_Output): Fix memory leak.
11666
116672011-08-01 Geert Bosch <bosch@adacore.com>
11668
11669 * cstand.adb (P_Float_Type): New procedure to print the definition of
11670 predefined fpt types.
11671 (P_Mixed_Name): New procedure to print a name using mixed case
11672 (Print_Standard): Use P_Float_Type for printing floating point types
11673 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
11674 precision IEEE float.
11675
116762011-08-01 Thomas Quinot <quinot@adacore.com>
11677
11678 * sem_ch3.adb: Minor reformatting.
11679
116802011-08-01 Ed Schonberg <schonberg@adacore.com>
11681
11682 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
11683 the completion of a generic function, insert the new body rather than
11684 rewriting the original.
11685
116862011-08-01 Yannick Moy <moy@adacore.com>
11687
11688 * sinfo.ads, errout.ads: Typos in comments.
11689
1c54829e
AC
116902011-08-01 Robert Dewar <dewar@adacore.com>
11691
11692 * par-endh.adb: Minor reformatting.
11693
116942011-08-01 Robert Dewar <dewar@adacore.com>
11695
11696 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
11697 (Pre_Post_Aspects): New subtype.
11698 * par-ch12.adb (P_Generic): New syntax for aspects in packages
11699 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
11700 * par-ch7.adb (P_Package): Remove Decl parameter
11701 (P_Package): Handle new syntax for aspects (before IS)
11702 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
11703 new aspect syntax
11704 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
11705 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
11706 (P_Package): Remove Decl parameter
11707 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
11708 aspects
11709 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
11710 specs
11711 * sem_util.ads, sem_util.adb (Static_Boolean): New function
11712 * sinfo.ads: Document new syntax for aspects in packages etc.
11713 * sprint.adb: Handle new syntax of aspects before IS in package
11714
117152011-08-01 Thomas Quinot <quinot@adacore.com>
11716
11717 * atree.ads: Minor reformatting.
11718 * sem_prag.adb: Minor reformatting.
11719
117202011-08-01 Robert Dewar <dewar@adacore.com>
11721
11722 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
11723 case expr alternative.
11724
117252011-08-01 Ed Schonberg <schonberg@adacore.com>
11726
11727 * sem_ch12.adb: Fix typo.
11728
9eea4346
GB
117292011-08-01 Geert Bosch <bosch@adacore.com>
11730
11731 * sem_prag.adb (Check_No_Link_Name): New procedure.
11732 (Process_Import_Or_Interface): Use Check_No_Link_Name.
11733 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
11734 instead of Standard_Long_Long_Float_Size global. Preparation for
11735 eventual removal of per type constants.
11736 * exp_util.ads (Get_Stream_Size): New function returning the stream
11737 size value of subtype E.
11738 * exp_util.adb (Get_Stream_Size): Implement new function.
11739 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
11740 function.
11741 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
11742 * einfo.adb:
11743 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
11744
3d6c3bd7
GB
117452011-08-01 Geert Bosch <bosch@adacore.com>
11746
11747 * cstand.adb: Fix comments.
11748 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
11749 count of arguments.
11750
e7d897b8
AC
117512011-08-01 Robert Dewar <dewar@adacore.com>
11752
11753 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
11754
117552011-08-01 Geert Bosch <bosch@adacore.com>
11756
11757 * atree.ads: Fix comment.
11758
c228a069
AC
117592011-08-01 Robert Dewar <dewar@adacore.com>
11760
11761 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
11762 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
11763 * par.adb: Add with for Namet.Sp.
11764 * par-tchk.adb: Minor reformatting.
11765
117662011-08-01 Vincent Celier <celier@adacore.com>
11767
11768 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
11769 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
11770 of the init procedure of a SAL.
11771 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
11772 New procedure.
11773
117742011-08-01 Thomas Quinot <quinot@adacore.com>
11775
11776 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
11777 reformatting.
11778
117792011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11780
11781 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
11782
117832011-08-01 Thomas Quinot <quinot@adacore.com>
11784
11785 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
11786 conformant with its spec (return True only for types that have
11787 an overriding Initialize primitive operation that prevents them from
11788 having preelaborable initialization).
11789 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
11790 initialization for controlled types in Ada 2005 or later mode.
11791
857ade1b
RD
117922011-08-01 Robert Dewar <dewar@adacore.com>
11793
11794 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
11795 Postcondition.
11796 (Same_Aspect): New function.
11797 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
11798 Type_Invariant, Precondition, Postcondition.
11799 * snames.ads-tmpl: Add Name_Type_Invariant.
11800
bd949ee2
RD
118012011-08-01 Robert Dewar <dewar@adacore.com>
11802
11803 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
11804 here.
11805 (Freeze_All_Ent): Fix error in handling inherited aspects.
11806 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
11807 already analyzed, but don't skip entire processing of a declaration,
11808 that's wrong in some cases of declarations being rewritten.
11809 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
11810 Don't delay for integer, string literals
11811 Treat predicates in usual manner for delay, remove special case code,
11812 not needed.
11813 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
11814 (Build_Predicate_Function): Update saved expression in aspect
11815 (Build_Invariant_Procedure): Update saved expression in aspect
11816 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
11817 of replacement of discriminant references if the reference is simple.
11818
f1c952af
RD
118192011-08-01 Robert Dewar <dewar@adacore.com>
11820
11821 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
11822 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
11823 Static_Predicate and Dynamic_Predicate.
11824 (Build_Predicate_Function): Add processing for Static_Predicate
11825 and Dynamic_Predicate.
11826 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
11827 (From_Static_Predicate): New flag
11828 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
11829
118302011-08-01 Robert Dewar <dewar@adacore.com>
11831
11832 * usage.adb: Documentation cleanup for Ada version modes in usage.
11833 * expander.adb: Minor reformatting.
11834
47e11d08
AC
118352011-08-01 Robert Dewar <dewar@adacore.com>
11836
11837 * atree.ads: Minor comment fix.
11838 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
11839 a-witeio.ads, sem_prag.adb: Minor reformatting.
11840
118412011-08-01 Doug Rupp <rupp@adacore.com>
11842
11843 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
11844 pointers. Use descrip.h header file for convenience. Add some
11845 comments.
11846
118472011-08-01 Robert Dewar <dewar@adacore.com>
11848
11849 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
11850 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
11851 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
11852 New procedure.
11853 (Check_Aspect_At_End_Of_Declarations): New procedure
11854 (Analye_Aspect_Specification): Minor changes for above procedures
11855 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
11856 specification node as well.
11857
118582011-08-01 Pascal Obry <obry@adacore.com>
11859
11860 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
11861 Windows files. Use GetFilesAttributes() in this case to check for file
11862 existence instead of returning with an error code.
11863
a3a16b21
VC
118642011-08-01 Vincent Celier <celier@adacore.com>
11865
11866 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
11867 High is above Source length.
11868
ff58cc69
RD
118692011-08-01 Robert Dewar <dewar@adacore.com>
11870
11871 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
11872
6bb88533
AC
118732011-08-01 Robert Dewar <dewar@adacore.com>
11874
11875 * aspects.ads (Boolean_Aspects): New subtype.
11876 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
11877 for derived types in cases where the parent type and derived type have
11878 aspects.
11879 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
11880 with aspects when parent type also has aspects.
11881 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
11882 boolean expression at this point).
11883 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
11884 accordance with final decision on the Ada 2012 feature.
11885 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
11886
118872011-08-01 Matthew Heaney <heaney@adacore.com>
11888
11889 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
11890
060a3f28
AC
118912011-08-01 Pascal Obry <obry@adacore.com>
11892
11893 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
11894 Fix Replace_Slice when High is above current string size.
11895 (Replace_Slice): Fix DL computation when High is above current
11896 string length.
11897
118982011-08-01 Gary Dismukes <dismukes@adacore.com>
11899
11900 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
11901
e7f567a3
AC
119022011-08-01 Matthew Heaney <heaney@adacore.com>
11903
11904 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
11905 of node.
11906
119072011-08-01 Pascal Obry <obry@adacore.com>
11908
11909 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
11910 reformatting.
11911
1a265e78
AC
119122011-08-01 Ed Schonberg <schonberg@adacore.com>
11913
11914 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
11915 access to protected subprograms in generic bodies.
11916 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
11917 protected type, indicate that the convention of the subprogram is
11918 Convention_Protected, because it may be used in subsequent declarations
11919 within the protected declaration.
11920
119212011-08-01 Vincent Celier <celier@adacore.com>
11922
11923 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
11924 and "final" procedures when the name of the library is "ada", to avoid
11925 duplicate symbols "adainit" and "adafinal" in executables.
11926
67e28ef8
ES
119272011-08-01 Ed Schonberg <schonberg@adacore.com>
11928
11929 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
11930 quantified expression that appears within a postcondition and uses the
11931 Ada2012 'Result attribute.
11932
6da2ca7d
RO
119332011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11934
11935 * init.c (__gnat_error_handler): Cast reason to int.
11936 (__gnat_install_handler): Explain sa_sigaction use.
11937
7d5997c6
EB
119382011-07-24 Eric Botcazou <ebotcazou@adacore.com>
11939
11940 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
11941 subprogram has copy-in copy-out parameters, try to promote the mode of
11942 the return type if it is passed in registers.
11943
4b4cfdd5
EB
119442011-07-24 Eric Botcazou <ebotcazou@adacore.com>
11945
11946 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
11947 left operand as addressable.
11948
f3d34576
EB
119492011-07-24 Eric Botcazou <ebotcazou@adacore.com>
11950
11951 * gcc-interface/gigi.h (build_function_stub): Remove.
11952 (build_return_expr): Likewise.
11953 (convert_vms_descriptor): Declare.
11954 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
11955 (build_function_stub): Move to...
11956 * gcc-interface/utils2.c (build_return_expr): Move to...
11957 * gcc-interface/trans.c (build_function_stub): ...here.
11958 (build_return_expr): ...here.
11959 (Subprogram_Body_to_gnu): Add local variable for language_function.
11960 Disconnect the parameter attributes cache, if any, once done with it.
11961 Call end_subprog_body only after setting the end_locus.
11962 Build the stub associated with the function, if any, at the very end.
11963 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
11964 variables and streamline control flow.
11965
0a6ecc08
AC
119662011-07-23 Arnaud Charlet <charlet@adacore.com>
11967
11968 PR ada/49819
11969 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
11970 g-trasym-dwarf.adb.
11971
5b6d595b
RO
119722011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11973
11974 PR bootstrap/49794
11975 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
11976 Assign to act.sa_sigaction.
11977 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
11978 current->return_address to char * before arithmetic.
11979
94017021
RO
119802011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11981
11982 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
11983 Correct argument types.
11984 Extract code from reason.
11985 (__gnat_install_handler): Assign to act.sa_sigaction.
11986
52fd02bb
EB
119872011-07-21 Eric Botcazou <ebotcazou@adacore.com>
11988
11989 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
11990 (GNAT1_OBJS): ...here.
11991
f39a9ca2
EB
119922011-07-15 Eric Botcazou <ebotcazou@adacore.com>
11993
11994 PR ada/48711
11995 * g-socthi-mingw.adb (Fill): Fix formatting.
11996
9e36aa23
EB
11997 * gcc-interface/gigi.h: Move around comment.
11998
e3aca522
JDA
119992011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12000
12001 PR ada/46350
12002 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
12003
696b1960
FW
120042011-07-14 Florian Weimer <fw@deneb.enyo.de>
12005
12006 PR ada/48711
12007 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
12008
f542c405
EB
120092011-07-13 Eric Botcazou <ebotcazou@adacore.com>
12010
12011 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
12012 range comparison if Pmode is SImode.
12013
9e9bd455
LG
120142011-07-12 Laurent GUERBY <laurent@guerby.net>
12015 Eric Botcazou <ebotcazou@adacore.com>
12016
12017 * adadecode.c: Wrap up in extern "C" block.
12018 * adadecode.h: Likewise.
12019 * adaint.c: Likewise. Remove 'const' keyword.
12020 * adaint.h: Likewise.
12021 * argv.c: Likewise.
12022 * atree.h: Likewise.
12023 * cio.c: Likewise.
12024 * cstreams.c: Likewise.
12025 * env.c: Likewise.
12026 * exit.c: Likewise.
12027 * fe.h: Likewise.
12028 * final.c: Likewise.
12029 * init.c: Likewise.
12030 * initialize.c: Likewise.
12031 * link.c: Likewise.
12032 * namet.h: Likewise.
12033 * nlists.h: Likewise.
12034 * raise.c: Likewise.
12035 * raise.h: Likewise.
12036 * repinfo.h: Likewise.
12037 * seh_init.c: Likewise.
12038 * targext.c: Likewise.
12039 * tracebak.c: Likewise.
12040 * uintp.h: Likewise.
12041 * urealp.h: Likewise.
12042 * xeinfo.adb: Wrap up generated C code in extern "C" block.
12043 * xsinfo.adb: Likewise.
12044 * xsnamest.adb: Likewise.
12045 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
12046 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
12047 * gcc-interface/misc.c: Likewise.
12048 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
12049 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
12050 ada/targext.o here...
12051 (GNAT_ADA_OBJS): ...and not here.
12052 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
12053 (GNATBIND_OBJS): Reorder.
12054
7644b3c7
RH
120552011-07-07 Richard Henderson <rth@redhat.com>
12056
12057 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
12058 dwarf2out_frame_init.
12059
8384ac41
EB
120602011-07-07 Eric Botcazou <ebotcazou@adacore.com>
12061
12062 * gcc-interface/misc.c (gnat_init): Tweak previous change.
12063
fbdd5d87
RO
120642011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12065
12066 PR target/39150
12067 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
12068
1a072294
RG
120692011-07-06 Richard Guenther <rguenther@suse.de>
12070
8384ac41
EB
12071 * gcc-interface/misc.c (gnat_init): Merge calls to
12072 build_common_tree_nodes and build_common_tree_nodes_2.
1a072294
RG
12073 Re-initialize boolean_false_node.
12074
bc712852
EB
120752011-07-02 Eric Botcazou <ebotcazou@adacore.com>
12076 Olivier Hainque <hainque@adacore.com>
12077 Nicolas Setton <setton@adacore.com>
12078
12079 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
12080 the type according to the ARTIFICIAL_P parameter.
12081 (create_type_decl): Likewise.
12082 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
12083
2eb22389
EB
120842011-07-01 Eric Botcazou <ebotcazou@adacore.com>
12085
12086 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
12087 (gnatbind): Likewise.
12088
4bdaaf2f
RO
120892011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12090
12091 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
12092
c020c92b
EB
120932011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12094
12095 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
12096 local variable throughout. Remove useless call to Base_Type.
12097 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
12098 Take it also into account for the volatileness of the field. Set the
12099 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
12100
96769d32
EB
121012011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12102
12103 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
12104 on a dereference built for a by-ref object if it has an address clause.
12105
7e4680c1
EB
121062011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12107
12108 * einfo.ads (Address_Taken): Document use for the second argument of
12109 Asm_Input and Asm_Output attributes.
12110 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
12111 argument is an entity name, then set Address_Taken on it.
12112 <Attribute_Asm_Output>: Likewise.
12113 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
12114 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
12115 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
12116 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
12117
121182011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
12119
12120 PR middle-end/46500
12121 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
12122
677f3fa8
JM
121232011-06-14 Joseph Myers <joseph@codesourcery.com>
12124
12125 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
12126 (ada/utils.o): Update dependencies.
12127 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
12128 ../../../libcpp/libcpp.a.
12129 * gcc-interface/utils.c: Include common/common-target.h.
12130 (process_attributes): Use targetm_common.have_named_sections.
12131
009db074
RG
121322011-06-07 Richard Guenther <rguenther@suse.de>
12133
0bad0e23
EB
12134 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
12135 set_sizetype.
009db074 12136
3bfc61cf
EB
121372011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12138
0bad0e23 12139 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
3bfc61cf
EB
12140 TREE_THIS_NOTRAP flag.
12141
5c4a1c7b
EB
121422011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12143
12144 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
12145 Fix thinko.
12146
e9f57686
EB
121472011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12148
12149 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
12150 constants whose full view has discriminants specially.
12151
10e4d056
EB
121522011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12153
12154 * gcc-interface/utils.c: Include diagnostic.h.
12155 (gnat_write_global_declarations): Output debug information for all
12156 global type declarations before finalizing the compilation unit.
12157 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
12158
0957c029
JJ
121592011-05-25 Jakub Jelinek <jakub@redhat.com>
12160
12161 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
12162
52d0a7ac
KT
121632011-05-25 Kai Tietz <ktietz@redhat.com>
12164
12165 * adaint.c (__gnat_to_canonical_file_list_next): Use array
12166 initialization instead of const/none-const pointer assignment.
12167
1ed1641d
JM
121682011-05-24 Joseph Myers <joseph@codesourcery.com>
12169
12170 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
12171 $(EXTRA_GNAT1_OBJS).
12172 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
12173 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
12174 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
12175 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
12176 libcommon-target.a instead of prefix.o.
12177
9fe72ebd
JM
121782011-05-21 Joseph Myers <joseph@codesourcery.com>
12179
12180 PR ada/49097
0bad0e23 12181 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
9fe72ebd 12182
2691e6d7
JM
121832011-05-20 Joseph Myers <joseph@codesourcery.com>
12184
0bad0e23
EB
12185 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
12186 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
12187 instead of version.o.
2691e6d7 12188
bf6490b5
KT
121892011-05-18 Kai Tietz <ktietz@redhat.com>
12190
12191 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
12192 boolean_false_node instead of integer_zero_node.
12193 (convert_with_check): Likewise.
12194 * gcc-interface/decl.c (choices_to_gnu): Likewise.
12195
7bf9a5ac
EB
121962011-05-12 Eric Botcazou <ebotcazou@adacore.com>
12197
12198 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
12199 type of the parameter is an unconstrained array, convert the actual to
12200 the type of the formal in the In Out and Out cases as well.
12201
e5b00edf
NF
122022011-05-11 Nathan Froyd <froydnj@codesourcery.com>
12203
12204 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
12205 call build_function_type_array or build_varargs_function_type_array
12206 instead.
12207 (create_subprog_type): Don't call build_function_type; call
12208 build_function_type_vec instead.
12209
51545682
NF
122102011-05-11 Nathan Froyd <froydnj@codesourcery.com>
12211
12212 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
12213 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
12214 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
12215
c99c0026
EB
122162011-05-07 Eric Botcazou <ebotcazou@adacore.com>
12217
f620bd21
EB
12218 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
12219
c99c0026
EB
12220 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
12221 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
12222
3d528853
NF
122232011-05-05 Nathan Froyd <froydnj@codesourcery.com>
12224
c99c0026 12225 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
3d528853 12226
d7d058c5
NF
122272011-05-05 Nathan Froyd <froydnj@codesourcery.com>
12228
12229 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
12230 instead of accessing TYPE_ARG_TYPES directly.
12231 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
12232
805e60a0
EB
122332011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12234
12235 PR ada/48844
12236 * gcc-interface/gigi.h (get_variant_part): Declare.
12237 * gcc-interface/decl.c (get_variant_part): Make global.
12238 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
12239 types have the same constant size, are record types and T1 has a
12240 variant part while T2 doesn't.
12241
907a08d9
EB
122422011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12243
12244 * gcc-interface/utils.c (begin_subprog_body): Do not call
12245 get_pending_sizes.
12246 (end_subprog_body): Likewise.
12247
d35936ab
RG
122482011-05-04 Richard Guenther <rguenther@suse.de>
12249
12250 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
12251 int_const_binop.
12252 (pos_to_constructor): Likewise.
12253
c1fd8753 122542011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2c7f9cc0 12255 Eric Botcazou <ebotcazou@adacore.com>
c1fd8753
NF
12256
12257 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
12258 of build_function_type. Adjust calls to...
12259 (build_raise_check): ...this. Do not take a void_tree parameter.
12260 Call build_function_type_list instead of build_function_type.
12261 Fix head comment and swap couple of conditional blocks.
12262
4fb87d2b
EB
122632011-04-30 Eric Botcazou <ebotcazou@adacore.com>
12264
12265 * gnatvsn.ads (Library_Version): Bump to 4.7.
12266 (Current_Year): Bump to 2011.
12267
fa5e5a76
MM
122682011-04-29 Michael Matz <matz@suse.de>
12269
12270 * gcc-interface/misc.c (gnat_handle_option): Set
12271 warn_maybe_uninitialized.
12272
8d6a2f69
GP
122732011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
12274
12275 * gnat_ugn.texi (Complexity Metrics Control): Update link to
12276 the Watson/McCabe paper.
12277
770937fd
JM
122782011-04-23 Jim Meyering <meyering@redhat.com>
12279
12280 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
12281
eb601ae1
EB
122822011-04-22 Eric Botcazou <ebotcazou@adacore.com>
12283
12284 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
12285 onto the new type.
12286
7d7fcb08
EB
122872011-04-22 Eric Botcazou <ebotcazou@adacore.com>
12288
12289 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
12290 parameter.
12291 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
12292 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
12293 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
12294 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
12295 <all>: Do not set flags on the reused DECL node coming from an alias.
12296 Set DECL_IGNORED_P on the DECL node built for subprograms if they
12297 don't need debug info here...
12298 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
12299 (gigi): Adjust calls to create_subprog_decl.
12300 (build_raise_check): Likewise.
12301 (establish_gnat_vms_condition_handler): Likewise.
12302 (Compilation_Unit_to_gnu): Likewise.
12303 (gnat_to_gnu): Likewise.
12304
e1876cac
EB
123052011-04-21 Eric Botcazou <ebotcazou@adacore.com>
12306
12307 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
12308 (NO_REORDER_ADAFLAGS): New variable.
12309 (EXTRA_GNATTOOLS): Always define.
12310 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
12311 Clean up and adjust list of files compiled with special options.
12312 * gcc-interface/Make-lang.in: Likewise.
12313 (ada/decl.o): Cosmetical change.
12314 (ada/misc.o): Remove dependency on $(PLUGIN_H).
12315
04695783
JM
123162011-04-20 Jim Meyering <meyering@redhat.com>
12317
12318 * initialize.c (__gnat_initialize): Remove useless if-before-free.
12319
23399579
EB
123202011-04-17 Eric Botcazou <ebotcazou@adacore.com>
12321
12322 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
12323 $(CFLAGS) on the link line.
12324
51c5169c
EB
123252011-04-17 Eric Botcazou <ebotcazou@adacore.com>
12326
12327 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
12328 padded type built for the return type if it is unconstrained.
12329
61e46a7d
NF
123302011-04-14 Nathan Froyd <froydnj@codesourcery.com>
12331
12332 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
12333
81f653d6
NF
123342011-04-12 Nathan Froyd <froydnj@codesourcery.com>
12335
b4867846
EB
12336 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
12337 before calling TREE_CHAIN.
81f653d6
NF
12338 * gcc-interface/misc.c (gnat_init_ts): New function.
12339 (LANG_HOOKS_INIT_TS): Define.
12340
a358e188
MJ
123412011-04-12 Martin Jambor <mjambor@suse.cz>
12342
b4867846
EB
12343 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
12344 instead of cgraph_node.
a358e188 12345
29b1c5a4
EB
123462011-04-08 Eric Botcazou <ebotcazou@adacore.com>
12347
12348 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
12349 alignment on fields of the RETURN type built for the Copy-In Copy-Out
12350 mechanism.
12351
88872b00
EB
123522011-04-08 Eric Botcazou <ebotcazou@adacore.com>
12353
12354 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
12355 of aggregate types that contain a placeholder.
12356
dcf0c47e
NF
123572011-04-08 Nathan Froyd <froydnj@codesourcery.com>
12358
12359 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
b4867846 12360 TYPE_ARG_TYPES.
dcf0c47e
NF
12361 (handle_type_generic_attribute): Likewise.
12362
53e3000c
EB
123632011-04-04 Eric Botcazou <ebotcazou@adacore.com>
12364
12365 PR ada/47163
12366 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
12367
ab380bb4
KT
123682011-04-04 Kai Tietz <ktietz@redhat.com>
12369
12370 PR ada/47163
0bad0e23
EB
12371 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
12372 to flag value.
ab380bb4 12373
8ffac116
EB
123742011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12375
12376 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
12377 type case, do not strip a padding type around the array type.
12378
de9528f0
EB
123792011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12380
12381 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
12382 types.
12383
d9d7a26c
EB
123842011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12385
12386 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
12387 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
de9528f0 12388 code for -feliminate-unused-debug-types.
d9d7a26c
EB
12389 (gnat_post_options): Likewise.
12390
4cb12a90
EB
123912011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12392
12393 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
12394 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
12395 distinct copy.
12396
acccc61c
EB
123972011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12398
12399 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
12400 DECL_ARTIFICIAL flag on enumeration types.
12401
583eb0c9
EB
124022011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12403
12404 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
12405 fat pointer types artificial unconditionally.
12406 <E_Array_Subtype>: Attach the base array type as a parallel type if it
12407 isn't artificial.
12408
e3edbd56
EB
124092011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12410
12411 * gcc-interface/gigi.h (get_dummy_type): Declare.
12412 (build_dummy_unc_pointer_types): Likewise.
12413 (finish_fat_pointer_type): Likewise.
12414 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
12415 fat pointer type has been built, complete it in place.
12416 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
12417 and thin pointers. Remove useless variable.
12418 (finish_fat_pointer_type): Make global and move to...
12419 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
12420 (get_dummy_type): New function.
12421 (build_dummy_unc_pointer_types): Likewise.
12422 (gnat_pushdecl): Propage the name to the anonymous variants only.
12423 (update_pointer_to): Only adjust the pointer types in the unconstrained
12424 array case.
12425
65444786
EB
124262011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12427
12428 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
12429 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
12430 if this is a Taft amendment type and the full declaration is available.
12431 * gcc-interface/trans.c (process_type): Likewise.
12432 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
12433 (process_freeze_entity): Likewise.
12434 * gcc-interface/utils.c (dummy_global): New static variable.
12435 (gnat_write_global_declarations): If there are types declared as used
12436 at the global level, insert them in the global hash table.
12437
1aeb40dd
EB
124382011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12439
12440 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
12441 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
12442 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
12443 copy.
12444 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
12445 flag of the type accordingly.
12446 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
12447
80ec8b4c
EB
124482011-04-02 Eric Botcazou <ebotcazou@adacore.com>
12449
12450 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
12451 finalizing types when updating the pointers to the designated type.
12452 <all>: Finalize the deferred types even if we didn't defer processing
12453 of incomplete types in this invocation.
12454
2a9d769a 124552011-04-01 Olivier Hainque <hainque@adacore.com>
2c7f9cc0
AS
12456 Nicolas Setton <setton@adacore.com>
12457 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
12458
12459 * gcc-interface/misc.c (gnat_descriptive_type): New function.
12460 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
12461
2438d7a6
KT
124622011-03-28 Kai Tietz <ktietz@redhat.com>
12463
333d8aff 12464 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
80ec8b4c
EB
12465 Windows targets.
12466 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
12467 * system-mingw.ads (System): Change ZCX_By_Default default to True.
333d8aff 12468
80ec8b4c 12469 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
2438d7a6 12470
8ad150f6
TG
124712011-03-28 Tristan Gingold <gingold@adacore.com>
12472
12473 PR ada/44431
80ec8b4c
EB
12474 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
12475 Use ada output of gnatbind.
8ad150f6
TG
12476 (ada/b_gnatb.adb): Ditto.
12477 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
12478 (ada.mostlyclean, ada.stage1)
12479 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
12480 (ada.stagefeedback): Adjust.
80ec8b4c 12481 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
8ad150f6
TG
12482 Use ada output of gnatbind.
12483 (b_gnatm.adb): Ditto.
12484 (b_gnatl.o, b_gnatm.o): New rules.
12485
51c7954d
EB
124862011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12487
12488 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
12489 for the padded type built to support a specified size or alignment.
12490
6ddf9843
EB
124912011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12492
12493 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
12494 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
12495 unconditionally to the end of the unit when the designated type is
12496 limited_with'ed.
12497 <all>: Rename local variable. Attempt to un-defer types only and do it
12498 for limited_with'ed types as well.
12499 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
12500 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
12501 consistently and remove redundant call to finalize_from_with_types.
12502
5daed84a
EB
125032011-03-26 Eric Botcazou <ebotcazou@adacore.com>
12504
12505 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
12506 subprograms without a previous spec declared in the same unit.
12507 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
12508 subprograms at the end of the unit instead of at the beginning.
12509 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
12510 isn't public for the special handling of non-inline functions nested
12511 inside inline external functions.
12512
0edf1bb2
JL
125132011-03-25 Jeff Law <law@redhat.com>
12514
5daed84a 12515 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
0edf1bb2 12516
e3c4580e
EB
125172011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12518
12519 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
12520 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
12521 to compute Set_Size_Depends_On_Discriminant.
12522 (Layout_Type): Call it on array types in back-end layout mode.
12523 * sem_util.adb (Requires_Transient_Scope): Return true for array
12524 types only if the size depends on the value of discriminants.
12525 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
12526 type if the RHS is a call to a function that returns an unconstrained
12527 type with default discriminant.
12528
abbc8c7b
EB
125292011-03-24 Eric Botcazou <ebotcazou@adacore.com>
12530
12531 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
12532 non-conversion to the nominal result type at the end.
12533
ddb5a105
EB
125342011-03-23 Eric Botcazou <ebotcazou@adacore.com>
12535
12536 * gcc-interface/trans.c (create_temporary): New function taken from...
12537 (create_init_temporary): ...here. Call it.
12538 (call_to_gnu): Create the temporary for the return value early, if any.
12539 Create it for a function with copy-in/copy-out parameters if there is
12540 no target; in other cases of copy-in/copy-out, use another temporary.
12541 Push the new binding level lazily. Add and rename local variables.
12542
0d853156
EB
125432011-03-23 Eric Botcazou <ebotcazou@adacore.com>
12544
12545 * gcc-interface/decl.c (validate_size): Improve comments and tweak
12546 error message.
12547 (set_rm_size): Likewise.
12548
4184ef1b
EB
125492011-03-23 Eric Botcazou <ebotcazou@adacore.com>
12550
12551 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
12552 for the padded type built in order to support a specified alignment.
12553 Fix incorrect formatting.
12554
bf7eefab
EB
125552011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12556
12557 PR bootstrap/48216
12558 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
12559
ef0feeb2
EB
125602011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12561
12562 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
12563 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
12564 to the end of the list. Adjust recursive call. Rename local variable.
12565 If REORDER is true, reorder components of the record type.
12566 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
12567 components_to_record and adjust the parameter list.
12568
646f9414
EB
125692011-03-21 Eric Botcazou <ebotcazou@adacore.com>
12570
12571 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
12572 disabled, use the variable for bounds of loop iteration scheme.
12573
62d784f7
KT
125742011-03-21 Kai Tietz <ktietz@redhat.com>
12575
12576 PR target/12171
0bad0e23 12577 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
62d784f7 12578
f230d759
EB
125792011-03-17 Eric Botcazou <ebotcazou@adacore.com>
12580
12581 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
12582 out whether the expression is read-only. Short-circuit placeholder
12583 case and rename a couple of local variables.
12584
bb1f7929
EB
125852011-03-17 Eric Botcazou <ebotcazou@adacore.com>
12586
12587 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
12588 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
12589 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
12590 (convert): Deal with conversions from a smaller form type specially.
12591
400a2d24
EB
125922011-02-14 Eric Botcazou <ebotcazou@adacore.com>
12593
12594 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
12595 its argument, except for the special -I- switch.
12596
c26bc3ad
GP
125972011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
12598
0bad0e23
EB
12599 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
12600 "Ada Issues".
c26bc3ad 12601
07b8e910
EB
126022011-02-08 Eric Botcazou <ebotcazou@adacore.com>
12603
12604 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
12605
31a5a547
EB
126062011-02-03 Eric Botcazou <ebotcazou@adacore.com>
12607
12608 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
12609 GNAT_FORMAL.
12610 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
12611 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
12612 instead of GNAT_FORMAL. Protect the expression against multiple uses.
12613 Do not generate the check directly, instead instantiate the template
12614 check present in the descriptor.
12615 (make_descriptor_field): Move around.
12616 (build_vms_descriptor32): Build a template check in the POINTER field.
12617 (build_vms_descriptor): Remove useless suffixes.
12618 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
12619
dcf25f59
EB
126202011-01-26 Eric Botcazou <ebotcazou@adacore.com>
12621
12622 PR bootstrap/47467
12623 * targext.c: Include target files if IN_RTS is defined.
12624
0418e131
RG
126252011-01-26 Richard Guenther <rguenther@suse.de>
12626
12627 PR bootstrap/47467
12628 * targext.c: Include config.h.
12629 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
12630 dependency.
12631
c6eecbd8 126322011-01-04 Pascal Obry <obry@adacore.com>
2c7f9cc0 12633 Eric Botcazou <ebotcazou@adacore.com>
c6eecbd8
PO
12634
12635 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
12636
2d3c7e4f
EB
126372011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12638
12639 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
12640 end-of-case on the end label and its associated gotos, if any.
12641
0394741f
EB
126422011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12643
12644 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
12645 expressions of the parameter cache within the statement group of
12646 the CICO mechanism.
12647
2a02d090 126482011-01-04 Olivier Hainque <hainque@adacore.com>
2c7f9cc0 12649 Eric Botcazou <ebotcazou@adacore.com>
2a02d090
OH
12650
12651 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
12652 (set_end_locus_from_node): New function.
12653 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
12654 make and the function end_locus.
12655 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
12656 for the elaboration subprogram.
12657 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
12658 set the end_locus of the expression as well.
12659
89f5e978
EB
126602011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12661
12662 PR ada/47131
12663 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
12664 variables that are referenced in exception handlers volatile.
12665
12666
ad41bd84 12667\f
797103eb 12668Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
12669
12670Copying and distribution of this file, with or without modification,
12671are permitted in any medium without royalty provided the copyright
12672notice and this notice are preserved.