]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link s-oscons.ads.
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
5f41422f
IS
12011-11-12 Iain Sandoe <iains@gcc.gnu.org>
2
3 * gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link
4 s-oscons.ads.
5 (OSCONS_CPP, OSCONS_EXTRACT): New.
6 (./bldtools/oscons/xoscons): New Target.
7 ($(RTSDIR)/s-oscons.ads): New Target.
8 (gnatlib): Depend on $(RTSDIR)/s-oscons.ads.
9 * gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency.
10 * Make-generated.in: Remove machinery to generate xoscons and
11 ada/s-oscons.ads.
12
033ba5bf
EB
132011-11-10 Eric Botcazou <ebotcazou@adacore.com>
14
15 * fe.h (Serious_Errors_Detected): New macro.
16 * gcc-interface/gigi.h (build_atomic_load): Declare.
17 (build_atomic_store): Likewise.
18 * gcc-interface/trans.c (atomic_sync_required_p): New predicate.
19 (call_to_gnu): Add ATOMIC_SYNC parameter. Use local variable.
20 Build an atomic load for an In or In Out parameter if needed.
21 Build an atomic store for the assignment of an Out parameter if needed.
22 Build an atomic store to the target if ATOMIC_SYNC is true.
23 (present_in_lhs_or_actual_p): New predicate.
24 (gnat_to_gnu) <N_Identifier>: Build an atomic load if needed.
25 <N_Explicit_Dereference>: Likewise.
26 <N_Indexed_Component>: Likewise.
27 <N_Selected_Component>: Likewise.
28 <N_Assignment_Statement>: Adjust call to call_to_gnu.
29 Build an atomic store to the LHS if needed.
30 <N_Function_Call>: Adjust call to call_to_gnu.
31 * gcc-interface/utils2.c: Include toplev.h.
32 (resolve_atomic_size): New static function.
33 (build_atomic_load): New function.
34 (build_atomic_store): Likewise.
35 * gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h.
36
b5bf3335
AC
372011-11-07 Olivier Hainque <hainque@adacore.com>
38
39 * sigtramp-ppcvxw.c: Add general comments.
40 (CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add
41 rules for r2 to r13, plus CTR and XER.
42 (CFA_REG): New, register number used to hold the local CFA.
43 (CFI_DEF_CFA, SIGTRAMP_BODY): Use it.
44 Make that 15, not 14, with documentation.
45 (TCR): Undef before definition, preventing conflict with reg number in
46 VxWorks headers.
47
482011-11-07 Robert Dewar <dewar@adacore.com>
49
50 * exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb,
51 aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting.
52 * gcc-interface/Make-lang.in: Update dependencies.
53
542011-11-07 Ed Schonberg <schonberg@adacore.com>
55
56 * exp_ch6.adb: A tagged type is a legal actual for an aliased
57 formal.
58
592011-11-07 Pascal Obry <obry@adacore.com>
60
61 * g-socket.adb, g-socket.ads: Minor reformatting.
62
632011-11-07 Robert Dewar <dewar@adacore.com>
64
65 * sem_res.adb (Resolve_Actuals): Minor error message improvement.
66
672011-11-07 Robert Dewar <dewar@adacore.com>
68
69 * gnat_ugn.texi: Add discussion of default mode handling of
70 source representation with no -gnatW option given, in particular
71 noting that NEL (next line) is not recognized in this context.
72
9ee76313
AC
732011-11-07 Yannick Moy <moy@adacore.com>
74
75 * sem_util.adb (Note_Possible_Modification): In Alfa mode,
76 generate a reference for a modification even when the modification
77 does not come from source.
78
792011-11-07 Ed Schonberg <schonberg@adacore.com>
80
81 * exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form,
82 use the indexing attributes rather than the Element function,
83 to obtain variable references.
84 * sem_ch4.adb (Try_Container_Indexing): Code cleanup. Use
85 Find_Aspect rather than iterating over representation
86 items. Improve error message.
87 * a-cohama.adb, a-cohama.ads Update to latest RM, with two versions
88 of Reference functions.
89
7b7a0c2b
AC
902011-11-07 Yannick Moy <moy@adacore.com>
91
92 * sem_util.adb (Unique_Entity): For a parameter on a subprogram
93 body that has a corresponding parameter on the subprogram
94 declaration, define the unique entity as being the declaration
95 one.
96
972011-11-07 Ed Schonberg <schonberg@adacore.com>
98
99 * sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the
100 return type of a function is the class-wide type of an incomplete
101 type T, T can be a Taft-amendment type and does not have to be
102 completed in the current private part.
103
1042011-11-07 Ed Schonberg <schonberg@adacore.com>
105
106 * aspects.ads (Inherited_Aspect): Map that indicates type aspects
107 that are inherited by default, and apply to the class-wide type
108 as well.
109 * aspects.adb (Find_Aspect): If the entity is class-wide and the
110 aspect is inherited, use the aspect of the specific type.
111
cc570be6
AC
1122011-11-07 Hristian Kirtchev <kirtchev@adacore.com>
113
114 * exp_alfa.adb: Remove with and use clause for
115 Exp_Ch8. Add with and use clause for Exp_Util.
116 Remove local constant Disable_Processing_Of_Renamings.
117 (Expand_Alfa_N_Object_Renaming_Declaration): The expansion of
118 object renamings has been reenabled.
119 (Expand_Possible_Renaming):
120 The expansion of identifier and expanded names has been
121 reenabled. Perform the substitutions only for entities that
122 denote an object.
123 * exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util.
124 * exp_util.adb (Evaluate_Name): Moved from Exp_Ch8.
125 (Remove_Side_Effects): Alphabetize local variables. Add a guard
126 to avoid the infinite expansion of an expression in Alfa mode. Add
127 processing for function calls in Alfa mode.
128 * exp_util.ads (Evaliate_Name): Moved from Exp_Ch8.
129
1302011-11-07 Ed Schonberg <schonberg@adacore.com>
131
132 * freeze.adb (Freeze_Entity): If the entity is an access to
133 subprogram whose designated type is itself a subprogram type,
134 its own return type must be decorated with size information.
135
b6d185a5
AC
1362011-11-04 Arnaud Charlet <charlet@adacore.com>
137
138 * gcc-interface/Make-lang.in: Update dependencies.
139
1adaea16
AC
1402011-11-04 Robert Dewar <dewar@adacore.com>
141
142 * sprint.adb (Sprint_Node_Actual, case Qualified_Expression):
143 Avoid junk semicolon after argument of machine code Asm operand.
144
1452011-11-04 Robert Dewar <dewar@adacore.com>
146
147 * exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes in
148 CodePeer mode or if restriction No_Exception_Handlers is present.
149 * exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/pop
150 nodes in CodePeer mode or if restriction No_Exception_Handlers
151 is present.
152
1532011-11-04 Robert Dewar <dewar@adacore.com>
154
155 * s-tassta.adb, atree.ads, errout.adb, sinput.adb: Minor reformatting.
156
1572011-11-04 Ed Schonberg <schonberg@adacore.com>
158
159 * sem_ch6.adb (Analyze_Subprogram_Specification): The
160 specification is legal if it is a function that returns an
161 abstract type, if it comes from an attribute renaming of a stream
162 attribute of an abstract type.
163
1642011-11-04 Gary Dismukes <dismukes@adacore.com>
165
166 * exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexed
167 components, check whether recursively check whether the prefix
168 denotes an unaligned object.
169
1702011-11-04 Ed Schonberg <schonberg@adacore.com>
171
172 * sem_prag.adb (Analyze_Pragma, case Debug): The argument of
173 the pragma is legal if it is an expanded name that denotes a
174 procedure that be can called without parameters.
175
1762011-11-04 Eric Botcazou <ebotcazou@adacore.com>
177
178 * gnat_ugn.texi (Performance Considerations) <Vectorization
179 of loops>: New sub-section. <Other Optimization Switches>:
180 Minor tweak.
181
4c9fe6c7
AC
1822011-11-04 Robert Dewar <dewar@adacore.com>
183
184 * gnat_rm.texi: Minor reformatting.
185
1862011-11-04 Matthew Heaney <heaney@adacore.com>
187
188 * a-convec.adb, a-coinve.adb, a-cobove.adb (Merge): Raise PE
189 when Target and Source denote same non-empty object
190 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Merge): Ditto
191
1922011-11-04 Robert Dewar <dewar@adacore.com>
193
194 * exp_attr.adb: Minor reformatting.
195
1962011-11-04 Ed Schonberg <schonberg@adacore.com>
197
198 * exp_ch5.adb (Expand_Assign_Record): Do not generate a
199 discriminant assignment within an initialization proc if the
200 record is an unchecked union, as it can only come from the
201 initialization of an unchecked union component.
202
2032011-11-04 Robert Dewar <dewar@adacore.com>
204
205 * gnat_ugn.texi: Minor reformatting.
206
2072011-11-04 Robert Dewar <dewar@adacore.com>
208
209 * par-labl.adb (Rewrite_As_Loop): Generate info msg rather than
210 warning message.
211
2122011-11-04 Robert Dewar <dewar@adacore.com>
213
214 * exp_ch4.adb: Minor code reorganization (remove junk obsolete
215 var Save_Space).
216
6ec084f3
HK
2172011-11-04 Hristian Kirtchev <kirtchev@adacore.com>
218
219 * exp_alfa.adb: Add local constant
220 Disable_Processing_Of_Renamings;
221 (Expand_Alfa_N_Object_Renaming_Declaration): Disable
222 the name evaluation of object renamings for now.
223 (Expand_Potential_Renaming): Do not perform the substitution
224 for now.
225 * exp_util.adb (Remove_Side_Effects): Remove processing for
226 functions with side effects in Alfa mode.
227
73fe1679
AC
2282011-11-04 Gary Dismukes <dismukes@adacore.com>
229
230 * bindgen.adb (Gen_Elab_Calls): In the case
231 of the AAMP target, set elaboration entities to 1 rather than
232 incrementing.
233
2342011-11-04 Ed Schonberg <schonberg@adacore.com>
235
236 * sem_ch10.adb (Install_Limited_With_Unit): To establish the
237 proper entities on the ancestors of a child unit that appear
238 in a limited_with clause, follow the unit links because the
239 units are not analyzed and scope information is incomplete.
240
2412011-11-04 Eric Botcazou <ebotcazou@adacore.com>
242
243 * exp_ch4.adb (Expand_N_Selected_Component): Refine code
244 setting the Atomic_Sync_Required flag to detect one more case.
245 * exp_util.adb (Activate_Atomic_Synchronization): Refine code
246 setting the Atomic_Sync_Required flag to exclude more cases,
247 depending on the parent of the node to be examined.
248
2492011-11-04 Bob Duff <duff@adacore.com>
250
251 * g-excact.adb: Minor: use named notation.
252
2532011-11-04 Ed Schonberg <schonberg@adacore.com>
254
255 * sem_ch5.adb: Improve error messages for illegal iterators.
256
b2ab8c33
AC
2572011-11-04 Hristian Kirtchev <kirtchev@adacore.com>
258
259 * exp_alfa.adb: Add with and use clauses for Exp_Ch8 and
260 Sem_Util.
261 (Expand_Alfa): Alphabetize cases on first choice. Add
262 processing for object renaming declarations, identifiers and
263 expanded names.
264 (Expand_Alfa_N_In): Remove useless return.
265 (Expand_Alfa_N_Object_Renaming_Declaration): New routine.
266 (Expand_Potential_Renaming): New routine.
267 * exp_ch8.adb (Evaluate_Name): Moved to the top level.
268 (Expand_N_Object_Declaration): Alphabetize local variables. Move
269 Evaluate_Name out to the top level.
270 * exp_ch8.ads (Evaluate_Name): Moved from body to package spec.
271 * exp_util.adb (Remove_Side_Effects): Add processing for
272 functions with side effects in Alfa mode.
273
2742011-11-04 Hristian Kirtchev <kirtchev@adacore.com>
275
276 * gnat_rm.texi: Add entries for
277 restrictions No_Relative_Delay, No_Requeue_Statements and
278 No_Stream_Optimizations.
279
2802011-11-04 Ed Schonberg <schonberg@adacore.com>
281
282 * sem_ch4.adb: Set type of entity in prefixed call, for
283 completeness in a generic context.
284
4c318253
AC
2852011-11-04 Yannick Moy <moy@adacore.com>
286
287 * sem_prag.adb: Minor refactoring (renaming of a parameter).
288
2892011-11-04 Robert Dewar <dewar@adacore.com>
290
291 * atree.ads: Minor reformatting.
292
2932011-11-04 Robert Dewar <dewar@adacore.com>
294
295 * checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.d
296 and -gnatd.e here
297 * exp_ch2.adb (Expand_Entity_Reference): Use
298 Activate_Atomic_Synchronization
299 * exp_ch4.adb (Expand_N_Explicit_Dereference): Use
300 Activate_Atomic_Synchronization (Expand_N_Indexed_Compoonent):
301 Activate_Atomic_Synchronization (Expand_N_Selected_Component):
302 Use Activate_Atomic_Synchronization
303 * exp_util.ads, exp_util.adb (Activate_Atomic_Synchronization): New
304 procedure.
305 * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now apply to
306 N_Selected_Component node
307
37765e95
RD
3082011-11-04 Robert Dewar <dewar@adacore.com>
309
310 * sem_prag.adb, atree.ads, prj-env.adb, prj-env.ads: Minor reformatting.
311
8c18a165
AC
3122011-11-04 Yannick Moy <moy@adacore.com>
313
314 * atree.adb, atree.ads (Set_Original_Node): New set procedure.
315 * sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects):
316 In ASIS mode, no splitting of aspects between conjuncts.
317 (Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragma
318 expressions refer to the original aspect expressions through
319 the Original_Node link. This is used in semantic analysis for
320 ASIS mode, so that the original expression also gets analyzed.
321 * sem_prag.adb (Preanalyze_TC_Args,
322 Check_Precondition_Postcondition,
323 Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma
324 generated from a source aspect, also analyze the original aspect
325 expression.
326 (Check_Expr_Is_Static_Expression): New procedure
327 similar to existing procedure Check_Arg_Is_Static_Expression,
328 except called on expression inside pragma.
329
3302011-11-04 Tristan Gingold <gingold@adacore.com>
331
332 * prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, from
333 Find_Project.Try_Path_Name.
334 (Find_Project): Use Find_Name_In_Path to implement Try_Path_Name.
335
3362011-11-04 Eric Botcazou <ebotcazou@adacore.com>
337
338 * s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile.
339
3402011-11-04 Pascal Obry <obry@adacore.com>
341
342 * projects.texi: Add short description for qualifiers aggregate
343 and aggregate library.
344
3452011-11-04 Matthew Heaney <heaney@adacore.com>
346
347 * Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb]
348 * a-cgaaso.adb: Replaced implementation with instantiation
349 of Generic_Sort.
350 * a-cogeso.ad[sb] This is the new Ada 2012 unit
351 Ada.Containers.Generic_Sort
352
5972791c
AC
3532011-11-04 Robert Dewar <dewar@adacore.com>
354
355 * exp_ch2.adb (Expand_Entity_Reference): Do not set
356 Atomic_Sync_Required for the case of a prefix of an attribute.
357 * exp_ch4.adb (Expand_N_Explicit_Dereference): May require
358 atomic synchronization
359 (Expand_N_Indexed_Component): Ditto.
360 (Expand_B_Selected_Component): Ditto.
361 * sem_prag.adb (Process_Suppress_Unsuppress):
362 Disable/Enable_Atomic_Synchronization can now occur for array
363 types with pragma Atomic_Components.
364 * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now occur on
365 N_Explicit_Dereference nodes and on N_Indexed_Component nodes.
366
3672011-11-04 Gary Dismukes <dismukes@adacore.com>
368
369 * gnat_ugn.texi: Editorial corrections for gnattest section.
370
8751a35c
RD
3712011-11-04 Robert Dewar <dewar@adacore.com>
372
373 * sem_prag.adb: Minor reformatting.
374 * gnat_rm.texi: Update documentation for pragma Warnings (Off,
375 "***") usage.
376 * exp_ch2.adb (Expand_Entity_Reference): Only set
377 Atomic_Sync_Required on entities that are variables. Doesn't
378 make any sense on anything else.
379
fb5d63c6
RD
3802011-11-04 Robert Dewar <dewar@adacore.com>
381
382 * exp_ch2.adb (Expand_Entity_Reference): Extend handling of
383 atomic sync to type case.
384 * sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can
385 apply to types.
386
a51cd0ec 3872011-11-04 Robert Dewar <dewar@adacore.com>
25ec1790 388
a51cd0ec
AC
389 * sem_warn.adb (Warn_On_Useless_Assignment): More accurate test
390 for call vs assign.
391 * gcc-interface/Make-lang.in: Update dependencies.
392
3932011-11-04 Robert Dewar <dewar@adacore.com>
394
395 * sem_prag.adb: Detect more cases of Long_Float inconsistencies at
396 compile time.
397
3982011-11-04 Matthew Heaney <heaney@adacore.com>
399
400 * Makefile.rtl, impunit.adb: Added a-sfecin.ads,
401 * a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb],
402 a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb]
403 * a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb],
404 a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb],
405 a-sulcin.ad[sb]: New files.
406
4072011-11-04 Geert Bosch <bosch@adacore.com>
408
409 * i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads,
410 s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads,
411 i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads,
412 s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK.
413 * gcc-interface/Makefile.in: Remove libgnala and related objects.
25ec1790 414
a31945d7
AC
4152011-11-04 Matthew Heaney <heaney@adacore.com>
416
417 * a-cdlili.ad[sb], a-cidlli.ad[sb], a-coorse.ad[sb], a-ciorse.ad[sb],
418 a-coorma.ad[sb], a-ciorma.ad[sb], a-coormu.ad[sb], a-ciormu.ad[sb],
419 a-cohama.ad[sb], a-cihama.ad[sb], a-cohase.ad[sb], a-cihase.ad[sb],
420 a-convec.ad[sb], a-coinve.ad[sb] (Assign, Copy): New operations
421 added to package.
422
a51cd0ec
AC
4232011-11-04 Eric Botcazou <ebotcazou@adacore.com>
424
425 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert
426 that the type of the parameters isn't dummy in type_annotate_only mode.
427
a31945d7
AC
4282011-11-04 Robert Dewar <dewar@adacore.com>
429
430 * sem_ch12.adb: Minor reformatting
431
4322011-11-04 Gary Dismukes <dismukes@adacore.com>
433
434 * bindgen.adb (Gen_Elab_Calls): In the case of the AAMP target,
435 initialize elaboration entities to zero when specs are processed.
436
a53f3523
IS
4372011-10-28 Iain Sandoe <iains@gcc.gnu.org>
438 Eric Botcazou <ebotcazou@adacore.com>
439
440 PR target/50678
be7552fc
EB
441 * init.c (__gnat_error_handler) [Darwin]: Apply a work-around to the
442 bug filed as radar #10302855 (inconsistent unwind data for sigtramp).
a53f3523 443
0de82be5
EB
4442011-10-28 Eric Botcazou <ebotcazou@adacore.com>
445
446 PR ada/50842
447 * gcc-interface/Makefile.in (SYMDEPS): Delete.
448 (LIBICONV): New variable.
449 (LIBICONV_DEP): Likewise.
450 (LIBS): Add $(LIBICONV).
451 (LIBDEPS): Add $(LIBICONV_DEP).
452 (EXTRA_GNATTOOLS_OBJS): Merge into...
453 (TOOLS_LIBS): ...this. Add $(LIBICONV).
e1e5852c 454
1586f8a3
EB
4552011-10-26 Eric Botcazou <ebotcazou@adacore.com>
456
457 * gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local
458 variable. Always create the elaboration variable, if any, as constant.
459
e1e5852c
EB
4602011-10-26 Eric Botcazou <ebotcazou@adacore.com>
461
462 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Try to
463 make a packable type for fields of union types as well.
464 <is_type>: Use RECORD_OR_UNION_TYPE_P predicate.
465 (gnat_to_gnu_component_type): Try to make a packable type for fields
466 of union types as well.
467 (make_packable_type): Use RECORD_OR_UNION_TYPE_P predicate.
468 (maybe_pad_type): Try to make a packable type for fields of union types
469 as well.
470 (gnat_to_gnu_field): Likewise.
471 (is_variable_size): Use RECORD_OR_UNION_TYPE_P predicate.
472 (set_rm_size): Likewise.
473 (rm_size): Likewise.
474 * gcc-interface/misc.c (gnat_type_max_size): Likewise.
475 * gcc-interface/trans.c (add_decl_expr): Likewise.
476 * gcc-interface/utils.c (finish_record_type): Likewise.
477 * gcc-interface/utils2.c (build_simple_component_ref): Likewise.
478
0025cb63
EB
4792011-10-26 Eric Botcazou <ebotcazou@adacore.com>
480
481 * gcc-interface/decl.c (gnat_to_gnu_field): Always check components
482 declared as atomic. Move around conditionally executed code.
483
b3c33641
AC
4842011-10-24 Robert Dewar <dewar@adacore.com>
485
be7552fc 486 * sem.adb (Initialize): Fix bug that blew up if called a second time.
b3c33641
AC
487
4882011-10-24 Robert Dewar <dewar@adacore.com>
489
490 * tb-alvxw.c, tracebak.c, expect.c, initflt.c, tb-alvms.c,
491 tb-ivms.c, tb-gcc.c: Update headers to GPL 3.
492
4932011-10-24 Robert Dewar <dewar@adacore.com>
494
495 * sem_prag.adb (Analyze_Pragma, case Debug): Give proper pragma
496 name in error msg.
497
4982011-10-24 Hristian Kirtchev <kirtchev@adacore.com>
499
be7552fc 500 * gnat_rm.texi: Add an entry for restriction No_Finalization.
b3c33641
AC
501
5022011-10-24 Ed Schonberg <schonberg@adacore.com>
503
504 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): If the
505 current instance is within the one that contains the generic,
506 the freeze node for the current one must appear in the current
507 declarative part. Ditto if the current instance is within another
508 package instance. In both of these cases the freeze node of the
509 previous instance is not relevant.
510
5112011-10-24 Gary Dismukes <dismukes@adacore.com>
512
513 * switch-m.adb (Normalize_Compiler_Switches): Add recognition
514 of AAMP-specific switches -univ and -aamp_target.
515
5162011-10-24 Robert Dewar <dewar@adacore.com>
517
518 * a-tienau.adb (Put): Deal properly with limited line length.
519
5202011-10-24 Robert Dewar <dewar@adacore.com>
521
522 * sem_warn.adb, sem_ch12.adb: Minor reformatting.
523
30e1709c 5242011-10-24 Tristan Gingold <gingold@adacore.com>
8263e17a
TG
525
526 * gcc-interface/Makefile.in: Use GNU ld switches to generate map files
527 on AIX.
528
12b4d338
AC
5292011-10-24 Ed Schonberg <schonberg@adacore.com>
530
531 * sem_ch12.adb (Earlier): make available globally. If both
532 nodes have the same sloc, the freeze node that does not come
533 from source is the later one.
534 (True_Parent): Make available globally.
535 (Previous_Instance): Subsidiary of
536 Insert_Freeze_Node_For_Instance, to check whether the generic
537 parent of the current instance is declared within a previous
538 instance in the same unit or declarative part, in which case the
539 freeze nodes of both instances must appear in order to prevent
540 elaboration problems in gigi.
541 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): A stub is a
542 freeze point, and the freeze node of a preceding instantiation
543 must be inserted before it.
544
5452011-10-24 Robert Dewar <dewar@adacore.com>
546
547 * checks.ads, checks.adb: Add handling of Synchronization_Check
548 * debug.adb: Add doc for -gnatd.d and -gnatd.e (disable/enable
549 atomic sync).
550 * exp_ch2.adb (Expand_Entity_Reference): Set Atomic_Sync_Required
551 flag Minor code reorganization.
552 * opt.ads (Warn_On_Atomic_Synchronization): New switch.
553 * par-prag.adb: Add dummy entries for pragma
554 Disable/Enable_Atomic_Synchronization.
555 * sem_prag.adb (Process_Suppress_Unsuppress): Handle
556 case of Atomic_Synchronization specially (not suppressed
557 by All_Checks, cannot be set from Source).
558 (Pragma Disable/Enable_Atomic_Synchronization): Add processing.
559 * sinfo.ads, sinfo.adb: Add Atomic_Sync_Required flag
560 * snames.ads-tmpl: Add entry for Atomic_Synchronization Add
561 entry for pragma Disable/Enable_Atomic_Synchronization
562 * switch-c.adb: The -gnatp switch does not disable
563 Atomic_Synchronization Add -gnatep switch to disable
564 Atomic_Synchronization.
565 * types.ads: Add entry for Synchronization_Check
566 * usage.adb: Add line for -gnated switch
567 * warnsw.adb: Settings for Warn_On_Atomic_Synchronization
568
08ce7bb8
AC
5692011-10-24 Geert Bosch <bosch@adacore.com>
570
be7552fc
EB
571 * s-gearop.adb (Back_Substitute): Avoid overflow if matrix bounds start
572 at Integer'First.
08ce7bb8
AC
573
5742011-10-24 Robert Dewar <dewar@adacore.com>
575
be7552fc 576 * sem_ch12.adb, s-gearop.adb: Minor reformatting.
08ce7bb8
AC
577
5782011-10-24 Robert Dewar <dewar@adacore.com>
579
be7552fc
EB
580 * warnsw.adb: Add some missing warnings to Set_GNAT_Mode_Warnings.
581 * warnsw.ads: Add comments to Set_GNAT_Mode_Warnings.
08ce7bb8 582
292689c2
AC
5832011-10-24 Emmanuel Briot <briot@adacore.com>
584
585 * prj-proc.adb (Process_Expression_Variable_Decl): No special
586 handling for Project_Path unless it is an attribute.
587
5882011-10-24 Javier Miranda <miranda@adacore.com>
589
590 * sem_ch12.adb (Check_Hidden_Primitives): New subprogram.
591 (Install_Hidden_Primitives): New subprogram.
592 (Restore_Hidden_Primitives): New subprogram.
593 (Analyze_Formal_Package_Declaration,
594 Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
595 Invoke Check_Hidden_Primitives after every call to
596 Analyze_Associations, and invoke Restore_Hidden_Primitives to
597 restore their visibility after processing the instantiation.
598 (Instantiate_Package_Body): Install visible primitives before
599 analyzing the instantiation and uninstall them to restore their
600 visibility when the instantiation has been analyzed.
601 * sem_util.ads, sem_util.adb (Add_Suffix): New subprogram
602 (Remove_Suffix): New subprogram
603 * sem_ch3.adb (Derive_Subprogram): When handling
604 a derived subprogram for the instantiation of a formal derived
605 tagged type, inherit the dispatching attributes from the actual
606 subprogram (not from the parent type).
607
db4b3c49
AC
6082011-10-24 Vasiliy Fofanov <fofanov@adacore.com>
609
610 * gnat_ugn.texi: Document explicit use of XDECGNAT library.
611
6122011-10-24 Hristian Kirtchev <kirtchev@adacore.com>
613
614 * exp_ch3.adb (Build_Assignment): Add local constant N_Loc and
615 update its uses.
616 (Build_Discriminant_Assignments): Add local variable D_Loc and update
617 its uses.
618 (Build_Init_Statements): Add local variables Comp_Loc, Decl_Loc and
619 Var_Loc and update their uses.
620 (Build_Record_Init_Proc): Code reformatting.
621 (Increment_Counter): Add formal parameter Loc.
622 (Make_Counter): Add formal parameter Loc.
623
6242011-10-24 Eric Botcazou <ebotcazou@adacore.com>
625
626 * sem_disp.adb (Covers_Some_Interface): Fix typo.
627
6282011-10-24 Matthew Heaney <heaney@adacore.com>
629
be7552fc
EB
630 * a-cuprqu.adb, a-cbprqu.adb (Dequeue_Only_High_Priority): Fix sense
631 of predicate.
db4b3c49
AC
632
6332011-10-24 Yannick Moy <moy@adacore.com>
634
635 * sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Test_Case):
636 Translate arguments in positional notation into pragma argument
637 association arguments for the generated pragma.
638
6392011-10-24 Arnaud Charlet <charlet@adacore.com>
640
641 * exp_ch5.adb: Fix minor typo.
642
6432011-10-24 Ed Schonberg <schonberg@adacore.com>
644
645 * sem_ch3.adb (Is_Visible_Component): Refine predicate for
646 the case of a component reference in an instance body, when the
647 enclosing type is private.
648
86f0e17a
AC
6492011-10-24 Sergey Rybin <rybin@adacore.com frybin>
650
651 * gnat_ugn.texi: For gnatelim, move the note about using the GNAT
652 driver for getting the project support into gnatelim section.
653
6542011-10-24 Robert Dewar <dewar@adacore.com>
655
be7552fc 656 * gnat_rm.texi: Minor correction to documentation on address clause.
86f0e17a
AC
657
6582011-10-24 Hristian Kirtchev <kirtchev@adacore.com>
659
660 * s-finmas.adb (Attach): Synchronize and call the unprotected version.
661 (Attach_Unprotected): New routine.
662 (Delete_Finalize_Address): Removed.
663 (Delete_Finalize_Address_Unprotected): New routine.
664 (Detach): Synchronize and call the unprotected version.
665 (Detach_Unprotected): Remove locking.
666 (Finalize): Add various comment on synchronization. Lock the critical
667 region and call the unprotected versions of routines.
668 (Finalize_Address): Removed.
669 (Finalize_Address_Unprotected): New routine.
670 (Set_Finalize_Address): Synchronize and call
671 the unprotected version.
672 (Set_Finalize_Address_Unprotected): New routine.
673 (Set_Heterogeneous_Finalize_Address): Removed.
674 (Set_Heterogeneous_Finalize_Address_Unprotected): New routine.
675 (Set_Is_Heterogeneous): Add comment on synchronization and
676 locking.
677 * s-finmas.ads: Flag Finalization_Started is no longer atomic
678 because synchronization uses task locking / unlocking.
679 (Attach): Add comment on usage.
680 (Attach_Unprotected): New routine.
681 (Delete_Finalize_Address): Renamed to
682 Delete_Finalize_Address_Unprotected.
683 (Detach): Add comment on usage.
684 (Detach_Unprotected): New routine.
685 (Finalize_Address): Renamed to Finalize_Address_Unprotected.
686 (Set_Finalize_Address): Add comment on usage.
687 (Set_Finalize_Address_Unprotected): New routine.
688 (Set_Heterogeneous_Finalize_Address): Renamed to
689 Set_Heterogeneous_Finalize_Address_Unprotected.
690 * s-stposu.adb (Allocate_Any_Controlled): Add local variable
691 Allocation_Locked. Add various comments on synchronization. Lock
692 the critical region and call the unprotected version of
693 routines.
694 (Deallocate_Any_Controlled): Add various comments on
695 synchronization. Lock the critical region and call the unprotected
696 version of routines.
697
6982011-10-24 Ed Schonberg <schonberg@adacore.com>
699
700 * sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type
701 are universal and must carry the corresponding type.
702 * sem_eval.adb (Check_Non_Static_Context): If the type of the
703 expression is universal real, as may be the case for a fixed point
704 expression with constant operands in the context of a conversion,
705 there is nothing to check.
706 * s-finmas.adb: Minor reformatting
707
be98aaf0
EB
7082011-10-23 Eric Botcazou <ebotcazou@adacore.com>
709
710 * gcc-interface/decl.c (create_concat_name): Add explicit cast.
711
e45c0886
EB
7122011-10-20 Eric Botcazou <ebotcazou@adacore.com>
713
714 * gcc-interface/Make-lang.in (GNATLIBFLAGS, GNATLIBCFLAGS, THREAD_KIND,
715 TRACE): Reintroduce.
716 (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o,
717 ada/initialize.o, ada/raise.o): Reintroduce explicit compilation rules.
718
27ab5bd8
EB
7192011-10-20 Eric Botcazou <ebotcazou@adacore.com>
720
721 * gcc-interface/trans.c (lhs_or_actual_p): New predicate.
722 (unchecked_conversion_nop): Use it.
723 (gnat_to_gnu): Likewise.
724
b7562769
EB
7252011-10-20 Eric Botcazou <ebotcazou@adacore.com>
726
727 * back_end.adb (Call_Back_End): Pass the maximum logical line number
728 instead of the maximum physical line number to gigi.
729 * gcc-interface/trans.c (Sloc_to_locus): Cope with line zero.
730
53e7c794 7312011-10-16 Tom Tromey <tromey@redhat.com>
46427374
TT
732 Dodji Seketeli <dodji@redhat.com>
733
be7552fc
EB
734 * gcc-interface/trans.c (gigi, Sloc_to_locus): Adjust to use the new
735 public ordinary map interface.
46427374 736
ea10ca9c
AC
7372011-10-16 Tristan Gingold <gingold@adacore.com>
738
53e7c794 739 * link.c (_AIX): Add support for GNU ld.
ea10ca9c
AC
740
7412011-10-16 Fedor Rybin <frybin@adacore.com>
742
743 * gnat_ugn.texi: Fixing gnattest example names in the doc.
744 Adding explanation to additional tests usage.
745
7462011-10-16 Robert Dewar <dewar@adacore.com>
747
748 * exp_ch6.adb, sem_ch6.adb: Minor reformatting.
749
7502011-10-16 Eric Botcazou <ebotcazou@adacore.com>
751
752 * a-convec.adb: Fix minor inconsistencies.
753
7542011-10-16 Matthew Heaney <heaney@adacore.com>
755
756 * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (package
757 Implementation): Specify pragma Implementation_Defined.
758
c225ba50
NR
7592011-10-15 Nicolas Roche <roche@adacore.com>
760
761 * gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using
762 either rtp-smp or ravenscar-cert-rtp runtimes.
763
3e452820
AC
7642011-10-15 Bob Duff <duff@adacore.com>
765
766 * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
767 Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr
768 is available.
769 (Expand_N_Extended_Return_Statement): Do not create a renaming of the
770 build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is
771 available.
772 (Make_Build_In_Place_Call_In_Allocator): Add the user-defined
773 pool only if RE_Root_Storage_Pool_Ptr is available.
774 (Make_Build_In_Place_Call_In_Object_Declaration): Do not add a
775 pool actual unless RE_Root_Storage_Pool_Ptr is available.
776 * sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool
777 formal only if RE_Root_Storage_Pool_Ptr is available.
778
7792011-10-15 Matthew Heaney <heaney@adacore.com>
780
781 * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue
782 type): Specify Priority aspect for protected type.
783
b7539c3b
AC
7842011-10-14 Ed Schonberg <schonberg@adacore.com>
785
786 * exp_disp.adb (Check_Premature_Freezing): If an untagged type
787 is a generic actual, it is a subtype of a type that was frozen
788 by the instantiation, and even if not marked frozen it does not
789 affect the construction of the dispatch table.
790
7912011-10-14 Robert Dewar <dewar@adacore.com>
792
793 * make.adb, mlib-utl.adb, sem_util.adb, sem_ch4.adb: Minor code
794 reformatting.
795 * s-rident.ads: Add missing Compiler_Unit pragma.
796
af89615f
AC
7972011-10-14 Gary Dismukes <dismukes@adacore.com>
798
799 * sem_res.adb: Minor reformatting.
800
8012011-10-14 Hristian Kirtchev <kirtchev@adacore.com>
802
803 * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
804 Code and comment reformatting. Use BIP_Task_Master
805 when creating a _master.
806 (BIP_Formal_Suffix): Code reformatting. Correct the case for
807 BIP_Task_Master.
808 (Make_Build_In_Place_Call_In_Object_Declaration): Use
809 BIP_Task_Master when creating a reference to the enclosing
810 function's _master formal.
811 (Move_Activation_Chain): Use BIP_Task_Master when creating a reference
812 to the _master.
813 * exp_ch6.ads: Change BIP_Master to BIP_Task_Master.
814 (Needs_BIP_Finalization_Master): Alphabetized.
815 * sem_ch6.adb (Create_Extra_Formals): Update the usage of
816 BIP_Task_Master.
817
8182011-10-14 Ed Schonberg <schonberg@adacore.com>
819
820 * par-ch6.adb (P_Return_Object_Declaration): In Ada 2012 mode,
821 reject an aliased keyword on the object declaration of an extended
822 return statement. In older versions of the language indicate
823 that this is illegal in the standard.
824
8252011-10-14 Pascal Obry <obry@adacore.com>
826
827 * sem_util.adb, sem_ch4.adb: Minor reformatting.
828
8292011-10-14 Ed Schonberg <schonberg@adacore.com>
830
831 * sem_ch13.adb: Recognize properly procedure calls that are
832 transformed into code statements.
833
8342011-10-14 Vincent Celier <celier@adacore.com>
835
836 * projects.texi: Minor fix in project example.
837
f2d10a02
AC
8382011-10-14 Ed Schonberg <schonberg@adacore.com>
839
840 * sem_util.adb: Return objects are aliased if their type is
841 immutably limited as per AI05-0053.
842
8432011-10-14 Gary Dismukes <dismukes@adacore.com>
844
845 * exp_ch4.adb (Expand_N_Op_And): Remove Short_Circuit_And_Or
846 expansion code (moved to sem_res) (Expand_N_Op_Or): Remove
847 Short_Circuit_And_Or expansion code (moved to sem_res).
848 * sem_res.adb (Resolve_Logical_Op): Add code to rewrite Boolean
849 "and" and "or" operators as short-circuit "and then" and "or
850 else", when pragma Short_Circuit_And_Or is active.
851
2fcc44fa
AC
8522011-10-13 Robert Dewar <dewar@adacore.com>
853
854 * sem_ch9.adb, sem_util.adb, sem_util.ads, exp_ch6.adb, sem_ch4.adb,
855 sem_ch6.adb, exp_ch3.adb: Minor reformatting.
856
8572011-10-13 Arnaud Charlet <charlet@adacore.com>
858
859 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-ngcoar.o.
860
8612011-10-13 Jerome Guitton <guitton@adacore.com>
862
863 * sysdep.c (__gnat_get_task_options): Re-enable VX_SPE_TASK on vThreads
864
8652011-10-13 Eric Botcazou <ebotcazou@adacore.com>
866
867 * a-convec.ads (Cursor): Minor reformatting.
868 * a-convec.adb (Next): Fix minor inconsistencies.
869 (Previous): Likewise.
870
9b62eb32
AC
8712011-10-13 Ed Schonberg <schonberg@adacore.com>
872
873 * sem_util.ads, sem_util.adb (Available_Full_View_Of_Component):
874 New predicate to determine whether some operations on an array
875 type are available when the full view of its component may differ
876 from the view of the point of the array declaration.
877 * sem_ch4.adb (Find_Equality_Types): Use
878 Available_Full_View_Of_Component.
879 * sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto
880
8812011-10-13 Ed Schonberg <schonberg@adacore.com>
882
883 * sem_ch9.adb: Analyze aspects while discriminants of protected
884 type are visible.
885
8862011-10-13 Geert Bosch <bosch@adacore.com>
887
888 * Makefile.rtl (GNATRTL_TASKING_OBJECTS): Add
889 a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these no
890 longer depend on an external library.
891 * gcc-interface/Makefile.in (GNATRTL_LINEARALGEBRA_OBJS): Remove
892 a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o.
893 Update dependencies.
894 * gcc-interface/Make-lang.in: Update dependencies.
895
1a36a0cd
AC
8962011-10-13 Cyrille Comar <comar@adacore.com>
897
898 * gnat_ugn.texi: Minor editing.
899
9002011-10-13 Vincent Celier <celier@adacore.com>
901
902 * projects.texi: Add documentation on packages and attributes
903 that are inherited from a project being extended into the
904 extended project.
905
9062011-10-13 Hristian Kirtchev <kirtchev@adacore.com>
907
908 * exp_ch3.adb (Build_Master): Rewritten.
909 (Expand_N_Full_Type_Declaration): Reformat the declarative
910 region. Update the call to Build_Master_Renaming.
911 (Expand_Previous_Access_Type): Rewritten.
912 * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
913 Add local constant Result_Subt and update related usage.
914 (Expand_N_Extended_Return_Statement): Add local constant
915 Result_Subt and update related usage.
916 * exp_ch9.adb (Build_Activation_Chain): Rewritten to use the
917 new context detection mechanism.
918 (Build_Class_Wide_Master):
919 Use Insert_Action to add the renaming into the tree.
920 (Build_Master_Entity): Rewritten to use the new context detection
921 mechanism.
922 (Build_Master_Renaming): Add formal parameter Ins_Nod
923 and related usage. Use Insert_Action to add the renaming into the
924 tree.
925 (Find_Enclosing_Context): New subsidiary routine. Rather
926 than relying on enclosing scopes, this routine looks at the
927 tree structure to figure out the proper context for a _master
928 or a _chain. This approach eliminates the issues with transient
929 scopes which have not been converted into blocks.
930 * exp_ch9.ads (Build_Master_Entity): Change parameter profile
931 to better reflect the new usage. Update the related comment.
932 (Build_Master_Renaming): Add formal parameter Ins_Nod. Update
933 the comment on usage.
934 * sem_ch3.adb (Access_Definition): Update the calls to
935 Build_Master_Entity and Build_Master_Renaming.
936 * sem_ch6.adb (Create_Extra_Formals): Add local variable
937 Full_Subt. Code reformatting.
938 * sem_util.adb (Is_Iterator): Alphabetized.
939 (Is_LHS): Alphabetized.
940 (Is_Limited_Class_Wide_Type): New routine.
941 * sem_util.ads (Is_Limited_Class_Wide_Type): New routine.
942
a5917ffb
GB
9432011-10-13 Geert Bosch <bosch@adacore.com>
944
945 * a-ngrear.adb (Solve): Make generic and move to
946 System.Generic_Array_Operations.
947 * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution):
948 New generic solvers to compute a vector resp. matrix Y such
949 that A * Y = X, approximately.
950 * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution):
951 Implement using Forward_Eliminate and Back_Substitute
952 * a-ngcoar.adb: Reimplement in pure Ada to remove dependencies
953 on BLAS and LAPACK.
954 * a-ngcoar.ads ("abs"): Fix return type to be real.
955
574ec945
EB
9562011-10-13 Eric Botcazou <ebotcazou@adacore.com>
957
958 PR ada/50589
959 * s-linux-alpha.ads: Do not "with" Interfaces.C.
960 * s-linux-sparc.ads: Likewise.
961
8668ea36
GB
9622011-10-13 Geert Bosch <bosch@adacore.com>
963
964 * s-gearop.ads (Forward_Eliminate): Add "abs" formal function
965 returning a Real.
966 * s-gearop.adb (Forward_Eliminate): Remove local "abs" function
967 and use formal.
968 * a-ngrear.adb (Forward_Eliminate): Adjust instantiation for
969 new profile.
970
edcf5983
GB
9712011-10-13 Geert Bosch <bosch@adacore.com>
972
973 * a-ngrear.adb, s-gearop.adb, s-gearop.ads (Sqrt): Make generic and
974 move to System.Generic_Array_Operations.
975
a4935dea
GB
9762011-10-13 Geert Bosch <bosch@adacore.com>
977
978 * a-ngrear.adb ("abs"): Adjust for modified L2_Norm generic
979 * s-gearop.ads (L2_Norm): Change profile to be suitable for
980 Complex_Vector
981 * s-gearop.adb (L2_Norm): Reimplement using direct definition,
982 not inner product
983
3e7302c3
AC
9842011-10-13 Robert Dewar <dewar@adacore.com>
985
986 * exp_ch5.adb, sem_ch3.adb, impunit.adb, impunit.ads, sem_type.adb,
987 prj-proc.adb, exp_ch9.adb, s-regpat.adb, sem_ch10.adb, sem_prag.adb,
988 sem_ch12.adb, freeze.adb, sem_attr.adb, sem_attr.ads, gnatlink.adb,
989 par-ch6.adb, exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, sem_ch8.adb,
990 par-util.adb, sem_ch13.adb, lib-xref.adb, g-trasym.adb, g-trasym.ads,
991 exp_aggr.adb, s-taprop-posix.adb: Minor reformatting.
992
9932011-10-13 Geert Bosch <bosch@adacore.com>
994
995 * s-gearop.adb: Minor comment additions.
996
8417f4b2
AC
9972011-10-13 Fedor Rybin <frybin@adacore.com>
998
999 * gnat_ugn.texi: Add gnattest section.
1000
10012011-10-13 Ed Schonberg <schonberg@adacore.com>
1002
1003 * freeze.adb: Do not create body of renaming if declaration has
1004 errors.
1005
10062011-10-13 Olivier Hainque <hainque@adacore.com>
1007
1008 * init.c (__gnat_error_handler - vxworks case): Restrict sigtramp calls
1009 further, to the ppc+kernel case only.
1010
10112011-10-13 Hristian Kirtchev <kirtchev@adacore.com>
1012
1013 * exp_ch4.adb (Expand_N_Allocator): Comment reformatting.
1014 * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
1015 Do not create a pool formal on .NET/JVM.
1016 (Expand_N_Extended_Return_Statement): Alphabetize local
1017 variables. Do not create a renaming of the build-in-place pool
1018 parameter on .NET/JVM. (Make_Build_In_Place_Call_In_Allocator):
1019 Add the user-defined pool only on non-VM targets.
1020 (Make_Build_In_Place_Call_In_Object_Declaration): Alphabetize
1021 local variables. Do not add a pool actual on .NET/JVM.
1022 * sem_ch6.adb: Add with and use clause for Targparm.
1023 (Create_Extra_Formals): Add build-in-place pool formal only on
1024 non-VM targets.
1025 * rtsfind.ads: Alphabetize entries.
1026
4674dd21
AC
10272011-10-13 Sergey Rybin <rybin@adacore.com>
1028
1029 * gnat_ugn.texi: Minor correction.
1030
10312011-10-13 Ed Schonberg <schonberg@adacore.com>
1032
1033 * sem_ch8.adb: Minor error message improvement.
1034
10352011-10-13 Robert Dewar <dewar@adacore.com>
1036
1037 * a-cbprqu.adb, a-ciorma.adb, exp_ch3.adb: Minor reformatting.
1038
95aeda79
GD
10392011-10-13 Gary Dismukes <dismukes@adacore.com>
1040
1041 * exp_ch5.adb (Expand_N_Loop_Statement): For the transformation
1042 of a for loop for an enumeration type with an enumeration rep
1043 clause, which involves moving the original loop parameter into
1044 a nested block, the loop parameter's entity must be removed from
1045 the entity list of the loop scope.
1046
200b7162
BD
10472011-10-13 Bob Duff <duff@adacore.com>
1048
1049 * exp_ch6.ads (BIP_Storage_Pool): New "extra implicit parameter"
1050 that gets passed in the same cases where BIP_Alloc_Form is passed
1051 (caller-unknown-size results). BIP_Storage_Pool is used when
1052 BIP_Alloc_Form = User_Storage_Pool. In that case, a pointer
1053 to the user-defined storage pool is passed at the call site,
1054 and this pool is used in callee to allocate the result.
1055 * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): New
1056 version of Add_Alloc_Form_Actual_To_Build_In_Place_Call. Passes
1057 the additional BIP_Storage_Pool actual.
1058 (Expand_N_Extended_Return_Statement): Allocate the function
1059 result using the user-defined storage pool, if BIP_Alloc_Form =
1060 User_Storage_Pool.
1061 * sem_ch6.adb: Add the "extra formal" for BIP_Storage_Pool.
1062 * exp_ch4.adb: Don't overwrite storage pool set by
1063 Expand_N_Extended_Return_Statement.
1064 * s-stopoo.ads, rtsfind.ads (Root_Storage_Pool_Ptr): New type,
1065 for use in build-in-place function calls within allocators
1066 where the access type has a user-defined storage pool.
1067
9f8d1e5c
AC
10682011-10-13 Sergey Rybin <rybin@adacore.com>
1069
1070 * gnat_ugn.texi, vms_data.ads: Add an option to control enumeration
1071 literal casing.
1072
10732011-10-13 Nicolas Roche <roche@adacore.com>
1074
be7552fc
EB
1075 * gnatlink.adb: Ensure that -mrtp is passed when runtime name ends
1076 with 'rtp'.
9f8d1e5c
AC
1077
10782011-10-13 Ed Schonberg <schonberg@adacore.com>
1079
be7552fc
EB
1080 * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Take into
1081 account that an unchecked union type can be limited.
9f8d1e5c
AC
1082
10832011-10-13 Olivier Hainque <hainque@adacore.com>
1084
1085 * init.c (__gnat_error_handler) <VxWorks version>: Add comments on
1086 the use of the signal trampoline for PPC in the sjlj case as well.
1087 Add legitimate casts, preventing compile time warnings on the
1088 (sighandler *) profile.
1089
10902011-10-13 Yannick Moy <moy@adacore.com>
1091
be7552fc
EB
1092 * sem_aggr.adb (Resolve_Aggr_Expr): Always perform semantic analysis
1093 in Alfa mode.
9f8d1e5c
AC
1094
10952011-10-13 Ed Schonberg <schonberg@adacore.com>
1096
1097 * sem_ch3.adb (OK_For_Limited_Init_In_05): Conditional and case
1098 expressions are legal limited return values if each one of their
1099 dependent expressions are legal.
1100
11012011-10-13 Ed Schonberg <schonberg@adacore.com>
1102
1103 * sem_ch6.adb (Analyze_Procedure_Call_Statement): In Ada 2012 mode,
1104 if the prefix of the call is a qualified expression, rewrite as
1105 a code statement.
1106 * sem_ch13.adb (Analyze_Code_Statement): In Ada 2012 mode, the
1107 code statement is legal if it is a rewriting of a procedure call.
1108
11092011-10-13 Ed Schonberg <schonberg@adacore.com>
1110
1111 * exp_aggr.adb (Flatten): If a component association has a box,
1112 assume that aggregate is not static.
1113 (Safe_Aggregate): If a component association in a non-limited
1114 aggregate has a box, assume that it cannot be expanded in place.
1115
11162011-10-13 Vincent Celier <celier@adacore.com>
1117
1118 * prj-conf.adb (Get_Or_Create_Configuration_File): Call
1119 Process_Project_Tree_Phase_1 with Packages_To_Check.
1120 (Process_Project_And_Apply_Config): Ditto
1121 * prj-part.ads, prj-part.adb, prj-pars.ads, prj-pars.adb (Parse):
1122 Remove default for argument Packages_To_Check.
1123 * prj-proc.adb (Recursive_Process): New argument
1124 Packages_To_Check.
1125 (Process): Ditto.
1126 (Process_Project_Tree_Phase_1): Ditto.
1127 (Recursive_Project.Process_Aggregated_Projects): Call
1128 Prj.Part.Parse and Process_Project_Tree_Phase_1 with
1129 Packages_To_Check.
1130 * prj-proc.ads (Process): New argument Packages_To_Check
1131 (Process_Project_Tree_Phase_1): Ditto
1132
46f8e1ac
AC
11332011-10-13 Arnaud Charlet <charlet@adacore.com>
1134
1135 * gcc-interface/Makefile.in: Fix typo.
1136
8097203f
AC
11372011-10-13 Ed Schonberg <schonberg@adacore.com>
1138
1139 * sem_ch12.adb (Analyze_Formal_{Floating_Type,
1140 Signed_Integer_Type, Decimal_Fixed_Point_Type, Discrete_Type}):
1141 Use sloc of defining identifier of farmal type declaration,
1142 as sloc of generated internal entity, to prevent misplaced
1143 references in ali.
1144
11452011-10-13 Ed Schonberg <schonberg@adacore.com>
1146
1147 * sem_intr.adb (Check_Intrinsic_Operator): Check that type
1148 is fully defined before checking that it is a numeric type.
1149
11502011-10-13 Ed Schonberg <schonberg@adacore.com>
1151
1152 * sem_aggr.adb (Resolve_Record_Aggregate): If a component
1153 association for component X has a box, then X is covered in the
1154 aggregate even if there is not default value for X in the type
1155 declaration, and X has to be default-initialized.
1156
11572011-10-13 Ed Schonberg <schonberg@adacore.com>
1158
be7552fc
EB
1159 * sem_attr.adb (Check_Enum_Image, Analyze_Attribute case 'Value): Mark
1160 literals as referenced only if reference is in current source unit.
8097203f
AC
1161
11622011-10-13 Matthew Heaney <heaney@adacore.com>
1163
1164 * a-csquin.ads (Enque, Dequeue): Mark interface operations as entries.
1165
11662011-10-13 Olivier Hainque <hainque@adacore.com>
1167
1168 * sigtramp.h: New file. Prototype and spec of the signal
1169 trampoline to be called by an established handler to provide
1170 dwarf call frame info before the real signal processing code.
1171 * sigtramp-ppcvxw.c: New file. Implementation of the signal
1172 trampoline for ppc-vxworks.
1173 * init.c (vxworks section): Use it for ppc.
1174
e192a2cd
AC
11752011-10-13 Thomas Quinot <quinot@adacore.com>
1176
1177 * par-ch2.adb, par.adb, par-util.adb, par-ch3.adb
1178 (Check_Future_Identifier): New subprogram,
1179 factors duplicated code from Par.Ch2.P_Identifier and
1180 Par.Ch3.P_Defining_Identifier.
1181
11822011-10-13 Thomas Quinot <quinot@adacore.com>
1183
1184 * s-taprop-posix.adb (Initialize): Always raise Storage_Error
1185 if we fail to initialize CV attributes or CV.
1186
11872011-10-13 Thomas Quinot <quinot@adacore.com>
1188
1189 * s-tasren.adb (Timed_Selective_Wait, case
1190 Accept_Alternative_Selected): Use Defer_Abort_Nestable, since
1191 we know abortion is already deferred.
1192
11932011-10-13 Hristian Kirtchev <kirtchev@adacore.com>
1194
1195 * exp_ch3.adb (Build_Class_Wide_Master): Moved to exp_ch9.
1196 (Build_Master_Renaming (function)): Removed.
1197 (Build_Master_Renaming (procedure)): Moved to exp_ch9.
1198 (Expand_Full_Type_Declaration): Alphabetize
1199 variables. Reformatting of code and comments. Rewrite the
1200 section on processing of anonymous access-to-task types in
1201 record components.
1202 * exp_ch3.ads (Build_Class_Wide_Master): Moved to exp_ch9.
1203 (Build_Master_Renaming): Moved to exp_ch9.
1204 * exp_ch9.adb (Build_Class_Wide_Master): Moved from exp_ch3.
1205 (Build_Master_Entity): Add formal parameter
1206 Use_Current. Reformatting of code and comments.
1207 (Build_Master_Renaming): Moved from exp_ch3.
1208 * exp_ch9.ads (Build_Class_Wide_Master): Moved from
1209 exp_ch3. Update comment on usage.
1210 (Build_Master_Entity):
1211 Add formal parameter Use_Current. Update comment on usage.
1212 (Build_Master_Renaming): Moved from exp_ch3.
1213 * sem_ch3.adb (Access_Definition): Remove redundant code to
1214 create a _master and a renaming.
1215
12162011-10-13 Ed Schonberg <schonberg@adacore.com>
1217
1218 * lib-xref.adb: Do no emit reference to overridden operation,
1219 if it is internally generated.
1220
12212011-10-13 Vincent Celier <celier@adacore.com>
1222
1223 * bindgen.adb: Remove any processing related to g-trasym
1224 * Makefile.rtl: Add g-trasym.o to GNATRTL_NONTASKING_OBJS
1225 * mlib-prj.adb: Remove any processing related to g-trasym.
1226
0cfaf83f
EB
12272011-10-12 Eric Botcazou <ebotcazou@adacore.com>
1228
1229 * sem_util.adb (Denotes_Same_Prefix): Fix fatal warning.
1230 * gcc-interface/Make-lang.in (WARN_ADAFLAGS): New.
1231 (ALL_ADAFLAGS): Include WARN_ADAFLAGS.
1232 (ADA_FLAGS_TO_PASS): Likewise.
1233 (COMMON_FLAGS_TO_PASS): New.
1234 (ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS. In the regular
1235 native case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS.
1236 (gnatlib): Use COMMON_FLAGS_TO_PASS.
1237 (ada.install-common): Likewise.
1238 (install-gnatlib): Likewise.
1239 (install-gnatlib-obj): Likewise.
1240 (gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well.
1241 (gnat-cross): Delete.
1242 (gnatboot): Likewise.
1243 (gnatboot2): Likewise.
1244 (gnatboot3): Likewise.
1245 (gnatstage1): Likewise.
1246 (gnatstage2): Likewise.
1247 * gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise.
1248 (MOST_ADAFLAGS): Likewise.
1249 (LOOSE_CFLAGS): Likewise.
1250 (gnat-cross): Likewise.
1251 (GNATLIBFLAGS): Add -W -Wall.
1252 (GNATLIBCFLAGS_FOR_C): Likewise.
1253 * gcc-interface/lang.opt: Remove C-specific warnings. Add doc lines.
1254 * gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases.
1255
722356ce
EB
12562011-10-12 Eric Botcazou <ebotcazou@adacore.com>
1257
1258 * gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions.
1259 (push_range_check_info): Likewise.
1260 (gnat_to_gnu) <N_Code_Statement>: Likewise.
1261 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.
1262 (gnat_invariant_expr): Likewise.
1263 * gcc-interface/utils.c (compute_related_constant): Likewise.
1264 (max_size): Fix handling of SAVE_EXPR.
1265 (remove_conversions): Fix formatting.
1266
15bf7d19
EB
12672011-10-12 Eric Botcazou <ebotcazou@adacore.com>
1268
1269 * gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag.
1270 (DECL_INDUCTION_VAR): New macro.
1271 (SET_DECL_INDUCTION_VAR): Likewise.
1272 * gcc-interface/gigi.h (convert_to_index_type): Declare.
1273 (gnat_invariant_expr): Likewise.
1274 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If this is a loop
1275 parameter, set DECL_LOOP_PARM_P on it.
1276 * gcc-interface/misc.c (gnat_print_decl) <VAR_DECL>: If DECL_LOOP_PARM_P
1277 is set, print DECL_INDUCTION_VAR instead of DECL_RENAMED_OBJECT.
1278 * gcc-interface/trans.c (gnu_loop_label_stack): Delete.
1279 (struct range_check_info_d): New type.
1280 (struct loop_info_d): Likewise.
1281 (gnu_loop_stack): New stack.
1282 (Identifier_to_gnu): Set TREE_READONLY flag on the first dereference
1283 built for a by-double-ref read-only parameter. If DECL_LOOP_PARM_P
1284 is set, do not test DECL_RENAMED_OBJECT.
1285 (push_range_check_info): New function.
1286 (Loop_Statement_to_gnu): Push a new struct loop_info_d instead of just
1287 the label. Reference the label and the iteration variable from it.
1288 Build the special induction variable in the unsigned version of the
1289 size type, if it is larger than the base type. And attach it to the
1290 iteration variable if the latter isn't by-ref. In the iteration scheme
1291 case, initialize the invariant conditions in front of the loop if
1292 deemed profitable. Use gnu_loop_stack.
1293 (gnat_to_gnu) <N_Exit_Statement>: Use gnu_loop_stack.
1294 <N_Raise_Constraint_Error>: Always process the reason. In the range
1295 check and related cases, and if loop unswitching is enabled, compute
1296 invariant conditions and push this information onto the stack.
1297 Do not translate again the condition if it has been already translated.
1298 * gcc-interface/utils.c (record_global_renaming_pointer): Assert that
1299 DECL_LOOP_PARM_P isn't set.
1300 (convert_to_index_type): New function.
1301 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Use it in order
1302 to convert the index from the base index type to sizetype.
1303 (gnat_invariant_expr): New function.
1304
e79983f4
MM
13052011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1306
1307 * gcc-interface/utils.c (def_builtin_1): Delete old interface with
1308 two parallel arrays to hold standard builtin declarations, and
1309 replace it with a function based interface that can support
15bf7d19 1310 creating builtins on the fly in the future.
e79983f4
MM
1311 * gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Ditto.
1312 (gnat_to_gnu): Ditto.
1313
228ee426
EB
13142011-10-07 Eric Botcazou <ebotcazou@adacore.com>
1315
1316 PR lto/50492
1317 * gcc-interface/gigi.h (gnat_pushdecl): Adjust comment.
1318 * gcc-interface/utils.c (global_context): New variable.
1319 (gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs
1320 that are either public external or at top level. Use "No" macro.
1321 (end_subprog_body): Call decl_function_context.
1322 (rest_of_subprog_body_compilation): Likewise.
1323
71196d4e
EB
13242011-10-07 Eric Botcazou <ebotcazou@adacore.com>
1325
1326 * gcc-interface/gigi.h (gnat_useless_type_conversion): Declare.
1327 (rest_of_subprog_body_compilation): Likewise.
1328 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: For renaming,
1329 test for useless conversions by means of gnat_useless_type_conversion.
1330 * gcc-interface/trans.c: Include bitmap.h and cgraph.h.
1331 (language_function): Add named_ret_val and other_ret_val.
1332 (f_named_ret_val): New macro.
1333 (f_other_ret_val): Likewise.
1334 (gigi): Call rest_of_subprog_body_compilation.
1335 (struct nrv_data): New structure.
1336 (is_nrv_p): New predicate.
1337 (prune_nrv_r): New helper function.
1338 (prune_nrv_in_block): New function.
1339 (finalize_nrv_r): New helper function.
1340 (finalize_nrv): New function.
1341 (return_value_ok_for_nrv_p): New predicate.
1342 (build_return_expr): If optimization is enabled, record candidates for
1343 the Named Return Value optimization.
1344 (build_function_stub): Call rest_of_subprog_body_compilation.
1345 (Subprogram_Body_to_gnu): If optimization is enabled and there are
1346 candidates, finalize the Named Return Value optimization.
1347 Call rest_of_subprog_body_compilation.
1348 (call_to_gnu): At the end, if a return value is needed, simplify the
1349 result before wrapping it up in a COMPOUND_EXPR.
1350 * gcc-interface/utils.c (end_subprog_body): Split into...
1351 (rest_of_subprog_body_compilation): ...this. New function.
1352 (gnat_useless_type_conversion): Likewise.
1353
885c4871
AC
13542011-10-06 Thomas Quinot <quinot@adacore.com>
1355
1356 * einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
1357 exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb,
1358 g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb,
1359 par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
1360 sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
1361 sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb,
1362 s-regpat.adb, s-tpopde-vms.ads: Minor reformatting.
1363 * s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD.
1364
13652011-10-06 Ed Schonberg <schonberg@adacore.com>
1366
1367 * a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container
1368 references.
1369
13702011-10-06 Matthew Heaney <heaney@adacore.com>
1371
1372 * a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb
1373 (Dequeue_Only_High_Priority): Protected procedure now implemented.
1374
13752011-10-06 Vincent Celier <celier@adacore.com>
1376
1377 * g-trasym.adb: Replace old implementation with the default
1378 implementation that returns list of addresses as "0x...".
1379 * g-trasym.ads: Update the list of platforms with the full
1380 capability. Indicate that there is a default implementation
1381 for other platforms.
1382 * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove.
1383 * gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there
1384 is now a default implementation for all platforms without the full
1385 capability.
1386
ce72a9a3
AC
13872011-10-06 Robert Dewar <dewar@adacore.com>
1388
1389 * a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb,
1390 a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb,
1391 a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and code
1392 reorganization (use conditional expressions).
1393
13942011-10-06 Robert Dewar <dewar@adacore.com>
1395
1396 * sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for
1397 floating divide by zero.
1398
13992011-10-06 Ed Schonberg <schonberg@adacore.com>
1400
1401 * sem_ch6.adb: Limited interfaces that are not immutably limited
1402 are OK in return statements.
1403
a912d7d9
IS
14042011-09-30 Iain Sandoe <iains@gcc.gnu.org>
1405
1406 * gcc-interface/Makefile.in (Darwin): Partial reversion of previous
1407 change to powerpc section.
1408
39ffb1f9
IS
14092011-09-29 Iain Sandoe <iains@gcc.gnu.org>
1410
1411 * gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS
1412 across the port.
1413
ffb35bbf
ES
14142011-09-27 Ed Schonberg <schonberg@adacore.com>
1415
1416 * a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads,
1417 a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads,
1418 a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and
1419 indefinite sets.
1420 * a-coorma.ads: Minor reformmating.
1421 * einfo.ads: Improve the comment describing the
1422 Directly_Designated_Type function.
1423 * a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite
1424 ordered maps.
1425 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
1426 dependencies.
1427
da124b6a
AC
14282011-09-27 Robert Dewar <dewar@adacore.com>
1429
1430 * a-comutr.ads: Minor reformatting.
1431
14322011-09-27 Ed Schonberg <schonberg@adacore.com>
1433
1434 * a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add children
1435 iterators to multiway trees.
1436
14372011-09-27 Yannick Moy <moy@adacore.com>
1438
1439 * debug.adb (d.D): New option for strict Alfa mode.
1440 * opt.ads (Strict_Alfa_Mode): New flag to interpret compiler
1441 permissions as strictly as possible.
1442 * sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict
1443 Alfa mode, now, interpret ranges of base types like GNAT does; in
1444 strict mode, simply change the range of the implicit base Itype.
1445 * gnat1drv.adb: Update comments. Set Strict_Alfa_Mode.
1446
706a4067
AC
14472011-09-27 Robert Dewar <dewar@adacore.com>
1448
1449 * exp_ch9.adb: Minor comment fixes.
1450
14512011-09-27 Ed Schonberg <schonberg@adacore.com>
1452
1453 * a-comutr.adb, a-comutr.ads: Add children iterators on multiway
1454 trees.
1455
05c1e7d2
AC
14562011-09-27 Eric Botcazou <ebotcazou@adacore.com>
1457
1458 * checks.adb (Apply_Scalar_Range_Check): Use Designated_Type
1459 instead of Directly_Designated_Type in the indirect array case.
1460
14612011-09-27 Robert Dewar <dewar@adacore.com>
1462
1463 * exp_util.adb, exp_aggr.adb: Minor reformatting.
1464
65e78a74
AC
14652011-09-27 Ed Schonberg <schonberg@adacore.com>
1466
1467 * sinfo.ads, par-ch3.adb: Minor comment update: aspect specification
1468 on subtype declarations.
1469 * exp_aggr.adb: Minor comment update.
1470
14712011-09-27 Eric Botcazou <ebotcazou@adacore.com>
1472
1473 * exp_util.adb (Safe_Prefixed_Reference): Remove always-false
1474 test in the N_Explicit_Dereference case. Fold double logical
1475 negation in the special loop case and conditionalize it on
1476 Variable_Ref being true.
1477
14782011-09-27 Ed Schonberg <schonberg@adacore.com>
1479
1480 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is a
1481 single protected object and the selector is a discriminant or an
1482 entry family, this is a non-overloaded candidate interpretation,
1483 and possible primitive operations of the type must not be
1484 examined.
1485
14862011-09-27 Arnaud Charlet <charlet@adacore.com>
1487
1488 * s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased.
1489
6f5add73
AC
14902011-09-27 Pascal Obry <obry@adacore.com>
1491
1492 * s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
1493 s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads:
1494 Add dummy definitions for pthread_rwlock_t
1495 and pthread_rwlockattr_t on all POSIX platforms.
1496 * s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock
1497 reference.
1498 (Finalize_Lock): Likewise.
1499 (Write_Lock): Likewise.
1500 (Unlock): Likewise.
1501
15022011-09-27 Tristan Gingold <gingold@adacore.com>
1503
1504 * s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for
1505 windows 64.
1506
64a63cd5
PO
15072011-09-27 Pascal Obry <obry@adacore.com>
1508
1509 * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads,
1510 s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads,
1511 s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads,
1512 s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads,
1513 s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
1514 s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads,
1515 s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads,
1516 s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb,
1517 s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb,
1518 s-taprop-posix.adb: Revert previous changes.
1519 (Lock): Now a record containing the two possible lock
1520 (mutex and read/write) defined in OS_Interface.
1521 * s-taprop-linux.adb (Finalize_Protection): Use r/w lock for
1522 'R' locking policy.
1523 (Initialize_Protection): Likewise.
1524 (Lock): Likewise.
1525 (Lock_Read_Only): Likewise.
1526 (Unlock): Likewise.
1527
f672a756
AC
15282011-09-27 Pascal Obry <obry@adacore.com>
1529
1530 * s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined as
1531 OS_Interface.pthread_rwlock_t.
1532
15332011-09-27 Robert Dewar <dewar@adacore.com>
1534
1535 * exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb,
1536 a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads,
1537 sem_ch5.adb, sem_util.adb: Minor reformatting.
1538
7a44cb69
PO
15392011-09-27 Pascal Obry <obry@adacore.com>
1540
1541 * s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock.
1542 (Finalize_Lock)[RW_Lock]: Likewise.
1543 (Write_Lock)[RW_Lock]: Likewise.
1544 (Unlock)[RW_Lock]: Likewise.
1545 (Read_Lock): Define L as RW_Lock (instead of Lock).
1546 * s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: New
1547 routine for r/w lock.
1548 (Finalize_Lock)[RW_Lock]: Likewise.
1549 (Write_Lock)[RW_Lock]: Likewise.
1550 (Unlock)[RW_Lock]: Likewise.
1551 (Read_Lock): Define L as RW_Lock (instead of Lock).
1552
1553 * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
1554 s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb,
1555 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
1556 (Initialize_Lock)[RW_Lock]: Same implementation as corresponding
1557 routine for standard lock.
1558 (Finalize_Lock)[RW_Lock]: Likewise.
1559 (Write_Lock)[RW_Lock]: Likewise.
1560 (Unlock)[RW_Lock]: Likewise.
1561 (Read_Lock): Define L as RW_Lock (instead of Lock).
1562 * s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock)
1563 in the record definition.
1564 * s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w
1565 lock for 'R' locking policy.
1566 (Initialize_Protection): Likewise.
1567 (Lock): Likewise.
1568 (Lock_Read_Only): Likewise.
1569 (Unlock): Likewise.
1570 * s-taspri-posix.ads (RW_Lock): New type defined as
1571 OS_Interface.pthread_rwlock_t.
1572
1573 * s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads,
1574 s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads,
1575 s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads,
1576 s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock.
1577
4c173b50
PO
15782011-09-27 Pascal Obry <obry@adacore.com>
1579
1580 * exp_ch9.adb, s-taspri-posix.ads: Minor reformatting.
1581
15822011-09-27 Pascal Obry <obry@adacore.com>
1583
1584 * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,
1585 s-osinte-hpux.ads, s-osinte-irix.ads,
1586 s-osinte-solaris-posix.ads (pthread_rwlock_t): New definition alias of
1587 pthread_mutex_t.
1588 (pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t.
1589 * s-osinte-linux.ads (pthread_rwlock_t, pthread_rwlockattr_t,
1590 pthread_rwlockattr_init, pthread_rwlockattr_destroy,
1591 pthread_rwlockattr_setkind_np, pthread_rwlock_init,
1592 pthread_rwlock_destroy, pthread_rwlock_rdlock,
1593 pthread_rwlock_wrlock, pthread_rwlock_unlock): New.
1594
343250a6
PO
15952011-09-27 Pascal Obry <obry@adacore.com>
1596
1597 * rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry.
1598 (RE_Id): Add RE_Lock_Read_Only.
1599 (RE_Unit_Table): Likewise.
1600 * sem_prag.adb (Process_Convention): Change Pragma_Locking_Policy
1601 to lift restriction on first character. Handle now the
1602 Name_Concurrent_Readers_Locking where policy character is set to
1603 'R'.
1604 * snames.ads-tmpl (Name_Concurrent_Readers_Locking): New
1605 constant.
1606 * exp_ch9.adb (Build_Protected_Subprogram_Body): Generate a
1607 read only lock for function in protected object.
1608 * s-taprob.ads (Lock_Read_Only): Remove obsolete comment as
1609 this routine is now used.
1610
2d0dd51a
EB
16112011-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1612
1613 * s-atocou-x86.adb (Decrement): Use %;.
1614 (Increment): Likewise.
1615
bdbebf66
EB
16162011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1617
1618 * gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the
1619 dereference of the pointer to the storage area. Remove useless type
1620 conversions and factor out common code.
1621
1aa291f7
EB
16222011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1623
1624 * gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE local
1625 variable and use it throughout.
1626 <UNCONSTRAINED_ARRAY_TYPE>: Add 'break' at the end.
1627 <RECORD_TYPE>: Do not unconditionally convert to the unpadded type as a
1628 first step. Also convert to the unpadded type as a last step.
1629
7d76717d
EB
16302011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1631
1632 * gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN with
1633 DECL_CHAIN in comment.
1634 * gcc-interface/trans.c (gigi): Likewise.
1635 (Attribute_to_gnu): Likewise.
1636 (build_function_stub): Likewise.
1637 (gnat_to_gnu): Likewise.
1638 * gcc-interface/utils.c (create_subprog_decl): Likewise.
1639 (convert_vms_descriptor64): Likewise.
1640 (convert_vms_descriptor32): Likewise.
1641
42acad07
EB
16422011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1643
1644 * gcc-interface/trans.c (assoc_to_constructor): Minor tweaks.
1645 * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting
1646 issues. Use COMPLETE_TYPE_P in assertion. Also set TREE_READONLY if
1647 the type of the record is TYPE_READONLY.
1648
a1d72281
EB
16492011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1650 Robert Dewar <dewar@adacore.com>
1651
1652 * sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or IN
1653 OUT formal parameter which is of an null-exclusion access subtype.
1654
a1c7d797
EB
16552011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1656
1657 * gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro.
1658 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Set the flag.
1659 (gnat_to_gnu_param): Likewise.
1660 * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Invoke
1661 maybe_unconstrained_array instead of doing the work manually.
1662 (maybe_unconstrained_array): Propagate the TREE_THIS_NOTRAP flag.
1663 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: If operand
1664 is a DECL with the flag, set TREE_THIS_NOTRAP on the reference.
1665 (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.
1666 (gnat_stabilize_reference): Likewise.
1667
50179d58
EB
16682011-09-26 Eric Botcazou <ebotcazou@adacore.com>
1669
1670 * gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro.
1671 (SET_TYPE_NULL_BOUNDS): Likewise.
1672 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set again
1673 TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
1674 * gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fat
1675 pointer types.
1676 * gcc-interface/utils.c (create_var_decl_1): If the object is external,
1677 check that the initializer is a valid constant expression for use in
1678 initializing a static variable. Add missing guard.
1679 (update_pointer_to): Adjust TYPE_NULL_BOUNDS if set.
1680 (convert_to_fat_pointer): In the null fat pointer case, build a valid
1681 pointer for the bounds.
1682 * gcc-interface/utils2.c (compare_fat_pointers): New function.
1683 (build_binary_op) <EQ_EXPR>: Call it to compare fat pointers.
1684
ad1d36ba
EB
16852011-09-25 Eric Botcazou <ebotcazou@adacore.com>
1686
1687 * gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine.
1688 * gcc-interface/trans.c (Identifier_to_gnu): Factor out common code in
1689 the by-ref case. Do not set TREE_READONLY on a renamed object. Set
1690 TREE_THIS_NOTRAP on UNCONSTRAINED_ARRAY_REF nodes.
1691 (Attribute_to_gnu) <Attr_Length>: Expand the use of the parameter cache
1692 to the indirect case.
1693 * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Preserve
1694 the TREE_THIS_NOTRAP flag.
1695
6162cec0
EB
16962011-09-25 Eric Botcazou <ebotcazou@adacore.com>
1697
1698 * gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of an
1699 iteration scheme, always generate the do-while form if optimization
1700 is enabled. Use more straightforward test at the end.
1701
dee12fcd
EB
17022011-09-25 Eric Botcazou <ebotcazou@adacore.com>
1703
1704 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Subtype>: Use
1705 XNEW instead of xmalloc. Do not build useless pointer type.
1706 <E_Anonymous_Access_Subprogram_Type>: Use XNEW instead of xmalloc.
1707 * gcc-interface/trans.c (gnat_to_gnu) <N_Raise_Constraint_Error>: Tidy.
1708 * gcc-interface/utils2.c (build_unary_op): Remove local variable.
1709
dea976c4
EB
17102011-09-25 Eric Botcazou <ebotcazou@adacore.com>
1711
1712 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promote
1713 the alignment if this doesn't prevent BLKmode access to the object.
1714
655ae828
IS
17152011-09-24 Iain Sandoe <iains@gcc.gnu.org>
1716
1717 * gcc-interface/Makefile.in (darwin): Do not issue the
1718 '-flat_namespace' linker flag during Ada build.
1719 * mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from the
1720 default shared library options.
1721
0e871c15
AO
17222011-09-19 Alexandre Oliva <aoliva@redhat.com>
1723
1724 * gcc-interface/decl.c (annotate_value): Look up expression for
1725 insertion in the cache at the end.
1726
1e6a52b4
AC
17272011-09-19 Arnaud Charlet <charlet@adacore.com>
1728
1729 * gcc-interface/Make-lang.in: Update dependencies.
1730
a3068ca6
AC
17312011-09-19 Steve Baird <baird@adacore.com>
1732
1733 * snames.ads-tmpl: Move declaration of Name_Annotate into range of
1734 configuration pragma names so that Is_Configuration_Pragma_Name
1735 will return True for Name_Annotate. Make corresponding change in
1736 Pragma_Id enumeration type. This is needed to allow an Annotate
1737 pragma to occur in a configuration pragma file (typically,
1738 a gnat.adc file).
1739 * gnat_ugn.texi: Add Annotate to the list of configuration pragmas.
1740 * gnat_rm.texi: Note that pragma Annotate may be used as a
1741 configuration pragma.
1742
17432011-09-19 Ed Schonberg <schonberg@adacore.com>
1744
1745 * a-cbmutr.adb, a-cbmutr.ads, a-cimutr.adb, a-cimutr.ads,
1746 a-comutr.adb, a-comutr.ads: Add iterator machinery for multiway trees.
1747
17482011-09-19 Yannick Moy <moy@adacore.com>
1749
1750 * exp_alfa.adb, exp_alfa.ads (Expand_Alfa_N_In): New function
1751 for expansion of set membership.
1752 (Expand_Alfa): Call expansion for N_In and N_Not_In nodes.
1753 * exp_ch4.adb, exp_ch4.ads (Expand_Set_Membership): Make procedure
1754 visible for use in Alfa expansion.
1755 * sem_ch5.adb (Analyze_Iterator_Specification): Introduce loop
1756 variable in Alfa mode.
1757
17582011-09-19 Thomas Quinot <quinot@adacore.com>
1759
1760 * s-osinte-darwin.ads: Change SIGADAABRT on Darwin to SIGABRT.
1761
17622011-09-19 Thomas Quinot <quinot@adacore.com>
1763
1764 * exp_ch9.adb: Minor reformatting.
1765
17662011-09-19 Hristian Kirtchev <kirtchev@adacore.com>
1767
1768 * freeze.adb (Build_Renamed_Body): Generic subprograms
1769 instantiations cannot be poperly inlined by the compiler, do
1770 not set the Body_To_Inline attribute in such cases.
1771 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit all
1772 inlining-related flags from the generic subprogram declaration.
1773
17742011-09-19 Thomas Quinot <quinot@adacore.com>
1775
1776 * exp_dist.adb, rtsfind.ads, sem_util.adb, sem_util.ads
1777 (Build_Stub_Type): Remove, instead copy components from
1778 System.Partition_Interface.RACW_Stub_Type.
1779 (RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine.
1780 (Copy_Component_List): New subprogram.
1781
17822011-09-19 Yannick Moy <moy@adacore.com>
1783
1784 * lib-xref.adb (Generate_Reference): Ignore references to
1785 constants in Standard.
1786
e7fceebc
AC
17872011-09-19 Robert Dewar <dewar@adacore.com>
1788
1789 * err_vars.ads, errout.ads: Minor reformatting.
1790
17912011-09-19 Robert Dewar <dewar@adacore.com>
1792
1793 * aspects.ads (Impl_Defined_Aspects): New array
1794 * lib-writ.adb (No_Dependences): New name for No_Dependence
1795 * restrict.adb (No_Dependences): New name for No_Dependence
1796 (Check_Restriction_No_Specification_Of_Aspect): New
1797 procedure.
1798 (Set_Restriction_No_Specification_Of_Aspect): New procedure
1799 (Restricted_Profile_Result): New variable
1800 (No_Specification_Of_Aspects): New variable
1801 (No_Specification_Of_Aspect_Warning): New variable
1802 * restrict.ads (No_Dependences): New name for No_Dependence
1803 (Check_Restriction_No_Specification_Of_Aspect): New procedure
1804 (Set_Restriction_No_Specification_Of_Aspect): New procedure
1805 * s-rident.ads: Add restriction
1806 No_Implementation_Aspect_Specifications, this is also added to
1807 the No_Implementation_Extensions profile.
1808 * sem_ch13.adb (Analyze_Aspect_Specifications): Check
1809 No_Implementation_Defined_Aspects
1810 (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
1811 * sem_prag.adb (Analyze_Aspect_Specifications): Check
1812 No_Implementation_Aspects
1813 (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
1814 * snames.ads-tmpl (Name_No_Specification_Of_Aspect): New name
1815
18162011-09-19 Yannick Moy <moy@adacore.com>
1817
1818 * lib-xref.adb (Generate_Reference): Take into account multiple
1819 renamings for Alfa refs.
1820
18212011-09-19 Thomas Quinot <quinot@adacore.com>
1822
1823 * g-socthi-mingw.adb: Minor reformatting.
1824
18252011-09-19 Yannick Moy <moy@adacore.com>
1826
1827 * gnat1drv.adb (Adjust_Global_Switches): Set tagged type
1828 expansion to False in mode Alfa
1829
18302011-09-19 Pascal Obry <obry@adacore.com>
1831
1832 * mingw32.h: Remove obsolete code needed for old versions
1833 of MingW.
1834
e5a163fc
RD
18352011-09-19 Robert Dewar <dewar@adacore.com>
1836
1837 * errout.ads: Minor reformatting.
1838
6d7e5c54
AC
18392011-09-19 Ed Schonberg <schonberg@adacore.com>
1840
1841 * sem_ch6.adb (Analyze_Expression_Function): When the expression
1842 function is transformed into a declaration and a body, insert
1843 body at the end of the declarative part, to prevent premature
1844 freeze actions, and preserve original specification in the
1845 subprogram declaration.
1846
18472011-09-19 Vincent Celier <celier@adacore.com>
1848
1849 * projects.texi: Minor editing.
1850
99ba07a3
AC
18512011-09-19 Robert Dewar <dewar@adacore.com>
1852
1853 * sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb,
1854 exp_aggr.adb: Minor reformatting.
1855
18562011-09-19 Yannick Moy <moy@adacore.com>
1857
1858 * lib-xref.adb (Generate_Reference): Change entity referenced
1859 to underlying object if any, or else reference to the HEAP.
1860
41781043
AC
18612011-09-15 Arnaud Charlet <charlet@adacore.com>
1862
1863 * gcc-interface/Make-lang.in: Update dependencies.
1864
804ff4c3
AC
18652011-09-15 Robert Dewar <dewar@adacore.com>
1866
1867 * tree_io.ads: Minor reformatting.
1868 * a-intnam.ads: Fix bad header.
1869
18702011-09-15 Thomas Quinot <quinot@adacore.com>
1871
1872 * a-exexpr-gcc.adb: Minor reformatting.
1873
18742011-09-15 Yannick Moy <moy@adacore.com>
1875
1876 * sem_ch6.adb: Propagate information that an expression function comes
1877 from source (otherwise references to this entity are not stored).
1878
0b5b2bbc
AC
18792011-09-15 Robert Dewar <dewar@adacore.com>
1880
1881 * a-cdlili.adb, a-coinve.adb, a-stzunb-shared.ads, a-suezst.adb,
1882 a-suenco.adb, a-stwiun-shared.ads, a-cobove.adb, a-convec.adb,
1883 a-btgbso.adb, a-cbdlli.adb, a-suewst.adb: Minor reformatting.
1884
18852011-09-15 Ed Schonberg <schonberg@adacore.com>
1886
1887 * sem_ch6.adb (Analyze_Expression_Function): Code cleanup:
1888 if the expression function is not a completion, create a
1889 new specification for the generated declaration, and keep the
1890 original specification in the generated body. Shorter code also
1891 ensures that proper warnings are generated for unused formals
1892 in all cases.
1893
18942011-09-15 Sergey Rybin <rybin@adacore.com>
1895
1896 * tree_io.ads: Update ASIS_Version_Number because of the changes
1897 in the tree structures for expression functions.
1898
18992011-09-15 Arnaud Charlet <charlet@adacore.com>
1900
1901 * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,
1902 s-osinte-hpux.ads, s-osinte-lynxos.ads, s-osinte-solaris-posix.ads,
1903 s-taprop-posix.adb (CLOCK_MONOTONIC): New constant.
1904 (CLOCK_REALTIME): Fix wrong value on some OSes.
1905 * s-taprop-posix.adb (Monotonic_Clock): Use CLOCK_MONOTONIC.
1906
7e169899
EB
19072011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1908
1909 * gcc-interface/utils.c (maybe_unconstrained_array): In the reference
1910 to unconstrained array case, deal with each branch of a COND_EXPR.
1911 * gcc-interface/utils2.c (build_allocator): Deal with each branch of
1912 a COND_EXPR in the initializer, if present.
1913
819a653e
EB
19142011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1915
1916 * gcc-interface/decl.c (maybe_pad_type): Do not try to change the form
1917 of an addressable type.
1918 * gcc-interface/trans.c (gnat_gimplify_expr) <VIEW_CONVERT_EXPR>: New.
1919 Deal with those cases for which creating a temporary is mandatory.
1920
c946adde
EB
19212011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1922
1923 * gcc-interface/trans.c (call_to_gnu): Use local variable. Make sure
1924 this is a real formal parameter before testing whether it is by ref.
1925
dddf8120
EB
19262011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1927
1928 * gcc-interface/gigi.h (build_call_0_expr): Delete.
1929 (build_call_1_expr): Likewise.
1930 (build_call_2_expr): Likewise.
1931 (build_call_n_expr): New prototype.
1932 * gcc-interface/decl.c (gnat_to_gnu_entity): Use build_call_n_expr.
1933 * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Ditto.
1934 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
1935 (Exception_Handler_to_gnu_zcx): Likewise.
1936 (gnat_to_gnu): Likewise.
1937 (build_binary_op_trapv): Likewise.
1938 * gcc-interface/utils2.c (build_call_0_expr): Delete.
1939 (build_call_1_expr): Likewise.
1940 (build_call_2_expr): Likewise.
1941 (build_call_n_expr): New function.
1942 (build_call_raise): Use build_call_n_expr.
1943 (build_call_raise_range): Likewise.
1944 (build_call_raise_column): Likewise.
1945 (build_call_alloc_dealloc_proc): Likewise.
1946 (maybe_wrap_malloc): Likewise.
1947 (maybe_wrap_free): Likewise.
1948
d8e38554
EB
19492011-09-11 Eric Botcazou <ebotcazou@adacore.com>
1950
1951 * gcc-interface/trans.c (build_return_expr): Use void_type_node for
1952 MODIFY_EXPR.
1953 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Assert that
1954 the result type is null if ENABLE_CHECKING. Set operation_type at the
1955 end unconditionally if not set in the previous cases.
1956 Use build2 and void_type_node for MODIFY_EXPR.
1957 (build_allocator): Use NULL_TREE for MODIFY_EXPR.
1958
416de7d5
EB
19592011-09-08 Eric Botcazou <ebotcazou@adacore.com>
1960
1961 * gcc-interface/utils.c (unchecked_convert): Use a field of the right
1962 precision when converting to or from an integral type whose precision
1963 is not equal to its size.
1964
88b76013
IS
19652011-09-08 Iain Sandoe <iains@gcc.gnu.org>
1966
416de7d5 1967 * traceback.c (Darwin) USE_GCC_UNWINDER for Darwin versions >= 8.
88b76013 1968
1aeee5ad
IS
19692011-09-07 Iain Sandoe <iains@gcc.gnu.org>
1970
416de7d5 1971 * gcc-interface/Makefile.in (darwin): Provide powerpc64 system
1aeee5ad
IS
1972 implementation.
1973 * system-darwin-ppc64.ads: New file.
1974
f61fc398
IS
19752011-09-06 Iain Sandoe <iains@gcc.gnu.org>
1976
1977 * gcc-interface/Makefile.in (gnatlib-shared-darwin): Remove
1978 reference to "-lm".
1979
84ef27d3
IS
19802011-09-06 Iain Sandoe <iains@gcc.gnu.org>
1981
1982 * gcc-interface/Makefile.in (darwin, SO_OPTS): Provide architecture
1983 size switches to the link phase for shared libs.
1984
a1bf1ec7
IS
19852011-09-06 Iain Sandoe <iains@gcc.gnu.org>
1986
416de7d5 1987 * gcc-interface/Makefile.in (x86_64 darwin arch): Adjust
a1bf1ec7
IS
1988 LIBGNAT_TARGET_PAIRS for x86 and x86_64 variants.
1989
e972fd52
AC
19902011-09-06 Arnaud Charlet <charlet@adacore.com>
1991
1992 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in
1993 (gnattools, regnattools, cross-gnattools, canadian-gnattools,
1994 gnatlib, gnatlib-sjlj, gnatlib-zcx, gnatlib-shared, gnatlib_and_tools):
1995 New targets.
1996 (TOOLS_FLAGS_TO_PASS): New.
1997 (../stamp-tools): Reintroduce, to avoid merge conflicts.
1998
ef417be1
RD
19992011-09-06 Robert Dewar <dewar@adacore.com>
2000
2001 * sem_ch10.adb, impunit.ads, impunit.adb (Not_Impl_Defined_Unit): New
2002 name for Is_RM_Defined_Unit. Also several fixes to this unit.
2003
0a034606
RD
20042011-09-06 Robert Dewar <dewar@adacore.com>
2005
2006 * impunit.ads, impunit.adb (Is_RM_Defined_Unit): New function.
2007 * s-rident.ads: New restriction No_Implementation_Units
2008 (this restriction is also part of the profile
2009 No_Implementation_Extensions)
2010 * sem_ch10.adb (Analyze_With_Clause): Add check for
2011 No_Implementation_Units restriction.
2012
ebb6faaa
AC
20132011-09-06 Jerome Guitton <guitton@adacore.com>
2014
2015 * sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK
2016 on vThreads.
2017
20182011-09-06 Thomas Quinot <quinot@adacore.com>
2019
2020 * s-solita.adb: Minor reformatting.
2021
20222011-09-06 Ed Schonberg <schonberg@adacore.com>
2023
2024 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that
2025 is a rewriting of an expression function does not freeze previous
2026 entities.
2027
20282011-09-06 Robert Dewar <dewar@adacore.com>
2029
2030 * impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case
2031
60435286
TG
20322011-09-06 Tristan Gingold <gingold@adacore.com>
2033
2034 * gcc-interface/Makefile.in: Handle e500v2-wrs-vxworksae like
2035 powerpc-wrs-vxworksae.
2036
08f8a983
AC
20372011-09-06 Thomas Quinot <quinot@adacore.com>
2038
2039 * s-os_lib.ads (Spawn): Minor documentation clarification,
2040 Success is True for a zero exit status.
2041
20422011-09-06 Ed Schonberg <schonberg@adacore.com>
2043
2044 * sem_ch5.adb: Add message for common iterator error.
2045
20462011-09-06 Ed Schonberg <schonberg@adacore.com>
2047
2048 * exp_ch3.adb (Build_Initialization_Call): If the target is a
2049 selected component discriminated by a current instance, replace
2050 the constraint with a reference to the target object, regardless
2051 of whether the context is an init_proc.
2052
20532011-09-06 Robert Dewar <dewar@adacore.com>
2054
2055 * exp_attr.adb: Descriptor_Size is never static.
2056
20572011-09-06 Robert Dewar <dewar@adacore.com>
2058
2059 * gnat_ugn.texi: Add documentation for LSLOC metric in gnatmetric
2060
20612011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2062
2063 * gnat_rm.texi: Clarify that attribute Descriptor_Size is
2064 non-static.
2065
20662011-09-06 Ed Schonberg <schonberg@adacore.com>
2067
2068 * sem_res.adb (Resolve): An expression that is the body of an
2069 expression function does not freeze.
2070
20712011-09-06 Matthew Heaney <heaney@adacore.com>
2072
2073 * a-csquin.ads, a-cusyqu.adb, a-cbprqu.adb, a-cbsyqu.adb,
2074 a-cuprqu.adb: Changed copyright notice to indicate current
2075 year only.
2076
20772011-09-06 Vincent Celier <celier@adacore.com>
2078
2079 * prj.adb: Minor spelling error fix in comment
2080 * sem_res.adb: Minor reformatting
2081
20822011-09-06 Pascal Obry <obry@adacore.com>
2083
2084 * sysdep.c (winflush_nt): Removed as not needed anymore.
2085 (winflush_95): Likewise.
2086 (winflush_init): Likewise.
2087 (winflush_function): Likewise.
2088 (getc_immediate_common): Remove call to winflush_function.
2089
cb3d8731
HK
20902011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2091
2092 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the
2093 processing for Descriptor_Size.
2094 * gnat_rm.texi: Rephrase the wording for attribute Descriptor_Size
2095 to account for its broader usage.
2096 * sem_attr.adb (Analyze_Attribute): Change the error detection
2097 circuitry for Descriptor_Size as the attribute is now applicable
2098 to all types.
2099
f7e6fc47
RD
21002011-09-06 Robert Dewar <dewar@adacore.com>
2101
2102 * sem_attr.adb, prj-nmsc.adb, exp_aggr.adb: Minor reformatting.
2103
f8e9fc30
AC
21042011-09-06 Ed Schonberg <schonberg@adacore.com>
2105
2106 * lib-xref.adb (OK_To_Set_Referenced): A reference to a formal
2107 in a parameter association must not set the Referenced flag on
2108 the formal.
2109 * prj-nmsc.adb (Check_File_Naming_Schemes): Remove useless formal
2110
21112011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2112
2113 * gnat_rm.texi: Add a section on attribute Descriptor_Size
2114
e8e38f35
AC
21152011-09-06 Arnaud Charlet <charlet@adacore.com>
2116
2117 * gcc-interface/Makefile.in (common-tools, gnatmake-re,
2118 gnatlink-re): Speed up by using -j0.
2119
ba759acd
AC
21202011-09-06 Yannick Moy <moy@adacore.com>
2121
2122 * sem_ch13.adb (Analyze_Aspect_Specifications): Call
2123 Set_Corresponding_Aspect when creating pragma from aspect.
2124 (Add_Predicates): Use new field Corresponding_Aspect.
2125 * sem_prag.adb (Analyze_Pragma): Make Pname hold source aspect
2126 name when present, for the purpose of issuing error messages;
2127 remove local procedure Error_Pragma_Arg_Alternate_Name.
2128 * sinfo.adb, sinfo.ads (Corresponding_Aspect): New field in
2129 N_Pragma node.
2130 (From_Dynamic_Predicate, From_Static_Predicate): Remove fields from
2131 N_Pragma node.
2132
21332011-09-06 Robert Dewar <dewar@adacore.com>
2134
2135 * checks.adb, s-except.ads, g-socket.adb: Minor reformatting.
2136
21372011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2138
2139 * exp_ch6.adb (Build_Heap_Allocator): Add new
2140 local variable Desig_Typ. Code and comment reformatting. Add
2141 machinery to ensure that the allocation uses a fat pointer when
2142 the type of the return object is a constrained array and the
2143 function return type is an unconstrained array.
2144
21452011-09-06 Vincent Celier <celier@adacore.com>
2146
2147 * make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formal
2148 parameters in subprograms.
2149
21502011-09-06 Arnaud Charlet <charlet@adacore.com>
2151
2152 * s-taprop-mingw.adb (Finalize_TCB): Fix typo.
2153
21542011-09-06 Thomas Quinot <quinot@adacore.com>
2155
2156 * s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb
2157 (System.Tasking.Primitive_Operations.Specific.Delete): Remove
2158 subprogram.
2159 (System.Tasking.Primitive_Operations.Specific.Set): If argument
2160 is null, destroy task specific data, to make API consistent with
2161 other platforms, and thus compatible with the shared version
2162 of s-tpoaal.adb.
2163 (System.Tasking.Primitive_Operations.ATCB_Allocation.Free_ATCB):
2164 Document the above assumption.
2165
f4f92d9d
AC
21662011-09-06 Ed Schonberg <schonberg@adacore.com>
2167
2168 * exp_ch6.adb (Expand_Inlined_Call): Fix use of uninitialized
2169 variable for type of return value when return type is
2170 unconstrained and context is an assignment.
2171
21722011-09-06 Ed Schonberg <schonberg@adacore.com>
2173
2174 * sem_ch8.adb (Check_Class_Wide_Actual): Do not generate body of
2175 class-wide operation if expansion is not enabled.
2176
21772011-09-06 Eric Botcazou <ebotcazou@adacore.com>
2178
2179 * checks.adb (Apply_Scalar_Range_Check): Deal with access
2180 type prefix.
2181
21822011-09-06 Yannick Moy <moy@adacore.com>
2183
2184 * sem_ch13.adb (Analyze_Aspect_Specifications, case
2185 Aspect_Invariant): Do not issue error at this point on illegal
2186 pragma placement, as this is checked later on when analyzing
2187 the corresponding pragma.
2188 * sem_prag.adb (Error_Pragma_Arg_Alternate_Name): New procedure
2189 similar to Error_Pragma_Arg, except the source name of the
2190 aspect/pragma to use in warnings may be equal to parameter
2191 Alt_Name (Analyze_Pragma, case Pragma_Invariant): refine error
2192 message to distinguish source name of pragma/aspect, and whether
2193 the illegality resides in the type being public, or being private
2194 without a public declaration
2195
21962011-09-06 Thomas Quinot <quinot@adacore.com>
2197
2198 * g-socket.adb (Check_For_Fd_Set): On Windows, no need for bitmap
2199 size check (fd_set is implemented differently on that platform).
2200
22012011-09-06 Thomas Quinot <quinot@adacore.com>
2202
2203 * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
2204 s-tpoaal.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
2205 s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop.ads,
2206 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
2207 (ATCB_Allocation): New subpackage of
2208 System.Tasking.Primitive_Operations, shared across all targets
2209 with full tasking runtime.
2210 (ATCB_Allocation.New_ATCB): Moved there (from target specific
2211 s-taprop bodies).
2212 (ATCB_Allocation.Free_ATCB): New subprogram. Deallocate an ATCB,
2213 taking care of establishing a local temporary ATCB if the one
2214 being deallocated is Self, to avoid a reference to the freed
2215 ATCB in Abort_Undefer.
2216
22172011-09-06 Thomas Quinot <quinot@adacore.com>
2218
2219 * s-tassta.adb, s-taskin.ads (Free_Task): If the task is not
2220 terminated, mark it for deallocation upon termination.
2221 (Terminate_Task): Call Free_Task again if the task is marked
2222 for automatic deallocation upon termination.
2223
df177175
RD
22242011-09-06 Robert Dewar <dewar@adacore.com>
2225
2226 * a-cbprqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cusyqu.ads,
2227 a-intnam-aix.ads, a-intnam-darwin.ads, a-intnam-dummy.ads,
2228 a-intnam-freebsd.ads, a-intnam-hpux.ads, a-intnam-irix.ads,
2229 a-intnam-linux.ads, a-intnam-lynxos.ads, a-intnam-mingw.ads,
2230 a-intnam-solaris.ads, a-intnam-tru64.ads,
2231 a-intnam-vms.ads, a-intnam-vxworks.ads, a-intnam.ads, interfac.ads,
2232 cstand.adb, s-maccod.ads: Mark all entities as Implementation_Defined
2233 * einfo.ads, einfo.adb (Is_Implementation_Defined): New flag
2234 * par-prag.adb: Add dummy entry for pragma Implementation_Defined
2235 * s-rident.ads: Add new restriction No_Implementation_Identifiers
2236 Add new profile No_Implementation_Extensions
2237 * sem_prag.adb: Implement pragma Implementation_Defined Implement
2238 profile No_Implementation_Extensions
2239 * sem_util.adb: Minor reformatting (Set_Entity_With_Style_Check):
2240 Check violation of restriction No_Implementation_Identifiers
2241 * snames.ads-tmpl: Add entries for pragma Implementation_Defined
2242 Add entry for Name_No_Implementation_Extensions
2243
22442011-09-06 Robert Dewar <dewar@adacore.com>
2245
2246 * impunit.ads: Minor reformatting.
2247
b991dd43
AC
22482011-09-06 Robert Dewar <dewar@adacore.com>
2249
2250 * ali.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.
2251
22522011-09-06 Pascal Obry <obry@adacore.com>
2253
2254 * s-osinte-linux.ads, s-oscons-tmplt.c: Use oscons to define sigset_t
2255 types.
2256
516785cc
AC
22572011-09-06 Robert Dewar <dewar@adacore.com>
2258
2259 * g-socket.adb: Minor reformatting
2260
22612011-09-06 Javier Miranda <miranda@adacore.com>
2262
2263 * ali.adb (Scan_ALI): Add missing support to load references of
2264 entities imported from other languages.
2265 * ali.ads (Xref_Record): Adding new fields to store the language and
2266 name of an imported entity.
2267 * lib-xref.adb (Output_Import_Export_Info): Fix typo
2268 in comment.
2269
22702011-09-06 Ed Schonberg <schonberg@adacore.com>
2271
2272 * sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariant
2273 is allowed on a full type declaration if it is the completion of
2274 a private declarations.
2275 * sem_ch13.adb (Analyze_Aspect_Specifications): An invariant
2276 aspect is allowed on a full type declaration in the private part
2277 of a package.
2278
96691943
AC
22792011-09-06 Robert Dewar <dewar@adacore.com>
2280
2281 * sem_ch8.ads: Minor reformatting
2282
22832011-09-06 Thomas Quinot <quinot@adacore.com>
2284
2285 * s-oscons-tmplt.c, g-socket.adb (GNAT.Sockets.Clear,Set,Is_Set):
2286 Guard against socket values that are not in [0;FD_SETSIZE[
2287
54bf19e4
AC
22882011-09-06 Robert Dewar <dewar@adacore.com>
2289
2290 * s-osinte-linux.ads, a-iteint.ads, exp_ch6.adb, s-solita.adb: Minor
2291 reformatting.
2292
22932011-09-06 Arnaud Charlet <charlet@adacore.com>
2294
2295 * s-linux-alpha.ads: Minor reformatting
2296 * s-oscons-tmplt.c: Fix generated comments in s-oscons template.
2297 Use sizeof instead of corresponding C defines in s-oscons template.
2298
5d42cba1
VG
22992011-09-06 Vadim Godunko <godunko@adacore.com>
2300
2301 * a-convec.ads, a-iteint.ads: Minor reformatting.
2302
77aa62e7
AC
23032011-09-06 Vincent Celier <celier@adacore.com>
2304
2305 * projects.texi: Add menus and @node lines.
2306
23072011-09-06 Ed Schonberg <schonberg@adacore.com>
2308
2309 * exp_ch6.adb (Expand_Inlined_Call): Handle properly the case
2310 where the return type is an unconstrained array and the context
2311 is an assignment. Optimize the case when the target of the
2312 assignment is a selected component.
2313
23142011-09-06 Arnaud Charlet <charlet@adacore.com>
2315
2316 * s-solita.adb: Update comments.
2317
23182011-09-06 Pascal Obry <obry@adacore.com>
2319
2320 * s-linux.ads, s-linux-alpha.ads, s-linux-hppa.ads, s-linux-mipsel.ads,
2321 s-linux-sparc.ads: Remove hard coded and now wrong definitions.
2322 * s-oscons-tmplt.c: Add support for generating pthread related
2323 types size on GNU/Linux as done for Darwin.
2324 * s-osinte-linux.ads: Use s-oscons to define the pthread types.
2325
886b5a18
AC
23262011-09-06 Robert Dewar <dewar@adacore.com>
2327
2328 * exp_ch6.adb: Fix minor typo.
2329
23302011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2331
2332 * exp_ch7.adb: Remove with and use clauses for Get_Targ.
2333 (Alignment_Of): Moved to the body of Nearest_Multiple_Rounded_Up.
2334 (Double_Size_Of): Alphabetized. Update the comment on usage.
2335 (Make_Finalize_Address_Stmts): Update comments and reformat code.
2336 (Nearest_Multiple_Rounded_Up): New routine.
2337 (Size_Of): Update comment on usage. The generated expression now
2338 accounts for alignment gaps by rounding the size of the type to the
2339 nearest multiple rounded up of the type's alignment.
2340
57a3fca9
AC
23412011-09-06 Robert Dewar <dewar@adacore.com>
2342
2343 * exp_ch7.adb, g-comlin.adb: Minor reformatting.
2344
23452011-09-06 Steve Baird <baird@adacore.com>
2346
2347 * exp_ch4.adb (Expand_Allocator_Expression): Look through
2348 derived subprograms in checking for presence of an
2349 Extra_Accessibility_Of_Result formal parameter.
2350 * exp_ch6.adb (Expand_Call): Look through derived subprograms in
2351 checking for presence of an Extra_Accessibility_Of_Result formal
2352 parameter.
2353 (Expand_Call.Add_Actual_Parameter): Fix a bug in the
2354 case where the Parameter_Associatiations attribute is already set,
2355 but set to an empty list.
2356 (Needs_Result_Accessibility_Level):
2357 Unconditionally return False. This is a temporary
2358 change, disabling the Extra_Accessibility_Of_Result
2359 mechanism.
2360 (Expand_Simple_Function_Return): Check for
2361 Extra_Accessibility_Of_Result parameter's presence instead of
2362 testing Ada_Version when generating a runtime accessibility
2363 check which makes use of the parameter.
2364
eaed0c37
AC
23652011-09-06 Ed Schonberg <schonberg@adacore.com>
2366
2367 * exp_ch4.adb (Expand_N_Case_Expression): Actions created for the
2368 expression in a given case alternative must be attached to the
2369 statement list of the ccrresponding case statement alternative
2370 They cannot be propagated ahead of the case statement, because
2371 the validity of the expression that generated the action may
2372 hold only for that alternative.
2373
23742011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2375
2376 * exp_ch7.adb: Remove with and use clauses for Get_Targ.
2377 (Alignment_Of): Remove the code for strict alignment targets.
2378 (Double_Alignment_Of): Removed.
2379 (Double_Size_Of): New routine.
2380 (Make_Finalize_Address_Stmts): Change the
2381 calculation of the dope's size. Update relevant comments.
2382 (Size_Of): New routine.
2383
b8a93198
AC
23842011-09-06 Steve Baird <baird@adacore.com>
2385
2386 * einfo.ads (Extra_Accessibility): Update associated comment to use
2387 the term "present" correctly ("present" just means that it is not
2388 an error to query the value of the attribute - it does not imply
2389 that the value must be non-null).
2390 (Extra_Constrained): Ditto.
2391 (Is_Visible_Formal): Ditto.
2392 (Extra_Accessibility_Of_Result) Ditto; also add Inline pragma.
2393 (Set_Extra_Accessibility_Of_Result): Add Inline pragma.
2394 * exp_ch4.adb (Expand_Allocator_Expression): Improve a comment.
2395 * exp_ch6.adb (Expand_Call): The callee may require an
2396 Extra_Accessibility_Of_Result actual parameter even if Ada_Version
2397 < Ada_2012. This can occur if the callee is exported from a Gnat
2398 runtimes unit. Also improve a comment.
2399
24002011-09-06 Hristian Kirtchev <kirtchev@adacore.com>
2401
2402 * exp_ch7.adb: Add with and use clauses for Get_Targ.
2403 (Alignment_Of): Rename formal parameter Some_Typ
2404 to Typ, update related comment. Use the allocator alignment on
2405 strict alignment targets such as SPARC.
2406 (Double_Alignment_Of): Rename formal parameter Some_Typ to Typ, update
2407 related comment.
2408
24092011-09-06 Gary Dismukes <dismukes@adacore.com>
2410
2411 * sem_ch9.adb (Check_Interfaces): Test
2412 Is_Limited_Type rather than Is_Limited_Record when checking that
2413 the partial view of a synchronized full view must be limited.
2414
24152011-09-06 Emmanuel Briot <briot@adacore.com>
2416
2417 * g-comlin.adb (Free): Fix memory leak.
2418
ebf494ec
RD
24192011-09-06 Robert Dewar <dewar@adacore.com>
2420
2421 * sem_util.adb, exp_ch6.adb: Minor reformatting and code reorganization.
2422
63585f75
SB
24232011-09-06 Steve Baird <baird@adacore.com>
2424
2425 * einfo.ads (Extra_Accessibility_Of_Result): New function; in the
2426 (Ada2012) cases described in AI05-0234 where the accessibility
2427 level of a function result is "determined by the point of
2428 call", an implicit parameter representing that accessibility
2429 level is passed in. Extra_Accessibilty_Of_Result yields this
2430 additional formal parameter. Extra_Accessibility_Of_Result
2431 is analogous to the existing Extra_Accessibility
2432 function used in the implementation of access parameters.
2433 (Set_Extra_Accessibility_Of_Result): New procedure; sets
2434 Extra_Accessibility_Of_Result attribute.
2435 * einfo.adb (Extra_Accessibility_Of_Result): New function.
2436 (Set_Extra_Accessibility_Of_Result): New procedure.
2437 (Write_Field19_Name): Display Extra_Accessibilty_Of_Result attribute.
2438 * sem_util.adb (Dynamic_Accessibility_Level): Set Etype of
2439 an accessibility level literal to Natural; introduce a nested
2440 function, Make_Level_Literal, to do this.
2441 * exp_ch6.ads (Needs_Result_Accessibility_Level): New function;
2442 determines whether a given function (or access-to-function
2443 type) needs to have an implicitly-declared accessibility-level
2444 parameter added to its profile.
2445 (Add_Extra_Actual_To_Call): Export an existing procedure which was
2446 previously declared in the body of Exp_Ch6.
2447 * exp_ch6.adb (Add_Extra_Actual_To_Call): Export declaration by moving
2448 it to exp_ch6.ads.
2449 (Has_Unconstrained_Access_Discriminants): New Function; a
2450 predicate on subtype entities which returns True if the given
2451 subtype is unconstrained and has one or more access discriminants.
2452 (Expand_Call): When expanding a call to a function which takes an
2453 Extra_Accessibility_Of_Result parameter, pass in the appropriate
2454 actual parameter value. In the case of a function call which is
2455 used to initialize an allocator, this may not be possible because
2456 the Etype of the allocator may not have been set yet. In this
2457 case, we defer passing in the parameter and handle it later in
2458 Expand_Allocator_Expression.
2459 (Expand_Simple_Function_Return): When returning from a function which
2460 returns an unconstrained subtype having at least one access
2461 discriminant, generate the accessibility check needed to ensure that
2462 the function result will not outlive any objects designated by its
2463 discriminants.
2464 (Needs_Result_Accessibility_Level): New function; see exp_ch6.ads
2465 description.
2466 * exp_ch4.adb (Expand_Allocator_Expression): When a function call
2467 is used to initialize an allocator, we may need to pass in "the
2468 accessibility level determined by the point of call" (AI05-0234)
2469 to the function. Expand_Call, where such actual parameters are
2470 usually generated, is too early in this case because the Etype of
2471 the allocator (which is used in determining the level to be passed
2472 in) may not have been set yet when Expand_Call executes. Instead,
2473 we generate code to pass in the appropriate actual parameter
2474 in Expand_Allocator_Expression.
2475 * sem_ch6.adb (Create_Extra_Formals): Create
2476 the new Extra_Accessibility_Of_Result formal if
2477 Needs_Result_Accessibility_Level returns True. This includes the
2478 introduction of a nested procedure, Check_Against_Result_Level.
2479
1a982c6e
AC
24802011-09-06 Arnaud Charlet <charlet@adacore.com>
2481
2482 * gcc-interface/Makefile.in (X86_TARGET_PAIRS): Remove duplicate
2483 declaration.
2484
e42bcfa3
AC
24852011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2486
2487 * s-finmas.adb (Set_Finalize_Address): Explain the reason
2488 for the synchronization. Move the test for null from
2489 s-stposu.Allocate_Any_Controlled to this routine since the check
2490 needs to be protected too.
2491 (Set_Heterogeneous_Finalize_Address): Explain the reason for the
2492 synchronization code.
2493 * s-finmas.ads (Set_Heterogeneous_Finalize_Address): Add comment
2494 explaining the context in which this routine is used.
2495 * s-stposu.adb (Allocate_Any_Controlled): Move the test for null
2496 to s-finmas.Set_Finalize_Address.
2497
24982011-09-05 Ed Schonberg <schonberg@adacore.com>
2499
2500 * einfo.ads: Document that itypes have no parent field.
2501
25022011-09-05 Robert Dewar <dewar@adacore.com>
2503
2504 * rtsfind.adb (Check_CRT): Check for overloaded entity
2505 * rtsfind.ads: Document that entities to be found by rtsfind
2506 cannot be overloaded
2507 * s-taenca.adb, s-tasren.adb, s-tpobop.adb, s-tpoben.ads, s-tpoben.adb
2508 (Lock_Entries_With_Status): New name for Lock_Entries with two
2509 arguments (changed to meet rtsfind no overloading rule).
2510
544e7c17
AC
25112011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2512
2513 * s-finmas.adb (Set_Finalize_Address (Address,
2514 Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
2515 (Set_Finalize_Address (in out Finalization_Master,
2516 Finalize_Address_Ptr): Add synchronization code.
2517 * s-finmas.ads (Set_Finalize_Address (Address,
2518 Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
2519 * s-stposu.adb (Allocate_Any_Controlled): Update the call to
2520 Set_Finalize_Address for the heterogeneous case.
2521
25222011-09-05 Ed Schonberg <schonberg@adacore.com>
2523
2524 * sem_ch3.adb: Undo previous change, not suitable after all.
2525
25262011-09-05 Robert Dewar <dewar@adacore.com>
2527
2528 * einfo.ads: Minor comment clarification.
2529
0613fb33
AC
25302011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2531
2532 * exp_ch6.adb (Move_Activation_Chain): Rewritten. The routine
2533 no longer needs to search through the entities of the return
2534 statement scope to find the _chain.
2535 * sem_ch5.adb: Add with and use clauses for Exp_Ch6 and Sem_Ch6.
2536 (Analyze_Block_Statement): Add local variable
2537 Is_BIP_Return_Statement. Add machinery to install all entities
2538 produced by the expansion of the return object declaration.
2539 (Install_Return_Entities): New routine.
2540 * sem_ch6.ads, sem_ch6.adb (Install_Entity): Moved from body to spec.
2541
25422011-09-05 Ed Schonberg <schonberg@adacore.com>
2543
2544 * sem_ch10.adb (Analyze_Context): Apply simple fixup if context
2545 of subunit is incomplete.
2546 (Analyze_Proper_Body): If parent spec is not available, do not
2547 attempt analysis.
2548
5dcab3ca
AC
25492011-09-05 Ed Schonberg <schonberg@adacore.com>
2550
2551 * sem_disp.adb (Find_Controlling_Arg): Add checks for
2552 interface type conversions, that are expanded into dereferences.
2553
25542011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2555
2556 * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
2557 Examine the parameter and return profile of a subprogram and swap
2558 any incomplete types coming from a limited context with their
2559 corresponding non-limited views.
2560 (Exchange_Limited_Views): New routine.
2561
25622011-09-05 Ed Schonberg <schonberg@adacore.com>
2563
2564 * sem_ch3.adb (Prepare_Private_Subtype_Completion): Set parent
2565 of internal entity to the subtype declaration, so that when
2566 entities are subsequently exchanged in a package body, the tree
2567 remains properly formatted for ASIS.
2568
8da1a312
AC
25692011-09-05 Johannes Kanig <kanig@adacore.com>
2570
2571 * g-comlin.adb (Set_Usage): Additional optional argument to set help
2572 message.
2573 (Display_Help): display the user given help message, if available.
2574
25752011-09-05 Ed Schonberg <schonberg@adacore.com>
2576
2577 * sem_ch3.adb (OK_For_Limited_Init_In_05): The expression
2578 is legal if the original node is an identifier that is a
2579 parameterless function call.
2580
69b73847
PO
25812011-09-05 Pascal Obry <obry@adacore.com>
2582
2583 * prj-nmsc.adb: Minor reformatting.
2584 Add support for standalone aggregate library.
2585 (Check_Stand_Alone_Library): Handle standalone aggregate library.
2586 * projects.texi: Fix documentation for aggregate library projects.
2587
81bf2382
AC
25882011-09-05 Robert Dewar <dewar@adacore.com>
2589
2590 * sem_ch6.adb: Minor reformatting.
2591
25922011-09-05 Matthew Gingell <gingell@adacore.com>
2593
2594 * s-tassta.adb (Task_Wrapper): Ensure that we don't try to write the
2595 stack guard page on PPC Linux. This patch ensures the 64K guard page at
2596 the bottom of the stack is not overwritten.
2597
13a0b1e8
AC
25982011-09-05 Thomas Quinot <quinot@adacore.com>
2599
2600 * exp_intr.adb, s-tasini.adb: Minor reformatting.
2601
26022011-09-05 Ed Schonberg <schonberg@adacore.com>
2603
2604 * sem_ch3.adb (Access_Definition): If an access type declaration
2605 appears in a child unit, the scope of whatever anonymous type
2606 may be generated is the child unit itself.
2607
26082011-09-05 Ed Schonberg <schonberg@adacore.com>
2609
2610 * sem_ch6.adb (Analyze_Expression_Function): Do not set
2611 Comes_From_Source on rewritten body.
2612 (Analyze_Subprogram_Body_Helper): Check that the original node for
2613 the body comes from source, when determining whether expansion
2614 of a protected operation is needed.
2615
20428725
AC
26162011-09-05 Ed Schonberg <schonberg@adacore.com>
2617
2618 * exp_aggr.adb (Replace_Type): If the target of the assignment is
2619 a selected component and the right-hand side is a self-referential
2620 access, the proper prefix of the rewritten attribute is a copy
2621 of the left-hand side, not of its prefix.
2622
26232011-09-05 Robert Dewar <dewar@adacore.com>
2624
2625 * sem_ch5.adb: Minor reformatting.
2626 * sem_ch3.adb: Minor code clean up.
2627
26282011-09-05 Jose Ruiz <ruiz@adacore.com>
2629
2630 * exp_ch9.adb (Make_Initialize_Protection): The fact that
2631 restriction No_Dynamic_Attachment is in effect or not should
2632 not influence the default priority associated to a protected
2633 object. With this change, when the restriction is in effect (as
2634 is the case for the Ravenscar profile) the default priority of
2635 a protected object with an interrupt handler is in the range of
2636 interrupt priorities (Default_Interrupt_Priority) as required
2637 by D.3(10).
2638
26392011-09-05 Arnaud Charlet <charlet@adacore.com>
2640
2641 * a-iteint.ads: Fix header.
2642
26432011-09-05 Vincent Celier <celier@adacore.com>
2644
2645 * prj-conf.adb (Do_Autoconf): Make sure Obj_Dir always ends
2646 with a directory separator to avoid output such as:
2647 "/path/to/objauto.cgpr" has been deleted.
2648
4a1bfefb
AC
26492011-09-05 Robert Dewar <dewar@adacore.com>
2650
2651 * sem_ch3.adb: Minor reformatting.
2652
26532011-09-05 Ed Schonberg <schonberg@adacore.com>
2654
2655 * sem_ch5.adb: Better error message.
2656
26572011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2658
2659 * exp_aggr.adb: Add with and use clause for Exp_Ch6.
2660 (Expand_Array_Aggregate): Detect a special case of an aggregate
2661 which contains tasks in the context of an unexpanded return
2662 statement of a build-in-place function.
2663 * exp_ch6.adb: Add with and use clause for Exp_Aggr.
2664 (Expand_N_Extended_Return_Statement): Detect a delayed aggregate
2665 which contains tasks and expand it now that the original simple
2666 return statement has been rewritten.
2667 * exp_ch9.adb (Build_Activation_Chain_Entity): Code
2668 reformatting. Do not create a chain for an extended return
2669 statement if one is already available.
2670 (Has_Activation_Chain): New routine.
2671
9ec080cb
AC
26722011-09-05 Marc Sango <sango@adacore.com>
2673
2674 * sem_ch3.adb (Analyze_Object_Declaration): Remove
2675 the wrong test and add the correct test to detect the violation
2676 of illegal use of unconstrained string type in SPARK mode.
2677
26782011-09-05 Ed Schonberg <schonberg@adacore.com>
2679
2680 * sem_ch5.adb (Analyze_Iteration_Specification): Improve error
2681 message on an iterator over an array.
2682
26832011-09-05 Robert Dewar <dewar@adacore.com>
2684
2685 * lib-xref-alfa.adb: Minor reformatting.
2686
aeae67ed
RD
26872011-09-05 Robert Dewar <dewar@adacore.com>
2688
2689 * sem_ch3.adb, sem_res.adb, par.adb, par-ch6.adb, g-comlin.adb,
2690 exp_ch6.adb, lib-xref-alfa.adb: Minor reformatting.
2691
d72e7628
AC
26922011-09-05 Gary Dismukes <dismukes@adacore.com>
2693
2694 * exp_ch7.adb, exp_ch6.adb: Minor reformatting.
2695
26962011-09-05 Johannes Kanig <kanig@adacore.com>
2697
2698 * lib-xref-alfa.adb: Update comments.
2699
27002011-09-05 Thomas Quinot <quinot@adacore.com>
2701
2702 * sem_res.adb: Minor reformatting
2703
0d566e01
ES
27042011-09-05 Ed Schonberg <schonberg@adacore.com>
2705
2706 * exp_ch6.adb (Build_In_Place_Formal): If extra formals are not
2707 present, create them now. Needed in case the return type was
2708 a limited view in the function declaration.
2709 (Make_Build_In_Place_Call_In_Allocator): If return type contains
2710 tasks, build the activation chain for it. Pass a reference to
2711 the Master_Id in call to Add_Task_Actuals_To_Build_In_Place call.
2712 * exp_ch7.adb (Make_Set_Finalize_Address_Call): Clean up interface
2713 with build_in_place calls.
2714 * sem_ch9.adb (Analyze_Task_Type_Declaration): If partial view was
2715 incomplete, inatialize its Corresponding_Record_Type component.
2716 * sem_ch10.adb (Build_Chain): Initialize Private_Dependents field
2717 of limited views.
2718
ec09f261
AC
27192011-09-05 Johannes Kanig <kanig@adacore.com>
2720
2721 * lib-xref-alfa.adb (Is_Alfa_Reference): Filter constants from effect
2722 information.
2723
27242011-09-05 Ed Schonberg <schonberg@adacore.com>
2725
2726 * par-ch6.adb (P_Subprogram): In Ada2012 mode, if the subprogram
2727 appears within a package specification and the token after "IS"
2728 is not a parenthesis, assume that this is an unparenthesized
2729 expression function, even if the token appears in a line by
2730 itself.
2731 * par.adb: Clarify use of Labl field of scope stack in error
2732 recovery.
2733
7109f4f5
AC
27342011-09-05 Bob Duff <duff@adacore.com>
2735
2736 * sem_res.adb (Resolve_Intrinsic_Operator): Use unchecked
2737 conversions instead of normal type conversions in all cases where a
2738 type conversion would be illegal. In particular, use unchecked
2739 conversions when the operand types are private.
2740
27412011-09-05 Johannes Kanig <kanig@adacore.com>
2742
2743 * lib-xref-alfa.adb (Is_Alfa_Reference): Never declare effects on
2744 objects of task type or protected type.
2745
66dc8075
AC
27462011-09-05 Ed Schonberg <schonberg@adacore.com>
2747
2748 * sem_ch6.adb (Analyze_Expression_Function): If the expression
2749 function comes from source, indicate that so does its rewriting,
2750 so it is compatible with any subsequent expansion of the
2751 subprogram body (e.g. when it is a protected operation).
2752 * sem_ch4.adb: minor reformatting
2753
27542011-09-05 Hristian Kirtchev <kirtchev@adacore.com>
2755
2756 * lib.adb (Check_Same_Extended_Unit): Comment rewriting. Use
2757 Get_Source_Unit rather than Get_Code_Unit as instantiation unfolding
2758 may lead to wrong ancestor package in the case of instantiated subunit
2759 bodies. If a subunit is instantiated, follow the chain of instantiations
2760 rather than the stub structure.
2761
bd38b431
AC
27622011-09-02 Robert Dewar <dewar@adacore.com>
2763
2764 * sem_ch4.adb, sem_ch6.adb: Minor reformatting.
2765 * gcc-interface/Make-lang.in: Update dependencies.
2766
27672011-09-02 Marc Sango <sango@adacore.com>
2768
2769 * sem_ch3.adb (Analyze_Object_Declaration): Change
2770 comment and add additional check to differentiate constant of
2771 type string from others unconstrained type.
2772
99d520ad
ES
27732011-09-02 Ed Schonberg <schonberg@adacore.com>
2774
2775 * sinfo.ads, sinfo.adb: New semantic attribute Premature_Use,
2776 present in incomplete type declarations to refine the error
2777 message the full declaration is in the same unit.
2778 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of
2779 an incomplete type, set the Premature_Use for additional message.
2780 * sem_ch3.adb (Find_Type_Name): If partial view is incomplete
2781 and Premature_Use is set, place additional information at the
2782 point of premature use.
2783
5b5588dd
AC
27842011-09-02 Bob Duff <duff@adacore.com>
2785
2786 * sem_ch6.adb: (Check_Post_State): Suppress warning
2787 "postcondition refers only to pre-state" when the expression has not
2788 yet been analyzed, because it causes false alarms. This can happen when
2789 the postcondition contains a quantified expression, because those are
2790 analyzed later. This is a temporary/partial fix.
2791 (Process_Post_Conditions): Minor: change wording of warning.
2792
27932011-09-02 Marc Sango <sango@adacore.com>
2794
2795 * sem_ch3.adb (Analyze_Object_Declaration): Detect the violation of
2796 illegal use of unconstrained string type in SPARK mode.
2797 * sem_res.adb (Analyze_Operator_Symbol): Set the
2798 right place where the string operand of concatenation should be
2799 violate in SPARK mode.
2800
bd603506
RD
28012011-09-02 Robert Dewar <dewar@adacore.com>
2802
2803 * sem_prag.adb, sem_util.adb, sem_ch6.adb, prj-nmsc.adb,
2804 exp_ch3.adb: Minor reformatting.
2805
24a120ac
AC
28062011-09-02 Vincent Celier <celier@adacore.com>
2807
2808 * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Declare "gcc"
2809 as the compiler driver so Is_Compilable returns True for sources.
2810 * prj-nmsc.adb (Override_Kind): When Kind is Sep, set the source
2811 for the body.
2812
28132011-09-02 Ed Schonberg <schonberg@adacore.com>
2814
2815 * sem_prag.adb (Analyze_PPC_In_Decl_Part): for a class-wide
2816 condition, a reference to a controlling formal must be interpreted
2817 as having the class-wide type (or an access to such) so that the
2818 inherited condition can be properly applied to any overriding
2819 operation (see ARM12 6.6.1 (7)).
2820
28212011-09-02 Tristan Gingold <gingold@adacore.com>
2822
2823 * init.c (__gnat_is_vms_v7): Fix case and add prototype
2824 for LIB$GETSYI.
2825
28262011-09-02 Javier Miranda <miranda@adacore.com>
2827
2828 * exp_ch3.adb (Expand_N_Object_Declaration): Do not copy the
2829 initializing expression of a class-wide interface object declaration
2830 if its type is limited.
2831
28322011-09-02 Johannes Kanig <kanig@adacore.com>
2833
2834 * sem_util.adb (Unique_Name): To obtain a unique name for enumeration
2835 literals, take into account the type name; the type is *not*
2836 the scope for an enumeration literal.
2837
28382011-09-02 Ed Schonberg <schonberg@adacore.com>
2839
2840 * sem_ch6.adb (Check_Overriding_Indicator): add special check
2841 to reject an overriding indicator on a user-defined Adjust
2842 subprogram for a limited controlled type.
2843
28442011-09-02 Ed Schonberg <schonberg@adacore.com>
2845
2846 * sem_res.adb (Resolve_Actuals): add missing call to Resolve
2847 for an actual that is a function call returning an unconstrained
2848 limited controlled type.
2849
28502011-09-02 Tristan Gingold <gingold@adacore.com>
2851
2852 * g-socthi-vms.adb (c_sendmsg, c_recvmsg): Use unpacked msg if on vms 7
2853
28542011-09-02 Johannes Kanig <kanig@adacore.com>
2855
2856 * alfa.ads (Name_Of_Heap_Variable): Change value of the HEAP variable
2857 from "HEAP" to __HEAP Change comment that refers to that variable
2858 * put_alfa.adb: Change comment that refers to that variable
2859
c5f5123f
AC
28602011-09-02 Robert Dewar <dewar@adacore.com>
2861
2862 * exp_ch4.adb, exp_ch6.adb, prj-nmsc.adb: Minor reformatting.
2863
28642011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
2865
2866 * exp_util.adb (Extract_Renamed_Object): Renamed to
2867 Find_Renamed_Object. This routine has been reimplemented and now uses
2868 tree traversal to locate a renamed object.
2869 (Is_Aliased): Replace call to Extract_Renamed_Object with
2870 Find_Renamed_Object.
2871
28722011-09-02 Tristan Gingold <gingold@adacore.com>
2873
2874 * init.c: (__gnat_is_vms_v7): New function.
2875
28762011-09-02 Olivier Hainque <hainque@adacore.com>
2877
2878 * tracebak.c (STOP_FRAME, ppc elf/vxworks case): Stop on frames
2879 that have a misaligned backchain, necessarily bogus.
2880
2bfa5484
HK
28812011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
2882
2883 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not create
2884 TSS routine Finalize_Address when compiling in Alfa mode.
2885 (Expand_Freeze_Record_Type): Do not create TSS routine
2886 Finalize_Address when compiling in Alfa mode.
2887 * exp_ch4.adb (Expand_Allocator_Expression): Do not produce a
2888 call to Set_Finalize_Address in Alfa mode because Finalize_Address is
2889 not built.
2890 (Expand_N_Allocator): Do not produce a call to
2891 Set_Finalize_Address in Alfa mode because Finalize_Address is not built.
2892 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Do not
2893 produce a call to primitive Set_Finalize_Address in Alfa mode because
2894 Finalize_Address is not built.
2895 * exp_ch7.adb (Build_Finalization_Master): Do not create
2896 finalization masters in Afa mode since they are not needed.
2897 (Build_Finalizer): Do not create scope and library-level
2898 finalizers in Alfa mode since they are not needed.
2899 * exp_util.adb (Build_Allocate_Deallocate_Proc): Do not expand
2900 "new" and "free" when applied to controlled objects in Alfa mode since
2901 this is not needed.
2902
7a0ddd20
AC
29032011-09-02 Vincent Celier <celier@adacore.com>
2904
2905 * prj-nmsc.db: (Check_Stand_Alone_Library): For SALs, allow
2906 only library names with the syntax of Ada identifiers, to avoid errors
2907 when compiling the binder generated files.
2908 * projects.texi: Document restriction on SAL library names
2909
29102011-09-02 Thomas Quinot <quinot@adacore.com>
2911
2912 * a-chtgbo.adb: Minor comment fix.
2913
439b6dfa
AC
29142011-09-02 Robert Dewar <dewar@adacore.com>
2915
2916 * lib-xref.adb: Minor reformatting
2917
29182011-09-02 Vincent Celier <celier@adacore.com>
2919
2920 * bindusg.adb, clean.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
2921 gnatls.adb, gnatname.adb, gnatxref.adb, gprep.adb, makeusg.adb: Add
2922 --version and --help in usage.
2923 * switch.ads, switch.adb (Display_Usage_Version_And_Help): New procedure
2924
f2404867
AC
29252011-09-02 Bob Duff <duff@adacore.com>
2926
2927 * lib-xref.adb: (Hash): Avoid use of 'Mod attribute, because old
2928 compilers don't understand it.
2929
29302011-09-02 Gary Dismukes <dismukes@adacore.com>
2931
2932 * exp_attr.adb (Expand_N_Attribute_Reference): Pass the
2933 underlying subtype rather than its base type on the call to
2934 Build_Record_Or_Elementary_Input_Function, so that any
2935 constraints on a discriminated subtype will be available for
2936 doing the check required by AI05-0192.
2937 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
2938 If the prefix subtype of the 'Input attribute is a constrained
2939 discriminated subtype, then check each constrained discriminant value
2940 against the corresponding value read from the stream.
2941
029b67ba
YM
29422011-09-02 Yannick Moy <moy@adacore.com>
2943
2944 * usage.adb, warnsw.adb, sem_ch6.adb, opt.ads: Disable by default
2945 warnings on suspicious contracts, and enable them with -gnatwa.
2946
dc36a7e3
RD
29472011-09-02 Robert Dewar <dewar@adacore.com>
2948
2949 * exp_util.adb, exp_ch9.adb, sem_attr.adb, sem_ch6.adb: Minor
2950 reformatting.
2951
d5aa443c
AC
29522011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
2953
2954 * exp_ch9.adb (Install_Private_Data_Declarations): Add guards
2955 which ensure that restriction No_Dynamic_Attachment has not been
2956 violated.
2957 (Make_Initialize_Protection): Protected types with attach or
2958 interrupt handlers must not violate restriction No_Dynamic_Attachment.
2959 * exp_util.adb (Corresponding_Runtime_Package): Add a guard
2960 which ensures that restriction No_Dynamic_Attachment has not been
2961 violated.
2962 * sem_attr.adb: (Eval_Attribute): Transform
2963 VAX_Float_Type'First and 'Last into references to
2964 the temporaries which store the corresponding bounds. The
2965 transformation is needed since the back end cannot evaluate
2966 'First and 'Last on VAX.
2967 (Is_VAX_Float): New routine.
2968
29692011-09-02 Ed Schonberg <schonberg@adacore.com>
2970
2971 * sem_ch12.adb (Analyze_Subprogram_Instantiation): If the
2972 generic unit is not intrinsic and has an explicit convention,
2973 the instance inherits it.
2974
67c86178
AC
29752011-09-02 Robert Dewar <dewar@adacore.com>
2976
2977 * prj-dect.adb, prj-env.adb, prj-nmsc.adb, prj-proc.adb, prj-tree.adb,
2978 prj.adb, prj.ads, sem_ch5.adb: Minor reformatting.
2979
29802011-09-02 Thomas Quinot <quinot@adacore.com>
2981
2982 * sem_attr.adb (Analyze_Attribute, case Unrestriced_Access):
2983 Guard against a prefix that is an N_Has_Entity but has no
2984 associated entity.
2985
29862011-09-02 Yannick Moy <moy@adacore.com>
2987
2988 * lib-xref-alfa.adb (Is_Alfa_Reference): Ignore IN parameters in Alfa
2989 references.
2990
29912011-09-02 Yannick Moy <moy@adacore.com>
2992
2993 * opt.ads (Warn_On_Suspicious_Contract): New warning flag.
2994 * sem_ch3.adb (Analyze_Declarations): Call checker for suspicious
2995 contracts.
2996 * sem_ch6.adb, sem_ch6.ads (Check_Subprogram_Contract): New
2997 procedure looking for suspicious postconditions.
2998 * usage.adb (Usage): New options -gnatw.t and -gnatw.T.
2999 * warnsw.adb (Set_Dot_Warning_Switch): Take into account new
3000 options -gnatw.t and -gnatw.T.
3001
735ca1b9
PO
30022011-09-02 Pascal Obry <obry@adacore.com>
3003
3004 * prj.adb: Minor code refactoring. Move check for null project in
3005 Project_Changed.
3006 * projects.texi: Fix minor typos.
3007
86828d40
AC
30082011-09-02 Ed Schonberg <schonberg@adacore.com>
3009
3010 * sem_ch5.adb (Analyze_Iterator_Specification): If the domain
3011 of iteration is an expression, its value must be captured in a
3012 renaming declaration, so that modification of the elements is
3013 propagated to the original container.
3014
30152011-09-02 Pascal Obry <obry@adacore.com>
3016
3017 * prj-proc.adb, prj.adb, makeutl.adb, makeutl.ads, prj-dect.adb,
3018 prj-nmsc.adb, prj-util.adb, prj-conf.adb, prj-env.adb,
3019 prj-tree.adb: Minor reformatting and style fixes.
3020
83de674b
AC
30212011-09-02 Robert Dewar <dewar@adacore.com>
3022
3023 * s-rident.ads: Add new restriction No_Implicit_Aliasing
3024 * sem_attr.adb: (Analyze_Access_Attribute): Deal with
3025 No_Implicit_Aliasing
3026 (Analyze_Attribute, case Address): ditto
3027 (Analyze_Attribute, case Unrestricted_Access): ditto
3028 * sem_util.ads, sem_util.adb: (Is_Aliased_View): Handle
3029 No_Implicit_Aliasing restriction.
3030 * gnat_rm.texi: Add documentation for No_Implicit_Aliasing
3031
30322011-09-02 Ed Schonberg <schonberg@adacore.com>
3033
3034 * exp_util.adb: (Possible_Bit_Aligned_Object): If the object
3035 is an unchecked conversion, apply test to its expression.
3036
30372011-09-02 Javier Miranda <miranda@adacore.com>
3038
3039 * sem_ch3.adb (Check_Abstract_Overriding): When
3040 traversing the chain of aliased subprograms avoid reporting a
3041 redundant error on the current entity.
3042
30432011-09-02 Sergey Rybin <rybin@adacore.com>
3044
3045 * gnat_ugn.texi: Minor clean up.
3046
30472011-09-02 Bob Duff <duff@adacore.com>
3048
3049 * s-htable.adb (Set_If_Not_Present): Use renaming
3050 instead of ":=", because the type Key is limited in the generic (even
3051 if not in the instances).
3052
2c17ca0a
AC
30532011-09-02 Robert Dewar <dewar@adacore.com>
3054
3055 * exp_util.adb, sem_ch10.adb, sem_attr.adb, s-htable.adb,
3056 g-comlin.adb, g-comlin.ads, lib-xref-alfa.adb, lib-xref.adb: Minor
3057 reformatting.
3058
30592011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
3060
3061 * sem_ch3.adb: (Set_Anonymous_Type): Associate the itype of an
3062 inherited component with the enclosing derived type. Code reformatting.
3063
30642011-09-02 Gary Dismukes <dismukes@adacore.com>
3065
3066 * checks.adb: (Determine_Range): Add test of OK1 to prevent the early
3067 return done when overflow checks are enabled, since comparisons against
3068 Lor and Hir should not be done when OK1 is False.
3069
30702011-09-02 Gary Dismukes <dismukes@adacore.com>
3071
3072 * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
3073 Add new formal Master_Exp. When present, add that expression to the
3074 call as an extra actual.
3075 (Make_Build_In_Place_Call_In_Object_Declaration): Add variable
3076 Fmaster_Actual and in the case of a BIP call initializing a return
3077 object of an enclosing BIP function set it to a
3078 new reference to the implicit finalization master
3079 formal of the enclosing function. Fmaster_Actual is
3080 then passed to the new formal Master_Exp on the call to
3081 Add_Finalization_Master_Actual_To_Build_ In_Place_Call. Move
3082 initializations of Enclosing_Func to its declaration.
3083
30842011-09-02 Thomas Quinot <quinot@adacore.com>
3085
3086 * csets.ads: Minor reformatting
3087
30882011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
3089
3090 * exp_aggr.adb: (Get_Constraint_Association): Add code to retrieve
3091 the full view of a private type coming from an instantiation.
3092 * exp_ch4.adb: (Current_Anonymous_Master): Reimplement the search
3093 loop to iterate over the declarations rather than use the
3094 First_Entity / Next_Entity scheme.
3095
ed32b82e
ES
30962011-09-02 Ed Schonberg <schonberg@adacore.com>
3097
3098 * sem_attr.adb: (Analyze_Attribute, case 'Range): when expanding
3099 X'range (N) into X'First (N) .. X'Last (N), do not share the
3100 dimension indicator N, if present. Even though it is a static
3101 constant, its source location may be modified when printing
3102 expanded code under -gnatDL, and node sharing will lead to chaos
3103 in Sprint on large files, by generating a sloc value that does
3104 not correspond to any source file.
3105
f7bb41af
AC
31062011-09-02 Bob Duff <duff@adacore.com>
3107
3108 * einfo.adb: (Has_Xref_Entry): Do not call
3109 Implementation_Base_Type. Lib.Xref has been
3110 rewritten to avoid the need for it, and it was costly.
3111 * s-htable.ads,s-htable.adb: (Present,Set_If_Not_Present): New
3112 functions in support of efficient xref.
3113 * lib-xref-alfa.adb: Misc changes related to Key component of
3114 type Xref_Entry.
3115 * lib-xref.adb: (Add_Entry,etc): Speed improvement.
3116 (New_Entry): Call Implementation_Base_Type, because Has_Xref_Entry
3117 no longer does. This is the one place where it is needed.
3118
31192011-09-02 Johannes Kanig <kanig@adacore.com>
3120
3121 * g-comlin.adb (Getopt): New optional argument Concatenate to have
3122 similar interface as the other Getopt function.
3123
31242011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
3125
3126 * exp_ch4.adb: (Expand_Allocator_Expression): Do not generate
3127 a call to Set_Finalize_Address if there is no allocator available.
3128 * exp_util.adb: (Build_Allocate_Deallocate_Proc): Account for
3129 a case of allocator expansion where the allocator is not expanded but
3130 needs a custom allocate routine. Code reformatting.
3131 (Is_Finalizable_Transient): Remove local variables Has_Rens and
3132 Ren_Obj. Code reformatting.
3133 (Is_Renamed): Renamed to Is_Aliased. Add code to detect aliasing
3134 through the use of 'reference.
3135 * sem_ch4.adb: (Analyze_Allocator): Detect allocators generated
3136 as part of build-in-place expansion. They are intentionally marked as
3137 coming from source, but their parents are not.
3138
bd0bc43e
AC
31392011-09-02 Ed Schonberg <schonberg@adacore.com>
3140
3141 * sem_ch10.adb (Analyze_With_Clause): If the library unit
3142 is the generated subprogram declaration for a child unit body
3143 that acts as spec, use the original body in the with_clause,
3144 to prevent binding errors.
3145
31462011-09-02 Vincent Celier <celier@adacore.com>
3147
3148 * gnat_ugn.texi: Adapt documentation of -gnateInnn to new VMS
3149 qualifier /MULTI_UNIT_INDEX=
3150
31512011-09-02 Johannes Kanig <kanig@adacore.com>
3152
3153 * g-comlin.adb (Getopt): Return when switch is dealt with automatically,
3154 instead of calling the callback function
3155
9fdb5d21
RD
31562011-09-02 Robert Dewar <dewar@adacore.com>
3157
3158 * prj-proc.adb, prj.ads, sem_util.adb, s-taprop-linux.adb,
3159 prj-nmsc.adb, prj-util.ads, prj-env.adb: Minor reformatting.
3160
c6d5d1ac
AC
31612011-09-02 Vincent Celier <celier@adacore.com>
3162
3163 * prj-nmsc.adb: (Find_Sources): When the list of sources is
3164 explicitly declared in an extending project, do not warn if a source
3165 for an inherited naming exception is not found.
3166
31672011-09-02 Gary Dismukes <dismukes@adacore.com>
3168
3169 * exp_ch6.adb: (Is_Build_In_Place_Function_Call): Return False if
3170 expansion is inactive.
3171
31722011-09-02 Ed Schonberg <schonberg@adacore.com>
3173
3174 * sem_util.adb (Note_Possible_Modification): If the entity
3175 being modified is the renaming generated for an Ada2012 iterator
3176 element, the enclosing container or array is modified as well.
3177
2ba1a7c7
AC
31782011-09-02 Jose Ruiz <ruiz@adacore.com>
3179
3180 * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB,
3181 Initialize): Define and initialize the
3182 mutex attributes and condition variable attributes locally.
3183
31842011-09-02 Vincent Celier <celier@adacore.com>
3185
3186 * prj-nmsc.adb (Check_File): Mark as Locally_Removed a naming
3187 exception replaced in an extending project.
3188 (Check_Object): No error when the other source is locally removed.
3189
31902011-09-02 Yannick Moy <moy@adacore.com>
3191
3192 * exp_ch6.adb (Is_Build_In_Place_Function_Call): in Alfa mode, allow
3193 unresolved calls.
3194
d51813db
AC
31952011-08-31 Arnaud Charlet <charlet@adacore.com>
3196
3197 * gcc-interface/Makefile.in: Clean up handling of x86 and x86-64
3198 run-time files.
3199 * gcc-interface/Make-lang.in: Update dependencies.
3200
9f55bc62
AC
32012011-09-01 Robert Dewar <dewar@adacore.com>
3202
3203 * sem_ch3.adb, s-taprop-linux.adb, gnatls.adb: Minor reformatting.
3204
32052011-09-01 Jose Ruiz <ruiz@adacore.com>
3206
3207 * adaint.h (__gnat_cpu_free): Fix the name of this profile.
3208 * adaint.c (__gnat_cpu_alloc, __gnat_cpu_alloc_size, __gnat_cpu_free,
3209 __gnat_cpu_zero, __gnat_cpu_set): Create version of these subprograms
3210 specific for systems where their glibc version does not define the
3211 routines to handle dynamically allocated CPU sets.
3212
32132011-09-01 Vincent Celier <celier@adacore.com>
3214
3215 * prj-proc.adb, prj.ads, prj-nmsc.adb, prj-util.adb, prj-util.ads,
3216 prj-env.adb: Implement inheritance of naming exceptions in extending
3217 projects.
3218
d7386a7a
AC
32192011-09-01 Romain Berrendonner <berrendo@adacore.com>
3220
3221 * gnatls.adb: Display simple message instead of content of
3222 gnatlic.adl.
3223
32242011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3225
3226 * sem_ch3.adb: (Build_Derived_Record_Type) Remove the kludgy update of
3227 access discriminant and anonymous access component scopes.
3228 (Inherit_Component): Reuse the itype of an access discriminant
3229 or anonymous access component by copying it in order to set the proper
3230 scope. This is done only when the parent and the derived type
3231 are in different scopes.
3232 (Set_Anonymous_Etype): New routine.
3233
32342011-09-01 Robert Dewar <dewar@adacore.com>
3235
3236 * a-convec.adb: Minor reformatting throughout.
3237
9d1e0e72
JR
32382011-09-01 Jose Ruiz <ruiz@adacore.com>
3239
3240 * adaint.c, adaint.h (__gnat_cpu_alloc, __gnat_cpu_alloc_size,
3241 __gnat_cpu_set_free): Create these wrappers around the CPU_ALLOC,
3242 CPU_ALLOC_SIZE and CPU_FREE linux macros.
3243 (__gnat_cpu_zero, __gnat_cpu_set): Use the CPU_ZERO_S and
3244 CPU_SET_S respectively because we are now using dynamically allocated
3245 CPU sets which are more portable across different glibc versions.
3246 * s-osinte-linux.ads (cpu_set_t_ptr, CPU_ALLOC, CPU_ALLOC_SIZE,
3247 CPU_FREE): Add this type and subprograms to be able to create cpu_set_t
3248 masks dynamically according to the number of processors in the target
3249 platform.
3250 (CPU_ZERO, CPU_SET): They are now mapped to the CPU_ZERO_S and CPU_SET_S
3251 respectively, so we need to pass the size of the masks as
3252 parameters.
3253 * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use dynamically
3254 created cpu_set_t masks
3255 with the number of processors available in the target platform,
3256 instead of static bit arrays. It enhances portability because
3257 it uses the information from the target platform.
3258 * sem_ch8.adb: (Attribute_Renaming): When checking whether we
3259 are using a restricted run-time library, use the flag
3260 Configurable_Run_Time_Mode instead of Restricted_Profile.
3261
a95be2d4
AC
32622011-09-01 Vincent Celier <celier@adacore.com>
3263
3264 * ug_words: Add /MULTI_UNIT_INDEX= -> -gnateI
3265 * vms_data.ads: Add new VMS qualifier equivalent for -gnateInnn
3266
32672011-09-01 Nicolas Roche <roche@adacore.com>
3268
3269 * adaint.c (__gnat_tmp_name): Don't use tmpnam function from the system
3270 on VxWorks in kernel mode.
3271
6b81741c
AC
32722011-09-01 Jose Ruiz <ruiz@adacore.com>
3273
3274 * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use the linux
3275 macros for handling CPU sets (CPU_ZERO, CPU_SET) instead of modifying
3276 directly the bit array.
3277 * s-osinte-linux.ads (CPU_ZERO, CPU_SET): Import these wrappers around
3278 the linux macros with the same name.
3279 * adaint.h, adaint.c (__gnat_cpu_zero, __gnat_cpu_set): Create these
3280 wrappers around the CPU_ZERO and CPU_SET linux macros.
3281
32822011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3283
3284 * exp_ch7.adb (Find_Insertion_List): Removed.
3285 (Process_Transient_Objects): Insert the declarations of the hook
3286 access type and the hook object before the associated transient object.
3287
32882011-09-01 Jose Ruiz <ruiz@adacore.com>
3289
3290 * sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading
3291 package System.Aux_Dec when using restricted run-time libraries which
3292 do not have this package.
3293
32942011-09-01 Tristan Gingold <gingold@adacore.com>
3295
3296 * s-vaflop-vms-alpha.adb: Remove pragma optimize, useless.
3297
32982011-09-01 Bob Duff <duff@adacore.com>
3299
3300 * sem_attr.adb (Analyze_Access_Attribute): Do not call
3301 Kill_Current_Values for P'Unrestricted_Access, where P is library level
3302
33032011-09-01 Thomas Quinot <quinot@adacore.com>
3304
3305 * exp_ch5.adb: Minor reformatting
3306 * gnat_ugn.texi: Fix minor typos.
3307 * gcc-interface/Make-lang.in: Update dependencies.
3308
8256c1bf
AC
33092011-09-01 Robert Dewar <dewar@adacore.com>
3310
3311 * inline.adb, sem_aggr.adb: Minor reformatting.
3312
33132011-09-01 Ed Schonberg <schonberg@adacore.com>
3314
3315 * a-convec.adb: Proper handling of cursors for Ada2012 iterators.
3316
d1c5f424
AC
33172011-09-01 Robert Dewar <dewar@adacore.com>
3318
3319 * prj-proc.adb, exp_ch6.adb, prj-env.adb: Minor reformatting.
3320
33212011-09-01 Bob Duff <duff@adacore.com>
3322
3323 * sem_aggr.adb (Resolve_Aggregate): Need to treat "in instance
3324 body" the same as "in inlined body", because visibility shouldn't
3325 apply there.
3326
33272011-09-01 Eric Botcazou <ebotcazou@adacore.com>
3328
3329 * inline.adb (Add_Inlined_Body): Refine previous change.
3330
1bb6e262
AC
33312011-09-01 Gary Dismukes <dismukes@adacore.com>
3332
3333 * exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function.
3334 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
3335 Test for case where call
3336 initializes an object of a return statement before testing for
3337 a constrained call, to ensure that all such cases get handled
3338 by simply passing on the caller's parameters. Also, in that
3339 case call Needs_BIP_Alloc_Form to determine whether to pass on
3340 the BIP_Alloc_Form parameter of the enclosing function rather
3341 than testing Is_Constrained. Add similar tests for the return
3342 of a BIP call to later processing to ensure consistent handling.
3343 (Needs_BIP_Alloc_Form): New utility function.
3344 * sem_ch6.adb: (Create_Extra_Formals): Replace test for adding
3345 a BIP_Alloc_Form formal with call to new utility function
3346 Needs_BIP_Alloc_Form.
3347
33482011-09-01 Pascal Obry <obry@adacore.com>
3349
3350 * prj-part.adb: Minor reformatting.
3351
33522011-09-01 Vincent Celier <celier@adacore.com>
3353
3354 * prj-env.adb (Create_Mapping_File.Process): Encode the upper
3355 half character in the unit name.
3356
db15225a
AC
33572011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3358
3359 * exp_ch4.adb: Minor code and comment reformatting.
3360
33612011-09-01 Thomas Quinot <quinot@adacore.com>
3362
3363 * exp_ch6.adb (Expand_Inlined_Call): Remove redundant tests
3364 for Is_Limited_Type and Is_Tagged_Type in condition checking
3365 for by-reference type.
3366 * inline.adb (Add_Inlined_Body): Only exclude init_procs. Other
3367 subprograms may have a completion because of a previous
3368 Inline_Always clause, but the enclosing package must be marked
3369 inlined for the subprogram body to become visible to the backend.
3370
9d641fc0
TQ
33712011-09-01 Thomas Quinot <quinot@adacore.com>
3372
3373 * sem_aux.adb, exp_ch4.adb: Minor reformatting
3374
dbe36d67
AC
33752011-09-01 Pascal Obry <obry@adacore.com>
3376
3377 * prj-proc.adb, prj.ads, sinput-p.adb: Minor reformatting.
3378
33792011-09-01 Ed Schonberg <schonberg@adacore.com>
3380
3381 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate references to
3382 the formals of a subprogram stub that acts as a spec.
3383
33842011-09-01 Ed Schonberg <schonberg@adacore.com>
3385
3386 * exp_ch6.adb (Expand_Inlined_Call): If an actual is a by_reference
3387 type, declare a renaming for it, not an object declaration.
3388
f5037886
AC
33892011-09-01 Yannick Moy <moy@adacore.com>
3390
3391 * ali-util.adb, ali-util.ads (Read_Withed_ALIs): Add parameter
3392 Ignore_Errors to ignore failures to read ALI files when True.
3393
33942011-09-01 Javier Miranda <miranda@adacore.com>
3395
3396 * exp_ch3.adb (Expand_N_Object_Declaration): Handle non-default
3397 constructor calls associated with non-tagged record types.
3398
33992011-09-01 Robert Dewar <dewar@adacore.com>
3400
3401 * g-socthi-vms.adb: Minor reformatting.
3402
34032011-09-01 Nicolas Roche <roche@adacore.com>
3404
3405 * sysdep.c: Don't use macro functions for stdio functions on VxWorks
3406 in order to avoid impact of imcompatible changes.
3407 * cstreams.c: Likewise
3408 * cio.c: Likewise
3409 * aux-io.c: Likewise
3410
34112011-09-01 Yannick Moy <moy@adacore.com>
3412
3413 * lib-writ.adb (Write_With_Lines): Always output complete information
3414 on "with" line in Alfa mode, as this is required by formal verification
3415 back-end.
3416
549e4558
AC
34172011-09-01 Tristan Gingold <gingold@adacore.com>
3418
3419 * g-socthi-vms.adb: Add comments.
3420
34212011-09-01 Pascal Obry <obry@adacore.com>
3422
3423 * prj.ads: Minor reformatting.
3424
70c0422d
AC
34252011-09-01 Vincent Celier <celier@adacore.com>
3426
3427 * prj-env.adb (Create_Config_Pragmas_File.Check): Put all naming
3428 exceptions in the config pragmas file.
3429
34302011-09-01 Tristan Gingold <gingold@adacore.com>
3431
3432 * gnat_ugn.texi: Document GNAT_STACK_SIZE on IVMS.
3433
8c5b03a0
AC
34342011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3435
3436 * exp_ch7.adb (Find_Insertion_List): New routine.
3437 (Process_Transient_Objects): Add code to handle the abnormal
3438 finalization of a controlled transient associated with a subprogram
3439 call. Since transients are cleaned up right after the associated
3440 context, an exception raised during a subprogram call may bypass the
3441 finalization code.
3442
34432011-09-01 Robert Dewar <dewar@adacore.com>
3444
3445 * exp_ch6.adb (Expand_Call): Check actual for aliased parameter is
3446 aliased.
3447
3040dbd4
RD
34482011-09-01 Robert Dewar <dewar@adacore.com>
3449
3450 * exp_ch4.adb, a-exexda.adb: Minor reformatting.
3451
fecbd779
AC
34522011-09-01 Robert Dewar <dewar@adacore.com>
3453
3454 * s-taskin.ads, s-tassta.adb, sem_ch13.adb: Minor reformatting.
3455
34562011-09-01 Thomas Quinot <quinot@adacore.com>
3457
3458 * Makefile.rtl: Move s-oscons.o from GNATRTL_TASKING_OBJS to
3459 GNATRTL_NONTASKING_OBJS.
3460
34612011-09-01 Robert Dewar <dewar@adacore.com>
3462
3463 * einfo.ads (Is_Aliased): Fix existing documentation and add note on
3464 possibility of this flag being set for formals in Ada 2012 mode.
3465 * par-ch6.adb (P_Formal_Part): Handle aliased for parameters for Ada
3466 2012.
3467 * sem_ch6.adb (Process_Formals): Handle aliased parameters in Ada 2012
3468 mode.
3469 * sinfo.adb (Aliased_Present): Allowed in N_Parameter_Specification for
3470 Ada 2012.
3471 * sinfo.ads (Aliased_Present): Allowed in N_Parameter_Specification for
3472 Ada 2012.
3473
34742011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3475
3476 * exp_ch4.adb (Find_Insertion_Node): New routine. Determines the proper
3477 insertion node in a tree of nested Expression_With_Actions nodes.
3478 (Process_Transient_Object): In the case where a complex if statement
3479 has been converted into nested Expression_With_Actions nodes, the
3480 "hook" object and the associated access type must be inserted before
3481 the top most Expression_With_Actions.
3482
516f608f
AC
34832011-09-01 Robert Dewar <dewar@adacore.com>
3484
3485 * a-cbprqu.adb, a-cbprqu.ads, a-cuprqu.adb, a-cuprqu.ads,
3486 a-cbsyqu.adb, a-cbsyqu.ads: Minor reformatting.
3487
34882011-09-01 Ed Schonberg <schonberg@adacore.com>
3489
3490 * sem_attr.adb: Conditionalize aliasing predicates to Ada2012.
3491
34922011-09-01 Jose Ruiz <ruiz@adacore.com>
3493
3494 * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the CPU
3495 aspect.
3496 * aspects.adb (Canonical_Aspect): Add entry for the CPU aspect.
3497 * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the CPU aspect
3498 in a similar way as we do for the Priority or Dispatching_Domain aspect.
3499 * s-mudido-affinity.adb (Dispatching_Domain_Tasks,
3500 Dispatching_Domains_Frozen): Move this local data to package
3501 System.Tasking because with the CPU aspect we need to have access
3502 to this data when creating the task in System.Tasking.Stages.Create_Task
3503 * s-taskin.ads (Dispatching_Domain_Tasks, Dispatching_Domains_Frozen):
3504 Move these variables from the body of
3505 System.Multiprocessors.Dispatching_Domains because with the CPU aspect
3506 we need to have access to this data when creating the task in
3507 System.Tasking.Stages.Create_Task.
3508 * s-taskin.adb (Initialize): Signal the allocation of the environment
3509 task to a CPU, if any, so that we know whether the CPU can be
3510 transferred to a different dispatching domain.
3511 * s-tassta.adb (Create_Task): Check whether the CPU to which this task
3512 is being allocated belongs to the dispatching domain where the task
3513 lives. Signal the allocation of the task to a CPU, if any, so that we
3514 know whether the CPU can be transferred to a different dispatching
3515 domain.
3516
2d42e881
ES
35172011-09-01 Ed Schonberg <schonberg@adacore.com>
3518
3519 * exp_attr.adb, sem_attr.adb, snames.ads-tmpl: Implementation of
3520 attributes Same_Storage and Overlaps_Storage.
3521
579fda56
AC
35222011-09-01 Hristian Kirtchev <kirtchev@adacore.com>
3523
3524 * exp_strm.adb: Remove with and use clause for Opt.
3525 (Build_Array_Input_Function): Remove the version-dependent generation
3526 of the return statement. The Ada 2005 tree is now the default.
3527
35282011-09-01 Yannick Moy <moy@adacore.com>
3529
3530 * put_alfa.adb: Unconditionnally write files in Alfa section, so that
3531 it is never empty when compiling in Alfa mode.
3532
35332011-09-01 Robert Dewar <dewar@adacore.com>
3534
3535 * sem_aggr.adb, sem_ch3.adb, a-direct.adb, s-taprop-vxworks.adb,
3536 comperr.adb, exp_ch9.adb, exp_pakd.adb, sem_ch12.adb, freeze.adb,
3537 s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb,
3538 gnat1drv.adb, a-rbtgbo.adb, exp_dist.adb: Minor reformatting
3539
35402011-09-01 Matthew Heaney <heaney@adacore.com>
3541
3542 * Makefile.rtl, impunit.adb: Add a-csquin.ads, a-cusyqu.ad[sb],
3543 a-cuprqu.ad[sb], a-cbsyqu.ad[sb], a-cbprqu.ad[sb]
3544 * a-csquin.ads: New Ada 2012 unit that specifies the queue interface
3545 * a-cusyqu.ads, a-cusyqu.adb: New Ada 2012 unit that specifies the
3546 unbounded queue container.
3547 * a-cbsyqu.ads, a-cbsyqu.adb: New Ada 2012 unit that specifies the
3548 bounded queue container.
3549 * a-cuprqu.ads, a-cuprqu.adb: New Ada 2012 unit that specifies the
3550 unbounded priority queue container.
3551 * a-cbprqu.ads, a-cbprqu.adb: New Ada 2012 unit that specifies the
3552 bounded priority queue container.
3553
24c34107
AC
35542011-08-31 Pascal Obry <obry@adacore.com>
3555
3556 * a-direct.adb: Do not try to create an UNC path on Windows.
3557 (Create_Path): Skip leading computer name in UNC path if any.
3558
35592011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3560
3561 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Remove the
3562 version-dependent generation of the return statement. The Ada 2005 tree
3563 is now the default.
3564
35652011-08-31 Thomas Quinot <quinot@adacore.com>
3566
3567 * rtsfind.ads, exp_dist.adb (Find_Numeric_Representation): Predefined
3568 types Stream_Element_Offset and Storage_Offset have a different native
3569 type depending on whether the platform is 32 or 64 bits. When
3570 exchanging them, always convert to 64 bits.
3571
35722011-08-31 Yannick Moy <moy@adacore.com>
3573
3574 * debug.adb: Reserve debug option -gnatd.E for passing gnatprove option
3575 --force-alfa to gnat2why.
3576
35772011-08-31 Ed Schonberg <schonberg@adacore.com>
3578
3579 * sem_ch12.adb (Save_References): If the node has aspects, save
3580 references within the corresponding expressions in a separate step,
3581 because the aspects are not directly in the tree for the declaration
3582 to which they belong.
3583
35842011-08-31 Arnaud Charlet <charlet@adacore.com>
3585
3586 * freeze.adb (Freeze_Record_Type): Omit test on variable size component
3587 in CodePeer mode, since representation clauses are partially ignored.
3588 * gcc-interface/Make-lang.in: Update dependencies.
3589
702d2020
AC
35902011-08-31 Jose Ruiz <ruiz@adacore.com>
3591
3592 * s-taprop-vxworks.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
3593 s-taprop-solaris.adb (Create_Task): Not_A_Specific_CPU can be assigned
3594 to any dispatching domain.
3595
35962011-08-31 Thomas Quinot <quinot@adacore.com>
3597
3598 * exp_ch4.adb: Minor reformatting.
3599
36002011-08-31 Bob Duff <duff@adacore.com>
3601
3602 * sem_ch6.adb (Get_Generic_Parent_Type): Don't query Subtype_Indication
3603 on nodes for which it is not defined.
3604 (Is_Non_Overriding_Operation): Exit the loop when we find a generic
3605 parent type.
3606
36072011-08-31 Bob Duff <duff@adacore.com>
3608
3609 * sem_ch3.adb (Process_Full_View): Disable legality check if
3610 In_Instance, to avoid spurious errors.
3611 * sem_ch12.adb (Validate_Derived_Type_Instance): Disable legality check
3612 if In_Instance, to avoid spurious errors.
3613
36142011-08-31 Pascal Obry <obry@adacore.com>
3615
3616 * a-direct.adb: Use Dir_Seps everywhere to properly handle all
3617 directory speparators.
3618 (Compose): Use Dir_Seps to handle both forms.
3619 (Create_Path): Use Dir_Seps instead of explicit check, no semantic
3620 changes.
3621 (Extension): Use Dir_Seps to handle both forms.
3622
36232011-08-31 Pascal Obry <obry@adacore.com>
3624
3625 * prj-conf.adb: Minor reformatting.
3626
67645bde
AC
36272011-08-31 Jose Ruiz <ruiz@adacore.com>
3628
3629 * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the
3630 dispatching domain aspect.
3631 * aspects.adb (Canonical_Aspect): Add entry for the dispatching domain
3632 aspect.
3633 * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the
3634 Dispatching_Domain aspect in a similar way as we do for the Priority
3635 aspect.
3636 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add the
3637 Dispatching_Domain component if a Dispatching_Domain pragma or aspect
3638 is present.
3639 (Make_Task_Create_Call): Add the Dispatching_Domain when creating a task
3640 * par-prag.adb (Prag): Add Pragma_Dispatching_Domain as a known pragma.
3641 * sem_prag.adb (Analyze_Pragma): Check the correctness of a pragma
3642 Dispatching_Domain and add it to the task definition.
3643 (Sig_Flags): Add Pragma_Dispatching_Domain.
3644 * rtsfind.ads, rtsfind.adb (RTU_Id, RE_Id, Get_Unit_Name): Add the
3645 support to find the types Dispatching_Domain and
3646 Dispatching_Domain_Access.
3647 * sinfo.ads, sinfo.adb (Has_Pragma_Dispatching_Domain,
3648 Set_Has_Pragma_Dispatching_Domain): Add these subprograms to set and
3649 query the availability of a pragma Dispatching_Domain.
3650 * snames.ads-tmpl (Name_uDispatching_Domain): Add this name required by
3651 the expander to pass the Dispatching_Domain when creating a task.
3652 (Name_Dispatching_Domain): Add this new name for a pragma.
3653 (Pragma_Id): Add the new Pragma_Dispatching_Domain.
3654 * s-tassta.ads, s-tassta.adb (Create_Task): Set the domain to which the
3655 task has been allocated at creation time.
3656 * s-tarest.adb (Create_Restricted_Task): The dispatching domain using
3657 Ravenscar is always null.
3658 * s-taskin.ads, s-taskin.adb (Initialize_ATCB): Set the domain to which
3659 the task has been allocated at creation time.
3660 * s-tporft.adb (Register_Foreign_Thread): A foreign task will not have
3661 a specific dispatching domain.
3662 * s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-vxworks.adb,
3663 s-taprop-mingw.adb (Create_Task): Check whether both Dispatching_Domain
3664 and CPU are specified for the task, and the CPU value is not contained
3665 within the range of processors for the domain.
3666
36672011-08-31 Vincent Celier <celier@adacore.com>
3668
3669 * make.adb (Original_Gcc) : New constant String_Access.
3670 (Gnatmake): For VM targets, do not use VM version of the compiler if
3671 --GCC= has been specified.
3672
36732011-08-31 Thomas Quinot <quinot@adacore.com>
3674
3675 * sem_ch5.adb: Minor reformatting.
3676
36772011-08-31 Ed Schonberg <schonberg@adacore.com>
3678
3679 * exp_pakd.adb (Convert_To_PAT_Type): If prefix is a function call, do
3680 not reanalyze it.
3681
36822011-08-31 Bob Duff <duff@adacore.com>
3683
3684 * exp_ch4.adb (Expand_N_Selected_Component): Use the full type, in case
3685 the access type is private; we don't care about privacy in expansion.
3686
36872011-08-31 Ed Schonberg <schonberg@adacore.com>
3688
3689 * sem_aggr.adb (Resolve_Aggregate): In an instance, ignore aggregate
3690 subcomponents tnat may be limited, because they originate in view
3691 conflicts. If the original aggregate is legal and the actuals are
3692 legal, the aggregate itself is legal.
3693
b8789727
AC
36942011-08-31 Matthew Heaney <heaney@adacore.com>
3695
3696 * a-rbtgbo.adb (Clear_Tree): Assert representation invariant for lock
3697 status.
3698
36992011-08-31 Ed Schonberg <schonberg@adacore.com>
3700
3701 * sem_ch5.adb: Set kind of loop parameter properly, to preserve all
3702 errors in B tests.
3703
37042011-08-31 Jose Ruiz <ruiz@adacore.com>
3705
3706 * sem_ch13.adb (Analyze_Aspect_Specifications): For the Priority and
3707 Interrupt_Priority aspects, force the analysis of the aspect expression
3708 (when building the equivalent pragma). Otherwise, its analysis is done
3709 too late, after the task or protected object has been created.
3710 * sem_ch9.adb (Analyze_Single_Protected_Declaration,
3711 Analyze_Single_Task_Declaration): Remove the code to move the aspects
3712 to the object declaration because they are needed in the type
3713 declaration.
3714
e0c32166
AC
37152011-08-31 Robert Dewar <dewar@adacore.com>
3716
3717 * exp_ch5.adb, exp_ch7.ads, sem_ch5.adb, put_scos.adb, s-rannum.adb,
3718 a-rbtgbo.adb, exp_intr.adb, a-cbdlli.adb, a-cbdlli.ads: Minor
3719 reformatting.
3720
37212011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3722
3723 * exp_util.adb (Find_Protection_Type): Do not look for fields _object
3724 if the corresponding type is malformed due to restriction violations.
3725
37262011-08-31 Robert Dewar <dewar@adacore.com>
3727
3728 * s-ransee.ads, s-ransee.adb: Minor reformatting.
3729
37302011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3731
3732 * exp_ch4.adb (Expand_N_Allocator): Correct faulty condition which
3733 would cause the generation of Set_Finalize_Address if the target is a
3734 VM and the designated type is not derived from [Limited_]Controlled.
3735
37362011-08-31 Arnaud Charlet <charlet@adacore.com>
3737
3738 * comperr.adb, comperr.ads, gnat1drv.adb (Delete_SCIL_Files): New
3739 subprogram.
3740 (Compiler_Abort, Gnat1drv): Call Delete_SCIL_Files in codepeer mode in
3741 case of a compilation error.
3742
37432011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3744
3745 * init.c (__gnat_error_handler): Standardize the stack overflow or
3746 erroneous memory access message.
3747 * seh_init.c (__gnat_SEH_error_handler): Standardize the stack overflow
3748 or erroneous memory access message.
3749
11bc76df
AC
37502011-08-31 Robert Dewar <dewar@adacore.com>
3751
3752 * sem_ch4.adb: Minor reformatting.
3753 * sem_ch6.adb: Minor code reorganization (use Ekind_In).
3754
37552011-08-31 Thomas Quinot <quinot@adacore.com>
3756
3757 * scos.ads: Minor documentation clarification.
3758 * put_scos.adb: Do not generate SCO unit header line for a unit that
3759 has no SCO lines.
3760
876d4394
RD
37612011-08-31 Robert Dewar <dewar@adacore.com>
3762
3763 * a-rbtgbo.adb, alfa_test.adb: Minor reformatting.
3764
36b8f95f
AC
37652011-08-31 Tristan Gingold <gingold@adacore.com>
3766
3767 * exp_ch7.ads, exp_ch7.adb (Finalization_Exception_Data): New type to
3768 hold variables between these following subprograms.
3769 (Build_Exception_Handler, Build_Object_Declarations,
3770 Build_Raise_Statement): Use the above type as parameter.
3771 Make the above adjustments.
3772 * exp_intr.adb (Expand_Unc_Deallocation): Adjust.
3773
37742011-08-31 Pascal Obry <obry@adacore.com>
3775
3776 * projects.texi: Minor reformatting.
3777
37782011-08-31 Tristan Gingold <gingold@adacore.com>
3779
3780 * s-ransee.ads, s-ransee.adb: Add system.random_seed unit.
3781 * s-rannum.adb (Reset): Use Get_Seed from s-ransee.
3782
37832011-08-31 Ed Schonberg <schonberg@adacore.com>
3784
3785 * exp_ch5.adb: Minor code cleanup.
3786 * sem_ch5.adb (Analyze_Iteration_Scheme): Set ekind of loop variable to
3787 prevent cascaded errors.
3788 (Analyze_Loop_Statement): In semantics-only mode, introduce loop
3789 variable of an iterator specification in current scope.
3790 * sem_ch6.adb (Analyze_Return_Statement, Find_what_It_Apples_To): Skip
3791 postconditions on the stack, as they contain no return statements.
3792
37932011-08-31 Yannick Moy <moy@adacore.com>
3794
3795 * exp_alfa.adb (Expand_Alfa_N_Package_Declaration,
3796 Expand_Alfa_N_Subprogram_Body): Remove useless procedures which simply
3797 call Qualify_Entity_Names.
3798 (Expand_Alfa): call Qualify_Entity_Names in more cases
3799 * lib-xref-alfa.adb: Take into account system package.
3800 * sem_prag.adb Take into account restrictions in Alfa mode, contrary to
3801 CodePeer mode in which we are interested in finding bugs even if
3802 compiler cannot compile source.
3803 * sem_util.adb, sem_util.ads (Unique_Entity): Take into account case of
3804 deferred constant.
3805
38062011-08-31 Gary Dismukes <dismukes@adacore.com>
3807
3808 * sem_ch3.adb (Constrain_Concurrent): Retrieve Base_Type of the subtype
3809 denoted by the subtype mark to ensure getting the concurrent type in
3810 the case where the subtype mark denotes a private subtype of a
3811 concurrent type (needed when using -gnatc).
3812 (Process_Subtype): For the processing specific to type kinds, case on
3813 the Base_Type kind of the Subtype_Mark_Id, to handle cases where the
3814 subtype denotes a private subtype whose base type is nonprivate (needed
3815 for subtypes of private fulfilled by task types when compiling with
3816 -gnatc).
3817
38182011-08-31 Gary Dismukes <dismukes@adacore.com>
3819
3820 * sem_disp.adb (Check_Dispatching_Operation): Bypass registration of
3821 late primitives that override interface operations when the full
3822 expander is not active, to avoid blowups in Register_Primitive when
3823 types don't have associated secondary dispatch tables.
3824
38252011-08-31 Yannick Moy <moy@adacore.com>
3826
3827 * alfa_test.adb: Code clean up.
3828
38292011-08-31 Marc Sango <sango@adacore.com>
3830
3831 * restrict.adb (Check_SPARK_Restriction): Change Comes_From_Source (N)
3832 by Comes_From_Source (Original_Node (N)) in order to treat also the
3833 nodes which have been rewritten.
3834 * sem_ch4.adb (Analyze_Explicit_Dereference, Analyze_Slice): Guard the
3835 explicit dereference and slice violation in spark mode on the nodes
3836 coming only from the source code.
3837
8cf23b91
AC
38382011-08-31 Robert Dewar <dewar@adacore.com>
3839
3840 * exp_ch5.adb, exp_alfa.ads, prj.ads, sem_attr.adb,
3841 lib-xref-alfa.adb: Minor reformatting.
3842
38432011-08-31 Matthew Heaney <heaney@adacore.com>
3844
3845 * a-crbltr.ads (Tree_Type): Default-initialize the Nodes component.
3846
38472011-08-31 Javier Miranda <miranda@adacore.com>
3848
3849 * sem_ch4.adb (Try_Object_Operation): Addition of one formal to search
3850 only for class-wide subprograms conflicting with entities of concurrent
3851 tagged types.
3852
38532011-08-31 Matthew Heaney <heaney@adacore.com>
3854
3855 * a-rbtgbo.adb (Generic_Allocate): Initialize pointer components of
3856 node to null value.
3857
38582011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3859
3860 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Provide a more
3861 general description of the routine.
3862
38632011-08-31 Ed Schonberg <schonberg@adacore.com>
3864
3865 * a-cbdlli.adb, a-cbdlli.ads: Add iterator machinery to bounded
3866 doubly-linked lists.
3867
0bb3bfb8
GD
38682011-08-31 Gary Dismukes <dismukes@adacore.com>
3869
3870 * exp_ch5.adb (Expand_N_Assignment_Statement): When a discriminant
3871 check is needed for a left-hand side that is a dereference, and the
3872 base type is private without discriminants (whereas the full type does
3873 have discriminants), an extra retrieval of the underlying type may be
3874 needed in the case where the subtype is a record subtype whose base
3875 type is private. Update comments.
3876
11fa950b
AC
38772011-08-31 Javier Miranda <miranda@adacore.com>
3878
3879 * sem_ch4.adb (Try_Object_Operation): When a dispatching primitive is
3880 found check if there is a class-wide subprogram covering the primitive.
3881
38822011-08-31 Yannick Moy <moy@adacore.com>
3883
3884 * sem_res.adb: Further cases where full expansion test is needed,
3885 rather than expansion test.
3886
38872011-08-31 Pascal Obry <obry@adacore.com>
3888
3889 * prj-attr.adb: Fix Source_File_Switches attribute kind (must be a list)
3890
38912011-08-31 Ed Schonberg <schonberg@adacore.com>
3892
3893 * exp_ch5.adb: Handle iterators over derived container types.
3894
38952011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3896
3897 * einfo.ads, einfo.adb: Add new flag Has_Anonymous_Master.
3898 (Has_Anonymous_Master): New routine.
3899 (Set_Has_Anonymous_Master): New routine.
3900 (Write_Entity_Flags): Add an entry for Has_Anonymous_Master.
3901 * exp_ch4.adb: Add with and use clause for Sem_Ch8.
3902 (Current_Anonymous_Master): New routine.
3903 (Current_Unit_First_Declaration): Removed.
3904 (Current_Unit_Scope): Removed.
3905 (Expand_N_Allocator): Anonymous access-to-controlled types now chain
3906 their objects on a per-unit heterogeneous finalization master.
3907
39082011-08-31 Matthew Heaney <heaney@adacore.com>
3909
3910 * a-cbhama.adb, a-cbhase.adb (Insert): Check for zero-length buckets
3911 array.
3912
39132011-08-31 Jose Ruiz <ruiz@adacore.com>
3914
3915 * s-taprop-linux.adb (Create_Task): Avoid changing the affinity mask
3916 when not needed.
3917
39182011-08-31 Gary Dismukes <dismukes@adacore.com>
3919
3920 * sem_disp.adb (Propagate_Tag): Return without propagating in the case
3921 where the actual is an unexpanded call to 'Input.
3922
d2b4b3da
AC
39232011-08-31 Yannick Moy <moy@adacore.com>
3924
3925 * sem_ch4.adb: Code clean up.
3926
39272011-08-31 Yannick Moy <moy@adacore.com>
3928
3929 * exp_alfa.adb, exp_alfa.ads: Minor correction of copyright notice.
3930
39312011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3932
3933 * exp_ch7.adb (Build_Array_Deep_Procs): Do not generate Deep_Finalize
3934 and TSS primitive Finalize_Address if finalization is suppressed.
3935 (Build_Record_Deep_Procs): Do not generate Deep_Finalize and TSS
3936 primitive Finalize_Address if finalization is suppressed.
3937
39382011-08-31 Jose Ruiz <ruiz@adacore.com>
3939
3940 * s-mudido-affinity.adb, s-taprop-linux.adb, s-taprop-mingw.adb,
3941 s-taprop-solaris.adb, s-taprop-vxworks.adb (Set_Task_Affinity): Make
3942 sure that the underlying task has already been created before trying
3943 to change its affinity.
3944 (Set_CPU): Use the term processor instead of CPU, as we do in
3945 Assign_Task.
3946
39472011-08-31 Vincent Celier <celier@adacore.com>
3948
3949 * prj-attr.adb: New Compiler attribute Source_File_Switches.
3950 * prj-nmsc.adb (Process_Compiler): Process attribute
3951 Source_File_Switches.
3952 * prj.ads (Language_Config): New name list component
3953 Name_Source_File_Switches.
3954 * snames.ads-tmpl (Name_Source_File_Switches): New standard name.
3955
39562011-08-31 Ed Schonberg <schonberg@adacore.com>
3957
3958 * sem_attr.adb (Analyze_Attribute, case 'Old): If prefix may be a
3959 discriminated component of an actual, expand at once to prevent
3960 ouf-of-order references with generated subtypes.
3961
39622011-08-31 Yannick Moy <moy@adacore.com>
3963
3964 * lib-xref-alfa.adb (Add_Alfa_Xrefs): Do not take into account read
3965 reference to operator in Alfa xrefs.
3966
39672011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3968
3969 * sem_ch12.adb (Freeze_Subprogram_Body): Add code to handle the case
3970 where the parent instance was frozen before the current instance due to
3971 the presence of a source body. Update calls to Insert_After_Last_Decl.
3972 (Insert_After_Last_Decl): Renamed to Insert_Freeze_Node_For_Instance.
3973 Update the comment which illustrates the purpose of the routine.
3974 Package instances are now frozen by source bodies which appear after
3975 the instance. This ensures that entities coming from within the
3976 instance are available for use in the said bodies.
3977 (Install_Body): Add code to handle the case where the parent instance
3978 was frozen before the current instance due to the presence of a source
3979 body. Update calls to Insert_After_Last_Decl.
3980
56812278
AC
39812011-08-31 Jose Ruiz <ruiz@adacore.com>
3982
3983 * s-taprop-linux.adb (Set_Task_Affinity): Avoid the use of anonymous
3984 access types.
3985 * affinity.c (__gnat_set_affinity_mask): Declare index variable.
3986
39872011-08-31 Yannick Moy <moy@adacore.com>
3988
3989 * sem_ch8.adb (Analyze_Subprogram_Renaming): Refine expander test in
3990 full-expander test.
16c3301a
AC
3991 * alfa.adb, alfa.ads, alfa_test.adb, ali.adb, debug.adb, errout.adb,
3992 errout.ads, erroutc.adb, expander.adb, exp_ch4.adb, exp_ch7.adb,
3993 freeze.adb, get_alfa.adb, get_alfa.ads, gnat1drv.adb, lib-writ.adb,
3994 lib-writ.ads, lib-xref.adb, lib-xref.ads, lib-xref-alfa.adb, opt.adb,
3995 opt.ads, put_alfa.adb, put_alfa.ads, restrict.adb, sem_ch12.adb,
3996 sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
3997 sem_prag.adb, sem_res.adb, sem_util.adb: Minor reformatting, renaming
3998 ALFA in Alfa (we dropped acronym).
56812278
AC
3999 * einfo.adb (Primitive_Operations): Correctly return list of primitive
4000 operations in a case where it returned previously No_Elist.
4001
7cda9727
RD
40022011-08-31 Robert Dewar <dewar@adacore.com>
4003
4004 * s-taprop-vxworks.adb, sem_ch5.adb, s-taprop-tru64.adb, exp_alfa.adb,
4005 s-taprop-vms.adb, bindgen.adb, s-mudido.adb, s-mudido.ads,
4006 sem_res.adb, expander.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
4007 s-taprop-solaris.adb, s-mudido-affinity.adb, vms_conv.adb,
4008 s-taprop-irix.adb, s-taprop.ads, s-taskin.adb, s-taskin.ads,
4009 s-taprop-hpux-dce.adb, a-chtgbo.adb, s-taprop-posix.adb: Minor
4010 reformatting.
4011
0a190dfd
AC
40122011-08-31 Hristian Kirtchev <kirtchev@adacore.com>
4013
4014 * sem_ch12 (Check_Private_View): Revert previous change.
4015 * sem_res.adb (Conversion_Check): Do not emit the error message if the
4016 conversion is in a generic instance.
4017
40182011-08-31 Matthew Heaney <heaney@adacore.com>
4019
4020 * a-cbhase.adb (Symmetric_Difference): Dereference correct node array.
4021 * a-chtgbo.adb (Free): Allow 0 as index value.
4022
40232011-08-31 Matthew Heaney <heaney@adacore.com>
4024
4025 * a-cborma.adb (Insert): Add comment to explain why no element
4026 assignment.
4027
40282011-08-31 Gary Dismukes <dismukes@adacore.com>
4029
4030 * sem_util.adb (Find_Body_Discriminal): Test whether the scope of the
4031 spec discriminant is already a concurrent type, in which case just use
4032 it, otherwise fetch the Corresponding_Concurrent_Type as before.
4033
7d266442
EB
40342011-08-30 Eric Botcazou <ebotcazou@adacore.com>
4035
4036 * system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads,
4037 system-linux-mips.ads, system-linux-mipsel.ads,
4038 system-linux-mips64el.ads, system-linux-ppc64.ads,
4039 system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support.
4040
4f1a975c
EB
40412011-08-30 Eric Botcazou <ebotcazou@adacore.com>
4042
4043 * gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
4044 * gcc-interface/utils2.c (build_binary_op): Tighten condition.
4045 (build_unary_op): Likewise.
4046
f2991b48
EB
40472011-08-30 Eric Botcazou <ebotcazou@adacore.com>
4048
4049 * raise-gcc.c: Do not include coretypes.h and tm.h.
4050 (setup_to_install): Remove test for compiler macro.
4051 * targext.c: Document use for the library.
4052 * gcc-interface/Makefile.in: Fix comment on the use of IN_GCC.
4053
10a22f43
EB
40542011-08-30 Eric Botcazou <ebotcazou@adacore.com>
4055
4056 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not convert
4057 the expression to the nominal type if the latter is a record type with
4058 a variant part and the type of the former is a record type without one.
4059
bfa2e39d
AC
40602011-08-30 Yannick Moy <moy@adacore.com>
4061
4062 * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
4063 expansion in Alfa mode.
4064 * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public
4065 * exp_alfa.adb, exp_alfa.ads: New package defining light expansion for
4066 Alfa mode.
4067 * gnat1drv.adb (Adjust_Global_Switches): Update Comment.
4068 * sem_res.adb: Ditto.
bd34109a 4069 * gcc-interface/Make-lang.in: Update dependencies.
bfa2e39d
AC
4070
40712011-08-30 Thomas Quinot <quinot@adacore.com>
4072
4073 * g-socket.ads: Minor documentation adjustment.
4074
a0347839
AC
40752011-08-30 Robert Dewar <dewar@adacore.com>
4076
4077 * exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting.
4078
40792011-08-30 Yannick Moy <moy@adacore.com>
4080
4081 * exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb,
4082 exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads,
4083 exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb,
4084 gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb:
4085 Revert change which introduced files for "light"
4086 expansion, to be replaced by a single file for Alfa expansion.
4087
3597c0e9
RD
40882011-08-30 Robert Dewar <dewar@adacore.com>
4089
4090 * opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment.
4091 Minor code reorg/reformatting.
4092
da94696d
AC
40932011-08-30 Yannick Moy <moy@adacore.com>
4094
4095 * opt.adb, opt.ads (Full_Expander_Active): New function defines a
4096 common shorthand for (Expander_Active and not ALFA_Mode) that can be
4097 used for testing full expansion, that is active expansion not in the
4098 reduced mode for Alfa
4099 * exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb,
4100 sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead
4101 of the verbose (Expander_Active and not ALFA_Mode)
4102
41032011-08-30 Tristan Gingold <gingold@adacore.com>
4104
4105 * s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb,
4106 s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb,
5b8ca141
TG
4107 s-secsta.ads, s-parame.ads, s-parame-vxworks.ads, s-parame-ae653.ads:
4108 Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage
da94696d 4109
c199ccf7
AC
41102011-08-30 Gary Dismukes <dismukes@adacore.com>
4111
4112 * sem_res.adb (Valid_Conversion): Revise test for implicit anonymous
4113 access conversions to check that the conversion is a rewritten node,
4114 rather than just having Comes_From_Source set to False, which wasn't
4115 sufficient.
4116
41172011-08-30 Robert Dewar <dewar@adacore.com>
4118
4119 * exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb,
4120 g-socket.ads: Minor reformatting.
4121
41222011-08-30 Thomas Quinot <quinot@adacore.com>
4123
4124 * sem_util.adb: Minor reformatting.
4125
41262011-08-30 Tristan Gingold <gingold@adacore.com>
4127
4128 * raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set,
4129 to be compliant with the ABI.
4130
dff99e1a
AC
41312011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
4132
4133 * sem_ch12.adb (Check_Private_View): Exchange the private and full view
4134 of a designated type when the related access type is an actual in an
4135 instance. This ensures that the full view of designated type is
4136 available when inside the body of the instance.
4137
41382011-08-30 Ed Schonberg <schonberg@adacore.com>
4139
4140 * sem_util.adb (May_Be_Lvalue): To determine whether a reference may be
4141 in a position to be modified, a slice is treated like an indexed
4142 component.
4143
63be2a5a
AC
41442011-08-30 Thomas Quinot <quinot@adacore.com>
4145
4146 * s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for
4147 field tv_sec in struct timeval.
4148
41492011-08-30 Yannick Moy <moy@adacore.com>
4150
4151 * exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several
4152 blocks of code doing full expansion, previously only guarded by
4153 Expander_Active, by anding the test that ALFA_Mode is not set
4154
41552011-08-30 Ed Schonberg <schonberg@adacore.com>
4156
4157 * sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,
4158 add the function to the list of private dependents, for subsequent
4159 legality check on Taft amendment types.
4160 * sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize
4161 Private_Dependents, as for other incomplete types.
4162 * sem_util.adb (Wrong_Type): Avoid cascaded errors when a
4163 Taft-amendment type is used as the return type of a function.
4164
dd54644b
JM
41652011-08-30 Javier Miranda <miranda@adacore.com>
4166
4167 * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code
4168 which emits an error by a call to a new routine which report the error.
4169 * exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the
4170 entity does not cover an existing interface.
4171 * errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize
4172 code.
4173 * sem_ch6.adb (Check_Conformance): Add specific error for wrappers of
4174 protected procedures or entries whose mode is not conformant.
4175 (Check_Synchronized_Overriding): Code cleanup: replace code which emits
4176 an error by a call to a new routine which report the error.
4177
d3ba478e
AC
41782011-08-30 Robert Dewar <dewar@adacore.com>
4179
4180 * gnat_rm.texi: Minor change.
4181 * exp_attr_light.adb: Minor reformatting.
4182
41832011-08-30 Ed Schonberg <schonberg@adacore.com>
4184
4185 * sem_ch3.adb: Patch inheritance of aspects in
4186 Complete_Private_Subtype, to avoid infinite loop.
4187
c01817d2
AC
41882011-08-30 Javier Miranda <miranda@adacore.com>
4189
4190 * sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
4191 been reported and a subprogram covering an interface primitive is not
4192 found then skip generating the internal entity. Done to avoid crashing
4193 the frontend.
4194 (Check_Abstract_Overriding): Change text of error of wrong formal of
4195 protected subprogram or entry. Done for consistency to emit exactly the
4196 same error reported by Check_Synchronized_Overriding. In addition, the
4197 error is restricted to protected types (bug found working on AI05-0090)
4198
41992011-08-30 Yannick Moy <moy@adacore.com>
4200
4201 * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
4202 expansion in Alfa mode.
4203 * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
4204 * exp_light.adb, exp_light.ads: New package defining light expansion.
4205 * expander.adb (Expand): Call light expansion in Alfa mode
4206 * exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
4207 constructs.
4208 * exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
4209 constructs.
4210 * exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
4211 * gnat1drv.adb (Adjust_Global_Switches): Comment
4212
42132011-08-30 Yannick Moy <moy@adacore.com>
4214
4215 * lib-xref-alfa.adb: Minor refactoring.
4216
42172011-08-30 Yannick Moy <moy@adacore.com>
4218
4219 * exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
4220 mode.
4221 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
4222 expansion in Alfa mode.
4223 * sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
4224 mode.
4225
42262011-08-30 Robert Dewar <dewar@adacore.com>
4227
4228 * debug_a.adb: Update comment.
4229
996c8821
RD
42302011-08-30 Robert Dewar <dewar@adacore.com>
4231
4232 * exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,
4233 sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,
4234 exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb,
4235 sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting
4236
42372011-08-30 Robert Dewar <dewar@adacore.com>
4238
4239 * gnat_rm.texi: Add section on C.6(16) implementation advice for pragma
4240 volatile.
4241
3647ca26
HK
42422011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
4243
4244 * exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to
4245 Build_Finalization_Master by supplying an insertion node and enclosing
4246 scope. In its old version, the call did not generate a finalization
4247 master.
4248 (Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to
4249 recognize anonymous access-to-controlled components. Rewrite the
4250 machinery which creates finalization masters to service anonymous
4251 access-to-controlled components of a record type. In its current state,
4252 only one heterogeneous master is necessary to handle multiple anonymous
4253 components.
4254 (Freeze_Type): Comment reformatting.
4255 * rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and
4256 RE_Unit_Table.
4257 * s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which
4258 associates TSS primitive Finalize_Address with either the master itself
4259 or with the internal hash table depending on the mode of operation of
4260 the master.
4261
6d4e4fbc
JM
42622011-08-30 Javier Miranda <miranda@adacore.com>
4263
4264 * exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an
4265 interface type then do not generate code to compare this component.
4266 Required since they have no components and their equality operator is
4267 abstract.
4268
d15f9422
AC
42692011-08-30 Steve Baird <baird@adacore.com>
4270
4271 * sem_util.ads (Deepest_Type_Access_Level): New function; for the type
4272 of a saooaaat (i.e, a stand-alone object of an anonymous access type),
4273 returns the (static) accessibility level of the object. Otherwise, the
4274 same as Type_Access_Level.
4275 (Dynamic_Accessibility_Level): New function; given an expression which
4276 could occur as the rhs of an assignment to a saooaaat (i.e., an
4277 expression of an access-to-object type), return the new value for the
4278 saooaaat's associated Extra_Accessibility object.
4279 (Effective_Extra_Accessibility): New function; same as
4280 Einfo.Extra_Accessibility except that object renames are looked through.
4281 * sem_util.adb
4282 (Deepest_Type_Access_Level): New function; see sem_util.ads description.
4283 (Dynamic_Accessibility_Level): New function; see sem_util.ads
4284 description.
4285 (Effective_Extra_Accessibility): New function; see sem_util.ads
4286 description.
4287 * einfo.ads (Is_Local_Anonymous_Access): Update comments.
4288 (Extra_Accessibility): Update comments.
4289 (Init_Object_Size_Align): New procedure; same as Init_Size_Align
4290 except RM_Size field (which is only for types) is unaffected.
4291 * einfo.adb
4292 (Extra_Accessibility): Expand domain to allow objects, not just formals.
4293 (Set_Extra_Accessibility): Expand domain to allow objects, not just
4294 formals.
4295 (Init_Size): Add assertion that we are not trashing the
4296 Extra_Accessibility attribute of an object.
4297 (Init_Size_Align): Add assertion that we are not trashing the
4298 Extra_Accessibility attribute of an object.
4299 (Init_Object_Size_Align): New procedure; see einfo.ads description.
4300 * sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access
4301 differently for the type of a (non-library-level) saooaaat depending
4302 whether Ada_Version < Ada_2012. This is the only point where Ada_Version
4303 is queried in this set of changes - everything else (in particular,
4304 setting of the Extra_Accessibility attribute in exp_ch3.adb) is
4305 driven off of the setting of the Is_Local_Anonymous_Access attribute.
4306 The special treatment of library-level saooaaats is an optimization,
4307 not required for correctnesss. This is based on the observation that the
4308 Ada2012 rules (static and dynamic) for saooaaats turn out to be
4309 equivalent to the Ada2005 rules in the case of a library-level saooaaat.
4310 * exp_ch3.adb
4311 (Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is
4312 false for the type of a saooaaat, declare and initialize its
4313 accessibility level object and set the Extra_Accessibility attribute
4314 of the saooaaat to refer to this object.
4315 * checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.
4316 * exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with
4317 calls to Effective_Extra_Accessibility in order to support
4318 renames of saooaaats.
4319 (Expand_N_Type_Conversion): Add new local function,
4320 Has_Extra_Accessibility, and call it when determining whether an
4321 accessibility check is needed.
4322 It returns True iff Present (Effective_Extra_Accessibility (Id)) would
4323 evaluate to True (without raising an exception).
4324 * exp_ch5.adb
4325 (Expand_N_Assignment_Statement): When assigning to an Ada2012
4326 saooaaat, update its associated Extra_Accessibility object (if
4327 it has one). This includes an accessibility check.
4328 * exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates
4329 a saooaaat, update its Extra_Accessibility object too (if it
4330 has one).
4331 (Expand_Call): Replace a couple of calls to Type_Access_Level
4332 with calls to Dynamic_Access_Level to handle cases where
4333 passing a literal (any literal) is incorrect.
4334 * sem_attr.adb (Resolve_Attribute): Handle the static accessibility
4335 checks associated with "Saooaat := Some_Object'Access;"; this must
4336 be rejected if Some_Object is declared in a more nested scope
4337 than Saooaat.
4338 * sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an
4339 assignment to a saooaaat even if Is_Local_Anonymous_Access
4340 returns False for its type (indicating a 2012-style saooaaat).
4341 * sem_ch8.adb
4342 (Analyze_Object_Renaming): Replace a call to Init_Size_Align
4343 (which is only appropriate for objects, not types) with a call
4344 of Init_Object_Size_Align in order to avoid trashing the
4345 Extra_Accessibility attribute of a rename (the two attributes
4346 share storage).
4347 * sem_res.adb
4348 (Valid_Conversion) Replace six calls to Type_Access_Level with
4349 calls to Deepest_Type_Access_Level. This is a bit tricky. For an
4350 Ada2012 non-library-level saooaaat, the former returns library level
4351 while the latter returns the (static) accessibility level of the
4352 saooaaat. A type conversion to the anonymous type of a saooaaat
4353 can only occur as part of an assignment to the saooaaat, so we
4354 know that such a conversion must be in a lhs context, so Deepest
4355 yields the result that we need. If such a conversion could occur,
4356 say, as the operand of an equality operator, then this might not
4357 be right. Also add a test so that static accessibilty checks are
4358 performed for converting to a saooaaat's type even if
4359 Is_Local_Anonymous_Access yields False for the type.
4360
43612011-08-30 Javier Miranda <miranda@adacore.com>
4362
4363 * sem_disp.adb (Check_Dispatching_Operation): Complete condition that
4364 controls generation of a warning associated with late declaration of
4365 dispatching functions. Required to avoid generating spurious
4366 warnings.
4367
6cce2156
GD
43682011-08-30 Gary Dismukes <dismukes@adacore.com>
4369
4370 * sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the
4371 return object has an anonymous access type and the function's type is
4372 a named access type.
4373 * sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming
4374 conversions on implicit conversions, since such conversions can occur
4375 for anonymous access cases due to expansion. Issue error for attempt
4376 to rename an anonymous expression as an object of a named access type.
4377 * sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,
4378 to indicate whether this function should report errors on invalid
4379 conversions.
4380 * sem_res.adb (Resolve): For Ada 2012, in the case where the type of
4381 the expression is of an anonymous access type and the expected type is
4382 a named general access type, rewrite the expression as a type
4383 conversion, unless this is an expression of a membership test.
4384 (Valid_Conversion.Error_Msg_N): New procedure that conditions the
4385 calling of Error_Msg_N on new formal Report_Errs.
4386 (Valid_Conversion.Error_Msg_NE): New procedure that conditions the
4387 calling of Error_Msg_NE on new formal Report_Errs.
4388 (Valid_Conversion): Move declaration of this function to the package
4389 spec, to allow calls from membership test processing. For Ada 2012,
4390 enforce legality restrictions on implicit conversions of anonymous
4391 access values to general access types, disallowing such conversions in
4392 cases where the expression has a dynamic accessibility level (access
4393 parameters, stand-alone anonymous access objects, or a component of a
4394 dereference of one of the first two cases).
4395 * sem_type.adb (Covers): For Ada 2012, allow an anonymous access type
4396 in the context of a named general access expected type.
4397 * exp_ch4.adb Add with and use of Exp_Ch2.
4398 (Expand_N_In): Add processing for membership tests applied to
4399 expressions of an anonymous access type. First, Valid_Conversion is
4400 called to check whether the test is statically False, and then the
4401 conversion is expanded to test that the expression's accessibility
4402 level is no deeper than that of the tested type. In the case of
4403 anonymous access-to-tagged types, a tagged membership test is applied
4404 as well.
4405 (Tagged_Membership): Extend to handle access type cases, applying the
4406 test to the designated types.
4407 * exp_ch6.adb (Expand_Call): When creating an extra actual for an
4408 accessibility level, and the actual is a 'Access applied to a current
4409 instance, pass the accessibility level of the type of the current
4410 instance rather than applying Object_Access_Level to the prefix. Add a
4411 ??? comment, since this level isn't quite right either (will eventually
4412 need to pass an implicit level parameter to init procs).
4413
747de90b
AC
44142011-08-30 Bob Duff <duff@adacore.com>
4415
4416 * s-taskin.ads: Minor comment fix.
4417
44182011-08-30 Ed Schonberg <schonberg@adacore.com>
4419
4420 * sem_res.adb (Check_Parameterless_Call): If the node is a selected
4421 component and the selector is a dispatching operation, check if it is
4422 a prefixed call before rewriting as a parameterless function call.
4423
cdc4cc65
JJ
44242011-08-29 Jakub Jelinek <jakub@redhat.com>
4425
4426 * gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy
4427 tsystem.h into $(RTSDIR) instead of rts.
4428
226a7fa4
AC
44292011-08-29 Robert Dewar <dewar@adacore.com>
4430
4431 * sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
4432 reformatting.
4433 * gcc-interface/Make-lang.in: Update dependencies.
4434
44352011-08-29 Yannick Moy <moy@adacore.com>
4436
4437 * alfa.ads (Name_Of_Heap_Variable): New constant name.
4438 * lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
4439 table to hold dereferences.
4440 (Add_ALFA_Xrefs): Take into account dereferences as special
4441 reads/writes to the variable "HEAP".
4442 (Enclosing_Subprogram_Or_Package): Move subprogram here.
4443 (Generate_Dereference): New procedure to store a read/write dereferencew
4444 in the table Drefs.
4445 * put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
4446 the special "HEAP" var.
4447 * sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
4448 in ALFA mode.
4449 * sem_util.adb (Note_Possible_Modification): Store write dereference
4450 in ALFA mode.
4451
dfbcb149
HK
44522011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
4453
4454 * exp_ch3.adb (Freeze_Type): Generate an accessibility check which
4455 ensures that the level of the subpool access type is not deeper than
4456 that of the pool object.
4457 * sem_util.adb (Object_Access_Level): Expand to handle defining
4458 identifiers.
4459 * sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
4460 subpool handle name of a rewritten allocator.
4461
1df4f514
AC
44622011-08-29 Robert Dewar <dewar@adacore.com>
4463
4464 * impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.
4465
44662011-08-29 Thomas Quinot <quinot@adacore.com>
4467
4468 * exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
4469 values, we generate multiple triples of parameters in the TypeCode.
4470 Bump Choice_Index for each such triple so that a subsequent default
4471 choice is associated with the correct index in the typecode.
4472
44732011-08-29 Ed Schonberg <schonberg@adacore.com>
4474
4475 * a-cdlili.adb (Iterate): Initialize properly an iterator over a null
4476 container.
4477 (First, Last): Handle properly an iterator over a null container.
4478
44792011-08-29 Bob Duff <duff@adacore.com>
4480
4481 * sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
4482 processing if we run across a node with no Scope. This can happen if
4483 we're with-ing an library-level instance, and that instance got errors
4484 that caused "instantiation abandoned".
4485 * sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
4486 an exception instead of using Assert, so it won't go into an infinite
4487 loop, even when assertions are turned off.
4488
44892011-08-29 Ed Schonberg <schonberg@adacore.com>
4490
4491 * a-coorse.adb: Proper handling of empty ordered sets.
4492
14f0f659
AC
44932011-08-29 Johannes Kanig <kanig@adacore.com>
4494
4495 * debug.adb: Add comments.
4496
8027b455
AC
44972011-08-29 Thomas Quinot <quinot@adacore.com>
4498
4499 * a-except.adb, a-except-2005.adb: Minor comment rewording and
4500 reformatting.
4501
45022011-08-29 Yannick Moy <moy@adacore.com>
4503
4504 * sem_ch3.adb (Array_Type_Declaration): Remove insertion of
4505 declaration for Itypes in Alfa mode.
4506
d85fd922
AC
45072011-08-29 Robert Dewar <dewar@adacore.com>
4508
4509 * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
4510 a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
4511 a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
4512 reformatting.
4513
45142011-08-29 Tristan Gingold <gingold@adacore.com>
4515
4516 * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
4517 package spec.
4518 * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
4519 * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
4520 while raising PE.
4521
fd3d2680
AC
45222011-08-29 Robert Dewar <dewar@adacore.com>
4523
4524 * a-cbhama.adb, a-cbhama.ads: Minor reformatting.
4525
45262011-08-29 Javier Miranda <miranda@adacore.com>
4527
4528 * sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
4529 renamings of formal subprograms when the actual for a formal type is
4530 class-wide.
4531
dfbf013f
MH
45322011-08-29 Matthew Heaney <heaney@adacore.com>
4533
4534 * a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
4535 to Target.
4536
45372011-08-29 Matthew Heaney <heaney@adacore.com>
4538
4539 * a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
4540 components of record type.
4541 * a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
4542 to Target.
4543
a6dd3a54
ES
45442011-08-29 Ed Schonberg <schonberg@adacore.com>
4545
4546 * a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,
4547 a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to
4548 container packages.
4549
c54796e0
AC
45502011-08-29 Robert Dewar <dewar@adacore.com>
4551
4552 * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
4553 reformatting.
4554
45552011-08-29 Matthew Heaney <heaney@adacore.com>
4556
4557 * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
4558 components of record type.
4559
45602011-08-29 Bob Duff <duff@adacore.com>
4561
4562 * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
4563 by the termination handler.
4564
9fd9d2be
AC
45652011-08-29 Yannick Moy <moy@adacore.com>
4566
4567 * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
4568 created in Alfa mode, instead of inserting artificial declarations of
4569 non-Itypes in the tree.
4570 * sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
4571 know if an Itype has a corresponding declaration, as defined in
4572 itypes.ads.
4573
45742011-08-29 Yannick Moy <moy@adacore.com>
4575
4576 * gnat1drv.adb: Minor rewrite.
4577
45782011-08-29 Bob Duff <duff@adacore.com>
4579
4580 * s-tasuti.adb (Make_Passive): Work around race condition in
4581 Make_Independent, which can cause Wait_Count to be zero. So instead of
4582 asserting that Wait_Count > 0, and then decrementing it, decrement it
4583 only if Wait_Count > 0.
4584 * s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
4585 should be nonnegative, so declare them Natural instead of Integer.
4586
833eaa8a
AC
45872011-08-29 Robert Dewar <dewar@adacore.com>
4588
4589 * exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
4590 sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
4591 a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
4592 a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
4593 exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.
4594
45952011-08-29 Tristan Gingold <gingold@adacore.com>
4596
4597 * s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.
4598
45992011-08-29 Vadim Godunko <godunko@adacore.com>
4600
4601 * s-parint.ads: Minor comment clarification.
4602
46032011-08-29 Vincent Celier <celier@adacore.com>
4604
4605 * prj.adb (Initialize): Make sure that new reserved words after Ada 95
4606 may be used as identifiers.
4607
46082011-08-29 Ed Schonberg <schonberg@adacore.com>
4609
4610 * a-coinho.ads: Minor reformating.
4611
3a613a36
AC
46122011-08-29 Ed Schonberg <schonberg@adacore.com>
4613
4614 * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a
4615 container of a derived type.
4616
3a613a36
AC
46172011-08-29 Ed Schonberg <schonberg@adacore.com>
4618
4619 * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
4620 a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers.
4621
14848f57
AC
46222011-08-29 Pascal Obry <obry@adacore.com>
4623
4624 * exp_disp.adb: Minor comment fix.
4625 (Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
4626 to avoid warnings when compiling with -Wall.
4627 (Make_Disp_Conditional_Select_Body): Likewise.
4628 (Make_Disp_Timed_Select_Body): Likewise.
4629
46302011-08-29 Ed Schonberg <schonberg@adacore.com>
4631
4632 * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
4633 an entity name, generate reference for it.
4634
46352011-08-29 Ed Schonberg <schonberg@adacore.com>
4636
4637 * exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
4638 iterator form.
4639 * sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
4640 the class-wide type.
4641 * sem_ch5.adb: Move some rewriting to the expander, where it belongs.
4642
46432011-08-29 Ed Schonberg <schonberg@adacore.com>
4644
4645 * sem_ch8.adb (Check_Constrained_Object): Do not create an actual
4646 subtype for an object whose type is an unconstrained union.
4647
46482011-08-29 Ed Schonberg <schonberg@adacore.com>
4649
4650 * par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
4651 is allowed in a component definition, by AI95-406.
4652
46532011-08-29 Matthew Heaney <heaney@adacore.com>
4654
4655 * a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.
4656
46572011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
4658
4659 * a-except-2005.adb: Alphabetize all routines.
4660 (Triggered_By_Abort): New routine.
4661 * a-except-2005.ads (Triggered_By_Abort): New routine.
4662 * a-except.adb Alphabetize all routines.
4663 (Triggered_By_Abort): New routine.
4664 * a-except.ads (Triggered_By_Abort): New routine.
4665 * exp_ch7.adb: Update all comments involving the detection of aborts in
4666 finalization code.
4667 (Build_Object_Declarations): Do not generate code to detect the
4668 presence of an abort at the start of finalization code, use a runtime
4669 routine istead.
4670 * rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
4671 RE_Unit_Table.
4672 * sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
4673 allocate a task on a subpool.
4674 * s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
4675 The flag disables all actions related to the maintenance of
4676 Finalize_Address_Table when subpools are not in use.
4677 (Allocate_Any_Controlled): Signal the machinery that subpools are in
4678 use.
4679 (Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
4680 performs costly task locking when subpools are not in use.
4681
57a8057a
AC
46822011-08-29 Yannick Moy <moy@adacore.com>
4683
4684 * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged
4685 types and dispatching calls in Alfa mode.
4686 * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of
4687 correspondance between body and spec scopes, to reuse utility functions
4688 (Traverse_Declarations_Or_Statements): Protect access to body for stub
4689 by testing the presence of the library unit for the body
4690 * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa
4691 mode the expansion of accept statements is skipped
4692 * sem_util.adb, sem_util.ads (Unique_Entity): New function returning
4693 the unique entity corresponding to the one returned by
4694 Unique_Defining_Entity applied to the enclosing declaration of the
4695 argument.
4696
46972011-08-29 Bob Duff <duff@adacore.com>
4698
4699 * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in
4700 gdb when x is not a node (it can be a node list, name_id, etc). pp is
4701 an alias for pn. ppp is an alias for pt.
4702
47032011-08-29 Javier Miranda <miranda@adacore.com>
4704
4705 * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing
4706 aggregate to take a consistent decision on the need to convert into
4707 assignments aggregates that initialize constant objects.
4708
47092011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
4710
4711 * exp_ch4.adb (Expand_Allocator_Expression): Add a call to
4712 Build_Allocate_Deallocate_Proc in order to handle allocation of
4713 non-controlled objects on subpools.
4714 * impunit.adb: Remove s-finmas and s-spsufi since they were never meant
4715 to be end-user visible.
4716 * s-finmas.adb: Add with and use clause for System.HTable.
4717 Add an instantiation of Simple_HTable which provides a mapping between
4718 the address of a controlled object and the corresponding
4719 Finalize_Address used to clean up the object. The table is used when a
4720 master is operating in heterogeneous mode.
4721 (Attach): Explain why the input node is not verified on being already
4722 attached.
4723 (Delete_Finalize_Address): New routine.
4724 (Detach): Add pragma Assert which ensures that a node is already
4725 attached.
4726 (Finalize): Add local variable Cleanup. Rewrite the iteration scheme
4727 since nodes are no longer removed on traversal. Explain why node
4728 detachment is undesirable in this case.
4729 (Get_Finalize_Address): New routine.
4730 (Hash): New routine.
4731 (Is_Empty_List): Removed.
4732 (pm): Renamed to Print_Master. Add output for discriminant
4733 Is_Homogeneous.
4734 Comment reformatting.
4735 (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
4736 * s-finmas.ads: Various comments additions / improvements.
4737 Type Finalization_Master has a discriminant which determines the mode of
4738 operation.
4739 (Delete_Finalize_Address): New routine.
4740 (Get_Finalize_Address): New routine.
4741 (pm): Renamed to Print_Master.
4742 (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
4743 * s-stposu.adb: Add with clause for System.Address_Image; Add with and
4744 use clause for System.IO.
4745 (Allocate_Any_Controlled): Add machinery to set TSS primitive
4746 Finalize_Address depending on the mode of allocation and the mode of
4747 the master.
4748 (Deallocate_Any_Controlled): Remove the relation pair object -
4749 Finalize_Address regardless of the master mode. Add comment explaining
4750 the reason.
4751 (Detach): Ensure that fields Prev and Next are null after detachment.
4752 (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration
4753 scheme to check whether the list of subpools is empty. There is no
4754 longer need to store the next subpool or advance the current pointer.
4755 (Is_Empty_List): New routine.
4756 (Print_Pool): New routine.
4757 (Print_Subpool): New routine.
4758 * s-stposu.ads: Various comments additions / improvements.
4759 Field Master of type Root_Subpool is now a heterogeneous collection.
4760 (Print_Pool): New routine.
4761 (Print_Subpool): New routine.
4762
47632011-08-29 Ed Schonberg <schonberg@adacore.com>
4764
4765 * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator
4766 forms, using aspects of container types.
4767 * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and
4768 Has_Implicit_Dereference flags, that may be set on the partial view.
4769 * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a
4770 container type with an indexing aspect.
4771 (Analyze_Quantified_Expression): Analyze construct with expansion
4772 disabled, because it will be rewritten as a loop during expansion.
4773 (Try_Container_Indexing): The prefix itself may be a container type
4774 with an indexing aspect, as with a vector of vectors.
4775 * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze
4776 the original doamin of iteration, for name capture.
4777 (Analyze_Iterator_Specification): If the domain is an expression that
4778 needs finalization, create a separate declaration for it.
4779 For an iterator with "of" retrieve default iterator info from aspect of
4780 container type. For "in" iterator, retrieve type of Iterate function.
4781 * sem_ch13.adb (Check_Iterator_Function): Fix typo.
4782 (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before
4783 analysis, to prevent spurious errors about late attributes.
4784 * sprint.adb: Handle quantified expression with either loop or iterator
4785 specification.
4786 * a-convec.ads, a-convec.adb: Iterate function returns a reversible
4787 iterator.
4788
ddf67a1d
AC
47892011-08-29 Vincent Celier <celier@adacore.com>
4790
4791 * make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
4792 Binder or Linker of the main project file.
4793
47942011-08-29 Ed Schonberg <schonberg@adacore.com>
4795
4796 * inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
4797 unit.
4798
47992011-08-29 Yannick Moy <moy@adacore.com>
4800
4801 * exp_ch9.adb: Partial revert of previous change for Alfa mode
4802
48032011-08-29 Yannick Moy <moy@adacore.com>
4804
4805 * exp_ch11.adb: Minor expansion of comment.
4806
48072011-08-29 Yannick Moy <moy@adacore.com>
4808
4809 * lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.
4810
48112011-08-29 Ed Schonberg <schonberg@adacore.com>
4812
4813 * sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
4814 interpretation, set the type before resolving the operands, because
4815 legality checks on an exponention operand need to know the type of the
4816 context.
4817
48182011-08-29 Ed Schonberg <schonberg@adacore.com>
4819
4820 * sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
4821 cleanups on a master if the instance is within a generic unit.
4822 Complement to the corresponding fix to inline.adb for K520-030.
4823
48242011-08-29 Tristan Gingold <gingold@adacore.com>
4825
4826 * exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
4827 occurrence.
4828 * exp_intr.adb: Minor comment fix.
4829
48302011-08-29 Bob Duff <duff@adacore.com>
4831
4832 * sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
4833 Delay_Required was used as an uninitialized variable.
4834
690943fc
RD
48352011-08-29 Robert Dewar <dewar@adacore.com>
4836
4837 * a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,
4838 sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,
4839 a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.
4840
9f0ee988
TQ
48412011-08-29 Thomas Quinot <quinot@adacore.com>
4842
4843 * system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
4844 Remove unused variables.
4845
3e24afaa
AC
48462011-08-29 Ed Schonberg <schonberg@adacore.com>
4847
4848 * sem_res.adb: Remove Build_Explicit_Dereference.
4849 * sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
4850 from sem_res.adb, used in analysis of additional constructs.
4851 (Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012
4852 expansion of iterators.
4853 (Is_Object_Reference): Recognize variables rewritten as explicit
4854 dereferences in Ada2012.
4855 * snames.ads-tmpl: Add Has_Element, Forward_Iterator,
4856 Reversible_Iterator names, for expansion of Ada2012 iterators.
4857 * aspects.ads, aspects.adb (Find_Aspect): Utility.
4858 * a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
4859 linked list container.
4860 * a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
4861 * a-coorse.ads, a-coorse.adb: Ditto for ordered sets.
4862
48632011-08-29 Ed Schonberg <schonberg@adacore.com>
4864
4865 * a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
4866 containers.
4867
48682011-08-29 Vincent Celier <celier@adacore.com>
4869
4870 * make.adb (Gnatmake): Get the maximum number of simultaneous
4871 compilation processes after the Builder switches has been scanned, as
4872 there may include -jnn.
4873
48742011-08-29 Matthew Heaney <heaney@adacore.com>
4875
4876 * a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.
4877
48782011-08-29 Tristan Gingold <gingold@adacore.com>
4879
4880 * gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
4881 GNAT_DRIVER_COMMAND_LINE to 255.
4882
48832011-08-29 Pascal Obry <obry@adacore.com>
4884
4885 * freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
4886 reformatting and style fix (class attribute casing).
4887
48882011-08-29 Yannick Moy <moy@adacore.com>
4889
4890 * exp_ch11.adb: Yet another case where expansion should be common
4891 between CodePeer and Alfa.
4892
48932011-08-29 Yannick Moy <moy@adacore.com>
4894
4895 * exp_ch9.adb: Partial revert of previous change for Alfa mode.
4896
48972011-08-29 Ed Schonberg <schonberg@adacore.com>
4898
4899 * sem_ch6.adb (Matches_Limited_With_View): The limited views of an
4900 incomplete type and its completion match.
4901
3ddd922e
AC
49022011-08-29 Yannick Moy <moy@adacore.com>
4903
4904 * exp_ch13.adb: Adjust previous change.
4905
49062011-08-29 Robert Dewar <dewar@adacore.com>
4907
4908 * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
4909 exp_ch4.adb, sem_ch8.adb: Minor code reorganization
4910 Minor reformatting.
4911
444acbdd
AC
49122011-08-29 Emmanuel Briot <briot@adacore.com>
4913
4914 * make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
4915 initialize aggregated projects.
4916
49172011-08-29 Ed Schonberg <schonberg@adacore.com>
4918
4919 * sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
4920 depth of candidates to resolve a potentially spurious ambiguity between
4921 two visible subprograms.
4922
e0296583
AC
49232011-08-29 Yannick Moy <moy@adacore.com>
4924
4925 * sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without
4926 Requires/Ensures.
4927 * sem_util.adb (Get_Ensures_From_Test_Case_Pragma,
4928 Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without
4929 Requires/Ensures.
4930
49312011-08-29 Arnaud Charlet <charlet@adacore.com>
4932
4933 * gnat1drv.adb (Adjust_Global_Switches): Improve previous change.
4934 Add comment.
4935
49362011-08-29 Thomas Quinot <quinot@adacore.com>
4937
4938 * sem_res.adb: Minor reformatting.
4939
69794413
JK
49402011-08-29 Johannes Kanig <kanig@adacore.com>
4941
4942 * exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
4943 mode.
4944 * gnat1drv.adb (Adjust_Global_Switches): Set
4945 Use_Expressions_With_Actions to False in ALFA mode.
4946 * sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
4947 ALFA mode.
4948
59e6b23c
AC
49492011-08-29 Yannick Moy <moy@adacore.com>
4950
4951 * exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
4952 * exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
4953 * gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
4954 tagged types and dispatching calls in Alfa mode.
4955
49562011-08-29 Javier Miranda <miranda@adacore.com>
4957
4958 * sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
4959 we do not report an error on an Empty node.
4960
49612011-08-29 Geert Bosch <bosch@adacore.com>
4962
4963 * Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
4964 a-nlrear.o and a-nurear.o.
4965
49662011-08-29 Robert Dewar <dewar@adacore.com>
4967
4968 * freeze.adb: Minor code reorganization.
4969 Minor reformatting.
4970 * sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
4971 sem_ch6.adb: Minor reformatting
4972
49732011-08-29 Tristan Gingold <gingold@adacore.com>
4974
4975 * s-except.ads, s-except.adb: Provide dummy body.
4976
49772011-08-29 Yannick Moy <moy@adacore.com>
4978
4979 * sem_warn.adb (Within_Postcondition): Take into account the case of
4980 an Ensures component in a Test_Case.
4981
4d792549
AC
49822011-08-29 Tristan Gingold <gingold@adacore.com>
4983
4984 * s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
4985 * rtsfind.ads (RTU_Id): Replaces System_Exceptions by
4986 System_Exceptions_Debug
4987 (RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
4988 * a-except.adb: With and use System.Exceptions_Debug instead of
4989 System.Exceptions.
4990 * a-except-2005.adb: Likewise.
4991 * s-assert.adb: Likewise.
4992 * s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
4993 * Makefile.rtl: Add s-excdeb. Adjust compilation rule.
4994 * gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
4995 s-excdeb. Update dependencies.
4996 (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
4997 as these no longer need external libraries.
4998
49992011-08-29 Ed Schonberg <schonberg@adacore.com>
5000
5001 * sem_res.adb (Resolve_Op_Expon): Additional check to reject an
5002 exponentiation operator on universal values in a context that requires
5003 a fixed-point type.
5004
50052011-08-29 Tristan Gingold <gingold@adacore.com>
5006
5007 * raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence
5008 before calling notify_handled_exception.
5009 * a-exextr.adb: Fix comment.
5010
b254da66
AC
50112011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5012
5013 * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute
5014 Finalize_Address of the access type's finalization master.
5015 (Expand_N_Allocator): Add code to set attribute Finalize_Address of the
5016 access type's finalization master. Add a guard to prevent
5017 Associated_Storage_Pool from being set on .NET/JVM.
5018 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set
5019 attribute Finalize_Address of the access type's finalization master.
5020 * exp_ch7.adb (Make_Finalize_Address_Call): New routine.
5021 * exp_ch7.ads (Make_Finalize_Address_Call): New routine.
5022 * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and
5023 RE_Unit_Table.
5024 * s-finmas.adb: Add with clause for System.Address_Image. Add with and
5025 use clause for System.IO
5026 (Detach): Relax the assertion, to be reinstated later.
5027 (Finalize): Rewrite the iteration loop to avoid pointer comparison.
5028 Relax the assertion on Finalize_Address, to be reinstated later.
5029 (Is_Empty_List): New routine.
5030 (pm): New debug routine.
5031 (Set_Finalize_Address): New routine.
5032 * s-finmas.ads (pm): New debug routine.
5033 (Set_Finalize_Address): New routine.
5034 * s-stposu.adb (Allocate_Any_Controlled): Code reformatting.
5035
50362011-08-29 Tristan Gingold <gingold@adacore.com>
5037
5038 * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):
5039 Remove convention C.
5040
50412011-08-29 Tristan Gingold <gingold@adacore.com>
5042
5043 * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.
5044 (Initialize_TCB): Remove Exc_Stack_Ptr initialization.
5045 (Finalize_TCB): Remove its finalization.
5046 (Initialize): Remove assignment of GET_Exc_Stack_Addr
5047 * s-soflin.adb (NT_Exc_Stack): Remove
5048 (Get_Exc_Stack_Addr_NT): Likewise.
5049 (Get_Exc_Stack_Addr_Soft): Likewise.
5050 * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.
5051 (Get_Exc_Stack_Addr): Likewise.
5052 (Get_Exc_Stack_Addr_Soft): Likewise
5053 * s-taspri-vms.ads (Exc_Stack_T): Remove.
5054 (Exc_Stack_Ptr_T): Likewise.
5055 (Private_Data): Remove Exc_Stack_Ptr component.
5056
50572011-08-29 Tristan Gingold <gingold@adacore.com>
5058
5059 * raise-gcc.c (get_ip_from_context): New function. Factorize code.
5060
50612011-08-29 Tristan Gingold <gingold@adacore.com>
5062
5063 * gnat_ugn.texi: Fix aix and x86-solaris info for run-time.
5064
50652011-08-29 Geert Bosch <bosch@adacore.com>
5066
5067 * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,
5068 L2_Norm, Swap_Column): New generic subprograms
5069 * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,
5070 L2_Norm, Swap_Column): Implement new subprograms in order to
5071 eliminate dependency on BLAS and LAPACK libraries in
5072 Ada.Numerics.Generic_Real_Arrays and eventually also the complex
5073 version. Forward_Eliminate/Back_Substitute can be used to put a
5074 matrix in row echelon or reduced row echelon form using partial
5075 pivoting.
5076 * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,
5077 Swap_Column): Instantiate from System.Generic_Array_Operations.
5078 ("*", "abs"): Implement by instantiation from Generic_Array_Operations.
5079 (Sqrt): Local function for simple computation of square root without
5080 adding dependencies on Generic_Elementary_Functions.
5081 (Swap): New subprogram to exchange floating point numbers.
5082 (Inverse): Reimplement using Jordan-Gauss elimination.
5083 (Jacobi): New procedure implementing Jacobi's method for computation
5084 of eigensystems, based on Rutishauser's implementation.
5085 (L2_Norm): Implement directly using the inner product.
5086 (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of
5087 decreasing eigenvalue as required by the Ada RM.
5088 (Swap_Column): New helper procedure for Sort_Eigensystem.
5089 Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.
5090 Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for
5091 Sort_Eigensystems.
5092
50932011-08-29 Thomas Quinot <quinot@adacore.com>
5094
5095 * put_scos.adb (Put_SCOs): Do not emit a newline for an empty
5096 statements line.
5097
60370fb1
AC
50982011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5099
5100 * s-finmas.adb (Finalize): Check Finalize_Address of the master rather
5101 than the current node.
5102 * s-finmas.ads: Move field Finalize_Address from type FM_Node to
5103 Finalization_Master. The list headers have two fields instead of three.
5104 This should fix alignment issue but subpool allocations are now
5105 unusable. Alphabetize subprograms.
5106 * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than
5107 the size of the header when converting the beginning of the object to
5108 a FM_Node. Set the master's Finalize_Address attribute if not already
5109 set.
5110 (Deallocate_Any_Controlled): Use the offset rather than the size of the
5111 header when converting the beginning of the object to a FM_Node.
5112
51132011-08-29 Gary Dismukes <dismukes@adacore.com>
5114
5115 * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of
5116 reraise when compiling for CodePeer.
5117
51182011-08-29 Arnaud Charlet <charlet@adacore.com>
5119
5120 * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,
5121 now needed by a-convec.adb. Fix warning.
5122
51232011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5124
5125 * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the
5126 processing of TSS routine Finalize_Address when compiling in
5127 CodePeer_Mode.
5128
51292011-08-29 Thomas Quinot <quinot@adacore.com>
5130
5131 * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,
5132 sem_warn.adb: Minor reformatting.
5133
51342011-08-29 Emmanuel Briot <briot@adacore.com>
5135
5136 * prj-conf.adb (Get_Config_Switches): Also collect the list of
5137 languages from aggregated projects.
5138
51392011-08-29 Yannick Moy <moy@adacore.com>
5140
5141 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,
5142 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
5143 Traverse_Package_Declaration, Traverse_Subprogram_Body,
5144 Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies
5145 for stubs are traversed too when parameter is set
5146 (Traverse_All_Compilation_Units): Traverse without going inside stubs
5147 (Traverse_Declarations_Or_Statements): Do the special traversing for
5148 stubs when required.
5149 * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to
5150 return subprogram or package body from stub.
5151 (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect
5152 stubs without prior subprogram decl.
5153
51542011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
5155
5156 * gnat_ugn.texi: Fix typo.
5157
e9c9d122
HK
51582011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5159
5160 * s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
5161 which accounts for size vs alignment issues and calculates the size of
5162 the list header.
5163 (Deallocate_Any_Controlled): Ditto.
5164 (Nearest_Multiple_Rounded_Up): New routine.
5165
25ebc085
AC
51662011-08-29 Tristan Gingold <gingold@adacore.com>
5167
5168 * a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
5169 * a-exexda.adb (Set_Exception_C_Msg): Ditto.
5170 (Set_Exception_Msg): Ditto.
5171 * a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set
5172 Private_Data.
5173 * a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
5174 Use Save_Occurrence instead of Save_Occurrence_No_Private.
5175 (Raise_With_Msg): Remove Cleanup_Flag.
5176 * a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
5177 Clean_Flag and Private_Data components.
5178
51792011-08-29 Yannick Moy <moy@adacore.com>
5180
5181 * freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
5182 in CodePeer mode.
5183 * sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
5184 of an explicitly declared type, so that the base types of the original
5185 type and this generated type are the same, and a "type" (not a subtype
5186 like previously).
5187 * errout.adb (Special_Msg_Delete): Do not issue messages "Size too
5188 small" in Alfa mode, like in CodePeer mode.
5189 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
5190 clauses in Alfa mode.
5191
51922011-08-29 Javier Miranda <miranda@adacore.com>
5193
5194 * exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
5195 function to the package spec.
5196 * sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
5197 internally generated bodies of null procedures locate the internally
5198 generated spec enforcing mode conformance.
5199 (Is_Interface_Conformant): Ensure that the controlling formal of the
5200 primitives match.
5201
52022011-08-29 Ed Schonberg <schonberg@adacore.com>
5203
5204 * sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
5205 reject the pragma if it appears to apply to a formal subprogram.
5206
52072011-08-29 Ed Schonberg <schonberg@adacore.com>
5208
5209 * exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
5210 inner expression, to prevent double evaluation.
5211
590549fb
AC
52122011-08-29 Tristan Gingold <gingold@adacore.com>
5213
5214 * a-exexpr.adb (Propagate_Exception): Remove all the parameters as
5215 they were unused.
5216 * a-exexpr-gcc.adb (Propagate_Exception): Ditto.
5217 * a-except-2005.adb (Propagate_Exception): Adjust spec.
5218 (Raise_Current_Excep): Adjust call.
5219 (Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.
5220
52212011-08-29 Thomas Quinot <quinot@adacore.com>
5222
5223 * exp_disp.adb: Minor reformatting.
5224
62380e66
TG
52252011-08-29 Tristan Gingold <gingold@adacore.com>
5226
5227 * a-exexpr.adb (Setup_Exception): Removed.
5228 * a-exexpr-gcc.adb (Setup_Exception): Removed.
5229 * a-except.adb (Exception_Propagation): Removed.
5230 * a-except-2005.adb (Setup_Exception): Removed.
5231 (Reraise): Remove call to Setup_Exception.
5232 (Reraise_Occurrence): Ditto.
5233 (Reraise_Occurrence_Always): Ditto.
5234 (Reraise_Occurrence_No_Defer): Ditto.
5235 (Transfer_Occurrence): Ditto.
5236 * a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.
5237 (Set_Exception_Msg): Ditto.
5238
c95aa61c
AC
52392011-08-29 Robert Dewar <dewar@adacore.com>
5240
5241 * a-convec.adb, exp_disp.adb: Minor reformatting.
5242
52432011-08-29 Tristan Gingold <gingold@adacore.com>
5244
5245 * a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.
5246
624e1688
AC
52472011-08-29 Gary Dismukes <dismukes@adacore.com>
5248
5249 * exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
5250 Exception_Handlers to No_List instead of Empty_List in the case where
5251 there are no handlers.
5252
52532011-08-29 Tristan Gingold <gingold@adacore.com>
5254
5255 * gcc-interface/gigi.h (enum standard_datatypes): Add
5256 ADT_reraise_zcx_decl
5257 (reraise_zcx_decl): New macro.
5258 * gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
5259 (gigi): Set reraise_zcx_decl.
5260 (Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
5261 (gnat_to_gnu): Handle N_Raise_Statement.
5262
7134062a
AC
52632011-08-29 Robert Dewar <dewar@adacore.com>
5264
5265 * sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,
5266 a-undesu.adb: Minor reformatting.
5267
52682011-08-29 Ed Schonberg <schonberg@adacore.com>
5269
5270 * exp_disp.adb (Check_Premature_Freezing): When building a dispatch
5271 table, accept an unfrozen untagged component if it is an actual for a
5272 formal incomplete type.
5273 * a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to
5274 provide new iterator forms over vectors.
5275 Introduce type Iterator in package body to implement operations of
5276 Reversible_Iterator interface.
5277 * a-iteint.ads: Make package pure so it is usable with new container
5278 packages, that are categorized Remote_Types.
5279
ca5af305
AC
52802011-08-29 Robert Dewar <dewar@adacore.com>
5281
5282 * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting.
5283
52842011-08-29 Bob Duff <duff@adacore.com>
5285
5286 * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case
5287 of <>, because this is the routine that checks for dimensionality
5288 errors (for example, for a two-dimensional array, (others => <>) should
5289 be (others => (others => <>)).
5290
52912011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5292
5293 * impunit.adb: Add new run-time units.
5294 * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb,
5295 s-stposu.ads, s-stposu.adb: Code clean up.
5296 Handle protected class-wide or task class-wide types
5297 Handle C/C++/CIL/Java types.
5298 * s-spsufi.adb, s-spsufi.ads: New files.
5299
5accd7b6
AC
53002011-08-29 Yannick Moy <moy@adacore.com>
5301
5302 * sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on
5303 library-level subprogram.
5304 * sem_prag.adb (Check_Test_Case): Stricter rules for test-case
5305 placement.
5306 (Analyze_Pragma): Change name "Normal" for "Nominal" in test-case
5307 component.
5308 * snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case
5309 component.
5310 * gnat_rm.texi: Update doc for Test_Case pragma.
5311
53122011-08-29 Tristan Gingold <gingold@adacore.com>
5313
5314 * a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it
5315 convention C.
5316 (GCC_Exception_Access): New type.
5317 (Unwind_DeleteException): New imported procedure
5318 (Foreign_Exception): Import it.
5319 (GNAT_GCC_Exception): Simply have the occurrence inside.
5320 (To_GCC_Exception): New function.
5321 (To_GNAT_GCC_Exception): New function.
5322 (GNAT_GCC_Exception_Cleanup): New procedure..
5323 (Propagate_GCC_Exception): New procedure.
5324 (Reraise_GCC_Exception): New procedure.
5325 (Setup_Current_Excep): New procedure.
5326 (CleanupUnwind_Handler): Change type of UW_Exception parameter.
5327 (Unwind_RaiseException): Ditto.
5328 (Unwind_ForcedUnwind): Ditto.
5329 (Remove): Removed.
5330 (Begin_Handler): Change type of parameter.
5331 (End_Handler): Ditto. Now delete the exception if still present.
5332 (Setup_Key): Removed.
5333 (Is_Setup_And_Not_Propagated): Removed.
5334 (Set_Setup_And_Not_Propagated): Ditto.
5335 (Clear_Setup_And_Not_Propagated): Ditto.
5336 (Save_Occurrence_And_Private): Ditto.
5337 (EID_For): Add 'not null' constraint on parameter.
5338 (Setup_Exception): Does nothing.
5339 (Propagate_Exception): Simplified.
5340 * exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,
5341 re-raise is not expanded anymore.
5342 * s-except.ads (Foreign_Exception): New exception - placeholder for
5343 non Ada exceptions.
5344 * raise-gcc.c (__gnat_setup_current_excep): Declare
5345 (CXX_EXCEPTION_CLASS): Define (not yet used)
5346 (GNAT_EXCEPTION_CLASS): Define.
5347 (is_handled_by): Handle foreign exceptions.
5348 (PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.
5349
53502011-08-29 Jose Ruiz <ruiz@adacore.com>
5351
5352 * a-synbar.adb (Synchronous_Barrier): Some additional clarification.
5353
2ef48385
AC
53542011-08-29 Thomas Quinot <quinot@adacore.com>
5355
5356 * a-synbar-posix.adb: Minor reformatting.
5357
53582011-08-29 Jose Ruiz <ruiz@adacore.com>
5359
5360 * a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,
5361 a-exetim-default.ads (Interrupt_Clocks_Supported,
5362 Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
5363 definitions to be compliant with AI-0171. The target systems do not
5364 support separate account for the execution time of interrupt handlers.
5365
53662011-08-29 Jose Ruiz <ruiz@adacore.com>
5367
5368 * a-synbar.adb (Wait): Change the order of evaluation of the conditions
5369 in the barrier to put first the easiest to evaluate (and the one which
5370 will be True more often). More efficient.
5371
53722011-08-29 Eric Botcazou <ebotcazou@adacore.com>
5373
5374 * s-atocou-x86.adb: Fix constraint in machine code insertion.
5375
53762011-08-29 Bob Duff <duff@adacore.com>
5377
5378 * aspects.ads, aspects.adb: Add new aspects for various pragmas and
5379 attributes that are now aspects, as specified by AI05-0229-1.
5380 * sem_ch13.adb (Analyze_Aspect_Specifications,
5381 Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into
5382 pragmas or attribute references, as appropriate.
5383
0db16b1e
AC
53842011-08-29 Robert Dewar <dewar@adacore.com>
5385
5386 * a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,
5387 a-synbar-posix.ads: Minor reformatting.
5388
53892011-08-29 Yannick Moy <moy@adacore.com>
5390
5391 * snames.ads-tmpl: Add name Force.
5392
978ffe02
AC
53932011-08-29 Pascal Obry <obry@adacore.com>
5394
5395 * prj-nmsc.adb: Minor reformatting.
5396
53972011-08-29 Jose Ruiz <ruiz@adacore.com>
5398
5399 * a-exetim.ads (Interrupt_Clocks_Supported,
5400 Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
5401 definitions to be compliant with AI-0171.
5402
54032011-08-29 Robert Dewar <dewar@adacore.com>
5404
5405 * a-ngelfu.adb: Add comments.
5406
718f39dc
AC
54072011-08-29 Geert Bosch <bosch@adacore.com>
5408
5409 * a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is
5410 the closest machine number to Pi / 2.0.
5411
54122011-08-29 Jose Ruiz <ruiz@adacore.com>
5413
5414 * impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012
5415 package Ada.Synchronous_Barriers.
5416 * a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:
5417 Add new specs and bodies for Ada.Synchronous_Barriers. There is a
5418 default implementation using protected objects and another one
5419 a-synbar-posix using POSIX barriers as the underlying support.
5420 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,
5421 x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of
5422 Ada.Synchronous_Barriers which uses POSIX barriers (more efficient).
5423 Clean up dependencies.
5424 * Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o
5425
ee2e3f6b
AC
54262011-08-29 Robert Dewar <dewar@adacore.com>
5427
5428 * sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,
5429 exp_dist.adb: Minor code reorganization.
5430 Minor reformatting.
5431
54322011-08-29 Thomas Quinot <quinot@adacore.com>
5433
5434 * sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW
5435 primitive operation must support external streaming if it is not a
5436 controlling access result.
5437
646e2823
AC
54382011-08-29 Thomas Quinot <quinot@adacore.com>
5439
5440 * sinfo.ads, sem_ch7.adb: Minor reformatting.
5441
54422011-08-29 Bob Duff <duff@adacore.com>
5443
5444 * sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
5445 restriction on allocators, as required by AI05-0013-1.
5446 * restrict.ads: Minor comment fix.
5447
5d59eef2
AC
54482011-08-29 Tristan Gingold <gingold@adacore.com>
5449
5450 * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb
5451 (To_Jmpbuf_Address): Ditto
5452 (builtin_longjmp): Ditto
5453
54542011-08-29 Thomas Quinot <quinot@adacore.com>
5455
5456 * sem_res.adb: Minor reformatting.
5457
54582011-08-29 Vincent Celier <celier@adacore.com>
5459
5460 * make.adb (Gnatmake): Move special processing for VM targets after the
5461 call to Get_Target_Parameters.
5462
54632011-08-29 Thomas Quinot <quinot@adacore.com>
5464
5465 * sem_ch12.adb, par-ch12.adb: Minor reformatting.
5466
949a18cc
AC
54672011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5468
5469 * sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases
5470 where an anonymous access discriminant of a limited designated type
5471 appears in a non-immutably limited discriminated type and issue an
5472 error message. Add local variable Desig_T and replace all occurrences
5473 of Designated_Type.
5474
54752011-08-29 Jose Ruiz <ruiz@adacore.com>
5476
5477 * a-rttiev.adb (Set_Handler): Update comment to indicate that our
5478 implementation is compliant to RM D.15(15/2) after the modification
5479 imposed by AI05-0094-1 (binding interpretation).
5480
cb25faf8
AC
54812011-08-29 Robert Dewar <dewar@adacore.com>
5482
5483 * exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb,
5484 s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting.
5485
54862011-08-29 Thomas Quinot <quinot@adacore.com>
5487
5488 * par-endh.adb (Check_End): For an END where it is mandatory to repeat
5489 the scope name, do not report a missing label as a style violation (it
5490 will be diagnosed as an illegality).
5491 * exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of
5492 variant records: Get_Enum_Lit_From_Pos already returns a usage
5493 occurrence of the literal, no need to use New_Occurrence_Of. Set Etype
5494 on Expr in Integer_Literal case so that it can be used by
5495 Build_To_Any_Call.
5496
1d10f669
AC
54972011-08-29 Tristan Gingold <gingold@adacore.com>
5498
5499 * exp_sel.ads (Build_Abort_BLock_Handler): New function spec.
5500 Adjust comment.
5501 * exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler.
5502 (Build_Abort_Block_Handler): New function to build an Abort_Signal
5503 exception handler.
5504 * exp_ch9.adb (Expand_N_Asynchronous_Select): Call
5505 Build_Abort_Block_Handler to build the exception handler. Do not
5506 undefer aborts for the Abort_Signal exception handler if back-end
5507 exception mechanism.
5508 * exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if
5509 back_end exceptions for all others and abort_signal.
5510 * s-except.ads (ZCX_By_Default): New constant.
5511 * a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX.
5512 (Raise_Exception_Always): Ditto.
5513 (Raise_From_Signal_Handler): Ditto.
5514 (Raise_With_Location_And_Msg): Ditto.
5515 (Raise_With_Msg): Ditto.
5516 (Reraise): Ditto.
5517 (Reraise_Occurence): Ditto.
5518 (Reraise_Occurrence_Always): Ditto.
5519 * s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX.
5520 * s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX.
1d10f669
AC
5521
55222011-08-29 Thomas Quinot <quinot@adacore.com>
5523
5524 * sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation.
5525
d986066d
AC
55262011-08-29 Robert Dewar <dewar@adacore.com>
5527
5528 * snames.adb-tmpl, sem_ch13.adb: Minor reformatting
5529 Minor code reorganization.
5530
55312011-08-29 Bob Duff <duff@adacore.com>
5532
5533 * usage.adb (-gnatwy): Fix documentation: this switch applies to Ada
5534 2012, not just Ada 2005.
5535
55362011-08-29 Vincent Celier <celier@adacore.com>
5537
5538 * gnat_ugn.texi: Indicate that when the compiler is called by gnatmake
5539 with a project file or with gprbuid, if -gnatep= is specified, the
5540 builder may need to be invoked with -x.
5541
55422011-08-29 Tristan Gingold <gingold@adacore.com>
5543
5544 * a-exexpr-gcc.adb: Minor comment fix.
5545
ff4f0ed0
AC
55462011-08-29 Robert Dewar <dewar@adacore.com>
5547
5548 * sem_ch8.adb: Minor reformatting.
5549
55502011-08-29 Bob Duff <duff@adacore.com>
5551
5552 * par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012.
5553 * par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for
5554 treating "some" as unreserved in earlier Ada versions. This is now
5555 handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some,
5556 rather than Name_Some, since Tok_Some is now recognized as reserved.
5557 * scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other
5558 reserved word.
5559 * scans.ads: Minor comment fixes.
5560 * snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as
5561 for other language versions.
5562 * scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for
5563 treating "some" as unreserved in earlier Ada versions. This is now
5564 handled in Snames.Is_Keyword_Name.
5565 * par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in
5566 Ada 2012.
5567 (P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as
5568 unreserved in earlier Ada versions. This is now handled in
5569 Snames.Is_Keyword_Name.
5570 * snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved
5571 words as for other language versions.
5572 * gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to
5573 Ada 2012, not just Ada 2005.
5574
d941cee6
AC
55752011-08-29 Ed Schonberg <schonberg@adacore.com>
5576
5577 * sem_ch13.adb: Additional semantic checks for aspects involved in
5578 iterators.
5579
55802011-08-29 Matthew Heaney <heaney@adacore.com>
5581
5582 * a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb,
5583 a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous
5584 Container parameter.
5585 (Ancestor_Find): ditto.
5586
b970af39
TQ
55872011-08-29 Thomas Quinot <quinot@adacore.com>
5588
5589 * par-endh.adb: Minor reformatting.
d941cee6 5590
92db5dee
AC
55912011-08-29 Tristan Gingold <gingold@adacore.com>
5592
5593 * a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants.
5594 (GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component.
5595 (Adjust_N_CLeanups_For): Remove.
5596 (CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of
5597 stack is reached.
5598 (Propgate_Exception): Adjust.
5599 * raise-gcc.c: Add a few static/const.
5600 (Adjust_N_Cleanups_For): Remove declaration.
5601 (PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger.
5602
56032011-08-29 Ed Schonberg <schonberg@adacore.com>
5604
5605 * sem_ch8.adb: Use type of function return when rewriting as object
5606 declaration.
5607
1378bf10
AC
56082011-08-29 Gary Dismukes <dismukes@adacore.com>
5609
5610 * sem_type.adb: Minor reformatting.
5611
56122011-08-29 Robert Dewar <dewar@adacore.com>
5613
5614 * makeutl.adb: Minor reformatting.
5615
56162011-08-29 Ed Schonberg <schonberg@adacore.com>
5617
5618 * sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a
5619 function call of a limited type, the expansion of the renaming is
5620 complicated by the presence of various temporaries and subtypes that
5621 capture constraints of the renamed object.
5622 Rewrite node as an object declaration, whose expansion is simpler.
5623 Given that the object is limited there is no copy involved and no
5624 performance hit.
5625
164e06c6
AC
56262011-08-29 Robert Dewar <dewar@adacore.com>
5627
5628 * exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb,
5629 freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting.
5630
56312011-08-29 Tristan Gingold <gingold@adacore.com>
5632
5633 * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
5634 system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads,
5635 system-linux-hppa.ads, system-linux-s390.ads,
5636 system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
5637 system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads,
5638 system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads,
5639 system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads,
5640 system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads,
5641 system-solaris-sparc.ads, system-lynxos-x86.ads,
5642 system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads,
5643 system-solaris-x86_64.ads, system-mingw-x86_64.ads,
5644 system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads,
5645 system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads,
7d266442 5646 system-vxworks-x86.ads: Remove GCC_ZCX_Support.
164e06c6
AC
5647 * s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb,
5648 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto.
5649 * opt.ads: Adjust comment.
5650 * targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target.
5651 * gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target.
5652 * system.ads: Move GCC_ZCX_Support to obsolete entries.
5653
56542011-08-29 Emmanuel Briot <briot@adacore.com>
5655
5656 * makeutl.adb (Do_Complete): Resolve symbolic links when a relative
5657 file name is specified on the gnatmake or gprbuild command line, and
5658 before we search for that file in the project.
5659
56602011-08-29 Ed Schonberg <schonberg@adacore.com>
5661
5662 * sem_type.adb (Within_Instance): New predicate in Collect_Interps,
5663 used to determine whether a possible interpretation for an overloadable
5664 entity is declared within the current instantiation and should be
5665 included in the candidate set.
5666
56672011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
5668
5669 * gnat_rm.texi, gnat_ugn.texi: Clean ups.
5670
97216ca8
ES
56712011-08-29 Ed Schonberg <schonberg@adacore.com>
5672
5673 * sem_res.adb (Resolve_Actuals): Use base type to determine whether an
5674 access subtype is access_to_subprogram, when applying checks for
5675 RM 3.10.2 (27).
5676
d3cb4cc0
AC
56772011-08-29 Matthew Heaney <heaney@adacore.com>
5678
5679 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check
5680 for sibling when common parent.
5681
56822011-08-29 Thomas Quinot <quinot@adacore.com>
5683
5684 * get_scos.adb: Literals of Pragma_Id are pragma names prefixed with
5685 "pragma_".
5686
56872011-08-29 Ed Schonberg <schonberg@adacore.com>
5688
5689 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions
5690 for the return type when in ASIS mode.
5691
56922011-08-29 Vincent Celier <celier@adacore.com>
5693
5694 * make.adb (Gnatmake): Get the default search dirs, then the target
5695 parameters after getting the Builder switches, as the Builder switches
5696 may include --RTS= and that could change the default search dirs.
5697
56982011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5699
5700 * exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of
5701 Make_Final_Call. Move the processing for class-wide types before the
5702 processing for derivations from [Limited_]Controlled.
5703 (Make_Final_Call): Move the processing for class-wide types before the
5704 processing for derivations from [Limited_]Controlled.
5705 * s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.
5706 Add code to account for alignments larger than the list header. Add a
5707 comment illustrating the structure of the allocated object + padding +
5708 header.
5709 (Deallocate_Any_Controlled): Add code to account for alignments larger
5710 than the list header.
5711
57122011-08-29 Ed Schonberg <schonberg@adacore.com>
5713
5714 * sinfo.ads, sinfo.adb: New node kind
5715 N_Formal_Incomplete_Type_Definition, related flags.
5716 par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):
5717 Parse formal incomplete types.
5718 * sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in
5719 sem_ch12.
5720 * sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):
5721 Formal incomplete types do not need completion.
5722 * sem_ch12.adb (Analyze_Formal_Incomplete_Type,
5723 Validate_Incomplete_Type_Instance): New procedures to handle formal
5724 incomplete types.
5725 * freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual
5726 that corresponds to a formal incomplete type.
5727 * sprint.adb: Handle formal incomplete type declarations.
5728 * exp_util.adb (Insert_Actions): An incomplete_type_definition is not
5729 an insertion point.
5730
d3f70b35
AC
57312011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
5732
5733 * a-fihema.ads, a-fihema.adb: Unit removed.
5734 * a-undesu.ads, a-undesu.adb: New unit implementing
5735 Ada.Unchecked_Deallocate_Subpool.
5736 * einfo.adb: Remove Associated_Collection from the node usage.
5737 Add Finalization_Master to the node usage.
5738 (Associated_Collection): Removed.
5739 (Finalization_Master): New routine.
5740 (Set_Associated_Collection): Removed.
5741 (Set_Finalization_Master): New routine.
5742 (Write_Field23_Name): Remove Associated_Collection from the output. Add
5743 Finalization_Master to the output.
5744 * einfo.ads: Remove attribute Associated_Collection and its uses in
5745 entities.
5746 Add new attribute Finalization_Master along with its uses in entitites.
5747 (Associated_Collection): Removed along with its pragma import.
5748 (Finalization_Master): New routine along with a pragma import.
5749 (Set_Associated_Collection): Removed along with its pragma import.
5750 (Set_Finalization_Master): New routine along with a pragma import.
5751 * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to
5752 Build_Finalization_Collection with Build_Finalization_Master.
5753 (Expand_Freeze_Record_Type): Move the generation of Finalize_Address
5754 before the bodies of the predefined routines. Add comment explaining
5755 this. Replace call to Build_Finalization_Collection with
5756 Build_Finalization_Master.
5757 (Freeze_Type): Replace call to Build_Finalization_Collection with
5758 Build_Finalization_Master.
5759 (Make_Finalize_Address_Body): Comment reformatting.
5760 (Make_Predefined_Primitive_Specs): Code reformatting.
5761 (Stream_Operation_OK): Update comment mentioning finalization
5762 collections. Replace RE_Finalization_Collection with
5763 RE_Finalization_Master.
5764 * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to
5765 Associated_Collection with Finalization_Master. Replace call to
5766 Build_Finalization_Collection with Build_Finalization_Master.
5767 (Expand_Allocator_Expression): Replace call to Associated_Collection
5768 with Finalization_Master. Replace call to Set_Associated_Collection with
5769 Set_Finalization_Master. Remove the generation of
5770 Set_Finalize_Address_Ptr.
5771 (Expand_N_Allocator): Replace call to Associated_Collection with
5772 Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr.
5773 * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to
5774 Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the
5775 comment on usage. Replace call to Needs_BIP_Collection with
5776 Needs_BIP_Finalization_Master Remplace BIP_Collection with
5777 BIP_Finalization_Master. Update all comments which mention finalization
5778 collections. Replace Associated_Collection with
5779 Finalization_Master. Replace Build_Finalization_Collection with
5780 Build_Finalization_Master.
5781 (BIP_Formal_Suffix): Update BIP_Collection's case.
5782 (Build_Heap_Allocator): Update the related comment. Rename local
5783 variable Collect to Fin_Mas_Id and update its occurrences. Update
5784 comments which mention finalization collections. Replace
5785 Set_Associated_Collection with Set_Finalization_Master.
5786 (Expand_Call): Update the code which detects a special piece of library
5787 code for .NET/JVM.
5788 (Make_Build_In_Place_Call_In_Allocator): Replace the call to
5789 Add_Collection_Actual_To_Build_In_Place_Call with
5790 Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code
5791 which generates a call to Make_Set_Finalize_Address_Ptr_Call.
5792 (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to
5793 Add_Collection_Actual_To_Build_In_Place_Call with
5794 Add_Finalization_Master_Actual_To_Build_In_Place_Call.
5795 (Make_Build_In_Place_Call_In_Assignment): Replace call to
5796 Add_Collection_Actual_To_Build_In_Place_Call with
5797 Add_Finalization_Master_Actual_To_Build_In_Place_Call.
5798 (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
5799 * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master.
5800 (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
5801 * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage.
5802 Rename local variable Collect to Fin_Mas_Id and update its occurrences.
5803 Replace call to Set_Associated_Collection with Set_Finalization_Master.
5804 (Build_Finalization_Collection): Renamed to Build_Finalization_Master.
5805 Replace the call to Associated_Collection with Finalization_Master.
5806 Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences.
5807 Update the way finalization master names are generated. Update the
5808 retrieval of the correct access type which will carry the pool and
5809 master attributes.
5810 (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved.
5811 (Make_Finalize_Address_Body): Abstract types do not need
5812 Finalize_Address. Code reformatting.
5813 (Make_Finalize_Address_Stmts): Update comment on usage.
5814 (Make_Set_Finalize_Address_Ptr_Call): Removed.
5815 (Process_Declarations): Update comments.
5816 * exp_ch7.ads (Build_Finalization_Collection): Renamed to
5817 Build_Finalization_Master. Update associated comment.
5818 (Make_Set_Finalize_Address_Ptr_Call): Removed.
5819 * exp_ch13.adb: Update comments which mention finalization collections.
5820 (Expand_N_Free_Statement): Replace the call to Associated_Collection
5821 with Finalization_Master.
5822 * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to
5823 create calls to routines Allocate_Any_Controlled and
5824 Deallocate_Any_Controlled.
5825 (Find_Finalize_Address): New routine.
5826 (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the
5827 comparison.
5828 (Requires_Cleanup_Actions): Update the comment on freeze node
5829 inspection.
5830 * exp_util.ads: Remove comment on generated code for
5831 Build_Allocate_Deallocate_Proc. The code is now quite complex and it
5832 is better to simply look in the body.
5833 * freeze.adb (Freeze_All): Update the comment of finalization
5834 collections. Replace the call to Associated_Collection with
5835 Finalization_Master. Replace the call to Build_Finalization_Collection
5836 with Build_Finalization_Master.
5837 * impunit.adb: Add a-undesu and s-stposu to the list of units.
5838 * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file
5839 a-fihema.
5840 * rtsfind.adb (Get_Unit_Name): Remove the processing for children of
5841 Ada.Finalization. Add processing for children of System.Storage_Pools.
5842 * rtsfind.ads: Remove the naming of second level children of
5843 Ada.Finalization.
5844 Remove Ada_Finalization_Heap_Management from the list of units.
5845 Remove subtype Ada_Finalization_Child.
5846 Remove the following subprogram entities:
5847
5848 RE_Allocate
5849 RE_Deallocate
5850 RE_Finalization_Collection
5851 RE_Finalization_Collection_Ptr
5852 RE_Set_Finalize_Address_Ptr
5853
5854 Add the naming of second level children of System.Storage_Pools.
5855 Add System_Finalization_Masters and System_Storage_Pools_Subpools to
5856 the list of units.
5857 Add subtype System_Storage_Pools_Child.
5858 Add the following subprogram entities to System.Finalization_Masters:
5859
5860 RE_Finalization_Master
5861 RE_Finalization_Master_Ptr
5862
5863 Add the following subprogram entities to System.Storage_Pools.Subpools:
5864
5865 RE_Allocate_Any_Controlled
5866 RE_Deallocate_Any_Controlled
5867 RE_Root_Storage_Pool_With_Subpools
5868 RE_Root_Subpool
5869 RE_Subpool_Handle
5870
5871 Move the following subprogram entities from
5872 Ada.Finalization.Heap_Management to System.Finalization_Masters:
5873
5874 RE_Add_Offset_To_Address
5875 RE_Attach
5876 RE_Base_Pool
5877 RE_Detach
5878
5879 * sem_ch3.adb (Access_Type_Declaration): Replace the call to
5880 Set_Associated_Collection with Set_Finalization_Master.
5881 * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal
5882 BIP_Finalization_Master is created.
5883 * s-finmas.adb: New unit System.Finalization_Masters.
5884 * s-finmas.ads: New unit System.Finalization_Masters.
5885 * s-stopoo.ads, s-stopoo.adb: Minor code reformatting.
5886 * s-stposu.ads, s-stposu.adb: New unit implementing
5887 System.Storage_Pools.Subpools.
5888
58892011-08-29 Bob Duff <duff@adacore.com>
5890
5891 * tbuild.adb: Add assertion.
5892
8c889ae4
AC
58932011-08-29 Thomas Quinot <quinot@adacore.com>
5894
5895 * s-pooglo.adb: Minor reformatting.
5896
58972011-08-29 Ed Schonberg <schonberg@adacore.com>
5898
5899 * exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is
5900 an indexed component of a packed array whose element type is a record
5901 with a representation clause different from that of the right-hand
5902 side, generate a temporary to minimuze the number of bit-field
5903 operations generated.
5904
59052011-08-29 Ed Schonberg <schonberg@adacore.com>
5906
5907 * exp_util.adb (Insert_Actions): Use clauses can be part of lists of
5908 declarations, and thus are likely insertion points for actions.
5909
59102011-08-29 Bob Duff <duff@adacore.com>
5911
5912 * einfo.ads: Minor comment fix.
5913
1a07a71a
AC
59142011-08-29 Robert Dewar <dewar@adacore.com>
5915
5916 * frontend.adb, gnat1drv.adb: Minor reformatting.
5917
59182011-08-29 Tristan Gingold <gingold@adacore.com>
5919
5920 * s-pooglo.adb (Allocate, Deallocate): Take into account the alignment.
5921 * a-fihema.adb (Allocate, Deallocate): Ditto. Possibly add padding
5922 space in front of the header.
5923
4bcd6411
JK
59242011-08-29 Johannes Kanig <kanig@adacore.com>
5925
5926 * frontend.adb (Frontend): Exit after creating Standard package when
5927 -gnatd.H is present.
5928 * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is
5929 present.
5930
f0f88eb6
RD
59312011-08-29 Robert Dewar <dewar@adacore.com>
5932
5933 * exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,
5934 makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl,
5935 snames.ads-tmpl: Minor reformatting.
5936
3e37be71
PG
59372011-08-29 Philippe Gil <gil@adacore.com>
5938
5939 * prj.adb (Reset_Units_In_Table): New procedure.
5940 Reset units to avoid access to freed memory.
5941
94fb7608
AC
59422011-08-29 Thomas Quinot <quinot@adacore.com>
5943
5944 * get_scos.adb: When reading a P statement SCO without a pragma name
5945 (from an older ALI file), ensure that the Pragma_Name component is set
5946 to Unknown_Pragma (not left uninitialized).
5947
59482011-08-29 Vincent Celier <celier@adacore.com>
5949
5950 * makeutl.adb (Get_Directories): New procedure moved from Buildgpr and
5951 modified to compute correctly the object path of a SAL project that is
5952 extending another library project.
5953 (Write_Path_File): New procedure.
5954 * makeutl.ads (Directories): New table moved from Buildgpr
5955 (Get_Directories): New procedure moved from Buildgpr
5956 (Write_Path_File): New procedure
5957 * mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the
5958 paths before binding SALs, instead of Set_Ada_Paths.
5959 * prj-env.adb (Set_Path_File_Var): Procedure has been moved to package
5960 Prj.
5961 * prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env
5962 (Current_Source_Path_File_Of): New function
5963 (Set_Current_Object_Path_File_Of): New procedure
5964 (Current_Source_Object_File_Of): New function
5965 (Set_Current_Object_Path_File_Of): New procedure
5966 * prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env
5967 (Current_Source_Path_File_Of): New function
5968 (Set_Current_Object_Path_File_Of): New procedure
5969 (Current_Source_Object_File_Of): New function
5970 (Set_Current_Object_Path_File_Of): New procedure
5971
59722011-08-29 Ed Schonberg <schonberg@adacore.com>
5973
5974 * exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a
5975 packed entity, use a bit-field assignment only if there is no change of
5976 representation.
5977
c5ecd6b7
AC
59782011-08-29 Thomas Quinot <quinot@adacore.com>
5979
5980 * rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, use
5981 Is_RTU instead of using Chars comparisons.
5982
59832011-08-29 Thomas Quinot <quinot@adacore.com>
5984
5985 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create a
5986 temporary object if the actual is constrained, and the discriminants
5987 read from the stream don't match.
5988
59892011-08-29 Tristan Gingold <gingold@adacore.com>
5990
5991 * sem_attr.adb, exp_attr.adb: Add handling of
5992 Attribute_System_Allocator_Alignment
5993 * snames.ads-tmpl: Add Name_System_Allocator_Alignment and
5994 Attribute_System_Allocator_Alignment.
5995 * ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment.
5996 * gcc-interface/targtyps.c, gcc-interface/utils2.c,
5997 gcc-interface/gigi.h: Renames get_target_default_allocator_alignment to
5998 get_target_system_allocator_alignment.
5999
60002011-08-29 Arnaud Charlet <charlet@adacore.com>
6001
6002 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
6003 dependencies.
6004
8abdac29
AC
60052011-08-29 Arnaud Charlet <charlet@adacore.com>
6006
6007 * exp_ch3.adb (In_Runtime): Fix typo.
6008
df170605
AC
60092011-08-29 Bob Duff <duff@adacore.com>
6010
6011 * sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification.
6012
60132011-08-29 Ed Schonberg <schonberg@adacore.com>
6014
6015 * exp_ch3.adb (Expand_N_Object_Declaration): If the entity is tagged
6016 and a separate tag assignment is generated, ensure that the tag
6017 assignment is analyzed.
6018
864a4236
ES
60192011-08-29 Ed Schonberg <schonberg@adacore.com>
6020
6021 * atree.ads, atree.adb (Copy_Separate_List): New function that applies
6022 Copy_Separate_Tree to a list of nodes. Used to create disjoint copies
6023 of statement lists that may contain local declarations.
df170605
AC
6024 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use Copy_Separate_List to
6025 duplicate the triggering statements needed for the expansion of this
6026 construct, when the trigger is a dispatching call to a synchronized
6027 primitive.
864a4236 6028
7f394c1d
AC
60292011-08-29 Arnaud Charlet <charlet@adacore.com>
6030
6031 * gnat_rm.texi: Add doc for 'Elab_Subp_Body.
6032 * bindgen.adb: Add comments.
6033 * snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Body
6034 in CodePeer mode.
6035
2c1a2cf3
RD
60362011-08-29 Robert Dewar <dewar@adacore.com>
6037
6038 * exp_attr.adb: Minor reformatting.
6039 Minor code reorganization and commenting.
6040 * par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minor
6041 reformatting.
6042
0bfc9a64
AC
60432011-08-29 Thomas Quinot <quinot@adacore.com>
6044
6045 * get_scos.adb: Ignore chaining indicators not currently supported
6046 by Ada.
6047
60482011-08-29 Arnaud Charlet <charlet@adacore.com>
6049
6050 * system.ads: Minor editing.
6051
60522011-08-29 Arnaud Charlet <charlet@adacore.com>
6053
6054 * bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in
6055 CodePeer mode.
6056 * sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of
6057 Attribute_Elab_Subp_Body.
6058 * snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New.
6059 * sem_util.adb: Update comments.
6060
828d4cf0
TQ
60612011-08-29 Thomas Quinot <quinot@adacore.com>
6062
6063 * par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record
6064 pragma name for each SCO statement corresponding to a pragma.
6065
5cd7bb15
AC
60662011-08-29 Arnaud Charlet <charlet@adacore.com>
6067
6068 * opt.ads: Minor editing.
6069
60702011-08-29 Yannick Moy <moy@adacore.com>
6071
6072 * gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode
6073 that only made sense for CodePeer mode.
6074
60752011-08-29 Jose Ruiz <ruiz@adacore.com>
6076
6077 * targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag
6078 which is no longer used.
6079 * targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the
6080 handling of the 64-bit division check.
6081 * exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit
6082 division available.
6083 * system*.ads (Support_64_Bit_Divides): Remove this flag which is no
6084 longer used.
6085
60862011-08-29 Thomas Quinot <quinot@adacore.com>
6087
6088 * get_scos.adb: Minor reformatting.
6089
25b589cb
AC
60902011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
6091
6092 * exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a
6093 statement list is wrapped in a block, the block is explicitly analyzed
6094 in order to properly redecorate the entities and create a servicing
6095 finalizer.
6096
60972011-08-29 Tristan Gingold <gingold@adacore.com>
6098
6099 * sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove.
6100 (Set_Zero_Cost_Handling): Remove.
6101
61022011-08-29 Thomas Quinot <quinot@adacore.com>
6103
6104 * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting
6105
1197ddb1
AC
61062011-08-29 Geert Bosch <bosch@adacore.com>
6107
6108 * s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation
6109 instruction, as the latter may produce -0.0, which is not a valid VAX
6110 F float number.
6111 (Neg_G): Likewise for VAX F float.
6112
61132011-08-29 Robert Dewar <dewar@adacore.com>
6114
6115 * exp_util.adb: Minor reformatting.
6116
61172011-08-29 Yannick Moy <moy@adacore.com>
6118
6119 * sem_ch3.adb: Minor comment update.
6120
61212011-08-29 Thomas Quinot <quinot@adacore.com>
6122
6123 * checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of
6124 the operand type.
6125
61262011-08-29 Thomas Quinot <quinot@adacore.com>
6127
6128 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush
6129 current statement sequence on a generic instantiation or a subprogram
6130 declaration.
6131
8f66cda7
AC
61322011-08-29 Robert Dewar <dewar@adacore.com>
6133
6134 * sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:
6135 Minor reformatting.
6136
61372011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
6138
6139 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
6140 Correct the check which involves the freeze node of a controlled or
6141 access-to-controlled type.
6142
61432011-08-29 Geert Bosch <bosch@adacore.com>
6144
6145 * sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm
6146 statements.
6147 * s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from
6148 Asm statements.
6149
cf161d66
AC
61502011-08-29 Yannick Moy <moy@adacore.com>
6151
6152 * sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration
6153 for every index type and component type that is not a subtype_mark.
6154 (Process_Subtype): Set Etype of subtype.
6155
61562011-08-29 Robert Dewar <dewar@adacore.com>
6157
6158 * a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code
6159 reorganization. Minor reformatting.
6160
7cc83cd8
AC
61612011-08-29 Steve Baird <baird@adacore.com>
6162
6163 * exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion
6164 for CodePeer and ALFA modes.
6165
61662011-08-29 Ed Schonberg <schonberg@adacore.com>
6167
6168 * sem_type.adb (Collect_Interps): Within an instance, collect a homonym
6169 that comes from an enclosing scope if it is not the renaming of an
6170 actual, to handle properly a spurious ambiguity in an instance.
6171
76af4137
AC
61722011-08-29 Eric Botcazou <ebotcazou@adacore.com>
6173
6174 * sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to...
6175 (Alignment_Check_For_Size_Change): ...this. Add SIZE parameter and
6176 use it instead of the Esize of the first parameter.
6177 (Analyze_Attribute_Definition_Clause) <Object_Size>: Adjust call to
6178 above change.
6179 <Size>: Likewise. Call it for composite types on the RM size.
6180
61812011-08-29 Yannick Moy <moy@adacore.com>
6182
6183 * exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array.
6184 * sem_util.adb (Unique_Name): Correct behaviour for names of
6185 compilation units.
6186
9b20e59b
AC
61872011-08-29 Yannick Moy <moy@adacore.com>
6188
6189 * sem_prag.adb (Check_Precondition_Postcondition): In formal
6190 verification mode, analyze pragma expression for correctness, for
6191 pre/post on library-level subprogram, as it is not expanded later.
6192
61932011-08-29 Yannick Moy <moy@adacore.com>
6194
6195 * exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates
6196 in formal verification.
6197
61982011-08-29 Thomas Quinot <quinot@adacore.com>
6199
6200 * sem_util.adb: Minor reformatting.
6201 * freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute,
6202 there's no pragma.
6203 * par_sco.ads, par_sco.adb: Update comments.
6204
62052011-08-29 Yannick Moy <moy@adacore.com>
6206
6207 * einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and
6208 associated getter/setter.
6209 * sem_ch6.adb: Remove reference to Is_Postcondition_Proc.
6210
62112011-08-29 Vincent Celier <celier@adacore.com>
6212
6213 * prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind
6214 * prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler
6215 with declarations for Language_Kind and Dependency_Kind for Ada.
6216 * prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name
6217 (Process_Compiler): Take into account the new attributes Dependency_Kind
6218 and Language_Kind.
6219 (Check_Configuration): Check if language kind is unit based, not if the
6220 language name is Ada.
6221 (Process_Exceptions_Unit_Based): Ditto
6222 (Add_Language): Remove default additions of language and dependency kind
6223 * prj.ads: Minor comment change
6224 * snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind
6225
62262011-08-29 Johannes Kanig <kanig@adacore.com>
6227
6228 * debug.adb: Update comments.
6229
c5bc3df6
JM
62302011-08-24 Joseph Myers <joseph@codesourcery.com>
6231
6232 * gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)
6233 (CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)
6234 (CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.
6235 (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)
6236 (ada/initialize.o, ada/raise.o): Remove explicit compilation rules.
6237
e3aa9eba
RO
62382011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6239
6240 * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
6241 (GNATLIBCFLAGS_FOR_C): Replace
6242 TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
6243 (gnatlib-shared-default, gnatlib-shared-dual-win32)
6244 (gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
6245 (gnatlib-sjlj, gnatlib-zcx): Likewise.
6246
f446d60e
EB
62472011-08-07 Eric Botcazou <ebotcazou@adacore.com>
6248
6249 * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.
6250
588c8f48
EB
6251 * gcc-interface/gigi.h (enumerate_modes): Fix formatting.
6252
6253 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change.
6254
28d711bf
NR
62552011-08-05 Nicolas Roche <roche@adacore.com>
6256
6257 * gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared
6258 libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with
6259 canadian cross.
6260 * gcc-interface/Make-lang.in: Add support for canadian cross setting.
6261
993f8920
AC
62622011-08-05 Matthew Heaney <heaney@adacore.com>
6263
6264 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth):
6265 subprogram bodies declared out-of-order.
6266
62672011-08-05 Yannick Moy <moy@adacore.com>
6268
6269 * sem_util.adb (Unique_Name): only prefix with "standard" the names of
6270 entities directly in package Standard, otherwise skip the standard
6271 prefix.
6272
9b3956dd
RD
62732011-08-05 Robert Dewar <dewar@adacore.com>
6274
6275 * a-cbmutr.adb: Minor reformatting
6276 (Allocate_Node): refactor node allocation algorithm
6277
62782011-08-05 Robert Dewar <dewar@adacore.com>
6279
6280 * opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch.
6281 * sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable
6282 mode.
6283 (Analyze_Pragma, case Check_Policy): Ditto.
6284 * sem_prag.ads (Check_Disabled): New function
6285 * snames.ads-tmpl: Add Name_Disable.
6286
62872011-08-05 Robert Dewar <dewar@adacore.com>
6288
6289 * gnat_rm.texi: Document implementation-defined policy DISABLE for
6290 pragmas Assertion_Policy, Check_Policy, Debug_Policy.
6291
79e705d6
AC
62922011-08-05 Ed Schonberg <schonberg@adacore.com>
6293
6294 * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
6295 that appears in a generic formal part and applies to a formal
6296 subprogram.
6297
62982011-08-05 Robert Dewar <dewar@adacore.com>
6299
6300 * a-cbmutr.ads: Minor reformatting.
6301
23b6deca
AC
63022011-08-05 Matthew Heaney <heaney@adacore.com>
6303
6304 * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
6305 to check count, check sign of value instead.
6306 * a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty
6307 (Copy_Subtree): allocate copy of source element
6308 (Equal_Subtree): compare elements, not access objects
6309
63102011-08-05 Vincent Celier <celier@adacore.com>
6311
6312 * gnat_ugn.texi: Fix VMS alternative.
6313
a2773bd3
AC
63142011-08-05 Thomas Quinot <quinot@adacore.com>
6315
6316 * sem_ch11.adb: Add comment.
6317
63182011-08-05 Robert Dewar <dewar@adacore.com>
6319
6320 * exp_util.adb: Minor comment fix.
6321
63222011-08-05 Robert Dewar <dewar@adacore.com>
6323
6324 * scng.adb (Error_Unterminated_String): Improve flag position when
6325 comma present.
6326
63272011-08-05 Matthew Heaney <heaney@adacore.com>
6328
6329 * Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway
6330 tree containers).
6331 * a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded
6332 multiway tree containers.
6333
63342011-08-05 Robert Dewar <dewar@adacore.com>
6335
6336 * styleg.adb (Check_Comment): Implement comment spacing of 1 or 2
6337 * stylesw.adb: Implement -gnatyC to control comment spacing
6338 * stylesw.ads (Style_Check_Comments_Spacing): New switch (set by
6339 -gnatyc/C).
6340 * usage.adb: Add line for -gnatyC.
6341
63422011-08-05 Robert Dewar <dewar@adacore.com>
6343
f446d60e 6344 * gnat_ugn.texi: Document -gnatyC.
a2773bd3
AC
6345 * vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a
6346 synonym for COMMENTS2).
6347
dedac3eb
RD
63482011-08-05 Robert Dewar <dewar@adacore.com>
6349
6350 * par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb,
6351 a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb,
6352 sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb,
6353 a-comutr.ads, lib-xref.adb: Minor reformatting.
6354
63552011-08-05 Robert Dewar <dewar@adacore.com>
6356
6357 * sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal
6358 warning if there is an exception handler present.
6359
7c62a85a
AC
63602011-08-05 Pascal Obry <obry@adacore.com>
6361
6362 * a-iteint.ads: Fix copyright year.
6363
63642011-08-05 Thomas Quinot <quinot@adacore.com>
6365
6366 * par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a
6367 statement SCO for a USE clause or a representation clause.
6368
63692011-08-05 Yannick Moy <moy@adacore.com>
6370
6371 * lib-xref-alfa.adb (Collect_ALFA): generate the proper relation
6372 between body and spec for stub.
6373 (Detect_And_Add_ALFA_Scope): take into account subprogram stub
6374 * lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a
6375 pragma precondition or postcondition, for which the enclosing
6376 subprogram or package in the AST is not the desired one, return empty.
6377
e49208a9
AC
63782011-08-05 Thomas Quinot <quinot@adacore.com>
6379
6380 * g-expect.adb: Minor reformatting.
6381
63822011-08-05 Bob Duff <duff@adacore.com>
6383
6384 * a-fihema.adb: Comment out OS_Lib.
6385
63862011-08-05 Matthew Heaney <heaney@adacore.com>
6387
6388 * Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb]
6389 (unbounded multiway tree containers) and a-iteint.ads.
6390 * a-comutr.ads, a-comutr.adb:
6391 This is the new Ada 2012 unit for unbounded multiway tree containers
6392 * a-cimutr.ads, a-cimutr.adb
6393 This is the new Ada 2012 unit for indefinite multiway tree containers
6394 * a-iteint.ads: New file.
6395
201cdb74
RO
63962011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6397
f446d60e 6398 * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc.
201cdb74 6399
d50f4827
AC
64002011-08-05 Bob Duff <duff@adacore.com>
6401
6402 * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for
6403 subpools.
6404 * par-ch4.adb (P_Allocator): Parse new subpool specification syntax.
6405
64062011-08-05 Ed Schonberg <schonberg@adacore.com>
6407
6408 * sem_ch4.adb (Try_Container_Indexing): New procedure to implement the
6409 general indexing aspects of Ada2012. Called when analyzing indexed
6410 components when other interpretations fail.
6411 * sem_ch8.adb (Find_Direct_Name): check for implicit dereference only
6412 in an expression context where overloading is meaningful. This excludes
6413 the occurrence in an aspect specification (efficiency only).
6414 * sem_attr.adb (Analyze_Attribute): indicate that the attributes
6415 related to iterators can be set by an attribute specification, but
6416 cannot be queried.
6417 * sem_ch13.adb (Analyze_Aspect_Specifications): handle
6418 Constant_Indexing and Variable_Indexing.
6419 (Check_Indexing_Functions): New procedure to perform legality checks.
6420 Additional semantic checks at end of declarations.
6421
efe05dfc
AC
64222011-08-05 Sergey Rybin <rybin@adacore.com>
6423
6424 * tree_io.ads: Update ASIS_Version_Number because of the change of the
6425 order of calling Tree_Write/Tree_Read routines made for aspects.
6426
64272011-08-05 Bob Duff <duff@adacore.com>
6428
6429 * a-fihema.adb (Finalize): Fix race condition.
6430
5f9cdefe
AC
64312011-08-05 Yannick Moy <moy@adacore.com>
6432
6433 * sem_ch12.adb (Analyze_Package_Instantiation,
6434 Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
6435 mode.
6436
64372011-08-05 Ed Schonberg <schonberg@adacore.com>
6438
6439 * sem_type.adb (Specific_Type): in an instance, the type-specific
6440 operand of an equality check that involves null may have a private
6441 type. Use full view to determine legality of construct.
6442
822868aa
AC
64432011-08-05 Vincent Celier <celier@adacore.com>
6444
6445 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
6446 delete or close the file when the call to gnatmake was successful.
6447
64482011-08-05 Yannick Moy <moy@adacore.com>
6449
6450 * gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set
6451 Global_Discard_Names.
6452
64532011-08-05 Ed Schonberg <schonberg@adacore.com>
6454
6455 * sinfo.ads: comments on use of entity field for aspect specifications.
6456
64572011-08-05 Ed Schonberg <schonberg@adacore.com>
6458
6459 * sem_ch12.adb (Reset_Entity): If the entity field of the associated
6460 node is not itself an entity but a selected component, it is a
6461 rewritten parameterless call to an en enclosing synchronized operation,
6462 and this expansion will be performed again in the instance, so there is
6463 no global information to preserve.
6464
44a10091
AC
64652011-08-05 Javier Miranda <miranda@adacore.com>
6466
6467 * exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support
6468 for renamings of predefined primitives.
6469 (In_Predef_Prims_DT): New subprogram.
6470
64712011-08-05 Ed Schonberg <schonberg@adacore.com>
6472
6473 * sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a
6474 possible interpretation of name is a reference type, add an
6475 interpretation that is the designated type of the reference
6476 discriminant of that type.
6477 * sem_res.adb (resolve): If the interpretation imposed by context is an
6478 implicit dereference, rewrite the node as the deference of the
6479 reference discriminant.
6480 * sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,
6481 Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from
6482 parent type or base type.
6483 * sem_ch4.adb (Process_Indexed_Component,
6484 Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,
6485 Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):
6486 Check for implicit dereference.
6487 (List_Operand_Interps): Indicate when an implicit dereference is
6488 ambiguous.
6489 * sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.
6490
64912011-08-05 Thomas Quinot <quinot@adacore.com>
6492
6493 * scos.ads: Update documentation of SCO table. Pragma statements can now
6494 be marked as disabled (using 'p' instead of 'P' as the statement kind).
6495 * par_sco.ads, par_sco.adb: Implement the above change.
6496 (Process_Decisions_Defer): Generate a P decision for the first parameter
6497 of a dyadic pragma Debug.
6498 * sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if
6499 necessary.
6500 * put_scos.adb: Code simplification based on above change.
6501
bb3c784c
AC
65022011-08-05 Robert Dewar <dewar@adacore.com>
6503
6504 * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb,
6505 bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb,
6506 a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads,
6507 prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting
6508
65092011-08-05 Bob Duff <duff@adacore.com>
6510
6511 * a-stunau.ads, g-spipat.adb: Update comments.
6512
36f686f9
BD
65132011-08-05 Bob Duff <duff@adacore.com>
6514
6515 * a-fihema.ads: Minor comment fix.
6516 * a-fihema.adb (Allocate, Deallocate): Assert that the alignment is
6517 correct.
6518 (Attach, Detach): Remove some unnecessary code.
6519 (Finalize): Remove Node_Ptr_To_Address, replace with a constant.
6520
7882673f
BD
65212011-08-05 Bob Duff <duff@adacore.com>
6522
6523 * a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap
6524 allocation for Objects component. This simplifies the code somewhat. It
6525 is also a little more efficient in the not-so-unusual case where there
6526 are no controlled objects allocated.
6527 Make Finalization_Started flag atomic.
6528 (Finalize): Avoid unnecessary detachment of items from the list.
6529 (pcol): Minor cleanup.
6530
d34cd274
AC
65312011-08-05 Ed Schonberg <schonberg@adacore.com>
6532
6533 * sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal
6534 package whose name is the same as that of the generic unit, or its
6535 ultimate prefix.
6536
65372011-08-05 Bob Duff <duff@adacore.com>
6538
6539 * a-fihema.adb, a-fihema.ads: Minor comment improvements.
6540 * sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:
6541 Minor comment fixes.
6542
00332244
AC
65432011-08-05 Arnaud Charlet <charlet@adacore.com>
6544
6545 * make.adb (Linking_Phase): No longer need to set source search path
6546 before calling gnatlink in CodePeer mode.
6547 * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to
6548 gcc in CodePeer mode, since the binder generated file no longer has a
6549 'with Main'.
6550 * switch.ads, switch.adb (Is_Language_Switch): Removed.
6551 * switch-c.adb: Update comment.
6552
65532011-08-05 Thomas Quinot <quinot@adacore.com>
6554
6555 * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.
6556
65572011-08-05 Nicolas Roche <roche@adacore.com>
6558
6559 * gnat_ugn.texi: Fix minor syntax error issue.
6560
65612011-08-05 Vincent Celier <celier@adacore.com>
6562
6563 * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
6564 delete or close the file when the call to gnatmake returns a non
6565 successful return code.
6566
65672011-08-05 Ed Schonberg <schonberg@adacore.com>
6568
6569 * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate
6570 check, indicate that the copy of the original node does not come from
6571 source, to prevent an infinite recursion of the expansion.
6572
65732011-08-05 Johannes Kanig <kanig@adacore.com>
6574
6575 * debug.adb: document switch -gnatd.G for gnat2why, which deactivates
6576 VC generation for subprogram bodies.
6577
65782011-08-05 Yannick Moy <moy@adacore.com>
6579
6580 * einfo.ads: Typo.
6581 * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define
6582 the base type with the smallest allowed base type.
6583
65842011-08-05 Sergey Rybin <rybin@adacore.com>
6585
6586 * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for
6587 aspects.
6588
65892011-08-05 Ed Schonberg <schonberg@adacore.com>
6590
6591 * sem_ch12.ads: minor comment updates.
6592
65932011-08-05 Ed Schonberg <schonberg@adacore.com>
6594
6595 * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an
6596 instantiation and a formal package the compiler generates a package
6597 renaming declaration so that the generic name within the declaration
6598 is interpreted as a renaming of the instance. At the end of a formal
6599 package declaration, this renaming must become invisible.
6600
0da80d7d
AC
66012011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
6602
6603 * exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character
6604 comparison and rely on concrete entities instead.
6605
66062011-08-05 Ed Schonberg <schonberg@adacore.com>
6607
6608 * einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types
6609 and discriminants, to indicate that the type has an access discriminant
6610 that supports implicit dereference.
6611 * snames.ads-tmpl: Add names of aspects and attributes related to
6612 Ada2012 iterators: constant_indexing, default_iterator,
6613 iterator_element, implicit_dereference, variable_indexing.
6614 * aspects.ads, aspects.adb: entries for iterator-related aspects.
6615 * sem_ch13.adb (Analyze_aspect_specifications): dummy entries for
6616 iterator-related aspects.
6617 * sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.
6618
66192011-08-05 Sergey Rybin <rybin@adacore.com>
6620
6621 * gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling
6622 metrics in gnatmetric to cover new kinds of coupling mentrics.
6623
66242011-08-05 Steve Baird <baird@adacore.com>
6625
6626 * bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead
2c7f9cc0 6627 of calling the user-defined main subprogram.
0da80d7d
AC
6628 (Gen_Main): Declare Ada_Main_Program and (if CodePeer_Mode
6629 is set) Call_Main_Subprogram ahead of, as opposed to
6630 inside of, Main.
6631 (Gen_Output_File_Ada): Remove CodePeer_Mode-conditional
6632 generation of a "with" of the user-defined main subprogram.
6633 Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper
6634 (which is now called from Gen_Main instead).
6635
73242473
AC
66362011-08-05 Emmanuel Briot <briot@adacore.com>
6637
6638 * projects.texi: Added reference to the Makefile package.
6639
66402011-08-05 Thomas Quinot <quinot@adacore.com>
6641
6642 * exp_ch7.adb: Minor comment rewording.
6643
66442011-08-05 Ed Falis <falis@adacore.com>
6645
6646 * env.c: Fix comment.
6647
66482011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
6649
6650 * sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid
6651 character comparison and rely on concrete entities instead.
6652
97ed5872
AC
66532011-08-05 Ed Schonberg <schonberg@adacore.com>
6654
6655 * sem_ch3.adb: (Check_Private_Overriding): better error message,
6656 suggested by AI95-0068.
6657
66582011-08-05 Hristian Kirtchev <kirtchev@adacore.com>
6659
6660 * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve
6661 the two potential initialization calls. This accounts for any
6662 access-before-elaboration checks which may precede the initialization
6663 calls.
6664 (Next_Suitable_Statement): New routine. Returns the next real statement
6665 after the input node while skipping generated checks.
6666 * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along
6667 with comment on usage.
6668 Do not generate Elaborate_All when the trigger is a finalization call
6669 coming from a type init proc.
6670 (Check_Elab_Call): Propagate the initialization procedure context to
6671 subsequent calls to Check_A_Call.
6672 (Check_Internal_Call_Continue): Propagate the initialization procedure
6673 context to subsequent calls to Check_Elab_Call.
6674 (Is_Finalization_Procedure): New routine. Returns True if the input
6675 entity denotes a [Deep_]Finalize routine.
6676 * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc
6677 along with comment on usage.
6678
66792011-08-05 Vadim Godunko <godunko@adacore.com>
6680
6681 * s-atocou.ads: Add list of supported platforms.
6682
66832011-08-05 Yannick Moy <moy@adacore.com>
6684
6685 * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables
6686
6687 * opt.ads (Disable_ALI_File): new Boolean flag
6688 * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing
6689
66902011-08-05 Ed Falis <falis@adacore.com>
6691
6692 * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that
6693 environ is properly defined.
6694
66952011-08-05 Vincent Celier <celier@adacore.com>
6696
6697 * make.adb (Compilation_Phase): Exit immediately when all objects have
6698 been found up to date, to avoid multiple exit messages.
6699 * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the
6700 same project for languages with no compiler.
6701 * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch
6702 -eI.
9aff36e9
RD
67032011-08-05 Robert Dewar <dewar@adacore.com>
6704
6705 * exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb,
6706 sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb,
6707 prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb,
6708 s-atocou-builtin.adb: Minor reformatting.
6709
406935b6
AC
67102011-08-05 Yannick Moy <moy@adacore.com>
6711
6712 * exp_ch7.adb (Establish_Transient_Scope): in formal verification mode,
6713 if the node to wrap is a pragma check, this node and enclosed
6714 expression are not expanded, so do not apply any transformations here.
6715 * exp_prag.adb (Expand_Pragma_Check): document the need to avoid
6716 introducing transient scopes.
6717
67182011-08-05 Jose Ruiz <ruiz@adacore.com>
6719
6720 * adaint.c (__gnat_set_writable, __gnat_set_readable,
6721 __gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable,
6722 __gnat_copy_attribs): On VxWorks 6.x and later, the required chmod
6723 routine is available, so we use the default implementation of these
6724 functions.
6725 * s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is
6726 support for copying attributes on VxWorks 6.
6727
67282011-08-05 Yannick Moy <moy@adacore.com>
6729
6730 * debug.adb: Remove use of -gnatd.D.
6731 * gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode
6732 * opt.ads: Simplify variables for ALFA mode, to keep one only
6733 * restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode
6734 to ALFA mode.
6735
67362011-08-05 Vincent Celier <celier@adacore.com>
6737
6738 * prj-conf.adb (Do_Autoconf): Look also for --RTS in
6739 Builder'Default_Switches.
6740
67412011-08-05 Vincent Celier <celier@adacore.com>
6742
6743 * makeusg.adb: Add lines for --create-map-file switches.
6744
67452011-08-05 Ed Schonberg <schonberg@adacore.com>
6746
6747 * freeze.adb (Freeze_Entity): For a subprogram, if a type in the
6748 profile is incomplete and the full view is available, replace it with
6749 the full view.
6750 * sem_ch6.adb (Possible_Freeze): if a type in the profile is
6751 incomplete, freezing the subprogram is delayed until the full view is
6752 frozen.
6753 * sem_type.adb (Disambiguate): an ambiguity between a user-defined
6754 fixed-point multiplication operator and the predefined operator is
6755 resolved in favor of the user-defined one.
6756
96c891b3
RO
67572011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6758
6759 * init.c [__alpha__ && __osf__] (__gnat_error_handler): Use
6760 CONST_CAST.
6761
276e7ed0
AC
67622011-08-04 Ed Schonberg <schonberg@adacore.com>
6763
6764 * sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine
6765 whether a type lacks user-defined Read or Write operations, or has a
6766 component that lacks them.
6767 * sem_attr.adb (Check_Stream_Attribute): if restriction
6768 No_Default_Stream_Attributes is active, verify that all subcomponent
6769 types of the target have user-defined stream operations, and report
6770 error otherwise.
6771 * exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation.
6772 * exp_strm.adb: Build_Elementary_Input_Call,
6773 Build_Elementary_Write_Call): remove checks for restriction
6774 No_Default_Stream_Attributes, now checked in semantics.
6775
67762011-08-04 Vincent Celier <celier@adacore.com>
6777
6778 * prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS
6779 switches on the command line, look for all valid --RTS switches in the
6780 Builder switches and for each language use the first runtime name found
6781 to invoke gprconfig.
6782 (Get_Or_Create_Configuration_File): Warn if --RTS is specified on the
6783 command line and there is no auto-configuration.
6784 (Runtime_Name_Set_For): New function.
6785
67862011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
6787
6788 * exp_ch7.adb (Build_Object_Declarations): Do not generate the
6789 elaborate initialization expression for variable Abort when processing
6790 a package body or a declaration.
6791 (Create_Finalizer): Propagate the package context when creating the
6792 exception-related variables.
6793 * exp_ch7.ads (Build_Object_Declarations): New formal parameter
6794 For_Package along with usage comment.
6795
19172ae9
AC
67962011-08-04 Arnaud Charlet <charlet@adacore.com>
6797
6798 * gcc-interface/Makefile.in: Clean up targets.
6799 Enable new package for atomic counters and copy-on-write implementation
6800 of unbounded strings on x86 platforms.
6801 * gcc-interface/Make-lang.in: Update dependencies.
6802
0319cacc
AC
68032011-08-04 Robert Dewar <dewar@adacore.com>
6804
6805 * exp_ch7.adb: Minor reformatting.
6806
68072011-08-04 Robert Dewar <dewar@adacore.com>
6808
6809 * exp_strm.adb: Minor reformatting.
6810
68112011-08-04 Vadim Godunko <godunko@adacore.com>
6812
6813 * s-atocou.adb: Replace by dummy version and use on targets where atomic
6814 operations are not supported.
6815 * s-atocou-builtin.adb: Renamed from s-atocou.adb.
6816 * s-atocou-x86.adb: New file.
6817 * Makefile.rtl: Add s-atocou.o file
6818
68192011-08-04 Arnaud Charlet <charlet@adacore.com>
6820
6821 * make.adb (Compile): Move setting of CodePeer_Mode to ...
6822 (Compilation_Phase): ... here.
6823 (Scan_Make_Arg): Now bind and link by default in CodePeer mode.
6824
68252011-08-04 Thomas Quinot <quinot@adacore.com>
6826
6827 * Make-generated.in: Fix minor typo in comment.
6828
26e7e1a0
AC
68292011-08-04 Thomas Quinot <quinot@adacore.com>
6830
6831 * gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve
6832 the project path.
6833
68342011-08-04 Robert Dewar <dewar@adacore.com>
6835
6836 * a-coinho.adb: Minor reformatting.
6837
68382011-08-04 Robert Dewar <dewar@adacore.com>
6839
6840 * a-coinho.ads: Minor reformatting.
6841
68422011-08-04 Vadim Godunko <godunko@adacore.com>
6843
6844 * s-atocou.ads, s-atocou.adb: New files.
6845 * a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads,
6846 a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove
6847 direct use of GCC's atomic builtins and replace them by use of new
6848 atomic counter package.
6849
68502011-08-04 Ed Schonberg <schonberg@adacore.com>
6851
6852 * exp_strm.adb: better error message for No_Default_Stream_Attributes.
6853
68542011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
6855
6856 * a-tags.adb (Unregister_Tag): Replace the complex address arithmetic
6857 with a call to Get_External_Tag.
6858 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on
6859 subprogram usage. Remove the guard against package declarations and
6860 bodies since Build_Cleanup_Statements is no longer invoked in that
6861 context.
6862 (Build_Components): Initialize Tagged_Type_Stmts when the context
6863 contains at least one library-level tagged type.
6864 (Build_Finalizer): New local variables Has_Tagged_Types and
6865 Tagged_Type_Stmts along with associated comments on usage. Update the
6866 logic to include tagged type processing.
6867 (Create_Finalizer): Insert all library-level tagged type unregistration
6868 code before the jump block circuitry.
6869 (Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements.
6870 (Expand_N_Package_Declaration): Remove the call to
6871 Build_Cleanup_Statements.
6872 (Process_Tagged_Type_Declaration): New routine. Generate a call to
6873 unregister the external tag of a tagged type.
6874 (Processing_Actions): Reimplemented to handle tagged types.
6875 (Process_Declarations): Detect the declaration of a library-level
6876 tagged type and carry out the appropriate actions.
6877 (Unregister_Tagged_Types): Removed. The machinery has been directly
6878 merged with Build_Finalizer.
6879
7483c888
AC
68802011-08-04 Robert Dewar <dewar@adacore.com>
6881
6882 * bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb,
6883 gnatls.adb, exp_ch3.adb: Minor reformatting.
6884
68852011-08-04 Marc Sango <sango@adacore.com>
6886
6887 * sem_attr.adb (Analyze_Attribute): Replace the message
6888 "invisible attribute of}" of the spark restriction violation in
6889 attribute reference by the simple message "invisible attribute of type".
6890 Indeed, the node value Error_Msg_Node_1 used is in conflit with the
6891 two insertion characters: '&' and '}'.
6892
68932011-08-04 Vadim Godunko <godunko@adacore.com>
6894
6895 * impunit.adb (Non_Imp_File_Names_12): Add "a-coinho".
6896 * a-coinho.ads, a-coinho.adb: New file.
6897 * Makefile.rtl: Add Ada.Containers.Indefinite_Holders.
6898
5207696c
AC
68992011-08-04 Nicolas Roche <roche@adacore.com>
6900
6901 * alfa_test.adb: Not all ali files are containing alfa information even
6902 if compiled with -gnatd.F. So suppress warning about missing ALFA
6903 information.
6904
69052011-08-04 Yannick Moy <moy@adacore.com>
6906
6907 * lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for
6908 scope.
6909 * put_alfa.adb: Check that scope name is not empty.
6910
69112011-08-04 Ed Schonberg <schonberg@adacore.com>
6912
6913 * exp_ch3.adb (Stream_Operation_Ok): new predicate
6914 Needs_Elementary_Stream_Operation, to determine whether user-defined
6915 Read and Write attributes are available for the elementary components
6916 of the given type. If only the predefined attributes are available,
6917 then when restriction No_Default_Stream_Attributes is active the
6918 predefined stream attributes for the composite type cannot be created.
6919
69202011-08-04 Robert Dewar <dewar@adacore.com>
6921
6922 * bindgen.adb: Fix obsolete comments and names from Ada/C days.
6923 Put routines in alpha order
6924
2bd2d858
JR
69252011-08-04 Jose Ruiz <ruiz@adacore.com>
6926
6927 * gcc-interface/Makefile.in: Remove xenomai specific versions of system.
6928 * gcc-interface/Make-lang.in: Update dependencies.
6929
8fae6016
AC
69302011-08-04 Arnaud Charlet <charlet@adacore.com>
6931
6932 * gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada.
6933 * gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls
6934 gnat1why).
6935
a54d0eb4
AC
69362011-08-04 Robert Dewar <dewar@adacore.com>
6937
6938 * sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb,
6939 lib-xref-alfa.adb: Minor reformatting.
6940
69412011-08-04 Marc Sango <sango@adacore.com>
6942
6943 * sem_ch12.adb (Analyze_Generic_Package_Declaration,
6944 Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,
6945 Analyze_Subprogram_Instantiation): Check absence of generic in SPARK
6946 mode.
6947
69482011-08-04 Tristan Gingold <gingold@adacore.com>
6949
6950 * bindgen.adb (Gen_Adainit_C): Remove.
6951 (Gen_Adafinal_C): Ditto.
6952 (Gen_Elab_Externals_C): Ditto.
6953 (Gen_Elab_Calls_C): Ditto.
6954 (Gen_Elab_Order_C): Ditto.
6955 (Gen_Elab_Defs_C): Ditto.
6956 (Gen_Finalize_Library_C): Ditto.
6957 (Gen_Finalize_Library_Defs_C): Ditto.
6958 (Gen_Main_C): Ditto.
6959 (Gen_Output_File_C): Ditto.
6960 (Gen_Restrictions_C): Ditto.
6961 (Gen_Versions_C): Ditto.
6962 (Write_Info_Ada_C): Ditto.
6963 (Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C
6964 (Gen_Output_File): Do not force Ada_Bind_File anymore.
6965 Always call Gen_Output_File_Ada.
6966 * gnatlink.adb (Begin_Info): Now a constant.
6967 (End_Info): Ditto.
6968 (Ada_Bind_File): Remove
6969 (Process_Args): Do not handle -A/-C. Remove not Ada_Bind_File cases.
6970 * switch-b.adb (Scan_Binder_Switches): Do not handle -C.
6971 * gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases.
6972 * opt.ads (Ada_Bind_File): Remove.
6973
69742011-08-04 Thomas Quinot <quinot@adacore.com>
6975
6976 * projects.texi: Document target-specific directory in default project
6977 path for gnatmake.
6978
69792011-08-04 Thomas Quinot <quinot@adacore.com>
6980
6981 * gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project
6982 path in all cases .
6983
24558db8
AC
69842011-08-04 Yannick Moy <moy@adacore.com>
6985
6986 * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
6987 opt.ads, lib-xref.ads: Code clean up.
6988
69892011-08-04 Yannick Moy <moy@adacore.com>
6990
6991 * gnat_rm.texi: Update description of Test_Case
6992 * gnat_ugn.texi: Typo.
6993
69942011-08-04 Ed Falis <falis@adacore.com>
6995
6996 * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.
6997
69982011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
6999
7000 * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
7001 it is of type Root_Controlled. This action eliminates fields Prev and
7002 Next from type equality.
7003
70042011-08-04 Yannick Moy <moy@adacore.com>
7005
7006 * lib-xref-alfa.adb: Correct typo.
7007
70082011-08-04 Matthew Heaney <heaney@adacore.com>
7009
7010 * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
7011 component.
7012
1f9939b5
AC
70132011-08-04 Yannick Moy <moy@adacore.com>
7014
7015 * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure
7016 (Analyze_Pragma): allow static string expression for name of Test_Case,
7017 instead of simply string literals.
7018 * sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string
7019 expressions.
7020
70212011-08-04 Vincent Celier <celier@adacore.com>
7022
7023 * makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical
7024 case suffixes to find truncated main sources.
7025
70262011-08-04 Tristan Gingold <gingold@adacore.com>
7027
7028 * impunit.adb (Non_Imp_File_Names_95): Add g-tastus.
7029 s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put.
7030 (Compute_Current_Task): Ditto.
7031
70322011-08-04 Tristan Gingold <gingold@adacore.com>
7033
7034 * gnat_ugn.texi: Mention GNAT.Task_Stack_Usage.
7035
70362011-08-04 Yannick Moy <moy@adacore.com>
7037
7038 * lib-xref-alfa.adb (Is_Global_Constant): new function that detects
7039 library-level constant.
7040 (Add_ALFA_Xrefs): ignore global constants in ALFA xref.
7041 * sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal
7042 used as selector of parameter association, in ALFA mode.
7043
15d8a51d
AC
70442011-08-04 Robert Dewar <dewar@adacore.com>
7045
7046 * exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb,
7047 s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor
7048 reformatting.
7049
70502011-08-04 Arnaud Charlet <charlet@adacore.com>
7051
7052 * make.adb (Linking_Phase): Set source search path before calling
7053 gnatlink in CodePeer mode.
7054
f46faa08
AC
70552011-08-04 Javier Miranda <miranda@adacore.com>
7056
7057 * exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration):
7058 Remove code which takes care of building TSDs.
7059 * rtsfind.ads (RE_Check_Interface_Conversion): New entity.
7060 * exp_ch4.adb (Apply_Accessibility_Check): Add support for generating
7061 the accessibility check in VM targets.
7062 * exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads
7063 (Building_Static_DT): Now returns false for VM targets.
7064 (Build_VM_TSDs): Removed.
7065 (Expand_Interface_Conversion): Generate missing runtime check for
7066 conversions to interface types whose target type is unknown at compile
7067 time.
7068 (Make_VM_TSD): Add missing code to disable the generation of calls to
7069 Check_TSD if the tagged type is not defined at library level, or not
7070 has a representation clause specifying its external tag, or -gnatdQ is
7071 active.
7072 * exp_disp.ads (Build_VM_TSDs): Removed.
7073 (Make_VM_TSDs): Spec relocated from exp_disp.adb
7074 * sem_disp.adb (Check_Dispatching_Operation): No code required to
7075 register primitives in the dispatch tables in VM targets.
7076 * exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of
7077 initialization of class-wide interface objects in VM targets.
7078 (Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead
7079 of Make_DT).
7080
70812011-08-04 Jerome Lambourg <lambourg@adacore.com>
7082
7083 * gnatlink.adb (Gnatlink): Correct missleading error message displayed
7084 when dotnet-ld cannot be found.
7085
70862011-08-04 Arnaud Charlet <charlet@adacore.com>
7087
7088 * bindgen.adb: Simplify significantly generation of binder body file in
7089 CodePeer mode.
7090 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure
7091 when compiling binder generated file in CodePeer mode (xxx'Elab_Spec
7092 not expanded).
7093
2ba7e31e
AC
70942011-08-04 Yannick Moy <moy@adacore.com>
7095
7096 * sem_prag.adb, sem.ads: Code cleanup.
7097
70982011-08-04 Tristan Gingold <gingold@adacore.com>
7099
7100 * s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part.
7101 * s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate
7102 results if possible.
7103 * s-stusta.adb (Print): Adjust after changes in s-stausa.
7104 * gnat_ugn.texi: Update dynamic stack usage section.
7105
71062011-08-04 Steve Baird <baird@adacore.com>
7107
7108 * bindgen.adb (Gen_CodePeer_Wrapper): new procedure.
7109 Generate (if CodePeer_Mode is set) a "wrapper" subprogram which
7110 contains only a call to the user-defined main subprogram.
7111 (Gen_Main_Ada) - If CodePeer_Mode is set, then
7112 call the "wrapper" subprogram instead of directly
7113 calling the user-defined main subprogram.
7114
71152011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7116
7117 * exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all
7118 alternatives of a case statement for controlled objects. Rename local
7119 variable A to Dead_Alt.
7120 (Expand_N_If_Statement): Check the then and else statements of an if
7121 statement for controlled objects. Check the then statements of all
7122 elsif parts of an if statement for controlled objects.
7123 (Expand_N_Loop_Statement): Check the statements of a loop for controlled
7124 objects.
7125 * exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which
7126 detects a loop associated with the expansion of an array object.
7127 Augment the processing of the loop statements to account for a possible
7128 wrap done by Process_Statements_For_Controlled_Objects.
7129 * exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering
7130 statements and abortable part of an asynchronous select for controlled
7131 objects.
7132 (Expand_N_Conditional_Entry_Call): Check the else statements of a
7133 conditional entry call for controlled objects.
7134 (Expand_N_Selective_Accept): Check the alternatives of a selective
7135 accept for controlled objects.
7136 (Expand_N_Timed_Entry_Call): Check the entry call and delay
7137 alternatives of a timed entry call for controlled objects.
7138 * exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an
7139 exception handler for controlled objects.
7140 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
7141 Add formal parameter Nested_Constructs along with its associated
7142 comment.
7143 (Requires_Cleanup_Actions (Node_Id)): Update all calls to
7144 Requires_Cleanup_Actions.
7145 (Process_Statements_For_Controlled_Objects): New routine.
7146 * exp_util.ads (Process_Statements_For_Controlled_Objects): New
7147 routine. Inspect a node which contains a non-handled sequence of
7148 statements for controlled objects. If such an object is found, the
7149 statements are wrapped in a block.
7150
1bf773bb
AC
71512011-08-04 Bob Duff <duff@adacore.com>
7152
7153 * sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we
7154 need to compare with Class_Wide_Type (T2), in order to get at the
7155 original class-wide type node.
7156 * sem_type.ads (Covers): Improve the comment.
7157 * einfo.ads (Class_Wide_Type): Improve the comment.
7158 * exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of
7159 the type of the Deref.
7160
71612011-08-04 Yannick Moy <moy@adacore.com>
7162
7163 * gnat_rm.texi: Document that Test_Case pragma can only appear on
7164 separate declarations.
7165 * sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to
7166 check identifier of pragma argument.
7167 (Chain_TC): check that no other test case associated to the same entity
7168 share the same name.
7169 (Check_Test_Case): disallow test case inside subprogram body
7170 (Analyze_Pragma): correct call to check identifier and not argument
7171 * sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new
7172 function gets name from test case pragma.
7173
dac3bede
YM
71742011-08-04 Yannick Moy <moy@adacore.com>
7175
7176 * gnat_rm.texi: Document new pragma and aspect.
7177 * aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case
7178 (No_Duplicates_Allowed): new constant array defining whether duplicates
7179 aspects of each kind can appear on the same declaration.
7180 * einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract
7181 field, which points to a node holding the previous Spec_PPC_List.
7182 * exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List
7183 through the indirection with Contract.
7184 * exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node
7185 * par-prag.adb (Prag): do nothing on Test_Case pragma
7186 * sem.adb (Analyze): abort on N_Contract, on which Analyze should not
7187 be called directly.
7188 * sem_attr.adb (Analyze_Attribute): allow attribute 'Result in
7189 component Ensures of Test_Case.
7190 * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb
7191 (Analyze_Generic_Subprogram_Declaration,
7192 Analyze_Subprogram_Instantiation,
7193 Analyze_Abstract_Subprogram_Declaration,
7194 Analyze_Subprogram_Body_Helper,
7195 Analyze_Subprogram_Specification, Analyze_Entry_Declaration):
7196 insert contract in subprogram node at point of definition
7197 * sem_ch13.adb
7198 (Aspect_Loop): do not raise error on duplicate Test_Case aspect
7199 (Analyze_Aspect_Specifications): analyze Test_Case aspect and create
7200 corresponding pragma
7201 (Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect
7202 * sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases,
7203 similar to the analysis of pre/post
7204 (Derive_Subprogram): insert contract in subprogram node at point of
7205 derivation.
7206 * sem_prag.adb, sem_prag.ads
7207 (Check_Arg_Is_String_Literal, Check_Identifier):
7208 new checking procedures to be called in treatment of pragmas
7209 (Check_Test_Case): new procedure to check that a Test_Case aspect or
7210 pragma is well-formed. This does not check currently that 'Result is
7211 used only in the Ensures component of a Test_Case.
7212 (Analyze_Pragma): add case for Test_Case
7213 (Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures
7214 components of a Test_Case.
7215 (Preanalyze_TC_Args): new procedure to preanalyze the boolean
7216 expressions in the 3rd (and 4th if present) arguments of a Test_Case
7217 pragma, treated as spec expressions.
7218 (Sig_Flags): add value -1 for Test_Case.
7219 * sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma,
7220 Get_Requires_From_Test_Case_Pragma): getters for both expression
7221 components of a Test_Case.
7222 * sinfo.adb, sinfo.ads (N_Contract): new kind of node used as
7223 indirection between an entry or [generic] subprogram entity and its
7224 pre/post + test-cases.
7225 (Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List):
7226 get/set for fields of an N_Contract node.
7227 * snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode,
7228 Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new
7229 names and pragma for Test_Case.
7230 * sprint.adb (Sprint_Node): raise Program_Error on N_Contract node
7231
6a2e5d0f
AC
72322011-08-04 Vincent Celier <celier@adacore.com>
7233
7234 * gnat_ugn.texi: Improve documentation of gnatmake switch
7235 --source-info-file=.
7236
72372011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7238
7239 * exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion
7240 type). Initialize Atyp to the appropriate type which is later checked
7241 for completion. Rewrite the assertion associated with private type
7242 completion.
7243
72442011-08-04 Ed Falis <falis@adacore.com>
7245
7246 * adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to
7247 initialize the number of CPUs.
7248
72492011-08-04 Ed Schonberg <schonberg@adacore.com>
7250
7251 * sem_type.adb (Disambiguate): New subsidiary routine
7252 In_Same_Declaration_List, to implement AI05-0020: a user-defined
7253 equality on an anonymous access type whose designated type is private
7254 does not lead to an ambiguity with the universal access equality
7255 operator in the body or child units of the defining package. The same
7256 is true for a multiplication operator on a private type completed with
7257 a fixed-point-type.
7258
72592011-08-04 Javier Miranda <miranda@adacore.com>
7260
7261 * opt.ads (Init_Or_Norm_Scalars_Config): Removed.
7262 (Normalize_Scalars_Config): Removed.
7263 * opt.adb
7264 (Register_Opt_Config_Switches): Remove registering config values of
7265 Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config.
7266 (Restore_Opt_Config_Switches): Remove code which restores the values of
7267 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
7268 Init_Or_Norm_Scalars.
7269 (Save_Opt_Config_Switches): Remove code which saves values of
7270 Init_Or_Norm_Scalars and Normalize_Scalars.
7271 (Set_Opt_Config_Switches): Remove code which restores config values of
7272 Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
7273 Init_Or_Norm_Scalars.
7274
72752011-08-04 Yannick Moy <moy@adacore.com>
7276
7277 * frontend.adb (Frontend): remove previous patch to avoid full
7278 qualification in ALFA mode.
7279 * lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables.
7280 * sem_util.adb, sem_util.ads (Unique_Name): new function to define a
7281 unique name for an entity, which could be used to identify the entity
7282 across compilation units.
7283
72842011-08-04 Thomas Quinot <quinot@adacore.com>
7285
7286 * prj-env.adb
7287 (Initialize_Default_Project_Path): Add target specific directory
7288 ($prefix/$target/lib/gnat) in front of project path in all cases
7289 (making gnatmake's behaviour consistent with gprbuild).
7290 * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb:
7291 Pass target name from Sdefault to project subsystem.
7292 * gnatls.adb: Show new target specific default project directory.
7293
72942011-08-04 Johannes Kanig <kanig@adacore.com>
7295
7296 * cstand.adb: Add Information to Identifier in Standard
7297 (Identifer_For): Set Entity to the corresponding entity
7298
483361a6
AC
72992011-08-04 Sergey Rybin <rybin@adacore.com>
7300
7301 * gnat_ugn.texi: Update doc on gnatcheck.
7302
73032011-08-04 Yannick Moy <moy@adacore.com>
7304
7305 * lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of
7306 xrefs in a scope.
7307
73082011-08-04 Yannick Moy <moy@adacore.com>
7309
7310 * exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without
7311 performing expansion.
7312 * sem_ch6.adb (Analyze_Subprogram_Body_Helper,
7313 Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that
7314 it is not called in ALFA mode.
7315
ef5569c6
AC
73162011-08-04 Emmanuel Briot <briot@adacore.com>
7317
7318 * make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used
7319 after all, so removed.
7320
73212011-08-04 Sergey Rybin <rybin@adacore.com>
7322
7323 * vms_data.ads: Add missing VMS qualifiers.
7324
1ab4a286
EB
73252011-08-04 Emmanuel Briot <briot@adacore.com>
7326
7327 * make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild
7328 the list of files on the command line after processing it through
7329 Complete_Mains.
7330
7ae0d98c
AC
73312011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7332
7333 * exp_ch7.adb (Build_Raise_Statement): Remove the specialized
7334 processing for .NET/JVM. These targets can now benefit from
7335 Raise_From_Controlled_Operation and they share the same processing with
7336 standard targets.
7337 (Establish_Transient_Scope): Remove the restriction for .NET/JVM.
7338 These targets need transient scopes in order to properly finalize short
7339 lived controlled objects.
7340 (Make_Handler_For_Ctrl_Operation): Remove the specialized processing for
7341 NET/JVM. These targets can now benefit from
7342 Raise_From_Controlled_Operation and they share the same processing with
7343 standard targets.
7344
73452011-08-04 Geert Bosch <bosch@adacore.com>
7346
7347 * tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack
7348
73492011-08-04 Ed Schonberg <schonberg@adacore.com>
7350
7351 * exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to
7352 Expand_Record_Aggregate, to determine whether aggregate must be
7353 expanded into assignments. This is the case if the ancestor part is
7354 private, regarless of the setting of the flag Has_Private_Ancestor.
7355
73562011-08-04 Ed Falis <falis@adacore.com>
7357
7358 * vxaddr2line.adb: Add support for e500v2 and for Linux hosts
7359
73602011-08-04 Bob Duff <duff@adacore.com>
7361
7362 * sinfo.ads: Fix comment.
7363
73642011-08-04 Steve Baird <baird@adacore.com>
7365
7366 * bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then
7367 choose a package name in much the same way as is
7368 done for JGNAT when VM_Target /= No_VM, except that
7369 a slightly more distinctive prefix string is used.
7370
73712011-08-04 Emmanuel Briot <briot@adacore.com>
7372
7373 * makeutl.adb (Complete_Mains): no longer accept unit names on the
7374 gnatmake command line.
7375 This behavior was never documented (and was supported only because of
7376 an early bug in the code). This case might lead to ambiguous cases
7377 (between unit names and truncated base names without suffixes).
7378
87729e5a
AC
73792011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7380
7381 * a-tags.ads, a-tags.adb (Unregister_Tag): New routine.
7382 Remove the external tag of a tagged type from the internal hash table.
7383 * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the
7384 expanded usage of the routine. Strenghten the check for Is_Master. Add
7385 processing for tagged types.
7386 (Build_Finalizer): Create all the necessary lists used in finalizer
7387 creation when the processed context is a package that may contain
7388 tagged types.
7389 (Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to
7390 Requires_Cleanup_Actions.
7391 (Expand_N_Package_Body): Package bodies may need clean up code
7392 depending on whether they contain tagged types.
7393 (Expand_N_Package_Declaration): Package declarations may need clean up
7394 code depending on whether they contain tagged types.
7395 (Unregister_Tagged_Types): New routine. Search through a list of
7396 declarations or statements, looking for non-abstract Ada tagged types.
7397 For each such type, generate code to unregister the external tag.
7398 * exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to
7399 Requires_Cleanup_Actions.
7400 (Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search
7401 through a list of declarations or statements looking for non-abstract
7402 Ada tagged types or controlled objects.
7403 * exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to
7404 Requires_Cleanup_Actions.
7405 (Has_Controlled_Objects (List_Id, Boolean)): Removed.
7406 * rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and
7407 RE_Unit_Table.
7408
74092011-08-04 Vincent Celier <celier@adacore.com>
7410
7411 * prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj
7412 has Ada sources, not project Project, because if the root project
7413 Project has no sources of its own, all projects will be deemed without
7414 sources.
7415
74162011-08-04 Gary Dismukes <dismukes@adacore.com>
7417
7418 * bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration
7419 of the No_Param_Proc acc-to-subp type used for initialization of
7420 __gnat_finalize_library_objects so that it's declared at library level
7421 rather than nested inside of the adainit routine.
7422
74232011-08-04 Javier Miranda <miranda@adacore.com>
7424
7425 * exp_disp.adb (Make_DT): Generate code to check the external tag ONLY
7426 if the tagged type has a representation clause which specifies its
7427 external tag.
7428
74292011-08-04 Ed Schonberg <schonberg@adacore.com>
7430
7431 * einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types.
7432 Remove previous procedure with that name.
7433 * sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor
7434 when appropriate.
7435 * sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a
7436 subtype mark, the ancestor cannot have unknown discriminants.
7437 (Resolve_Record_Aggregate): if the type has invisible components
7438 because of a private ancestor, the aggregate is illegal.
7439
74402011-08-04 Vincent Celier <celier@adacore.com>
7441
7442 * switch-m.adb (Normalize_Compiler_Switches): Recognize and take into
7443 account switches -gnat2005, -gnat12 and -gnat2012.
7444
74452011-08-04 Bob Duff <duff@adacore.com>
7446
7447 * s-tasdeb.ads: Minor comment fix.
7448
74492011-08-04 Arnaud Charlet <charlet@adacore.com>
7450
7451 * gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in
7452 CodePeer mode.
7453 * switch.ads, switch.adb (Is_Language_Switch): New function.
7454
74552011-08-04 Vincent Celier <celier@adacore.com>
7456
7457 * switch-c.adb: Minor comment addition.
7458
74592011-08-04 Vincent Celier <celier@adacore.com>
7460
7461 * vms_conv.adb (Process_Argument): Fail graciously when qualifier
7462 ending with '=' is followed by a space (missing file name).
7463
74642011-08-04 Pascal Obry <obry@adacore.com>
7465
7466 * g-regist.ads: Fix size of HKEY on x86_64-windows.
7467
74682011-08-04 Ed Schonberg <schonberg@adacore.com>
7469
7470 * sem_ch12.adb (Analyze_Associations): New routine
7471 Check_Overloaded_Formal_Subprogram to reject a formal package when
7472 there is a named association or a box initialisation for an overloaded
7473 formal subprogram of the corresponding generic.
7474
74752011-08-04 Yannick Moy <moy@adacore.com>
7476
7477 * alfa.ads (ALFA_Xref_Record): add component for type of entity
7478 * get_alfa.adb, put_alfa.adb: Read and write new component of
7479 cross-reference.
7480 * lib-xref-alfa.adb (Collect_ALFA): generate new component.
7481
88f47280
AC
74822011-08-04 Pascal Obry <obry@adacore.com>
7483
7484 * urealp.adb: Minor reformatting.
7485
74862011-08-04 Tristan Gingold <gingold@adacore.com>
7487
7488 * exp_ch7.adb (build_finalizer.process_declarations.processing_actions):
7489 Handle the case when Cleanup_Protected_Object returns Empty.
7490
74912011-08-04 Yannick Moy <moy@adacore.com>
7492
7493 * frontend.adb (Frontend): only qualify names in non-ALFA mode
7494
74952011-08-04 Ed Schonberg <schonberg@adacore.com>
7496
7497 * sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure
7498 call, ignore functions.
7499
05c53a69
GB
75002011-08-04 Geert Bosch <bosch@adacore.com>
7501
7502 * urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating
7503 point.
7504
23cc1ace
EB
75052011-08-04 Emmanuel Briot <briot@adacore.com>
7506
7507 * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name
7508 as an index for Builder'Switches. This conforms to the documentation.
7509 * make.adb (Insert_Project_Sources): avoid duplicate code
7510
cef14201
AC
75112011-08-04 Emmanuel Briot <briot@adacore.com>
7512
7513 * makeutl.adb (Complete_Mains): if the user has passed a relative file
7514 name on the command line (for instance "../dummy"), never assume it can
7515 be a unit name.
7516
75172011-08-04 Tristan Gingold <gingold@adacore.com>
7518
7519 * bindgen.adb: Remove code the reference or create the
7520 Break_Start/__gnat_break_start procedure.
7521 * s-stalib.adb (Break_Start): Removed.
7522
e2fee30d
EB
75232011-08-04 Emmanuel Briot <briot@adacore.com>
7524
7525 * make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now
7526 shared with gprbuild.
7527
2d395256
AC
75282011-08-04 Yannick Moy <moy@adacore.com>
7529
7530 * par-ch4.adb (P_Primary): preferentially issue an error message about
7531 a missing parenthesis arount a conditional or case expression in Ada
7532 2012 mode, if we detect that the alignment is not correct for a
7533 statement.
7534
75352011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7536
7537 * exp_ch7.adb (Process_Declarations): Do not consider the result of a
7538 tag-to-class-wide conversion as needing finalization actions.
7539 * exp_util.adb (Has_Controlled_Objects): Do not consider the result of
7540 a tag-to-class-wide conversion as needing finalization actions.
7541 (Is_Finalizable_Transient): The result of a tag-to-class-wide
7542 conversion does not need finalization actions.
7543 (Is_Tag_To_CW_Conversion): New routine.
7544 * exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines
7545 whether an object is the result of a tag-to-class-wide conversion.
7546
75472011-08-04 Yannick Moy <moy@adacore.com>
7548
7549 * sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which
7550 the left-hand-side and right-hand-side of a conjunct are inserted when
7551 translating a pre- or postcondition
7552 * sem_ch6.adb: Correct typo in comment
7553
75542011-08-04 Ed Schonberg <schonberg@adacore.com>
7555
7556 * gnat_rm.texi: Ravenscar does not prohibit dependence on
7557 Unchecked_Conversion and Unchecked_Deallocation.
7558
75592011-08-04 Thomas Quinot <quinot@adacore.com>
7560
7561 * make.adb: Minor reformatting.
7562
767ab2fd
EB
75632011-08-04 Emmanuel Briot <briot@adacore.com>
7564
7565 * prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the
7566 sources in the project and its imported projects, but not in the whole
7567 tree.
7568
8fb3f5df
AC
75692011-08-04 Emmanuel Briot <briot@adacore.com>
7570
7571 * make.adb: Remove debug trace.
7572
75732011-08-04 Vincent Celier <celier@adacore.com>
7574
7575 * makeutl.adb (Do_Complete): Get the absolute path name of a relative
7576 path in canonical form, to be able to compare path names on platforms
7577 such as Windows or Darwin.
7578
75792011-08-04 Thomas Quinot <quinot@adacore.com>
7580
7581 * par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry):
7582 For a pragma (statement with C1 = 'P'), record the sloc of the pragma.
7583 * scos.ads: Update documentation accordingly.
7584 * put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled
7585 pragmas.
7586
9515740f
AC
75872011-08-04 Ed Schonberg <schonberg@adacore.com>
7588
7589 * sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of
7590 attribute only if prefix type is scalar.
7591
75922011-08-04 Emmanuel Briot <briot@adacore.com>
7593
7594 * make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support
7595 in gnatmake for specifying mains on the command line that do not belong
7596 to the main project. These mains must currently all belong to the same
7597 project, though.
7598 (Ultimate_Extension_Of): removed, since duplicated
7599 Ultimate_Extending_Project.
7600
92966893
AC
76012011-08-04 Arnaud Charlet <charlet@adacore.com>
7602
7603 * make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode
7604 instead.
7605 (CodePeer_Mode_String): New.
7606 (Linking_Phase, Binding_Phase): Call gnatlink with -P switch in
7607 CodePeer mode.
7608 (Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode.
7609 * bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer
7610 mode, since no useful elaboration subprogram is needed by CodePeer.
7611 * gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode).
7612 In this mode, compile binder file with -gnatC and do stop after this
7613 step.
7614
76152011-08-04 Vincent Celier <celier@adacore.com>
7616
7617 * exp_ch7.adb: Minor comment fix.
7618
5969611f
RD
76192011-08-04 Robert Dewar <dewar@adacore.com>
7620
7621 * exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb,
7622 exp_ch4.adb, makeutl.adb: Minor reformatting.
7623
6367dd30
AC
76242011-08-04 Emmanuel Briot <briot@adacore.com>
7625
7626 * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.
7627 Create several new subprograms to move code out of Make. This makes the
7628 code more readable, removes code duplication, and is a preparation work
7629 for adding support for aggregate projects.
7630
76312011-08-04 Tristan Gingold <gingold@adacore.com>
7632
7633 * s-po32gl.ads, s-po32gl.adb: New files.
7634 * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.
7635 * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.
7636 (Build_Finalization_Collection): Use it.
7637 * exp_ch4.adb (Complete_Controlled_Allocation): Ditto.
7638 * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New
7639 literals.
7640 * gcc-interface/Makefile.in: Use s-po32gl.o on VMS.
7641 * gcc-interface/Make-lang.in: Update dependencies.
7642
cd8bfe35
EB
76432011-08-04 Emmanuel Briot <briot@adacore.com>
7644
7645 * makeutl.adb (Complete_Mains): add support for specs with no suffix on
7646 the command line.
7647
7db29ea7
EB
76482011-08-04 Emmanuel Briot <briot@adacore.com>
7649
7650 * make.adb, makeutl.adb (Complete_Mains): if a main specified on the
7651 command line is not a file name, also check whether it could be a unit
7652 name.
7653
d9b056ea
AC
76542011-08-04 Eric Botcazou <ebotcazou@adacore.com>
7655
7656 * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate
7657 the header of the finalization routine.
7658 If the unit has no finalizer but is a body whose spec has one, then
7659 generate the decrement of the elaboration entity only.
7660 If the unit has a finalizer and is a spec, then do not generate the
7661 decrement of the elaboration entity.
7662 (Gen_Finalize_Library_C): Likewise.
7663
76642011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7665
7666 * exp_ch7.adb (Alignment_Of): New subsidiary routine.
7667 (Bounds_Size_Expression): Removed.
7668 (Double_Alignment_Of): New subsidiary routine.
7669 (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account
7670 for a hole in the dope vector of unconstrained arrays due to different
7671 index and element alignments.
7672
76732011-08-04 Ed Schonberg <schonberg@adacore.com>
7674
7675 * sem_res.adb (Resolve_Allocator): diagnose task allocator that will
7676 raise program_error because body has not been seen yet.
7677
76782011-08-04 Ed Schonberg <schonberg@adacore.com>
7679
7680 * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with
7681 an unresolved name.
7682
76832011-08-04 Vincent Celier <celier@adacore.com>
7684
7685 * makeutl.adb (Do_Complete): Check absolute paths in canonical forms
7686
76872011-08-04 Yannick Moy <moy@adacore.com>
7688
7689 * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here
7690 * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here
7691
76922011-08-04 Thomas Quinot <quinot@adacore.com>
7693
7694 * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for
7695 instantiation in RCI.
7696
76972011-08-04 Emmanuel Briot <briot@adacore.com>
7698
7699 * make.adb: Share more code with gprbuild
7700
f5fc5b9d
AC
77012011-08-04 Emmanuel Briot <briot@adacore.com>
7702
7703 * projects.texi: Added documentation for the IDE'Gnat project file
7704 attribute.
7705
77062011-08-04 Nicolas Roche <roche@adacore.com>
7707
7708 * gnat_rm.texi: Minor editing.
7709
77102011-08-04 Javier Miranda <miranda@adacore.com>
7711
7712 * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case
7713 and the library case for VM targets.
7714 (Gen_Adainit_Ada): Likewise.
7715
77162011-08-04 Robert Dewar <dewar@adacore.com>
7717
7718 * g-altive.ads: Minor comment updates.
7719 * prj-nmsc.adb: Minor reformatting.
7720
77212011-08-04 Javier Miranda <miranda@adacore.com>
7722
7723 * opt.ads
7724 (Normalize_Scalars_Config): Value of the configuration switch set by
7725 pragma Normalize_Scalars when it appears in the gnat.adc file.
7726 (Normalize_Scalars): New field for record Config_Switches_Type. Used
7727 to save and restore settings of this pragma.
7728 * opt.adb
7729 (Register_Opt_Config_Switches, Save_Opt_Config_Switches,
7730 Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.
7731
77322011-08-04 Vincent Celier <celier@adacore.com>
7733
7734 * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile
7735
0c4683cf
AC
77362011-08-04 Arnaud Charlet <charlet@adacore.com>
7737
7738 * makeutl.adb: Minor reformatting.
7739
77402011-08-04 Olivier Hainque <hainque@adacore.com>
7741
7742 * g-altive.ads: Update comments to reflect that only the soft
7743 binding is available today.
7744
2598ee6d
RD
77452011-08-04 Robert Dewar <dewar@adacore.com>
7746
7747 * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,
7748 makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting
7749 * gcc-interface/Make-lang.in: Update dependencies.
7750
c2db4b32
AC
77512011-08-04 Arnaud Charlet <charlet@adacore.com>
7752
7753 * prj-env.adb: Remove local debug traces.
7754
77552011-08-04 Yannick Moy <moy@adacore.com>
7756
7757 * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK
7758 was used instead of Hi_OK, which could cause a read of an uninitialized
7759 value later on. Detected while working on the new warning.
7760 * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment
7761 to local variable.
7762 * sem_ch5.adb (Analyze_Assignment): set the last assignment component
7763 in more cases, in order to detect more unreferenced values.
7764 * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing
7765 object for expression, if any.
7766
77672011-08-04 Eric Botcazou <ebotcazou@adacore.com>
7768
7769 * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of
7770 the operand types instead of the Esize.
7771
77722011-08-04 Steve Baird <baird@adacore.com>
7773
7774 * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to
7775 enable CodePeer_Mode.
7776 * bindusg.adb (Display): Add help message describing -P binder switch.
7777 * gnat_ugn.texi: Document -P binder switch.
7778 * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the
7779 user-defined main program directly.
7780 (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the
7781 user-defined main program in the context clause of the package body.
7782
ad05f2e9
AC
77832011-08-04 Yannick Moy <moy@adacore.com>
7784
7785 * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial
7786 duplicate of Defining_Entity
7787 (Get_Unique_Entity_For_Decl): rename function into
7788 Unique_Defining_Entity
7789 * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags
7790 (Formal_Proof_On): remove synthesized flag
7791 * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
7792 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,
7793 sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA
7794 * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma
7795 Annotate (Formal_Proof)
7796
77972011-08-04 Emmanuel Briot <briot@adacore.com>
7798
7799 * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit
7800 source files with non-standard naming schemes, in imported projects
7801
756ef2a0
AC
78022011-08-04 Emmanuel Briot <briot@adacore.com>
7803
7804 * makeutl.adb (Complete_Mains): when a multi-unit source file is
7805 specified on the gprbuild command line, we need to compile all units
7806 within that file, not just the first one we find
7807 Fix error message for mains that are not found.
7808
78092011-08-04 Thomas Quinot <quinot@adacore.com>
7810
7811 * sem_ch6.adb: Update comment.
7812 * sem_ch12.adb: Minor reformatting.
7813
78142011-08-04 Bob Duff <duff@adacore.com>
7815
7816 * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading
7817 Acceptor.Terminate_Alternative without locking Acceptor, which causes a
7818 race condition whose symptom is to fail to lock Parent. That, in turn,
7819 causes Parent.Awake_Count to be accessed without locking Parent, which
7820 causes another race condition whose symptom is that Parent.Awake_Count
7821 can be off by 1 (either too high or too low). The solution is to lock
7822 Parent unconditionally, and then lock Acceptor, before reading
7823 Acceptor.Terminate_Alternative.
7824
4fdebd93
AC
78252011-08-04 Arnaud Charlet <charlet@adacore.com>
7826
7827 * debug.adb: Update comment.
7828
78292011-08-04 Robert Dewar <dewar@adacore.com>
7830
7831 * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,
7832 sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,
7833 exp_ch6.adb: Minor reformatting.
7834
78352011-08-04 Gary Dismukes <dismukes@adacore.com>
7836
7837 * gnat_ugn.texi: Add sentence about the case of compile-time-detected
7838 checks for -gnateE.
7839
78402011-08-04 Ed Schonberg <schonberg@adacore.com>
7841
7842 * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.
7843
78442011-08-04 Thomas Quinot <quinot@adacore.com>
7845
7846 * sinfo.ads: Minor reformatting.
7847
78482011-08-04 Emmanuel Briot <briot@adacore.com>
7849
7850 * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error
7851 even if there is no location.
7852
6aaa0587
ES
78532011-08-04 Ed Schonberg <schonberg@adacore.com>
7854
7855 * sem_res.adb, sem_ch4.adb: move check for restriction
7856 No_Task_Hierarchy to resolve_allocator.
7857
35a1c212
AC
78582011-08-04 Thomas Quinot <quinot@adacore.com>
7859
7860 * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):
7861 This flag of N_Pragma nodes is not used, remove it as well as all of
7862 the associated circuitry.
7863
78642011-08-04 Javier Miranda <miranda@adacore.com>
7865
7866 * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the
7867 runtime check on duplicated externa tags
7868 * debug.adb Document switch -gnatdQ.
7869
78702011-08-04 Gary Dismukes <dismukes@adacore.com>
7871
7872 * a-fihema.ads: Minor typo fix.
7873
78742011-08-04 Yannick Moy <moy@adacore.com>
7875
7876 * sem_ch10.adb: Minor comment update.
7877
78782011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
7879
7880 * einfo.adb: Update the node field usage to reflect the renaming of
7881 Return_Flag to Return_ Flag_Or_Transient_Decl.
7882 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.
7883 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.
7884 (Write_Field15_Name): Change Return_Flag to
7885 Return_Flag_Or_Transient_Decl.
7886 * einfo.ads: Rename node field Return_Flag to
7887 Return_Flag_Or_Transient_Decl. Update the associated comment and all
7888 occurrences in entities.
7889 (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update
7890 associated Inline pragma.
7891 (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update
7892 associated Inline pragma.
7893 * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New
7894 routine.
7895 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to
7896 Return_Flag and Set_Return_Flag.
7897 * exp_ch7.adb (Process_Declarations): Add code to recognize hook
7898 objects generated for controlled transients declared inside an
7899 Exception_With_Actions. Update the calls to Return_Flag.
7900 (Process_Object_Declaration): Add code to add a null guard for hook
7901 objects generated for controlled transients declared inside an
7902 Exception_With_Actions. Update related comment.
7903 * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook
7904 objects generated for controlled transients declared inside an
7905 Exception_With_Actions. Update the calls to Return_Flag.
7906 * expander.adb (Expand): Add new case for N_Expression_With_Actions.
7907
79082011-08-04 Ed Schonberg <schonberg@adacore.com>
7909
7910 * sem_util.adb:(Wrong_Type): Improve error message on a one-element
7911 positional aggregate.
7912
79132011-08-04 Vincent Celier <celier@adacore.com>
7914
7915 * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma
7916 SLOC only for pragmas.
7917
79182011-08-04 Emmanuel Briot <briot@adacore.com>
7919
7920 * projects.texi: Minor typo fix.
7921
79222011-08-04 Emmanuel Briot <briot@adacore.com>
7923
7924 * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging
7925 on case-sensitive file systems.
7926
c2873f74
TQ
79272011-08-04 Thomas Quinot <quinot@adacore.com>
7928
7929 * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision
7930 nested in a disabled pragma.
7931 * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of
7932 enclosing pragma, if any, for X decisions.
7933
79342011-08-04 Thomas Quinot <quinot@adacore.com>
7935
7936 * sem_prag.adb: Minor reformatting.
7937
46414266
VC
79382011-08-04 Vincent Celier <celier@adacore.com>
7939
7940 * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not
7941 allowed in no run time mode.
7942
79432011-08-04 Vincent Celier <celier@adacore.com>
7944
7945 * make.adb (Check): When -gnatc is used, check for the source file
7946 inside the ALI file with a canonical case file name.
7947
afab164f
EB
79482011-08-04 Emmanuel Briot <briot@adacore.com>
7949
7950 * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for
7951 overriding the separator.
7952
fe0ec02f
AC
79532011-08-04 Robert Dewar <dewar@adacore.com>
7954
7955 * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,
7956 prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.
7957
79582011-08-04 Robert Dewar <dewar@adacore.com>
7959
7960 * gnat_rm.texi: Minor documentation fix for pragma Annotate.
7961
79622011-08-04 Yannick Moy <moy@adacore.com>
7963
7964 * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that
7965 'Result only appears in postcondition of function.
7966
79672011-08-04 Thomas Quinot <quinot@adacore.com>
7968
7969 * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated
7970 external tag, include the value of the external tag in the exception
7971 message.
7972
0180fd26
AC
79732011-08-04 Yannick Moy <moy@adacore.com>
7974
7975 * sem_attr.adb (Result): modify error message for misplaced 'Result
7976
79772011-08-04 Sergey Rybin <rybin@adacore.com>
7978
7979 * gnat_rm.texi (pragma Annotate): Fix syntax description to make it
7980 clear that the second argument must be an identifier.
7981
79822011-08-04 Thomas Quinot <quinot@adacore.com>
7983
7984 * exp_ch9.adb (Build_Barrier_Function): When compiling with
7985 -fpreserve-control-flow, insert an IF statement on the barrier
7986 condition to ensure that a conditional branch instruction is generated.
7987
79882011-08-04 Emmanuel Briot <briot@adacore.com>
7989
7990 * prj-part.adb, prj.adb, prj.ads, prj-tree.ads
7991 (Processing_Flags.Ignore_Missing_With): new flag.
7992
79932011-08-04 Emmanuel Briot <briot@adacore.com>
7994
7995 * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of
7996 Source_List_File on case-insensitive systems where the file is actually
7997 on a case-sensitive file system (NFS,...).
7998
79992011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8000
8001 * sem_ch6.adb (Analyze_Function_Return): In a rare case where a
8002 function return contains a controlled [extension] aggregate and the
8003 return statement is not part of a handled sequence of statements, wrap
8004 the return in a block. This ensures that all controlled temporaries
8005 generated during aggregate resolution will be picked up by the
8006 finalization machinery.
8007
80082011-08-04 Ed Schonberg <schonberg@adacore.com>
8009
8010 * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized
8011 components, freeze type before resolution, to ensure that default
8012 initializations are present for all components.
8013 * sem_res.adb (Resolve_Actuals): the designated object of an
8014 accces-to-constant type is a legal actual in a call to an
8015 initialization procedure.
8016
80172011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8018
8019 * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and
8020 N_Unchecked_Type_Conversion to the possible containers of a renamed
8021 transient variable.
8022
78efd712
AC
80232011-08-04 Yannick Moy <moy@adacore.com>
8024
8025 * par-ch13.adb (Aspect_Specifications_Present): recognize
8026 "with Identifier'Class =>" as an aspect, so that a meaningful warning
8027 is issued in Strict mode.
8028 * par.adb: Fix typos in comments.
8029
80302011-08-04 Yannick Moy <moy@adacore.com>
8031
8032 * sem_attr.adb (Result): modify error message to take into account Post
8033 aspect when compiling Ada 2012 (or newer) code.
8034
80352011-08-04 Nicolas Roche <roche@adacore.com>
8036
8037 * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to
2c7f9cc0 8038 remove need for GCC exceptions.
78efd712
AC
8039
80402011-08-04 Vincent Celier <celier@adacore.com>
8041
8042 * makeutl.adb (Do_Complete): Call Debug_Output with the name of the
8043 project, not the source file name.
8044 * prj.adb (Find_Sources.Look_For_Sources): If the source has been
8045 excluded, continue looking. This excluded source will only be returned
8046 if there is no other source with the same base name that is not locally
8047 removed.
8048
80492011-08-04 Ed Schonberg <schonberg@adacore.com>
8050
8051 * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is
8052 private and one of the operands is a real literal, use a qualified
8053 expression rather than a conversion which is not meaningful to the
8054 back-end.
8055
0170a691
AC
80562011-08-04 Yannick Moy <moy@adacore.com>
8057
8058 * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise
8059 corresponding aspect X'Class are allowed, proceed with analysis of the
8060 aspect instead of skipping it.
8061
80622011-08-04 Tristan Gingold <gingold@adacore.com>
8063
8064 * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads
8065 This will allow to have an Ada implementation for the subprogram.
8066
deb4f5ba
ES
80672011-08-04 Ed Schonberg <schonberg@adacore.com>
8068
8069 * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a
8070 completion and aspects are present, apply them to the entity for the
8071 type which is currently the partial view, but which is the one that
8072 will be frozen.
8073 * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate
8074 applies to a partial view, indicate that the full view has predicates
8075 and delayed aspects.
8076 (Replace_Type_Reference): Handle properly predicates that apply to the
8077 full view of a private completion.
8078
fc893455
AC
80792011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8080
8081 * layout.adb (Layout_Type): For composite types, do not set Esize.
8082 * freeze.adb (Set_Small_Size): Remove test on alignment and do not
8083 set Esize.
8084 (Size_Known): Look at the RM size of components instead of the Esize.
8085 (Freeze_Record_Type): Look at the RM size instead of the Esize to
8086 issue warning and activate Implicit_Packing.
8087 (Freeze_Entity): Likewise. Do not issue a warning for alias/atomic
8088 if the Esize is not known.
8089 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esize
8090 for elementary types only.
8091 (Analyze_Record_Representation_Clause): Look at the RM size instead
8092 of the Esize to issue errors.
8093 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it
8094 is not known.
8095 <E_Record_Type>: Look at the RM size instead of the Esize. Remove
2c7f9cc0 8096 obsolete block.
fc893455
AC
8097 Look at the RM size instead of the Esize for types if the latter is
8098 not known.
8099 (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.
8100
81012011-08-04 Ed Schonberg <schonberg@adacore.com>
8102
8103 * sem_type.adb: proper handling of equality not involving anonymous
8104 access types.
8105
b37d5bc6
AC
81062011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8107
8108 * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and
8109 Vis_Decls. When creating a library-level finalizer for a package spec,
8110 both the declaration and body of the finalizer are inserted either in
8111 the visible or private declarations of the package spec.
8112
81132011-08-04 Javier Miranda <miranda@adacore.com>
8114
8115 * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the
8116 use of the full-view of a type when invoking Is_Ancestor.
8117 * sem_type.adb (Is_Ancestor): For consistency, when the traversal of
8118 the full-view of private parents is requested, then use also the
8119 full-view of the parent of the first derivation.
8120
7ab4d95a
AC
81212011-08-04 Tristan Gingold <gingold@adacore.com>
8122
8123 * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset
8124 instead of the locally imported procedure.
8125 * s-taprop-mingw.adb (Enter_Task): Ditto.
8126 * s-valrea.adb (Scan_Real): Ditto.
8127 * s-imgrea.adb (Set_Image_Real): Ditto.
8128 * s-flocon.ads: Make the package pure.
8129
81302011-08-04 Thomas Quinot <quinot@adacore.com>
8131
8132 * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.
8133 * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.
8134 * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):
8135 New subprogram, moved here from...
8136 * par.adb, par-ch5.adb (P_Statement_Name): ... here.
8137 * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any
8138 rewriting of the last argument into a procedure call statement here...
8139 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there
8140 instead.
8141
81422011-08-04 Thomas Quinot <quinot@adacore.com>
8143
8144 * par_sco.adb: Minor reformatting.
8145
51c400f5
AC
81462011-08-04 Robert Dewar <dewar@adacore.com>
8147
8148 * erroutc.adb: Minor reformatting.
8149
81502011-08-04 Thomas Quinot <quinot@adacore.com>
8151
8152 * par_sco.adb: Comment update.
8153
81542011-08-04 Tristan Gingold <gingold@adacore.com>
8155
8156 * s-flocon.ads: New file.
8157 * g-flocon.ads: Now a renaming of s-flocon.
8158 * Makefile.rtl: Add s-flocon.o
8159
6a49f110
AC
81602011-08-04 Javier Miranda <miranda@adacore.com>
8161
8162 * exp_strm.adb (Build_Array_Input_Function): if the array type is
8163 constrained, do not attempt to build a subtype of it.
8164
81652011-08-04 Yannick Moy <moy@adacore.com>
8166
8167 * errout.ads Change comments: remove 'R'M as an example where quotes
8168 are needed; add ALFA as another case where quotes are not needed
8169 * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
8170 case where quotes are not needed.
8171 * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
8172 sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
8173 Remove all occurrences of 'A'L'F'A
8174
81752011-08-04 Ed Schonberg <schonberg@adacore.com>
8176
8177 * sem_ch13.adb: check legality of invariant pragma.
8178
a4640a39
AC
81792011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8180
8181 * bindgen.adb: Add comments.
8182
81832011-08-04 Yannick Moy <moy@adacore.com>
8184
8185 * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a
8186 synthesized flag.
8187 * sem_prag.adb (Analyze_Pragma): record the pragma Annotate
8188 (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.
8189
81902011-08-04 Robert Dewar <dewar@adacore.com>
8191
8192 * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,
8193 osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,
8194 sem_ch13.adb, s-pooloc.adb: Minor reformatting.
8195
39ade2f9
AC
81962011-08-04 Thomas Quinot <quinot@adacore.com>
8197
8198 * s-pooloc.ads, s-pooglo.ads: Minor reformatting
8199
82002011-08-04 Thomas Quinot <quinot@adacore.com>
8201
8202 PR ada/47880
8203 * s-pooloc.adb (Deallocate): Fix the case of deallocating the only
8204 allocated object.
8205
82062011-08-04 Robert Dewar <dewar@adacore.com>
8207
8208 * einfo.ads, exp_ch4.adb: Minor reformatting.
8209
82102011-08-04 Jerome Lambourg <lambourg@adacore.com>
8211
8212 * back_end.ads (Gen_Or_Update_Object_File): Add more comments.
8213
7efc3f2d
AC
82142011-08-04 Ed Schonberg <schonberg@adacore.com>
8215
8216 * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component
8217 type in all cases to compute list of primitive operations, because full
8218 view may be an itype that is not attached to the list of declarations.
8219
82202011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8221
8222 * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the
8223 library has already been finalized.
8224 (Gen_Adafinal_C): Likewise.
8225 (Gen_Adainit_Ada): Generate an early return if the library has
8226 already been elaborated.
8227 (Gen_Adainit_C): Likewise.
8228 (Gen_Output_File_Ada): Generate an elaboration flag.
8229 (Gen_Output_File_C): Likewise.
8230
f65df609
HK
82312011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8232
8233 * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of
8234 Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not
8235 built in the first place.
8236 (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr
8237 for CodePeer because Finalize_Address was not built to begin with.
8238 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.
8239
a0fb8fe8
AC
82402011-08-04 Pascal Obry <obry@adacore.com>
8241
8242 * adaint.c (__gnat_tmp_name): Use current process id to create temp
8243 filenames, this ensures unicity of filenames across processes.
8244
82452011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8246
8247 * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine
8248 Raise_Controlled to Raise_From_Controlled_Operation. Update the
8249 signature of Raise_From_Controlled_Operation by adding flag From_Abort.
8250 Add False as the actual to From_Abort in the generated call to
8251 Raise_From_Controlled_Operation.
8252
82532011-08-04 Jerome Lambourg <lambourg@adacore.com>
8254
8255 * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration
8256 so that the ali file name can be retrieved from outside of this package.
8257 * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method
8258 doing nothing in the general case, but used to update the object file
8259 timestamp if directly generated by the backend.
8260 * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set
8261 to a later time than the ali file one.
8262
9534ab17
AC
82632011-08-04 Yannick Moy <moy@adacore.com>
8264
8265 * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram
8266 entities whose body contains an Annotate pragma which forces formal
8267 proof on this body.
8268 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
8269 sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to
8270 Mark_Non_ALFA_Subprogram to pass in a message and node.
8271 * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate
8272 (Forma_Proof, On) which sets the flag Formal_Proof_On in the
8273 surrounding subprogram.
8274 * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,
8275 Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked
8276 as not in ALFA is annotated with Formal_Proof being On, then an error
8277 is issued based on the additional parameters for message and node.
8278 * snames.ads-tmpl (Name_Formal_Proof): new name for annotation.
8279 * gcc-interface/Make-lang.in: Update dependencies.
8280
82812011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8282
8283 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate
8284 Finalize_Address when CodePeer is enabled.
8285
82862011-08-04 Pascal Obry <obry@adacore.com>
8287
8288 * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as
8289 the latter returns a pointer to a static buffer which is deallocated
8290 at the end of the routine.
8291
5c0e97dd
AC
82922011-08-04 Yannick Moy <moy@adacore.com>
8293
8294 * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA
8295 after index creation; mark unconstrained base array type generated as
8296 being in/not in ALFA as well
8297 (Make_Index): mark subtype created as in/not in ALFA
8298 * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating
8299 over a loop as in/not in ALFA, depending on its type and form of loop
8300 iteration.
8301
83022011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8303
8304 * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort
8305 directly to False on .NET and JVM.
8306
7a93c64b
YM
83072011-08-04 Yannick Moy <moy@adacore.com>
8308
8309 * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove
8310 constraint that subtype must come from source code to be in ALFA, so
8311 that anonymous subtypes can be in ALFA too.
8312
e9a1ed9b
YM
83132011-08-04 Yannick Moy <moy@adacore.com>
8314
8315 * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of
8316 reference for ALFA mode.
8317 * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make
8318 procedure public so as to use it from formal verification back-end.
8319
8e293fbd
AC
83202011-08-04 Jerome Lambourg <lambourg@adacore.com>
8321
8322 * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the
8323 invalid checks of the Parameter, making Remove_Switch not working
8324 correctly.
8325
83262011-08-04 Arnaud Charlet <charlet@adacore.com>
8327
8328 * targparm.ads: Update header: no run-time exception is needed on this
8329 file.
8330
83312011-08-04 Vincent Celier <celier@adacore.com>
8332
8333 * a-fihema.adb: Use System.IO instead of GNAT.IO
8334
83352011-08-04 Thomas Quinot <quinot@adacore.com>
8336
8337 * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types
8338 are forbidden in Compiler_Unit mode.
8339
cfae2bed
AC
83402011-08-04 Robert Dewar <dewar@adacore.com>
8341
8342 * sem_util.adb: Minor reformatting.
8343
83442011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8345
8346 * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for
8347 library-level finalizers.
8348 (Gen_Finalize_Library_C): Update the import string for library-level
8349 finalizers.
8350 (Gen_Finalize_Library_Defs_C): Update the definition name of a
8351 library-level finalizer.
8352 * exp_ch7.adb: Remove with and use clauses for Stringt.
8353 (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,
8354 Spec_Decl. Add local variable Body_Id. The names of library-level
8355 finalizers are now manually fully qualified and are no longer external.
8356 A single name is now capable of servicing .NET, JVM and non-VM targets.
8357 Pragma Export is no longer required to provide visibility for the name.
8358 (Create_Finalizer_String): Removed.
8359 (New_Finalizer_Name): New routine which mimics New_..._Name.
8360
01f0729a
AC
83612011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8362
8363 * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the
8364 elaboration counter to Standard_Short_Integer.
8365 * sem_util.adb (Build_Elaboration_Entity): Likewise.
8366 * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.
8367 (Gen_Elab_Externals_C): Likewise.
8368
83692011-08-04 Ed Falis <falis@adacore.com>
8370
8371 * system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
8372 system-vxworks-ppc.ads, system-vxworks-m68k.ads,
8373 system-vxworks-mips.ads, system-vxworks-x86.ads
8374 (Always_Compatible_Rep): set to False for all VxWorks targets.
8375
2c1b72d7
AC
83762011-08-04 Robert Dewar <dewar@adacore.com>
8377
8378 * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,
8379 makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,
8380 exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,
8381 exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,
8382 exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,
8383 sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,
8384 sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:
8385 Minor reformatting and code reorganization.
8386
83872011-08-04 Emmanuel Briot <briot@adacore.com>
8388
8389 * projects.texi: Added doc for aggregate projects.
8390
824e9320
AC
83912011-08-04 Emmanuel Briot <briot@adacore.com>
8392
8393 * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):
8394 Add support for overriding the Project_Path in aggregate projects.
8395
83962011-08-04 Robert Dewar <dewar@adacore.com>
8397
8398 * a-cofove.ads: Minor reformatting.
8399
84002011-08-04 Hristian Kirtchev <kirtchev@adacore.com>
8401
8402 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment
8403 on the generated code.
8404 (Build_Finalize_Statements): Update the comment on the generated code.
8405 (Build_Initialize_Statements): Update the comment on the generated code.
8406 (Build_Object_Declarations): Add local variable Result. The object
8407 declarations are now built in sequence.
8408 * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and
8409 RE_Unit_Table.
8410
84112011-08-04 Robert Dewar <dewar@adacore.com>
8412
8413 * checks.adb, alfa.adb, alfa.ads: Minor reformatting.
8414
84152011-08-04 Eric Botcazou <ebotcazou@adacore.com>
8416
8417 * einfo.ads (Elaboration_Entity): Document new definition and use.
8418 (Elaboration_Entity_Required): Adjust to above change.
8419 * exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
8420 * exp_ch12.adb: And with and use for Snames.
8421 (Expand_N_Generic_Instantiation): Test 'Elaborated attribute.
8422 * exp_util.adb (Set_Elaboration_Flag): Likewise.
8423 * sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.
8424 <Check_Unit_Name>: Deal with N_Expanded_Name.
8425 <Attribute_Elaborated>: Extend to all unit names.
8426 * sem_elab.adb: And with and use for Uintp.
8427 (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.
8428 * sem_util.ads (Build_Elaboration_Entity): Adjust comment.
8429 * sem_util.adb (Build_Elaboration_Entity): Change type to Integer.
8430 * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken
8431 from Gen_Adainit_Ada.
8432 (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.
8433 (Gen_Adafinal_Ada): Remove redundant test. In the non-main program
8434 case, do not call System.Standard_Library.Adafinal; instead call
8435 finalize_library if needed.
8436 (Gen_Adafinal_C): Likewise.
8437 (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the
8438 non-main program case.
8439 (Gen_Adainit_C): Generate a couple of external declarations here.
8440 In the main program case, set SSL.Finalize_Library_Objects.
8441 (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.
8442 (Gen_Elab_Calls_C): Likewise.
8443 (Gen_Finalize_Library_Ada): Likewise. Skip SAL interface units.
8444 (Gen_Finalize_Library_C): Likewise. Generate a full function.
8445 (Gen_Main_C): Put back call to Ada_Final and don't finalize library
8446 objects here.
8447 (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final
8448 if -a is specified. Call Gen_Elab_Externals_Ada. Move around call to
8449 Gen_Adafinal_Ada.
8450 (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final
8451 if -a is specified. Call Gen_Elab_Externals_C. Remove useless couple
2c7f9cc0 8452 of external declarations. Call Gen_Finalize_Library_C.
824e9320 8453
316d9d4f
EB
84542011-08-04 Emmanuel Briot <briot@adacore.com>
8455
8456 * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,
8457 Compute_Compilation_Phases): new subprogram.
8458 (Builder_Data, Builder_Project_Tree_Data): new subprogram and type
8459 The number of mains as well as the various compilation phases that
8460 need to be run are now project tree specific, since various
8461 aggregated trees might have different requirements. In particular,
8462 they do not all require bind or link phases.
8463
9434c32e
EB
84642011-08-04 Emmanuel Briot <briot@adacore.com>
8465
8466 * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb
8467 (Project_Tree_Appdata): New type.
8468 It is now possible to associate application-specific data to a project
8469 tree. In particular, this is used in the gprbuild builder to avoid a
8470 number of global tables and htables, especially now that there can be
8471 several project trees loaded at once because of aggregate projects.
8472 (Debug_Name): new procedure.
8473 * projects.texi: Clarify syntax of "**" for Source_Dirs
8474
41ba34db
EB
84752011-08-03 Emmanuel Briot <briot@adacore.com>
8476
8477 * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts
8478 the "roots" for a main.
8479 (Fill_From_Project): add support for aggregate projects. Main units
8480 in aggregated projects are now automatically added in the list of
8481 files to build (although this fails later on in gprbuild, because
8482 these files are not using the root proejct tree, so this needs
8483 further cleanup)
8484 * gcc-interface/Make-lang.in: Update dependencies.
8485
fccd42a9
AC
84862011-08-03 Yannick Moy <moy@adacore.com>
8487
8488 * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean
8489 conditional expression in ALFA.
8490 * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean
8491 expressions as not in ALFA.
8492
84932011-08-03 Robert Dewar <dewar@adacore.com>
8494
8495 * a-cofove.adb: Minor reformatting.
8496
84972011-08-03 Emmanuel Briot <briot@adacore.com>
8498
8499 * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads
8500 (Insert_Project_Sources, Insert_withed_Sources_For): moved from the
8501 gprbuild sources.
8502 These packages are more logically placed in the Queue package, since
8503 they manipulate the queue. It is also likely that they can be adapted
8504 for gnatmake, thus sharing more code.
8505 (Finish_Program, Fail_Program): moved from the gprbuild sources, so
8506 that we could move the above.
8507
85082011-08-03 Emmanuel Briot <briot@adacore.com>
8509
8510 * errutil.adb (Finalize): clean up the list of error messages on exit.
8511 Calling this subprogram multiple times will no longer show duplicate
8512 error messages on stderr.
8513
85142011-08-03 Emmanuel Briot <briot@adacore.com>
8515
8516 * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter
8517 Getopt_Switches when we have already define a command line
8518 configuration.
8519
5e8c8e44
YM
85202011-08-03 Yannick Moy <moy@adacore.com>
8521
8522 * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not
8523 in ALFA. Instead, they are considered as assertions to prove.
8524 * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such
8525 nodes as not in ALFA. Instead, include conditional expressions in ALFA
8526 if they have no ELSE part, or if they occur in pre- and postconditions,
8527 where the Condition cannot have side-effects in ALFA
8528 (Analyze_Membership_Op): do not mark such nodes as not in ALFA
8529 (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.
8530 Instead, include type conversion between scalar types in ALFA.
8531 * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA
8532 if-and-only-if its type is in ALFA.
8533
5ffe0bab
AC
85342011-08-03 Thomas Quinot <quinot@adacore.com>
8535
8536 * scos.adb, get_scos.adb, put_scos.adb
8537 New code letter for decisions: G (entry guard)
8538 * par_sco.adb
8539 (Traverse_Subprogram_Body): Rename to...
8540 (Traverse_Subprogram_Or_Task_Body): New subrpogram.
8541 (Traverse_Protected_Body): New subprogram
8542 (Traverse_Declarations_Or_Statements): Add traversal of task bodies,
8543 protected bodies and entry bodies.
8544
85452011-08-03 Yannick Moy <moy@adacore.com>
8546
8547 * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure
8548 entities with get/set subprograms, which is set on procedure entities
8549 generated by the compiler for a postcondition.
8550 * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures
8551 * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the
8552 entity for a declaration
8553 (Get_Unique_Entity_For_Decl): new function returning an entity which
8554 represents a declaration, so that matching spec and body have the same
8555 entity.
8556
85572011-08-03 Robert Dewar <dewar@adacore.com>
8558
8559 * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,
8560 a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting
8561
85622011-08-03 Yannick Moy <moy@adacore.com>
8563
8564 * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram
8565 library-level because retriction No_Implicit_Dynamic_Code in the
8566 front-end prevents its definition as a local subprogram
8567 (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,
8568 for reuse in other contexts
8569 (Traverse_Declarations_Or_Statements,
8570 Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
8571 Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these
8572 procedures take a callback parameter to be called on all declarations
8573 * lib-xref.ads
8574 (Traverse_All_Compilation_Units): new generic function to traverse a
8575 compilation unit and call a callback parameter on all declarations
8576
f9ad6b62
AC
85772011-08-03 Javier Miranda <miranda@adacore.com>
8578
8579 * sem_prag.adb (Process_Interface_Name): Allow duplicated export names
8580 in Java since they are always enclosed in a namespace that
8581 differentiates them, and overloaded entities are supported by the VM.
8582
85832011-08-03 Ed Schonberg <schonberg@adacore.com>
8584
8585 * checks.adb (Determine_Range): If a computed bound of an operation is
8586 outside the range of the base type of the expression, and overflow
8587 checks are enabled, the result is unknown and cannot be used for any
8588 subsequent constant folding.
8589 * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are
8590 unknown, so is the result of the comparison.
8591
85922011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8593
8594 * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal
8595 From_Abort. When finalization was triggered by an abort, propagate
8596 Standard'Abort_Signal rather than Program_Error.
8597 * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal
8598 From_Abort.
8599 * a-except.adb (Raise_From_Controlled_Operation): Add new formal
8600 From_Abort. When finalization was triggered by an abort, propagate
8601 Standard'Abort_Signal rather than Program_Error.
8602 * a-except.ads:(Raise_From_Controlled_Operation): Add new formal
8603 From_Abort.
8604 * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable
8605 Abort_Id. Update the calls to Build_Object_Declarations and
8606 Build_Raise_Statement to include Abort_Id.
8607 (Build_Adjust_Statements): New local variable Abort_Id. Update the
8608 calls to Build_Object_Declarations and Build_Raise_Statement to include
8609 Abort_Id.
8610 (Build_Finalize_Statements): New local variable Abort_Id. Update the
8611 calls to Build_Object_Declarations and Build_Raise_Statement to include
8612 Abort_Id.
8613 (Build_Components): Create an entity for Abort_Id when exceptions are
8614 allowed on the target.
8615 (Build_Finalizer): New local variable Abort_Id.
8616 (Build_Initialize_Statements): New local variable Abort_Id. Update the
8617 calls to Build_Object_Declarations and Build_Raise_Statement to include
8618 Abort_Id.
8619 (Build_Object_Declarations): Add new formal Abort_Id. Create the
8620 declaration of flag Abort_Id to preserve the original abort status
8621 before finalization code is executed.
8622 (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to
8623 runtime routine Raise_From_Controlled_Operation.
8624 (Create_Finalizer): Update the call to Build_Raise_Statement to include
8625 Abort_Id. Update the call to Build_Object_Declarations to include
8626 Abort_Id. Update the layout of the finalizer body.
8627 (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.
8628 (Process_Transient_Objects): New local variable Abort_Id. Remove the
8629 clunky code to create all flags and objects related to
8630 exception propagation and replace it with a call to
8631 Build_Object_Declarations. Update the call to Build_Raise_Statement to
8632 include Abort_Id.
8633 * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.
8634 Add new formal Abort_Id and associated comment on its use.
8635 (Build_Raise_Statement): Add new formal Abort_Id and associated comment
8636 on its use.
8637 * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.
8638 Remove the clunky code to create all flags and objects related to
8639 exception propagation and replace it with a call to
8640 Build_Object_Declarations. Update the call to Build_Raise_Statement.
8641
86422011-08-03 Eric Botcazou <ebotcazou@adacore.com>
8643
8644 * s-tassta.adb: Fix minor typos.
8645
86462011-08-03 Robert Dewar <dewar@adacore.com>
8647
8648 * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,
8649 lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.
8650
1cdfa9be
AC
86512011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8652
8653 * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion
8654 to packages. This ensures that the finalizer body will not end up
8655 inside the freeze node.
8656 (Process_Declarations): Add code to detect whether a freeze node has a
8657 nested finalization collection.
8658
86592011-08-03 Pascal Obry <obry@adacore.com>
8660
8661 * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.
8662 (Current_Session): Return a not null access to Session_Type.
8663 (Default_Session): Likewise.
8664
243cae0a
AC
86652011-08-03 Robert Dewar <dewar@adacore.com>
8666
8667 * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,
8668 exp_ch3.adb, exp_ch3.ads: Minor reformatting.
8669
86702011-08-03 Pascal Obry <obry@adacore.com>
8671
8672 * g-awk.ads: Minor comment fix.
8673
86742011-08-03 Sergey Rybin <rybin@adacore.com>
8675
8676 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
8677 the tree structure related to discriminant constraints.
8678 Original_Discriminant cannot be used any more for computing the
8679 defining name for the reference to a discriminant.
8680
86812011-08-03 Ed Schonberg <schonberg@adacore.com>
8682
8683 * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the
8684 function is not visibly tagged, this is not a dispatching call and
8685 therfore is not Tag_Indeterminate, even if the function is marked as
8686 dispatching on result.
8687
f553e7bc
AC
86882011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8689
8690 * exp_ch13.adb: Add with and use clauses for Restrict and Rident.
8691 (Expand_N_Free_Statement): Add a guard to protect against run-times
8692 which do not support controlled types.
8693 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
8694 against run-times which do not support controlled types.
8695 * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
8696 against run-times which do not support controlled types.
8697 * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
8698 against run-times which do not support controlled types.
8699 * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
8700 protect against run-times which do not support controlled types.
8701
87022011-08-03 Eric Botcazou <ebotcazou@adacore.com>
8703
8704 * exp_intr.adb: Put back with and use clauses for Exp_Ch11.
8705 (Expand_Unc_Deallocation): Expand the AT_END handler at the very end.
8706
e4982b64
AC
87072011-08-03 Ed Schonberg <schonberg@adacore.com>
8708
8709 * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
8710 modified in the source, to prevent spurious warnings when compiling
8711 with -gnatg.
8712
87132011-08-03 Thomas Quinot <quinot@adacore.com>
8714
8715 * a-except-2005.adb: Minor reformatting.
8716
87172011-08-03 Ed Schonberg <schonberg@adacore.com>
8718
8719 * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
8720 is a renaming declaration in the private part of a package, do not emit
8721 a warning that the with_clause could be moved because the renaming may
8722 be used in the body or in a child unit.
8723
87242011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8725
8726 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
8727 Propagate the Comes_From_Source attribute from the original return
8728 object to the renaming.
8729
87302011-08-03 Jose Ruiz <ruiz@adacore.com>
8731
8732 * exp_ch7.adb (Build_Raise_Statement): Do not call
8733 Raise_From_Controlled_Operation when this routine is not present in
8734 the run-time library.
8735 (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
8736 libraries (Ravenscar), tasks are non-terminating, and protected objects
8737 and tasks can only appear at library level, so we do not want
8738 finalization of protected objects nor tasks.
8739 * exp_intr.adb: Minor clarification in comment.
8740 bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
8741 Gen_Output_File_C): Remove references to finalization of library-level
8742 objects when using restricted run-time libraries.
8743
87442011-08-03 Ed Schonberg <schonberg@adacore.com>
8745
8746 * sem_ch3.adb (Build_Discriminant_Constraints): Set
8747 Original_Discriminant only if the parent type is a generic formal.
8748
deb8dacc
HK
87492011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8750
8751 * exp_ch13.adb: Add with and use clause for Targparm;
8752 (Expand_N_Free_Statement): Prevent the generation of a custom
8753 Deallocate on .NET/JVM targets since this requires pools and address
8754 arithmetic.
8755 * exp_ch4.adb (Expand_Allocator_Expression): When compiling for
8756 .NET/JVM targets, attach the newly allocated object to the access
8757 type's finalization collection. Do not generate a call to
8758 Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
8759 exist in the runtime.
8760 (Expand_N_Allocator): When compiling for .NET/JVM targets, do not
8761 create a custom Allocate for object that do not require initialization.
8762 Attach a newly allocated object to the access type's finalization
8763 collection on .NET/JVM.
8764 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
8765 assignment of controlled types on .NET/JVM. The two hidden pointers
8766 Prev and Next and stored and later restored after the assignment takes
8767 place.
8768 * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
8769 kludge for .NET/JVM to recognize a particular piece of code coming from
8770 Heap_Management and change the call to Finalize into Deep_Finalize.
8771 * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
8772 finalization collections on .NET/JVM only for types derived from
8773 Controlled. Separate the association of storage pools with a collection
8774 and only allow it on non-.NET/JVM targets.
8775 (Make_Attach_Call): New routine.
8776 (Make_Detach_Call): New routine.
8777 (Process_Object_Declarations): Suppress the generation of
8778 build-in-place return object clean up code on .NET/JVM since it uses
8779 pools.
8780 * exp_ch7.ads (Make_Attach_Call): New routine.
8781 (Make_Detach_Call): New routine.
8782 * exp_intr.adb Add with and use clause for Targparm.
8783 (Expand_Unc_Deallocation): Detach a controlled object from a collection
8784 on .NET/JVM targets.
8785 * rtsfind.ads: Add entries RE_Attach, RE_Detach and
8786 RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
8787 * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
8788 names used in finalization.
8789
87902011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8791
8792 * a-fihema.adb: Add with and use clauses for System.Soft_Links.
8793 (Attach, Detach): Lock the current task when chaining an object onto a
8794 collection.
8795
df3e68b1
HK
87962011-08-03 Hristian Kirtchev <kirtchev@adacore.com>
8797
8798 * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
8799 Rewritten to create the message strings when the exception is not
8800 raised by an abort during finalization.
8801 * a-except.ads, a-except-2005.ads: Add pragma Export for procedure
8802 Raise_From_Controlled_Operation and update its associated comment.
8803 * a-fihema.ads, a-fihema.adb: New GNAT unit.
8804 Ada.Finalization.Heap_Management provides key functionality
8805 associated with controlled objects on the heap, their creation,
8806 finalization and reclamation. Type Finalization_Collection is
8807 effectively a wrapper which sits ontop of a storage pool and performs
8808 all necessary bookkeeping for all the objects it contains. Each
8809 access-to-controlled or access-to-class-wide type receives a collection
8810 as part of its expansion. The compiler generates buffer code and
8811 invokes Allocate / Deallocate to create and destroy allocated
8812 controlled objects.
8813 * a-finali.adb ("="): Removed.
8814 * a-finali.ads ("="): Removed. Controlled types no longer carry hidden
8815 fields Prev and Next.
8816 * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
8817 A library unit with at least one controlled object on the library level
8818 has a special finalizer which is invoked by the binder. To signal this,
8819 ali files carry field PF.
8820 * ali.ads: New field in type Unit_Record called Has_Finalizer. Add
8821 associated comment on field usage.
8822 * a-tags.adb (Get_RC_Offset): Removed.
8823 (Needs_Finalization): New routine.
8824 * a-tags.ads: Update the structure of the GNAT dispatch tables.
8825 Dispatch tables now carry field Needs_Finalization which provides
8826 runtime indication whether a type is controlled or has controlled
8827 components or both. Remove field RC_Offset.
8828 (Get_RC_Offset): Removed along with its associated pragma Export.
8829 Since tagged types with controlled components no longer carry hidden
8830 field _controller, the special mechanism to retrieve its location is no
8831 longer needed.
8832 (Needs_Finalization): New routine.
8833 * atree.ads, atree.adb (Elist24): New routine.
8834 (Set_Elist24): New routine.
8835 * atree.h: Add a define clause for Elist24.
8836 * bindgen.adb New library-level variable Lib_Final_Built.
8837 (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
8838 presence of a VM target, the routine generates calls to the proper
8839 library finalization routine.
8840 (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
8841 targets. Set the correct library finalization routine depending on
8842 whether the library has controlled objects or this is a VM compilation.
8843 (Gen_Finalize_Library_Ada): New routine. This procedure generates calls
8844 to library-level finalizers of compiled units in reverse order of
8845 elaboration. It also produces exception management code and reraises a
8846 potential exception after all units have been finalized.
8847 (Gen_Finalize_Library_C): New routine. This procedure generates calls to
8848 library-level finalizers of compiled units in reverse order of
8849 elaboration.
8850 (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
8851 definitions of all library-level finalizers available to the compilation
8852 (Gen_Main_Ada): Directly call Adafinal which now contails all target
8853 dependent code.
8854 (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
8855 System.Standard_Library.Adafinal directly. If the library needs
8856 finalization actions, create the sequence of finalization calls.
8857 (Gen_Output_File_Ada): Alphabetize local variables and constants.
8858 Generate a with clause for System.Soft_Links when compiling for a VM.
8859 Remove the code which imports System.Standard_Library.Adafinal as
8860 Do_Finalize. Generate the library finalization routine.
8861 (Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
8862 If the library needs finalization actions, create all the definitions
8863 of library- level finalizers.
8864 (Has_Finalizer): New routine. Determines whether at least one compiled
8865 unit has a library-level finalizer.
8866 Add type Qualification_Mode.
8867 (Set_Unit_Name): Add a formal which controls the replacement of a dot.
8868 * einfo.adb: New usage of field 15 as Return_Flag.
8869 Remove Finalization_Chain_Entity from the usages of field 19.
8870 Remove Associated_Final_Chain from the usages of field 23.
8871 New usage of field 23 as Associated_Collection.
8872 New usage of field 24 as Finalizer.
8873 New usage of flag 252 as Is_Processed_Transient.
8874 (Associated_Final_Chain): Removed.
8875 (Associated_Collection): New routine.
8876 (Finalization_Chain_Entity): Removed.
8877 (Finalizer): New routine.
8878 (Is_Finalizer): New routine.
8879 (Is_Processed_Transient): New routine.
8880 (Return_Flag): New routine.
8881 (Set_Associated_Final_Chain): Removed.
8882 (Set_Associated_Collection): New routine.
8883 (Set_Finalization_Chain_Entity): Removed.
8884 (Set_Finalizer): New routine.
8885 (Set_Is_Processed_Transient): New routine.
8886 (Set_Return_Flag): New routine.
8887 (Write_Entity_Flags): Include Is_Processed_Transient to the list of
8888 displayed flags.
8889 (Write_Field8_Name): Alphabetize the output.
8890 (Write_Field11_Name): Alphabetize the output.
8891 (Write_Field12_Name): Alphabetize the output.
8892 (Write_Field13_Name): Alphabetize the output.
8893 (Write_Field14_Name): Alphabetize the output.
8894 (Write_Field15_Name): Alphabetize the output.
8895 (Write_Field16_Name): Alphabetize the output.
8896 (Write_Field17_Name): Alphabetize the output.
8897 (Write_Field18_Name): Alphabetize the output.
8898 (Write_Field19_Name): Alphabetize the output. Remove the output of
8899 Finalization_Chain_Entity.
8900 (Write_Field20_Name): Alphabetize the output.
8901 (Write_Field21_Name): Alphabetize the output.
8902 (Write_Field22_Name): Alphabetize the output.
8903 (Write_Field23_Name): Alphabetize the output. Remove the output of
8904 Associated_Final_Chain. Add output for Associated_Collection.
8905 (Write_Field24_Name): Alphabetize the output.
8906 (Write_Field25_Name): Add output for Finalizer.
8907 (Write_Field26_Name): Alphabetize the output.
8908 (Write_Field27_Name): Alphabetize the output.
8909 (Write_Field28_Name): Alphabetize the output.
8910 * einfo.ads: Add new field description for Associated_Collection and
8911 its uses in nodes.
8912 Remove Associated_Final_Chain and its uses in nodes.
8913 Remove Finalization_Chain_Entity and its uses in nodes.
8914 Add new field description for Finalizer and its uses in nodes.
8915 Add new synthesized attribute Is_Finalizer.
8916 Add new flag description for Is_Processed_Transient and its uses in
8917 nodes.
8918 Add new field description for Return_Flag and its uses in nodes.
8919 (Associated_Final_Chain): Removed along with its pragma Inline.
8920 (Associated_Collection): New routine and pragma Inline.
8921 (Finalization_Chain_Entity): Removed along with its pragma Inline.
8922 (Finalizer): New routine and pragma Inline.
8923 (Is_Finalizer): New routine and pragma Inline.
8924 (Is_Processed_Transient): New routine and pragma Inline.
8925 (Return_Flag): New routine and pragma Inline.
8926 (Set_Associated_Final_Chain): Removed along with its pragma Inline.
8927 (Set_Associated_Collection): New routine and pragma Inline.
8928 (Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
8929 (Set_Finalizer): New routine and pragma Inline.
8930 (Set_Is_Processed_Transient): New routine and pragma Inline.
8931 (Set_Return_Flag): New routine and pragma Inline.
8932 * exp_aggr.adb: Alphabetize subprograms.
8933 (Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
8934 (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
8935 associated comments. Remove local variables External_Final_List and
8936 Attach.
8937 Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
8938 Ancestor. Remove the retrieval of finalization lists. Update the call to
8939 Make_Adjust_Call.
8940 (Convert_Aggr_In_Allocator): Remove the retrieval of finalization
8941 lists. Update the call to Late_Expansion.
8942 (Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
8943 (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
8944 (Gen_Assign): Remove the retrieval of the finalization list used to
8945 build the assignment. Update the calls to Make_Init_Call and
8946 Make_Adjust_Call.
8947 (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
8948 Remove the mechanism to determine attachment levels and finalization
8949 list retrieval. Remove the processing for coextensions.
8950 (Init_Controller): Removed. Controllers no longer exist.
8951 (Late_Expansion): Remove formals Flist and Obj along with their
8952 associated comments. Update the calls to Build_Record_Aggr_Code and
8953 Build_Array_Aggr_Code.
8954 * exp_ch13.adb (Expand_N_Free_Statement): New routine.
8955 (Expand_N_Freeze_Entity): Add special processing for finalizers which
8956 appear in entry bodies, protected subprograms and task bodies.
8957 * exp_ch13.ads (Expand_N_Free_Statement): New routine.
8958 * exp_ch3.adb (Add_Final_Chain): Removed.
8959 (Build_Array_Init_Proc): Alphabetize local variables.
8960 (Build_Assignment): Alphabetize local variables. Update the call to
8961 Maked_Adjust_Call.
8962 (Build_Class_Wide_Master): Rename local variables to better reflect
8963 their role.
8964 (Build_Discriminant_Assignments): Code reformatting.
8965 (Build_Init_Call_Thru): Code reformatting.
8966 (Build_Init_Procedure): Code reformatting. Generate a special version
8967 of Deep_Finalize which is capable of finalizing all initialized
8968 components and ignore the rest.
8969 (Build_Init_Statements): Rename local variables to better reflect their
8970 role.
8971 Reimplement the mechanism to include the creation and update of an index
8972 variable called a "counter". It is used as a bookmark for tracing
8973 initialized and non-initialized components.
8974 (Build_Initialization_Call): Remove local variable Controller_Typ.
8975 Alphabetize all local variables. Remove the initialization of the
8976 record controller and update the call to Make_Init_Call.
8977 (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
8978 New local variable Counter.
8979 (Constrain_Array): Alphabetize.
8980 (Expand_Freeze_Array_Type): Create a collection instead of a
8981 finalization list.
8982 (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
8983 Finalize_Address which is used in conjunction with allocated controlled
8984 objects.
8985 (Expand_N_Object_Declaration): Remove the creation of a finalization
8986 list for anonymous access types. Update the calls to Make_Init_Call and
8987 Make_Adjust_Call.
8988 (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
8989 retrieval of finalization lists. Remove the expansion of the record
8990 controller. Create TSS primitive Finalize_Address used in conjunction
8991 with controlled objects on the heap. Create finalization collections
8992 for access-to-controlled record components.
8993 (Expand_Record_Controller): Removed.
8994 (Freeze_Type): Remove the freezing of record controllers. Freezing of
8995 class-wide types now requires additional processing. Create
8996 finalization collections for access-to-controlled types.
8997 (Increment_Counter): New routine.
8998 (Make_Counter): New routine.
8999 (Make_Eq_If): Remove the mention of Name_uController.
9000 (Make_Predefined_Primitive_Specs): There is no longer need to skip
9001 types coming from System.Finalization_Root.
9002 (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
9003 (Predefined_Primitive_Bodies): There is no longer need to skip types
9004 coming from System.Finalization_Root.
9005 (Stream_Operation_OK): Do not generate stream routines for
9006 type Ada.Finalization.Heap_Management.Finalization_Collection.
9007 * exp_ch3.ads: Alphabetize subprograms.
9008 * exp_ch4.adb: Remove with and use clause for Sem_Ch8.
9009 Add with and use clause for Lib.
9010 (Complete_Coextension_Finalization): Removed.
9011 (Complete_Controlled_Allocation): New routine. Create a finalization
9012 collection for anonymous access-to-controlled types. Create a custom
9013 Allocate which interfaces with the back end and the machinery in
9014 Heap_Management.
9015 (Expand_Allocator_Expression): Add necessary calls to
9016 Complete_Controlled_Allocation. Remove the retrieval of finalization
9017 lists. Update the calls to Make_Adjust_Call. Generate a call to
9018 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
9019 the associated collection.
9020 (Expand_N_Allocator): Remove the processing for dynamic coextensions.
9021 Code clean up. Remove the retrieval of finalization lists and
9022 attachment levels.
9023 Update the call to Make_Init_Call. Generate a call to
9024 Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
9025 the associated collection.
9026 (Get_Allocator_Final_List): Removed. Finalization lists are not
9027 available.
9028 (Suitable_Element): Remove the mention of Name_uController.
9029 * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
9030 (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
9031 the left hand side, carry out the assignment and adjust the left hand
9032 side.
9033 * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
9034 (Add_Collection_Actual_To_Build_In_Place_Call): New routine.
9035 (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
9036 BIP_Collection and BIPcollection.
9037 (Build_Heap_Allocator): New routine used to allocate the return object
9038 of a build-in-place function onto a collection.
9039 (Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
9040 (Expand_Call): Do not replace direct calls to Deep routines with their
9041 aliases.
9042 (Expand_N_Extended_Return_Statement): Give all variables shorter names
9043 and update their occurrences. Add a special return flag to monitor the
9044 [ab]normal execution of the function. The flag is set right before the
9045 return statement.
9046 Rewrite the mechanism used to allocate a build-in-place return object
9047 on the heap or on a storage pool.
9048 (Is_Direct_Deep_Call): New routine.
9049 (Make_Build_In_Place_Call_In_Allocator): Add a collection to a
9050 build-in-place function call instead of a final list. Build a call to
9051 Set_Finalize_Address_Ptr to decorate the associated collection.
9052 (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
9053 order to name the build-in-place function call's result for later
9054 finalization. Add a collection to a build-in-place function call
9055 instead of a final list.
9056 (Make_Build_In_Place_Call_In_Assignment): Add a collection to a
9057 build-in-place function call instead of a final list. Remove the code
9058 which moves one final list and transforms it into the actual in a
9059 nested build-in-place call.
9060 (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
9061 build-in-place function call instead of a final list.
9062 (Move_Final_List): Removed.
9063 (Needs_BIP_Collection): New routine.
9064 (Needs_BIP_Final_List): Removed.
9065 * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
9066 enumeration type BIP_Formal_Kind.
9067 Update the related comment.
9068 (Needs_BIP_Collection): New routine.
9069 (Needs_BIP_Final_List): Removed.
9070 * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
9071 and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
9072 majority of subprograms in this unit. Add Name_Finalize_Address to
9073 array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
9074 (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
9075 statements for an array type.
9076 (Build_Adjust_Statements): Create the adjust statements for a record
9077 type.
9078 (Build_Cleanup_Statements): New routine. A procedure which given any
9079 construct containing asynchronous calls, references to _master, or is a
9080 task body, a task allocation or a protected body produces the necessary
9081 runtime calls to clean up these constructs.
9082 (Build_Exception_Handler): New routine.
9083 (Build_Final_List): Removed.
9084 (Build_Finalization_Collection): New routine. A core procedure which
9085 creates a collection to service heap allocated controlled objects
9086 associated with an access-to-controlled type.
9087 (Build_Finalize_Statements): Create the finalization statements for a
9088 record types.
9089 (Build_Finalizer): New routine. A core procedure which given any
9090 construct with declarations and/or statements detects all objects which
9091 need any type of clean up (controlled objects, protected objects) and
9092 generates all necessary code to clean up the said objects in the proper
9093 order.
9094 (Build_Finalizer_Call): New routine.
9095 (Build_Initialize_Statements): Create the initialization statements for
9096 an array type. The generated routine contains code to finalize partially
9097 initialized arrays.
9098 (Build_Object_Declarations): New routine.
9099 (Build_Raise_Statement): New routine.
9100 (Clean_Simple_Protected_Objects): Removed.
9101 (Controller_Component): Removed.
9102 (Enclosing_Function): New routine.
9103 (Expand_Cleanup_Actions): Create a finalizer for a construct which has
9104 either declarations or statements or both.
9105 (Expand_N_Package_Body): Create a finalizer for a non-generic package.
9106 (Expand_N_Package_Declaration): Create a finalizer for a non-generic
9107 package.
9108 (Find_Final_List): Removed.
9109 (Global_Flist_Ref): Removed.
9110 (In_Finalization_Root): Removed.
9111 (Insert_Actions_In_Scope_Around): Determine the range of the transient
9112 scope in terms of tree nodes. Process all transient variables within
9113 that range.
9114 (Make_Adjust_Call): Rewritten. There is no longer an attach call
9115 generated after the adjust.
9116 (Make_Attach_Call): Removed.
9117 (Make_Call): New routine.
9118 (Make_Clean): Removed.
9119 (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
9120 build routines.
9121 (Make_Deep_Proc): Rewritten to generate the new profile signature used
9122 in Deep routines.
9123 (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
9124 build routines.
9125 (Make_Final_Call): Modified to simply create a call to either
9126 Deep_Finalize or Finalize.
9127 (Make_Finalize_Address_Body): New routine.
9128 (Make_Finalize_Address_Stmts): New routine. A function which produces
9129 TSS primitive Finalize_Address used in conjunction with heap allocated
9130 controlled objects.
9131 (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
9132 (Make_Init_Call): Rewritten. There is no longer an attach call
9133 generated after initialization.
9134 (Make_Local_Deep_Finalize): New routine.
9135 (Make_Set_Finalize_Address_Ptr_Call): New routine.
9136 (Make_Transient_Block): Remove the finalization list retrieval and
9137 manipulation.
9138 (Needs_Finalization): Moved to Exp_Util.
9139 (Parent_Field_Type): New routine.
9140 (Preprocess_Components): New routine.
9141 (Process_Transient_Objects): New routine.
9142 (Wrap_HSS_In_Block): New routine.
9143 (Wrap_Transient_Declaration): Remove finalization list management and
9144 controller insertion.
9145 (Wrap_Transient_Expression): Code reformatting.
9146 (Wrap_Transient_Statement): Code reformatting.
9147 * exp_ch7.ads (Build_Final_List): Removed.
9148 (Build_Finalization_Collection): New routine.
9149 (Build_Raise_Statement): New routine.
9150 (Controller_Component): Removed.
9151 (Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
9152 (Find_Final_List): Removed.
9153 (In_Finalization_Root): Removed.
9154 (Is_Simple_Protected_Type): Update related comment.
9155 (Make_Adjust_Call): New parameter profile and associated comments.
9156 (Make_Attach_Call): Removed.
9157 (Make_Final_Call): New parameter profile and associated comments.
9158 (Make_Finalize_Address_Body): New routine.
9159 (Make_Init_Call): New parameter profile and associated comments.
9160 (Make_Local_Deep_Finalize): New routine.
9161 (Make_Set_Finalize_Address_Ptr_Call): New routine.
9162 (Needs_Finalization): Moved to Exp_Util.
9163 * exp_ch9.adb (Add_Object_Pointer): Code reformatting.
9164 (Expand_N_Protected_Body): Remove the handling of finalization lists.
9165 (Find_Protection_Type): Moved to Exp_Util.
9166 * exp_disp.adb: Remove with and use clauses for Exp_Ch7.
9167 (Make_DT): Update sequence of dispatch table initialization. Remove the
9168 initialization of field RC_Offset. Add initialization of field Needs_
9169 Finalization.
9170 * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
9171 Reimplement how an object is first finalized, then deallocated.
9172 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
9173 Code reformatting.
9174 * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
9175 Register TSS_Finalize_Address with type TSS_Names.
9176 * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
9177 procedure provides the interface between an allocation / deallocation
9178 and the support machinery in Ada.Finalization.Heap_Management.
9179 (Find_Init_Call): Code reformatting.
9180 (Find_Init_Call_In_List): Code reformatting.
9181 (Find_Protection_Type): Moved from Exp_Ch9.
9182 (Find_Prim_Op): Reimplement to add preference of recovered primitive.
9183 (Has_Controlled_Coextensions): Removed.
9184 (Has_Controlled_Objects): New routine.
9185 (In_Library_Level_Package_Body): New routine.
9186 (Insert_Action_After): New routine.
9187 (Is_Finalizable_Transient): New routine. This predicate determines
9188 whether an object declaration is one of the many variants of controlled
9189 transients.
9190 (Is_Null_Access_BIP_Func_Call): New routine.
9191 (Is_Non_BIP_Func_Call): New routine.
9192 (Is_Related_To_Func_Return): New routine.
9193 (Needs_Finalization): Moved from Exp_Ch7.
9194 * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
9195 (Find_Protection_Type): Moved from Exp_Ch9.
9196 (Has_Controlled_Coextensions): Removed.
9197 (Has_Controlled_Objects): New routine.
9198 (In_Library_Level_Package_Body): New routine.
9199 (Insert_Action_After): New routine.
9200 (Is_Finalizable_Transient): New routine.
9201 (Is_Null_Access_BIP_Func_Call): New routine.
9202 (Is_Non_BIP_Func_Call): New routine.
9203 (Is_Related_To_Func_Return): New routine.
9204 (Needs_Finalization): Moved from Exp_ch7.
9205 * expander.adb (Expand): Add a case for N_Free_Statement.
9206 * freeze.adb (Freeze_All): Replace the generation of a finalization
9207 list with a collection for access-to-controlled types.
9208 (Freeze_Entity): Code reformatting.
9209 (Freeze_Record_Type): Remove the freezing of a record controller
9210 component.
9211 (Freeze_Subprogram): Code reformatting.
9212 * inline.adb (Cleanup_Scopes): Remove the reset of the scope
9213 finalization list.
9214 * lib-writ.adb (Write_Unit_Information): Output "PF" when a package
9215 has a library-level finalizer.
9216 * lib-writ.ads: Add "PF" to the sequence of unit attributes.
9217 * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
9218 * Makefile.rtl: Remove a-filico and s-finimp from the list of object
9219 files. Add a-fihema to the list of object files.
9220 * par-ch4.adb:
9221 Alphabetize the associations in type Is_Parameterless_Attribute.
9222 * rtsfind.ads: Ada.Finalization_List.Controller and
9223 System.Finalization_Implementation are no longer a GNAT unit.
9224 Update the range of type Ada_Finalization_Child. Remove the following
9225 recoverable entities:
2c7f9cc0 9226
df3e68b1
HK
9227 RE_Attach_To_Final_List
9228 RE_Deep_Tag_Attach
9229 RE_Finalize_List
9230 RE_Finalize_One
9231 RE_Finalizable_Ptr_Ptr
9232 RE_Global_Final_List
9233 RE_Limited_Record_Controller
9234 RE_List_Controller
9235 RE_Move_Final_List
9236 RE_Record_Controller
9237 RE_Simple_List_Controller
2c7f9cc0 9238
df3e68b1 9239 Add the following recoverable entities:
2c7f9cc0 9240
df3e68b1
HK
9241 RE_Add_Offset_To_Address
9242 RE_Allocate
9243 RE_Base_Pool
9244 RE_Deallocate
9245 RE_Exception_Identity
9246 RE_Finalization_Collection
9247 RE_Finalization_Collection_Ptr
9248 RE_Needs_Finalization
9249 RE_Save_Library_Occurrence
9250 RE_Set_Finalize_Address_Ptr
9251 RE_Set_Storage_Pool_Ptr
9252 RE_Storage_Count
9253 * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
9254 Name_uController.
9255 * sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
9256 (First_Stored_Discriminant): Remove the mention of Name_uController.
9257 * sem_aux.ads: Comment reformatting.
9258 * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
9259 to redecorate an already existing class-wide type.
9260 (Decorate_Tagged_Type): New parameter profile and associated comment.
9261 Create a "shadow class-wide type" for a shadow entity.
9262 * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
9263 of the final chain along with the associated comment.
9264 * sem_ch3.adb (Access_Type_Declaration): Add new local variable
9265 Full_Desig and set it to the full view of the designated type.
9266 Initialize the finalization collection to empty.
9267 (Build_Derived_Record_Type): Alphabetize local variables. Code
9268 reformatting.
9269 (Collect_Fixed_Components): Remove the mention of Name_uController.
9270 (Create_Constrained_Components): Remove the mention of Name_uController.
9271 (Make_Class_Wide_Type): Add specialized code to redecorate an existing
9272 class-wide type of a shadow entity.
9273 (Process_Full_View): Update the machinery which marks type
9274 Limited_Controlled's entity as limited.
9275 * sem_ch4.adb (Analyze_One_Call): Code reformatting.
9276 * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
9277 list, instead make a collection build-in-place formal.
9278 * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
9279 a designated type in order to establish a match between the renaming
9280 and the renamed entity.
9281 (Find_Selected_Component): Add guard to prevent spurious exceptions
9282 from being raised on .NET/JVM.
9283 * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
9284 to the list of primitive that need special processing. Update arrays
9285 C_Names and D_Names.
9286 (Replace_Types): Handle class-wide types.
9287 * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
9288 different parameter profile, look at the first formal.
9289 * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
9290 use clauses for Exp_Util.
9291 * sem_res.adb: Remove with and use clauses for Elists.
9292 (Propagate_Coextensions): Removed.
9293 (Resolve_Allocator): Do not propagate the list of coextensions from one
9294 allocator to another.
9295 * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
9296 Deaccessed_T to Desig_Typ.
9297 (Enter_Name): Remove the mention of Name_uController.
9298 (Gather_Components): Remove the mention of Name_uController.
9299 (Incomplete_Or_Private_View): New routine.
9300 (Is_Coextension_Root): Removed.
9301 (Is_Fully_Initialized_Type): Remove the mention of Name_uController.
9302 * sem_util.ads (Incomplete_Or_Private_View): New routine.
9303 (Is_Coextension_Root): Removed.
9304 * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
9305 Controlled types are now derived from a null tagged record. Remove
9306 types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
9307 * sinfo.adb (Coextensions): Removed.
9308 (Set_Coextensions): Removed.
9309 * sinfo.ads: Remove Coextensions from the explanation of node fields
9310 and its uses in nodes.
9311 Update the field usage of N_Allocator.
9312 (Coextensions): Removed along with its pragma Inline.
9313 (Set_Coextensions): Removed along with its pragma Inline.
9314 * snames.ads-tmpl: Remove names
2c7f9cc0 9315
df3e68b1
HK
9316 Name_uClean
9317 Name_uController
9318 Name_uFinal_List
9319 Name_uLocal_Final_List
9320 Name_Finalization_Root
9321 Name_Next
9322 Name_Prev
2c7f9cc0 9323
df3e68b1 9324 Add names
2c7f9cc0 9325
df3e68b1
HK
9326 Name_uFinalizer
9327 Name_Finalize_Address
9328 * s-pooglo.adb (Allocate): Add overriding indicator.
9329 (Deallocate): Add overriding indicator.
9330 (Storage_Size): Add overriding indicator.
9331 * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
9332 than Finalize_Global_List.
9333 (Null_Finalize_Global_List): Removed.
9334 (Save_Library_Occurrence): New routine.
9335 * s-soflin.ads: Remove variable Finalize_Global_List along with its
9336 initialization. Add variable Finalize_Library_Objects along with its
9337 pragma Export. Add variables Library_Exception and
9338 Library_Exception_Set along with their pragma Export.
9339 (Null_Finalize_Global_List): Removed.
9340 (Save_Library_Occurrence): New routine.
9341 * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
9342 rather than Finalize_Global_List.
9343 * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
9344 of the constructed node.
9345
2ee06322
RO
93462011-08-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9347
9348 * link.c: Include "auto-host.h" before system headers.
9349
f77b022b
VC
93502011-08-03 Vincent Celier <celier@adacore.com>
9351
9352 * make.adb (Gnatmake): Add to table Library_Projs only library projects
9353 that are not extended. Do not check if a library project that is
9354 extended should be regenerated. Do not add to table Library_Paths the
9355 libraries that are in extended projects. Link only with libraries that
9356 are in libray projects that are not extended.
9357 * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
9358 for a library project that is extended.
9359
0187b60e
AC
93602011-08-03 Gary Dismukes <dismukes@adacore.com>
9361
9362 * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
9363 conforming subprogram renamings that appear to be completions if they
9364 are not fully conformant.
9365 Such renamings are homographs but not completions.
9366 * sem_type.adb (Disambiguate): Handle disambiguation of overloaded
9367 names in a subprogram renaming that appears in an instance.
9368
93692011-08-03 Ed Schonberg <schonberg@adacore.com>
9370
9371 * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
9372 not immutably limited, build actual subtype from expression to provide
9373 proper bounds to caller.
9374
93752011-08-03 Gary Dismukes <dismukes@adacore.com>
9376
9377 * sem_ch8.adb: Minor comment correction.
9378
93792011-08-03 Thomas Quinot <quinot@adacore.com>
9380
9381 * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
9382 returning a limited array, use an extended return statement.
9383
93842011-08-03 Vincent Celier <celier@adacore.com>
9385
9386 * make.adb (Initialize): If --subdirs= is used, but no project file is
9387 specified, attempt to create the specify subdir if it does not already
9388 exist and use it as the object directory as if -D had been specified.
9389
93902011-08-03 Arnaud Charlet <charlet@adacore.com>
9391
9392 * s-tpopsp-vms.adb: New file.
9393 * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
9394 * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.
9395
e280f981
AC
93962011-08-03 Emmanuel Briot <briot@adacore.com>
9397
9398 * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
9399 package.
9400
94012011-08-03 Yannick Moy <moy@adacore.com>
9402
9403 * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
9404 * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
9405 * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
9406 detect that an array has static bounds.
9407
98c99a5a
AC
94082011-08-03 Thomas Quinot <quinot@adacore.com>
9409
9410 * exp_dist.adb: Minor reformatting.
9411
94122011-08-03 Arnaud Charlet <charlet@adacore.com>
9413
9414 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
9415 (ATCB_Key): Removed, not always used.
9416
94172011-08-03 Emmanuel Briot <briot@adacore.com>
9418
9419 * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
9420 clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
9421 most remaining global variables.
9422
686d0984
AC
94232011-08-03 Robert Dewar <dewar@adacore.com>
9424
9425 * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
9426 prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
9427 reformatting.
9428
94292011-08-03 Javier Miranda <miranda@adacore.com>
9430
9431 * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
9432 that must be passed by copy in VM targets.
9433
94342011-08-03 Emmanuel Briot <briot@adacore.com>
9435
9436 * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
9437 duplicates a similar htable now in the project tree.
9438
94392011-08-03 Claire Dross <dross@adacore.com>
9440
9441 * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
9442 a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
9443 Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
9444 Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
9445 Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
9446 Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
9447 Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
9448 update.
9449
94502011-08-03 Arnaud Charlet <charlet@adacore.com>
9451
9452 * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
9453 (ATCB_Key): Removed, not always used.
9454 * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
9455 s-taprop-posix.adb.
9456 * s-tpopsp-tls.adb: New file.
9457 * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
9458 x86/x64/ia64/powerpc/sparc Linux.
9459
94602011-08-03 Arnaud Charlet <charlet@adacore.com>
9461
9462 * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
9463 * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.
9464
94652011-08-03 Thomas Quinot <quinot@adacore.com>
9466
9467 * rtsfind.ads, exp_dist.adb, exp_dist.ads
9468 (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
9469 Fix type selection for mapping integer types to PolyORB types.
9470
94712011-08-03 Bob Duff <duff@adacore.com>
9472
9473 * sem_ch7.adb: Minor comment clarification.
9474
94752011-08-03 Bob Duff <duff@adacore.com>
9476
9477 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
9478 an error analyzing a choice, skip further processing. Further
9479 processing could cause a crash or cascade errors.
9480
40ecf2f5
EB
94812011-08-03 Emmanuel Briot <briot@adacore.com>
9482
9483 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
9484 prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
9485 prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
9486 prj-env.ads (Shared_Project_Tree_Data): new type
9487 An aggregate project and its aggregated trees need to share the common
9488 data structures used for lists of strings, packages,... This makes the
9489 code simpler since otherwise we have to pass the root tree (also used
9490 for the configuration file data) in addition to the current project
9491 tree. This also avoids ambiguities as to which tree should be used.
9492 And finally this saves a bit of memory.
9493 (For_Every_Project_Imported): new parameter Tree.
9494 Since aggregated projects are using a different tree, we need to let
9495 the caller know which tree to use to manipulate the returned project.
9496
9fde638d
RD
94972011-08-03 Robert Dewar <dewar@adacore.com>
9498
9499 * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
9500 prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
9501 lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
9502 prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.
9503
95eb8b69
AC
95042011-08-03 Javier Miranda <miranda@adacore.com>
9505
9506 * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
9507 Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.
9508
95092011-08-03 Bob Duff <duff@adacore.com>
9510
9511 * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
9512 the Base_Type.
9513
95142011-08-03 Joel Brobecker <brobecker@adacore.com brobecker>
9515
9516 * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
9517 g-sehash.ads: Fix typo. Update header.
9518
95192011-08-03 Thomas Quinot <quinot@adacore.com>
9520
9521 * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
9522 expansion.
9523
95242011-08-03 Gary Dismukes <dismukes@adacore.com>
9525
9526 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
9527 prefixes of private types along with records, since the selector may be
9528 a discriminant.
9529 * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
9530 private types along with records, since the selector may be a
9531 discriminant.
9532
92e77027
AC
95332011-08-03 Emmanuel Briot <briot@adacore.com>
9534
b2f7ebc1 9535 * prj-pp.adb (Pretty_Print): Remove trailing blank line.
92e77027
AC
9536
95372011-08-03 Javier Miranda <miranda@adacore.com>
9538
9539 * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
9540 Tagged_Type_Expansion.
9541
95422011-08-03 Yannick Moy <moy@adacore.com>
9543
b2f7ebc1
GP
9544 * sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARK
9545 violation when the argument of concatenation is the name of a
9546 constant.
92e77027 9547
ab29a348
EB
95482011-08-03 Emmanuel Briot <briot@adacore.com>
9549
9550 * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
9551 prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
9552 (Process_Declarative_Items): new parameter Child_Env.
9553
9466892f
AC
95542011-08-03 Yannick Moy <moy@adacore.com>
9555
589ef536
GP
9556 * alfa.ads: Update format of ALFA section in ALI file in order to
9557 add a mapping from bodies to specs when both are present.
9558 (ALFA_Scope_Record): Add components for spec file/scope.
9559 * get_alfa.adb (Get_ALFA): Read the new file/scope for spec when
9560 present.
9561 * lib-xref-alfa.adb (Collect_ALFA): After all scopes have been
9562 collected, fill in the spec information when relevant.
9563 * put_alfa.adb (Put_ALFA): Write the new file/scope for spec when
9466892f
AC
9564 present.
9565
95662011-08-03 Eric Botcazou <ebotcazou@adacore.com>
9567
9568 * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
9569 code unit to decide whether to add internally generated subprograms.
2c7f9cc0 9570
9466892f
AC
95712011-08-03 Javier Miranda <miranda@adacore.com>
9572
9573 * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
589ef536
GP
9574 * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must
9575 be handled by copy in VM targets.
9466892f
AC
9576
95772011-08-03 Emmanuel Briot <briot@adacore.com>
9578
589ef536 9579 * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Share
9466892f
AC
9580 code with Makeutl.Get_Switches.
9581 * prj-tree.adb: Update comment.
9582
b5ea9143
AC
95832011-08-03 Thomas Quinot <quinot@adacore.com>
9584
9585 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
9586 subprogram with a limited formal that does not support external
9587 streaming.
9588
95892011-08-03 Yannick Moy <moy@adacore.com>
9590
9591 * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
9592 continuation line
9593 * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
9594 not from current unit in two phases, because it is not possible to
9595 change the table while iterating over its content.
9596 * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity
9597
95982011-08-03 Sergey Rybin <rybin@adacore.com>
9599
9600 * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
9601 * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)
9602
668a19bc
ES
96032011-08-03 Ed Schonberg <schonberg@adacore.com>
9604
9605 * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
9606 and the component type is composite, this is ambiguous for predefined
9607 concatenation, but if the node is not overloaded and the entity is a use
9608 -defined function its profile can be used to resolve that aggregate.
9609
170b2989
AC
96102011-08-03 Robert Dewar <dewar@adacore.com>
9611
9612 * exp_ch4.adb: Minor code cleanup.
9613
96142011-08-03 Thomas Quinot <quinot@adacore.com>
9615
9616 * exp_dist.adb: Do not generate distribution stubs if serious errors
9617 have been diagnosed.
9618
96192011-08-03 Ed Schonberg <schonberg@adacore.com>
9620
9621 * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
9622 the first formal of a primitive operation, go to the base type to
9623 handle properly an access to a derived type with constrained
9624 discriminants.
9625 * sem_type.adb (Disambiguate): an immediately visible operator hides a
9626 user-defined function that is only use-visible.
170b2989 9627
e917aec2
RD
96282011-08-03 Robert Dewar <dewar@adacore.com>
9629
9630 * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
9631 make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
9632 fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
9633 prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
9634 sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
9635 prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
9636 prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
9637 alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting
9638
96392011-08-03 Robert Dewar <dewar@adacore.com>
9640
9641 * repinfo.adb (List_Mechanism): Add handling of
9642 Convention_Ada_Pass_By_XXX.
9643 * sem_mech.adb (Set_Mechanism): Ditto.
9644 * sem_prag.adb (Process_Convention): Add entries for
9645 Convention_Ada_Pass_By_XXX.
9646 * snames.adb-tmpl, snames.ads-tmpl: Ditto.
9647
49bfcf43
AC
96482011-08-03 Pascal Obry <obry@adacore.com>
9649
9650 * makeutl.adb: Minor reformatting.
9651
96522011-08-03 Vincent Celier <celier@adacore.com>
9653
9654 * fname-uf.adb
9655 (Get_File_Name) If the file cannot be found when there are no config
9656 pragmas file and May_Fail is True, return No_File instead of the file
9657 name, to be consistent.
9658
96592011-08-03 Pascal Obry <obry@adacore.com>
9660
9661 * adaint.c (__gnat_is_executable_file_attr): Avoid access
9662 to null pointer.
9663
96642011-08-03 Javier Miranda <miranda@adacore.com>
9665
9666 * sem_ch13.adb
9667 (Same_Representation): In VM targets the representation of arrays with
9668 aliased components differs from arrays with non-aliased components.
9669
34798441
EB
96702011-08-03 Emmanuel Briot <briot@adacore.com>
9671
9672 * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
9673 not systematically lower case attribute indexes that contain no "."
9674 Fix definition of several Naming attributes, which take
9675 a unit name as index and therefore should be case insensitive.
9676 Minor refactoring (reduce length of variable names).
9677
96782011-08-03 Emmanuel Briot <briot@adacore.com>
9679
9680 * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.
9681
4437a530
EB
96822011-08-03 Emmanuel Briot <briot@adacore.com>
9683
9684 * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
9685 prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
9686 prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
9687 prj-tree.ads (Prj.Tree.Environment): new type.
9688
804fe3c4
EB
96892011-08-03 Emmanuel Briot <briot@adacore.com>
9690
9691 * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
9692 prj-tree.adb, prj-tree.ads (Environment): new type.
9693
c565bc66
AC
96942011-08-03 Emmanuel Briot <briot@adacore.com>
9695
9696 * prj-tree.ads: Remove unused variable.
9697
96982011-08-03 Yannick Moy <moy@adacore.com>
9699
9700 * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
9701 issuing messages related to SPARK restriction violation.
9702
4ee646da
AC
97032011-08-03 Ed Schonberg <schonberg@adacore.com>
9704
9705 * sem_ch6.adb: guard against error nodes in return statements.
9706
97072011-08-03 Arnaud Charlet <charlet@adacore.com>
9708
9709 * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
9710 a warning can only appear on a configuration file, so emit warning
9711 without further checks.
9712
97132011-08-03 Arnaud Charlet <charlet@adacore.com>
9714
9715 * s-interr.ads: add overriding keyword.
9716
97172011-08-03 Geert Bosch <bosch@adacore.com>
9718
9719 * exp_attr.adb: Fix minor typo.
9720
97212011-08-03 Ed Schonberg <schonberg@adacore.com>
9722
9723 * par-ch4.adb: improve error recovery.
9724
c0e538ad
AC
97252011-08-03 Emmanuel Briot <briot@adacore.com>
9726
9727 * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
9728 prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
9729 to Errout_Handling.
9730
97312011-08-03 Emmanuel Briot <briot@adacore.com>
9732
9733 * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
9734 "external" as an attribute name in aggregate projects.
9735
97362011-08-03 Jose Ruiz <ruiz@adacore.com>
9737
9738 * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
9739 uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
9740 from 0, so we need to adjust.
9741
97422011-08-03 Emmanuel Briot <briot@adacore.com>
9743
9744 * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
9745 prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.
9746
c4d67e2d
AC
97472011-08-03 Yannick Moy <moy@adacore.com>
9748
9749 * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
9750 restriction on overloaded entity if the entity is not an operator.
9751
97522011-08-03 Yannick Moy <moy@adacore.com>
9753
9754 * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
9755 restrict.ads: Rename remaining Check_Formal_Restriction* into
9756 Check_SPARK_Restriction*.
9757
97582011-08-03 Emmanuel Briot <briot@adacore.com>
9759
9760 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
9761 prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
9762 qualifier.
9763 (Project_Empty): removed
9764 (Empty_Project): new parameter Qualifier
9765 This is used to have fields specific to aggregate projects, cleaner
9766 New field to store the list of aggregated projects.
9767 (Check_Aggregate_Project): removed
9768 (Process_Aggregated_Projects, Free): new subprograms.
9769
3f5a8fee
AC
97702011-08-03 Olivier Hainque <hainque@adacore.com>
9771
9772 * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.
9773
97742011-08-03 Ed Schonberg <schonberg@adacore.com>
9775
9776 * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
9777 explicit dereference of an unconstrained type, create a constrained
9778 subtype for it, as is done for function calls that return an
9779 unconstrained type.
9780
97812011-08-03 Thomas Quinot <quinot@adacore.com>
9782
9783 * g-pehage.adb (Finalize): Avoid possible double-free.
9784
97852011-08-03 Steve Baird <baird@adacore.com>
9786
9787 * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
9788 Elab_Spec/Body attrs in CodePeer_Mode.
9789
97902011-08-03 Javier Miranda <miranda@adacore.com>
9791
9792 * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
9793 low bound is not known at compile time but they have no others choice.
9794 Done because in this case the bounds can be obtained directly from the
9795 aggregate.
9796
97972011-08-03 Ed Falis <falis@adacore.com>
9798
9799 * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
9800 on VxWorks SMP. Remove unusable constant ANY_CPU.
9801
a96ca600
EB
98022011-08-03 Emmanuel Briot <briot@adacore.com>
9803
9804 * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
9805 clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
9806 prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
9807 Prj.Env.Initialize_Empty): new subprograms
9808 (Get_Env, Find_Project): remove parameter Target_Name.
9809
3e582869
AC
98102011-08-03 Gary Dismukes <dismukes@adacore.com>
9811
9812 * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
9813 as a condition for the delayed call to Derived_Subprograms done for the
9814 case of the rewriting of a derived type that constrains the
9815 discriminants of its parent type.
9816 Avoids redundant subprogram derivations for private subtype derivations.
9817
98182011-08-03 Javier Miranda <miranda@adacore.com>
9819
9820 * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
9821 Build_Record_Aggr_Code.
9822 (Build_Record_Aggr_Code): Add missing support to initialize hidden
9823 discriminants in extension aggregates.
9824
98252011-08-03 Emmanuel Briot <briot@adacore.com>
9826
9827 * prj-pp.adb (Print): also output project qualifiers, since in
9828 particular "aggregate" is mandatory in an aggregate project.
9829
98302011-08-03 Emmanuel Briot <briot@adacore.com>
9831
9832 * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
9833 (Debug_Output): new function.
9834
56e94186
AC
98352011-08-03 Eric Botcazou <ebotcazou@adacore.com>
9836
9837 * gnat_ugn.texi: Document -Wstack-usage.
9838 * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.
9839
98402011-08-03 Thomas Quinot <quinot@adacore.com>
9841
9842 * sem_prag.adb Issue an error (not a warning) when a C++ type does not
9843 have keyword LIMITED.
9844
98452011-08-03 Yannick Moy <moy@adacore.com>
9846
9847 * alfa.adb, alfa.ads, alfa_test.adb: New files.
9848 * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
9849 (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
9850 section (does not happen in compiler, only if code directly calls
9851 Scan_ALI).
9852 * get_alfa.adb, get_alfa.ads: New files.
9853 * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
9854 needed.
9855 * lib-xref-alfa.adb: New file.
9856 * lib-xref.adb, lib-xref.ads
9857 (Xref_Entry): redefine information needed in cross-references for ALFA.
9858 Push ALFA treatments in separated local package.
9859 (Enclosing_Subpragram_Or_Package): treat specially subprogram
9860 identifiers. Return entity of package body instead of spec. Return
9861 Empty for a scope with no location.
9862 (Generate_Reference): adapt to new components for ALFA information.
9863 Remove the need for D references on definitions.
9864 (Is_Local_Reference): moved to ALFA local package
9865 (Output_References): extract subfunction as Extract_Source_Name
9866 (Output_Local_References): remove procedure, replaced by filtering of
9867 cross-references in package ALFA and printing in Put_ALFA.
9868 (Write_Entity_Name): remove procedure
9869 * lib.adb, lib.ads (Extract_Source_Name): extract here function to
9870 print exact name of entity as it appears in source file
9871 (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
9872 * put_alfa.adb, put_alfa.ads: New files.
9873 * xref_lib.adb (Search_Xref): protect read of cross-references against
9874 reading other sections of the ALI file, in gnatxref
9875 (Search): protect read of cross-references against reading other
9876 sections of the ALI file, in gnatfind.
9877 * gcc-interface/Make-lang.in: Update dependencies.
9878
98792011-08-03 Thomas Quinot <quinot@adacore.com>
9880
9881 * sem_ch3.adb: Minor reformatting.
9882
98832011-08-03 Jose Ruiz <ruiz@adacore.com>
9884
9885 * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
9886 raising an exception.
9887
98882011-08-03 Ed Schonberg <schonberg@adacore.com>
9889
9890 * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
9891 type, always use 1 as the lower bound or string, even if lower bound of
9892 context is not static, to handle properly null strings in a non-static
9893 context.
9894
98952011-08-03 Bob Duff <duff@adacore.com>
9896
9897 * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
9898 always legal on the right-hand side of an assignment statement; there
9899 is always an applicable index constraint in this case. Therefore, the
9900 check for Pkind = N_Assignment_Statement is now unconditional -- it
9901 doesn't depend on whether Is_Constrained (Typ).
9902
4317e442
AC
99032011-08-03 Robert Dewar <dewar@adacore.com>
9904
9905 * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.
9906
99072011-08-03 Ed Schonberg <schonberg@adacore.com>
9908
9909 * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
9910 for an itype created within a generic unit.
9911
99122011-08-03 Eric Botcazou <ebotcazou@adacore.com>
9913
9914 * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
9915 suppresses all inlining.
9916
53f29d4f
AC
99172011-08-03 Robert Dewar <dewar@adacore.com>
9918
9919 * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
9920 exp_aggr.adb: Minor reformatting.
9921
99222011-08-03 Thomas Quinot <quinot@adacore.com>
9923
9924 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
9925 tagged assignment when discriminant checks are suppressed. This is
9926 useless and extremely costly in terms of static stack usage.
9927
99282011-08-03 Bob Duff <duff@adacore.com>
9929
9930 * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
9931 of generics, because this leads to the wrong entity in the wrong scope,
9932 causing (e.g.) pragma Export_Procedure to get an error if the entity is
9933 an instance.
9934 (Process_Interface_Name): Follow Alias for instances of generics, to
9935 correct for the above change.
9936
99372011-08-03 Ed Schonberg <schonberg@adacore.com>
9938
9939 * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
9940 is an integer literal it is always safe to replace the reference. In
9941 addition, if the reference appears in the generated code for an object
9942 declaration it is necessary to copy because otherwise the reference
9943 might be to the uninitilized value of the discriminant of the object
9944 itself.
9945
99462011-08-03 Pascal Obry <obry@adacore.com>
9947
9948 * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
9949 ACL used, in this case we want to check for ending .exe, not .exe
9950 anywhere in the path.
9951
99522011-08-03 Sergey Rybin <rybin@adacore.com>
9953
9954 * tree_io.ads (ASIS_Version_Number): Update because of the changes in
9955 the tree structure (semantic decoration of references to record
9956 discriminants).
9957
c0b11850
AC
99582011-08-03 Gary Dismukes <dismukes@adacore.com>
9959
9960 * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
9961 choices of a named array aggregate, bail out when any choices are
9962 marked as Errors_Posted.
9963
99642011-08-03 Ed Schonberg <schonberg@adacore.com>
9965
9966 * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
9967 in which entity is frozen, to handle properly loop variables in
9968 iterators.
9969
99702011-08-03 Ed Schonberg <schonberg@adacore.com>
9971
9972 * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
9973 subtype is not static, compute the upper bound using attributes, to
9974 handle properly index types that are not integer types.
9975
99762011-08-03 Bob Duff <duff@adacore.com>
9977
9978 * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
9979 Update copyright notice.
9980
99812011-08-03 Ed Schonberg <schonberg@adacore.com>
9982
9983 * sem_ch3.adb (Build_Discriminant_Constraints): Only use
9984 Original_Discriminant if within an instance.
9985 * sem_ch4.adb (Analyze_Selected_Component): Ditto.
9986
99872011-08-03 Thomas Quinot <quinot@adacore.com>
9988
9989 * einfo.ads: Minor reformatting.
9990
99912011-08-03 Ed Schonberg <schonberg@adacore.com>
9992
9993 * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
9994 composite type with an unfrozen subcomponent, in the profile of a
9995 primitive operation.
9996
5c34e9cd
AC
99972011-08-03 Robert Dewar <dewar@adacore.com>
9998
9999 * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.
10000
100012011-08-03 Ed Schonberg <schonberg@adacore.com>
10002
10003 * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
10004 unconstrained type with discriminants is initialized with an aggregate,
10005 use the constrained subtype of the aggregate as the type of the object,
10006 because it is immutable, and this allows the back-end to generate no
10007 code for the object declaration.
10008
abcd9db2
AC
100092011-08-03 Robert Dewar <dewar@adacore.com>
10010
10011 * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
10012 comparison operand is variable, and turns out to be zero or negative.
10013
100142011-08-03 Javier Miranda <miranda@adacore.com>
10015
10016 * exp_intr.adb
10017 (Expand_Dispatching_Constructor_Call): Disable expansion of
10018 code required for native targets. Done to avoid generating
10019 references to unavailable runtime entities in VM targets.
10020 * exp_ch3.adb
10021 (Expand_N_Object_Declaration): Add missing support to handle
10022 the explicit initialization of class-wide interface objects.
10023 Fix documentation.
10024
100252011-08-03 Matthew Heaney <heaney@adacore.com>
10026
7089ef0f
GP
10027 * a-cobove.adb (Merge): Move source onto target, instead of using
10028 Assign.
abcd9db2
AC
10029
100302011-08-03 Matthew Heaney <heaney@adacore.com>
10031
7089ef0f 10032 * a-cbdlli.adb (Splice): Move source items from first to last.
abcd9db2
AC
10033
100342011-08-03 Yannick Moy <moy@adacore.com>
10035
7089ef0f 10036 * sem_util.ads: Add comment.
abcd9db2
AC
10037
100382011-08-03 Javier Miranda <miranda@adacore.com>
10039
10040 * exp_aggr.adb
10041 (Expand_Record_Aggregate): In VM targets disable the expansion into
10042 assignments of aggregates whose type is not known at compile time.
10043
b474d6c3
ES
100442011-08-03 Ed Schonberg <schonberg@adacore.com>
10045
10046 * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
10047 protected entries and task entries, to build the proper renaming
10048 declaration for entry formals, used in debugging.
10049 * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
10050 parameters in the same way.
10051
0580d807
AC
100522011-08-02 Robert Dewar <dewar@adacore.com>
10053
10054 * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
10055 sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
10056 code reorganization.
10057
100582011-08-02 Robert Dewar <dewar@adacore.com>
10059
10060 * debug.adb: Debug flag d.P to suppress length comparison optimization
10061 * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
10062 comparison of Length by comparing First/Last instead.
10063
100642011-08-02 Matthew Heaney <heaney@adacore.com>
10065
10066 * a-cobove.ads: Code clean up.
10067
b191a125
AC
100682011-08-02 Vincent Celier <celier@adacore.com>
10069
10070 * adaint.c (file_names_case_sensitive_cache): New static int.
10071 (__gnat_get_file_names_case_sensitive): Cache the return value in
10072 file_names_case_sensitive_cache at the first invocation, to avoid
10073 multiple calls to getenv.
10074
100752011-08-02 Bob Duff <duff@adacore.com>
10076
10077 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.
10078
316a0661
AC
100792011-08-02 Yannick Moy <moy@adacore.com>
10080
10081 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
10082 sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
10083 sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
10084 indicate that we are in a precondition or postcondition. This is used in
10085 Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
10086 decide whether to flag the spec or body of the current subprogram as
10087 not in ALFA.
10088
100892011-08-02 Fabien Chouteau <chouteau@adacore.com>
10090
10091 * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
10092 list.
10093 * a-extiin.ads: New file.
10094
100952011-08-02 Bob Duff <duff@adacore.com>
10096
10097 * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
10098 now raises Name_Error instead of Use_Error in certain cases. The other
10099 parts of this AI were already implemented properly.
10100
f9adb9d4
AC
101012011-08-02 Vincent Celier <celier@adacore.com>
10102
10103 * link.c: Only import "auto-host.h" when building the gnattools.
10104
101052011-08-02 Yannick Moy <moy@adacore.com>
10106
10107 * sem_util.adb: Inter-unit inlining does not work for a subprogram
10108 which calls a local subprogram, so extract subprogram
10109 from Mark_Non_ALFA_Subprogram_Body.
10110
101112011-08-02 Javier Miranda <miranda@adacore.com>
10112
10113 * exp_ch9.adb
10114 (Extract_Dispatching_Call): If the type of the dispatching object is an
10115 access type then return an explicit dereference in the Object out-mode
10116 parameter.
10117
101182011-08-02 Gary Dismukes <dismukes@adacore.com>
10119
10120 * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
10121 compatibility checks for all indexes of an array subtype, not just the
10122 first. Reset Has_Dynamic_Range_Check on the subtype before each
10123 potential check to ensure that Insert_Range_Checks will not elide any
10124 of the dynamic checks.
10125
101262011-08-02 Yannick Moy <moy@adacore.com>
10127
10128 * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
10129 SPARK restriction at parsing time.
10130 * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
10131 directive only if the SPARK restriction is set for this unit.
10132
83f33150
YM
101332011-08-02 Yannick Moy <moy@adacore.com>
10134
10135 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
10136 sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
10137 sem_ch11.adb: Protect call to Current_Subprogram which might be costly
10138 when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
10139 Mark_Non_ALFA_Subprogram_Body.
10140 Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
10141 inlined.
10142
7b98672f
YM
101432011-08-02 Yannick Moy <moy@adacore.com>
10144
10145 * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
10146 might be costly.
10147
052e0603
AC
101482011-08-02 Robert Dewar <dewar@adacore.com>
10149
10150 * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
10151 exp_ch3.adb: Minor reformatting.
10152
101532011-08-02 Emmanuel Briot <briot@adacore.com>
10154
10155 * adaint.c (__gnat_locate_exec_on_path): only returns executable
10156 files, not any regular file.
10157 (__gnat_locate_file_with_predicate): new subprogram.
10158
101592011-08-02 Yannick Moy <moy@adacore.com>
10160
10161 * sinfo.adb, sinfo.ads: Restrict the use of flags
10162 Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
10163 nodes, plus N_Subtype_Declaration for the 2nd one.
10164
4fbad0ba
AC
101652011-08-02 Sergey Rybin <rybin@adacore.com>
10166
10167 * gnat_rm.texi: Ramification of pragma Eliminate documentation
10168 - fix bugs in the description of Source_Trace;
10169 - get rid of UNIT_NAME;
10170
052e0603
AC
101712011-08-02 Javier Miranda <miranda@adacore.com>
10172
10173 * exp_ch9.adb
10174 (Build_Dispatching_Requeue): Adding support for VM targets
10175 since we cannot directly reference the Tag entity.
10176 * exp_sel.adb (Build_K): Adding support for VM targets.
10177 (Build_S_Assignment): Adding support for VM targets.
10178 * exp_disp.adb
10179 (Default_Prim_Op_Position): In VM targets do not restrict availability
10180 of predefined interface primitives to compiling in Ada 2005 mode.
10181 (Is_Predefined_Interface_Primitive): In VM targets this service is not
10182 restricted to compiling in Ada 2005 mode.
10183 (Make_VM_TSD): Generate code that declares and initializes the OSD
10184 record. Needed to support dispatching calls through synchronized
10185 interfaces.
10186 * exp_ch3.adb
10187 (Make_Predefined_Primitive_Specs): Enable generation of predefined
10188 primitives associated with synchronized interfaces.
10189 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
10190 primitives associated with synchronized interfaces.
10191
101922011-08-02 Yannick Moy <moy@adacore.com>
10193
10194 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
10195 statements hidden in SPARK if preceded by the HIDE directive
10196 (Parse_Exception_Handlers): mark each exception handler in a sequence of
10197 exception handlers as hidden in SPARK if preceded by the HIDE directive
10198 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
10199 if starting with the HIDE directive
10200 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
10201 starting with the HIDE directive; mark the declarations in a private
10202 part as hidden in SPARK if the private part starts with the HIDE
10203 directive
10204 * restrict.adb, restrict.ads
10205 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
10206 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
10207 argument node belongs to a part which is hidden in SPARK
10208 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
10209 parts in SPARK; protect the possibly costly call to
10210 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
10211 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
10212 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
10213 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
10214 Tok_SPARK_Hide.
10215 (Scan): recognize special comment starting with '#' and followed by
10216 SPARK keyword "hide" as a HIDE directive.
10217
102182011-08-02 Yannick Moy <moy@adacore.com>
10219
10220 * types.ads, erroutc.ads: Minor reformatting.
10221
102222011-08-02 Vincent Celier <celier@adacore.com>
10223
10224 * link.c: Add response file support for cross platforms.
10225
102262011-08-02 Ed Schonberg <schonberg@adacore.com>
10227
10228 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
10229 in an association, set parent field of copy before partial analysis.
10230 * sem_res.adb (Resolve_Slice): create reference to itype only when
10231 expansion is enabled.
10232
102332011-08-02 Yannick Moy <moy@adacore.com>
10234
10235 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
10236 for new flag denoting which subprogram bodies are in ALFA
10237 * restrict.adb, sem_ch7.adb: Update comment
10238 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
10239 sem_ch9.adb, sem_res.adb: Add calls to
10240 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
10241 * sem_ch6.adb (Analyze_Function_Return): add calls to
10242 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
10243 middle of the body, and extended return.
10244 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
10245 False when missing return.
10246 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
10247 to True for subprograms whose spec is in ALFA. Remove later on the flag
10248 on the entity used for a subprogram body when there exists a separate
10249 declaration.
10250 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
10251 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
10252 False, otherwise do nothing.
10253
102542011-08-02 Robert Dewar <dewar@adacore.com>
10255
10256 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
10257
102582011-08-02 Yannick Moy <moy@adacore.com>
10259
10260 * sem_ch4.ads: minor formatting.
10261
102622011-08-02 Yannick Moy <moy@adacore.com>
10263
10264 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
10265 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
10266 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
10267 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
10268 opt.ads: cleanup of SPARK mode
10269
102702011-08-02 Yannick Moy <moy@adacore.com>
10271
10272 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
10273 types.
10274 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
10275 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
10276 * sem_ch3.adb
10277 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
10278 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
10279 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
10280 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
10281 types.
10282 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
10283 non-static range.
10284 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
10285 functions whose return type is not in ALFA.
10286 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
10287 specifications.
10288 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
10289 parameter's type is not in ALFA.
10290 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
10291 types are in ALFA.
10292
102932011-08-02 Ed Schonberg <schonberg@adacore.com>
10294
10295 * sem_ch6 (Analyze_Expression_Function): treat the function as
10296 Inline_Always, and introduce a subprogram declaration for it when it is
10297 not a completion.
10298 * inline.adb (Add_Inlined_Body): recognize bodies that come from
10299 expression functions, so that the back-end can determine whether they
10300 can in fact be inlined.
10301 * sem_util.adb (Is_Expression_Function): predicate to determine whether
10302 a function body comes from an expression function.
10303
103042011-08-02 Gary Dismukes <dismukes@adacore.com>
10305
10306 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
10307 null exclusions to test Can_Never_Be_Null on the anonymous access types
10308 of the formals rather than testing the formals themselves. Exclude this
10309 check in cases where the Old_Formal is marked as a controlling formal,
10310 to avoid issuing spurious errors for bodies completing dispatching
10311 operations (due to the flag not getting set on controlling access
10312 formals in body specs).
10313 (Find_Corresponding_Spec): When checking full and subtype conformance of
10314 subprogram bodies in instances, pass Designated and E in that order, for
10315 consistency with the expected order of the formals (New_Id followed by
10316 Old_Id).
10317
103182011-08-02 Robert Dewar <dewar@adacore.com>
10319
10320 * sem_ch8.adb: Minor reformatting.
10321
103222011-08-02 Ed Schonberg <schonberg@adacore.com>
10323
10324 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
10325 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
10326 primitive operations of class-wide actuals.
10327
103282011-08-02 Javier Miranda <miranda@adacore.com>
10329
10330 * exp_atag.ads, exp_atag.adb
10331 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
10332 since its value is implicitly passed in argument Typ.
10333 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
10334 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
10335 Build_Common_Dispatching_Select_Statements.
10336
103372011-08-02 Robert Dewar <dewar@adacore.com>
10338
10339 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
10340 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
10341 Minor reformatting.
10342
103432011-08-02 Robert Dewar <dewar@adacore.com>
10344
10345 * sem_res.adb: Minor reformatting.
10346 * sem_prag.adb: Minor reformatting.
10347
103482011-08-02 Javier Miranda <miranda@adacore.com>
10349
10350 * exp_atag.adb, exp_atags.ads
10351 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
10352 by the tagged type Entity. Required to use this routine in the VM
10353 targets since we do not have available the Tag entity in the VM
10354 platforms.
10355 * exp_ch6.adb
10356 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
10357 Ada.Tags has not been previously loaded.
10358 * exp_ch7.adb
10359 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
10360 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
10361 * sem_aux.adb
10362 (Enclosing_Dynamic_Scope): Add missing support to handle the full
10363 view of enclosing scopes. Required to handle enclosing scopes that
10364 are synchronized types whose full view is a task type.
10365 * exp_disp.adb
10366 (Build_VM_TSDs): Minor code improvement to avoid generating and
10367 analyzing lists with empty nodes.
10368 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
10369 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
10370 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
10371 (Make_Disp_Timed_Select_Body): Add support for VM targets.
10372 (Make_Select_Specific_Data_Table): Add support for VM targets.
10373 (Make_VM_TSD): Generate code to initialize the SSD structure of
10374 the TSD.
10375
103762011-08-02 Yannick Moy <moy@adacore.com>
10377
10378 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
10379 cross-references section in ALI.
10380 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
10381 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
10382 Sub).
10383 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
10384 subprogram or package entity of a node
10385 (Is_Local_Reference_Type): new function returns True for references
10386 selected in local cross-references.
10387 (Lt): function extracted from Lt in Output_References
10388 (Write_Entity_Name): function extracted from Output_References
10389 (Generate_Definition): generate reference with type 'D' for definition
10390 of objects (object declaration and parameter specification), with
10391 appropriate locations and units, for use in local cross-references.
10392 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
10393 references of type 'I' for initialization in object definition.
10394 (Output_References): move part of function Lt and procedure
10395 Write_Entity_Name outside of the body. Ignore references of types 'D'
10396 and 'I' introduced for local cross-references.
10397 (Output_Local_References): new procedure to output the local
10398 cross-references sections.
10399 (Lref_Entity_Status): new array defining whether an entity is a local
10400 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
10401 with 'I' type when initialization expression is present.
10402 * get_scos.adb, get_scos.ads: Correct comments and typos
10403
104042011-08-02 Javier Miranda <miranda@adacore.com>
10405
10406 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
10407 the JVM target.
10408 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
10409 the JVM target.
10410 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
10411 TSD support.
10412
104132011-08-02 Vincent Celier <celier@adacore.com>
10414
10415 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
10416 (No_Space_Img): New function
10417 (Find_Excluded_Sources): When reading from a file, record the file name
10418 and the line number for each excluded source.
10419 (Mark_Excluded_Sources): When reporting an error, if the excluded
10420 sources were read from a file, include file name and line number in
10421 the error message.
10422
104232011-08-02 Ed Schonberg <schonberg@adacore.com>
10424
10425 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
10426
104272011-08-02 Robert Dewar <dewar@adacore.com>
10428
10429 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
10430
104312011-08-02 Javier Miranda <miranda@adacore.com>
10432
10433 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
10434 generation of TSDs to the DOTNET compiler.
10435 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
10436 generation of TSDs to the DOTNET compiler.
10437
104382011-08-02 Javier Miranda <miranda@adacore.com>
10439
10440 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
10441 record of all the tagged types declared inside library level package
10442 declarations, library level package bodies or library level subprograms.
10443 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
10444 associated with a given tagged type.
10445 (Build_VM_TSDs): New subprogram.
10446 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
10447 compilation units that are subprograms.
10448 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
10449 compilation units that are package bodies.
10450 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
10451 units that are a package declaration or a package instantiation.
10452 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
10453 reorganization to improve the error generated by the frontend when the
10454 function Ada.Tags.Secondary_Tag is not available.
10455 * rtsfind.ads (RE_Register_TSD): New runtime entity.
10456 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
10457
104582011-08-02 Javier Miranda <miranda@adacore.com>
10459
10460 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
10461
104622011-08-02 Robert Dewar <dewar@adacore.com>
10463
10464 * s-imenne.ads: Minor reformatting.
10465
104662011-08-02 Robert Dewar <dewar@adacore.com>
10467
10468 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
10469 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
10470 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
10471
104722011-08-02 Robert Dewar <dewar@adacore.com>
10473
10474 * einfo.ads (Materialize_Entity): Document this is only for renamings
10475 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
10476 required debug information in the case where we transform the object
10477 declaration into a renaming declaration.
10478 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
10479 object
10480 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
10481 Materialize_Entity.
10482
104832011-08-02 Robert Dewar <dewar@adacore.com>
10484
10485 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
10486 Suppress_Init_Procs.
10487 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
10488 Suppress_Initialization/Initialization_Suppressed.
10489 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
10490 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
10491 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
10492 * sem_prag.adb: New processing for pragma Suppress_Initialization.
10493
104942011-08-02 Robert Dewar <dewar@adacore.com>
10495
10496 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
10497 Minor reformatting.
10498
104992011-08-02 Ed Schonberg <schonberg@adacore.com>
10500
10501 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
10502 only have inheritable classwide pre/postconditions.
10503
105042011-08-02 Javier Miranda <miranda@adacore.com>
10505
10506 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
10507 * rtsfind.ads (RE_Check_TSD): New runtime entity.
10508 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
10509 checks if the external tag of a type is the same as the external tag
10510 of some other declaration.
10511
105122011-08-02 Thomas Quinot <quinot@adacore.com>
10513
10514 * s-taskin.ads: Minor reformatting.
10515
105162011-08-02 Emmanuel Briot <briot@adacore.com>
10517
10518 * g-comlin.adb (Display_Help): swap the order in which it prints the
10519 short help and the general usage.
10520
105212011-08-02 Ed Schonberg <schonberg@adacore.com>
10522
10523 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
10524 the aspect declarations and attach them to the generic copy for
10525 subsequent analysis.
10526 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
10527 declarations of the generic tree to the new subprogram declarations.
10528 * sem_attr.adb (Check_Precondition_Postcondition): recognize
10529 conditions that apply to a subprogram instance.
10530
105312011-08-02 Robert Dewar <dewar@adacore.com>
10532
10533 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
10534
105352011-08-02 Ed Schonberg <schonberg@adacore.com>
10536
10537 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
10538 private type with a tagged full view is not derived in the immediate
10539 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
10540
105412011-08-02 Robert Dewar <dewar@adacore.com>
10542
10543 * exp_ch4.adb: Minor reformatting.
10544
105452011-08-02 Ed Schonberg <schonberg@adacore.com>
10546
10547 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
10548 Ada2012 iterator, the loop will be rewritten during expansion into a
10549 while loop with a cursor and an element declaration. Do not analyze the
10550 body in this case, because if the container is for indefinite types the
10551 actual subtype of the elements will only be determined when the cursor
10552 declaration is analyzed.
10553
105542011-08-02 Arnaud Charlet <charlet@adacore.com>
10555
10556 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
10557 size/alignment related attributes in CodePeer_Mode.
10558
105592011-08-02 Gary Dismukes <dismukes@adacore.com>
10560
10561 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
10562 Prepend_Element, since this can result in the operation getting the
10563 wrong slot in the full type's dispatch table if the full type has
10564 inherited operations. The incomplete type's operation will get added
10565 to the proper position in the full type's primitives
10566 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
10567 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
10568 dispatching operations, since there are cases where nonprimitive
10569 subprograms can get added to the list of incomplete dependents (such
10570 as subprograms in nested packages).
10571 * sem_ch6.adb (Process_Formals): First, remove test for being in a
10572 private part when determining whether to add a primitive with a
10573 parameter of a tagged incomplete type to the Private_Dependents list.
10574 Such primitives can also occur in the visible part, and should not have
10575 been excluded from being private dependents.
10576 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
10577 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
10578 list of a Taft-amendment incomplete type is a primitive before issuing
10579 an error that the full type must appear in the same unit. There are
10580 cases where nonprimitives can be in the list (such as subprograms in
10581 nested packages).
10582 * sem_disp.adb (Derives_From): Use correct condition for checking that
10583 a formal's type is derived from the type of the corresponding formal in
10584 the parent subprogram (the condition was completely wrong). Add
10585 checking that was missing for controlling result types being derived
10586 from the result type of the parent operation.
10587
105882011-08-02 Yannick Moy <moy@adacore.com>
10589
10590 * errout.adb (First_Node): minor renaming
10591 * restrict.adb (Check_Formal_Restriction): put restriction warning on
10592 first node.
10593
105942011-08-02 Yannick Moy <moy@adacore.com>
10595
10596 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
10597 before accessing operands.
10598 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
10599 decide whether an initialization expression respects SPARK rules, as
10600 the plain node is the expanded one. This allows for more valid warnings
10601 to be issued.
10602 * gnat_rm.texi: Minor update.
10603
106042011-08-02 Arnaud Charlet <charlet@adacore.com>
10605
10606 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
10607 previous change.
10608
106092011-08-02 Robert Dewar <dewar@adacore.com>
10610
10611 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
10612
106132011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10614
10615 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
10616 loop statements and the element renaming declaration with a block when
10617 the element type is controlled.
10618
106192011-08-02 Yannick Moy <moy@adacore.com>
10620
10621 * sinfo.ads: Minor formatting.
10622
106232011-08-02 Ed Schonberg <schonberg@adacore.com>
10624
10625 * sem_aggr.adb (Add_Association): if the association has a box and no
10626 expression, use the Sloc of the aggregate itself for the new
10627 association.
10628 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
10629 the Original_Node.
10630
106312011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10632
10633 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
10634 When a container is provided via a function call, generate a renaming
10635 of the function result. This avoids the creation of a transient scope
10636 and the premature finalization of the container.
10637 * exp_ch7.adb (Is_Container_Cursor): Removed.
10638 (Wrap_Transient_Declaration): Remove the supression of the finalization
10639 of the list controller when the declaration denotes a container cursor,
10640 it is not needed.
10641
106422011-08-02 Yannick Moy <moy@adacore.com>
10643
10644 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
10645 node is from source, instead of the original node being from source.
10646 * sem_aggr.adb
10647 (Resolve_Array_Aggregate): refine the check for a static expression, to
10648 recognize also static ranges
10649 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
10650 Array_Type_Declaration): postpone the test for the type being a subtype
10651 mark after the type has been resolved, so that component-selection and
10652 expanded-name are discriminated.
10653 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
10654 to distinguish the case of an iteration scheme, so that an error is
10655 issed on a non-static range in SPARK except in an iteration scheme.
10656 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
10657 In_Iter_Schm = True.
10658 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
10659 user-defined operators so that they are allowed in renaming
10660 * sem_ch8.adb
10661 (Find_Selected_Component): refine the check for prefixing of operators
10662 so that they are allowed in renaming. Move the checks for restrictions
10663 on selector name after analysis discriminated between
10664 component-selection and expanded-name.
10665 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
10666 concatenation argument of string type if it is static.
10667 * sem_util.adb, sem_util.ads
10668 (Check_Later_Vs_Basic_Declarations): add a new function
10669 Is_Later_Declarative_Item to decice which declarations are allowed as
10670 later items, in the two different modes Ada 83 and SPARK. In the SPARK
10671 mode, add that renamings are considered as later items.
10672 (Enclosing_Package): new function to return the enclosing package
10673 (Enter_Name): correct the rule for homonyms in SPARK
10674 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
10675 from source (result of expansion) to avoid issuing wrong warnings.
10676
106772011-08-02 Ed Schonberg <schonberg@adacore.com>
10678
10679 * errout.adb: On anything but an expression First_Node returns its
10680 argument.
10681
106822011-08-02 Pascal Obry <obry@adacore.com>
10683
10684 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
10685
106862011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
10687
10688 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
10689 Set the associated loop as the related expression of internally
10690 generated cursors.
10691 * exp_ch7.adb (Is_Container_Cursor): New routine.
10692 (Wrap_Transient_Declaration): Supress the finalization of the list
10693 controller when the declaration denotes a container cursor.
10694
106952011-08-02 Yannick Moy <moy@adacore.com>
10696
10697 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
10698 command line now.
10699 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
10700 expression is a simple expression. This check cannot be performed in
10701 the semantics, so just drop it.
10702 (P_Index_Or_Discriminant_Constraint): move check that the index or
10703 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
10704 semantics. Other cases were previously checked in the semantics.
10705 * par-ch4.adb (P_Name): move checks that a selector name is not
10706 character literal or an operator symbol to Find_Selected_Component in
10707 the semantics
10708 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
10709 declarations are not placed after later declarations in a separate
10710 procedure in Sem_Util (possibly not the best choice?), to be used both
10711 during parsing, for Ada 83 mode, and during semantic analysis, for
10712 SPARK mode.
10713 * par-endh.adb (Check_End): move check that end label is not missing
10714 to Process_End_Label in the semantics
10715 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
10716 the special case for SPARK restriction
10717 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
10718 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
10719 parameter Force to issue the error message even on internal node (used
10720 for generated end label). Call Check_Restriction to check when an error
10721 must be issued. In SPARK mode, issue an error message even if the
10722 restriction is not set.
10723 (Check_Restriction): new procedure with an additional out parameter to
10724 inform the caller that a message has been issued
10725 * sem_aggr.adb: Minor modification of message
10726 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
10727 instead of issuing an error message directly
10728 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
10729 declarations are not placed after later declarations, by calling
10730 Check_Later_Vs_Basic_Declarations
10731 (Analyze_Subtype_Declaration): move here the check that an index or
10732 discriminant constraint must be a subtype mark. Change the check that
10733 a subtype of String must start at one so that it works on subtype marks.
10734 * sem_ch4.adb (Analyze_Call): move here the check that a named
10735 association cannot follow a positional one in a call
10736 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
10737 instead of issuing an error message directly
10738 * sem_ch8.adb (Find_Selected_Component): move here the check that a
10739 selector name is not a character literal or an operator symbol. Move
10740 here the check that the prefix of an expanded name cannot be a
10741 subprogram or a loop statement.
10742 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
10743 procedure called from parsing and semantics to check that basic
10744 declarations are not placed after later declarations
10745 (Process_End_Label): move here the check that end label is not missing
10746
107472011-08-02 Arnaud Charlet <charlet@adacore.com>
10748
10749 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
10750 representation clause in codepeer mode, since it confuses CodePeer and
10751 does not bring useful info.
10752
107532011-08-02 Ed Falis <falis@adacore.com>
10754
10755 * init.c: initialize fp hw on MILS.
10756
107572011-08-02 Ed Schonberg <schonberg@adacore.com>
10758
10759 * errout.adb (First_Node): for bodies, return the node itself (small
10760 optimization). For other nodes, do not check source_unit if the node
10761 comes from Standard.
10762
107632011-08-02 Robert Dewar <dewar@adacore.com>
10764
10765 * exp_ch3.adb: Minor comment additions.
10766 * sem_ch13.adb: Minor reformatting.
10767
107682011-08-02 Pascal Obry <obry@adacore.com>
10769
10770 * make.adb, makeutl.adb: Removes some superfluous directory separator.
10771
107722011-08-02 Robert Dewar <dewar@adacore.com>
10773
10774 * sem_attr.adb: Minor reformatting.
10775
107762011-08-02 Robert Dewar <dewar@adacore.com>
10777
10778 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
10779 (Has_Default_Component_Value): Removed
10780 * einfo.ads Comment updates
10781 (Has_Default_Aspect): Replaces Has_Default_Value
10782 (Has_Default_Component_Value): Removed
10783 * exp_ch13.adb
10784 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
10785 * exp_ch3.adb
10786 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
10787 (Get_Simple_Init_Val): Handle Default_Value aspect
10788 (Needs_Simple_Initialization): Handle Default_Value aspect
10789 * exp_ch3.ads: Needs_Simple_Initialization
10790 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
10791 * par-prag.adb (Pragma_Default[_Component]Value) Removed
10792 * sem_ch13.adb
10793 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
10794 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
10795 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
10796
107972011-08-02 Ed Schonberg <schonberg@adacore.com>
10798
10799 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
10800 package containing iteration primitives.
10801 exp_ch5.adb (Expand_Iterator_Loop): ditto.
10802
108032011-08-02 Ed Schonberg <schonberg@adacore.com>
10804
10805 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
10806 "of", pre-analyze expression in case it is a function call with
10807 finalization actions that must be placed ahead of the loop.
10808 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
10809 on an Ada2012 iterator, insert them ahead of the rewritten loop.
10810
108112011-08-02 Geert Bosch <bosch@adacore.com>
10812
10813 * cstand.adb (Create_Float_Types): Only consider C's long double for
10814 Long_Long_Float, in addition to double.
10815
108162011-08-02 Robert Dewar <dewar@adacore.com>
10817
10818 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
10819 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
10820 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
10821 Minor reformatting.
10822
108232011-08-02 Ed Schonberg <schonberg@adacore.com>
10824
10825 * sem_attr.adb: handle properly 'Result when it is a prefix of an
10826 indexed component.
10827
108282011-08-02 Javier Miranda <miranda@adacore.com>
10829
10830 * einfo.ads, einfo.adb
10831 (Original_Access_Type): Move this attribute to Node26 since there was
10832 an undocumented use of Node21 in E_Access_Subprogram_Type entities
10833 which causes conflicts and breaks the generation of the .NET compiler.
10834 (Interface_Name): Add missing documentation on JGNAT only uses of
10835 this attribute.
10836
108372011-08-02 Geert Bosch <bosch@adacore.com>
10838
10839 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
10840 (Find_Back_End_Float_Type): Likewise
10841 (Create_Back_End_Float_Types): Likewise
10842 (Create_Float_Types): Likewise
10843 (Register_Float_Type): Likewise
10844 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
10845 Nlist and split out type selection in new local Find_Base_Type function.
10846 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
10847 Nlist
10848 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
10849
108502011-08-02 Robert Dewar <dewar@adacore.com>
10851
10852 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
10853 alpha order).
10854 * opt.ads: Minor comment change.
10855 * sem_ch12.adb: Minor code reorganization.
10856
108572011-08-02 Gary Dismukes <dismukes@adacore.com>
10858
10859 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
10860 subtype's list of rep items to the list on the full subtype in the case
10861 where the lists are the same.
10862
108632011-08-02 Geert Bosch <bosch@adacore.com>
10864
10865 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
10866 using the one from System.Strings, which also deallocates all strings.
10867
108682011-08-02 Geert Bosch <bosch@adacore.com>
10869
10870 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
10871 function.
10872 * gcc-interface/Make-lang.in: Update dependencies.
10873
108742011-08-02 Olivier Hainque <hainque@adacore.com>
10875
10876 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
10877 end_locus.
10878
108792011-08-02 Javier Miranda <miranda@adacore.com>
10880
10881 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
10882 associated with anonymous access to subprograms.
10883
108842011-08-02 Geert Bosch <bosch@adacore.com>
10885
10886 * opt.ads
10887 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
10888 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
10889 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
10890 (Add_Symbol_Definition): Move to switch-c.adb
10891 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
10892 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
10893 (Add_Symbol_Definition): Move to switch-c.adb.
10894 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
10895 * sem_warn.adb
10896 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
10897 Move to warnsw.adb.
10898 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
10899 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
10900 Move to warnsw.adb.
10901 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
10902 (Add_Symbol_Definition): Moved from Prepcomp.
10903 * switch-c.ads: Update copyright notice. Use String_List instead of
10904 Argument_List, removing dependency on System.OS_Lib.
10905
109062011-08-02 Yannick Moy <moy@adacore.com>
10907
10908 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
10909 mode on initialization expression which does not respect SPARK
10910 restrictions.
10911 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
10912 if the tree referenced by its argument represents an initialization
10913 expression in SPARK, suitable for initializing an object in an object
10914 declaration.
10915
109162011-08-02 Javier Miranda <miranda@adacore.com>
10917
10918 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
10919 internally generated access to subprogram with its associated protected
10920 subprogram type.
10921 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
10922
109232011-08-02 Geert Bosch <bosch@adacore.com>
10924
10925 * cstand.adb (Register_Float_Type): Print information about type to
10926 register, if the Debug_Flag_Dot_B is set.
10927 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
10928 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
10929 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
10930 with a requested precision of more than Max_Digits digits and no more
10931 than Max_Base_Digits digits, if a range specification is present and the
10932 Predefined_Float_Types list has a suitable type to derive from.
10933 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
10934 case of type completion with pragma Import
10935 * sem_prag.adb
10936 (Process_Import_Predefined_Type): Processing to complete a type
10937 with pragma Import. Currently supports floating point types only.
10938 (Set_Convention_From_Pragma): Do nothing without underlying type.
10939 (Process_Convention): Guard against absence of underlying type,
10940 which may happen when importing incomplete types.
10941 (Process_Import_Or_Interface): Handle case of importing predefined
10942 types. Tweak error message.
10943
109442011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10945
10946 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
10947 functions to previous change. Reorganize code slightly.
10948
109492011-08-02 Geert Bosch <bosch@adacore.com>
10950
10951 * back_end.ads (Register_Type_Proc): New call back procedure type for
10952 allowing the back end to provide information about available types.
10953 (Register_Back_End_Types): New procedure to register back end types.
10954 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
10955 available types.
10956 * cstand.adb (Back_End_Float_Types): New list for floating point types
10957 supported by the back end.
10958 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
10959 (Copy_Float_Type): New procedure to make new copies of predefined types.
10960 (Register_Float_Type): New call back procedure to populate the BEFT list
10961 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
10962 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
10963 (Create_Float_Types): New procedure to create entities for floating
10964 point types predefined in Standard, and put these and any remaining
10965 BEFTs on the Predefined_Float_Types list.
10966 * stand.ads (Predefined_Float_Types): New list for predefined floating
10967 point types that do not have declarations in package Standard.
10968
109692011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10970
10971 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
10972 entity node for the unit containing the parameter.
10973 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
10974 (Add_Inlined_Subprogram): Likewise.
10975 * gcc-interface/Make-lang.in: Update dependencies.
10976
109772011-08-02 Thomas Quinot <quinot@adacore.com>
10978
10979 * s-stusta.adb (Print): Make sure Pos is always initialized to a
10980 suitable value.
10981
109822011-08-02 Geert Bosch <bosch@adacore.com>
10983
10984 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
10985
109862011-08-02 Eric Botcazou <ebotcazou@adacore.com>
10987
10988 * sem_type.adb (Covers): Move trivial case to the top and reuse the
10989 computed value of Base_Type.
10990
109912011-08-02 Yannick Moy <moy@adacore.com>
10992
10993 * restrict.adb (Check_Restriction): issue an error for any use of
10994 class-wide, even if the No_Dispatch restriction is not set.
10995 * sem_aggr.adb: Correct typos in comments and messages in formal mode
10996 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
10997 when completing a private extension, the type named in the private part
10998 is not the same as that named in the visible part.
10999 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
11000 of an inherited primitive operations of a tagged type or type extension
11001 that returns the tagged type.
11002 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
11003 function which returns True for an implicit operation inherited by the
11004 derived type declaration for the argument type.
11005 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
11006 order.
11007
110082011-08-02 Ed Schonberg <schonberg@adacore.com>
11009
11010 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
11011 Process_Bounds, to perform analysis with expansion of a range or an
11012 expression that is the iteration scheme for a loop.
11013 (Analyze_Iterator_Specification): If domain of iteration is given by a
11014 function call with a controlled result, as is the case if call returns
11015 a predefined container, ensure that finalization actions are properly
11016 generated.
11017 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
11018
110192011-08-02 Javier Miranda <miranda@adacore.com>
11020
11021 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
11022 * gcc-interface/Make-lang.in: Update dependencies.
11023
110242011-08-02 Javier Miranda <miranda@adacore.com>
11025
11026 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
11027 determine if the analysis is performed using N or Original_Node (N).
11028 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
11029 functionality of routine Is_Variable avoids code duplication.
11030 * checks.adb (Determine_Range): Handle temporaries generated by
11031 Remove_Side_Effects.
11032
110332011-08-02 Javier Miranda <miranda@adacore.com>
11034
11035 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
11036 expansion of the condition. Required since the previous analysis was
11037 done with expansion disabled (see Resolve_Quantified_Expression) and
11038 hence checks were not inserted and record comparisons have not been
11039 expanded.
11040
110412011-08-02 Ed Falis <falis@adacore.com>
11042
11043 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
11044 Update header.
11045
110462011-08-02 Bob Duff <duff@adacore.com>
11047
11048 * opt.ads: Minor comment fix.
11049
110502011-08-02 Bob Duff <duff@adacore.com>
11051
11052 * sem_ch12.adb (Analyze_Package_Instantiation,
11053 Analyze_Subprogram_Instantiation): Turn off style checking while
11054 analyzing an instance. Whatever style checks that apply to the generic
11055 unit should apply, so it makes no sense to apply them in an instance.
11056 This was causing trouble when compiling an instance of a runtime
11057 unit that violates the -gnatyO switch.
11058 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
11059 one of the two case statements, causing spurious errors.
11060
110612011-08-02 Robert Dewar <dewar@adacore.com>
11062
11063 * uname.adb: Minor reformatting.
11064 * gnatcmd.adb: Minor reformatting.
11065 * exp_attr.adb: Minor reformatting.
11066
110672011-08-02 Ed Schonberg <schonberg@adacore.com>
11068
11069 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
11070 No_Dispatching_Calls, do not look for the Assign primitive, because
11071 predefined primitives are not created in this case.
11072
110732011-08-02 Bob Duff <duff@adacore.com>
11074
11075 * stylesw.ads: Minor comment fixes.
11076
110772011-08-02 Robert Dewar <dewar@adacore.com>
11078
11079 * freeze.adb (Add_To_Result): New procedure.
11080
110812011-08-02 Jose Ruiz <ruiz@adacore.com>
11082
11083 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
11084 time, if the specific run-time routines for handling streams of strings
11085 are not available, use the default mechanism.
11086
110872011-08-02 Arnaud Charlet <charlet@adacore.com>
11088
11089 * s-regpat.ads: Fix typo.
11090
110912011-08-02 Vincent Celier <celier@adacore.com>
11092
11093 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
11094 not null, call it to create the in memory config project file without
11095 parsing an existing default config project file.
11096
110972011-08-02 Eric Botcazou <ebotcazou@adacore.com>
11098
11099 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
11100
111012011-08-02 Ed Schonberg <schonberg@adacore.com>
11102
11103 * sem_elim.adb: an abstract subprogram does not need an eliminate
11104 pragma for its descendant to be eliminable.
11105
111062011-08-02 Ed Falis <falis@adacore.com>
11107
11108 * init.c: revert to handling before previous checkin for VxWorks
11109 * s-intman-vxworks.adb: delete unnecessary declarations related to
11110 using Ada interrupt facilities for handling signals.
11111 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
11112 * s-intman-vxworks.ads: Import __gnat_install_handler as
11113 Initialize_Interrupts.
11114 * s-taprop-vxworks.adb: Delete Signal_Mask.
11115 (Abort_Handler): change construction of mask to unblock exception
11116 signals.
11117
111182011-08-02 Jerome Guitton <guitton@adacore.com>
11119
11120 * a-except-2005.adb (Raise_From_Signal_Handler): Call
11121 Debug_Raise_Exception before propagation starts.
11122
111232011-08-02 Eric Botcazou <ebotcazou@adacore.com>
11124
11125 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
11126 to Restriction_Check_Required.
11127 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
11128 * sem_res.adb (Resolve_Call): Likewise.
11129 * sem_attr.adb (Check_Stream_Attribute): Likewise.
11130
111312011-08-02 Bob Duff <duff@adacore.com>
11132
11133 * stylesw.ads: Update comment.
11134 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
11135 * errout.ads: Remove obsolete comment.
11136
111372011-08-02 Javier Miranda <miranda@adacore.com>
11138
11139 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
11140 (Set_Is_Safe_To_Reevaluate): new procedure.
11141 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
11142 assignment is allowed on safe-to-reevaluate variables.
11143 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
11144 temporary created to remove side effects in expressions that use
11145 the secondary stack as safe-to-reevaluate.
11146 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
11147 variables that are not true constants.
11148
111492011-08-02 Robert Dewar <dewar@adacore.com>
11150
11151 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
11152 sem_res.adb, sem_ch6.adb: Minor reformatting.
11153
111542011-08-02 Jerome Guitton <guitton@adacore.com>
11155
11156 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
11157
111582011-08-02 Ed Schonberg <schonberg@adacore.com>
11159
11160 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
11161 not set Overridden_Operation if subprogram is an initialization
11162 procedure.
11163
111642011-08-02 Yannick Moy <moy@adacore.com>
11165
11166 * par-ch6.adb: Correct obsolete name in comments
11167 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
11168 which takes two message arguments (existing function takes one), with
11169 second message used for continuation.
11170 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
11171 block statements that originate from a source block statement, not
11172 generated block statements
11173 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
11174 symmetry with procedure case
11175 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
11176 function to issue an error in formal mode if a package specification
11177 contains more than one tagged type or type extension.
11178 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
11179 parameters matching formals of tagged types are objects (or ancestor
11180 type conversions of objects), not general expressions. Issue an error
11181 on view conversions that are not involving ancestor conversion of an
11182 extended type.
11183 (Resolve_Type_Conversion): in formal mode, issue an error on the
11184 operand of an ancestor type conversion which is not an object
11185 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
11186 procedure so that it works also for actuals of function calls
11187 (Is_Actual_Tagged_Parameter): new function which determines if its
11188 argument is an actual parameter of a formal of tagged type in a
11189 subprogram call
11190 (Is_SPARK_Object_Reference): new function which determines if the tree
11191 referenced by its argument represents an object in SPARK
11192
111932011-08-02 Robert Dewar <dewar@adacore.com>
11194
11195 * sem_ch3.adb: Minor reformatting
11196 Minor comment addition
11197 Minor error msg text change
11198
111992011-08-02 Javier Miranda <miranda@adacore.com>
11200
11201 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
11202 function. Used to be more precise when we generate a variable plus one
11203 assignment to remove side effects in the evaluation of the Bound
11204 expressions.
11205 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
11206 of the bound expression to force its re-analysis and thus expand the
11207 associated transient scope (if required). Code cleanup replacing the
11208 previous code that declared the constant entity by an invocation to
11209 routine Force_Evaluation which centralizes this work in the frontend.
11210
112112011-08-02 Robert Dewar <dewar@adacore.com>
11212
11213 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
11214 (Base_Type): Now uses improved Is_Base_Type function
11215 * einfo.ads (Base_Type): Inline this function
11216
112172011-08-02 Robert Dewar <dewar@adacore.com>
11218
11219 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
11220 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
11221
112222011-08-02 Arnaud Charlet <charlet@adacore.com>
11223
11224 * gcc-interface/Make-lang.in: Update dependencies.
11225 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
11226 targets.
11227
112282011-08-02 Yannick Moy <moy@adacore.com>
11229
11230 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
11231 non-simple expression used in delta constraint
11232 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
11233 index constraint which is not a subtype mark
11234 * par.adb: With and use Restrict
11235 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
11236 mode on component type which is not a subtype mark and default
11237 expression on component
11238 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
11239 of string which does not have a lower index bound equal to 1
11240 (Array_Type_Declaration): issue an error in formal mode on index or
11241 component type which is not a subtype mark, and on aliased keyword on
11242 component
11243 (Derived_Type_Declaration): issue an error in formal mode on interface,
11244 limited or abstract type
11245 (Record_Type_Declaration): issue an error in formal mode on interface
11246 (Record_Type_Definition): issue an error in formal mode on tagged types
11247 and type extensions not declared in the specification of a library unit
11248 package; on null non-tagged record; on variant part
11249
112502011-08-02 Vincent Celier <celier@adacore.com>
11251
11252 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
11253 not declared for qualified library project when Library_Name is not
11254 declared, but Library_Dir is.
11255
112562011-08-02 Robert Dewar <dewar@adacore.com>
11257
11258 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
11259 pragmas (affects aspects [Component_]Default_Value
11260 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
11261 component type for the resolution
11262
112632011-08-02 Eric Botcazou <ebotcazou@adacore.com>
11264
11265 * einfo.adb (Base_Type): Tune implementation for speed.
11266
112672011-08-02 Robert Dewar <dewar@adacore.com>
11268
11269 * freeze.adb: Minor reformatting.
11270
112712011-08-02 Thomas Quinot <quinot@adacore.com>
11272
11273 * scos.ads: Update comments.
11274
112752011-08-02 Ed Schonberg <schonberg@adacore.com>
11276
11277 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
11278 base type, because the parent may be a subtype of a private type whose
11279 convention is established in a private part.
11280
112812011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
11282
11283 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
11284 statement in a block when the expansion of the return expression has
11285 created a finalization chain.
11286 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
11287 with the parent node.
11288 Add N_Extended_Return_Statement to handle the case where a transient
11289 object declaration appears in the Return_Object_Declarations list of
11290 an extended return statement.
11291
112922011-08-02 Matthew Gingell <gingell@adacore.com>
11293
11294 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
11295 unused parameter 'name'.
11296
112972011-08-02 Ed Schonberg <schonberg@adacore.com>
11298
11299 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
11300 inherited operation, check whether its alias, which is the source
11301 operastion that it renames, has been marked eliminated.
11302
113032011-08-02 Javier Miranda <miranda@adacore.com>
11304
11305 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
11306 in-mode parameter whose type is an access type since it can be used to
11307 modify its designated object. Enforce code that handles as safe an
11308 access type that is not access-to-constant but it is the result of a
11309 previous removal of side-effects.
11310 (Remove_Side_Effects): Minor code reorganization of cases which require
11311 no action. Done to incorporate documentation on new cases uncovered
11312 working in this ticket: no action needed if this routine was invoked
11313 too early and the nodes are not yet decorated.
11314 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
11315 to routine Remove_Side_Effects by calls to Force_Evaluation since they
11316 were issued with actuals that are implicitly provided by
11317 Force_Evaluation.
11318
113192011-08-02 Robert Dewar <dewar@adacore.com>
11320
11321 * sem_ch3.adb, sem_res.adb: Minor reformatting.
11322
113232011-08-02 Yannick Moy <moy@adacore.com>
11324
11325 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
11326 to issue an error in formal mode on attribute not supported in this mode
11327 (Analyze_Attribute): issue errors on standard attributes not supported
11328 in formal mode.
11329 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
11330 comment, and issue error in formal mode on modulus which is not a power
11331 of 2.
11332 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
11333 range.
11334 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
11335 subtype mark.
11336 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
11337 operator on modular type (except 'not').
11338
113392011-08-02 Robert Dewar <dewar@adacore.com>
11340
11341 * gnat_rm.texi: Minor reformatting.
11342
113432011-08-02 Arnaud Charlet <charlet@adacore.com>
11344
11345 * s-osinte-linux.ads: Minor comment update and reformatting.
11346 * i-cexten.ads: Make this unit pure, as for its parent.
11347 Will allow its usage in more contexts if needed.
11348
113492011-08-02 Robert Dewar <dewar@adacore.com>
11350
11351 * s-utf_32.ads: Minor comment fix.
11352
113532011-08-02 Ed Schonberg <schonberg@adacore.com>
11354
11355 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
11356 operation of a tagged synchronized type, handle the case where the
11357 controlling argument is overloaded.
11358
113592011-08-02 Yannick Moy <moy@adacore.com>
11360
11361 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
11362 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
11363 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
11364 SPARK mode and formal verification mode on processing SPARK restriction
11365 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
11366 requiring consistency checking.
11367
113682011-08-02 Robert Dewar <dewar@adacore.com>
11369
11370 * sem_res.adb: Minor reformatting.
11371
113722011-08-02 Robert Dewar <dewar@adacore.com>
11373
11374 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
11375 a-cforse.ads: Remove unneeded with of Ada.Containers
11376 Remove commented out pragma Inline's
11377 Move specifications of new subprograms to the actual specs
11378
113792011-08-02 Yannick Moy <moy@adacore.com>
11380
11381 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
11382 a-cforse.ads: Update comments.
11383
113842011-08-02 Ed Schonberg <schonberg@adacore.com>
11385
11386 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
11387
113882011-08-02 Robert Dewar <dewar@adacore.com>
11389
11390 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
11391 a-cforse.ads, a-cofove.ads: Minor reformatting.
11392
113932011-08-02 Claire Dross <dross@adacore.com>
11394
11395 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
11396 a-cofove.ads: Add comments.
11397
113982011-08-02 Yannick Moy <moy@adacore.com>
11399
11400 * gnat_rm.texi: Document formal containers.
11401
114022011-08-02 Emmanuel Briot <briot@adacore.com>
11403
11404 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
11405 are empty sections.
11406
114072011-08-02 Robert Dewar <dewar@adacore.com>
11408
11409 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
11410 reformatting.
11411
114122011-08-02 Robert Dewar <dewar@adacore.com>
11413
11414 * aspects.adb: New aspects Default_Value and Default_Component_Value
11415 New format of Aspect_Names table checks for omitted entries
11416 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
11417 handling of boolean aspects for derived types.
11418 New aspects Default_Value and Default_Component_Value
11419 New format of Aspect_Names table checks for omitted entries
11420 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
11421 (Has_Default_Value): New flag
11422 (Has_Default_Component_Value): New flag
11423 (Has_Default_Value): New flag
11424 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
11425 table.
11426 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
11427 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
11428 Default_Value and Default_Component_Value
11429 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
11430 New aspects Default_Value and Default_Component_Value
11431 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
11432 * sprint.adb: Print N_Aspect_Specification node when called from gdb
11433
114342011-08-02 Vincent Celier <celier@adacore.com>
11435
11436 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
11437 inherit library kind.
11438
114392011-08-02 Ed Schonberg <schonberg@adacore.com>
11440
11441 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
11442 Minor reformatting.
11443
114442011-08-02 Robert Dewar <dewar@adacore.com>
11445
11446 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
11447
114482011-08-02 Yannick Moy <moy@adacore.com>
11449
11450 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
11451
114522011-08-02 Robert Dewar <dewar@adacore.com>
11453
11454 * impunit.adb: Add comment.
11455
114562011-08-02 Yannick Moy <moy@adacore.com>
11457
11458 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
11459 qualification of aggregates in formal mode
11460 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
11461 another aggregate
11462 (Resolve_Aggregate): complete the test that an aggregate is adequately
11463 qualified in formal mode
11464
114652011-08-02 Pascal Obry <obry@adacore.com>
11466
11467 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
11468 * mlib-prj.adb: Supress warning when compiling binder generated file.
11469 (Build_Library): Supress all warnings when compiling the binder
11470 generated file.
11471
114722011-08-02 Yannick Moy <moy@adacore.com>
11473
11474 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
11475 from here...
11476 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
11477 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
11478 Add with/use clauses to make Check_Formal_Restriction visible
11479
114802011-08-02 Ed Schonberg <schonberg@adacore.com>
11481
11482 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
11483 in-parameters when type of the generic formal is private in the generic
11484 spec and non-private in the body.
11485
114862011-08-02 Claire Dross <dross@adacore.com>
11487
11488 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
11489 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
11490 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
11491 * impunit.adb, Makefile.rtl: Take new files into account.
11492
114932011-08-02 Robert Dewar <dewar@adacore.com>
11494
11495 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
11496 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
11497
114982011-08-02 Yannick Moy <moy@adacore.com>
11499
11500 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
11501 formal mode
11502 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
11503 matching static array bounds, taking into account the special case of
11504 string literals
11505 * sem_ch3.adb: Typo in comment.
11506
115072011-08-02 Yannick Moy <moy@adacore.com>
11508
11509 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
11510 which issues an error in formal mode if its argument node is originally
11511 from source
11512 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
11513 has a discriminant specification so that it does not include the case
11514 of derived types
11515 (Derived_Type_Declaration): move here the test that a derived type has a
11516 discriminant specification
11517 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
11518 first element of a component association before accessing its choices
11519 (presence of component association is not enough)
11520 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
11521 declaration is a library item before accessing the next element in a
11522 list, as library items are not member of lists
11523 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
11524 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
11525 Check_Formal_Restriction whenever possible.
11526
115272011-08-02 Ed Schonberg <schonberg@adacore.com>
11528
11529 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
11530 reference when needed.
11531
115322011-08-02 Bob Duff <duff@adacore.com>
11533
11534 * gnat_ugn.texi: Fix typo.
11535
115362011-08-02 Vincent Celier <celier@adacore.com>
11537
11538 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
11539 archive file name. Do not use the full path name of archives for Open
11540 VMS.
11541
115422011-08-02 Robert Dewar <dewar@adacore.com>
11543
11544 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
11545 Analyze_Aspect_Specifications
11546 * sem_ch13.adb
11547 (Analyze_Aspect_Specifications): New handling for boolean aspects
11548 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
11549 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
11550 sequence for Analyze_Aspect_Specifications
11551 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
11552 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
11553
115542011-08-02 Robert Dewar <dewar@adacore.com>
11555
11556 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
11557 aspects, since these no longer exist.
11558
115592011-08-02 Robert Dewar <dewar@adacore.com>
11560
11561 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
11562 semicolon, do not try to see if there are aspects following it.
11563 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
11564 aspect spec.
11565
115662011-08-02 Robert Dewar <dewar@adacore.com>
11567
11568 * sem_ch8.adb, aspects.ads: Minor reformatting.
11569
115702011-08-02 Eric Botcazou <ebotcazou@adacore.com>
11571
11572 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
11573 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
11574 extracted from...
11575 (Analyze_Aspect_Specifications): ...here. Call above procedure.
11576
115772011-08-02 Yannick Moy <moy@adacore.com>
11578
11579 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
11580 mode on subprogram declaration outside of package specification, unless
11581 it is followed by a pragma Import
11582 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
11583 Access_Type_Declaration): issue error in formal mode on access type
11584 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
11585 incomplete type
11586 (Analyze_Object_Declaration): issue error in formal mode on object
11587 declaration which does not respect SPARK restrictions
11588 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
11589 declaration which does not respect SPARK restrictions
11590 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
11591 error in formal mode on digits or delta constraint
11592 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
11593 decimal fixed point type
11594 (Derived_Type_Declaration): issue error in formal mode on derived type
11595 other than type extensions of tagged record types
11596 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
11597 with check on access definition
11598 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
11599 mode on protected definition.
11600 (Analyze_Task_Definition): issue error in formal mode on task definition
11601
116022011-08-02 Robert Dewar <dewar@adacore.com>
11603
11604 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
11605
116062011-08-02 Javier Miranda <miranda@adacore.com>
11607
11608 * sem_ch6.adb (Can_Override_Operator): New function.
11609 (Verify_Overriding_Indicator): Add missing code to check overriding
11610 indicator in operators. Fixes regression.
11611 (Check_Overriding_Indicator): Minor reformating after replacing the
11612 code that evaluates if the subprogram can override an operator by
11613 invocations to the above new function.
11614 * einfo.adb
11615 (Write_Field26_Name): Add missing code to ensure that, following
11616 the documentation in einfo.ads, this field is not shown as attribute
11617 "Static_Initialization" on non-dispatching functions.
11618
116192011-08-02 Jose Ruiz <ruiz@adacore.com>
11620
11621 * sem_res.adb (Resolve_Call): A call to
11622 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
11623 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
11624 i.e., when the second parameter is of type Time_Span.
11625
116262011-08-02 Vincent Celier <celier@adacore.com>
11627
11628 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
11629 with an archive instead of -L<library dir> -l<library name>.
11630
116312011-08-02 Ed Schonberg <schonberg@adacore.com>
11632
11633 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
11634 mark the base types In_Use in addition to making the operations
11635 use_visible.
11636
116372011-08-02 Ed Falis <falis@adacore.com>
11638
11639 * init.c: add and setup __gnat_signal_mask for the exception signals
11640 * s-inmaop-vxworks.adb: new file.
11641 * s-intman-vxworks.adb: remove unnecessary initializations and
11642 simplify remaining
11643 * s-intman-vxworks.ads: remove unnecessary variable
11644 * s-taprop-vxworks.adb: simplify signal initialization
11645
116462011-08-02 Robert Dewar <dewar@adacore.com>
11647
11648 * sem_ch8.adb: Minor code reorganization, comment updates.
11649
116502011-08-02 Robert Dewar <dewar@adacore.com>
11651
11652 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
11653 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
11654 here from Sem_Res.
11655 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
11656 (Matching_Static_Array_Bounds): Moved here from Sem_Res
11657
116582011-08-02 Ed Schonberg <schonberg@adacore.com>
11659
11660 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
11661 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
11662 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
11663 use_type_clauses, to handle more efficiently use_type and use_all_type
11664 constructs.
11665 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
11666 Ada2012 Use_All_Type clause.
11667 (Use_Class_Wide_Operations): new procedure.
11668
116692011-08-02 Robert Dewar <dewar@adacore.com>
11670
11671 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
11672 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
11673 expression to expression function.
11674
116752011-08-02 Ed Schonberg <schonberg@adacore.com>
11676
11677 * sem_ch4.adb: transform simple Ada2012 membership into equality only
11678 if types are compatible.
11679
116802011-08-02 Yannick Moy <moy@adacore.com>
11681
11682 * sem_res.adb (Matching_Static_Array_Bounds): new function which
11683 returns True if its argument array types have same dimension and same
11684 static bounds at each index.
11685 (Resolve_Actuals): issue an error in formal mode on actuals passed as
11686 OUT or IN OUT paramaters which are not view conversions in SPARK.
11687 (Resolve_Arithmetic_Op): issue an error in formal mode on
11688 multiplication or division with operands of fixed point types which are
11689 not qualified or explicitly converted.
11690 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
11691 Boolean or array type (except String) operands.
11692 (Resolve_Equality_Op): issue an error in formal mode on equality
11693 operators for array types other than String with non-matching static
11694 bounds.
11695 (Resolve_Logical_Op): issue an error in formal mode on logical operators
11696 for array types with non-matching static bounds. Factorize the code in
11697 Matching_Static_Array_Bounds.
11698 (Resolve_Qualified_Expression): issue an error in formal mode on
11699 qualified expressions for array types with non-matching static bounds.
11700 (Resolve_Type_Conversion): issue an error in formal mode on type
11701 conversion for array types with non-matching static bounds
11702
117032011-08-02 Robert Dewar <dewar@adacore.com>
11704
11705 * par-ch10.adb: Minor code reorganization (use Nkind_In).
11706
117072011-08-02 Ed Schonberg <schonberg@adacore.com>
11708
11709 * par-ch9.adb: save location of entry for proper error message.
11710
117112011-08-02 Javier Miranda <miranda@adacore.com>
11712
11713 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
11714 (Use_Full_View) which permits this routine to climb through the
11715 ancestors using the full-view of private parents.
11716 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
11717 Use_Full_View to true in calls to Is_Ancestor.
11718 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
11719 true in call to Is_Ancestor.
11720 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
11721 Use_Full_View to true in call to Is_Ancestor.
11722 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
11723 call to Is_Ancestor.
11724 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
11725 Use_Full_View to true in calls to Is_Ancestor.
11726 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
11727 Make_Select_Specific_Data_Table, Register_Primitive,
11728 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
11729 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
11730 to true in call to Is_Ancestor.
11731 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
11732 Use_Full_View to true in calls to Is_Ancestor.
11733 * exp_cg.adb
11734 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
11735 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
11736
117372011-08-02 Robert Dewar <dewar@adacore.com>
11738
11739 * gnat_rm.texi: Minor reformatting.
11740 * sem_prag.adb: Minor reformatting.
11741
117422011-08-02 Tristan Gingold <gingold@adacore.com>
11743
11744 * vms_data.ads: Add VMS qualifier for -gnateP.
11745
117462011-08-02 Robert Dewar <dewar@adacore.com>
11747
11748 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
11749 * par-ch7.adb (P_Package): Proper placement of aspects for package
11750 decl/instantiation.
11751 * par-endh.adb (Check_End): Ad Is_Sloc parameter
11752 (End_Statements): Add Is_Sloc parameterr
11753 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
11754 (Check_End): Ad Is_Sloc parameter
11755 (End_Statements): Add Is_Sloc parameterr
11756
117572011-08-02 Vincent Celier <celier@adacore.com>
11758
11759 * ug_words: Add VMS qualifier equivalent to -gnateP:
11760 /SYMBOL_PREPROCESSING.
11761
117622011-08-02 Jose Ruiz <ruiz@adacore.com>
11763
11764 * gnat-style.texi: For hexadecimal numeric literals the typical
11765 grouping of digits is 4 to represent 2 bytes.
11766 A procedure spec which is split into several lines is indented two
11767 characters.
11768
117692011-08-02 Yannick Moy <moy@adacore.com>
11770
11771 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
11772 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
11773 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
11774 properly qualified
11775 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
11776 choice in array aggregate
11777 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
11778 mark as ancestor
11779 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
11780 positional and named aggregate for record, or others in record
11781 aggregate, or multiple choice in record aggregate
11782 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
11783 array operands to logical operations AND, OR and XOR do not have the
11784 same static lower and higher bounds
11785 * sem_ch5.adb, sinfo.ads: Correct typos in comments
11786
117872011-08-01 Robert Dewar <dewar@adacore.com>
11788
11789 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
11790 Replaces Last_Source_Node_In_Sequence.
11791 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
11792 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
11793 parens and blank in string (this was inconsistently implemented).
11794 * errout.ads
11795 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
11796 blank in string (this was inconsistently implemented).
11797 * gnat1drv.adb
11798 (Set_Global_Switches): Set formal mode switches appropriately
11799 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
11800 * par-prag.adb
11801 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
11802 call Set_Error_Msg_Lang to set "spark" as language name.
11803 * par.adb: Remove unnecessary call to set formal language for errout
11804 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
11805 appropriately and call Set_Error_Msg_Lang to set "spark" as language
11806 name.
11807 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
11808 calls to it, moved after resolution so that types are known
11809 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
11810 result of concatenation is not of type String
11811 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
11812 concatenation is not properly restricted
11813 * gnat_rm.texi: Add doc on pragma Spark_95.
11814 * gcc-interface/Makefile.in: Remove obsolete target pairs for
11815 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
11816 * gcc-interface/Make-lang.in: Update dependencies.
11817
118182011-08-01 Javier Miranda <miranda@adacore.com>
11819
11820 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
11821 condition that detects if the overridden operation must replace an
11822 existing entity.
11823
118242011-08-01 Javier Miranda <miranda@adacore.com>
11825
11826 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
11827 code declarations inserted by Insert_Actions in each alternative of the
11828 N_Case_Expression node.
11829
118302011-08-01 Robert Dewar <dewar@adacore.com>
11831
11832 * sem_ch6.adb: Minor code reorganization.
11833 * sem_util.adb: Minor reformatting.
11834
118352011-08-01 Pascal Obry <obry@adacore.com>
11836
11837 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
11838 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
11839
118402011-08-01 Yannick Moy <moy@adacore.com>
11841
11842 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
11843 literal or operator symbol which is prefixed
11844 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
11845 mode on access attributes.
11846 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
11847 that concatenation operands are properly restricted in formal mode
11848 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
11849 Analyze_Concatenation_Operand. Issue an error in formal mode if the
11850 result of the concatenation has a type different from String.
11851 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
11852 Analyze_Quantified_Expression, Analyze_Slice,
11853 Analyze_Null): issue an error in formal mode on unsupported constructs
11854 * sem_ch5.adb
11855 (Analyze_Block_Statement): only issue error on source block statement
11856 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
11857 function which returns the last node in a list of nodes for which
11858 Comes_From_Source returns True, if any
11859 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
11860 Last_Source_Node_In_Sequence
11861 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
11862 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
11863 mode on unsupported constructs
11864 * sem_ch9.adb Do not return after issuing error in formal mode, as the
11865 rest of the actions may be needed later on since the error is marked as
11866 not serious.
11867 * sinfo.ads: Typos in comments.
11868
118692011-08-01 Pascal Obry <obry@adacore.com>
11870
11871 * projects.texi: Minor editing.
11872
118732011-08-01 Yannick Moy <moy@adacore.com>
11874
11875 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
11876 insertion character ~~
11877 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
11878 (Set_Error_Msg_Lang): new procedure which fixes the language for use
11879 with insertion character ~~
11880 (Set_Msg_Text): treat insertion character ~~
11881 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
11882 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
11883 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
11884 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
11885 errors related to the formal language restriction not serious
11886 (insertion character |).
11887 * par.adb (Par): set formal language for error messages if needed
11888 * sem_ch6.adb (Check_Missing_Return): take into account possible
11889 generated statements at the end of the function
11890 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
11891 enumeration value to define a new pragma SPARK_95
11892 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
11893 SPARK_Version): new type and variables to store the SPARK version
11894 (none by default).
11895 (SPARK_Mode): return True when SPARK_Version is set
11896 * par-prag.adb: Correct indentation
11897 (Prag): take Pragma_SPARK_95 into account
11898 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
11899 into account.
11900
119012011-08-01 Robert Dewar <dewar@adacore.com>
11902
11903 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
11904 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
11905 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
11906
119072011-08-01 Pascal Obry <obry@adacore.com>
11908
11909 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
11910 Target_Name to Get_Path call.
11911 (Parse_Single_Project): Likewise.
11912 (Post_Parse_Context_Clause): Likewise.
11913 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
11914 Call Initialise_Project_Path with the proper Target_Name.
11915 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
11916 search path.
11917 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
11918 with the proper Target_Name.
11919 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
11920 Part.Parse routine.
11921 (Parse_Project_And_Apply_Config): Likewise.
11922 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
11923 This is fine as this part of the code is supporting only native
11924 compilation.
11925 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
11926 is fine as this part of the code is supporting only native compilation.
11927
119282011-08-01 Yannick Moy <moy@adacore.com>
11929
11930 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
11931 of homonym, unless the homonym is one of the cases allowed in SPARK
11932 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
11933 package declaration occurring after a body.
11934
119352011-08-01 Robert Dewar <dewar@adacore.com>
11936
11937 * checks.adb, exp_ch4.adb: Minor reformatting.
11938
119392011-08-01 Javier Miranda <miranda@adacore.com>
11940
11941 * einfo.ads (Access_Disp_Table): Fix documentation.
11942 (Dispatch_Table_Wrappers): Fix documentation.
11943
119442011-08-01 Pascal Obry <obry@adacore.com>
11945
11946 * prj-env.adb, prj-env.ads: Minor reformatting.
11947
119482011-08-01 Yannick Moy <moy@adacore.com>
11949
11950 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
11951 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
11952 procedures out of these packages.
2c7f9cc0 11953 * errout.ads, errout.adb
052e0603
AC
11954 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
11955 procedures in of this package
11956 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
11957 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
11958 on misplaced later vs initial declarations, like in Ada 83
11959 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
11960 formal mode on attribute of private type whose full type declaration
11961 is not visible
11962 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
11963 package declaration inside a package specification
11964 (Analyze_Full_Type_Declaration): issue error in formal mode on
11965 controlled type or discriminant type
11966 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
11967 user-defined operator means that it should come from the source
11968 (New_Overloaded_Entity): issue error in formal mode on overloaded
11969 entity.
11970 * sem_ch6.ads, sem_ch13.ads: typos in comments.
11971
119722011-08-01 Thomas Quinot <quinot@adacore.com>
11973
11974 * atree.adb: Minor reformatting.
11975 * checks.adb: Minor reformatting.
11976
119772011-08-01 Vincent Celier <celier@adacore.com>
11978
11979 * s-parame-vms-ia64.ads: Fix typo in comment
11980 Minor reformatting
11981 * s-parame-vms-restrict.ads: Removed, unused.
11982
119832011-08-01 Javier Miranda <miranda@adacore.com>
11984
11985 * exp_ch3.adb
11986 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
11987 * sem_ch3.adb
11988 (Constrain_Index): Remove side effects in the evaluation of the bounds.
11989 * sem_ch3.ads, sem_ch3.adb
11990 (Is_Constant_Bound): New extended version of the subprogram that was
11991 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
11992 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
11993 * sem_aux.ads (Constant_Value): Fix typo in comment.
11994 * checks.adb (Generate_Index_Checks): New implementation which, for
11995 array objects with constant bounds, generates the runtime check
11996 referencing the bounds of the array type. For other cases this routine
11997 provides its previous behavior obtaining such values from the array
11998 object.
11999 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
12000 parent type.
12001 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
12002 we cannot have semantic interpretations of the new node.
12003
120042011-08-01 Ed Schonberg <schonberg@adacore.com>
12005
12006 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
12007 expressions.
12008
120092011-08-01 Arnaud Charlet <charlet@adacore.com>
12010
12011 * sem_ch8.adb: Minor code editing.
12012 * s-vxwext.adb: Remove trailing space.
12013 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
12014 consistency with other files.
12015
120162011-08-01 Thomas Quinot <quinot@adacore.com>
12017
12018 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
12019
120202011-08-01 Ed Schonberg <schonberg@adacore.com>
12021
12022 * par-ch10.adb: reject parameterized expressions as compilation unit.
12023 * sem_ch4.adb: handle properly conditional expression with overloaded
12024 then_clause and no else_clause.
12025
120262011-08-01 Tristan Gingold <gingold@adacore.com>
12027
12028 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
12029 like done by System.Aux_DEC.
12030 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
12031
120322011-08-01 Yannick Moy <moy@adacore.com>
12033
12034 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
12035 missing label at end of declaration (subprogram or package)
12036 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
12037 of positional and named parameter association
12038 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
12039 Error_Msg_SP which adds a prefix to the error message giving the name
12040 of the formal language analyzed
12041 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
12042 access result type in subprogram, unconstrained array as result type,.
12043 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
12044 procedure
12045 * sem_ch8.adb: Code clean up.
12046
120472011-08-01 Javier Miranda <miranda@adacore.com>
12048
12049 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
12050 * einfo.ads (Access_Disp_Table): Fix documentation.
12051 (Dispatch_Table_Wrappers): Fix documentation.
12052 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
12053 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
12054 to enforce the documentation of this attribute.
12055 (Set_Is_Interface): Cleanup the assertion.
12056 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
12057 the Underlying_Type entity before reading attribute Access_Disp_Table.
12058 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
12059 Locate the Underlying_Type before reading attribute Access_Disp_Table.
12060 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
12061 the Underlying_Type entity before reading attribute Access_Disp_Table.
12062 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
12063 Locate the Underlying_Type entity before reading attribute
12064 Access_Disp_Table.
12065
120662011-08-01 Ed Schonberg <schonberg@adacore.com>
12067
12068 * s-poosiz.ads: Additional overriding indicators.
12069
120702011-08-01 Yannick Moy <moy@adacore.com>
12071
12072 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
12073 formal mode.
12074 (Analyze_Iteration_Scheme): issue error in formal mode when loop
12075 parameter specification does not include a subtype mark.
12076 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
12077 formal mode on abstract subprogram.
12078 (Analyze_Subprogram_Specification): issue error in formal mode on
12079 user-defined operator.
12080 (Process_Formals): issue error in formal mode on access parameter and
12081 default expression.
12082 * sem_ch9.adb (Analyze_Abort_Statement,
12083 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
12084 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
12085 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
12086 Analyze_Requeue, Analyze_Selective_Accept,
12087 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
12088 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
12089 issue error in formal mode on user-defined raise statement.
12090
120912011-08-01 Thomas Quinot <quinot@adacore.com>
12092
12093 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
12094 declaration being hidden when overriding an implicit inherited
12095 subprogram.
12096 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
12097 (-gnats), do not complain about a source file that contains only a
12098 pragma No_Body.
12099
121002011-08-01 Ed Schonberg <schonberg@adacore.com>
12101
12102 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
12103 variable if already set.
12104
121052011-08-01 Arnaud Charlet <charlet@adacore.com>
12106
12107 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
12108 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
12109 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
12110 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
12111 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
12112 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
12113 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
12114 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
12115 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
12116 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
12117 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
12118 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
12119 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
12120 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
12121 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
12122 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
12123 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
12124 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
12125 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
12126 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
12127 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
12128 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
12129 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
12130 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
12131 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
12132 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
12133 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
12134 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
12135 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
12136 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
12137 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
12138 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
12139 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
12140 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
12141 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
12142 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
12143 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
12144 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
12145 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
12146 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
12147 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
12148 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
12149 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
12150 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
12151 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
12152 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
12153 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
12154 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
12155 s-osinte-mingw.ads: Update to GPLv3 run-time license.
12156 Use GNAT instead of GNARL.
12157
121582011-08-01 Bob Duff <duff@adacore.com>
12159
12160 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
12161 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
12162 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
12163 reformatting.
12164
121652011-08-01 Yannick Moy <moy@adacore.com>
12166
12167 * debug.adb (d.D) reverve flag for the SPARK mode
12168 (d.E) reverve flag for SPARK generation mode
12169 (d.F) reverve flag for Why generation mode
2c7f9cc0 12170 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
052e0603
AC
12171 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
12172 functions which return True when the corresponding modes are set
12173 (Formal_Language): return "spark" or "alfa" when in formal verification
12174 mode.
12175 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
12176 Error_Msg to prefix the error message with a tag giving the formal
12177 language
12178 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
12179 message with a tag giving the formal language
12180 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
12181 block statement
12182 (Analyze_Case_Statement): issue error in formal mode on case statement
12183 with a single "others" case alternative
12184 (Analyze_Exit_Statement): issue errors in formal mode on exit
12185 statements which do not respect SPARK restrictions
12186 (Analyze_Goto_Statement): issue error in formal mode on goto statement
12187 (Check_Unreachable_Code): always issue an error (not a warning) in
12188 formal mode on unreachable code (concerns both code after an infinite
12189 loop and after an unconditional jump, both not allowed in SPARK)
12190 * sem_ch6.adb (Analyze_Return_Statement): add call to
12191 Set_Return_Present for a procedure containing a return statement
12192 (already done for functions in Analyze_Function_Return)
12193 (Analyze_Function_Return): issue error in formal mode on extended
12194 return or if return is not last statement in function
12195 (Check_Missing_Return): issue error in formal mode if function does
12196 not end with return or if procedure contains a return
12197 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
12198 function to detect if there is an inner scope of its parameter S which
12199 is a loop.
12200
122012011-08-01 Thomas Quinot <quinot@adacore.com>
12202
12203 * sem_ch6.ads: Minor reformatting.
12204
122052011-08-01 Javier Miranda <miranda@adacore.com>
12206
12207 * sem_util.adb (Abstract_Interface_List): Complete condition when
12208 processing private type declarations to avoid reading unavailable
12209 attribute.
12210 (Is_Synchronized_Tagged_Type): Complete condition when processing
12211 private extension declaration nodes to avoid reading unavailable
12212 attribute.
12213
122142011-08-01 Thomas Quinot <quinot@adacore.com>
12215
12216 * sem_ch3.adb: Minor reformatting.
12217
122182011-08-01 Thomas Quinot <quinot@adacore.com>
12219
12220 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
12221 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
12222 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
12223 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
12224 for VMS, instead parametrize the common implementation with
12225 System.Parameters declarations.
12226
122272011-08-01 Eric Botcazou <ebotcazou@adacore.com>
12228
12229 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
12230
122312011-08-01 Tristan Gingold <gingold@adacore.com>
12232
12233 * seh_init.c: Fix SEH handler installation on win64.
12234
122352011-08-01 Ed Schonberg <schonberg@adacore.com>
12236
12237 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
12238 double analysis of an anonymous access to subprogram, because it can
12239 lead to improper sharing of profiles and a back-end crash.
12240
122412011-08-01 Robert Dewar <dewar@adacore.com>
12242
12243 * make.adb, sem_ch4.adb: Minor reformatting.
12244 * gcc-interface/Make-lang.in: Update dependencies.
12245 * sem_util.adb, exp_ch5.adb: Minor reformatting.
12246
122472011-08-01 Arnaud Charlet <charlet@adacore.com>
12248
12249 * gnat_rm.texi: Fix definition of Long_Integer.
12250
122512011-08-01 Ed Schonberg <schonberg@adacore.com>
12252
12253 * exp_aggr.adb: check limit size of static aggregate unconditionally,
12254 to prevent storage exhaustion.
12255 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
12256 finalized is a function body, insert the cleanup code before the final
12257 return statement, to prevent spurious warnings.
12258 * s-pooglo.ads: add overriding indicator.
12259
122602011-08-01 Ed Schonberg <schonberg@adacore.com>
12261
12262 * sem_ch4.adb (Operator_Check): improve error message when both a
12263 with_clause and a use_clause are needed to make operator usage legal.
12264 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
12265 determine whether a compilation unit is visible within an other,
12266 either through a with_clause in the current unit, or a with_clause in
12267 its library unit or one one of its parents.
12268
122692011-08-01 Ed Schonberg <schonberg@adacore.com>
12270
12271 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
12272 over an arbitrary expression of an array or container type.
12273 * lib-xref.adb: clarify comment.
12274
122752011-08-01 Bob Duff <duff@adacore.com>
12276
12277 * einfo.ads: Minor reformatting.
12278 * debug.adb: Minor comment improvement.
12279
122802011-08-01 Javier Miranda <miranda@adacore.com>
12281
12282 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
12283 consider hidden subprograms as valid candidates.
12284
122852011-08-01 Arnaud Charlet <charlet@adacore.com>
12286
12287 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
12288
122892011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
12290
12291 * gnat_ugn.texi: Fix typo.
12292
122932011-08-01 Robert Dewar <dewar@adacore.com>
12294
12295 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
12296 lib-xref.adb: Minor reformatting
12297
122982011-08-01 Gary Dismukes <dismukes@adacore.com>
12299
12300 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
12301 when to generate a call to Move_Final_List.
12302 (Has_Controlled_Parts): Remove this function.
12303
123042011-08-01 Geert Bosch <bosch@adacore.com>
12305
12306 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
12307 "," in choice list.
12308
123092011-08-01 Thomas Quinot <quinot@adacore.com>
12310
12311 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
12312 explicit raise of a predefined exception as Comes_From_Source if the
12313 original N_Raise_Statement comes from source.
12314
123152011-08-01 Robert Dewar <dewar@adacore.com>
12316
12317 * sinfo.ads: Add comment.
12318 * sem_ch6.adb: Minor reformatting.
12319
123202011-08-01 Robert Dewar <dewar@adacore.com>
12321
12322 * freeze.adb (Freeze_Entity): Refine check for bad component size
12323 clause to avoid rejecting confirming clause when atomic/aliased present.
12324
123252011-08-01 Ed Schonberg <schonberg@adacore.com>
12326
12327 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
12328 better determine whether an entity reference is a write.
12329 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
12330 subcomponent.
12331 * lib-xref.adb (Output_References): Do no suppress a read reference at
12332 the same location as an immediately preceeding modify-reference, to
12333 handle properly in-out actuals.
12334
123352011-08-01 Tristan Gingold <gingold@adacore.com>
12336
12337 * env.c (__gnat_setenv) [VMS]: Refine previous change.
12338
123392011-08-01 Quentin Ochem <ochem@adacore.com>
12340
12341 * i-cstrin.adb (New_String): Changed implementation, now uses only the
12342 heap to compute the result.
12343
123442011-08-01 Robert Dewar <dewar@adacore.com>
12345
12346 * atree.ads: Minor reformatting.
12347
123482011-08-01 Emmanuel Briot <briot@adacore.com>
12349
12350 * g-expect.adb (Get_Command_Output): Fix memory leak.
12351
123522011-08-01 Geert Bosch <bosch@adacore.com>
12353
12354 * cstand.adb (P_Float_Type): New procedure to print the definition of
12355 predefined fpt types.
12356 (P_Mixed_Name): New procedure to print a name using mixed case
12357 (Print_Standard): Use P_Float_Type for printing floating point types
12358 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
12359 precision IEEE float.
12360
123612011-08-01 Thomas Quinot <quinot@adacore.com>
12362
12363 * sem_ch3.adb: Minor reformatting.
12364
123652011-08-01 Ed Schonberg <schonberg@adacore.com>
12366
12367 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
12368 the completion of a generic function, insert the new body rather than
12369 rewriting the original.
12370
123712011-08-01 Yannick Moy <moy@adacore.com>
12372
12373 * sinfo.ads, errout.ads: Typos in comments.
12374
123752011-08-01 Robert Dewar <dewar@adacore.com>
12376
12377 * par-endh.adb: Minor reformatting.
12378
123792011-08-01 Robert Dewar <dewar@adacore.com>
12380
12381 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
12382 (Pre_Post_Aspects): New subtype.
12383 * par-ch12.adb (P_Generic): New syntax for aspects in packages
12384 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
12385 * par-ch7.adb (P_Package): Remove Decl parameter
12386 (P_Package): Handle new syntax for aspects (before IS)
12387 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
12388 new aspect syntax
12389 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
12390 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
12391 (P_Package): Remove Decl parameter
12392 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
12393 aspects
12394 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
12395 specs
12396 * sem_util.ads, sem_util.adb (Static_Boolean): New function
12397 * sinfo.ads: Document new syntax for aspects in packages etc.
12398 * sprint.adb: Handle new syntax of aspects before IS in package
12399
124002011-08-01 Thomas Quinot <quinot@adacore.com>
12401
12402 * atree.ads: Minor reformatting.
12403 * sem_prag.adb: Minor reformatting.
12404
124052011-08-01 Robert Dewar <dewar@adacore.com>
12406
12407 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
12408 case expr alternative.
12409
124102011-08-01 Ed Schonberg <schonberg@adacore.com>
12411
12412 * sem_ch12.adb: Fix typo.
12413
124142011-08-01 Geert Bosch <bosch@adacore.com>
12415
12416 * sem_prag.adb (Check_No_Link_Name): New procedure.
12417 (Process_Import_Or_Interface): Use Check_No_Link_Name.
12418 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
12419 instead of Standard_Long_Long_Float_Size global. Preparation for
12420 eventual removal of per type constants.
12421 * exp_util.ads (Get_Stream_Size): New function returning the stream
12422 size value of subtype E.
12423 * exp_util.adb (Get_Stream_Size): Implement new function.
12424 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
12425 function.
12426 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
12427 * einfo.adb:
12428 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
12429
124302011-08-01 Geert Bosch <bosch@adacore.com>
12431
12432 * cstand.adb: Fix comments.
12433 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
12434 count of arguments.
12435
124362011-08-01 Robert Dewar <dewar@adacore.com>
12437
12438 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
12439
124402011-08-01 Geert Bosch <bosch@adacore.com>
12441
12442 * atree.ads: Fix comment.
12443
124442011-08-01 Robert Dewar <dewar@adacore.com>
12445
12446 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
12447 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
12448 * par.adb: Add with for Namet.Sp.
12449 * par-tchk.adb: Minor reformatting.
12450
124512011-08-01 Vincent Celier <celier@adacore.com>
12452
12453 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
12454 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
12455 of the init procedure of a SAL.
12456 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
12457 New procedure.
12458
124592011-08-01 Thomas Quinot <quinot@adacore.com>
12460
12461 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
12462 reformatting.
12463
124642011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12465
12466 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
12467
124682011-08-01 Thomas Quinot <quinot@adacore.com>
12469
12470 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
12471 conformant with its spec (return True only for types that have
12472 an overriding Initialize primitive operation that prevents them from
12473 having preelaborable initialization).
12474 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
12475 initialization for controlled types in Ada 2005 or later mode.
12476
124772011-08-01 Robert Dewar <dewar@adacore.com>
12478
12479 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
12480 Postcondition.
12481 (Same_Aspect): New function.
12482 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
12483 Type_Invariant, Precondition, Postcondition.
12484 * snames.ads-tmpl: Add Name_Type_Invariant.
12485
124862011-08-01 Robert Dewar <dewar@adacore.com>
12487
12488 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
12489 here.
12490 (Freeze_All_Ent): Fix error in handling inherited aspects.
12491 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
12492 already analyzed, but don't skip entire processing of a declaration,
12493 that's wrong in some cases of declarations being rewritten.
12494 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
12495 Don't delay for integer, string literals
12496 Treat predicates in usual manner for delay, remove special case code,
12497 not needed.
12498 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
12499 (Build_Predicate_Function): Update saved expression in aspect
12500 (Build_Invariant_Procedure): Update saved expression in aspect
12501 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
12502 of replacement of discriminant references if the reference is simple.
12503
125042011-08-01 Robert Dewar <dewar@adacore.com>
12505
12506 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
12507 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
12508 Static_Predicate and Dynamic_Predicate.
12509 (Build_Predicate_Function): Add processing for Static_Predicate
12510 and Dynamic_Predicate.
12511 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
12512 (From_Static_Predicate): New flag
12513 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
12514
125152011-08-01 Robert Dewar <dewar@adacore.com>
12516
12517 * usage.adb: Documentation cleanup for Ada version modes in usage.
12518 * expander.adb: Minor reformatting.
12519
125202011-08-01 Robert Dewar <dewar@adacore.com>
12521
12522 * atree.ads: Minor comment fix.
12523 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
12524 a-witeio.ads, sem_prag.adb: Minor reformatting.
12525
125262011-08-01 Doug Rupp <rupp@adacore.com>
12527
12528 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
12529 pointers. Use descrip.h header file for convenience. Add some
12530 comments.
12531
125322011-08-01 Robert Dewar <dewar@adacore.com>
12533
12534 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
12535 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
12536 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
12537 New procedure.
12538 (Check_Aspect_At_End_Of_Declarations): New procedure
12539 (Analye_Aspect_Specification): Minor changes for above procedures
12540 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
12541 specification node as well.
12542
125432011-08-01 Pascal Obry <obry@adacore.com>
12544
12545 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
12546 Windows files. Use GetFilesAttributes() in this case to check for file
12547 existence instead of returning with an error code.
12548
125492011-08-01 Vincent Celier <celier@adacore.com>
12550
12551 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
12552 High is above Source length.
12553
125542011-08-01 Robert Dewar <dewar@adacore.com>
12555
12556 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
12557
125582011-08-01 Robert Dewar <dewar@adacore.com>
12559
12560 * aspects.ads (Boolean_Aspects): New subtype.
12561 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
12562 for derived types in cases where the parent type and derived type have
12563 aspects.
12564 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
12565 with aspects when parent type also has aspects.
12566 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
12567 boolean expression at this point).
12568 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
12569 accordance with final decision on the Ada 2012 feature.
12570 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
12571
125722011-08-01 Matthew Heaney <heaney@adacore.com>
12573
12574 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
12575
125762011-08-01 Pascal Obry <obry@adacore.com>
12577
12578 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
12579 Fix Replace_Slice when High is above current string size.
12580 (Replace_Slice): Fix DL computation when High is above current
12581 string length.
12582
125832011-08-01 Gary Dismukes <dismukes@adacore.com>
12584
12585 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
12586
125872011-08-01 Matthew Heaney <heaney@adacore.com>
12588
12589 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
12590 of node.
12591
125922011-08-01 Pascal Obry <obry@adacore.com>
12593
12594 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
12595 reformatting.
12596
125972011-08-01 Ed Schonberg <schonberg@adacore.com>
12598
12599 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
12600 access to protected subprograms in generic bodies.
12601 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
12602 protected type, indicate that the convention of the subprogram is
12603 Convention_Protected, because it may be used in subsequent declarations
12604 within the protected declaration.
12605
126062011-08-01 Vincent Celier <celier@adacore.com>
12607
12608 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
12609 and "final" procedures when the name of the library is "ada", to avoid
12610 duplicate symbols "adainit" and "adafinal" in executables.
12611
126122011-08-01 Ed Schonberg <schonberg@adacore.com>
12613
12614 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
12615 quantified expression that appears within a postcondition and uses the
12616 Ada2012 'Result attribute.
12617
126182011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12619
12620 * init.c (__gnat_error_handler): Cast reason to int.
12621 (__gnat_install_handler): Explain sa_sigaction use.
12622
126232011-07-24 Eric Botcazou <ebotcazou@adacore.com>
12624
12625 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
12626 subprogram has copy-in copy-out parameters, try to promote the mode of
12627 the return type if it is passed in registers.
12628
126292011-07-24 Eric Botcazou <ebotcazou@adacore.com>
12630
12631 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
12632 left operand as addressable.
12633
126342011-07-24 Eric Botcazou <ebotcazou@adacore.com>
12635
12636 * gcc-interface/gigi.h (build_function_stub): Remove.
12637 (build_return_expr): Likewise.
12638 (convert_vms_descriptor): Declare.
12639 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
12640 (build_function_stub): Move to...
12641 * gcc-interface/utils2.c (build_return_expr): Move to...
12642 * gcc-interface/trans.c (build_function_stub): ...here.
12643 (build_return_expr): ...here.
12644 (Subprogram_Body_to_gnu): Add local variable for language_function.
12645 Disconnect the parameter attributes cache, if any, once done with it.
12646 Call end_subprog_body only after setting the end_locus.
12647 Build the stub associated with the function, if any, at the very end.
12648 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
12649 variables and streamline control flow.
12650
126512011-07-23 Arnaud Charlet <charlet@adacore.com>
12652
12653 PR ada/49819
12654 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
12655 g-trasym-dwarf.adb.
12656
126572011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12658
12659 PR bootstrap/49794
12660 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
12661 Assign to act.sa_sigaction.
12662 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
12663 current->return_address to char * before arithmetic.
12664
126652011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12666
12667 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
12668 Correct argument types.
12669 Extract code from reason.
12670 (__gnat_install_handler): Assign to act.sa_sigaction.
12671
126722011-07-21 Eric Botcazou <ebotcazou@adacore.com>
12673
12674 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
12675 (GNAT1_OBJS): ...here.
12676
126772011-07-15 Eric Botcazou <ebotcazou@adacore.com>
12678
12679 PR ada/48711
12680 * g-socthi-mingw.adb (Fill): Fix formatting.
12681
12682 * gcc-interface/gigi.h: Move around comment.
12683
126842011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12685
12686 PR ada/46350
12687 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
12688
126892011-07-14 Florian Weimer <fw@deneb.enyo.de>
12690
12691 PR ada/48711
12692 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
12693
126942011-07-13 Eric Botcazou <ebotcazou@adacore.com>
12695
12696 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
12697 range comparison if Pmode is SImode.
12698
126992011-07-12 Laurent GUERBY <laurent@guerby.net>
12700 Eric Botcazou <ebotcazou@adacore.com>
12701
12702 * adadecode.c: Wrap up in extern "C" block.
12703 * adadecode.h: Likewise.
12704 * adaint.c: Likewise. Remove 'const' keyword.
12705 * adaint.h: Likewise.
12706 * argv.c: Likewise.
12707 * atree.h: Likewise.
12708 * cio.c: Likewise.
12709 * cstreams.c: Likewise.
12710 * env.c: Likewise.
12711 * exit.c: Likewise.
12712 * fe.h: Likewise.
12713 * final.c: Likewise.
12714 * init.c: Likewise.
12715 * initialize.c: Likewise.
12716 * link.c: Likewise.
12717 * namet.h: Likewise.
12718 * nlists.h: Likewise.
12719 * raise.c: Likewise.
12720 * raise.h: Likewise.
12721 * repinfo.h: Likewise.
12722 * seh_init.c: Likewise.
12723 * targext.c: Likewise.
12724 * tracebak.c: Likewise.
12725 * uintp.h: Likewise.
12726 * urealp.h: Likewise.
12727 * xeinfo.adb: Wrap up generated C code in extern "C" block.
12728 * xsinfo.adb: Likewise.
12729 * xsnamest.adb: Likewise.
12730 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
12731 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
12732 * gcc-interface/misc.c: Likewise.
12733 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
12734 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
12735 ada/targext.o here...
12736 (GNAT_ADA_OBJS): ...and not here.
12737 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
12738 (GNATBIND_OBJS): Reorder.
12739
127402011-07-07 Richard Henderson <rth@redhat.com>
12741
12742 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
12743 dwarf2out_frame_init.
12744
127452011-07-07 Eric Botcazou <ebotcazou@adacore.com>
12746
12747 * gcc-interface/misc.c (gnat_init): Tweak previous change.
12748
127492011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12750
12751 PR target/39150
12752 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
12753
127542011-07-06 Richard Guenther <rguenther@suse.de>
12755
12756 * gcc-interface/misc.c (gnat_init): Merge calls to
12757 build_common_tree_nodes and build_common_tree_nodes_2.
12758 Re-initialize boolean_false_node.
12759
127602011-07-02 Eric Botcazou <ebotcazou@adacore.com>
12761 Olivier Hainque <hainque@adacore.com>
12762 Nicolas Setton <setton@adacore.com>
12763
12764 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
12765 the type according to the ARTIFICIAL_P parameter.
12766 (create_type_decl): Likewise.
12767 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
12768
127692011-07-01 Eric Botcazou <ebotcazou@adacore.com>
12770
12771 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
12772 (gnatbind): Likewise.
12773
127742011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12775
12776 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
12777
127782011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12779
12780 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
12781 local variable throughout. Remove useless call to Base_Type.
12782 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
12783 Take it also into account for the volatileness of the field. Set the
12784 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
12785
127862011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12787
12788 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
12789 on a dereference built for a by-ref object if it has an address clause.
12790
127912011-06-18 Eric Botcazou <ebotcazou@adacore.com>
12792
12793 * einfo.ads (Address_Taken): Document use for the second argument of
12794 Asm_Input and Asm_Output attributes.
12795 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
12796 argument is an entity name, then set Address_Taken on it.
12797 <Attribute_Asm_Output>: Likewise.
12798 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
12799 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
12800 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
12801 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
12802
128032011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
12804
12805 PR middle-end/46500
12806 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
12807
128082011-06-14 Joseph Myers <joseph@codesourcery.com>
12809
12810 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
12811 (ada/utils.o): Update dependencies.
12812 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
12813 ../../../libcpp/libcpp.a.
12814 * gcc-interface/utils.c: Include common/common-target.h.
12815 (process_attributes): Use targetm_common.have_named_sections.
12816
128172011-06-07 Richard Guenther <rguenther@suse.de>
12818
12819 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
12820 set_sizetype.
12821
128222011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12823
12824 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
12825 TREE_THIS_NOTRAP flag.
12826
128272011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12828
12829 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
12830 Fix thinko.
12831
128322011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12833
12834 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
12835 constants whose full view has discriminants specially.
12836
128372011-06-06 Eric Botcazou <ebotcazou@adacore.com>
12838
12839 * gcc-interface/utils.c: Include diagnostic.h.
12840 (gnat_write_global_declarations): Output debug information for all
12841 global type declarations before finalizing the compilation unit.
12842 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
12843
128442011-05-25 Jakub Jelinek <jakub@redhat.com>
12845
12846 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
12847
128482011-05-25 Kai Tietz <ktietz@redhat.com>
12849
12850 * adaint.c (__gnat_to_canonical_file_list_next): Use array
12851 initialization instead of const/none-const pointer assignment.
12852
128532011-05-24 Joseph Myers <joseph@codesourcery.com>
12854
12855 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
12856 $(EXTRA_GNAT1_OBJS).
12857 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
12858 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
12859 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
12860 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
12861 libcommon-target.a instead of prefix.o.
12862
128632011-05-21 Joseph Myers <joseph@codesourcery.com>
12864
12865 PR ada/49097
12866 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
12867
128682011-05-20 Joseph Myers <joseph@codesourcery.com>
12869
12870 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
12871 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
12872 instead of version.o.
12873
2d0dd51a 128742011-05-18 Kai Tietz <ktietz@redhat.com>
052e0603
AC
12875
12876 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
12877 boolean_false_node instead of integer_zero_node.
12878 (convert_with_check): Likewise.
12879 * gcc-interface/decl.c (choices_to_gnu): Likewise.
12880
128812011-05-12 Eric Botcazou <ebotcazou@adacore.com>
12882
12883 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
12884 type of the parameter is an unconstrained array, convert the actual to
12885 the type of the formal in the In Out and Out cases as well.
12886
128872011-05-11 Nathan Froyd <froydnj@codesourcery.com>
12888
12889 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
12890 call build_function_type_array or build_varargs_function_type_array
12891 instead.
12892 (create_subprog_type): Don't call build_function_type; call
12893 build_function_type_vec instead.
12894
128952011-05-11 Nathan Froyd <froydnj@codesourcery.com>
12896
12897 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
12898 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
12899 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
12900
129012011-05-07 Eric Botcazou <ebotcazou@adacore.com>
12902
12903 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
12904
12905 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
12906 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
12907
129082011-05-05 Nathan Froyd <froydnj@codesourcery.com>
12909
12910 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
12911
129122011-05-05 Nathan Froyd <froydnj@codesourcery.com>
12913
12914 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
12915 instead of accessing TYPE_ARG_TYPES directly.
12916 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
12917
129182011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12919
12920 PR ada/48844
12921 * gcc-interface/gigi.h (get_variant_part): Declare.
12922 * gcc-interface/decl.c (get_variant_part): Make global.
12923 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
12924 types have the same constant size, are record types and T1 has a
12925 variant part while T2 doesn't.
12926
129272011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12928
12929 * gcc-interface/utils.c (begin_subprog_body): Do not call
12930 get_pending_sizes.
12931 (end_subprog_body): Likewise.
12932
129332011-05-04 Richard Guenther <rguenther@suse.de>
12934
12935 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
12936 int_const_binop.
12937 (pos_to_constructor): Likewise.
12938
129392011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2c7f9cc0 12940 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
12941
12942 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
12943 of build_function_type. Adjust calls to...
12944 (build_raise_check): ...this. Do not take a void_tree parameter.
12945 Call build_function_type_list instead of build_function_type.
12946 Fix head comment and swap couple of conditional blocks.
12947
129482011-04-30 Eric Botcazou <ebotcazou@adacore.com>
12949
12950 * gnatvsn.ads (Library_Version): Bump to 4.7.
12951 (Current_Year): Bump to 2011.
12952
129532011-04-29 Michael Matz <matz@suse.de>
12954
12955 * gcc-interface/misc.c (gnat_handle_option): Set
12956 warn_maybe_uninitialized.
12957
129582011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
12959
12960 * gnat_ugn.texi (Complexity Metrics Control): Update link to
12961 the Watson/McCabe paper.
12962
129632011-04-23 Jim Meyering <meyering@redhat.com>
12964
12965 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
12966
129672011-04-22 Eric Botcazou <ebotcazou@adacore.com>
12968
12969 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
12970 onto the new type.
12971
129722011-04-22 Eric Botcazou <ebotcazou@adacore.com>
12973
12974 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
12975 parameter.
12976 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
12977 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
12978 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
12979 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
12980 <all>: Do not set flags on the reused DECL node coming from an alias.
12981 Set DECL_IGNORED_P on the DECL node built for subprograms if they
12982 don't need debug info here...
12983 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
12984 (gigi): Adjust calls to create_subprog_decl.
12985 (build_raise_check): Likewise.
12986 (establish_gnat_vms_condition_handler): Likewise.
12987 (Compilation_Unit_to_gnu): Likewise.
12988 (gnat_to_gnu): Likewise.
12989
129902011-04-21 Eric Botcazou <ebotcazou@adacore.com>
12991
12992 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
12993 (NO_REORDER_ADAFLAGS): New variable.
12994 (EXTRA_GNATTOOLS): Always define.
12995 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
12996 Clean up and adjust list of files compiled with special options.
12997 * gcc-interface/Make-lang.in: Likewise.
12998 (ada/decl.o): Cosmetical change.
12999 (ada/misc.o): Remove dependency on $(PLUGIN_H).
13000
130012011-04-20 Jim Meyering <meyering@redhat.com>
13002
13003 * initialize.c (__gnat_initialize): Remove useless if-before-free.
13004
130052011-04-17 Eric Botcazou <ebotcazou@adacore.com>
13006
13007 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
13008 $(CFLAGS) on the link line.
13009
130102011-04-17 Eric Botcazou <ebotcazou@adacore.com>
13011
13012 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
13013 padded type built for the return type if it is unconstrained.
13014
130152011-04-14 Nathan Froyd <froydnj@codesourcery.com>
13016
13017 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
13018
130192011-04-12 Nathan Froyd <froydnj@codesourcery.com>
13020
13021 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
13022 before calling TREE_CHAIN.
13023 * gcc-interface/misc.c (gnat_init_ts): New function.
13024 (LANG_HOOKS_INIT_TS): Define.
13025
130262011-04-12 Martin Jambor <mjambor@suse.cz>
13027
13028 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
13029 instead of cgraph_node.
13030
130312011-04-08 Eric Botcazou <ebotcazou@adacore.com>
13032
13033 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
13034 alignment on fields of the RETURN type built for the Copy-In Copy-Out
13035 mechanism.
13036
130372011-04-08 Eric Botcazou <ebotcazou@adacore.com>
13038
13039 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
13040 of aggregate types that contain a placeholder.
13041
130422011-04-08 Nathan Froyd <froydnj@codesourcery.com>
13043
13044 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
13045 TYPE_ARG_TYPES.
13046 (handle_type_generic_attribute): Likewise.
13047
130482011-04-04 Eric Botcazou <ebotcazou@adacore.com>
13049
13050 PR ada/47163
13051 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
13052
130532011-04-04 Kai Tietz <ktietz@redhat.com>
13054
13055 PR ada/47163
13056 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
13057 to flag value.
13058
130592011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13060
13061 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
13062 type case, do not strip a padding type around the array type.
13063
130642011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13065
13066 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
13067 types.
13068
130692011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13070
13071 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
13072 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
13073 code for -feliminate-unused-debug-types.
13074 (gnat_post_options): Likewise.
13075
130762011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13077
13078 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
13079 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
13080 distinct copy.
13081
130822011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13083
13084 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
13085 DECL_ARTIFICIAL flag on enumeration types.
13086
130872011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13088
13089 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
13090 fat pointer types artificial unconditionally.
13091 <E_Array_Subtype>: Attach the base array type as a parallel type if it
13092 isn't artificial.
13093
130942011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13095
13096 * gcc-interface/gigi.h (get_dummy_type): Declare.
13097 (build_dummy_unc_pointer_types): Likewise.
13098 (finish_fat_pointer_type): Likewise.
13099 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
13100 fat pointer type has been built, complete it in place.
13101 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
13102 and thin pointers. Remove useless variable.
13103 (finish_fat_pointer_type): Make global and move to...
13104 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
13105 (get_dummy_type): New function.
13106 (build_dummy_unc_pointer_types): Likewise.
13107 (gnat_pushdecl): Propage the name to the anonymous variants only.
13108 (update_pointer_to): Only adjust the pointer types in the unconstrained
13109 array case.
13110
131112011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13112
13113 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
13114 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
13115 if this is a Taft amendment type and the full declaration is available.
13116 * gcc-interface/trans.c (process_type): Likewise.
13117 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
13118 (process_freeze_entity): Likewise.
13119 * gcc-interface/utils.c (dummy_global): New static variable.
13120 (gnat_write_global_declarations): If there are types declared as used
13121 at the global level, insert them in the global hash table.
13122
131232011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13124
13125 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
13126 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
13127 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
13128 copy.
13129 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
13130 flag of the type accordingly.
13131 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
13132
131332011-04-02 Eric Botcazou <ebotcazou@adacore.com>
13134
13135 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
13136 finalizing types when updating the pointers to the designated type.
13137 <all>: Finalize the deferred types even if we didn't defer processing
13138 of incomplete types in this invocation.
13139
131402011-04-01 Olivier Hainque <hainque@adacore.com>
2c7f9cc0
AS
13141 Nicolas Setton <setton@adacore.com>
13142 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
13143
13144 * gcc-interface/misc.c (gnat_descriptive_type): New function.
13145 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
13146
131472011-03-28 Kai Tietz <ktietz@redhat.com>
13148
13149 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
13150 Windows targets.
13151 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
13152 * system-mingw.ads (System): Change ZCX_By_Default default to True.
13153
13154 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
13155
131562011-03-28 Tristan Gingold <gingold@adacore.com>
13157
13158 PR ada/44431
13159 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
13160 Use ada output of gnatbind.
13161 (ada/b_gnatb.adb): Ditto.
13162 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
13163 (ada.mostlyclean, ada.stage1)
13164 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
13165 (ada.stagefeedback): Adjust.
13166 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
13167 Use ada output of gnatbind.
13168 (b_gnatm.adb): Ditto.
13169 (b_gnatl.o, b_gnatm.o): New rules.
13170
131712011-03-26 Eric Botcazou <ebotcazou@adacore.com>
13172
13173 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
13174 for the padded type built to support a specified size or alignment.
13175
131762011-03-26 Eric Botcazou <ebotcazou@adacore.com>
13177
13178 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
13179 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
13180 unconditionally to the end of the unit when the designated type is
13181 limited_with'ed.
13182 <all>: Rename local variable. Attempt to un-defer types only and do it
13183 for limited_with'ed types as well.
13184 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
13185 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
13186 consistently and remove redundant call to finalize_from_with_types.
13187
131882011-03-26 Eric Botcazou <ebotcazou@adacore.com>
13189
13190 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
13191 subprograms without a previous spec declared in the same unit.
13192 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
13193 subprograms at the end of the unit instead of at the beginning.
13194 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
13195 isn't public for the special handling of non-inline functions nested
13196 inside inline external functions.
13197
131982011-03-25 Jeff Law <law@redhat.com>
13199
13200 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
13201
132022011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13203
13204 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
13205 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
13206 to compute Set_Size_Depends_On_Discriminant.
13207 (Layout_Type): Call it on array types in back-end layout mode.
13208 * sem_util.adb (Requires_Transient_Scope): Return true for array
13209 types only if the size depends on the value of discriminants.
13210 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
13211 type if the RHS is a call to a function that returns an unconstrained
13212 type with default discriminant.
13213
132142011-03-24 Eric Botcazou <ebotcazou@adacore.com>
13215
13216 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
13217 non-conversion to the nominal result type at the end.
13218
132192011-03-23 Eric Botcazou <ebotcazou@adacore.com>
13220
13221 * gcc-interface/trans.c (create_temporary): New function taken from...
13222 (create_init_temporary): ...here. Call it.
13223 (call_to_gnu): Create the temporary for the return value early, if any.
13224 Create it for a function with copy-in/copy-out parameters if there is
13225 no target; in other cases of copy-in/copy-out, use another temporary.
13226 Push the new binding level lazily. Add and rename local variables.
13227
132282011-03-23 Eric Botcazou <ebotcazou@adacore.com>
13229
13230 * gcc-interface/decl.c (validate_size): Improve comments and tweak
13231 error message.
13232 (set_rm_size): Likewise.
13233
132342011-03-23 Eric Botcazou <ebotcazou@adacore.com>
13235
13236 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
13237 for the padded type built in order to support a specified alignment.
13238 Fix incorrect formatting.
13239
132402011-03-21 Eric Botcazou <ebotcazou@adacore.com>
13241
13242 PR bootstrap/48216
13243 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
13244
132452011-03-21 Eric Botcazou <ebotcazou@adacore.com>
13246
13247 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
13248 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
13249 to the end of the list. Adjust recursive call. Rename local variable.
13250 If REORDER is true, reorder components of the record type.
13251 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
13252 components_to_record and adjust the parameter list.
13253
132542011-03-21 Eric Botcazou <ebotcazou@adacore.com>
13255
13256 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
13257 disabled, use the variable for bounds of loop iteration scheme.
13258
132592011-03-21 Kai Tietz <ktietz@redhat.com>
13260
13261 PR target/12171
13262 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
13263
132642011-03-17 Eric Botcazou <ebotcazou@adacore.com>
13265
13266 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
13267 out whether the expression is read-only. Short-circuit placeholder
13268 case and rename a couple of local variables.
13269
132702011-03-17 Eric Botcazou <ebotcazou@adacore.com>
13271
13272 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
13273 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
13274 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
13275 (convert): Deal with conversions from a smaller form type specially.
13276
132772011-02-14 Eric Botcazou <ebotcazou@adacore.com>
13278
13279 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
13280 its argument, except for the special -I- switch.
13281
132822011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
13283
13284 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
13285 "Ada Issues".
13286
132872011-02-08 Eric Botcazou <ebotcazou@adacore.com>
13288
13289 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
13290
132912011-02-03 Eric Botcazou <ebotcazou@adacore.com>
13292
13293 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
13294 GNAT_FORMAL.
13295 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
13296 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
13297 instead of GNAT_FORMAL. Protect the expression against multiple uses.
13298 Do not generate the check directly, instead instantiate the template
13299 check present in the descriptor.
13300 (make_descriptor_field): Move around.
13301 (build_vms_descriptor32): Build a template check in the POINTER field.
13302 (build_vms_descriptor): Remove useless suffixes.
13303 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
13304
133052011-01-26 Eric Botcazou <ebotcazou@adacore.com>
13306
13307 PR bootstrap/47467
13308 * targext.c: Include target files if IN_RTS is defined.
13309
133102011-01-26 Richard Guenther <rguenther@suse.de>
13311
13312 PR bootstrap/47467
13313 * targext.c: Include config.h.
13314 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
13315 dependency.
13316
133172011-01-04 Pascal Obry <obry@adacore.com>
2c7f9cc0 13318 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
13319
13320 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
13321
133222011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13323
13324 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
13325 end-of-case on the end label and its associated gotos, if any.
13326
133272011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13328
13329 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
13330 expressions of the parameter cache within the statement group of
13331 the CICO mechanism.
13332
133332011-01-04 Olivier Hainque <hainque@adacore.com>
2c7f9cc0 13334 Eric Botcazou <ebotcazou@adacore.com>
052e0603
AC
13335
13336 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
13337 (set_end_locus_from_node): New function.
13338 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
13339 make and the function end_locus.
13340 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
13341 for the elaboration subprogram.
13342 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
13343 set the end_locus of the expression as well.
13344
133452011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13346
13347 PR ada/47131
13348 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
13349 variables that are referenced in exception handlers volatile.
13350
13351
13352\f
13353Copyright (C) 2011 Free Software Foundation, Inc.
13354
13355Copying and distribution of this file, with or without modification,
13356are permitted in any medium without royalty provided the copyright
13357notice and this notice are preserved.
13358
13359 * gnat_rm.texi: Ramification of pragma Eliminate documentation
13360 - fix bugs in the description of Source_Trace;
13361 - get rid of UNIT_NAME;
13362
4fbad0ba
AC
133632011-08-02 Javier Miranda <miranda@adacore.com>
13364
13365 * exp_ch9.adb
13366 (Build_Dispatching_Requeue): Adding support for VM targets
13367 since we cannot directly reference the Tag entity.
13368 * exp_sel.adb (Build_K): Adding support for VM targets.
13369 (Build_S_Assignment): Adding support for VM targets.
13370 * exp_disp.adb
13371 (Default_Prim_Op_Position): In VM targets do not restrict availability
13372 of predefined interface primitives to compiling in Ada 2005 mode.
13373 (Is_Predefined_Interface_Primitive): In VM targets this service is not
13374 restricted to compiling in Ada 2005 mode.
13375 (Make_VM_TSD): Generate code that declares and initializes the OSD
13376 record. Needed to support dispatching calls through synchronized
13377 interfaces.
13378 * exp_ch3.adb
13379 (Make_Predefined_Primitive_Specs): Enable generation of predefined
13380 primitives associated with synchronized interfaces.
13381 (Make_Predefined_Primitive_Bodies): Enable generation of predefined
13382 primitives associated with synchronized interfaces.
13383
133842011-08-02 Yannick Moy <moy@adacore.com>
13385
13386 * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
13387 statements hidden in SPARK if preceded by the HIDE directive
13388 (Parse_Exception_Handlers): mark each exception handler in a sequence of
13389 exception handlers as hidden in SPARK if preceded by the HIDE directive
13390 * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
13391 if starting with the HIDE directive
13392 * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
13393 starting with the HIDE directive; mark the declarations in a private
13394 part as hidden in SPARK if the private part starts with the HIDE
13395 directive
13396 * restrict.adb, restrict.ads
13397 (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
13398 (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
13399 argument node belongs to a part which is hidden in SPARK
13400 (Check_SPARK_Restriction): do not issue violations on nodes in hidden
13401 parts in SPARK; protect the possibly costly call to
13402 Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
13403 * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
13404 * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
13405 Accumulate_Token_Checksum_GNAT_5_03): add case for new token
13406 Tok_SPARK_Hide.
13407 (Scan): recognize special comment starting with '#' and followed by
13408 SPARK keyword "hide" as a HIDE directive.
13409
134102011-08-02 Yannick Moy <moy@adacore.com>
13411
13412 * types.ads, erroutc.ads: Minor reformatting.
13413
134142011-08-02 Vincent Celier <celier@adacore.com>
13415
13416 * link.c: Add response file support for cross platforms.
13417
6ff6152d
ES
134182011-08-02 Ed Schonberg <schonberg@adacore.com>
13419
13420 * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
13421 in an association, set parent field of copy before partial analysis.
13422 * sem_res.adb (Resolve_Slice): create reference to itype only when
13423 expansion is enabled.
13424
975c6896
YM
134252011-08-02 Yannick Moy <moy@adacore.com>
13426
13427 * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
13428 for new flag denoting which subprogram bodies are in ALFA
13429 * restrict.adb, sem_ch7.adb: Update comment
13430 * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
13431 sem_ch9.adb, sem_res.adb: Add calls to
13432 Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
13433 * sem_ch6.adb (Analyze_Function_Return): add calls to
13434 Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
13435 middle of the body, and extended return.
13436 (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
13437 False when missing return.
13438 (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
13439 to True for subprograms whose spec is in ALFA. Remove later on the flag
13440 on the entity used for a subprogram body when there exists a separate
13441 declaration.
13442 * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
13443 if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
13444 False, otherwise do nothing.
13445
afc8324d
AC
134462011-08-02 Robert Dewar <dewar@adacore.com>
13447
13448 * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
13449
134502011-08-02 Yannick Moy <moy@adacore.com>
13451
13452 * sem_ch4.ads: minor formatting.
13453
2ba431e5
YM
134542011-08-02 Yannick Moy <moy@adacore.com>
13455
13456 * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
13457 debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
13458 errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
13459 restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
13460 opt.ads: cleanup of SPARK mode
13461
0f853035
YM
134622011-08-02 Yannick Moy <moy@adacore.com>
13463
13464 * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
13465 types.
13466 * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
13467 (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
13468 * sem_ch3.adb
13469 (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
13470 (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
13471 (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
13472 (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
13473 types.
13474 (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
13475 non-static range.
13476 * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
13477 functions whose return type is not in ALFA.
13478 (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
13479 specifications.
13480 (Process_Formals): unset Is_In_ALFA flag for subprograms if a
13481 parameter's type is not in ALFA.
13482 * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
13483 types are in ALFA.
13484
d2b10647
ES
134852011-08-02 Ed Schonberg <schonberg@adacore.com>
13486
13487 * sem_ch6 (Analyze_Expression_Function): treat the function as
13488 Inline_Always, and introduce a subprogram declaration for it when it is
13489 not a completion.
13490 * inline.adb (Add_Inlined_Body): recognize bodies that come from
13491 expression functions, so that the back-end can determine whether they
13492 can in fact be inlined.
13493 * sem_util.adb (Is_Expression_Function): predicate to determine whether
13494 a function body comes from an expression function.
13495
c7b9d548
AC
134962011-08-02 Gary Dismukes <dismukes@adacore.com>
13497
13498 * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
13499 null exclusions to test Can_Never_Be_Null on the anonymous access types
13500 of the formals rather than testing the formals themselves. Exclude this
13501 check in cases where the Old_Formal is marked as a controlling formal,
13502 to avoid issuing spurious errors for bodies completing dispatching
13503 operations (due to the flag not getting set on controlling access
13504 formals in body specs).
13505 (Find_Corresponding_Spec): When checking full and subtype conformance of
13506 subprogram bodies in instances, pass Designated and E in that order, for
13507 consistency with the expected order of the formals (New_Id followed by
13508 Old_Id).
13509
135102011-08-02 Robert Dewar <dewar@adacore.com>
13511
13512 * sem_ch8.adb: Minor reformatting.
13513
1138cf59
AC
135142011-08-02 Ed Schonberg <schonberg@adacore.com>
13515
13516 * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
13517 Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
13518 primitive operations of class-wide actuals.
13519
135202011-08-02 Javier Miranda <miranda@adacore.com>
13521
13522 * exp_atag.ads, exp_atag.adb
13523 (Build_Common_Dispatching_Select_Statements): Remove argument Loc
13524 since its value is implicitly passed in argument Typ.
13525 * exp_disp.adb (Make_Disp_Conditional_Select_Body,
13526 Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
13527 Build_Common_Dispatching_Select_Statements.
13528
7b9db926
RD
135292011-08-02 Robert Dewar <dewar@adacore.com>
13530
13531 * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
13532 exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
13533 Minor reformatting.
13534
e8374e7a
AC
135352011-08-02 Robert Dewar <dewar@adacore.com>
13536
13537 * sem_res.adb: Minor reformatting.
13538 * sem_prag.adb: Minor reformatting.
13539
135402011-08-02 Javier Miranda <miranda@adacore.com>
13541
13542 * exp_atag.adb, exp_atags.ads
13543 (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
13544 by the tagged type Entity. Required to use this routine in the VM
13545 targets since we do not have available the Tag entity in the VM
13546 platforms.
13547 * exp_ch6.adb
13548 (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
13549 Ada.Tags has not been previously loaded.
13550 * exp_ch7.adb
13551 (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
13552 Build_VM_TSDs if package Ada.Tags has not been previously loaded.
13553 * sem_aux.adb
13554 (Enclosing_Dynamic_Scope): Add missing support to handle the full
13555 view of enclosing scopes. Required to handle enclosing scopes that
13556 are synchronized types whose full view is a task type.
13557 * exp_disp.adb
13558 (Build_VM_TSDs): Minor code improvement to avoid generating and
13559 analyzing lists with empty nodes.
13560 (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
13561 (Make_Disp_Conditional_Select_Body): Add support for VM targets.
13562 (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
13563 (Make_Disp_Timed_Select_Body): Add support for VM targets.
13564 (Make_Select_Specific_Data_Table): Add support for VM targets.
13565 (Make_VM_TSD): Generate code to initialize the SSD structure of
13566 the TSD.
13567
135682011-08-02 Yannick Moy <moy@adacore.com>
13569
13570 * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
13571 cross-references section in ALI.
13572 * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
13573 (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
13574 Sub).
13575 (Enclosing_Subprogram_Or_Package): new function to return the enclosing
13576 subprogram or package entity of a node
13577 (Is_Local_Reference_Type): new function returns True for references
13578 selected in local cross-references.
13579 (Lt): function extracted from Lt in Output_References
13580 (Write_Entity_Name): function extracted from Output_References
13581 (Generate_Definition): generate reference with type 'D' for definition
13582 of objects (object declaration and parameter specification), with
13583 appropriate locations and units, for use in local cross-references.
13584 (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
13585 references of type 'I' for initialization in object definition.
13586 (Output_References): move part of function Lt and procedure
13587 Write_Entity_Name outside of the body. Ignore references of types 'D'
13588 and 'I' introduced for local cross-references.
13589 (Output_Local_References): new procedure to output the local
13590 cross-references sections.
13591 (Lref_Entity_Status): new array defining whether an entity is a local
13592 * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
13593 with 'I' type when initialization expression is present.
13594 * get_scos.adb, get_scos.ads: Correct comments and typos
13595
1f6439e3
AC
135962011-08-02 Javier Miranda <miranda@adacore.com>
13597
13598 * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
13599 the JVM target.
13600 * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
13601 the JVM target.
13602 * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
13603 TSD support.
13604
136052011-08-02 Vincent Celier <celier@adacore.com>
13606
13607 * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
13608 (No_Space_Img): New function
13609 (Find_Excluded_Sources): When reading from a file, record the file name
13610 and the line number for each excluded source.
13611 (Mark_Excluded_Sources): When reporting an error, if the excluded
13612 sources were read from a file, include file name and line number in
13613 the error message.
13614
136152011-08-02 Ed Schonberg <schonberg@adacore.com>
13616
13617 * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
13618
ab027d28
RD
136192011-08-02 Robert Dewar <dewar@adacore.com>
13620
13621 * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
13622
b3b28b0c
JM
136232011-08-02 Javier Miranda <miranda@adacore.com>
13624
13625 * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
13626 generation of TSDs to the DOTNET compiler.
13627 * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
13628 generation of TSDs to the DOTNET compiler.
13629
9732e886
JM
136302011-08-02 Javier Miranda <miranda@adacore.com>
13631
13632 * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
13633 record of all the tagged types declared inside library level package
13634 declarations, library level package bodies or library level subprograms.
13635 * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
13636 associated with a given tagged type.
13637 (Build_VM_TSDs): New subprogram.
13638 * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
13639 compilation units that are subprograms.
13640 * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
13641 compilation units that are package bodies.
13642 (Expand_N_Package_Declaration): Generate TSDs of the main compilation
13643 units that are a package declaration or a package instantiation.
13644 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
13645 reorganization to improve the error generated by the frontend when the
13646 function Ada.Tags.Secondary_Tag is not available.
13647 * rtsfind.ads (RE_Register_TSD): New runtime entity.
13648 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
13649
e526d0c7
AC
136502011-08-02 Javier Miranda <miranda@adacore.com>
13651
13652 * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
13653
136542011-08-02 Robert Dewar <dewar@adacore.com>
13655
13656 * s-imenne.ads: Minor reformatting.
13657
136582011-08-02 Robert Dewar <dewar@adacore.com>
13659
13660 * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
13661 * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
13662 * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
13663
136642011-08-02 Robert Dewar <dewar@adacore.com>
13665
13666 * einfo.ads (Materialize_Entity): Document this is only for renamings
13667 * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
13668 required debug information in the case where we transform the object
13669 declaration into a renaming declaration.
13670 * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
13671 object
13672 * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
13673 Materialize_Entity.
13674
5b1e6aca
RD
136752011-08-02 Robert Dewar <dewar@adacore.com>
13676
13677 * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
13678 Suppress_Init_Procs.
13679 * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
13680 Suppress_Initialization/Initialization_Suppressed.
13681 * gnat_rm.texi: New documentation for pragma Suppress_Initialization
13682 * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
13683 * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
13684 * sem_prag.adb: New processing for pragma Suppress_Initialization.
13685
5ad4969d
RD
136862011-08-02 Robert Dewar <dewar@adacore.com>
13687
13688 * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
13689 Minor reformatting.
13690
8c4ee6f5
AC
136912011-08-02 Ed Schonberg <schonberg@adacore.com>
13692
13693 * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
13694 only have inheritable classwide pre/postconditions.
13695
136962011-08-02 Javier Miranda <miranda@adacore.com>
13697
13698 * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
13699 * rtsfind.ads (RE_Check_TSD): New runtime entity.
13700 * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
13701 checks if the external tag of a type is the same as the external tag
13702 of some other declaration.
13703
0b3d16c0
AC
137042011-08-02 Thomas Quinot <quinot@adacore.com>
13705
13706 * s-taskin.ads: Minor reformatting.
13707
137082011-08-02 Emmanuel Briot <briot@adacore.com>
13709
13710 * g-comlin.adb (Display_Help): swap the order in which it prints the
13711 short help and the general usage.
13712
137132011-08-02 Ed Schonberg <schonberg@adacore.com>
13714
13715 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
13716 the aspect declarations and attach them to the generic copy for
13717 subsequent analysis.
13718 (Analyze_Subprogram_Instantiation): copy explicitly the aspect
13719 declarations of the generic tree to the new subprogram declarations.
13720 * sem_attr.adb (Check_Precondition_Postcondition): recognize
13721 conditions that apply to a subprogram instance.
13722
137232011-08-02 Robert Dewar <dewar@adacore.com>
13724
13725 * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
13726
137272011-08-02 Ed Schonberg <schonberg@adacore.com>
13728
13729 * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
13730 private type with a tagged full view is not derived in the immediate
13731 scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
13732
4637729f
AC
137332011-08-02 Robert Dewar <dewar@adacore.com>
13734
13735 * exp_ch4.adb: Minor reformatting.
13736
137372011-08-02 Ed Schonberg <schonberg@adacore.com>
13738
13739 * sem_ch5.adb (Analyze_Loop_Statement): If the iteration scheme is an
13740 Ada2012 iterator, the loop will be rewritten during expansion into a
13741 while loop with a cursor and an element declaration. Do not analyze the
13742 body in this case, because if the container is for indefinite types the
13743 actual subtype of the elements will only be determined when the cursor
13744 declaration is analyzed.
13745
137462011-08-02 Arnaud Charlet <charlet@adacore.com>
13747
13748 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
13749 size/alignment related attributes in CodePeer_Mode.
13750
137512011-08-02 Gary Dismukes <dismukes@adacore.com>
13752
13753 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
13754 Prepend_Element, since this can result in the operation getting the
13755 wrong slot in the full type's dispatch table if the full type has
13756 inherited operations. The incomplete type's operation will get added
13757 to the proper position in the full type's primitives
13758 list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
13759 (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
13760 dispatching operations, since there are cases where nonprimitive
13761 subprograms can get added to the list of incomplete dependents (such
13762 as subprograms in nested packages).
13763 * sem_ch6.adb (Process_Formals): First, remove test for being in a
13764 private part when determining whether to add a primitive with a
13765 parameter of a tagged incomplete type to the Private_Dependents list.
13766 Such primitives can also occur in the visible part, and should not have
13767 been excluded from being private dependents.
13768 * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
13769 RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
13770 list of a Taft-amendment incomplete type is a primitive before issuing
13771 an error that the full type must appear in the same unit. There are
13772 cases where nonprimitives can be in the list (such as subprograms in
13773 nested packages).
13774 * sem_disp.adb (Derives_From): Use correct condition for checking that
13775 a formal's type is derived from the type of the corresponding formal in
13776 the parent subprogram (the condition was completely wrong). Add
13777 checking that was missing for controlling result types being derived
13778 from the result type of the parent operation.
13779
4c60de0c
YM
137802011-08-02 Yannick Moy <moy@adacore.com>
13781
13782 * errout.adb (First_Node): minor renaming
13783 * restrict.adb (Check_Formal_Restriction): put restriction warning on
13784 first node.
13785
f5afb270
AC
137862011-08-02 Yannick Moy <moy@adacore.com>
13787
13788 * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
13789 before accessing operands.
13790 * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
13791 decide whether an initialization expression respects SPARK rules, as
13792 the plain node is the expanded one. This allows for more valid warnings
13793 to be issued.
13794 * gnat_rm.texi: Minor update.
13795
137962011-08-02 Arnaud Charlet <charlet@adacore.com>
13797
13798 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
13799 previous change.
13800
138012011-08-02 Robert Dewar <dewar@adacore.com>
13802
13803 * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
13804
138052011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
13806
13807 * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
13808 loop statements and the element renaming declaration with a block when
13809 the element type is controlled.
13810
138112011-08-02 Yannick Moy <moy@adacore.com>
13812
13813 * sinfo.ads: Minor formatting.
13814
138152011-08-02 Ed Schonberg <schonberg@adacore.com>
13816
13817 * sem_aggr.adb (Add_Association): if the association has a box and no
13818 expression, use the Sloc of the aggregate itself for the new
13819 association.
13820 * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
13821 the Original_Node.
13822
db72f10a
AC
138232011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
13824
13825 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
13826 When a container is provided via a function call, generate a renaming
13827 of the function result. This avoids the creation of a transient scope
13828 and the premature finalization of the container.
13829 * exp_ch7.adb (Is_Container_Cursor): Removed.
13830 (Wrap_Transient_Declaration): Remove the supression of the finalization
13831 of the list controller when the declaration denotes a container cursor,
13832 it is not needed.
13833
138342011-08-02 Yannick Moy <moy@adacore.com>
13835
13836 * restrict.adb (Check_Formal_Restriction): only issue a warning if the
13837 node is from source, instead of the original node being from source.
13838 * sem_aggr.adb
13839 (Resolve_Array_Aggregate): refine the check for a static expression, to
13840 recognize also static ranges
13841 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
13842 Array_Type_Declaration): postpone the test for the type being a subtype
13843 mark after the type has been resolved, so that component-selection and
13844 expanded-name are discriminated.
13845 (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
13846 to distinguish the case of an iteration scheme, so that an error is
13847 issed on a non-static range in SPARK except in an iteration scheme.
13848 * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
13849 In_Iter_Schm = True.
13850 * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
13851 user-defined operators so that they are allowed in renaming
13852 * sem_ch8.adb
13853 (Find_Selected_Component): refine the check for prefixing of operators
13854 so that they are allowed in renaming. Move the checks for restrictions
13855 on selector name after analysis discriminated between
13856 component-selection and expanded-name.
13857 * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
13858 concatenation argument of string type if it is static.
13859 * sem_util.adb, sem_util.ads
13860 (Check_Later_Vs_Basic_Declarations): add a new function
13861 Is_Later_Declarative_Item to decice which declarations are allowed as
13862 later items, in the two different modes Ada 83 and SPARK. In the SPARK
13863 mode, add that renamings are considered as later items.
13864 (Enclosing_Package): new function to return the enclosing package
13865 (Enter_Name): correct the rule for homonyms in SPARK
13866 (Is_SPARK_Initialization_Expr): default to returning True on nodes not
13867 from source (result of expansion) to avoid issuing wrong warnings.
13868
138692011-08-02 Ed Schonberg <schonberg@adacore.com>
13870
13871 * errout.adb: On anything but an expression First_Node returns its
13872 argument.
13873
23685ae6
AC
138742011-08-02 Pascal Obry <obry@adacore.com>
13875
13876 * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
13877
138782011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
13879
13880 * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
13881 Set the associated loop as the related expression of internally
13882 generated cursors.
13883 * exp_ch7.adb (Is_Container_Cursor): New routine.
13884 (Wrap_Transient_Declaration): Supress the finalization of the list
13885 controller when the declaration denotes a container cursor.
13886
138872011-08-02 Yannick Moy <moy@adacore.com>
13888
13889 * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
13890 command line now.
13891 * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
13892 expression is a simple expression. This check cannot be performed in
13893 the semantics, so just drop it.
13894 (P_Index_Or_Discriminant_Constraint): move check that the index or
13895 discriminant is a subtype mark to Analyze_Subtype_Declaration in the
13896 semantics. Other cases were previously checked in the semantics.
13897 * par-ch4.adb (P_Name): move checks that a selector name is not
13898 character literal or an operator symbol to Find_Selected_Component in
13899 the semantics
13900 * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
13901 declarations are not placed after later declarations in a separate
13902 procedure in Sem_Util (possibly not the best choice?), to be used both
13903 during parsing, for Ada 83 mode, and during semantic analysis, for
13904 SPARK mode.
13905 * par-endh.adb (Check_End): move check that end label is not missing
13906 to Process_End_Label in the semantics
13907 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
13908 the special case for SPARK restriction
13909 * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
13910 * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
13911 parameter Force to issue the error message even on internal node (used
13912 for generated end label). Call Check_Restriction to check when an error
13913 must be issued. In SPARK mode, issue an error message even if the
13914 restriction is not set.
13915 (Check_Restriction): new procedure with an additional out parameter to
13916 inform the caller that a message has been issued
13917 * sem_aggr.adb: Minor modification of message
13918 * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
13919 instead of issuing an error message directly
13920 * sem_ch3.adb (Analyze_Declarations): move here the check that basic
13921 declarations are not placed after later declarations, by calling
13922 Check_Later_Vs_Basic_Declarations
13923 (Analyze_Subtype_Declaration): move here the check that an index or
13924 discriminant constraint must be a subtype mark. Change the check that
13925 a subtype of String must start at one so that it works on subtype marks.
13926 * sem_ch4.adb (Analyze_Call): move here the check that a named
13927 association cannot follow a positional one in a call
13928 * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
13929 instead of issuing an error message directly
13930 * sem_ch8.adb (Find_Selected_Component): move here the check that a
13931 selector name is not a character literal or an operator symbol. Move
13932 here the check that the prefix of an expanded name cannot be a
13933 subprogram or a loop statement.
13934 * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
13935 procedure called from parsing and semantics to check that basic
13936 declarations are not placed after later declarations
13937 (Process_End_Label): move here the check that end label is not missing
13938
139392011-08-02 Arnaud Charlet <charlet@adacore.com>
13940
13941 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
13942 representation clause in codepeer mode, since it confuses CodePeer and
13943 does not bring useful info.
13944
139452011-08-02 Ed Falis <falis@adacore.com>
13946
13947 * init.c: initialize fp hw on MILS.
13948
139492011-08-02 Ed Schonberg <schonberg@adacore.com>
13950
13951 * errout.adb (First_Node): for bodies, return the node itself (small
13952 optimization). For other nodes, do not check source_unit if the node
13953 comes from Standard.
13954
d2d9cc22
AC
139552011-08-02 Robert Dewar <dewar@adacore.com>
13956
13957 * exp_ch3.adb: Minor comment additions.
13958 * sem_ch13.adb: Minor reformatting.
13959
139602011-08-02 Pascal Obry <obry@adacore.com>
13961
13962 * make.adb, makeutl.adb: Removes some superfluous directory separator.
13963
a01b9df6
AC
139642011-08-02 Robert Dewar <dewar@adacore.com>
13965
13966 * sem_attr.adb: Minor reformatting.
13967
139682011-08-02 Robert Dewar <dewar@adacore.com>
13969
13970 * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
13971 (Has_Default_Component_Value): Removed
13972 * einfo.ads Comment updates
13973 (Has_Default_Aspect): Replaces Has_Default_Value
13974 (Has_Default_Component_Value): Removed
13975 * exp_ch13.adb
13976 (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
13977 * exp_ch3.adb
13978 (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
13979 (Get_Simple_Init_Val): Handle Default_Value aspect
13980 (Needs_Simple_Initialization): Handle Default_Value aspect
13981 * exp_ch3.ads: Needs_Simple_Initialization
13982 * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
13983 * par-prag.adb (Pragma_Default[_Component]Value) Removed
13984 * sem_ch13.adb
13985 (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
13986 * sem_prag.adb (Pragma_Default[_Component]Value) Removed
13987 * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
13988
139892011-08-02 Ed Schonberg <schonberg@adacore.com>
13990
13991 * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
13992 package containing iteration primitives.
13993 exp_ch5.adb (Expand_Iterator_Loop): ditto.
13994
75c90775
AC
139952011-08-02 Ed Schonberg <schonberg@adacore.com>
13996
13997 * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
13998 "of", pre-analyze expression in case it is a function call with
13999 finalization actions that must be placed ahead of the loop.
14000 * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
14001 on an Ada2012 iterator, insert them ahead of the rewritten loop.
14002
140032011-08-02 Geert Bosch <bosch@adacore.com>
14004
14005 * cstand.adb (Create_Float_Types): Only consider C's long double for
14006 Long_Long_Float, in addition to double.
14007
ded8909b
AC
140082011-08-02 Robert Dewar <dewar@adacore.com>
14009
14010 * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
14011 sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
14012 prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
14013 Minor reformatting.
14014
140152011-08-02 Ed Schonberg <schonberg@adacore.com>
14016
14017 * sem_attr.adb: handle properly 'Result when it is a prefix of an
14018 indexed component.
14019
140202011-08-02 Javier Miranda <miranda@adacore.com>
14021
14022 * einfo.ads, einfo.adb
14023 (Original_Access_Type): Move this attribute to Node26 since there was
14024 an undocumented use of Node21 in E_Access_Subprogram_Type entities
14025 which causes conflicts and breaks the generation of the .NET compiler.
14026 (Interface_Name): Add missing documentation on JGNAT only uses of
14027 this attribute.
14028
70c34e1c
AC
140292011-08-02 Geert Bosch <bosch@adacore.com>
14030
14031 * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
14032 (Find_Back_End_Float_Type): Likewise
14033 (Create_Back_End_Float_Types): Likewise
14034 (Create_Float_Types): Likewise
14035 (Register_Float_Type): Likewise
14036 * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
14037 Nlist and split out type selection in new local Find_Base_Type function.
14038 * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
14039 Nlist
14040 * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
14041
140422011-08-02 Robert Dewar <dewar@adacore.com>
14043
14044 * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
14045 alpha order).
14046 * opt.ads: Minor comment change.
14047 * sem_ch12.adb: Minor code reorganization.
14048
b715bc59
AC
140492011-08-02 Gary Dismukes <dismukes@adacore.com>
14050
14051 * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
14052 subtype's list of rep items to the list on the full subtype in the case
14053 where the lists are the same.
14054
140552011-08-02 Geert Bosch <bosch@adacore.com>
14056
14057 * switch-c.adb (Free): New deallocation procedure to avoid implicitly
14058 using the one from System.Strings, which also deallocates all strings.
14059
002bdd68
AC
140602011-08-02 Geert Bosch <bosch@adacore.com>
14061
14062 * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
14063 function.
14064 * gcc-interface/Make-lang.in: Update dependencies.
14065
140662011-08-02 Olivier Hainque <hainque@adacore.com>
14067
14068 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
14069 end_locus.
14070
499769ec
AC
140712011-08-02 Javier Miranda <miranda@adacore.com>
14072
14073 * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
14074 associated with anonymous access to subprograms.
14075
140762011-08-02 Geert Bosch <bosch@adacore.com>
14077
14078 * opt.ads
14079 (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
14080 (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
14081 * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
14082 (Add_Symbol_Definition): Move to switch-c.adb
14083 (Process_Command_Line_Symbol_Definitions): Adjust references to above.
14084 * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
14085 (Add_Symbol_Definition): Move to switch-c.adb.
14086 * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
14087 * sem_warn.adb
14088 (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
14089 Move to warnsw.adb.
14090 * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
14091 Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
14092 Move to warnsw.adb.
14093 * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
14094 (Add_Symbol_Definition): Moved from Prepcomp.
14095 * switch-c.ads: Update copyright notice. Use String_List instead of
14096 Argument_List, removing dependency on System.OS_Lib.
14097
aa1e353a
AC
140982011-08-02 Yannick Moy <moy@adacore.com>
14099
14100 * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
14101 mode on initialization expression which does not respect SPARK
14102 restrictions.
14103 * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
14104 if the tree referenced by its argument represents an initialization
14105 expression in SPARK, suitable for initializing an object in an object
14106 declaration.
14107
141082011-08-02 Javier Miranda <miranda@adacore.com>
14109
14110 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
14111 internally generated access to subprogram with its associated protected
14112 subprogram type.
14113 * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
14114
15b682ca
GB
141152011-08-02 Geert Bosch <bosch@adacore.com>
14116
14117 * cstand.adb (Register_Float_Type): Print information about type to
14118 register, if the Debug_Flag_Dot_B is set.
14119 * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
14120 * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
14121 * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
14122 with a requested precision of more than Max_Digits digits and no more
14123 than Max_Base_Digits digits, if a range specification is present and the
14124 Predefined_Float_Types list has a suitable type to derive from.
14125 * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
14126 case of type completion with pragma Import
14127 * sem_prag.adb
14128 (Process_Import_Predefined_Type): Processing to complete a type
14129 with pragma Import. Currently supports floating point types only.
14130 (Set_Convention_From_Pragma): Do nothing without underlying type.
14131 (Process_Convention): Guard against absence of underlying type,
14132 which may happen when importing incomplete types.
14133 (Process_Import_Or_Interface): Handle case of importing predefined
14134 types. Tweak error message.
14135
f8726f2b
AC
141362011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14137
14138 * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
14139 functions to previous change. Reorganize code slightly.
14140
141412011-08-02 Geert Bosch <bosch@adacore.com>
14142
14143 * back_end.ads (Register_Type_Proc): New call back procedure type for
14144 allowing the back end to provide information about available types.
14145 (Register_Back_End_Types): New procedure to register back end types.
14146 * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
14147 available types.
14148 * cstand.adb (Back_End_Float_Types): New list for floating point types
14149 supported by the back end.
14150 (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
14151 (Copy_Float_Type): New procedure to make new copies of predefined types.
14152 (Register_Float_Type): New call back procedure to populate the BEFT list
14153 (Find_Back_End_Float_Type): New procedure to find a BEFT by name
14154 (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
14155 (Create_Float_Types): New procedure to create entities for floating
14156 point types predefined in Standard, and put these and any remaining
14157 BEFTs on the Predefined_Float_Types list.
14158 * stand.ads (Predefined_Float_Types): New list for predefined floating
14159 point types that do not have declarations in package Standard.
14160
feecad68
AC
141612011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14162
14163 * inline.adb (Get_Code_Unit_Entity): New local function. Returns the
14164 entity node for the unit containing the parameter.
14165 (Add_Inlined_Body): Use it to find the unit containing the subprogram.
14166 (Add_Inlined_Subprogram): Likewise.
14167 * gcc-interface/Make-lang.in: Update dependencies.
14168
141692011-08-02 Thomas Quinot <quinot@adacore.com>
14170
14171 * s-stusta.adb (Print): Make sure Pos is always initialized to a
14172 suitable value.
14173
12f0c50c
AC
141742011-08-02 Geert Bosch <bosch@adacore.com>
14175
14176 * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
14177
141782011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14179
14180 * sem_type.adb (Covers): Move trivial case to the top and reuse the
14181 computed value of Base_Type.
14182
141832011-08-02 Yannick Moy <moy@adacore.com>
14184
14185 * restrict.adb (Check_Restriction): issue an error for any use of
14186 class-wide, even if the No_Dispatch restriction is not set.
14187 * sem_aggr.adb: Correct typos in comments and messages in formal mode
14188 * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
14189 when completing a private extension, the type named in the private part
14190 is not the same as that named in the visible part.
14191 * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
14192 of an inherited primitive operations of a tagged type or type extension
14193 that returns the tagged type.
14194 * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
14195 function which returns True for an implicit operation inherited by the
14196 derived type declaration for the argument type.
14197 (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
14198 order.
14199
fb86fe11
ES
142002011-08-02 Ed Schonberg <schonberg@adacore.com>
14201
14202 * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
14203 Process_Bounds, to perform analysis with expansion of a range or an
14204 expression that is the iteration scheme for a loop.
14205 (Analyze_Iterator_Specification): If domain of iteration is given by a
14206 function call with a controlled result, as is the case if call returns
14207 a predefined container, ensure that finalization actions are properly
14208 generated.
14209 * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
14210
62be5d0a
JM
142112011-08-02 Javier Miranda <miranda@adacore.com>
14212
14213 * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
14214 * gcc-interface/Make-lang.in: Update dependencies.
14215
142162011-08-02 Javier Miranda <miranda@adacore.com>
14217
14218 * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
14219 determine if the analysis is performed using N or Original_Node (N).
14220 * exp_util.adb (Side_Effect_Free): Code cleanup since the new
14221 functionality of routine Is_Variable avoids code duplication.
14222 * checks.adb (Determine_Range): Handle temporaries generated by
14223 Remove_Side_Effects.
14224
142252011-08-02 Javier Miranda <miranda@adacore.com>
14226
14227 * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
14228 expansion of the condition. Required since the previous analysis was
14229 done with expansion disabled (see Resolve_Quantified_Expression) and
14230 hence checks were not inserted and record comparisons have not been
14231 expanded.
14232
a20f4389
AC
142332011-08-02 Ed Falis <falis@adacore.com>
14234
14235 * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
14236 Update header.
14237
142382011-08-02 Bob Duff <duff@adacore.com>
14239
14240 * opt.ads: Minor comment fix.
14241
142422011-08-02 Bob Duff <duff@adacore.com>
14243
14244 * sem_ch12.adb (Analyze_Package_Instantiation,
14245 Analyze_Subprogram_Instantiation): Turn off style checking while
14246 analyzing an instance. Whatever style checks that apply to the generic
14247 unit should apply, so it makes no sense to apply them in an instance.
14248 This was causing trouble when compiling an instance of a runtime
14249 unit that violates the -gnatyO switch.
14250 * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
14251 one of the two case statements, causing spurious errors.
14252
142532011-08-02 Robert Dewar <dewar@adacore.com>
14254
14255 * uname.adb: Minor reformatting.
14256 * gnatcmd.adb: Minor reformatting.
14257 * exp_attr.adb: Minor reformatting.
14258
90878b12
AC
142592011-08-02 Ed Schonberg <schonberg@adacore.com>
14260
14261 * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
14262 No_Dispatching_Calls, do not look for the Assign primitive, because
14263 predefined primitives are not created in this case.
14264
142652011-08-02 Bob Duff <duff@adacore.com>
14266
14267 * stylesw.ads: Minor comment fixes.
14268
142692011-08-02 Robert Dewar <dewar@adacore.com>
14270
14271 * freeze.adb (Add_To_Result): New procedure.
14272
142732011-08-02 Jose Ruiz <ruiz@adacore.com>
14274
14275 * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
14276 time, if the specific run-time routines for handling streams of strings
14277 are not available, use the default mechanism.
14278
142792011-08-02 Arnaud Charlet <charlet@adacore.com>
14280
14281 * s-regpat.ads: Fix typo.
14282
142832011-08-02 Vincent Celier <celier@adacore.com>
14284
14285 * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
14286 not null, call it to create the in memory config project file without
14287 parsing an existing default config project file.
14288
142892011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14290
14291 * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
14292
142932011-08-02 Ed Schonberg <schonberg@adacore.com>
14294
14295 * sem_elim.adb: an abstract subprogram does not need an eliminate
14296 pragma for its descendant to be eliminable.
14297
142982011-08-02 Ed Falis <falis@adacore.com>
14299
14300 * init.c: revert to handling before previous checkin for VxWorks
14301 * s-intman-vxworks.adb: delete unnecessary declarations related to
14302 using Ada interrupt facilities for handling signals.
14303 Delete Initialize_Interrupts. Use __gnat_install_handler instead.
14304 * s-intman-vxworks.ads: Import __gnat_install_handler as
14305 Initialize_Interrupts.
14306 * s-taprop-vxworks.adb: Delete Signal_Mask.
14307 (Abort_Handler): change construction of mask to unblock exception
14308 signals.
14309
273adcdf
AC
143102011-08-02 Jerome Guitton <guitton@adacore.com>
14311
14312 * a-except-2005.adb (Raise_From_Signal_Handler): Call
14313 Debug_Raise_Exception before propagation starts.
14314
143152011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14316
14317 * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
14318 to Restriction_Check_Required.
14319 * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
14320 * sem_res.adb (Resolve_Call): Likewise.
14321 * sem_attr.adb (Check_Stream_Attribute): Likewise.
14322
143232011-08-02 Bob Duff <duff@adacore.com>
14324
14325 * stylesw.ads: Update comment.
14326 * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
14327 * errout.ads: Remove obsolete comment.
14328
143292011-08-02 Javier Miranda <miranda@adacore.com>
14330
14331 * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
14332 (Set_Is_Safe_To_Reevaluate): new procedure.
14333 * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
14334 assignment is allowed on safe-to-reevaluate variables.
14335 (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
14336 temporary created to remove side effects in expressions that use
14337 the secondary stack as safe-to-reevaluate.
14338 * exp_util.adb (Side_Effect_Free): Add missing code to handle well
14339 variables that are not true constants.
14340
6320f5e1
AC
143412011-08-02 Robert Dewar <dewar@adacore.com>
14342
14343 * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
14344 sem_res.adb, sem_ch6.adb: Minor reformatting.
14345
143462011-08-02 Jerome Guitton <guitton@adacore.com>
14347
14348 * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
14349
2fe829ae
ES
143502011-08-02 Ed Schonberg <schonberg@adacore.com>
14351
14352 * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
14353 not set Overridden_Operation if subprogram is an initialization
14354 procedure.
14355
e24329cd
YM
143562011-08-02 Yannick Moy <moy@adacore.com>
14357
14358 * par-ch6.adb: Correct obsolete name in comments
14359 * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
14360 which takes two message arguments (existing function takes one), with
14361 second message used for continuation.
14362 * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
14363 block statements that originate from a source block statement, not
14364 generated block statements
14365 * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
14366 symmetry with procedure case
14367 * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
14368 function to issue an error in formal mode if a package specification
14369 contains more than one tagged type or type extension.
14370 * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
14371 parameters matching formals of tagged types are objects (or ancestor
14372 type conversions of objects), not general expressions. Issue an error
14373 on view conversions that are not involving ancestor conversion of an
14374 extended type.
14375 (Resolve_Type_Conversion): in formal mode, issue an error on the
14376 operand of an ancestor type conversion which is not an object
14377 * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
14378 procedure so that it works also for actuals of function calls
14379 (Is_Actual_Tagged_Parameter): new function which determines if its
14380 argument is an actual parameter of a formal of tagged type in a
14381 subprogram call
14382 (Is_SPARK_Object_Reference): new function which determines if the tree
14383 referenced by its argument represents an object in SPARK
14384
176dadf6
AC
143852011-08-02 Robert Dewar <dewar@adacore.com>
14386
14387 * sem_ch3.adb: Minor reformatting
14388 Minor comment addition
14389 Minor error msg text change
14390
143912011-08-02 Javier Miranda <miranda@adacore.com>
14392
14393 * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
14394 function. Used to be more precise when we generate a variable plus one
14395 assignment to remove side effects in the evaluation of the Bound
14396 expressions.
14397 (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
14398 of the bound expression to force its re-analysis and thus expand the
14399 associated transient scope (if required). Code cleanup replacing the
14400 previous code that declared the constant entity by an invocation to
14401 routine Force_Evaluation which centralizes this work in the frontend.
14402
d8b962d8
AC
144032011-08-02 Robert Dewar <dewar@adacore.com>
14404
14405 * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
14406 (Base_Type): Now uses improved Is_Base_Type function
14407 * einfo.ads (Base_Type): Inline this function
14408
144092011-08-02 Robert Dewar <dewar@adacore.com>
14410
14411 * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
14412 (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
14413
144142011-08-02 Arnaud Charlet <charlet@adacore.com>
14415
14416 * gcc-interface/Make-lang.in: Update dependencies.
14417 * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
14418 targets.
14419
144202011-08-02 Yannick Moy <moy@adacore.com>
14421
14422 * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
14423 non-simple expression used in delta constraint
14424 (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
14425 index constraint which is not a subtype mark
14426 * par.adb: With and use Restrict
14427 * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
14428 mode on component type which is not a subtype mark and default
14429 expression on component
14430 (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
14431 of string which does not have a lower index bound equal to 1
14432 (Array_Type_Declaration): issue an error in formal mode on index or
14433 component type which is not a subtype mark, and on aliased keyword on
14434 component
14435 (Derived_Type_Declaration): issue an error in formal mode on interface,
14436 limited or abstract type
14437 (Record_Type_Declaration): issue an error in formal mode on interface
14438 (Record_Type_Definition): issue an error in formal mode on tagged types
14439 and type extensions not declared in the specification of a library unit
14440 package; on null non-tagged record; on variant part
14441
144422011-08-02 Vincent Celier <celier@adacore.com>
14443
14444 * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
14445 not declared for qualified library project when Library_Name is not
14446 declared, but Library_Dir is.
14447
144482011-08-02 Robert Dewar <dewar@adacore.com>
14449
14450 * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
14451 pragmas (affects aspects [Component_]Default_Value
14452 (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
14453 component type for the resolution
14454
f96b2d85
AC
144552011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14456
14457 * einfo.adb (Base_Type): Tune implementation for speed.
14458
144592011-08-02 Robert Dewar <dewar@adacore.com>
14460
14461 * freeze.adb: Minor reformatting.
14462
8b3c6430
AC
144632011-08-02 Thomas Quinot <quinot@adacore.com>
14464
14465 * scos.ads: Update comments.
14466
144672011-08-02 Ed Schonberg <schonberg@adacore.com>
14468
14469 * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
14470 base type, because the parent may be a subtype of a private type whose
14471 convention is established in a private part.
14472
144732011-08-02 Hristian Kirtchev <kirtchev@adacore.com>
14474
14475 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
14476 statement in a block when the expansion of the return expression has
14477 created a finalization chain.
14478 * freeze.adb (Freeze_Expression): Alphabetize all choices associated
14479 with the parent node.
14480 Add N_Extended_Return_Statement to handle the case where a transient
14481 object declaration appears in the Return_Object_Declarations list of
14482 an extended return statement.
14483
144842011-08-02 Matthew Gingell <gingell@adacore.com>
14485
14486 * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
14487 unused parameter 'name'.
14488
144892011-08-02 Ed Schonberg <schonberg@adacore.com>
14490
14491 * sem_elim.adb (Set_Eliminated): If the overridden operation is an
14492 inherited operation, check whether its alias, which is the source
14493 operastion that it renames, has been marked eliminated.
14494
cae81f17
JM
144952011-08-02 Javier Miranda <miranda@adacore.com>
14496
14497 * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
14498 in-mode parameter whose type is an access type since it can be used to
14499 modify its designated object. Enforce code that handles as safe an
14500 access type that is not access-to-constant but it is the result of a
14501 previous removal of side-effects.
14502 (Remove_Side_Effects): Minor code reorganization of cases which require
14503 no action. Done to incorporate documentation on new cases uncovered
14504 working in this ticket: no action needed if this routine was invoked
14505 too early and the nodes are not yet decorated.
14506 * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
14507 to routine Remove_Side_Effects by calls to Force_Evaluation since they
14508 were issued with actuals that are implicitly provided by
14509 Force_Evaluation.
14510
218e6dee
RD
145112011-08-02 Robert Dewar <dewar@adacore.com>
14512
14513 * sem_ch3.adb, sem_res.adb: Minor reformatting.
14514
7a489a2b
AC
145152011-08-02 Yannick Moy <moy@adacore.com>
14516
14517 * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
14518 to issue an error in formal mode on attribute not supported in this mode
14519 (Analyze_Attribute): issue errors on standard attributes not supported
14520 in formal mode.
14521 * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
14522 comment, and issue error in formal mode on modulus which is not a power
14523 of 2.
14524 (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
14525 range.
14526 * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
14527 subtype mark.
14528 * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
14529 operator on modular type (except 'not').
14530
145312011-08-02 Robert Dewar <dewar@adacore.com>
14532
14533 * gnat_rm.texi: Minor reformatting.
14534
cb7fa356
AC
145352011-08-02 Arnaud Charlet <charlet@adacore.com>
14536
14537 * s-osinte-linux.ads: Minor comment update and reformatting.
14538 * i-cexten.ads: Make this unit pure, as for its parent.
14539 Will allow its usage in more contexts if needed.
14540
145412011-08-02 Robert Dewar <dewar@adacore.com>
14542
14543 * s-utf_32.ads: Minor comment fix.
14544
145452011-08-02 Ed Schonberg <schonberg@adacore.com>
14546
14547 * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
14548 operation of a tagged synchronized type, handle the case where the
14549 controlling argument is overloaded.
14550
145512011-08-02 Yannick Moy <moy@adacore.com>
14552
14553 * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
14554 Replace pragma SPARK_95 with pragma Restrictions (SPARK)
14555 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
14556 SPARK mode and formal verification mode on processing SPARK restriction
14557 * s-rident.ads (Restriction_Id): add SPARK restriction in those not
14558 requiring consistency checking.
14559
5cc9353d
RD
145602011-08-02 Robert Dewar <dewar@adacore.com>
14561
14562 * sem_res.adb: Minor reformatting.
14563
e51537ff
RD
145642011-08-02 Robert Dewar <dewar@adacore.com>
14565
14566 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
14567 a-cforse.ads: Remove unneeded with of Ada.Containers
14568 Remove commented out pragma Inline's
14569 Move specifications of new subprograms to the actual specs
14570
83fa09c5
AC
145712011-08-02 Yannick Moy <moy@adacore.com>
14572
14573 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
14574 a-cforse.ads: Update comments.
14575
145762011-08-02 Ed Schonberg <schonberg@adacore.com>
14577
14578 * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
14579
d11cfaf8
RD
145802011-08-02 Robert Dewar <dewar@adacore.com>
14581
14582 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
14583 a-cforse.ads, a-cofove.ads: Minor reformatting.
14584
300b98bb
AC
145852011-08-02 Claire Dross <dross@adacore.com>
14586
14587 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
14588 a-cofove.ads: Add comments.
14589
145902011-08-02 Yannick Moy <moy@adacore.com>
14591
14592 * gnat_rm.texi: Document formal containers.
14593
145942011-08-02 Emmanuel Briot <briot@adacore.com>
14595
14596 * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
14597 are empty sections.
14598
19fb051c
AC
145992011-08-02 Robert Dewar <dewar@adacore.com>
14600
14601 * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
14602 reformatting.
14603
146042011-08-02 Robert Dewar <dewar@adacore.com>
14605
14606 * aspects.adb: New aspects Default_Value and Default_Component_Value
14607 New format of Aspect_Names table checks for omitted entries
14608 * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
14609 handling of boolean aspects for derived types.
14610 New aspects Default_Value and Default_Component_Value
14611 New format of Aspect_Names table checks for omitted entries
14612 * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
14613 (Has_Default_Value): New flag
14614 (Has_Default_Component_Value): New flag
14615 (Has_Default_Value): New flag
14616 * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
14617 table.
14618 * par-prag.adb: New pragmas Default_Value and Default_Component_Value
14619 * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
14620 Default_Value and Default_Component_Value
14621 * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
14622 New aspects Default_Value and Default_Component_Value
14623 * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
14624 * sprint.adb: Print N_Aspect_Specification node when called from gdb
14625
146262011-08-02 Vincent Celier <celier@adacore.com>
14627
14628 * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
14629 inherit library kind.
14630
146312011-08-02 Ed Schonberg <schonberg@adacore.com>
14632
14633 * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
14634 Minor reformatting.
14635
146362011-08-02 Robert Dewar <dewar@adacore.com>
14637
14638 * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
14639
5f7747af
AC
146402011-08-02 Yannick Moy <moy@adacore.com>
14641
14642 * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
14643
146442011-08-02 Robert Dewar <dewar@adacore.com>
14645
14646 * impunit.adb: Add comment.
14647
a5fe697b
AC
146482011-08-02 Yannick Moy <moy@adacore.com>
14649
14650 * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
14651 qualification of aggregates in formal mode
14652 (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
14653 another aggregate
14654 (Resolve_Aggregate): complete the test that an aggregate is adequately
14655 qualified in formal mode
14656
146572011-08-02 Pascal Obry <obry@adacore.com>
14658
14659 * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
14660 * mlib-prj.adb: Supress warning when compiling binder generated file.
14661 (Build_Library): Supress all warnings when compiling the binder
14662 generated file.
14663
bd65a2d7 146642011-08-02 Yannick Moy <moy@adacore.com>
d4487611 14665
bd65a2d7
AC
14666 * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
14667 from here...
14668 * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
14669 * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
14670 Add with/use clauses to make Check_Formal_Restriction visible
14671
146722011-08-02 Ed Schonberg <schonberg@adacore.com>
14673
14674 * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
14675 in-parameters when type of the generic formal is private in the generic
14676 spec and non-private in the body.
14677
146782011-08-02 Claire Dross <dross@adacore.com>
14679
14680 * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
14681 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
14682 a-cofove.adb, a-cofove.ads: New files implementing formal containers.
14683 * impunit.adb, Makefile.rtl: Take new files into account.
d4487611
AC
14684
146852011-08-02 Robert Dewar <dewar@adacore.com>
14686
14687 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
14688 sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
14689
bd434b3f
YM
146902011-08-02 Yannick Moy <moy@adacore.com>
14691
14692 * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
14693 formal mode
14694 * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
14695 matching static array bounds, taking into account the special case of
14696 string literals
14697 * sem_ch3.adb: Typo in comment.
14698
fe5d3068
YM
146992011-08-02 Yannick Moy <moy@adacore.com>
14700
14701 * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
14702 which issues an error in formal mode if its argument node is originally
14703 from source
14704 * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
14705 has a discriminant specification so that it does not include the case
14706 of derived types
14707 (Derived_Type_Declaration): move here the test that a derived type has a
14708 discriminant specification
14709 * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
14710 first element of a component association before accessing its choices
14711 (presence of component association is not enough)
14712 * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
14713 declaration is a library item before accessing the next element in a
14714 list, as library items are not member of lists
14715 * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
14716 sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
14717 Check_Formal_Restriction whenever possible.
14718
b60a3f26
AC
147192011-08-02 Ed Schonberg <schonberg@adacore.com>
14720
14721 * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
14722 reference when needed.
14723
147242011-08-02 Bob Duff <duff@adacore.com>
14725
14726 * gnat_ugn.texi: Fix typo.
14727
147282011-08-02 Vincent Celier <celier@adacore.com>
14729
14730 * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
14731 archive file name. Do not use the full path name of archives for Open
14732 VMS.
14733
eaba57fb
RD
147342011-08-02 Robert Dewar <dewar@adacore.com>
14735
14736 * sem_ch12.adb, sem_ch11.adb: New calling sequence for
14737 Analyze_Aspect_Specifications
14738 * sem_ch13.adb
14739 (Analyze_Aspect_Specifications): New handling for boolean aspects
14740 * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
14741 * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
14742 sequence for Analyze_Aspect_Specifications
14743 * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
14744 * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
14745
147462011-08-02 Robert Dewar <dewar@adacore.com>
14747
14748 * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
14749 aspects, since these no longer exist.
14750
147512011-08-02 Robert Dewar <dewar@adacore.com>
14752
14753 * par-ch13.adb (Aspect_Specifications_Present): Always return false on
14754 semicolon, do not try to see if there are aspects following it.
14755 * par-ch3.adb (P_Declarative_Items): Better message for unexpected
14756 aspect spec.
14757
8830d1d2
AC
147582011-08-02 Robert Dewar <dewar@adacore.com>
14759
14760 * sem_ch8.adb, aspects.ads: Minor reformatting.
14761
147622011-08-02 Eric Botcazou <ebotcazou@adacore.com>
14763
14764 * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
14765 * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
14766 extracted from...
14767 (Analyze_Aspect_Specifications): ...here. Call above procedure.
14768
7ff2d234
AC
147692011-08-02 Yannick Moy <moy@adacore.com>
14770
14771 * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
14772 mode on subprogram declaration outside of package specification, unless
14773 it is followed by a pragma Import
14774 * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
14775 Access_Type_Declaration): issue error in formal mode on access type
14776 (Analyze_Incomplete_Type_Decl): issue error in formal mode on
14777 incomplete type
14778 (Analyze_Object_Declaration): issue error in formal mode on object
14779 declaration which does not respect SPARK restrictions
14780 (Analyze_Subtype_Declaration): issue error in formal mode on subtype
14781 declaration which does not respect SPARK restrictions
14782 (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
14783 error in formal mode on digits or delta constraint
14784 (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
14785 decimal fixed point type
14786 (Derived_Type_Declaration): issue error in formal mode on derived type
14787 other than type extensions of tagged record types
14788 * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
14789 with check on access definition
14790 * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
14791 mode on protected definition.
14792 (Analyze_Task_Definition): issue error in formal mode on task definition
14793
147942011-08-02 Robert Dewar <dewar@adacore.com>
14795
14796 * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
14797
806f6d37
AC
147982011-08-02 Javier Miranda <miranda@adacore.com>
14799
14800 * sem_ch6.adb (Can_Override_Operator): New function.
14801 (Verify_Overriding_Indicator): Add missing code to check overriding
14802 indicator in operators. Fixes regression.
14803 (Check_Overriding_Indicator): Minor reformating after replacing the
14804 code that evaluates if the subprogram can override an operator by
14805 invocations to the above new function.
14806 * einfo.adb
14807 (Write_Field26_Name): Add missing code to ensure that, following
14808 the documentation in einfo.ads, this field is not shown as attribute
14809 "Static_Initialization" on non-dispatching functions.
14810
148112011-08-02 Jose Ruiz <ruiz@adacore.com>
14812
14813 * sem_res.adb (Resolve_Call): A call to
14814 Ada.Real_Time.Timing_Events.Set_Handler violates restriction
14815 No_Relative_Delay (AI-0211) only when it sets a relative timing event,
14816 i.e., when the second parameter is of type Time_Span.
14817
148182011-08-02 Vincent Celier <celier@adacore.com>
14819
14820 * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
14821 with an archive instead of -L<library dir> -l<library name>.
14822
148232011-08-02 Ed Schonberg <schonberg@adacore.com>
14824
14825 * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
14826 mark the base types In_Use in addition to making the operations
14827 use_visible.
14828
148292011-08-02 Ed Falis <falis@adacore.com>
14830
14831 * init.c: add and setup __gnat_signal_mask for the exception signals
14832 * s-inmaop-vxworks.adb: new file.
14833 * s-intman-vxworks.adb: remove unnecessary initializations and
14834 simplify remaining
14835 * s-intman-vxworks.ads: remove unnecessary variable
14836 * s-taprop-vxworks.adb: simplify signal initialization
14837
780d052e
RD
148382011-08-02 Robert Dewar <dewar@adacore.com>
14839
14840 * sem_ch8.adb: Minor code reorganization, comment updates.
14841
148422011-08-02 Robert Dewar <dewar@adacore.com>
14843
14844 * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
14845 * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
14846 here from Sem_Res.
14847 (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
14848 (Matching_Static_Array_Bounds): Moved here from Sem_Res
14849
29efbb8c
ES
148502011-08-02 Ed Schonberg <schonberg@adacore.com>
14851
14852 * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
14853 * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
14854 * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
14855 use_type_clauses, to handle more efficiently use_type and use_all_type
14856 constructs.
14857 * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
14858 Ada2012 Use_All_Type clause.
14859 (Use_Class_Wide_Operations): new procedure.
14860
b0186f71
AC
148612011-08-02 Robert Dewar <dewar@adacore.com>
14862
14863 * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
14864 sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
14865 expression to expression function.
14866
148672011-08-02 Ed Schonberg <schonberg@adacore.com>
14868
14869 * sem_ch4.adb: transform simple Ada2012 membership into equality only
14870 if types are compatible.
14871
148722011-08-02 Yannick Moy <moy@adacore.com>
14873
14874 * sem_res.adb (Matching_Static_Array_Bounds): new function which
14875 returns True if its argument array types have same dimension and same
14876 static bounds at each index.
14877 (Resolve_Actuals): issue an error in formal mode on actuals passed as
14878 OUT or IN OUT paramaters which are not view conversions in SPARK.
14879 (Resolve_Arithmetic_Op): issue an error in formal mode on
14880 multiplication or division with operands of fixed point types which are
14881 not qualified or explicitly converted.
14882 (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
14883 Boolean or array type (except String) operands.
14884 (Resolve_Equality_Op): issue an error in formal mode on equality
14885 operators for array types other than String with non-matching static
14886 bounds.
14887 (Resolve_Logical_Op): issue an error in formal mode on logical operators
14888 for array types with non-matching static bounds. Factorize the code in
14889 Matching_Static_Array_Bounds.
14890 (Resolve_Qualified_Expression): issue an error in formal mode on
14891 qualified expressions for array types with non-matching static bounds.
14892 (Resolve_Type_Conversion): issue an error in formal mode on type
14893 conversion for array types with non-matching static bounds
14894
767bb4e8
AC
148952011-08-02 Robert Dewar <dewar@adacore.com>
14896
14897 * par-ch10.adb: Minor code reorganization (use Nkind_In).
14898
148992011-08-02 Ed Schonberg <schonberg@adacore.com>
14900
14901 * par-ch9.adb: save location of entry for proper error message.
14902
4ac2477e
JM
149032011-08-02 Javier Miranda <miranda@adacore.com>
14904
14905 * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
14906 (Use_Full_View) which permits this routine to climb through the
14907 ancestors using the full-view of private parents.
14908 * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
14909 Use_Full_View to true in calls to Is_Ancestor.
14910 * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
14911 true in call to Is_Ancestor.
14912 * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
14913 Use_Full_View to true in call to Is_Ancestor.
14914 * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
14915 call to Is_Ancestor.
14916 * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
14917 Use_Full_View to true in calls to Is_Ancestor.
14918 * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
14919 Make_Select_Specific_Data_Table, Register_Primitive,
14920 Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
14921 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
14922 to true in call to Is_Ancestor.
14923 * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
14924 Use_Full_View to true in calls to Is_Ancestor.
14925 * exp_cg.adb
14926 (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
14927 (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
14928
9f90d123
AC
149292011-08-02 Robert Dewar <dewar@adacore.com>
14930
14931 * gnat_rm.texi: Minor reformatting.
14932 * sem_prag.adb: Minor reformatting.
14933
149342011-08-02 Tristan Gingold <gingold@adacore.com>
14935
14936 * vms_data.ads: Add VMS qualifier for -gnateP.
14937
149382011-08-02 Robert Dewar <dewar@adacore.com>
14939
14940 * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
14941 * par-ch7.adb (P_Package): Proper placement of aspects for package
14942 decl/instantiation.
14943 * par-endh.adb (Check_End): Ad Is_Sloc parameter
14944 (End_Statements): Add Is_Sloc parameterr
14945 * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
14946 (Check_End): Ad Is_Sloc parameter
14947 (End_Statements): Add Is_Sloc parameterr
14948
149492011-08-02 Vincent Celier <celier@adacore.com>
14950
14951 * ug_words: Add VMS qualifier equivalent to -gnateP:
14952 /SYMBOL_PREPROCESSING.
14953
149542011-08-02 Jose Ruiz <ruiz@adacore.com>
14955
14956 * gnat-style.texi: For hexadecimal numeric literals the typical
14957 grouping of digits is 4 to represent 2 bytes.
14958 A procedure spec which is split into several lines is indented two
14959 characters.
14960
149612011-08-02 Yannick Moy <moy@adacore.com>
14962
14963 * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
14964 * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
14965 (Resolve_Aggregate): issue errors in formal modes when aggregate is not
14966 properly qualified
14967 (Resolve_Array_Aggregate): issue errors in formal modes on non-static
14968 choice in array aggregate
14969 (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
14970 mark as ancestor
14971 (Resolve_Record_Aggregate): issue errors in formal modes on mixed
14972 positional and named aggregate for record, or others in record
14973 aggregate, or multiple choice in record aggregate
14974 * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
14975 array operands to logical operations AND, OR and XOR do not have the
14976 same static lower and higher bounds
14977 * sem_ch5.adb, sinfo.ads: Correct typos in comments
14978
2933b16c
RD
149792011-08-01 Robert Dewar <dewar@adacore.com>
14980
14981 * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
14982 Replaces Last_Source_Node_In_Sequence.
14983 * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
14984 * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
14985 parens and blank in string (this was inconsistently implemented).
14986 * errout.ads
14987 (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
14988 blank in string (this was inconsistently implemented).
14989 * gnat1drv.adb
14990 (Set_Global_Switches): Set formal mode switches appropriately
14991 * opt.ads, opt.adb: Formal mode is now global switches, more consistent
14992 * par-prag.adb
14993 (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
14994 call Set_Error_Msg_Lang to set "spark" as language name.
14995 * par.adb: Remove unnecessary call to set formal language for errout
14996 * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
14997 appropriately and call Set_Error_Msg_Lang to set "spark" as language
14998 name.
14999 * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
15000 calls to it, moved after resolution so that types are known
15001 * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
15002 result of concatenation is not of type String
15003 (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
15004 concatenation is not properly restricted
15005 * gnat_rm.texi: Add doc on pragma Spark_95.
15006 * gcc-interface/Makefile.in: Remove obsolete target pairs for
15007 Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
15008 * gcc-interface/Make-lang.in: Update dependencies.
15009
05dbd302
AC
150102011-08-01 Javier Miranda <miranda@adacore.com>
15011
15012 * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
15013 condition that detects if the overridden operation must replace an
15014 existing entity.
15015
150162011-08-01 Javier Miranda <miranda@adacore.com>
15017
15018 * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
15019 code declarations inserted by Insert_Actions in each alternative of the
15020 N_Case_Expression node.
15021
150222011-08-01 Robert Dewar <dewar@adacore.com>
15023
15024 * sem_ch6.adb: Minor code reorganization.
15025 * sem_util.adb: Minor reformatting.
15026
af9e051f
PO
150272011-08-01 Pascal Obry <obry@adacore.com>
15028
15029 * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
15030 * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
15031
1d801f21
AC
150322011-08-01 Yannick Moy <moy@adacore.com>
15033
15034 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
15035 literal or operator symbol which is prefixed
15036 * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
15037 mode on access attributes.
15038 * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
15039 that concatenation operands are properly restricted in formal mode
15040 (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
15041 Analyze_Concatenation_Operand. Issue an error in formal mode if the
15042 result of the concatenation has a type different from String.
15043 (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
15044 Analyze_Quantified_Expression, Analyze_Slice,
15045 Analyze_Null): issue an error in formal mode on unsupported constructs
15046 * sem_ch5.adb
15047 (Analyze_Block_Statement): only issue error on source block statement
15048 * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
15049 function which returns the last node in a list of nodes for which
15050 Comes_From_Source returns True, if any
15051 * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
15052 Last_Source_Node_In_Sequence
15053 * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
15054 Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
15055 mode on unsupported constructs
15056 * sem_ch9.adb Do not return after issuing error in formal mode, as the
15057 rest of the actions may be needed later on since the error is marked as
15058 not serious.
15059 * sinfo.ads: Typos in comments.
15060
150612011-08-01 Pascal Obry <obry@adacore.com>
15062
15063 * projects.texi: Minor editing.
15064
53beff22
YM
150652011-08-01 Yannick Moy <moy@adacore.com>
15066
15067 * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
15068 insertion character ~~
15069 * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
15070 (Set_Error_Msg_Lang): new procedure which fixes the language for use
15071 with insertion character ~~
15072 (Set_Msg_Text): treat insertion character ~~
15073 * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
15074 sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
15075 Formal_Error_Msg_... procedures by equivalent Error_Msg_...
15076 procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
15077 errors related to the formal language restriction not serious
15078 (insertion character |).
15079 * par.adb (Par): set formal language for error messages if needed
15080 * sem_ch6.adb (Check_Missing_Return): take into account possible
15081 generated statements at the end of the function
15082 * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
15083 enumeration value to define a new pragma SPARK_95
15084 * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
15085 SPARK_Version): new type and variables to store the SPARK version
15086 (none by default).
15087 (SPARK_Mode): return True when SPARK_Version is set
15088 * par-prag.adb: Correct indentation
15089 (Prag): take Pragma_SPARK_95 into account
15090 * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
15091 into account.
15092
8d606a78
RD
150932011-08-01 Robert Dewar <dewar@adacore.com>
15094
15095 * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
15096 sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
15097 sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
15098
1982d5a8
PO
150992011-08-01 Pascal Obry <obry@adacore.com>
15100
15101 * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
15102 Target_Name to Get_Path call.
15103 (Parse_Single_Project): Likewise.
15104 (Post_Parse_Context_Clause): Likewise.
15105 * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
15106 Call Initialise_Project_Path with the proper Target_Name.
15107 (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
15108 search path.
15109 (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
15110 with the proper Target_Name.
15111 * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
15112 Part.Parse routine.
15113 (Parse_Project_And_Apply_Config): Likewise.
15114 * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
15115 This is fine as this part of the code is supporting only native
15116 compilation.
15117 * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
15118 is fine as this part of the code is supporting only native compilation.
15119
0d53d36b
AC
151202011-08-01 Yannick Moy <moy@adacore.com>
15121
15122 * sem_util.adb (Enter_Name): issue error in formal mode on declaration
15123 of homonym, unless the homonym is one of the cases allowed in SPARK
15124 * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
15125 package declaration occurring after a body.
15126
151272011-08-01 Robert Dewar <dewar@adacore.com>
15128
15129 * checks.adb, exp_ch4.adb: Minor reformatting.
15130
151312011-08-01 Javier Miranda <miranda@adacore.com>
15132
15133 * einfo.ads (Access_Disp_Table): Fix documentation.
15134 (Dispatch_Table_Wrappers): Fix documentation.
15135
151362011-08-01 Pascal Obry <obry@adacore.com>
15137
15138 * prj-env.adb, prj-env.ads: Minor reformatting.
15139
8ed68165
AC
151402011-08-01 Yannick Moy <moy@adacore.com>
15141
15142 * sem_util.ads, sem_util.adb, par.adb, par_util.adb
15143 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
15144 procedures out of these packages.
2c7f9cc0 15145 * errout.ads, errout.adb
8ed68165
AC
15146 (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
15147 procedures in of this package
15148 (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
15149 * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
15150 on misplaced later vs initial declarations, like in Ada 83
15151 * sem_attr.adb (Processing for Analyze_Attribute): issue error in
15152 formal mode on attribute of private type whose full type declaration
15153 is not visible
15154 * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
15155 package declaration inside a package specification
15156 (Analyze_Full_Type_Declaration): issue error in formal mode on
15157 controlled type or discriminant type
15158 * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
15159 user-defined operator means that it should come from the source
15160 (New_Overloaded_Entity): issue error in formal mode on overloaded
15161 entity.
15162 * sem_ch6.ads, sem_ch13.ads: typos in comments.
15163
151642011-08-01 Thomas Quinot <quinot@adacore.com>
15165
15166 * atree.adb: Minor reformatting.
15167 * checks.adb: Minor reformatting.
15168
4230bdb7
AC
151692011-08-01 Vincent Celier <celier@adacore.com>
15170
15171 * s-parame-vms-ia64.ads: Fix typo in comment
15172 Minor reformatting
15173 * s-parame-vms-restrict.ads: Removed, unused.
15174
151752011-08-01 Javier Miranda <miranda@adacore.com>
15176
15177 * exp_ch3.adb
15178 (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
15179 * sem_ch3.adb
15180 (Constrain_Index): Remove side effects in the evaluation of the bounds.
15181 * sem_ch3.ads, sem_ch3.adb
15182 (Is_Constant_Bound): New extended version of the subprogram that was
15183 previously located inside function Exp_Ch3.Is_Variable_Size_Array.
15184 Moved here since it is shared by routines of sem_ch3 and exp_ch3.
15185 * sem_aux.ads (Constant_Value): Fix typo in comment.
15186 * checks.adb (Generate_Index_Checks): New implementation which, for
15187 array objects with constant bounds, generates the runtime check
15188 referencing the bounds of the array type. For other cases this routine
15189 provides its previous behavior obtaining such values from the array
15190 object.
15191 * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
15192 parent type.
15193 * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
15194 we cannot have semantic interpretations of the new node.
15195
2010d078
AC
151962011-08-01 Ed Schonberg <schonberg@adacore.com>
15197
15198 * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
15199 expressions.
15200
152012011-08-01 Arnaud Charlet <charlet@adacore.com>
15202
15203 * sem_ch8.adb: Minor code editing.
15204 * s-vxwext.adb: Remove trailing space.
15205 * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
15206 consistency with other files.
15207
152082011-08-01 Thomas Quinot <quinot@adacore.com>
15209
15210 * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
15211
152122011-08-01 Ed Schonberg <schonberg@adacore.com>
15213
15214 * par-ch10.adb: reject parameterized expressions as compilation unit.
15215 * sem_ch4.adb: handle properly conditional expression with overloaded
15216 then_clause and no else_clause.
15217
152182011-08-01 Tristan Gingold <gingold@adacore.com>
15219
15220 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
15221 like done by System.Aux_DEC.
15222 * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
15223
daec8eeb
YM
152242011-08-01 Yannick Moy <moy@adacore.com>
15225
15226 * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
15227 missing label at end of declaration (subprogram or package)
15228 * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
15229 of positional and named parameter association
15230 * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
15231 Error_Msg_SP which adds a prefix to the error message giving the name
15232 of the formal language analyzed
15233 * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
15234 access result type in subprogram, unconstrained array as result type,.
15235 (Analyze_Subprogram_Declaration): issue an error in formal mode for null
15236 procedure
15237 * sem_ch8.adb: Code clean up.
15238
38171f43
AC
152392011-08-01 Javier Miranda <miranda@adacore.com>
15240
15241 * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
15242 * einfo.ads (Access_Disp_Table): Fix documentation.
15243 (Dispatch_Table_Wrappers): Fix documentation.
15244 * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
15245 Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
15246 to enforce the documentation of this attribute.
15247 (Set_Is_Interface): Cleanup the assertion.
15248 * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
15249 the Underlying_Type entity before reading attribute Access_Disp_Table.
15250 * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
15251 Locate the Underlying_Type before reading attribute Access_Disp_Table.
15252 * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
15253 the Underlying_Type entity before reading attribute Access_Disp_Table.
15254 * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
15255 Locate the Underlying_Type entity before reading attribute
15256 Access_Disp_Table.
15257
152582011-08-01 Ed Schonberg <schonberg@adacore.com>
15259
15260 * s-poosiz.ads: Additional overriding indicators.
15261
152622011-08-01 Yannick Moy <moy@adacore.com>
15263
15264 * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
15265 formal mode.
15266 (Analyze_Iteration_Scheme): issue error in formal mode when loop
15267 parameter specification does not include a subtype mark.
15268 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
15269 formal mode on abstract subprogram.
15270 (Analyze_Subprogram_Specification): issue error in formal mode on
15271 user-defined operator.
15272 (Process_Formals): issue error in formal mode on access parameter and
15273 default expression.
15274 * sem_ch9.adb (Analyze_Abort_Statement,
15275 Analyze_Accept_Statement, Analyze_Asynchronous_Select,
15276 Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
15277 Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
15278 Analyze_Requeue, Analyze_Selective_Accept,
15279 Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
15280 * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
15281 issue error in formal mode on user-defined raise statement.
15282
1f250383
AC
152832011-08-01 Thomas Quinot <quinot@adacore.com>
15284
15285 * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
15286 declaration being hidden when overriding an implicit inherited
15287 subprogram.
15288 * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
15289 (-gnats), do not complain about a source file that contains only a
15290 pragma No_Body.
15291
152922011-08-01 Ed Schonberg <schonberg@adacore.com>
15293
15294 * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
15295 variable if already set.
15296
607d0635
AC
152972011-08-01 Arnaud Charlet <charlet@adacore.com>
15298
15299 * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
15300 g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
15301 s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
15302 g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
15303 g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
15304 g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
15305 g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
15306 g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
15307 g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
15308 g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
15309 g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
15310 s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
15311 g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
15312 s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
15313 g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
15314 g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
15315 g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
15316 g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
15317 g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
15318 g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
15319 s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
15320 s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
15321 a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
15322 s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
15323 s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
15324 g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
15325 g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
15326 g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
15327 g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
15328 g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
15329 g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
15330 s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
15331 s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
15332 g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
15333 g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
15334 s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
15335 s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
15336 g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
15337 g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
15338 g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
15339 s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
15340 g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
15341 g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
15342 g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
15343 s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
15344 g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
15345 g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
15346 g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
15347 s-osinte-mingw.ads: Update to GPLv3 run-time license.
15348 Use GNAT instead of GNARL.
15349
153502011-08-01 Bob Duff <duff@adacore.com>
15351
15352 * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
15353 a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
15354 a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
15355 reformatting.
15356
153572011-08-01 Yannick Moy <moy@adacore.com>
15358
15359 * debug.adb (d.D) reverve flag for the SPARK mode
15360 (d.E) reverve flag for SPARK generation mode
15361 (d.F) reverve flag for Why generation mode
2c7f9cc0 15362 * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
607d0635
AC
15363 ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode): New
15364 functions which return True when the corresponding modes are set
15365 (Formal_Language): return "spark" or "alfa" when in formal verification
15366 mode.
15367 * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
15368 Error_Msg to prefix the error message with a tag giving the formal
15369 language
15370 (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
15371 message with a tag giving the formal language
15372 * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
15373 block statement
15374 (Analyze_Case_Statement): issue error in formal mode on case statement
15375 with a single "others" case alternative
15376 (Analyze_Exit_Statement): issue errors in formal mode on exit
15377 statements which do not respect SPARK restrictions
15378 (Analyze_Goto_Statement): issue error in formal mode on goto statement
15379 (Check_Unreachable_Code): always issue an error (not a warning) in
15380 formal mode on unreachable code (concerns both code after an infinite
15381 loop and after an unconditional jump, both not allowed in SPARK)
15382 * sem_ch6.adb (Analyze_Return_Statement): add call to
15383 Set_Return_Present for a procedure containing a return statement
15384 (already done for functions in Analyze_Function_Return)
15385 (Analyze_Function_Return): issue error in formal mode on extended
15386 return or if return is not last statement in function
15387 (Check_Missing_Return): issue error in formal mode if function does
15388 not end with return or if procedure contains a return
15389 * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
15390 function to detect if there is an inner scope of its parameter S which
15391 is a loop.
15392
153932011-08-01 Thomas Quinot <quinot@adacore.com>
15394
15395 * sem_ch6.ads: Minor reformatting.
15396
d8b3ccb9
AC
153972011-08-01 Javier Miranda <miranda@adacore.com>
15398
15399 * sem_util.adb (Abstract_Interface_List): Complete condition when
15400 processing private type declarations to avoid reading unavailable
15401 attribute.
15402 (Is_Synchronized_Tagged_Type): Complete condition when processing
15403 private extension declaration nodes to avoid reading unavailable
15404 attribute.
15405
154062011-08-01 Thomas Quinot <quinot@adacore.com>
15407
15408 * sem_ch3.adb: Minor reformatting.
15409
154102011-08-01 Thomas Quinot <quinot@adacore.com>
15411
15412 * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
15413 i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
15414 s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
15415 s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
15416 for VMS, instead parametrize the common implementation with
15417 System.Parameters declarations.
15418
0bb9276c
AC
154192011-08-01 Eric Botcazou <ebotcazou@adacore.com>
15420
15421 * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
15422
154232011-08-01 Tristan Gingold <gingold@adacore.com>
15424
15425 * seh_init.c: Fix SEH handler installation on win64.
15426
154272011-08-01 Ed Schonberg <schonberg@adacore.com>
15428
15429 * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
15430 double analysis of an anonymous access to subprogram, because it can
15431 lead to improper sharing of profiles and a back-end crash.
15432
6a2e4f0b
AC
154332011-08-01 Robert Dewar <dewar@adacore.com>
15434
15435 * make.adb, sem_ch4.adb: Minor reformatting.
15436 * gcc-interface/Make-lang.in: Update dependencies.
15437 * sem_util.adb, exp_ch5.adb: Minor reformatting.
15438
154392011-08-01 Arnaud Charlet <charlet@adacore.com>
15440
15441 * gnat_rm.texi: Fix definition of Long_Integer.
15442
154432011-08-01 Ed Schonberg <schonberg@adacore.com>
15444
15445 * exp_aggr.adb: check limit size of static aggregate unconditionally,
15446 to prevent storage exhaustion.
15447 * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
15448 finalized is a function body, insert the cleanup code before the final
15449 return statement, to prevent spurious warnings.
15450 * s-pooglo.ads: add overriding indicator.
15451
4561baf7
ES
154522011-08-01 Ed Schonberg <schonberg@adacore.com>
15453
15454 * sem_ch4.adb (Operator_Check): improve error message when both a
15455 with_clause and a use_clause are needed to make operator usage legal.
15456 * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
15457 determine whether a compilation unit is visible within an other,
15458 either through a with_clause in the current unit, or a with_clause in
15459 its library unit or one one of its parents.
15460
383e179e
AC
154612011-08-01 Ed Schonberg <schonberg@adacore.com>
15462
15463 * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
15464 over an arbitrary expression of an array or container type.
15465 * lib-xref.adb: clarify comment.
15466
154672011-08-01 Bob Duff <duff@adacore.com>
15468
15469 * einfo.ads: Minor reformatting.
15470 * debug.adb: Minor comment improvement.
15471
154722011-08-01 Javier Miranda <miranda@adacore.com>
15473
15474 * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
15475 consider hidden subprograms as valid candidates.
15476
154772011-08-01 Arnaud Charlet <charlet@adacore.com>
15478
15479 * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
15480
154812011-08-01 Vasiliy Fofanov <fofanov@adacore.com>
15482
15483 * gnat_ugn.texi: Fix typo.
15484
61c161b2
AC
154852011-08-01 Robert Dewar <dewar@adacore.com>
15486
15487 * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
15488 lib-xref.adb: Minor reformatting
15489
154902011-08-01 Gary Dismukes <dismukes@adacore.com>
15491
15492 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
15493 when to generate a call to Move_Final_List.
15494 (Has_Controlled_Parts): Remove this function.
15495
84df40f7
AC
154962011-08-01 Geert Bosch <bosch@adacore.com>
15497
15498 * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
15499 "," in choice list.
15500
155012011-08-01 Thomas Quinot <quinot@adacore.com>
15502
15503 * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
15504 explicit raise of a predefined exception as Comes_From_Source if the
15505 original N_Raise_Statement comes from source.
15506
155072011-08-01 Robert Dewar <dewar@adacore.com>
15508
15509 * sinfo.ads: Add comment.
15510 * sem_ch6.adb: Minor reformatting.
15511
155122011-08-01 Robert Dewar <dewar@adacore.com>
15513
15514 * freeze.adb (Freeze_Entity): Refine check for bad component size
15515 clause to avoid rejecting confirming clause when atomic/aliased present.
15516
155172011-08-01 Ed Schonberg <schonberg@adacore.com>
15518
15519 * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
15520 better determine whether an entity reference is a write.
15521 * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
15522 subcomponent.
15523 * lib-xref.adb (Output_References): Do no suppress a read reference at
15524 the same location as an immediately preceeding modify-reference, to
15525 handle properly in-out actuals.
15526
155272011-08-01 Tristan Gingold <gingold@adacore.com>
15528
15529 * env.c (__gnat_setenv) [VMS]: Refine previous change.
15530
155312011-08-01 Quentin Ochem <ochem@adacore.com>
15532
15533 * i-cstrin.adb (New_String): Changed implementation, now uses only the
15534 heap to compute the result.
15535
c7f0d2c0
AC
155362011-08-01 Robert Dewar <dewar@adacore.com>
15537
15538 * atree.ads: Minor reformatting.
15539
155402011-08-01 Emmanuel Briot <briot@adacore.com>
15541
15542 * g-expect.adb (Get_Command_Output): Fix memory leak.
15543
155442011-08-01 Geert Bosch <bosch@adacore.com>
15545
15546 * cstand.adb (P_Float_Type): New procedure to print the definition of
15547 predefined fpt types.
15548 (P_Mixed_Name): New procedure to print a name using mixed case
15549 (Print_Standard): Use P_Float_Type for printing floating point types
15550 * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
15551 precision IEEE float.
15552
155532011-08-01 Thomas Quinot <quinot@adacore.com>
15554
15555 * sem_ch3.adb: Minor reformatting.
15556
155572011-08-01 Ed Schonberg <schonberg@adacore.com>
15558
15559 * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
15560 the completion of a generic function, insert the new body rather than
15561 rewriting the original.
15562
155632011-08-01 Yannick Moy <moy@adacore.com>
15564
15565 * sinfo.ads, errout.ads: Typos in comments.
15566
1c54829e
AC
155672011-08-01 Robert Dewar <dewar@adacore.com>
15568
15569 * par-endh.adb: Minor reformatting.
15570
155712011-08-01 Robert Dewar <dewar@adacore.com>
15572
15573 * aspects.ads, aspects.adb: Add aspects for library unit pragmas
15574 (Pre_Post_Aspects): New subtype.
15575 * par-ch12.adb (P_Generic): New syntax for aspects in packages
15576 * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
15577 * par-ch7.adb (P_Package): Remove Decl parameter
15578 (P_Package): Handle new syntax for aspects (before IS)
15579 * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
15580 new aspect syntax
15581 (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
15582 * par.adb (P_Aspect_Specifications): Add Semicolon parameter
15583 (P_Package): Remove Decl parameter
15584 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
15585 aspects
15586 * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
15587 specs
15588 * sem_util.ads, sem_util.adb (Static_Boolean): New function
15589 * sinfo.ads: Document new syntax for aspects in packages etc.
15590 * sprint.adb: Handle new syntax of aspects before IS in package
15591
155922011-08-01 Thomas Quinot <quinot@adacore.com>
15593
15594 * atree.ads: Minor reformatting.
15595 * sem_prag.adb: Minor reformatting.
15596
155972011-08-01 Robert Dewar <dewar@adacore.com>
15598
15599 * exp_util.adb (Insert_Actions): Fix error in handling Actions for
15600 case expr alternative.
15601
156022011-08-01 Ed Schonberg <schonberg@adacore.com>
15603
15604 * sem_ch12.adb: Fix typo.
15605
9eea4346
GB
156062011-08-01 Geert Bosch <bosch@adacore.com>
15607
15608 * sem_prag.adb (Check_No_Link_Name): New procedure.
15609 (Process_Import_Or_Interface): Use Check_No_Link_Name.
15610 * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
15611 instead of Standard_Long_Long_Float_Size global. Preparation for
15612 eventual removal of per type constants.
15613 * exp_util.ads (Get_Stream_Size): New function returning the stream
15614 size value of subtype E.
15615 * exp_util.adb (Get_Stream_Size): Implement new function.
15616 * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
15617 function.
15618 * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
15619 * einfo.adb:
15620 (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
15621
3d6c3bd7
GB
156222011-08-01 Geert Bosch <bosch@adacore.com>
15623
15624 * cstand.adb: Fix comments.
15625 * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
15626 count of arguments.
15627
e7d897b8
AC
156282011-08-01 Robert Dewar <dewar@adacore.com>
15629
15630 * exp_ch4.adb, sem_cat.adb: Minor reformatting.
15631
156322011-08-01 Geert Bosch <bosch@adacore.com>
15633
15634 * atree.ads: Fix comment.
15635
c228a069
AC
156362011-08-01 Robert Dewar <dewar@adacore.com>
15637
15638 * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
15639 * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
15640 * par.adb: Add with for Namet.Sp.
15641 * par-tchk.adb: Minor reformatting.
15642
156432011-08-01 Vincent Celier <celier@adacore.com>
15644
15645 * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
15646 (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
15647 of the init procedure of a SAL.
15648 * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
15649 New procedure.
15650
156512011-08-01 Thomas Quinot <quinot@adacore.com>
15652
15653 * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
15654 reformatting.
15655
156562011-08-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15657
15658 * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
15659
156602011-08-01 Thomas Quinot <quinot@adacore.com>
15661
15662 * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
15663 conformant with its spec (return True only for types that have
15664 an overriding Initialize primitive operation that prevents them from
15665 having preelaborable initialization).
15666 * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
15667 initialization for controlled types in Ada 2005 or later mode.
15668
857ade1b
RD
156692011-08-01 Robert Dewar <dewar@adacore.com>
15670
15671 * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
15672 Postcondition.
15673 (Same_Aspect): New function.
15674 * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
15675 Type_Invariant, Precondition, Postcondition.
15676 * snames.ads-tmpl: Add Name_Type_Invariant.
15677
bd949ee2
RD
156782011-08-01 Robert Dewar <dewar@adacore.com>
15679
15680 * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
15681 here.
15682 (Freeze_All_Ent): Fix error in handling inherited aspects.
15683 * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
15684 already analyzed, but don't skip entire processing of a declaration,
15685 that's wrong in some cases of declarations being rewritten.
15686 (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
15687 Don't delay for integer, string literals
15688 Treat predicates in usual manner for delay, remove special case code,
15689 not needed.
15690 (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
15691 (Build_Predicate_Function): Update saved expression in aspect
15692 (Build_Invariant_Procedure): Update saved expression in aspect
15693 * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
15694 of replacement of discriminant references if the reference is simple.
15695
f1c952af
RD
156962011-08-01 Robert Dewar <dewar@adacore.com>
15697
15698 * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
15699 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
15700 Static_Predicate and Dynamic_Predicate.
15701 (Build_Predicate_Function): Add processing for Static_Predicate
15702 and Dynamic_Predicate.
15703 * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
15704 (From_Static_Predicate): New flag
15705 * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
15706
157072011-08-01 Robert Dewar <dewar@adacore.com>
15708
15709 * usage.adb: Documentation cleanup for Ada version modes in usage.
15710 * expander.adb: Minor reformatting.
15711
47e11d08
AC
157122011-08-01 Robert Dewar <dewar@adacore.com>
15713
15714 * atree.ads: Minor comment fix.
15715 * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
15716 a-witeio.ads, sem_prag.adb: Minor reformatting.
15717
157182011-08-01 Doug Rupp <rupp@adacore.com>
15719
15720 * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
15721 pointers. Use descrip.h header file for convenience. Add some
15722 comments.
15723
157242011-08-01 Robert Dewar <dewar@adacore.com>
15725
15726 * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
15727 (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
15728 * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
15729 New procedure.
15730 (Check_Aspect_At_End_Of_Declarations): New procedure
15731 (Analye_Aspect_Specification): Minor changes for above procedures
15732 * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
15733 specification node as well.
15734
157352011-08-01 Pascal Obry <obry@adacore.com>
15736
15737 * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
15738 Windows files. Use GetFilesAttributes() in this case to check for file
15739 existence instead of returning with an error code.
15740
a3a16b21
VC
157412011-08-01 Vincent Celier <celier@adacore.com>
15742
15743 * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
15744 High is above Source length.
15745
ff58cc69
RD
157462011-08-01 Robert Dewar <dewar@adacore.com>
15747
15748 * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
15749
6bb88533
AC
157502011-08-01 Robert Dewar <dewar@adacore.com>
15751
15752 * aspects.ads (Boolean_Aspects): New subtype.
15753 * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
15754 for derived types in cases where the parent type and derived type have
15755 aspects.
15756 * freeze.adb (Freeze_Entity): Fix problems in handling derived type
15757 with aspects when parent type also has aspects.
15758 (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
15759 boolean expression at this point).
15760 * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
15761 accordance with final decision on the Ada 2012 feature.
15762 * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
15763
157642011-08-01 Matthew Heaney <heaney@adacore.com>
15765
15766 * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
15767
060a3f28
AC
157682011-08-01 Pascal Obry <obry@adacore.com>
15769
15770 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
15771 Fix Replace_Slice when High is above current string size.
15772 (Replace_Slice): Fix DL computation when High is above current
15773 string length.
15774
157752011-08-01 Gary Dismukes <dismukes@adacore.com>
15776
15777 * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
15778
e7f567a3
AC
157792011-08-01 Matthew Heaney <heaney@adacore.com>
15780
15781 * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
15782 of node.
15783
157842011-08-01 Pascal Obry <obry@adacore.com>
15785
15786 * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
15787 reformatting.
15788
1a265e78
AC
157892011-08-01 Ed Schonberg <schonberg@adacore.com>
15790
15791 * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
15792 access to protected subprograms in generic bodies.
15793 * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
15794 protected type, indicate that the convention of the subprogram is
15795 Convention_Protected, because it may be used in subsequent declarations
15796 within the protected declaration.
15797
157982011-08-01 Vincent Celier <celier@adacore.com>
15799
15800 * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
15801 and "final" procedures when the name of the library is "ada", to avoid
15802 duplicate symbols "adainit" and "adafinal" in executables.
15803
67e28ef8
ES
158042011-08-01 Ed Schonberg <schonberg@adacore.com>
15805
15806 * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
15807 quantified expression that appears within a postcondition and uses the
15808 Ada2012 'Result attribute.
15809
6da2ca7d
RO
158102011-07-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15811
15812 * init.c (__gnat_error_handler): Cast reason to int.
15813 (__gnat_install_handler): Explain sa_sigaction use.
15814
7d5997c6
EB
158152011-07-24 Eric Botcazou <ebotcazou@adacore.com>
15816
15817 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
15818 subprogram has copy-in copy-out parameters, try to promote the mode of
15819 the return type if it is passed in registers.
15820
4b4cfdd5
EB
158212011-07-24 Eric Botcazou <ebotcazou@adacore.com>
15822
15823 * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
15824 left operand as addressable.
15825
f3d34576
EB
158262011-07-24 Eric Botcazou <ebotcazou@adacore.com>
15827
15828 * gcc-interface/gigi.h (build_function_stub): Remove.
15829 (build_return_expr): Likewise.
15830 (convert_vms_descriptor): Declare.
15831 * gcc-interface/utils.c (convert_vms_descriptor): Make global.
15832 (build_function_stub): Move to...
15833 * gcc-interface/utils2.c (build_return_expr): Move to...
15834 * gcc-interface/trans.c (build_function_stub): ...here.
15835 (build_return_expr): ...here.
15836 (Subprogram_Body_to_gnu): Add local variable for language_function.
15837 Disconnect the parameter attributes cache, if any, once done with it.
15838 Call end_subprog_body only after setting the end_locus.
15839 Build the stub associated with the function, if any, at the very end.
15840 (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
15841 variables and streamline control flow.
15842
0a6ecc08
AC
158432011-07-23 Arnaud Charlet <charlet@adacore.com>
15844
15845 PR ada/49819
15846 * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
15847 g-trasym-dwarf.adb.
15848
5b6d595b
RO
158492011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15850
15851 PR bootstrap/49794
15852 * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
15853 Assign to act.sa_sigaction.
15854 * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
15855 current->return_address to char * before arithmetic.
15856
94017021
RO
158572011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15858
15859 * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
15860 Correct argument types.
15861 Extract code from reason.
15862 (__gnat_install_handler): Assign to act.sa_sigaction.
15863
52fd02bb
EB
158642011-07-21 Eric Botcazou <ebotcazou@adacore.com>
15865
15866 * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
15867 (GNAT1_OBJS): ...here.
15868
f39a9ca2
EB
158692011-07-15 Eric Botcazou <ebotcazou@adacore.com>
15870
15871 PR ada/48711
15872 * g-socthi-mingw.adb (Fill): Fix formatting.
15873
9e36aa23
EB
15874 * gcc-interface/gigi.h: Move around comment.
15875
e3aca522
JDA
158762011-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15877
15878 PR ada/46350
15879 * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
15880
696b1960
FW
158812011-07-14 Florian Weimer <fw@deneb.enyo.de>
15882
15883 PR ada/48711
15884 * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
15885
f542c405
EB
158862011-07-13 Eric Botcazou <ebotcazou@adacore.com>
15887
15888 * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
15889 range comparison if Pmode is SImode.
15890
9e9bd455
LG
158912011-07-12 Laurent GUERBY <laurent@guerby.net>
15892 Eric Botcazou <ebotcazou@adacore.com>
15893
15894 * adadecode.c: Wrap up in extern "C" block.
15895 * adadecode.h: Likewise.
15896 * adaint.c: Likewise. Remove 'const' keyword.
15897 * adaint.h: Likewise.
15898 * argv.c: Likewise.
15899 * atree.h: Likewise.
15900 * cio.c: Likewise.
15901 * cstreams.c: Likewise.
15902 * env.c: Likewise.
15903 * exit.c: Likewise.
15904 * fe.h: Likewise.
15905 * final.c: Likewise.
15906 * init.c: Likewise.
15907 * initialize.c: Likewise.
15908 * link.c: Likewise.
15909 * namet.h: Likewise.
15910 * nlists.h: Likewise.
15911 * raise.c: Likewise.
15912 * raise.h: Likewise.
15913 * repinfo.h: Likewise.
15914 * seh_init.c: Likewise.
15915 * targext.c: Likewise.
15916 * tracebak.c: Likewise.
15917 * uintp.h: Likewise.
15918 * urealp.h: Likewise.
15919 * xeinfo.adb: Wrap up generated C code in extern "C" block.
15920 * xsinfo.adb: Likewise.
15921 * xsnamest.adb: Likewise.
15922 * gcc-interface/gadaint.h: Wrap up in extern "C" block.
15923 * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
15924 * gcc-interface/misc.c: Likewise.
15925 * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
15926 (GNAT1_C_OBJS): Remove ada/b_gnat1.o. List ada/seh_init.o and
15927 ada/targext.o here...
15928 (GNAT_ADA_OBJS): ...and not here.
15929 (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
15930 (GNATBIND_OBJS): Reorder.
15931
7644b3c7
RH
159322011-07-07 Richard Henderson <rth@redhat.com>
15933
15934 * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
15935 dwarf2out_frame_init.
15936
8384ac41
EB
159372011-07-07 Eric Botcazou <ebotcazou@adacore.com>
15938
15939 * gcc-interface/misc.c (gnat_init): Tweak previous change.
15940
fbdd5d87
RO
159412011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15942
15943 PR target/39150
15944 * gcc-interface/Makefile.in: Handle x86_64-solaris2.
15945
1a072294
RG
159462011-07-06 Richard Guenther <rguenther@suse.de>
15947
8384ac41
EB
15948 * gcc-interface/misc.c (gnat_init): Merge calls to
15949 build_common_tree_nodes and build_common_tree_nodes_2.
1a072294
RG
15950 Re-initialize boolean_false_node.
15951
bc712852
EB
159522011-07-02 Eric Botcazou <ebotcazou@adacore.com>
15953 Olivier Hainque <hainque@adacore.com>
15954 Nicolas Setton <setton@adacore.com>
15955
15956 * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
15957 the type according to the ARTIFICIAL_P parameter.
15958 (create_type_decl): Likewise.
15959 (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
15960
2eb22389
EB
159612011-07-01 Eric Botcazou <ebotcazou@adacore.com>
15962
15963 * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
15964 (gnatbind): Likewise.
15965
4bdaaf2f
RO
159662011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15967
15968 * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
15969
c020c92b
EB
159702011-06-18 Eric Botcazou <ebotcazou@adacore.com>
15971
15972 * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
15973 local variable throughout. Remove useless call to Base_Type.
15974 (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
15975 Take it also into account for the volatileness of the field. Set the
15976 TREE_SIDE_EFFECTS flag as well in this case. Reorder some warnings.
15977
96769d32
EB
159782011-06-18 Eric Botcazou <ebotcazou@adacore.com>
15979
15980 * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
15981 on a dereference built for a by-ref object if it has an address clause.
15982
7e4680c1
EB
159832011-06-18 Eric Botcazou <ebotcazou@adacore.com>
15984
15985 * einfo.ads (Address_Taken): Document use for the second argument of
15986 Asm_Input and Asm_Output attributes.
15987 * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
15988 argument is an entity name, then set Address_Taken on it.
15989 <Attribute_Asm_Output>: Likewise.
15990 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
15991 Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
15992 (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
15993 memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
15994
159952011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
15996
15997 PR middle-end/46500
15998 * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
15999
677f3fa8
JM
160002011-06-14 Joseph Myers <joseph@codesourcery.com>
16001
16002 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
16003 (ada/utils.o): Update dependencies.
16004 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
16005 ../../../libcpp/libcpp.a.
16006 * gcc-interface/utils.c: Include common/common-target.h.
16007 (process_attributes): Use targetm_common.have_named_sections.
16008
009db074
RG
160092011-06-07 Richard Guenther <rguenther@suse.de>
16010
0bad0e23
EB
16011 * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
16012 set_sizetype.
009db074 16013
3bfc61cf
EB
160142011-06-06 Eric Botcazou <ebotcazou@adacore.com>
16015
0bad0e23 16016 * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
3bfc61cf
EB
16017 TREE_THIS_NOTRAP flag.
16018
5c4a1c7b
EB
160192011-06-06 Eric Botcazou <ebotcazou@adacore.com>
16020
16021 * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
16022 Fix thinko.
16023
e9f57686
EB
160242011-06-06 Eric Botcazou <ebotcazou@adacore.com>
16025
16026 * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
16027 constants whose full view has discriminants specially.
16028
10e4d056
EB
160292011-06-06 Eric Botcazou <ebotcazou@adacore.com>
16030
16031 * gcc-interface/utils.c: Include diagnostic.h.
16032 (gnat_write_global_declarations): Output debug information for all
16033 global type declarations before finalizing the compilation unit.
16034 * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
16035
0957c029
JJ
160362011-05-25 Jakub Jelinek <jakub@redhat.com>
16037
16038 * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
16039
52d0a7ac
KT
160402011-05-25 Kai Tietz <ktietz@redhat.com>
16041
16042 * adaint.c (__gnat_to_canonical_file_list_next): Use array
16043 initialization instead of const/none-const pointer assignment.
16044
1ed1641d
JM
160452011-05-24 Joseph Myers <joseph@codesourcery.com>
16046
16047 * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
16048 $(EXTRA_GNAT1_OBJS).
16049 (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
16050 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
16051 (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
16052 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
16053 libcommon-target.a instead of prefix.o.
16054
9fe72ebd
JM
160552011-05-21 Joseph Myers <joseph@codesourcery.com>
16056
16057 PR ada/49097
0bad0e23 16058 * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
9fe72ebd 16059
2691e6d7
JM
160602011-05-20 Joseph Myers <joseph@codesourcery.com>
16061
0bad0e23
EB
16062 * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
16063 * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
16064 instead of version.o.
2691e6d7 16065
2d0dd51a 160662011-05-18 Kai Tietz <ktietz@redhat.com>
bf6490b5
KT
16067
16068 * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
16069 boolean_false_node instead of integer_zero_node.
16070 (convert_with_check): Likewise.
16071 * gcc-interface/decl.c (choices_to_gnu): Likewise.
16072
7bf9a5ac
EB
160732011-05-12 Eric Botcazou <ebotcazou@adacore.com>
16074
16075 * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
16076 type of the parameter is an unconstrained array, convert the actual to
16077 the type of the formal in the In Out and Out cases as well.
16078
e5b00edf
NF
160792011-05-11 Nathan Froyd <froydnj@codesourcery.com>
16080
16081 * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
16082 call build_function_type_array or build_varargs_function_type_array
16083 instead.
16084 (create_subprog_type): Don't call build_function_type; call
16085 build_function_type_vec instead.
16086
51545682
NF
160872011-05-11 Nathan Froyd <froydnj@codesourcery.com>
16088
16089 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
16090 (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
16091 (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
16092
c99c0026
EB
160932011-05-07 Eric Botcazou <ebotcazou@adacore.com>
16094
f620bd21
EB
16095 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
16096
c99c0026
EB
16097 * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
16098 * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
16099
3d528853
NF
161002011-05-05 Nathan Froyd <froydnj@codesourcery.com>
16101
c99c0026 16102 * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
3d528853 16103
d7d058c5
NF
161042011-05-05 Nathan Froyd <froydnj@codesourcery.com>
16105
16106 * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
16107 instead of accessing TYPE_ARG_TYPES directly.
16108 * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
16109
805e60a0
EB
161102011-05-05 Eric Botcazou <ebotcazou@adacore.com>
16111
16112 PR ada/48844
16113 * gcc-interface/gigi.h (get_variant_part): Declare.
16114 * gcc-interface/decl.c (get_variant_part): Make global.
16115 * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
16116 types have the same constant size, are record types and T1 has a
16117 variant part while T2 doesn't.
16118
907a08d9
EB
161192011-05-05 Eric Botcazou <ebotcazou@adacore.com>
16120
16121 * gcc-interface/utils.c (begin_subprog_body): Do not call
16122 get_pending_sizes.
16123 (end_subprog_body): Likewise.
16124
d35936ab
RG
161252011-05-04 Richard Guenther <rguenther@suse.de>
16126
16127 * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
16128 int_const_binop.
16129 (pos_to_constructor): Likewise.
16130
c1fd8753 161312011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2c7f9cc0 16132 Eric Botcazou <ebotcazou@adacore.com>
c1fd8753
NF
16133
16134 * gcc-interface/trans.c (gigi): Call build_function_type_list instead
16135 of build_function_type. Adjust calls to...
16136 (build_raise_check): ...this. Do not take a void_tree parameter.
16137 Call build_function_type_list instead of build_function_type.
16138 Fix head comment and swap couple of conditional blocks.
16139
4fb87d2b
EB
161402011-04-30 Eric Botcazou <ebotcazou@adacore.com>
16141
16142 * gnatvsn.ads (Library_Version): Bump to 4.7.
16143 (Current_Year): Bump to 2011.
16144
fa5e5a76
MM
161452011-04-29 Michael Matz <matz@suse.de>
16146
16147 * gcc-interface/misc.c (gnat_handle_option): Set
16148 warn_maybe_uninitialized.
16149
8d6a2f69
GP
161502011-04-23 Gerald Pfeifer <gerald@pfeifer.com>
16151
16152 * gnat_ugn.texi (Complexity Metrics Control): Update link to
16153 the Watson/McCabe paper.
16154
770937fd
JM
161552011-04-23 Jim Meyering <meyering@redhat.com>
16156
16157 * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
16158
eb601ae1
EB
161592011-04-22 Eric Botcazou <ebotcazou@adacore.com>
16160
16161 * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
16162 onto the new type.
16163
7d7fcb08
EB
161642011-04-22 Eric Botcazou <ebotcazou@adacore.com>
16165
16166 * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
16167 parameter.
16168 * gcc-interface/utils.c (create_subprog_decl): Likewise. Set
16169 DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
16170 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
16171 ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
16172 <all>: Do not set flags on the reused DECL node coming from an alias.
16173 Set DECL_IGNORED_P on the DECL node built for subprograms if they
16174 don't need debug info here...
16175 * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
16176 (gigi): Adjust calls to create_subprog_decl.
16177 (build_raise_check): Likewise.
16178 (establish_gnat_vms_condition_handler): Likewise.
16179 (Compilation_Unit_to_gnu): Likewise.
16180 (gnat_to_gnu): Likewise.
16181
e1876cac
EB
161822011-04-21 Eric Botcazou <ebotcazou@adacore.com>
16183
16184 * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
16185 (NO_REORDER_ADAFLAGS): New variable.
16186 (EXTRA_GNATTOOLS): Always define.
16187 (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
16188 Clean up and adjust list of files compiled with special options.
16189 * gcc-interface/Make-lang.in: Likewise.
16190 (ada/decl.o): Cosmetical change.
16191 (ada/misc.o): Remove dependency on $(PLUGIN_H).
16192
04695783
JM
161932011-04-20 Jim Meyering <meyering@redhat.com>
16194
16195 * initialize.c (__gnat_initialize): Remove useless if-before-free.
16196
23399579
EB
161972011-04-17 Eric Botcazou <ebotcazou@adacore.com>
16198
16199 * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
16200 $(CFLAGS) on the link line.
16201
51c5169c
EB
162022011-04-17 Eric Botcazou <ebotcazou@adacore.com>
16203
16204 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
16205 padded type built for the return type if it is unconstrained.
16206
61e46a7d
NF
162072011-04-14 Nathan Froyd <froydnj@codesourcery.com>
16208
16209 * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
16210
81f653d6
NF
162112011-04-12 Nathan Froyd <froydnj@codesourcery.com>
16212
b4867846
EB
16213 * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
16214 before calling TREE_CHAIN.
81f653d6
NF
16215 * gcc-interface/misc.c (gnat_init_ts): New function.
16216 (LANG_HOOKS_INIT_TS): Define.
16217
a358e188
MJ
162182011-04-12 Martin Jambor <mjambor@suse.cz>
16219
b4867846
EB
16220 * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
16221 instead of cgraph_node.
a358e188 16222
29b1c5a4
EB
162232011-04-08 Eric Botcazou <ebotcazou@adacore.com>
16224
16225 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
16226 alignment on fields of the RETURN type built for the Copy-In Copy-Out
16227 mechanism.
16228
88872b00
EB
162292011-04-08 Eric Botcazou <ebotcazou@adacore.com>
16230
16231 * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
16232 of aggregate types that contain a placeholder.
16233
dcf0c47e
NF
162342011-04-08 Nathan Froyd <froydnj@codesourcery.com>
16235
16236 * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
b4867846 16237 TYPE_ARG_TYPES.
dcf0c47e
NF
16238 (handle_type_generic_attribute): Likewise.
16239
53e3000c
EB
162402011-04-04 Eric Botcazou <ebotcazou@adacore.com>
16241
16242 PR ada/47163
16243 * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
16244
ab380bb4
KT
162452011-04-04 Kai Tietz <ktietz@redhat.com>
16246
16247 PR ada/47163
0bad0e23
EB
16248 * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
16249 to flag value.
ab380bb4 16250
8ffac116
EB
162512011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16252
16253 * gcc-interface/utils2.c (build_allocator): In the unconstrained array
16254 type case, do not strip a padding type around the array type.
16255
de9528f0
EB
162562011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16257
16258 * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
16259 types.
16260
d9d7a26c
EB
162612011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16262
16263 * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
16264 * gcc-interface/misc.c (gnat_handle_option): Remove special handling
de9528f0 16265 code for -feliminate-unused-debug-types.
d9d7a26c
EB
16266 (gnat_post_options): Likewise.
16267
4cb12a90
EB
162682011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16269
16270 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
16271 declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
16272 distinct copy.
16273
acccc61c
EB
162742011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16275
16276 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
16277 DECL_ARTIFICIAL flag on enumeration types.
16278
583eb0c9
EB
162792011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16280
16281 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
16282 fat pointer types artificial unconditionally.
16283 <E_Array_Subtype>: Attach the base array type as a parallel type if it
16284 isn't artificial.
16285
e3edbd56
EB
162862011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16287
16288 * gcc-interface/gigi.h (get_dummy_type): Declare.
16289 (build_dummy_unc_pointer_types): Likewise.
16290 (finish_fat_pointer_type): Likewise.
16291 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
16292 fat pointer type has been built, complete it in place.
16293 <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
16294 and thin pointers. Remove useless variable.
16295 (finish_fat_pointer_type): Make global and move to...
16296 * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
16297 (get_dummy_type): New function.
16298 (build_dummy_unc_pointer_types): Likewise.
16299 (gnat_pushdecl): Propage the name to the anonymous variants only.
16300 (update_pointer_to): Only adjust the pointer types in the unconstrained
16301 array case.
16302
65444786
EB
163032011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16304
16305 * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
16306 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
16307 if this is a Taft amendment type and the full declaration is available.
16308 * gcc-interface/trans.c (process_type): Likewise.
16309 If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
16310 (process_freeze_entity): Likewise.
16311 * gcc-interface/utils.c (dummy_global): New static variable.
16312 (gnat_write_global_declarations): If there are types declared as used
16313 at the global level, insert them in the global hash table.
16314
1aeb40dd
EB
163152011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16316
16317 * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
16318 * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
16319 declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
16320 copy.
16321 (record_builtin_type): Add ARTIFICIAL_P parameter. Set DECL_ARTIFICIAL
16322 flag of the type accordingly.
16323 * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
16324
80ec8b4c
EB
163252011-04-02 Eric Botcazou <ebotcazou@adacore.com>
16326
16327 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
16328 finalizing types when updating the pointers to the designated type.
16329 <all>: Finalize the deferred types even if we didn't defer processing
16330 of incomplete types in this invocation.
16331
2a9d769a 163322011-04-01 Olivier Hainque <hainque@adacore.com>
2c7f9cc0
AS
16333 Nicolas Setton <setton@adacore.com>
16334 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
16335
16336 * gcc-interface/misc.c (gnat_descriptive_type): New function.
16337 (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
16338
2438d7a6
KT
163392011-03-28 Kai Tietz <ktietz@redhat.com>
16340
333d8aff 16341 * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
80ec8b4c
EB
16342 Windows targets.
16343 (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
16344 * system-mingw.ads (System): Change ZCX_By_Default default to True.
333d8aff 16345
80ec8b4c 16346 * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
2438d7a6 16347
8ad150f6
TG
163482011-03-28 Tristan Gingold <gingold@adacore.com>
16349
16350 PR ada/44431
80ec8b4c
EB
16351 * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
16352 Use ada output of gnatbind.
8ad150f6
TG
16353 (ada/b_gnatb.adb): Ditto.
16354 (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
16355 (ada.mostlyclean, ada.stage1)
16356 (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
16357 (ada.stagefeedback): Adjust.
80ec8b4c 16358 * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
8ad150f6
TG
16359 Use ada output of gnatbind.
16360 (b_gnatm.adb): Ditto.
16361 (b_gnatl.o, b_gnatm.o): New rules.
16362
51c7954d
EB
163632011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16364
16365 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
16366 for the padded type built to support a specified size or alignment.
16367
6ddf9843
EB
163682011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16369
16370 * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
16371 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
16372 unconditionally to the end of the unit when the designated type is
16373 limited_with'ed.
16374 <all>: Rename local variable. Attempt to un-defer types only and do it
16375 for limited_with'ed types as well.
16376 (finalize_from_with_types): Adjust comment. Rename variable and tidy.
16377 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
16378 consistently and remove redundant call to finalize_from_with_types.
16379
5daed84a
EB
163802011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16381
16382 * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
16383 subprograms without a previous spec declared in the same unit.
16384 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
16385 subprograms at the end of the unit instead of at the beginning.
16386 * gcc-interface/utils.c (create_subprog_decl): Check that the entity
16387 isn't public for the special handling of non-inline functions nested
16388 inside inline external functions.
16389
0edf1bb2
JL
163902011-03-25 Jeff Law <law@redhat.com>
16391
5daed84a 16392 * gcc-interface/utils.c (def_fn_type): Add missing va_end.
0edf1bb2 16393
e3c4580e
EB
163942011-03-24 Eric Botcazou <ebotcazou@adacore.com>
16395
16396 * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
16397 * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
16398 to compute Set_Size_Depends_On_Discriminant.
16399 (Layout_Type): Call it on array types in back-end layout mode.
16400 * sem_util.adb (Requires_Transient_Scope): Return true for array
16401 types only if the size depends on the value of discriminants.
16402 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
16403 type if the RHS is a call to a function that returns an unconstrained
16404 type with default discriminant.
16405
abbc8c7b
EB
164062011-03-24 Eric Botcazou <ebotcazou@adacore.com>
16407
16408 * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
16409 non-conversion to the nominal result type at the end.
16410
ddb5a105
EB
164112011-03-23 Eric Botcazou <ebotcazou@adacore.com>
16412
16413 * gcc-interface/trans.c (create_temporary): New function taken from...
16414 (create_init_temporary): ...here. Call it.
16415 (call_to_gnu): Create the temporary for the return value early, if any.
16416 Create it for a function with copy-in/copy-out parameters if there is
16417 no target; in other cases of copy-in/copy-out, use another temporary.
16418 Push the new binding level lazily. Add and rename local variables.
16419
0d853156
EB
164202011-03-23 Eric Botcazou <ebotcazou@adacore.com>
16421
16422 * gcc-interface/decl.c (validate_size): Improve comments and tweak
16423 error message.
16424 (set_rm_size): Likewise.
16425
4184ef1b
EB
164262011-03-23 Eric Botcazou <ebotcazou@adacore.com>
16427
16428 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
16429 for the padded type built in order to support a specified alignment.
16430 Fix incorrect formatting.
16431
bf7eefab
EB
164322011-03-21 Eric Botcazou <ebotcazou@adacore.com>
16433
16434 PR bootstrap/48216
16435 * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
16436
ef0feeb2
EB
164372011-03-21 Eric Botcazou <ebotcazou@adacore.com>
16438
16439 * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
16440 rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
16441 to the end of the list. Adjust recursive call. Rename local variable.
16442 If REORDER is true, reorder components of the record type.
16443 (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
16444 components_to_record and adjust the parameter list.
16445
646f9414
EB
164462011-03-21 Eric Botcazou <ebotcazou@adacore.com>
16447
16448 * gcc-interface/decl.c (elaborate_expression_1): When optimization is
16449 disabled, use the variable for bounds of loop iteration scheme.
16450
62d784f7
KT
164512011-03-21 Kai Tietz <ktietz@redhat.com>
16452
16453 PR target/12171
0bad0e23 16454 * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
62d784f7 16455
f230d759
EB
164562011-03-17 Eric Botcazou <ebotcazou@adacore.com>
16457
16458 * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
16459 out whether the expression is read-only. Short-circuit placeholder
16460 case and rename a couple of local variables.
16461
bb1f7929
EB
164622011-03-17 Eric Botcazou <ebotcazou@adacore.com>
16463
16464 * gcc-interface/gigi.h (smaller_form_type_p): Declare.
16465 * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
16466 * gcc-interface/utils.c (smaller_form_type_p): ...to here.
16467 (convert): Deal with conversions from a smaller form type specially.
16468
400a2d24
EB
164692011-02-14 Eric Botcazou <ebotcazou@adacore.com>
16470
16471 * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
16472 its argument, except for the special -I- switch.
16473
c26bc3ad
GP
164742011-02-12 Gerald Pfeifer <gerald@pfeifer.com>
16475
0bad0e23
EB
16476 * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
16477 "Ada Issues".
c26bc3ad 16478
07b8e910
EB
164792011-02-08 Eric Botcazou <ebotcazou@adacore.com>
16480
16481 * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
16482
31a5a547
EB
164832011-02-03 Eric Botcazou <ebotcazou@adacore.com>
16484
16485 * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
16486 GNAT_FORMAL.
16487 * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
16488 * gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
16489 instead of GNAT_FORMAL. Protect the expression against multiple uses.
16490 Do not generate the check directly, instead instantiate the template
16491 check present in the descriptor.
16492 (make_descriptor_field): Move around.
16493 (build_vms_descriptor32): Build a template check in the POINTER field.
16494 (build_vms_descriptor): Remove useless suffixes.
16495 * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
16496
dcf25f59
EB
164972011-01-26 Eric Botcazou <ebotcazou@adacore.com>
16498
16499 PR bootstrap/47467
16500 * targext.c: Include target files if IN_RTS is defined.
16501
0418e131
RG
165022011-01-26 Richard Guenther <rguenther@suse.de>
16503
16504 PR bootstrap/47467
16505 * targext.c: Include config.h.
16506 * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
16507 dependency.
16508
c6eecbd8 165092011-01-04 Pascal Obry <obry@adacore.com>
2c7f9cc0 16510 Eric Botcazou <ebotcazou@adacore.com>
c6eecbd8
PO
16511
16512 * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
16513
2d3c7e4f
EB
165142011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16515
16516 * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
16517 end-of-case on the end label and its associated gotos, if any.
16518
0394741f
EB
165192011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16520
16521 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
16522 expressions of the parameter cache within the statement group of
16523 the CICO mechanism.
16524
2a02d090 165252011-01-04 Olivier Hainque <hainque@adacore.com>
2c7f9cc0 16526 Eric Botcazou <ebotcazou@adacore.com>
2a02d090
OH
16527
16528 * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
16529 (set_end_locus_from_node): New function.
16530 (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
16531 make and the function end_locus.
16532 (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
16533 for the elaboration subprogram.
16534 (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
16535 set the end_locus of the expression as well.
16536
89f5e978
EB
165372011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16538
16539 PR ada/47131
16540 * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
16541 variables that are referenced in exception handlers volatile.
16542
16543
ad41bd84 16544\f
797103eb 16545Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
16546
16547Copying and distribution of this file, with or without modification,
16548are permitted in any medium without royalty provided the copyright
16549notice and this notice are preserved.