]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/ChangeLog
Add missing commas beween file names in gcc/ada/ChangeLog
[gcc.git] / gcc / ada / ChangeLog
CommitLineData
5102fac5
EB
12007-11-23 Eric Botcazou <ebotcazou@adacore.com>
2
3 * decl.c (ceil_alignment): New function.
4 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
5 (make_packable_type): Likewise.
6
1fa4dfc6
OH
72007-11-22 Olivier Hainque <hainque@adacore.com>
8
9 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
10 to fit in 80 columns.
11
5f45b299
AJ
122007-11-21 Aurelien Jarno <aurelien@aurel32.net>
13
14 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
15 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
16
7634135a
EB
172007-11-19 Eric Botcazou <ebotcazou@adacore.com>
18
19 PR ada/34098
20 * misc.c (gnat_adjust_rli): Delete.
21 (gnat_init): Do not initialize the translation code here.
22 Do not call set_lang_adjust_rli.
23 * trans.c (init_code_table): Make static.
24 (gnat_init_stmt_group): Delete.
25 (gigi): Initialize the translation code entirely here.
26 Emit debug info for the common types here instead of...
27 * utils.c (gnat_init_decl_processing): ...here.
28 * gigi.h (init_code_table): Delete.
29 (gnat_init_stmt_group): Likewise.
30
b2c3bcf4
OH
312007-11-16 Olivier Hainque <hainque@adacore.com>
32
33 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
34 retrieving an allocator return value from a super-aligned address from
35 here to ...
36 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
37 expect a super-aligned address for a fat or thin pointer.
38
a01e283f
EB
392007-11-14 Eric Botcazou <ebotcazou@adacore.com>
40
41 * trans.c (call_to_gnu): Always set the source location on the call
42 expression. If the function returns-by-target, also set it on the
43 address expression.
44
713c3145
ST
452007-11-14 Samuel Tardieu <sam@rfc1149.net>
46
356d8961 47 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
713c3145
ST
48 sections of non-supported Interix target.
49
50 * s-osinte-interix.ads: Removed.
51
1e992e16
ST
52 * i-cstrin.ads (chars_ptr): Make it a C convention type.
53
0e506c4b
ST
542007-11-13 Samuel Tardieu <sam@rfc1149.net>
55
56 * a-tasatt.adb: Add a comment at the beginning of the package
57 explaining why in general 'Unchecked_Access must be used instead
58 of 'Access.
59
66beb09b
ST
60 * sem_prag.adb (Process_Convention): Move the test for the
61 entity on which the Convention pragma applies down to also
62 forbid pragma Convention on enumeration literals reached
63 through renamings.
64
14678e46
ST
652007-11-10 Samuel Tardieu <sam@rfc1149.net>
66
67 * a-tasatt.adb: Revert previous change for this file as it will
68 generate an error when this package is instantiated from a
69 local context.
70
f9d806de
ST
712007-11-07 Samuel Tardieu <sam@rfc1149.net>
72
73 * a-tasatt.adb: Type Wrapper should be declared in comment instead
74 of already declared type Node_Access.
dcbd752d
ST
75 Use 'Access instead of 'Unchecked_Access when applicable. Local
76 lifetime is the one of the package.
77 (Set_Value): W is allocated on the heap.
78
79 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
80 applicable.
81 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
82 access type.
83 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
84 access type.
85
86 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
87 applicable.
88 (elaboration code): Timer_Queue lifetime is the one of the
89 package.
f9d806de 90
bc01690e
ST
91 * tracebak.c (i386 alternative): Remove useless comparaison
92 which is always false; LOWEST_ADDRESS is 0 and is never greater
93 than an unsigned integer.
94
d9c1dc68
ST
95 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
96 embedded check for "Ada_Version >= Ada_05".
97
cb88a3ea
OH
982007-11-07 Olivier Hainque <hainque@adacore.com>
99
100 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
101 craft and expand comment.
102
233a722b
EB
1032007-11-01 Eric Botcazou <ebotcazou@adacore.com>
104
105 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
106
6d1e8bff
EB
1072007-10-23 Eric Botcazou <ebotcazou@adacore.com>
108
109 * misc.c (gnat_handle_option): Replace call to abort with
110 call to gcc_unreachable.
111 (gnat_init): Likewise.
112 (gnat_expand_expr): Likewise.
113 (fp_prec_to_size): Likewise.
114 (fp_size_to_prec): Likewise.
115
262e7125
RG
1162007-10-23 Richard Guenther <rguenther@suse.de>
117
118 PR bootstrap/33608
119 * tracebak.c: #undef abort after including system.h.
120
c8f499a9
DS
1212007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
122
123 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
124 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
125 for win32 targets.
126 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
127
f0e1e807
AC
1282007-10-15 Eric Botcazou <ebotcazou@adacore.com>
129
130 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
131 Set the protection status of the guard page based on the value of On.
132
133 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
134
135 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
136 (Exit_Task): Pass False to Hide_Yellow_Zone.
137
1382007-10-15 Robert Dewar <dewar@adacore.com>
139
140 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
141 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
142 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
143 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
144 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
145 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
146 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
147 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
148 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
149 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
150 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
151 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
152 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
153 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
154 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
155 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
156 Minor reformatting.
157 Add Unreferenced and Warnings (Off) pragmas for cases of
158 variables modified calls where they are IN OUT or OUT parameters and
159 the resulting values are not subsequently referenced. In a few cases,
160 we also remove redundant code found by the new warnings.
161
162 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
163 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
164 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
165 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
166 warning controlled by -gnatw.o that warns on cases of out parameter
167 values being ignored.
168
1692007-10-15 Geert Bosch <bosch@adacore.com>
170
171 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
172
173 * expect.c: Initial port to arm-mentor-nucleus.
174 Use kill for __gnat_kill() on VMS.
175
1762007-10-15 Emmanuel Briot <briot@adacore.com>
177
178 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
179 value.
180 (Xref_Record): Change type for Line, since in the case of a reference to
181 a predefined entity (as happens for array index types), the line is set
182 to 0.
183 Add support for parsing multiple array index types info, or
184 multiple inherited interfaces info. This information cannot be stored
185 in Xref_Entity_Record, which only supports a single instance of Tref_*,
186 and is therefore stored in the list of references instead. It has a
187 special treatement later on in tools that use this information.
188
1892007-10-15 Tristan Gingold <gingold@adacore.com>
190
191 * debug.adb: Document use of -gnatd.a and -gnatd.I
192
193 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
194
1952007-10-15 Javier Miranda <miranda@adacore.com>
196
197 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
198 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
199 care of access to class-wide interface types plus removal of bizarre
200 conversion of tagged object to access type (reported by Gary
201 Dismukes). After this patch there is no need to perform any
202 additional management on these nodes in Expand_Interface_Actuals.
203
204 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
205 that handles use of 'Access and 'Unchecked_Access applied to
206 actuals covering interface types. Such code is now
207 centralized in Expand_N_Attribute_Reference.
208
2092007-10-15 Ed Schonberg <schonberg@adacore.com>
210
211 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
212 of tagged types whose ultimate ancestor is a CPP type.
213 (Freeze_Array_Type): For a packed array type, generate an initialization
214 procedure if the type is public, to handle properly a client that
215 specifies Normalize_Scalars.
216
2172007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
218
219 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
220 inside a generic body, retrieve the full view of the entry family
221 discrete subtype if available.
222
2232007-10-15 Thomas Quinot <quinot@adacore.com>
224
225 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
226 attempt to generate stubs for hidden primitive operations.
227
2282007-10-15 Vincent Celier <celier@adacore.com>
229
230 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
231 returning None, used when there is no platform specific body for
232 MLib.Tgt.Specific.
233
2342007-10-15 Bob Duff <duff@adacore.com>
235
236 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
237 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
238 the generic Heap_Sort_G, in order to avoid trampolines.
239
2402007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
241 Jose Ruiz <ruiz@adacore.com>
242
243 * vx_stack_info.c: New file.
244
245 * i-forbla-unimplemented.ads: New file.
246
247 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
248 for unsupported configurations; use it on VMS targets instead of the
249 real one.
250 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
251 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
252 used by VxWorks targets to have access to task-specific data and be
253 able to extract the stack boundaries for stack checking.
254 Use system-vms-ia64.ads on ivms.
255
256 * Make-lang.in: Update dependencies.
257
258 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
259 (vx_stack_info.c).
260
2612007-10-15 Vincent Celier <celier@adacore.com>
262
263 * snames.adb, snames.ads: Add new standard name runtime_library_dir
264
265 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
266
267 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
268
269 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
270 the source is unknown.
271
272 * prj-ext.adb: Spelling error fix
273
274 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
275 95 reserved word in its name.
276 (Process_Project_Level_Array_Attributes): Process new attribute
277 Runtime_Library_Dir.
278
279 * prj-part.adb (Parse_Single_Project): Do not check the name of the
280 config project against the user project names.
281
282 * prj-proc.adb (Expression): In multi-language mode, indexes that do
283 not include a dot are always case insensitive.
284 (Process_Declarative_Items): Ditto
285 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
286 detected.
287
288 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
289 True, compare both indexes in lower case.
290
2912007-10-15 Robert Dewar <dewar@adacore.com>
292
293 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
294
2952007-10-15 Gary Dismukes <dismukes@adacore.com>
296
297 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
298 association for an access component, add an association with null as
299 the expression. Remove testing for array subtypes and the setting in
300 that case of Ctyp to the array component type, which prevented proper
301 inclusion of an association for null-initialized arrays. Collapse
302 condition that tests for array subtypes into just a test of
303 Is_Partially_Initialized_Type (which already covers arrays anyway).
304
3052007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
306
307 * sem_ch12.adb: Minor code reformatting.
308 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
309 find the parent package which may have been hidden by local
310 declarations.
311
3122007-10-15 Gary Dismukes <dismukes@adacore.com>
313
314 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
315 flag of derived concurrent types, taking into account the flag setting
316 on the parent subtype and any new set of discriminants.
317
3182007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
319
320 * sem_ch4.adb: Minor code and comment reformatting.
321 (Analyze_Allocator): When the designated type of an unconstrained
322 allocator is a record with unknown discriminants or an array with
323 unknown range bounds, emit a detailed error message depending on the
324 compilation mode and whether the designated type is limited.
325
3262007-10-15 Tristan Gingold <gingold@adacore.com>
327
328 * system-vms-ia64.ads: New file.
329
330 * system-vms_64.ads: Minor comment fix.
331
3322007-10-15 Ed Schonberg <schonberg@adacore.com>
333
334 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
335 body generated for a function with a controlling result that is a null
336 extension, discard the generated body in favor of the current explicit
337 one.
338
3392007-10-15 Ed Schonberg <schonberg@adacore.com>
340
341 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
342 examining its original form, to handle properly operator calls that
343 have been rewritten.
344
3452007-10-15 Olivier Hainque <hainque@adacore.com>
346
347 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
348 instead of a procedure value in each traceback entry.
349
350 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
351 instead of procedure value to TBK$SYMBOLIZE.
352
353 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
354 field.
355 (TB_Entry_For): Account for the PV/FP renaming.
356
357 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
358 add comment.
359 (Null_TB_Entry): Account for change of component name.
360 (PV_For): Rename as FP_For.
361
3622007-10-15 Tristan Gingold <gingold@adacore.com>
363
364 * trans.c (gnat_to_gnu): Remove the padding structure more often.
365 This optimize assignment to over-aligned record.
366
3672007-10-15 Emmanuel Briot <briot@adacore.com>
368
369 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
370 interfaces.
371
372 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
373 type, for dispatching calls.
374
3752007-10-15 Vincent Celier <celier@adacore.com>
376 Robert Dewar <dewar@adacore.com>
377
378 * gnat_ugn.texi: Add documentation for switches --version and --help
379 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
380 gnatxref, gnatfind, gnatls, and gnatclean.
381 Document -gnatw.o.
382 Mention attribute Excluded_Source_Dirs
383 Replace obsolescent attribute Locally_Removed_Files with attribute
384 Excluded_Source_Files.
385 Improve documentation of -u (gnatbind)
386 Document how to do reliable stack checking for the environmental task
387 on iVMS.
388
389 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
390 Document attribute Excluded_Source_Files and indicate that attribute
391 Locally_Removed_Files is obsolescent.
392
3932007-10-15 Thomas Quinot <quinot@adacore.com>
394
395 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
396
397 * gen-soccon.c:
398 Update documentation to note that OpenVMS 8.3 or later must be used
399 to generate g-soccon-vms.ads.
400
401 * atree.adb: Add ??? comment
402
403 * exp_util.adb: Minor reformatting.
404 Add ??? comment in Kill_Dead_Code.
405
4062007-10-15 Robert Dewar <dewar@adacore.com>
407
408 * errout.ads: Comment clarification
409
410 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
411 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
412
413 * lib.ads: Comment update
414
415 * init.c: Minor reformatting.
416
417 * sem_attr.adb: Minor formatting
418
419 * osint-b.ads: Minor reformatting
420
421 * sem_ch9.adb: Implement -gnatd.I switch
422
423 * g-comlin.adb: (Start): Fix handling of empty command line.
424
425 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
426 even when -rules follows the -cargs section.
427
6524147c
OW
4282007-10-08 Ollie Wild <aaw@google.com>
429
430 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
431 gnat_return_tree.
432 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
433 gnat_return_tree.
434 (gnat_eh_runtime_type): Removed.
435 (gnat_return_tree): New function.
436
dff6abb2
BE
4372007-10-08 Ben Elliston <bje@au.ibm.com>
438
439 PR ada/33454
440 Revert:
441 2007-08-31 Ben Elliston <bje@au.ibm.com>
442
443 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
444 when compiling for powerpc64-*-linux.
445 * system-linux-ppc64.ads: New file.
446
c3048783
EB
4472007-09-27 Eric Botcazou <ebotcazou@adacore.com>
448
449 Mapped location support
450 * back_end.adb (Call_Back_End): Pass information about source
451 files instead of units to gigi.
452 * gigi.h (struct File_Info_Type): New.
453 (gigi): Rename and change type of number_units parameter, change
454 type of file_info_ptr parameter.
455 * trans.c (number_files): New global variable.
456 (gigi): Rename and change type of number_units parameter, change
457 type of file_info_ptr parameter.
458 If mapped location support is enabled, create the isomorphic mapping
459 between source files and line maps.
460 (Sloc_to_locus): If mapped location support is enabled, translate
461 source location into mapped location.
462 (annotate_with_node): Rename into set_expr_location_from_node.
463 Call set_expr_location instead of annotate_with_locus.
464 (Pragma_to_gnu): Adjust for above change.
465 (Loop_Statement_to_gnu): Likewise.
466 (call_to_gnu): Likewise.
467 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
468 (gnat_to_gnu): Likewise.
469 (add_stmt_with_node): Likewise.
470 (add_cleanup): Likewise.
471 * utils.c (gnat_init_decl_processing): Do not set input_line.
472
68b72a44
AC
4732007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
474
475 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
476 (Applicable_Use): Emit a warning when a package tries to use itself.
477 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
478 is already in use or the package where it is declared is in use or is
479 declared in the current package.
480 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
481
482 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
483 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
484 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
485
4862007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
487
488 * a-calend-vms.adb, a-calend.adb:
489 Add a section on leap seconds control along with two entities used to
490 enable and disable leap seconds support. The array Leap_Second_Times is
491 now constant and contains hard time values pre-generated. Remove
492 all elaboration code used to populate the table of leap seconds.
493
494 * bindgen.adb:
495 Add entity Leap_Seconds_Support to the list of global run-time variables
496 along with a comment on its usage and values.
497 (Gen_Adainit_Ada): Add code to generate the declaration and import of
498 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
499 or one (enabled) depending on the presence of binder switch "-y".
500 (Gen_Adainit_C): Add code to generate the declaration of external int
501 __gl_leap_seconds_support. Set is value to zero (disabled) or one
502 (enabled) depending on the presence of binder switch "-y".
503
504 * init.c: Add __gl_leap_seconds_support to the list of global values
505 computed by the binder.
506
5072007-09-26 Jerome Guitton <guitton@adacore.com>
508
509 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
510 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
511 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
512 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
513
514 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
515
516 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
517 function which can be called by the debugger to interrupt the tasks of
518 an Ada application asynchronously, as needed on VxWorks.
519 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
520
521 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
522 renamed from Stop_All_Tasks. Update comments.
523 (Stop_All_tasks): New function declaration.
524
5252007-09-26 Olivier Hainque <hainque@adacore.com>
526
527 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
528 #include <utime.h> and #define GCC_RESOURCE_H before
529 #include <sys/wait.h>.
530 Add more protections in __gnat_translate_vms.
531
532 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
533 #include <sys/wait.h>.
534
5352007-09-26 Thomas Quinot <quinot@adacore.com>
536 Sergey Rybin <rybin@adacore.com>
537
538 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
539
540 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
541 where it belongs.
542
543 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
544
545 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
546 where it belongs.
547
548 * sem_dist.ads: Minor comment fix
549
550 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
551
5522007-09-26 Javier Miranda <miranda@adacore.com>
553 Eric Botcazou <ebotcazou@adacore.com>
554
555 * a-tags.adb:
556 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
557 indirection added to the HT_Link component of the TSD. This is required
558 to statically allocate the TSD.
559
560 * a-tags.ads:
561 Minor reordering of the declarations in the private part. Required to
562 add a level of indirection to the contents of the TSD component HT_Link.
563 This is required to statically allocate the TSD.
564
565 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
566 Is_Statically_Allocated set from constant objects.
567 Do not make exported constants created by the compiler volatile.
568 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
569 as read-only.
570
571 * trans.c (Identifier_to_gnu): For constants, unshare initializers
572 before returning them.
573
574 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
575 public part of the package.
576 (Make_DT): Move HT_Link component out of the TSD record. For this
577 purpose Make_DT now declares a separate object that stores the
578 HT_Link value, and initializes the TSD component with the address
579 of this new object. The addition of this level of indirection is
580 required to statically allocate the TSD because the TSD cannot
581 have variable components.
582 (Expand_Interface_Conversion): Improve the expanded code.
583 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
584
585 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
586 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
587 if we are building static dispatch tables then we must not generate
588 extra code to register the primitive because the dispatch table will
589 be built at the end of the library package; otherwise we notify that
590 we cannot build the static dispatch table.
591
5922007-09-26 Robert Dewar <dewar@adacore.com>
593
594 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
595 overlays.
596
597 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
598 (Analyze_Record_Representation_Clause): Suppress junk warning for
599 missing component clause.
600 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
601 tests for controlled type overlay to composites with controlled
602 components.
603 (Analyze_Record_Representation_Clause): Add reference for component name
604
6052007-09-26 Javier Miranda <miranda@adacore.com>
606 Gary Dismukes <dismukes@adacore.com>
607
608 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
609 for thunks associated with interface types.
610
611 * einfo.ads: Improve documentatation of Is_Internal
612 (Is_Thunk): New attribute applicable to subprograms. True for thunks
613 associated with interface types.
614 Extensive comment fixes regarding flags that appear in all entities. The
615 documentation is now consistent for all such flags (there were a number
616 of errors in the documentation in this regard).
617
618 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
619
620 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
621 of these procedures are passed a function call that already has
622 build-in-place actuals (testing new flag
623 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
624 the case where processing continues.
625 (Expand_Call): If the call is generated from a thunk body then we
626 propagate the extra actuals associated with the accessibility
627 level of the access type actuals.
628
629 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
630 of each extra formal of a protected operation to reference the
631 corresponding extra formal of the subprogram denoted by the
632 operation's Protected_Body_Subprogram.
633
634 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
635 N_Function_Call nodes.
636
6372007-09-26 Robert Dewar <dewar@adacore.com>
638
639 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
640
641 * debug.adb: Add d.s flag.
642
6432007-09-26 Gary Dismukes <dismukes@adacore.com>
644
645 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
646 debug variable so that it won't be initialized when pragma
647 Initialize_Scalars is in effect.
648
6492007-09-26 Gary Dismukes <dismukes@adacore.com>
650
651 * freeze.adb (Freeze_Entity): Remove check for preelaborable
652 initialization of a full view. This is moved to
653 Analyze_Package_Specification.
654
655 * sem_ch7.adb (Analyze_Package_Specification): Add check for
656 preelaborable initialization of a full view in entity loop.
657 (Uninstall_Declarations): If entity is a use-visible compilation unit,
658 its child units are use-visible only if they are visible child units.
659
660 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
661 whether an expression can be used within a type declaration that
662 requires preelaborable init.
663 (Check_Components): Replace inline code that does partial checking for
664 preelaborable default expressions with call to
665 Is_Preelaborable_Expression.
666 (Has_Preelaborable_Initialization): In the case of a generic actual
667 subtype, (that is, Is_Generic_Actual is True), return the result of
668 applying Has_Preelaborable_Initialization to the generic actual's base
669 type.
670
6712007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
672
673 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
674 call to Jan_1_Day _Of_Week to optimize its performance.
675 (Is_Leap): Move the routine to the scope of Week_In_Year.
676 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
677 weekday on which January 1 falls of Year - 1 and Year + 1. This function
678 avoids calling Time_Of and Split, thus making it more efficent.
679 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
680
681 * g-calend.ads (Week_In_Year): Change comment to reflect new
682 implementation.
683
6842007-09-26 Emmanuel Briot <briot@adacore.com>
685
686 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
687 Command_Line): New types
688 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
689 support for defining how switches can be grouped on a command line (as
690 is the case for -gnatw... for GNAT), and how simple switches can be
691 used as aliases for more complex switches (-gnatwa is same as
692 -gnatwbcef...)
693 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
694 (Start, Current_*): New subprograms
695 Added support for parsing an array of strings in addition to the real
696 command line.
697 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
698 be moved from the body to the private part of the spec.
699 (*): All subprograms now have an extra parameter with default value to
700 specify which parser should be used. For backward compatibility, it
701 defaults to parsing the command line of the application. They were also
702 modified to properly handle cases where each of the argument does not
703 start at index 1 (which is always true for Ada.Command_Line, but not
704 when processing any Argument_List).
705 (Free): New subprogram
706 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
707 Argument): New subprograms
708 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
709 special characters like ':', '=',... are now handled in a single place,
710 which makes the code more extensible eventually.
711 (Getopt, Full_Switch): When the switch was returned as part of the
712 special character '*', make sure it is prepended by the switch character
713 ('-' in general), so that the application knows whether "foo" or "-foo"
714 was specified on the command line.
715
7162007-09-26 Florian Villoing <villoing@adacore.com>
717
718 * g-dirope.adb (Remove_Dir): In case we are removing directories
719 recursively, make sure that if an exception is raised during the
720 processing, the current working directory is reset to its initial
721 value before propagating the exception.
722
7232007-09-26 Vincent Celier <celier@adacore.com>
724
725 * gnatbind.adb: If there are several ALI files specified and there is
726 a main program to bind, the first ALI is expected to contain the main
727 subprogram and the names of the binder generated files will be derived
728 from the first ALI file name.
729 (Gnatbind): Fix insertion character in invocation of Error_Msg
730
7312007-09-26 Vincent Celier <celier@adacore.com>
732
733 * gnatcmd.adb (Check_Files): Do not include sources that have been
734 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
735
7362007-09-26 Ed Schonberg <schonberg@adacore.com>
737
738 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
739 information about each of its index types, following the type
740 reference for its component type.
741
7422007-09-26 Vincent Celier <celier@adacore.com>
743
744 * make.adb: (Kill): New procedure (__gnat_kill imported)
745 (Running_Compile, Outstanding_Compiles): Global variables that
746 were previously local to procedure Compile_Sources.
747 (Sigint_Intercepted): Send signal SIGINT to all outstanding
748 compilation processes.
749
750 (Gnatmake): If project files are used, create the mapping of all the
751 sources, so that the correct paths will be found.
752
753 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
754
7552007-09-26 Vincent Celier <celier@adacore.com>
756
757 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
758
759 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
760 Replace components Compiler_Min_Options and Binder_Min_Options with
761 Compiler_Required_Switches and Binder_Required_Switches in record
762 Language_Config.
763 Remove components Default_Language and Config in Project_Tree_Data,
764 no longer used.
765
766 * prj-attr.adb: New attributes Required_Switches (<language>) in
767 packages Compiler and Binder.
768
769 * prj-nmsc.adb: Major rewrite of the processing of configuration
770 attributes for gprbuild. No impact on GNAT tools.
771
772 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
773 process configuration attributes: this is done in Prj.Nmsc.Check.
774 (Recursive_Process): Make a full copy of packages inherited from project
775 being extended, instead of a shallow copy.
776 (Process_Project_Tree_Phase_1): New procedure
777 (Process_Project_Tree_Phase_1): New procedure
778 (Process): Implementation now uses the two new procedures
779
780 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
781 from the project config, not the tree config that no longer exists.
782
7832007-09-26 Vincent Celier <celier@adacore.com>
784
785 * Make-lang.in: Update dependencies..
786
7872007-09-26 Vincent Celier <celier@adacore.com>
788
789 * osint.adb, osint.ads: Minor reformatting
790
791 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
792
7932007-09-26 Gary Dismukes <dismukes@adacore.com>
794
795 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
796 message to cite use of <> in aggregate component associations rather
797 than wrongly indicating use of limited aggregates.
798
7992007-09-26 Robert Dewar <dewar@adacore.com>
800
801 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
802 Address_Taken.
803
8042007-09-26 Ed Schonberg <schonberg@adacore.com>
805
806 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
807 ancestor of the derived type, the operations are inherited from the
808 primary dispatch table of the parent.
809 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
810 when the context is an explicit type conversion.
811
8122007-09-26 Ed Schonberg <schonberg@adacore.com>
813
814 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
815 rule for qualified expressions properly, to detect improper conversions
816 and resolve some cases of overloading.
817
8182007-09-26 Ed Schonberg <schonberg@adacore.com>
819
820 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
821 proper kind of reference to the primitive operation, for better source
822 navigation.
823 (Valid_Conversion): A tagged conversion is legal if both operands are
824 tagged.
825
8262007-09-26 Robert Dewar <dewar@adacore.com>
827
828 * sem_warn.adb (Check_References): Catch more cases of unreferenced
829 packages.
830
8312007-09-26 Vincent Celier <celier@adacore.com>
832
833 * snames.adb, snames.ads: Change Include_Option to Include_Switches
834
8352007-09-26 Robert Dewar <dewar@adacore.com>
836
837 * s-wchstw.adb: provide messages for run time unit exceptions
838
839 * a-witeio.adb: Minor reformatting
840
841 * exp_ch13.adb: Minor reformatting
842
8432007-09-26 Sergey Rybin <rybin@adacore.com>
844
845 * vms_data.ads: Revise gnatmetric qualifiers.
846 Add qualified for the new gnatbind option '-y'
847
848 * gnat_ugn.texi: Revise the gnatmetric section.
849 Add entry for new gnatbind option '-y'.
850
851 * gnat_rm.texi: Minor spelling correction.
852 Document restriction on overlaying controlled types
853
8542007-09-26 Vincent Celier <celier@adacore.com>
855
856 * makegpr.adb (Link_Executables): Do not fail when the root project has
857 no sources, but is an extending project.
858
0a86bcc9
EB
8592007-09-25 Eric Botcazou <ebotcazou@adacore.com>
860
861 * trans.c: Fix misplaced #define.
862
b235734c
EB
8632007-09-22 Eric Botcazou <ebotcazou@adacore.com>
864
865 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
866 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
867
97237784
OH
8682007-09-21 Olivier Hainque <hainque@adacore.com>
869
870 * utils.c (type_for_nonaliased_component_p): Return false for
871 all AGGREGATE_TYPEs.
872
2adde4ff
EB
8732007-09-17 Eric Botcazou <ebotcazou@adacore.com>
874
875 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
876 object covered by 13.3(19) volatile.
877
b693daa7
EB
8782007-09-12 Eric Botcazou <ebotcazou@adacore.com>
879
880 PR ada/26797
881 PR ada/32407
882 * utils.c (unchecked_convert): Use a subtype as the intermediate type
883 in the special VIEW_CONVERT_EXPR case.
884
82da9a90
AC
8852007-09-12 Robert Dewar <dewar@adacore.com>
886
887 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
888
889 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
890 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
891 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
892 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
893 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
894 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
895 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
160c5065 896 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
82da9a90
AC
897 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
898 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
899 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
900 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
901 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
902 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
903 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
904 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
905 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
906 pragma Compiler_Unit and adds it to relevant library units.
907
9082007-09-12 Ed Schonberg <schonberg@adacore.com>
909
910 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
911 a box need not correspond to any component.
912
9132007-09-12 Robert Dewar <dewar@adacore.com>
914
915 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
916 the tasking version of the Ada run time when foreign threads are
917 present and there are no explicit Ada tasks or tasking constructs.
918
919 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
920
9212007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
922
923 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
924 the usage of switch -y.
925
926 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
927 when switch -y is present.
928
929 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
930 leap seconds in Ada.Calendar and its children.
931
9322007-09-12 Jose Ruiz <ruiz@adacore.com>
933
934 * a-extiti.ads (Timer): The discriminant is a "not null access
935 constant" in the Reference Manual.
936 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
937
9382007-09-12 Robert Dewar <dewar@adacore.com>
939
940 * a-swuwha.adb: Remove junk RM header
941
9422007-09-12 Vincent Celier <celier@adacore.com>
943
944 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
945 indicator
946
947 * g-bytswa.ads: Minor reformatting
948
9492007-09-12 Thomas Quinot <quinot@adacore.com>
950
951 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
952 Add new constant Thread_Blocking_IO, always True by default, set False
953 on a per-runtime basis.
954 (Need_Netdb_Buffer): New constant.
955
9562007-09-12 Arnaud Charlet <charlet@adacore.com>
957
958 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
959 Added renames for corresponding functions in System.Partition_Interface.
960
9612007-09-12 Doug Rupp <rupp@adacore.com>
962
963 * Makefile.in: Remove VMS specific System.CRTL packages which are no
964 longer needed.
965
966 * s-crtl-vms64.ads: Removed.
967
09528ed9
OH
9682007-09-12 Olivier Hainque <hainque@adacore.com>
969
970 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
971 with discriminant constraints, generalize the code for BIT_FIELDs
972 to PACKED fields of constant size and propagate DECL_PACKED.
973
fa89b6ec
EB
9742007-09-11 Eric Botcazou <ebotcazou@adacore.com>
975
976 * decl.c (array_type_has_nonaliased_component): New predicate.
977 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
978 set the TYPE_NONALIASED_COMPONENT flag on the type.
979 <E_Array_Subtype>: Likewise.
980 * gigi.h (type_for_nonaliased_component_p): Declare.
981 * utils.c (type_for_nonaliased_component_p): New predicate.
982 (create_field_decl): Invoke the above predicate to set the
983 DECL_NONADDRESSABLE_P flag on the field.
984
e18d6a15
JM
9852007-09-11 Javier Miranda <miranda@adacore.com>
986
987 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
988 in library level record type entities if we are generating statically
989 allocated dispatch tables.
990
991 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
992 importing/exporting the _tag declaration by new code
993 importing/exporting the dispatch table wrapper. This change allows us
994 to statically allocate of the TSD.
995 (Make_DT.Export_DT): New procedure.
996 (Build_Static_DT): New function.
997 (Has_DT): New function.
998
999 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
1000 True_Constant and Current_Value. Required to statically
1001 allocate the dispatch tables.
1002 (Check_Allocator): Make function iterative instead of recursive.
1003 Also return inner allocator node, when present, so that we do not have
1004 to look for that node again in the caller.
1005
e89d6010
JH
10062007-09-11 Jan Hubicka <jh@suse.cz>
1007
1008 * misc.c (gnat_expand_body): Kill.
1009 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1010
281b604e
AC
10112007-09-10 Robert Dewar <dewar@adacore.com>
1012
1013 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
1014 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
1015 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
1016 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
1017 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
1018 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
1019 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
1020 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
1021 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
1022 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
1023 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
1024 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
1025 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
1026 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
1027 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
1028 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
1029 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
1030 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
1031 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
1032 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
1033 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
1034 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
1035 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
1036 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
1037 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
1038 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
1039 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
1040 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
1041 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
1042 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
1043 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
1044 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
1045 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
1046 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
1047 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
1048 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
1049 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
1050 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
1051 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
1052 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
1053 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
1054 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
1055 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
1056 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
1057 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
1058 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
1059 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
1060 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
1061 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
1062 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
1063 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
1064 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
1065 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
1066 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
1067 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
1068 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
1069 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
1070 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
1071 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1072 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
1073 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
1074 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
1075 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
1076 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
1077 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
1078 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
1079 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
1080 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
1081 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
1082 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
1083 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
1084 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
1085 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
1086 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
1087 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
1088 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
1089 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
1090 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
1091 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
1092 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
1093 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
1094 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
1095 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
1096
10972007-09-10 Emmanuel Briot <briot@adacore.com>
1098
1099 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
1100 classes ("[]").
1101
11022007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
1103
1104 * adaint.c (__gnat_translate_vms): new function.
1105
11062007-09-10 Gary Dismukes <dismukes@adacore.com>
1107 Thomas Quinot <quinot@adacore.com>
1108
1109 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
1110 create an abstract subprogram in the case of 'Input. For 'Output we now
1111 create a real spec/body when the type is abstract, since it can
1112 potentially be called.
1113 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
1114 body for 'Output when the type is abstract (only the creation of the
1115 body for 'Input is excluded when the type is abstract).
1116 (Stream_Operation_OK): Add an additional condition in the return
1117 statement, so that False will be returned for TTS_Stream_Input if the
1118 associated tagged type is an abstract extension. Add comments for
1119 return statement.
1120 (Expand_N_Object_Declaration): For the case of a shared passive
1121 variable, insert init proc call only after the shared variable
1122 procedures have been processed, because the IP call needs to undergo
1123 shared passive variable reference expansion, which requires these
1124 procedures to be available (and elaborated).
1125
11262007-09-10 Vincent Celier <celier@adacore.com>
1127
1128 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
1129 parameter Runtime_Project.
1130
11312007-09-10 Ed Schonberg <schonberg@adacore.com>
1132
1133 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
1134 given a box association, the type of the component is discriminated,
1135 and the value of the discriminant is the discriminant of the enclosing
1136 type, retrieve its value from the aggregate itself, where it must have
1137 been supplied.
1138
1139 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
1140 to remove other spurious ambiguities on arithmetic operations involving
1141 literals and addresses, on systems where Address is a visible integer
1142 type, when the operator is called in functional notation.
1143 (Try_Primitive_Operation): Within an instance, a call in prefixed form
1144 is legal when the types match, even if the operation is currently
1145 hidden.
1146
11472007-09-10 Ed Schonberg <schonberg@adacore.com>
1148
1149 * sem_ch12.adb (Build_Local_Package): A formal package with no
1150 associations is legal if all formals have defaults. It is not
1151 equivalent to a formal declared with a box.
1152
11532007-09-10 Sergey Rybin <rybin@adacore.com>
1154
1155 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
1156
11572007-09-10 Sergey Rybin <rybin@adacore.com>
1158
1159 * gnat_ugn.texi: Add description of the new '-lratio' option
1160 Update 7.3.1 section about availability of the feature.
1161
11622007-09-10 Thomas Quinot <quinot@adacore.com>
1163
1164 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
1165 inserted node.
1166
11672007-09-10 Olivier Hainque <hainque@adacore.com>
1168
1169 * Makefile.in: (mips-irix section): Activate build of libgmem.
1170
a56955b1
EB
11712007-09-10 Eric Botcazou <ebotcazou@adacore.com>
1172
1173 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
1174 x87 registers.
1175
c03550f6
EB
11762007-09-10 Eric Botcazou <ebotcazou@adacore.com>
1177
1178 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
1179 a debug renaming declaration specially.
1180
79646678
EB
11812007-09-08 Eric Botcazou <ebotcazou@adacore.com>
1182
1183 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
1184 which a constant renaming is treated as a normal object declaration.
1185 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
1186 the N_Indexed_Component case.
1187 <N_Indexed_Component>: Fall through to above case.
1188 <N_Object_Renaming_Declaration>: Return true for all composite types.
1189
d9e161ce
EB
11902007-09-08 Eric Botcazou <ebotcazou@adacore.com>
1191
1192 * decl.c (make_packable_type): If the new type has been given BLKmode,
1193 try again to get an integral mode for it.
1194
0ab29e91 11952007-09-07 Eric Botcazou <ebotcazou@adacore.com>
6ef9a246 1196
0ab29e91 1197 Re-apply accidentally reverted change:
6ef9a246 1198
0ab29e91 1199 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
6ef9a246 1200
0ab29e91
EB
1201 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1202 get_action_description_for): Replace _Unwind_Word with _uleb128_t
1203 and _Unwind_SWord with _sleb128_t.
4b459ae4 1204
38f1f8cb
EB
12052007-09-06 Eric Botcazou <ebotcazou@adacore.com>
1206
1207 * trans.c (convert_with_check): Update call to real_2expN.
1208
db2960f4
SL
12092007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1210
1211 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
1212 * utils.c (end_subprog_body): Likewise.
1213
d70c0bd6
NC
12142007-09-03 Nick Clifton <nickc@redhat.com>
1215
1216 * Make-lang.in: Change copyright header to refer to version 3 of
1217 the GNU General Public License and to point readers at the
1218 COPYING3 file and the FSF's license web page.
1219 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
1220 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
1221 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
1222 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
1223 Likewise.
1224
8a26ebb6
AC
12252007-08-31 Vincent Celier <celier@adacore.com>
1226
1227 PR ada/4720
1228
1229 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
1230 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
1231 (Check_Version_And_Help): New procedure in package Switch to process
1232 switches --version and --help.
1233 Use Check_Version_And_Help in GNAT tools
1234
1235 * make.adb: Ditto.
1236 (Compile_Sources): Make sure that sources that are "excluded" are not
1237 compiled.
1238 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
1239 project file is used.
1240 (Version_Switch): Remove, moved to Switch
1241 (Help_Switch): Remove, moved to Switch
1242 (Display_Version): Remove, moved to Switch
1243
1244 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
1245 package Switch to process switches --version and --help.
1246 (Display_Version): New procedure
1247
1248 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
1249
12502007-08-31 Javier Miranda <miranda@adacore.com>
1251
1252 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
1253 internal tags.
1254
12552007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1256
1257 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
1258 (Mark_Non_Null): If the node for which we just generated an access check
1259 is a reference to an *in* parameter and the reference appears in the
1260 declarative part of a subprogram body, mark the node as known non null.
1261
12622007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1263
1264 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
1265 structure of E_Exception to reflect the new flag.
1266 (Is_Raised, Set_Is_Raised): New inlined routines.
1267 Update the usage of available flag to reflect the addition of Is_Raised.
1268 (Is_Raised, Set_Is_Raised): Bodies of new routines.
1269 (Write_Entity_Flags): Write the status of flag Is_Raised.
1270 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
1271 spurious ambiguities when integer literals appear in the context of an
1272 address type that is a visible integer type.
1273
1274 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
1275 exceptions never being raised.
1276 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
1277 explicitly raised.
1278
12792007-08-31 Javier Miranda <miranda@adacore.com>
1280
1281 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
1282 statement when compiling under restriction No_Exceptions_Proparation.
1283
12842007-08-31 Ed Schonberg <schonberg@adacore.com>
1285
1286 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
1287 initialization aggregate for the type, generate itype references for
1288 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
1289
12902007-08-31 Gary Dismukes <dismukes@adacore.com>
1291
1292 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
1293 library-level package renaming, pass the declaration associated with
1294 the renaming's special debug variable to Qualify_Entity_Names to ensure
1295 that its encoded name is properly qualified.
1296
1297 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
1298 occurring in the list of entities to qualify, and do not attempt to
1299 traverse an entity list in that case. Variables associated with
1300` library-level package renamings can now occur in the table.
1301
1302 * exp_dbug.ads: Revise documentation of the encoding for renaming
1303 declarations.
1304
13052007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1306
1307 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
1308 access type points to an unconstrained array.
1309
13102007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1311
1312 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
1313 conversion.
1314
1315 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
1316 simple redundant qualifications. The check is performed whenever the
1317 expression is a non-overloaded identifier.
1318 (Resolve_Type_Conversion): Enchance the redundant type conversion check
1319 to include loop parameters.
1320 (Valid_Conversion): Avoid generation of spurious error message.
1321
13222007-08-31 Bob Duff <duff@adacore.com>
1323
1324 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
1325 concatenations of string literals into a single literal, in order to
1326 avoid very deep recursion in the front end, which was causing stack
1327 overflow.
1328
1329 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
1330 string, and the right operand is a string literal (the case of "" &
1331 "..."), optimize by avoiding copying the right operand -- just use the
1332 value of the right operand directly.
1333
1334 * stringt.adb (Store_String_Chars): Optimize by growing the
1335 String_Chars table all at once, rather than appending characters one by
1336 one.
1337 (Write_String_Table_Entry): If the string to be printed is very long,
1338 just print the first few characters, followed by the length. Otherwise,
1339 doing "pn(n)" in the debugger can take an extremely long time.
1340
1341 * sem_prag.adb (Process_Interface_Name): Replace loop doing
1342 Store_String_Char with Store_String_Chars.
1343
13442007-08-31 Vincent Celier <celier@adacore.com>
1345
1346 * prj-attr.adb: Add new attribute Excluded_Source_Files
1347
1348 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
1349 Locally_Removed_Files.
1350
1351 * snames.ads, snames.adb: New standard name Excluded_Source_Files
1352
13532007-08-31 Ed Schonberg <schonberg@adacore.com>
1354
1355 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
1356 clauses of subunits, ignore limited_with_clauses that are illegal and
1357 have not been fully analyzed.
1358
13592007-08-31 Ed Schonberg <schonberg@adacore.com>
1360
1361 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
1362 flag, for effiency. It is called when analyzing arithmetic operators
1363 and also for actuals in calls that are universal_integers. The flag is
1364 set for the predefined type address, and for any type or subtype
1365 derived from it.
1366
1367 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
1368 Universal_Integer, when the formal is a descendent of address and the
1369 call appears in user code.
1370 (Analyze_Selected_Component): if the prefix is a private extension, the
1371 tag component is visible.
1372
1373 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
1374 entity flag.
1375
13762007-08-31 Robert Dewar <dewar@adacore.com>
1377
1378 * s-fileio.adb (Open): Normalize file name to lower case in non-case
1379 sensitive file name systems to avoid unexpected mismatch in Vista.
1380
13812007-08-31 Vincent Celier <celier@adacore.com>
1382
1383 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
1384
13852007-08-31 Vincent Celier <celier@adacore.com>
1386
1387 * symbols-vms.adb (Initialize): Read symbol files with continuation
1388 lines
1389 (Finalize): If symbol is long, split the line
1390
13912007-08-31 Vincent Celier <celier@adacore.com>
1392
1393 * fmap.ads: Minor comment updates
1394
13952007-08-31 GNAT Script <nobody@adacore.com>
1396
1397 * Make-lang.in: Makefile automatically updated
1398
13992007-08-31 Bob Duff <duff@adacore.com>
1400
1401 * sinfo.ads: Minor comment fix.
1402
14032007-08-31 Thomas Quinot <quinot@adacore.com>
1404
1405 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
1406 with implementation.
1407 Documentation cleanup only.
1408
14092007-08-31 Sergey Rybin <rybin@adacore.com>
1410
1411 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
1412 gnatpp '--separate-stmt-name' option.
1413 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
1414 option.
1415
1416 * gnat_ugn.texi: Add description for the new gnatpp
1417 '--separate-stmt-name' and '--use-on-new-line' options.
1418
22d2aa96
BE
14192007-08-31 Ben Elliston <bje@au.ibm.com>
1420
1421 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1422 when compiling for powerpc64-*-linux.
1423 * system-linux-ppc64.ads: New file.
1424
51743df8
KW
14252007-08-22 Krister Walfridsson <cato@df.lth.se>
1426
1427 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
1428 NetBSD.
1429
ac7d7749
KG
14302007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1431
1432 * misc.c (gnat_type_max_size): Constify.
1433
833eddff
AC
14342007-08-16 Gary Dismukes <dismukes@adacore.com>
1435
1436 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
1437 associated with Standard_Debug_Renaming_Type, to be used as the type of
1438 the special variables whose names provide debugger encodings for
1439 renaming declarations.
1440
1441 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
1442 (Set_Debug_Renaming_Link): Change to set Node25.
1443 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
1444 (Write_Field25_Name): Add case for E_Variable to output
1445 "Debug_Renaming_Link".
1446 (Write_Field23_Name): Correct the output string for "Limited_View".
1447
1448 * exp_dbug.adb: Add with and use of Tbuild.
1449 (Debug_Renaming_Declaration): Replace creation of an enumeration type
1450 and literal with creation of a variable of type
1451 Standard_Debug_Renaming_Type whose name encodes both the renamed object
1452 and the entity of the renaming declaration.
1453 (Qualify_Entity_Name): Add the delayed qualification of the entity name
1454 part of the name of a variable that has a Debug_Renaming_Link.
1455
1456 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
1457 special type to be associated with variables that provide debugger
1458 encodings for renaming declarations.
1459
14602007-08-16 Gary Dismukes <dismukes@adacore.com>
1461 Ed Schonberg <schonberg@adacore.com>
1462 Javier Miranda <miranda@adacore.com>
1463
1464 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
1465 ancestor part given by an aggregate to test for an unchecked conversion,
1466 since this can occur in some cases when the ancestor part is a function
1467 call, and we don't want to fall into the recursive call to this
1468 procedure in that case.
1469
1470 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
1471 stream attributes on limited types to account for user-specified
1472 attributes as well as whether Input (resp. Output) becomes available
1473 due to Read (resp. Write) being available for the type. Change Boolean
1474 variable to the more accurate name
1475 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
1476 double-"not" predicate at beginning of return statement to more
1477 understandable form.
1478
1479 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
1480 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
1481 in a block statement and use that as the first statement of the
1482 expanded return rather than incorrectly using the handled sequence as
1483 the first statement.
1484
1485 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
1486 operation, generate an explicit freeze node for it rather than
1487 generating extra formals, to ensure that gigi has the proper order of
1488 elaboration for anonymous subtypes in the signature of the subprograms.
1489 (Build_In_Place_Formal): Move assertion to beginning of loop.
1490 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
1491 applied to a function call (occurs for some cases of 'Input).
1492 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
1493 applied to a function call (occurs for some cases of 'Input).
1494
1495 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
1496 2005, generate an extended return statement enclosing the result object
1497 and 'Read call.
1498
1499 * freeze.adb (Freeze_Record_Type): Extend the current management of
1500 components that are access type with an allocator as default value: add
1501 missing support to the use of qualified expressions of the
1502 allocator (which also cause freezing of the designated type!)
1503 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
1504 dispatching operation, since extra formals may be needed by calls to
1505 build-in-place functions (such as stream 'Input).
1506
1507 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
1508 formals for 'Constrained and accessibility level in the case of a
1509 predefined dispatching operation.
1510
1511 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
1512 point, no need to find the parent node.
1513
15142007-08-16 Javier Miranda <miranda@adacore.com>
1515
1516 * exp_attr.adb (Attribute_Priority): Add missing support for entries
1517 and entry barriers.
1518
15192007-08-16 Javier Miranda <miranda@adacore.com>
1520
1521 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
1522 is not really required and can introduce regression with the debugger.
1523 The original problem is fixed with the patch written for checks.adb.
1524
15252007-08-16 Thomas Quinot <quinot@adacore.com>
1526
1527 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
1528 Range_Check on Allocated_Table.
1529
15302007-08-16 Vincent Celier <celier@adacore.com>
1531
1532 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
1533 Including_Non_Switch set to False.
1534 (Gnatmake): For the compiler, call Test_If_Relative_Path with
1535 Including_Non_Switch set to False.
1536
1537 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
1538 parameter Including_Non_Switch, defaulted to True. When
1539 Including_Non_Switch is False, options that are not switches and
1540 appear as relative path are not converted to absolute paths.
1541
15422007-08-16 Nicolas Roche <roche@adacore.com>
1543
1544 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
1545 makefiles
1546
1547 * Make-lang.in: Update dependencies
1548
15492007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
1550
1551 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
1552 currently inspected is a selected component, retrieve the entity of
1553 its selector.
1554 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
1555 from the immediate ancestor of Main_Unit_Entity.
1556 (Install_Limited_Withed_Unit): Do not install the limited view of
1557 package P if P is reachable through an ancestor chain from package C
1558 and C also has a with clause for P in its body.
1559 (Has_Limited_With_Clause): New routine.
1560 (Has_With_Clause): New routine.
1561
15622007-08-16 Ed Schonberg <schonberg@adacore.com>
1563
1564 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
1565 generic for an enclosing instance is a global reference, even though
1566 its scope is the enclosing instance.
1567
15682007-08-16 Gary Dismukes <dismukes@adacore.com>
1569 Javier Miranda <miranda@adacore.com>
1570
1571 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
1572 initialize a limited object.
1573 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
1574 13/2 and 14/2.
1575 Make sure Has_Complex_Representation is inherited by derived type.
1576
15772007-08-16 Robert Dewar <dewar@adacore.com>
1578
1579 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
1580 exception case
1581
15822007-08-16 Ed Schonberg <schonberg@adacore.com>
1583
1584 * sem_disp.adb (Check_Dispatching_Operation): If the operation
1585 implements an operation inherited from a progenitor interface, verify
1586 that they are subtype-conformant.
1587
15882007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
1589 Bob Duff <duff@adacore.com>
1590 Nicolas Setton <setton@adacore.com>
1591
1592 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
1593 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
1594 the statement which is being resolved comes from a predefined library
1595 unit, all non-predefined library interpretations are skipped.
1596 (Resolve_Op_Concat): If string concatenation was folded in the parser,
1597 but the "&" is user defined, give an error, because the folding would
1598 be wrong.
1599
1600 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
1601 the parser has folded a long sequence of concatenations of string
1602 literals.
1603
1604 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
1605 and "JMP_BUF" variables as artificial.
1606 (N_String_Literal): Do not use alloca for very long string literals. Use
1607 xmalloc/free instead. Otherwise the stack might overflow.
1608
1609 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
1610 compiler.
1611
16122007-08-16 Vincent Celier <celier@adacore.com>
1613
1614 * vms_conv.adb (Process_Argument): Ensure that project related options
1615 are not put in the -cargs section when using GNAT COMPILE.
1616
16172007-08-16 Robert Dewar <dewar@adacore.com>
1618
1619 * gnat_ugn.texi: Add note on preprocessing (output file not written)
1620
16212007-08-16 Thomas Quinot <quinot@adacore.com>
1622
1623 * a-tags.adb: Minor reformatting.
1624
16252007-08-16 Bob Duff <duff@adacore.com>
1626
1627 * sem_type.ads, sem_ch4.adb: Minor reformatting.
1628
ab6328d0
AC
16292007-08-14 Thomas Quinot <quinot@adacore.com>
1630
1631 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
1632 s-osinte-interix.ads, system-interix.ads: Removed.
1633
16342007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
1635
1636 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
1637 calls to Check_Within_Time_Bounds.
1638 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
1639 (Difference): Account for possible rounding of the resulting difference
1640
16412007-08-14 Robert Dewar <dewar@adacore.com>
1642
1643 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
1644 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
1645 s-osinte-solaris.adb, s-osinte-solaris.ads,
1646 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
1647
1648 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
1649 switch -gnatyS. Enable -gnatyS in GNAT style check mode
1650
16512007-08-14 Robert Dewar <dewar@adacore.com>
1652 Ed Schonberg <schonberg@adacore.com>
1653
1654 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
1655 Suppress unmodified in-out parameter warning in some cases
1656 This patch is a also fairly significant change to the way suppressible
1657 checks are handled.
1658
1659 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
1660 needed for access to concurrent record types generated by the expander.
1661 (Generate_Range_Check): When generating a temporary to capture the
1662 value of a conversion that requires a range check, set the type of the
1663 temporary before rewriting the node, so that the type is always
1664 properly placed for back-end use.
1665 (Apply_Float_Conversion_Check): Handle case where the conversion is
1666 truncating.
1667 (Get_Discriminal): Code reformatting. Climb the scope stack looking
1668 for a protected type in order to examine its discriminants.
1669
16702007-08-14 Robert Dewar <dewar@adacore.com>
1671 Gary Dismukes <dismukes@adacore.com>
1672 Ed Schonberg <schonberg@adacore.com>
1673 Thomas Quinot <quinot@adacore.com>
1674
1675 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
1676 a-stwisu.adb, a-strsup.adb: Fix warnings for range
1677 tests optimized out.
1678
1679 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
1680 (Get_Allocator_Final_List): For the case of an anonymous access type
1681 that has a specified Associated_Final_Chain, do not go up to the
1682 enclosing scope.
1683 (Expand_N_Type_Conversion): Test for the case of renamings of access
1684 parameters when deciding whether to apply a run-time accessibility
1685 check.
1686 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
1687 aggregate code before allocator, and ahead of declaration for
1688 temporary, to prevent access before elaboration when the allocator is
1689 an actual for an access parameter.
1690 (Expand_N_Type_Conversion): On an access type conversion involving an
1691 access parameter, do not apply an accessibility check when the
1692 operand's original node was an attribute other than 'Access. We now
1693 create access conversions for the expansion of 'Unchecked_Access and
1694 'Unrestricted_Access in certain cases and clearly accessibility should
1695 not be checked for those.
1696
1697 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
1698 includes a type conversion of a packed component that has been expanded,
1699 recover the original expression for the object, and use this expression
1700 in the post-call assignment statement, so that the assignment is made
1701 to the object and not to a back-end temporary.
1702 (Freeze_Subprogram): In case of primitives of tagged types not defined
1703 at the library level force generation of code to register the primitive
1704 in the dispatch table. In addition some code reorganization has been
1705 done to leave the implementation clear.
1706 (Expand_Call): When expanding an inherited implicit conversion,
1707 preserve the type of the inherited function after the intrinsic
1708 operation has been expanded.
1709
1710 * exp_ch2.ads, exp_ch2.adb
1711 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
1712 of an entry formal appearing in an assignment statement does not assign
1713 to the formal.
1714 (Expand_Current_Value): Instead of calling a routine to determine
1715 whether the prefix of an attribute reference should be optimized or
1716 not, prevent the optimization of such prefixes all together.
1717
1718 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
1719 component whose prefix is known to be of an access type is an implicit
1720 dereference and does not assign to the prefix.
1721
17222007-08-14 Ed Schonberg <schonberg@adacore.com>
1723 Robert Dewar <dewar@adacore.com>
1724
1725 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
1726 itype is visited, make an entry into table to link associated node and
1727 new itype.
1728 Add comments and correct harmless error in Build_NCT_Hash_Tables
1729 (Array_Aggr_Subtype): Associate each itype created for an index type to
1730 the corresponding range construct, and not to the aggregate itself. to
1731 maintain a one-to-one correspondence between itype and its associated
1732 node, to prevent errors when complex expression is copied.
1733 Fix mishandling of multiple levels of parens
1734
1735 * sem_aggr.adb: Create a limited view of an incomplete type, to make
1736 treatment of limited views uniform for all visible declarations in a
1737 limited_withed package.
1738 (New_Copy_Tree): If hash table is being used and itype is visited,
1739 make an entry into table to link associated node and new itype.
1740 (Resolve_Record_Aggregate): Do not add an others box association for a
1741 discriminated record component that has only discriminants, when there
1742 is a box association for the component itself.
1743
1744 * par-ch4.adb: Fix mishandling of multiple levels of parens
1745
17462007-08-14 Robert Dewar <dewar@adacore.com>
1747
1748 * comperr.adb: Fix problem with suppressing warning messages from gigi
1749
1750 * erroutc.ads, erroutc.adb, errout.ads,
1751 errout.adb (Write_Eol): Remove trailing spaces before writing the line
1752 (Write_Eol_Keep_Blanks): New procedure to write a line, including
1753 possible trailing spaces.
1754 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
1755 Fix problem with suppressing warning messages from back end
1756 Improve handling of deleted warnings
1757
1758 * gnat1drv.adb:
1759 Fix problem with suppressing warning messages from back end
1760 Handle setting of Static_Dispatch_Tables flag.
1761
1762 * prepcomp.adb:
1763 Fix problem with suppressing warning messages from back end
1764
1765 * exp_intr.adb: Improve handling of deleted warnings
1766
17672007-08-14 Robert Dewar <dewar@adacore.com>
1768
1769 * debug.adb: Improve -gnatdI to cover all cases of serialization
1770 Add documentation of dZ, d.t
1771
1772 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
1773 serialization.
1774 (Sprint_Node_Actual): Generate new output associated with implicit
1775 importation and implicit exportation of object declarations.
1776
17772007-08-14 Ed Schonberg <schonberg@adacore.com>
1778 Robert Dewar <dewar@adacore.com>
1779 Javier Miranda <miranda@adacore.com>
1780 Gary Dismukes <dismukes@adacore.com>
1781
1782 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
1783 to make treatment of limited views uniform for all visible declarations
1784 in a limited_withed package.
1785 Improve warnings for in out parameters
1786 (Set_Related_Interaface/Related_Interface): Allow the use of this
1787 attribute with constants.
1788 (Write_Field26_Name): Handle attribute Related_Interface in constants.
1789 Warn on duplicate pragma Preelaborable_Initialialization
1790
1791 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
1792 generation of a freezing node to ensure proper management of null
1793 excluding access types in the backend.
1794 (Create_Extra_Formals): Test base type of the formal when checking for
1795 the need to add an extra accessibility-level formal. Pass the entity E
1796 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
1797 originally being done in a couple of cases), to ensure that the
1798 Extra_Formals list gets set on the entity E when the first entity is
1799 added.
1800 (Conforming_Types): Add missing calls to Base_Type to the code that
1801 handles anonymous access types. This is required to handle the
1802 general case because Process_Formals builds internal subtype entities
1803 to handle null-excluding access types.
1804 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1805 functions that need it, even when not marked Requires_Overriding.
1806 Improve warnings for in out parameters
1807 (Analyze_Function_Return): Warn for disallowed null return
1808 Warn on return from procedure with unset out parameter
1809 Ensure consistent use of # in error messages
1810 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
1811 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
1812 the implicit conversion of the expression done for anonymous access
1813 types. This is required to generate the code of the null excluding
1814 check (if required).
1815
1816 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
1817 A formal parameter is never publicly referenceable outside of its body.
1818 (Check_References): For an unreferenced formal parameter in an accept
1819 statement, use the same warning circuitry as for subprogram formal
1820 parameters.
1821 (Warn_On_Unreferenced_Entity): New subprogram, taken from
1822 Output_Unreferenced_Messages, containing the part of that routine that
1823 is now reused for entry formals as described above.
1824 (Goto_Spec_Entity): New function
1825 (Check_References): Do not give IN OUT warning for dispatching operation
1826 Improve warnings for in out parameters
1827 (Test_Ref): Check that the entity is not undefinite before calling
1828 Scope_Within, in order to avoid infinite loops.
1829 Warn on return from procedure with unset out parameter
1830 Improved warnings for unused variables
1831
18322007-08-14 Robert Dewar <dewar@adacore.com>
1833 Javier Miranda <miranda@adacore.com>
1834 Gary Dismukes <dismukes@adacore.com>
1835
1836 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
1837 (Expand_N_Attribute_Reference): Further unify the handling of the
1838 three forms of access attributes, using common code now for all three
1839 cases. Add a test for the case of applying an access attribute to
1840 an explicit dereference when the context is an access-to-interface
1841 type. In that case we need to apply the conversion to the prefix
1842 of the explicit dereference rather than the prefix of the attribute.
1843 (Attribute_Version, UET_Address): Set entity as internal to ensure
1844 proper dg output of implicit importation.
1845 (Expand_Access_To_Type): Removed.
1846 (Expand_N_Attribute_Reference): Merge the code from the three cases
1847 of access attributes, since the processing is largely identical for
1848 these cases. The substantive fix here is to process the case of a
1849 type name prefix (current instance case) before handling the case
1850 of interface prefixes.
1851
18522007-08-14 Thomas Quinot <quinot@adacore.com>
1853 Ed Schonberg <schonberg@adacore.com>
1854 Javier Miranda <miranda@adacore.com>
1855 Robert Dewar <dewar@adacore.com>
1856
1857 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
1858 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
1859 type that is an anonymous access to controlled object, establish
1860 an associated finalization chain to avoid corrupting the global
1861 finalization list when a dynamically allocated object designated
1862 by such a component is deallocated.
1863 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1864 functions that need it, even when not marked Requires_Overriding.
1865 (Initialize_Tag): Replace call to has_discriminants by call to
1866 Is_Variable_Size_Record in the circuitry that handles the
1867 initialization of secondary tags.
1868 (Is_Variable_Size_Record): New implementation.
1869 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
1870 Suppress_Initialization pragma for a derived type.
1871 (Is_Variable_Size_Record): New subprogram.
1872 (Build_Offset_To_Top_Functions): New implementation that simplifies the
1873 initial version of this routine and also fixes problems causing
1874 incomplete initialization of the table of interfaces.
1875 (Build_Init_Procedure): Improve the generation of code to initialize the
1876 the tag components of secondary dispatch tables.
1877 (Init_Secondary_Tags): New implementation that simplifies the previous
1878 version of this routine.
1879 (Make_DT): Add parameter to indicate when type has been frozen by an
1880 object declaration, for diagnostic purposes.
1881 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
1882 diagnose attemps to freeze a subprogram when some untagged type of its
1883 profile is a private type whose full view has not been analyzed yet.
1884 (Freeze_Array_Type): Generate init proc for packed array if either
1885 Initialize or Normalize_Scalars is set.
1886 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
1887 constructing the new profile, copy the null_exclusion indicator for each
1888 parameter, to ensure full conformance of the new body with the spec.
1889
1890 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
1891 Create wrappers for constructor functions that need it, even when not
1892 marked Requires_Overriding.
1893 (Covers): Handle properly designated types of anonymous access types,
1894 whose non-limited views are themselves incomplete types.
1895 (Add_Entry): Use an entity to store the abstract operation which hides
1896 an interpretation.
1897 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
1898 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
1899 initialization aggregate.
1900 (Function_Interp_May_Be_Hidden): Rename to
1901 Function_Interp_Has_Abstract_Op.
1902 (Has_Compatible_Type): Remove machinery that skips interpretations if
1903 they are labeled as potentially hidden by an abstract operator.
1904 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
1905 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
1906 (Write_Overloads): Output the abstract operator if present.
1907 (Add_Entry): Before inserting a new entry into the interpretation table
1908 for a node, determine whether the entry will be disabled by an abstract
1909 operator.
1910 (Binary_Op_Interp_May_Be_Hidden): New routine.
1911 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
1912 aggregate.
1913 (Function_Interp_May_Be_Hidden): New routine.
1914 (Has_Compatible_Type): Do not consider interpretations hidden by
1915 abstract operators when trying to determine whether two types are
1916 compatible.
1917 (Has_Hidden_Interp): New routine.
1918 (Set_May_Be_Hidden_Interp): New routine.
1919 (Write_Overloads): Write the status of flag May_Be_Hidden.
1920
19212007-08-14 Ed Schonberg <schonberg@adacore.com>
1922 Javier Miranda <miranda@adacore.com>
1923
1924 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
1925 types declared in the declarative part of a nested package body or in
1926 the proper body of a stub.
1927 (Set_All_DT_Position): Add missing check to avoid wrong assignation
1928 of the same dispatch table slot to renamed primitives.
1929 (Make_Select_Specific_Data_Table): Handle private types.
1930 (Tagged_Kind): Handle private types.
1931 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
1932 output of implicit importation and exportation.
1933 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
1934 first formal of the thunk is always associated with the controlling
1935 type. In addition perform the following code cleanup: remove formal
1936 Thunk_Alias which is no longer required, cleanup evaluation of the
1937 the controlling type, and update the documentation.
1938 Replace occurrence of Default_Prim_Op_Count by
1939 Max_Predef_Prims. Addition of compile-time check to verify
1940 that the value of Max_Predef_Prims is correct.
1941 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
1942 (Make_DT): Add parameter to indicate when type has been frozen by an
1943 object declaration, for diagnostic purposes.
1944 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
1945 construction of statically allocated dispatch tables.
1946 (Make_DT): In case of library-level tagged types export the declaration
1947 of the primary tag. Remove generation of tags (now done by Make_Tags).
1948 Additional modifications to handle non-static generation of dispatch
1949 tables. Take care of building tables for asynchronous interface types
1950 (Make_Tags): New subprogram that generates the entities associated with
1951 the primary and secondary tags of Typ and fills the contents of Access_
1952 Disp_Table. In case of library-level tagged types imports the forward
1953 declaration of the primary tag that will be declared later by Make_DT.
1954 (Expand_Interface_Conversion): In case of access types to interfaces
1955 replace an itype declaration by an explicit type declaration to avoid
1956 problems associated with the scope of such itype in transient blocks.
1957
19582007-08-14 Robert Dewar <dewar@adacore.com>
1959 Ed Schonberg <schonberg@adacore.com>
1960 Javier Miranda <miranda@adacore.com>
1961
1962 * exp_util.ads, exp_util.adb:
1963 This patch replaces a number of occurrences of explicit tests for N_Null
1964 with calls to Known_Null. This improves tracking of null values, since
1965 Known_Null also catches null constants, and variables currently known to
1966 be null, so we get better tracking.
1967 (Ensure_Defined): create an itype reference only in the scope of the
1968 itype.
1969 (Side_Effect_Free): A selected component of an access type that
1970 denotes a component with a rep clause must be treated as not
1971 side-effect free, because if it is part of a linked structure its
1972 value may be affected by a renaming.
1973 (Expand_Subtype_From_Expr): For limited objects initialized with build
1974 in place function calls, do nothing; otherwise we prematurely introduce
1975 an N_Reference node in the expression initializing the object, which
1976 breaks the circuitry that detects and adds the additional arguments to
1977 the called function. Bug found working in the new patch for statically
1978 allocated dispatch tables.
1979 (Is_Library_Level_Tagged_Type): New subprogram.
1980 (Remove_Side_Effects): If the expression of an elementary type is an
1981 operator treat as a function call.
1982 (Make_Literal_Range): If the index type of the array is not integer, use
1983 attributes properly to compute the constraint on the resulting aggregate
1984 which is a string.
1985
1986 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
1987 class-wide type whose base type is an incomplete private type, leave
1988 class-wide type unfrozen so that freeze nodes can be generated
1989 properly at a later point.
1990 (Freeze_Entity, array case): Handle case of pragma Pack and component
1991 size attributre clause for same array.
1992
19932007-08-14 Vincent Celier <celier@adacore.com>
1994
1995 * prj.ads, prj.adb: Update Project Manager to new attribute names for
1996 gprbuild.
1997 Allow all valid declarations in configuration project files
1998 (Reset): Initialize all tables and hash tables in the project tree data
1999 Major update of the Project Manager and of the project aware tools,
2000 including gprmake, so that the same sources in the GNAT repository
2001 can be used by gprbuild.
2002 (Slash_Id): Change type to be Path_Name_Type
2003 (Slash): Return a Path_Name_Type instead of a File_Name_Type
2004
2005 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
2006 gprbuild.
2007 Update Project Manager to new attribute names for ghprbuild
2008 Allow all valid declarations in configuration project files
2009 Major update of the Project Manager and of the project aware tools,
2010 including gprmake, so that the same sources in the GNAT repository
2011 can be used by gprbuild.
2012
2013 * prj-com.ads:
2014 Major update of the Project Manager and of the project aware tools,
2015 including gprmake, so that the same sources in the GNAT repository
2016 can be used by gprbuild.
2017
2018 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2019 insensitive flag for attributes with optional index.
2020 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2021 array attribute, put the index in lower case.
2022 Update Project Manager to new attribute names for ghprbuild
2023 Allow all valid declarations in configuration project files
2024 Major update of the Project Manager and of the project aware tools,
2025 including gprmake, so that the same sources in the GNAT repository
2026 can be used by gprbuild.
2027
2028 * prj-env.ads, prj-env.adb:
2029 Major update of the Project Manager and of the project aware tools,
2030 including gprmake, so that the same sources in the GNAT repository
2031 can be used by gprbuild.
2032 (Get_Reference): Change type of parameter Path to Path_Name_Type
2033
2034 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
2035 removing '-' from the path to start with the first character of the
2036 next directory.
2037 Major update of the Project Manager and of the project aware tools,
2038 including gprmake, so that the same sources in the GNAT repository
2039 can be used by gprbuild.
2040 Major update of the Project Manager and of the project aware tools,
2041 including gprmake, so that the same sources in the GNAT repository
2042 can be used by gprbuild.
2043
2044 * prj-nmsc.ads, prj-nmsc.adb:
2045 Update Project Manager to new attribute names for ghprbuild
2046 Allow all valid declarations in configuration project files
2047 (Search_Directories): Detect subunits that are specified with an
2048 attribute Body in package Naming. Do not replace a source/unit in the
2049 same project when the order of the source dirs are known. Detect
2050 duplicate sources/units in the same project when the order of the
2051 source dirs are not known.
2052 (Check_Ada_Name): Allow all identifiers that are not reserved words
2053 in Ada 95.
2054 Major update of the Project Manager and of the project aware tools,
2055 including gprmake, so that the same sources in the GNAT repository
2056 can be used by gprbuild.
2057 (Look_For_Sources): If the list of sources is empty, set the object
2058 directory of non extending project to nil.
2059 Change type of path name variables to be Path_Name_Type
2060 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
2061 otherwise creating missing directories will fail.
2062
2063 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
2064 prj-part.ads, prj-part.adb:
2065 Major update of the Project Manager and of the project aware tools,
2066 including gprmake, so that the same sources in the GNAT repository
2067 can be used by gprbuild.
2068
2069 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2070 insensitive flag for attributes with optional index.
2071 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2072 array attribute, put the index in lower case.
2073 (Parse_Variable_Reference): Allow the current project name to be used in
2074 the prefix of an attribute reference.
2075
2076 * prj-util.ads, prj-util.adb
2077 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
2078 defaulted to False. When True, always check against indexes in lower
2079 case.
2080
2081 * snames.ads, snames.h, snames.adb:
2082 Update Project Manager to new attribute names for gprbuild
2083 Allow all valid declarations in configuration project files
2084
20852007-08-14 Robert Dewar <dewar@adacore.com>
2086 Ed Schonberg <schonberg@adacore.com>
2087
2088 * opt.ads: Warning for non-local exception propagation now off by
2089 default
2090 New switch -gnatI to disable representation clauses
2091 Implement new pragma Implicit_Packing
2092
2093 * usage.adb:
2094 Warning for non-local exception propagation now off by default
2095 Add warning for unchecked conversion of pointers wi different
2096 conventions.
2097 New switch -gnatI to disable representation clauses
2098
2099 * usage.adb: new switch -gnatyS
2100
2101 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
2102 note that aggregates of anonymous array types are not flagged.
2103 -gnatwc now includes membership tests optimized away
2104 -gnatw.x warnings are now off by default
2105 Added conditional compilation Appendix
2106 Add documentation of -gnatI
2107 Add documentation for new -gnatyS style check
2108 Update documentation about SAL and auto-init on Windows.
2109
2110 * gnat_rm.texi:
2111 Add documentation for pragma Check_Name and 'Enabled attribute
2112 Document that Eliminate on dispatching operation is ignored
2113 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
2114 Document pragma Main
2115 Document pragma Implicit_Packing
2116
2117 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
2118 different conventions
2119 New switch -gnatI to disable representation clauses
2120
2121 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
2122 recognized, report the invalid characters including "-gnat" instead of
2123 just the first character in the switch.
2124 New switch -gnatI to disable representation clauses
2125 Set Warn_On_Object_Renames_Function true for -gnatg
2126
2127 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
2128 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
2129 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
2130 to switch -aP (add directory to project search dir).
2131
2132 * par-prag.adb: Implement new pragma Implicit_Packing
2133
2134 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
2135 type as having a non-standard representation, to force expansion on
2136 conversion to related types.
2137 (Analyze_Pragma): Warn on misspelled pragma
2138 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
2139 Ensure consistent use of # in error messages
2140 Implement pragma Implicit_Packing
2141
21422007-08-14 Olivier Hainque <hainque@adacore.com>
2143 Eric Botcazou <ebotcazou@adacore.com>
2144
2145 * targtyps.c (get_target_maximum_default_alignment): New function.
2146 Maximum alignment
2147 that the compiler might choose by default for a type or object.
2148 (get_target_default_allocator_alignment): New function. Alignment known
2149 to be honored by the target default allocator.
2150 (get_target_maximum_allowed_alignment): New function. Maximum alignment
2151 we might accept for any type or object on the target.
2152 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
2153
2154 * gigi.h (get_target_maximum_default_alignment): Declare new function.
2155 (get_target_default_allocator_alignment): Likewise.
2156 (get_target_maximum_allowed_alignment): Likewise.
2157
2158 PR ada/19037
2159 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
2160 result of a function call, first try to use a stabilized reference for
2161 a constant renaming too.
2162 (validate_alignment): Use target_maximum_allowed_alignment instead of
2163 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
2164 (gnat_to_gnu_entity): Use common nodes directly.
2165 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
2166 alignment and size for the object.
2167 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
2168 and N_Procedure_Call_Statement.
2169 (takes_address): Rename to lvalue_required_p, add third parameter
2170 'aliased' and adjust recursive calls.
2171 <N_Indexed_Component>: Update 'aliased' from the array type.
2172 <N_Selected_Component>: New case.
2173 <N_Object_Renaming_Declaration>: New Likewise.
2174 (Identifier_to_gnu): Adjust for above changes.
2175 (maybe_stabilize_reference) <CONST_DECL>: New case.
2176
2177 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
2178 between type variants.
2179 (build_simple_component_ref): Likewise.
2180 (build_call_alloc_dealloc): Use target_default_allocator_alignment
2181 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
2182 aligning type circuitry for allocations from the default storage pool.
2183 (build_allocator): Likewise.
2184 (build_simple_component_ref): Manually fold the reference for a
2185 constructor if the record type contains a template.
2186
2187 * utils.c (value_zerop): Delete.
2188 (gnat_init_decl_processing): Emit debug info for common types.
2189 (rest_of_record_type_compilation): If a union contains a field
2190 with a non-constant qualifier, treat it as variable-sized.
2191 (finish_record_type): Give the stub TYPE_DECL a name.
2192 (rest_of_record_type_compilation): Likewise.
2193 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
2194 types are equivalent array types.
2195 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
2196 even if the type is not passed by reference.
2197 (static_ctors, static_dtors): Delete.
2198 (end_subprog_body): Do not record constructors and destructors.
2199 (build_global_cdtor): Delete.
2200 (gnat_write_global_declarations): Do not call build_global_cdtor.
2201
0ab29e91 2202 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
ab6328d0
AC
2203 -fRTS=rtp is specified.
2204 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
2205 specified.
2206
2207 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
2208 of the personality function with SJLJ exceptions.
2209
2210 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
2211 the name of the personality function with SJLJ exceptions.
2212
22132007-08-14 Robert Dewar <dewar@adacore.com>
2214 Ed Schonberg <schonberg@adacore.com>
2215
2216 * par.ads, par.adb: Improve handling of extra right parens.
2217 (Par): Remove flag From_Limited_With_Clause.
2218
2219 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
2220 Improve handling of extra right parens.
2221
22222007-08-14 Robert Dewar <dewar@adacore.com>
2223
2224 * par-tchk.adb (TF_Semicolon): Improve error recovery
2225
22262007-08-14 Robert Dewar <dewar@adacore.com>
2227 Ed Schonberg <schonberg@adacore.com>
2228
2229 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
2230 enumeration type, mark all literals as referenced.
2231 (Eval_Attribute, case 'Image): If the argument is an enumeration
2232 literal and names are available, constant-fold but mark nevertheless as
2233 non-static.
2234 Clean up function names.
2235 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
2236 comment.
2237 (Requires_Simple_Name_Prefix): Removed.
2238
22392007-08-14 Robert Dewar <dewar@adacore.com>
2240 Ed Schonberg <schonberg@adacore.com>
2241
2242 * sem_ch11.adb: Improved warnings for unused variables
2243
2244 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
2245 is a synchronized interface, the derived type is limited.
2246 (Analyze_Object_Declaration): Mark the potential coextensions in the
2247 definition and expression of an object declaration node.
2248 (Build_Derived_Type): For the completion of a private type declaration
2249 with a derived type declaration, chain the parent type's representation
2250 items to the last representation item of the derived type (not the
2251 first one) if they are not present already.
2252 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
2253 object declaration of forward references to tags.
2254 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
2255 subprogram types can appear as access discriminants of synchronized
2256 types.
2257 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
2258 given in prefixed form as a selected component.
2259 (Process_Discriminants): If not all discriminants have defaults, place
2260 error message on a default that is present.
2261 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
2262 extend a synchronized tagged type.
2263 Improved warnings for unused variables
2264 (Is_Visible_Component): Fix a visibility hole on a component inherited
2265 by a private extension when parent is itself declared as a private
2266 extension, and the derivation is in a child unit.
2267 (Find_Hidden_Interface): Move spec from the package body.
2268
22692007-08-14 Robert Dewar <dewar@adacore.com>
2270 Ed Schonberg <schonberg@adacore.com>
2271
2272 * sem_ch5.adb: Improve warnings on redundant assignments
2273
2274 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
2275 parameter
2276 (Is_Synchronized_Tagged_Type): New subprogram that returns true
2277 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
2278 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
2279 is set to False. Improves handling of Known_[Not_]Null.
2280 (Wrong_Type): Special case address arithmetic attempt
2281 (Collect_Abstract_Interfaces): Add new formal to allow collecting
2282 abstract interfaces just using the partial view of private types.
2283 (Has_Abstract_Interfaces): Add new formal to allow checking types
2284 covering interfaces using the partial view of private types.
2285 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
2286 component still needs to be defined in this case, but is never
2287 initialized as VMs are using other dispatching mechanisms.
2288 (Abstract_Interface_List): For a protected type, use base type to get
2289 proper declaration.
2290 Improve warnings on redundant assignments
2291 (Is_Variable): Handle properly an implicit dereference of a prefixed
2292 function call.
2293 (Build_Actual_Subtype): If this is an actual subtype for an
2294 unconstrained formal parameter, use the sloc of the body for the new
2295 declaration, to prevent anomalises in the debugger.
2296
22972007-08-14 Robert Dewar <dewar@adacore.com>
2298
2299 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
2300 dispatching operation
2301
23022007-08-14 Ed Schonberg <schonberg@adacore.com>
2303 Gary Dismukes <dismukes@adacore.com>
2304
2305 * exp_aggr.ads,
2306 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
2307 expanded aggregate code before allocator, and ahead of declaration for
2308 temporary, to prevent access before elaboration when the allocator is
2309 an actual for an access parameter.
2310 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
2311 the TSD and the table of interfaces.
2312 (Convert_To_Assignments): Augment the test for delaying aggregate
2313 expansion for limited return statements to include the case of extended
2314 returns, to prevent creation of an unwanted transient scope.
2315 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
2316 (Expand_Array_Aggregate): Handle aggregates associated with
2317 statically allocated dispatch tables.
2318 (Expand_Record_Aggregate): Handle aggregates associated with
2319 statically allocated dispatch tables.
2320 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
2321 of anonymous access type.
2322
23232007-08-14 Ed Schonberg <schonberg@adacore.com>
2324
2325 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
2326 is a variable that renames a slice, use the variable itself in the
2327 expannsion when the renamed expression itself may be modified between
2328 the declaration of the renaming and the array assignment.
2329
23302007-08-14 Jerome Guitton <guitton@adacore.com>
2331
2332 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2333 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
2334 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
2335 New functions; dummy implementations.
2336
2337 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
2338 functions, used to implement the multi-tasks mode routines on VxWorks.
2339
2340 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
2341 New functions, thin
2342 binding to the VxWorks routines which have changed between VxWorks 5
2343 and 6.
2344 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
2345 which are not callable from a RTP.
2346
2347 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
2348 implemented for the multi-tasks mode on VxWorks 5 and 6.
2349
2350 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
2351
2352 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
2353 functions.
2354
23552007-08-14 Vincent Celier <celier@adacore.com>
2356
2357 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
2358 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
2359 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
2360 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2361 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2362 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
2363 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
2364 procedure.
2365 (Major_Id_Name): New function.
2366 mlib-tgt.ads/mlib.tgt.adb:
2367 (Library_Major_Minor_Id_Supported): New function, default returns True
2368 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
2369 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
2370 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
2371 Implementation of Library_Major_Minor_Id_Supported returns False
2372 clean.adb:
2373 (Clean_Library_Directory): If major/minor ids are supported, clean all
2374 library files.
2375 Major update of the Project Manager and of the project aware tools,
2376 including gprmake, so that the same sources in the GNAT repository
2377 can be used by gprbuild.
2378
23792007-08-14 Olivier Hainque <hainque@adacore.com>
2380
2381 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2382 (GCC_ZCX_Support): Switch to True.
2383
2384 * s-intman-solaris.adb (Notify_Exception): Call
2385 Adjust_Context_For_Raise before raising, as expected for signal
2386 handlers in general.
2387
2388 * s-intman-posix.adb (Notify_Exception): Remove declaration of
2389 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
2390 to other implementation bodies.
2391
2392 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
2393 be visible by multiple implementation bodies.
2394
2395 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
2396 only for conditions coming from hardware.
2397 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
2398 adjustments to signal context prior to exception raise from signal
2399 handler.
2400 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
2401 mode.
2402 Solaris section: (__gnat_adjust_context_for_raise): New function.
2403 Implementation of the machine context adjustments to perform prior to
2404 raise from a signal handler. Version for both sparc and x86.
2405 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
2406 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
2407 prior to raising as expected for any handler, before possible nested
2408 faults to make sure all the contexts in a chain have been adjusted by
2409 the time we propagate.
2410
24112007-08-14 Pascal Obry <obry@adacore.com>
2412
2413 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2414 (SYSTEM_INFO): New record.
2415 (SetThreadIdealProcessor): New imported routine needed for supporting
2416 task_info pragma on Windows.
2417
2418 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
2419 info can be applied to the current host.
2420 (Create_Task): Set the ideal processor if information is present.
2421
2422 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
2423 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2424
24252007-08-14 Olivier Hainque <hainque@adacore.com>
2426
2427 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
2428 stack size and initial stack pointer value for a given task.
2429 (Enter_Task): Get the stack attributes of the task we are entering and
2430 let the stack checking engine know about them.
2431
2432 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
2433 Let the stack-checking engine know about the initial sp value and stack
2434 size associated with the current task.
2435 (Set_Stack_Info): If a stack base has been notified for the current
2436 task, honor it. Fallback to the previous less accurate method otherwise.
2437
2438 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2439
24402007-08-14 Ed Schonberg <schonberg@adacore.com>
2441
2442 * sem_ch10.adb: Create a limited view of an incomplete type, to make
2443 treatment of limited views uniform for all visible declarations in a
2444 limited_withed package.
2445 Set flag indicating that a subprogram body for a child unit has a
2446 generated spec.
2447 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
2448 separate declaration, remove the unit name from visibility after
2449 compilation, so that environment is clean for subsequent compilations.
2450 (Install_Limited_Context_Clauses): Do not install a
2451 limited_private_with_clause unless the current unit is a body or a
2452 private child unit.
2453 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
2454 in the same fashion.
2455 (Install_Limited_Withed_Unit): Do not install a limited with clause if
2456 it applies to the declaration of the current package body.
2457 (Remove_Private_With_Clauses): If there is a regular with_clause for
2458 the unit, delete Private_With_Clause from context, to prevent improper
2459 hiding when processing subsequent nested packages and instantiations.
2460
24612007-08-14 Jose Ruiz <ruiz@adacore.com>
2462
2463 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
2464 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
2465 representing absolute path names.
2466 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
2467
2468 * cstreams.c (__gnat_full_name for VxWorks): Use
2469 __gnat_is_absolute_path to detect whether we need to add the current
2470 directory to normalize the path.
2471
24722007-08-14 Javier Miranda <miranda@adacore.com>
2473
2474 * a-tags.ads,
2475 a-tags.adb (Displace): Associate a message with the raised CE
2476 exception.
2477 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
2478 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
2479 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
2480 spec.
2481 (Default_Prim_Op_Count): Removed.
2482 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
2483 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
2484 Remove pragma Inline_Always.
2485
2486 * rtsfind.ads (Default_Prim_Op_Count): Removed
2487 (Max_Predef_Prims): New entity
2488 (RE_Expanded_Name): Removed
2489 (RE_HT_Link): Removed
2490 (RE_Iface_Tag): Remmoved
2491 (RE_Ifaces_Table): Removed
2492 (RE_Interfaces_Array): Removed
2493 (RE_Interface_Data_Element): Removed
2494 (RE_Nb_Ifaces): Removed
2495 (RE_RC_Offset): Removed
2496 (RE_Static_Offset_To_Top): Removed
2497
2498 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
2499 formal.
2500 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
2501 Prim_Op_Count by Max_Predef_Prims.
2502
25032007-08-14 Thomas Quinot <quinot@adacore.com>
2504 Vincent Celier <celier@adacore.com>
2505
2506 * binde.adb (Elab_All_Links): Remove unnecessary call to
2507 Generic_Separately_Compiled (if a unit satisfies this predicate, there
2508 won't be an associated Afile).
2509 (Elab_All_Links): Fail if a referenced unit cannot be found
2510
2511 * bindgen.adb:
2512 Fix comments in bindgen regarding consistency checks done in Bcheck:
2513 the checks are made across units within a partition, not across several
2514 partitions.
2515 Fix generation of C binder file for VxWorks.
2516
2517 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
2518 Generic_May_Lack_ALI, more descriptive of the current use of the
2519 predicate, and update documentation.
2520
2521 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
2522 reorganization and documentation update for the case of predefined
2523 library generics (for which we do not reference an Afile).
2524
25252007-08-14 Robert Dewar <dewar@adacore.com>
2526
2527 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
2528 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
2529 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
2530 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
2531 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
2532 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
2533 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
2534 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
2535 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
2536 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
2537 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
2538 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
2539 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
2540 g-altcon.adb: Minor reformatting
2541
2542 ada-tree.h: Delete empty line.
2543
2544 ali.ads: Minor reformatting
2545 Clarification of comments.
2546 Minor spelling correction
2547
2548 * exp_dbug.adb: Add Warnings Off to suppress new warning
2549
2550 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2551 formal
2552
2553 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
2554 value
2555
2556 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
2557
2558 * a-textio.ads: Reorder the standard input/output/error declarations
2559 for consistency.
2560
2561 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
2562
2563 * par-ch2.adb: Recognize RM specially in errout
2564 Change 'R'M to RM in all error messages
2565
2566 * scng.adb: Recognize RM specially in errout
2567
2568 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
2569 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
2570
2571 * s-direio.adb: Add missing routine header box.
2572
2573 * sem_attr.ads: Add ??? comments
2574
2575 * sem_eval.adb: Recognize RM specially in errout
2576 Change 'R'M to RM in all error messages
2577
2578 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
2579
2580 * s-tasinf.ads: Fix minor comment typo.
2581
2582 * a-cihama.adb: Minor comment addition
2583
2584 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2585 formal
2586
2587 * s-tasinf-tru64.ads: Fix minor comment typo.
2588
2589 * itypes.ads: Comment update.
2590
2591 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
2592 anymore.
2593
2594 * argv.c: Added protection against null gnat_argv and gnat_envp.
2595
2596 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
2597 warning message when Tolerate_Consistency_Errors is True.
2598
2599 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
2600 Any_Id, as this subprogram is only applicable to *type* entities (it
2601 sets RM_Size). Instead initialize just Esize and Alignment.
2602
26032007-08-14 Bob Duff <duff@adacore.com>
2604
2605 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
2606 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
2607 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
2608 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
2609 a-coorse.ads (Next): Applied pragma Inline.
2610 Make all Containers packages Remote_Types (unless they are already
2611 Pure).
2612 (Previous): applied pragma Inline
2613 (Elements_Type): is now a record instead of an array
2614
26152007-08-14 Thomas Quinot <quinot@adacore.com>
2616
2617 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
2618 of Set_Item.
2619 (Set_Item): When the new item is an element of the currently allocated
2620 table passed by reference, save a copy on the stack if we're going
2621 to reallocate. Also, in Table.Set_Item, make sure we test the proper
2622 variable to determine whether to call Set_Last.
2623
2624 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
2625 symbols-vms.adb, symbols-processing-vms-alpha.adb,
2626 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
2627 some occurrences of the pattern
2628 T.Increment_Last;
2629 T.Table (T.Last) := Value;
2630 with a cleaner call to
2631 T.Append (Value);
2632
26332007-08-14 Ed Schonberg <schonberg@adacore.com>
2634 Gary Dismukes <dismukes@adacore.com>
2635 Thomas Quinot <quinot@adacore.com>
2636
2637 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
2638 derived type with interface progenitors use the analyzed formal as the
2639 parent of the actual, to create renamings for all the inherited
2640 operations in Derive_Subprograms.
2641 (Collect_Previous_Instances): new procedure within of
2642 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
2643 unit being loaded, to ensure that the generation of global symbols is
2644 consistent in different compilation modes.
2645 (Is_Tagged_Ancestor): New function testing the ancestor relation that
2646 takes progenitor types into account.
2647 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
2648 traversing over the primitives of the formal and actual types to locate
2649 any abstract subprograms of the actual type that correspond to a
2650 nonabstract subprogram of the formal type's ancestor type(s), and issue
2651 an error if such is found.
2652 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
2653 Instantiate_Package_Body, Instantiate_Subprogram_Body):
2654 Remove bogus guard around calls to Inherit_Context.
2655 (Reset_Entity): If the entity is the selector of a selected component
2656 that denotes a named number, propagate constant-folding to the generic
2657 template only if the named number is global to the generic unit.
2658 (Set_Instance_Env): Only reset the compilation switches when compiling
2659 a predefined or internal unit.
2660
26612007-08-14 Ed Schonberg <schonberg@adacore.com>
2662
2663 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
2664 parameter to determine whether operation applies to the prefix.
2665 (Complete_Object_Operation): If actual has an access type and
2666 controlling formal is not an in_parameter, reject the actual if it is
2667 an access_to_constant type.
2668 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
2669 type, the candidate operations are found in the scope of declaration of
2670 the type, because the type has no primitive subprograms.
2671 (Analyze_Selected_Component): If prefix is class-wide, and root type is
2672 a private extension, only examine visible components before trying to
2673 analyze as a prefixed call.
2674 Change Entity_List to Type_To_Use, for better readability.
2675 (Has_Fixed_Op): Use base type when checking whether the type of an
2676 operator has a user-defined multiplication/division
2677 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
2678 user-defined operators are available for fixed-point types.
2679
26802007-08-14 Thomas Quinot <quinot@adacore.com>
2681 Ed Schonberg <schonberg@adacore.com>
2682
2683 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
2684 formal At_Any_Place indicating, when True, that we want to test for
2685 availability of the stream attribute at any place (as opposed to the
2686 current visibility context only).
2687 (Missing_Read_Write_Attributes): A stream attribute is missing for the
2688 purpose of enforcing E.2.2(8) only if it is not available at any place.
2689 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
2690 when checking the legality of an extension aggregate in a preelaborable
2691 package. Treat the literal null as a valid default expression in a
2692 component declaration for a type with preelaborable initialization.
2693 A limited interface is a legal progenitor for the designated type of a
2694 remote access to class-wide type.
2695
26962007-08-14 Thomas Quinot <quinot@adacore.com>
2697 Ed Schonberg <schonberg@adacore.com>
2698
2699 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
2700 reference): Use correct entity as denoted entity for the selector of
2701 the rewritten node.
2702 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
2703 setting the Referenced_As_LHS flag for entities that are implicitly
2704 dereferenced.
2705 (Find_Type): If the type is an internally generated incomplete type,
2706 mark the full view as referenced, to prevent spurious warnings.
2707 (Find_Selected_Component, Has_Components): Handle properly non-limited
2708 views that are themselves incomplete types.
2709 Handle interfaces visible through limited-with clauses.
2710 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
2711 subprogram generic actual for which we have generated a renaming.
2712 Warn when the renaming introduces a homonym of
2713 the renamed entity, and the renamed entity is directly visible.
2714
27152007-08-14 Ed Schonberg <schonberg@adacore.com>
2716 Hristian Kirtchev <kirtchev@adacore.com>
2717
2718 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
2719 appear in the subtree to the current allocator if it is not a static
2720 coextension.
2721 (Resolve_Allocator): Perform cleanup if resolution has determined that
2722 the allocator is not a coextension.
2723 (Resolve): Skip an interpretation hidden by an abstract operator only
2724 when the type of the interpretation matches that of the context.
2725 (Resolve): When looping through all possible interpretations of a node,
2726 do not consider those that are hidden by abstract operators.
2727 (Resolve_Actuals): When verifying that an access to class-wide object
2728 is an actual for a controlling formal, ignore anonymous access to
2729 subprograms whose return type is an access to class_wide type.
2730 (Resolve_Slice): If the prefix of the slice is a selected component
2731 whose type depends on discriminants, build its actual subtype before
2732 applying range checks on the bounds of the slice.
2733 (Valid_Conversion): In an instance or inlined body, compare root types,
2734 to prevent anomalies between private and public views.
2735 (Resolve): Improve error message for ambiguous fixed multiplication
2736 expressions that involve universal_fixed multiplying operations.
2737
27382007-08-14 Javier Miranda <miranda@adacore.com>
2739 Hristian Kirtchev <kirtchev@adacore.com>
2740
2741 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
2742 location to allow the correct generation of errors in case of
2743 restrictions applied to the expanded code.
2744 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
2745 function if the condition does not reference them.
2746 (Expand_Entry_Body_Declarations): Mark the index constant as having a
2747 valid value.
2748
27492007-08-14 Thomas Quinot <quinot@adacore.com>
2750
2751 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
2752 typecode parameters for a union (in a variant record), remove
2753 extraneous layer of Any wrapping for member label.
2754 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
2755 elabration statements, register the package with the name server
2756 at the beginning, not at the end, of the elaboration statements so
2757 that they can create remote access to subprogram values that designate
2758 remote subprograms from the package.
2759
27602007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
2761
2762 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
2763 values to compute the number of seconds since the Unix Epoc in order to
2764 account for Daylight Savings Time. Perform special processing for dates
2765 that are earlier than the Unix Epoc to obtain a negative number.
2766
27672007-08-14 Emmanuel Briot <briot@adacore.com>
2768
2769 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
2770 switches.
2771
27722007-08-14 Eric Botcazou <ebotcazou@adacore.com>
2773
2774 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
2775 binder-generated file is not in Ada.
2776 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
2777 recorded in the ALI file.
2778 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2779
27802007-08-14 Vincent Celier <celier@adacore.com>
2781
2782 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2783 (Output_Source): Do nothing if parameter is No_Sdep_Id
2784
2785 * make.adb (Gnatmake): Do not rebuild an archive simply because a
2786 shared library it imports has a later time stamp.
2787 (Check): Resolve the symbolic links in the path name of the object
2788 directory.
2789 Check that the ALI file is in the correct object directory
2790 Check if a file name does not correspond to the mapping of units
2791 to file names.
2792 (Display_Version): New procedure
2793 (Initialize): Process switches --version and --help
2794 Use type Path_Name_Type for path name
2795
27962007-08-14 Paul Hilfinger <hilfinger@adacore.com>
2797
2798 * impunit.adb: Re-organize System.Random_Numbers and
2799 GNAT.Random_Numbers and add to builds.
2800
2801 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
2802
2803 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
2804
2805 * a-assert.ads, a-assert.adb: New files.
2806
28072007-08-14 Gary Dismukes <dismukes@adacore.com>
2808
2809 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
2810 if AAMP_On_Target is True, then the size of the type encompasses two
2811 addresses (a static link and a subprogram address), except in the case
2812 of library-level access types.
2813
28142007-08-14 Vincent Celier <celier@adacore.com>
2815
2816 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
2817 writing the line.
2818 (Write_Eol_Keep_Blanks): New procedure to write a line, including
2819 possible trailing spaces.
2820 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2821
28222007-08-14 Javier Miranda <miranda@adacore.com>
2823
2824 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
2825 null-excluding access types.
2826
28272007-08-14 Javier Miranda <miranda@adacore.com>
2828
2829 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
2830 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
2831 of private types add missing check on matching interfaces in the
2832 partial and full declarations.
2833 (Analyze_Protected_Type): Code cleanup.
2834 (Analyze_Task_Type): Code cleanup.
2835
28362007-08-14 Javier Miranda <miranda@adacore.com>
2837
2838 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
2839 generated interface thunk.
2840
28412007-08-14 Ed Schonberg <schonberg@adacore.com>
2842
2843 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
2844 obsolescent warning on application of 'Class to an incomplete type.
2845
2846 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
2847 prevent obsolescent warning on application of 'Class to an incomplete
2848 type.
2849
28502007-08-14 Pascal Obry <obry@adacore.com>
2851
2852 * s-fileio.adb (Is_Open): Add check for usability of the underlying
2853 file stream.
2854
28552007-08-14 Cyrille Comar <comar@adacore.com>
2856
2857 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
2858 since it is potentially used in cases implying double finalization of
2859 the same object.
2860
28612007-08-14 Jose Ruiz <ruiz@adacore.com>
2862
2863 * s-tasini.adb (Get_Stack_Info): Move this function to
2864 System.Soft_Links.Tasking because it is common to the full and the
2865 restricted run times.
2866 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
2867 in SSL.Tasking.Init_Tasking_Soft_Links.
2868
2869 * s-solita.adb (Get_Stack_Info): Function moved from
2870 System.Tasking.Initialization because it is common to the full and the
2871 restricted run times.
2872 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2873
28742007-08-14 Arnaud Charlet <charlet@adacore.com>
2875
2876 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
2877 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
2878 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
2879 parameter.
2880
2881 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
2882 guard to 12K.
2883
28842007-08-14 Gary Dismukes <dismukes@adacore.com>
2885
2886 * s-veboop.adb (SU): New named number initialized to
2887 System.Storage_Unit.
2888 (True_Val): The initialization expression is revised to use SU (=
2889 Storage_Unit) rather than assuming 8 for the component size of an
2890 unpacked Boolean array.
2891
28922007-08-14 Tristan Gingold <gingold@adacore.com>
2893
2894 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2895
2896 * tb-ivms.c: New file.
2897
2898 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2899
29002007-08-14 Geert Bosch <bosch@adacore.com>
2901
2902 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
2903 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
2904 Add required linker pragmas for automatically linking with the gnalasup
2905 linear algebra support library, and the systems math library.
2906 Rename cdot to cdotu and zdot to zdotu.
2907 Update header comment to describe purpose of package.
2908
29092007-08-14 Thomas Quinot <quinot@adacore.com>
2910
2911 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
2912 an explicitly specified Associated_Final_Chain, use that list.
2913 (Expand_N_Package_Body): Build dispatch tables of library level tagged
2914 types.
2915 (Expand_N_Package_Declaration): Build dispatch tables of library level
2916 tagged types. Minor code cleanup.
2917
29182007-08-14 Vincent Celier <celier@adacore.com>
2919
2920 * gnatchop.adb (Terminate_Program): Remove exception and use
2921 Types.Terminate_Program instead.
2922
2923 * osint.ads, osint.adb (Current_Exit_Status): New global variable
2924 (Find_Program_Name): Added protection against empty name.
2925 (OS_Exit_Through_Exception): New procedure
2926
2927 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
2928 (OS_Exit_Default): New procedure that contains the previous
2929 implementation of procedure OS_Exit.
2930 (Final_Value): Remove obsolete Interix stuff.
2931
29322007-08-14 Thomas Quinot <quinot@adacore.com>
2933
2934 * g-socket.ads: Reorganize example code so that it also works on
2935 Windows XP.
2936
29372007-08-14 Tristan Gingold <gingold@adacore.com>
2938
2939 * g-trasym.ads: AIX now supports symbolic backtraces.
2940
29412007-08-14 Ed Schonberg <schonberg@adacore.com>
2942
2943 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
2944 units being loaded to detect circularities. A circularity may be
2945 present even if the current chain of pending units to load starts from
2946 a limited_with_clause.
2947
2948 * lib-load.ads: Change profile of Load_Unit to use a with_clause
2949 rather than a boolean flag, in order to detect circularities in
2950 with_clauses.
2951
2952 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
2953 than propagating the From_Limited_With flag, in order to handle
2954 properly circularities involving with_clauses.
2955
29562007-08-14 Nicolas Setton <setton@adacore.com>
2957
2958 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
2959 warnings.
2960
29612007-08-14 Arnaud Charlet <charlet@adacore.com>
2962
2963 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
2964 to build for libgnala.
2965 libgnat: Add rules to build libgnala.a
2966 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
2967 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
2968 Add s-osinte-vxworks-kernel.adb to the target pairs of the
2969 kernel run-time lib for VxWorks 6, which would provide a different
2970 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
2971 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
2972 running ZCX by default.
2973 Add g-sttsne-locking to LynxOS version.
2974 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
2975 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
2976
2977 * system-darwin-x86.ads: New file.
2978
2979 * Make-lang.in: Delete files before copying onto them, so if they are
2980 read-only, the copy won't fail.
2981 Update dependencies
2982
29832007-08-14 Pascal Obry <obry@adacore.com>
2984
2985 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
2986 naming scheme.
2987
29882007-08-14 Vincent Celier <celier@adacore.com>
2989
2990 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
2991 (Gcc): Initialize Gcc_Name at the first call
2992
29932007-08-14 Ed Schonberg <schonberg@adacore.com>
2994
2995 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
2996 with_clauses of the enclosing unit when analyzing the package
2997 specification of a nested instance.
2998
29992007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
3000
3001 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
3002 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
3003 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
3004 layout of N_Allocator.
3005
30062007-08-14 Thomas Quinot <quinot@adacore.com>
3007
3008 * rtsfind.adb (Check_RPC): Add PCS version check.
3009
3010 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
3011 (Gnat_Free_Software): New function.
3012
3013 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
3014 the PCS_Version value from s-parint, used to check that it is consistent
3015 with what exp_dist expects.
3016
3017 * s-parint.ads (PCS_Version): New entity for checking consistency
3018 between exp_dist and PCS.
3019
3020 * gen-soccon.c: (SO_REUSEPORT): New constant.
3021
30222007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
3023
3024 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
3025 variable Sub_Second to Duration in order to accomodate a larger range
3026 of arithmetic operations.
3027
30282007-08-14 Bob Duff <duff@adacore.com>
3029
3030 * g-sttsne-locking.ads: Move comments from spec to body.
3031 * g-sttsne-locking.adb: Move comments from spec to body.
3032 * g-sttsne-vxworks.ads: Removed.
3033 * g-sttsne-vxworks.adb: Removed.
3034
4862826d
ILT
30352007-08-11 Ian Lance Taylor <iant@google.com>
3036
3037 * misc.c (gnat_get_alias_set): Change return type to
3038 alias_set_type.
3039
4d8a9bfe
KG
30402007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3041
3042 * decl.c, utils2.c: Fix whitespace in last change.
3043
39595763
KG
30442007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3045
3046 * decl.c (compare_field_bitpos): Constify.
3047 * utils2.c (compare_elmt_bitpos): Likewise.
3048
08e7e8cb
AJ
30492007-07-27 Aurelien Jarno <aurelien@aurel32.net>
3050
3051 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
3052 anonymous access type.
3053 (pthread_sigmask): Now take an access sigset_t.
3054
83983455
JS
30552007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
3056
3057 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
3058
a8257e58
EB
30592007-06-21 Eric Botcazou <ebotcazou@adacore.com>
3060
3061 PR tree-optimization/25737
3062 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
3063
5be014d5
AP
30642007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3065
3066 * trans.c (Attribute_to_gnu): When subtracting an
3067 offset from a pointer, use POINTER_PLUS_EXPR with
3068 NEGATE_EXPR instead of MINUS_EXPR.
3069 (gnat_to_gnu): Likewise.
3070 * utils.c (convert): When converting between
3071 thin pointers, use POINTER_PLUS_EXPR and sizetype
3072 for the offset.
3073 * utils2.c (known_alignment): POINTER_PLUS_EXPR
3074 have the same semantics as PLUS_EXPR for alignment.
3075 (build_binary_op): Add support for the semantics of
3076 POINTER_PLUS_EXPR's operands.
3077 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
3078
b0464c88
RE
30792007-06-11 Rafael Avila de Espindola <espindola@google.com>
3080
a472f546
EB
3081 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
3082 of get_signed_or_unsigned_type.
b0464c88
RE
3083 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
3084
93e17a25
BD
30852007-06-11 Bob Duff <duff@adacore.com>
3086 Thomas Quinot <quinot@adacore.com>
3087
3088 * g-stsifd-sockets.adb (Create): Work around strange behavior of
3089 'bind' on windows that causes 'connect' to fail intermittently, by
3090 retrying the 'bind'.
3091 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3092
1bbf8502
DS
30932007-06-10 Duncan Sands <baldrick@free.fr>
3094
3095 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
3096 than to void, for the fields when making a new fat pointer type.
3097 (gnat_substitute_in_type): Now substitute_in_type.
a472f546 3098 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
1bbf8502
DS
3099 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
3100 * utils.c (update_pointer_to): Update fat pointers by updating the
3101 dummy node pointers used for the fields.
3102
ec11296f
AC
31032007-06-06 Thomas Quinot <quinot@adacore.com>
3104 Bob Duff <duff@adacore.com>
3105
3106 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
3107 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
3108 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
3109 constant Thread_Blocking_IO, always True by default, set False
3110 on a per-runtime basis.
3111 (Need_Netdb_Buffer): New constant.
3112
3113 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
3114 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
3115 files.
3116
3117 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
3118 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
3119 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
3120 child package Task_Safe_NetDB
3121 (Host_Error_Messages): Add stub body.
3122 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3123
3124 * g-soccon-mingw.ads: Add Windows-specific constants.
3125 (Need_Netdb_Buffer): New constant.
3126 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
3127 wrapper and import inet_addr(3) from the standard sockets library
3128 directly instead.
3129 (In_Addr): Add alignment clause.
3130 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3131
31322007-06-06 Robert Dewar <dewar@adacore.com>
3133
3134 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3135 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
3136 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
3137 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
3138 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
3139 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
3140 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
3141 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
3142 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
3143 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
3144 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
3145 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
3146 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
3147 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
3148 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
3149 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
3150 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
3151 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
3152 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
3153 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
3154 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
3155 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
3156 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
3157 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
3158 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
3159 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
3160 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
3161 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
3162 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
3163 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
3164 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
3165 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
3166 Unchecked_* by Ada.Unchecked_*
3167
31682007-06-06 Robert Dewar <dewar@adacore.com>
3169
3170 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
3171 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
3172 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
3173 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
3174 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3175 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
3176
3177 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
3178 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
3179 s-tasloc.adb, s-tasloc.ads: New files.
3180
31812007-06-06 Bob Duff <duff@adacore.com>
3182
3183 * g-expect-vms.adb:
3184 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
3185 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
3186 (Send_Signal, Close): Raise Invalid_Process if the process id is
3187 invalid.
3188 (Pattern_Matcher_Access): Is now a general access type to be able to
3189 use aliased string.
3190
31912007-06-06 Thomas Quinot <quinot@adacore.com>
3192 Arnaud Charlet <charlet@adacore.com>
3193
a472f546
EB
3194 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
3195 (SIGEMT is now used instead of SIGTERM on AIX).
ec11296f
AC
3196
3197 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
3198 (Time_Slice_Supported): Set to True.
a472f546 3199 Use SIGEMT instead of SIGTERM as SIGADAABORT.
ec11296f
AC
3200
32012007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
3202
3203 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
3204 (Time, Time)): Use To_Relative_Time rather than manual calculation to
3205 express the bounds of Duration as Time. Raise Time_Error when the
3206 result is greater or equal to the higher bound of Duration (on the
3207 margin case).
3208 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
3209 Ada_High_And_Leaps.
3210 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
3211 Ada_High_And_Leaps.
3212 ("-" (Time, Time)): Reorder code.
3213 (All_Leap_Seconds): Removed.
3214 (Arithmetic_Operations.Add): Remove sign related kludge.
3215 (Arithmetic_Operations.Difference): Control the leaps seconds processing
3216 with flag Leap_Support.
3217 (Arithmetic_Operations.Subtract): Remove sign related kludge.
3218 (Check_Within_Time_Bounds): New procedure.
3219 (Clock): Control the leap seconds processing with flag Leap_Support.
3220 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
3221 (Formatting_Operations.Split): Control the leap seconds processing with
3222 flag Leap_Support.
3223 (Formatting_Operations.Time_Of): Control the leaps seconds processing
3224 with flag Leap_Support. Adjust the year, month and day (if applicable)
3225 when the value of day seconds designates a new day.
3226 (Split): Use parameter associations for better readability. Integrate
3227 flag Is_Ada_05.
3228 (Time_Of): Use parameter associations for better readability. Integrate
3229 flag Is_Ada_05.
3230
3231 * a-calfor.adb (Split): Use parameter associations for better
3232 readability. Integrate flag Is_Ada_05.
3233 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
3234 better readability. Integrate flag Is_Ada_05.
3235
32362007-06-06 Arnaud Charlet <charlet@adacore.com>
3237
3238 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
3239 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
3240 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
3241 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
3242 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
3243 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
3244 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
3245 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
3246 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
3247 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
3248 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
3249 time when entering this routine to detect a backward clock setting
3250 (manual setting or DST adjustment), to avoid waiting for a longer delay
3251 than needed.
3252 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
3253 Remove handling of deferred priority change, and replace by setting the
3254 task priority directly, as required by AI-188.
3255 Update comments.
3256 (Max_Task_Image_Length): New constant.
3257 Replace Warnings (Off) by Unreferenced pragma, cleaner.
3258 (Dynamic_Priority_Support): Removed, no longer needed.
3259 (Poll_Base_Priority_Change): Ditto.
3260 (Set_Ceiling): Add this procedure to change the ceiling priority
3261 associated to a lock. This is a dummy implementation because dynamic
3262 priority ceilings are not supported by the underlying system.
3263
3264 * a-dynpri.adb (Set_Priority): Take into account case where Target is
3265 accepting a RV with its priority boosted.
3266 Remove handling of deferred priority change, and replace by setting the
3267 task priority directly, as required by AI-188.
3268
3269 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
3270 Succeeded = True.
3271 Remove handling of deferred priority change, and replace by setting the
3272 task priority directly, as required by AI-188.
3273 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
3274 of Self_Id earlier.
3275
3276 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
3277 (Poll_Base_Priority_Change): Removed.
3278 Code clean up: use SSL.Current_Target_Exception.
3279
3280 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
3281 to run as this is a potentially dispatching point.
3282 (Call_Synchronous): Use Local_Defer_Abort.
3283 (Callable): Relax assertion.
3284 (Selective_Wait): Relax assertion in case abort is not allowed.
3285 Remove handling of deferred priority change, and replace by setting the
3286 task priority directly, as required by AI-188.
3287
3288 * s-tasuti.adb (Make_Passive): Adjust assertions.
3289 Remove handling of deferred priority change, and replace by setting the
3290 task priority directly, as required by AI-188.
3291
32922007-06-06 Arnaud Charlet <charlet@adacore.com>
3293
3294 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
3295 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
3296 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
3297 system-vxworks-mips.ads, system-vxworks-alpha.ads,
3298 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
3299 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
3300 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
3301 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
3302 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
3303 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
3304 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
3305 This patch changes the largest non-binary modulus from 2**31-1 to
3306 2**32-1.
3307 (Compiler_System_Version): Removed, no longer used.
3308 Clean up system files by removing flags only used on a single target.
3309 Also remove obsolete flags, only used during bootstrap from system.ads
3310 (Address): Add a pragma Preelaborable_Initialization.
3311
3312 * system-aix.ads: Ditto.
3313 (GCC_ZCX_Support): Set to true.
3314 Update priority range on AIX and map Ada priorities to target
3315 priorities appropriately for different scheduling policies.
3316
3317 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
3318
33192007-06-06 Vincent Celier <celier@adacore.com>
3320
3321 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
3322 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
3323
3324 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
3325 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
3326 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
3327 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
3328 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
a472f546
EB
3329 MLib.Tgt, containing the default versions of the exported subprograms.
3330 For each platform, create a specific version of the body of new child
3331 package MLib.Tgt.Specific that contains only the body of subprograms
3332 that are different from the default.
3333 (Archive_Builder_Append_Options): New function.
ec11296f
AC
3334
33352007-06-06 Matthew Gingell <gingell@adacore.com>
3336
a472f546
EB
3337 * s-osinte-aix.adb: Map Ada priorities to target priorities
3338 appropriately for different scheduling policies.
ec11296f
AC
3339
33402007-06-06 Arnaud Charlet <charlet@adacore.com>
3341
3342 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
3343 its C counterpart.
3344 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
3345 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
3346
33472007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
3348
a472f546
EB
3349 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
3350 Noop on VMS, added for interface commonality.
ec11296f
AC
3351
33522007-06-06 Eric Botcazou <ebotcazou@adacore.com>
3353 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3354 Olivier Hainque <hainque@adacore.com>
3355
3356 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
3357 renamed expression of a full renaming at toplevel.
3358 (gnat_to_gnu_entity, case object): If not defining, do not look inside
3359 the values the constant is initialized to if it is an N_Allocator.
3360 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
3361 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
3362 (make_aligning_type): Accept an extra ROOM argument for storage to be
3363 made available before the aligned field, and an extra BASE_ALIGN
3364 argument for callers to pass the alignment guaranteed to be honored for
3365 the whole aligning object. Avoid call to finish_record_type, which only
3366 interferes with the sizes we want to set.
3367 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
3368 make_aligning_type for super-aligned objects on stack.
3369 (components_to_record): Pass the adjusted size of the type when creating
3370 fields in the qualified union for the variant part.
3371 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
3372 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
3373 packed array type.
3374 (maybe_pad_type): Set TYPE_USER_ALIGN.
3375 (make_aligning_type): Likewise.
3376 ALIGN argument is unsigned int.
3377 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
3378 (gnat_to_gnu_param): Likewise, for parameters.
3379 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
3380 if it is constant and stems from a function call.
3381 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
3382 of the record is specified. Adjust accordingly.
3383 (adjust_packed): New static function.
3384 (gnat_to_gnu_field): Use it to adjust the packedness setting.
3385 (components_to_record): Likewise.
3386 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
3387 side-effects if the object is deemed constant.
3388 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
3389 type instead of merely finalizing it. Tidy.
3390 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
3391 <E_Access_Type>: Likewise.
3392 (defer_debug_incomplete_list): Rename to defer_finalize_list.
3393 (defer_debug_level): Delete.
3394 (gnat_to_gnu_entity) <debug_deferred>: Likewise
3395 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
3396 type.
3397 <E_Record_Type>: Do not explicitly defer finalizing the type.
3398 Adjust for write_record_type_debug_info renaming.
3399 <E_Subprogram_Type>: Likewise.
3400 Finalize deferred types right after deferred incomplete types are
3401 expanded.
3402 (rest_of_type_decl_compilation): New global function.
3403 (components_to_record): Rename defer_debug parameter to do_not_finalize.
3404 (components_to_record): Propagate the packedness to the fields of the
3405 qualified union type if there is a variant part.
3406 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
3407 instead of inline code to adjust the XUT field offsets.
3408 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
3409 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
3410 and write the debug info if the type derives from a discriminated one.
3411 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
3412 <E_Array_Subtype>: Likewise.
3413 <E_String_Literal_Subtype>: Likewise.
3414 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
3415 an alignment clause.
3416 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
3417 before giving warning.
3418 (prepend_one_attribute_to): New function, helper to prepend an attribute
3419 to an attribute list.
3420 (gnat_to_gnu_entity) <E_Procedure>: Use it.
3421 (prepend_attributes): Likewise.
3422 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
3423 <E_Array_Type>: Declare the padding type for the element type, if any.
3424 <E_Array_Subtype>: Likewise.
3425 (defer_limited_with): New variable.
3426 (Gigi_Equivalent_Type): New function.
3427 (gnat_to_gnu_entity): Use it at start and use result throughout.
3428 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
3429 Gigi_Equivalent_Type, support Limited_With, allow two levels of
3430 indirection, precompute if unconstrained array to simplify logic, and
3431 use defer_limited_with to defer elaboration of some types from limited
3432 with.
3433 (finalize_from_with_types): New function.
3434
34352007-06-06 Gary Dismukes <dismukes@adacore.com>
3436 Eric Botcazou <ebotcazou@adacore.com>
3437 Tristan Gingold <gingold@adacore.com>
3438 Olivier Hainque <hainque@adacore.com>
3439
a472f546
EB
3440 * trans.c (Identifier_to_gnu): Change test for deferred constant by
3441 adding guard that the entity is an E_Constant before testing presence
3442 of Full_view (and remove unnecessary test that entity is not a type).
ec11296f
AC
3443 For a CONST_DECL used by reference, manually retrieve
3444 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
3445 (struct language_function): Move from utils.c to here.
3446 (struct parm_attr): New structure.
3447 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
3448 (f_parm_attr_cache): New macro.
3449 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
3450 expressions for the 'First, 'Last and 'Length attributes of the
3451 unconstrained array IN parameters.
3452 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
3453 Allocate the information structure for the function earlier, as well
3454 as the language-specific part.
3455 If the parameter attributes cache has been populated, evaluate the
3456 cached expressions on entry.
3457 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
3458 N_Procedure_Call_Statement and N_Indexed_Component.
3459 (Pragma_to_gnu): Translate inspection_point to an asm statement
3460 containaing a comment and a reference to the object (either its address
3461 for BLKmode or its value).
3462 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
3463 to go to DECL_INITIAL. Together with the size constraint relaxation
3464 in create_var_decl, enlarges the set of situations in which an
3465 identifier may be used as an initializer without implying elaboration
3466 code.
3467 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
3468 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
3469 node.
3470 (maybe_stabilize_reference): Remove lvalues_only parameter.
3471 (gnat_stabilize_reference): Adjust for above change.
3472 (gnat_to_gnu): Do not set location information on the result
3473 if it is a reference.
3474 (add_cleanup): Add gnat_node parameter and set the location of the
3475 cleanup to it.
3476 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
3477 (Exception_Handler_to_gnu_zcx): Likewise.
3478 (gigi): Remove the cgraph node if the elaboration procedure is empty.
3479 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
3480 the former right after the latter.
3481 (start_stmt_group): Make global.
3482 (end_stmt_group): Likewise.
3483 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
3484 vars.
3485 (gnu_program_error_label_stack): Likewise.
3486 (gigi): Initialize them.
3487 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
3488 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
3489 New cases.
3490 (push_exception_label_stack): New function.
3491 (takes_address): New function.
3492
3493 * utils.c (struct language_function): Move to trans.c from here.
3494 (unchecked_convert): Do not wrap up integer constants in
3495 VIEW_CONVERT_EXPRs.
3496 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
3497 the latter for aggregate types, unexpected by later passes, and relax an
3498 arbitrary size constraint on the former.
3499 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
3500 to compare the sizes.
3501 (convert_vms_descriptor): When converting to a fat pointer type, be
3502 prepared for a S descriptor at runtime in spite of a SB specification.
3503 (shift_unc_components_for_thin_pointers): New function.
3504 (write_record_type_debug_info): For variable-sized fields, cap the
3505 alignment of the pointer to the computed alignment.
3506 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
3507 If REP_LEVEL is 2, do not compute the sizes.
3508 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
3509 (build_unc_object_type): Likewise.
3510 (declare_debug_type): New function.
3511
3512 * ada-tree.def: USE_STMT: removed (not emitted anymore).
3513
3514 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
3515 no statement is expandable anymore.
3516 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
3517 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
3518 when the user requested it explicitely.
3519 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
3520 to 0 for Ada.
3521 (get_alias_set): Return alias set 0 for a type if
3522 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
3523
3524 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
3525 (DECL_FUNCTION_STUB): New accessor macro.
3526 (SET_DECL_FUNCTION_STUB): New setter macro.
3527
3528 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
3529
3530 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
3531 declarations.
3532
35332007-06-06 Jose Ruiz <ruiz@adacore.com>
3534
3535 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
3536 Rename to Abort_Task_Interrupt to be able to keep the same interface
3537 as the rest of the targets.
3538
3539 * s-osinte-vxworks.ads s-osinte-vxworks.adb
3540 (To_VxWorks_Priority): Remove explicit "in" mode indicator
3541
3542 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
3543 New files.
3544
35452007-06-06 Robert Dewar <dewar@adacore.com>
3546
3547 * a-chahan.ads: Remove obsolescent pragmas
3548
3549 * a-chlat1.ads: Minor reformatting
3550
35512007-06-06 Robert Dewar <dewar@adacore.com>
3552
3553 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
3554 for Errout
3555
3556 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
3557 implementation
3558
3559 * errout.ads (Finalize): Changed interface
3560 (Output_Messages): New procedure
3561 (Compilation_Errors): New Interface
3562
3563 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
3564 Finalize/Output_Messages interface for Errout
3565 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
3566 Errout.
3567
35682007-06-06 Thomas Quinot <quinot@adacore.com>
3569 Olivier Hainque <hainque@adacore.com>
3570 Robert Dewar <dewar@adacore.com>
3571
3572 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
3573 check.
3574 (Raise_Current_Excep): Call Debug_Raise_Exception just before
3575 propagation starts, to let debuggers know about the event in a reliable
3576 fashion.
3577 (Local_Raise): Moved to System.Exceptions
3578 More convenient to have this as a separate unit
3579
3580 * s-except.adb, s-except.ads: New files.
3581
3582 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
3583 Debug_Unhandled_Exception in System.Exceptions where it belongs
3584 together with a couple of other debug helpers.
3585 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
3586 the former Unhandled_Exception.
3587
3588 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
3589 (Warn_No_Exception_Propagation): New procedure
3590 (Warn_If_No_Propagation): Rewritten for new warning generation
3591 (Expand_Exception_Handlers): New warning generation
3592 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
3593 (Add_Exception_Label): Use Special_Exception_Package_Used for test
3594 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
3595 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
3596 even if restriction is set (makes life easier in Check_Returns)
3597 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
3598 checking exception identities.
3599 (Expand_Local_Exception_Handlers): Do not optimize when all others case
3600 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
3601 block for handler (used by Check_Returns)
3602 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
3603 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
3604 remove all exception handlers when optimizing local raise statements.
3605 (Find_Local_Handler): Use Get_Renamed_Entity
3606 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
3607 marked analyzed after expanding exception handlers, do not generate
3608 redundant cleanup actions, because they have been constructed already.
3609
36102007-06-06 Thomas Quinot <quinot@adacore.com>
3611
3612 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
3613 presence of this categorization pragma is mandated by the language.
3614 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
3615 for this type.
3616
36172007-06-06 Vincent Celier <celier@adacore.com>
3618 Robert Dewar <dewar@adacore.com>
3619
3620 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
3621 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
3622 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
3623 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
3624 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
3625 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
3626 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
3627 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
3628 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
3629 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
3630 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
3631 ali.ads, ali.adb:
3632 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
3633 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
3634 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
3635 Use variables of types File_Name_Type and Unit_Name_Type in error
3636 messages.
3637 (Get_Name): Add parameter Ignore_Special, and set it reading file name
3638 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
3639 here.
3640 Define flags Flag217-Flag230 with associated subprograms
3641 (Flag_Word5): New record type.
3642 (Flag_Word5_Ptr): New access type.
3643 (To_Flag_Word5): New unchecked conversion.
3644 (To_Flag_Word5_Ptr): Likewise.
3645 (Flag216): New function.
3646 (Set_Flag216): New procedure.
3647
36482007-06-06 Arnaud Charlet <charlet@adacore.com>
3649
3650 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
3651 instead of 'Size.
3652
3653 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
3654
36552007-06-06 Javier Miranda <miranda@adacore.com>
3656
3657 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
3658 the package.
3659 (Object_Specific_Data_Array): This is now internal to the package.
3660 (Object_Specific_Data): This is now internal to the package.
3661 (Select_Specific_Data_Element): This is now internal to the package.
3662 (Select_Specific_Data_Array): This is now internal to the package.
3663 (Select_Specific_Data): This is now internal to the package.
3664 (Offset_To_Top_Function_Ptr): This is now public.
3665 (To_Offset_To_Top_Function_Ptr): Removed.
3666 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
3667 local to subprogram Offset_To_Top.
3668 (Predefined_DT): Removed.
3669 (Typeinfo_Ptr): Removed.
3670 (OSD): This function is now internal to this package.
3671 (SSD): This function is now internal to this package.
3672 (DT): New function that displaces the pointer to the table of primitives
3673 to get access to the enclosing wrapper record.
3674 (IW_Membership): Code cleanup.
3675 (Offset_To_Top): Code cleanup.
3676 (Predefined_DT): Removed.
3677 (Register_Interface_Tag): Removed.
3678 (Set_Interface_Table): Removed.
3679 (Set_Offset_Index): Removed.
3680 (Set_Offset_To_Top): Code cleanup.
3681 (Set_OSD): Removed.
3682 (Set_Signature): Removed.
3683 (Set_SSD): Removed.
3684 (Set_Tagged_Kind): Removed.
3685 (Typeinfo_Ptr): Removed.
3686 (TSD): Removed.
3687 (Displace): Add missing check on null actual.
3688
3689 * exp_disp.ads, exp_disp.adb
3690 (Select_Expansion_Utilities): Removed.
3691 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
3692 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
3693 the interface requires a new parameter.
3694 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
3695 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
3696 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
3697 Done to remove package Select_Expansion_Utilities.
3698 (Make_DT): New implementation for statically allocated dispatch tables.
3699 (Make_Secondary_DT): Moved to the scope of Make_DT.
3700 (Register_Primitive): Code cleanup plus incoporate the use of the new
3701 function DT_Address_Attribute.
3702 (Expand_Interface_Thunk): The profile of this subprogram has been
3703 changed to return the Thunk_Id and the corresponding code.
3704 (Fill_DT_Entry): Removed. Its functionality is now provided by
3705 subprogram Register_Primitive.
3706 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
3707 subprogram Register_Primitive.
3708 (Register_Primitive): New subprogram that incorporates the previous
3709 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
3710 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
3711 was only required to call Make_DT_Access_Action, which is now removed.
3712 (Ada_Actions): Removed
3713 (Action_Is_Proc): Removed
3714 (Action_Nb_Arg): Removed
3715 Replace all the calls to Make_DT_Access_Action by direct calls to
3716 Make_Procedure_Call_Statement or Make_Function_Call.
3717 (Set_DTC_Entity_Value): New subprogram.
3718 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
3719 (Expand_Interface_Thunk): Add missing support for primitives that are
3720 functions with a controlling result (case in which there is no need
3721 to generate the thunk).
3722
3723 * exp_atag.ads, exp_atag.adb
3724 (Build_DT): New subprogram that displaces the pointer to reference the
3725 base of the wrapper record.
3726 (Build_Typeinfo_Offset): Removed.
3727 (RTE_Tag_Node): Removed.
3728 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
3729 (Build_Get_RC_Offset): Removed.
3730 (Build_Inherit_Predefined_Prims): Removed.
3731 (Build_Inherit_TSD: Removed.
3732 (Build_New_TSD): Removed.
3733 (Build_Set_External_Tag): Removed.
3734 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
3735 (Build_Set_Prim_Op_Address): Add documentation.
3736 (Build_Set_TSD): Removed.
3737
3738 * rtsfind.ads, rtsfind.adb
3739 (Load_Fail): If load fails and we are not in configurable run-time
3740 mode, then raise Unrecoverable_Error.
3741 (Text_IO_Kludge): Generate an error message if a run-time library is
3742 not available in a given run-time (ie. zfp run-time).
3743 (RTE_Record_Component): Add code to check that the component we search
3744 for is not found in two records in the given run-time package.
3745 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
3746 (RE_DT_Predef_Prims_Offset): New entity
3747 (RE_Static_Offset_To_Top): New entity
3748 (RE_HT_Link): New entity.
3749 (System_Address_Image): Addition of this run-time package.
3750 (RE_Address_Image): New entity.
3751 (RE_Abstract_Interface): Removed.
3752 (RE_Default_Prim_Op_Count): Removed.
3753 (RE_DT_Entry_Size): Removed.
3754 (RE_DT_Min_Prologue_Size): Removed.
3755 (RE_DT_Prologue_Size): Removed.
3756 (RE_Ifaces_Table_Ptr): Removed.
3757 (RE_Interface_Data_Ptr): Removed.
3758 (RE_Type_Specific_Data): Removed.
3759 (RE_Primary_DT): Removed.
3760 (RE_Register_Interface_Tag): Removed.
3761 (RE_Set_Offset_Index): Removed.
3762 (RE_Set_OSD): Removed.
3763 (RE_Set_SSD): Removed.
3764 (RE_Set_Signature): Removed.
3765 (RE_Set_Tagged_Kind): Removed.
3766 (RE_Address_Array): New entity.
3767 (RE_DT): New entity.
3768 (RE_Iface_Tag): New entity.
3769 (RE_Interfaces_Table): New entity.
3770 (RE_No_Dispatch_Table): New entity.
3771 (RE_NDT_Prims_Ptr): New entity.
3772 (RE_NDT_TSD): New entity.
3773 (RE_Num_Prims): New entity.
3774 (RE_Offset_To_Top_Function_Ptr): New entity.
3775 (RE_OSD_Table): New entity.
3776 (RE_OSD_Num_Prims): New entity.
3777 (RE_Predef_Prims): New entity
3778 (RE_Predef_Prims_Table_Ptr): New entity.
3779 (RE_Primary_DT): New entity.
3780 (RE_Signature): New entity.
3781 (RE_SSD): New entity.
3782 (RE_TSD): New entity.
3783 (RE_Type_Specific_Data): New entity.
3784 (RE_Tag_Kind): New entity.
3785
37862007-06-06 Thomas Quinot <quinot@adacore.com>
3787
3788 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
3789 C imported variable.
3790 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
3791 on entry.
3792
37932007-06-06 Robert Dewar <dewar@adacore.com>
3794
3795 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
3796 character
3797
37982007-06-06 Vincent Celier <celier@adacore.com>
3799
3800 * a-tifiio.adb (Put, internal): For negative numbers, check that there
3801 is room for at least one digit and the minus sign.
3802 (Put.Put_Character): Never put a character outside of the range of
3803 string To.
3804
38052007-06-06 Olivier Hainque <hainque@adacore.com>
3806 Eric Botcazou <ebotcazou@adacore.com>
3807
3808 * utils2.c (build_allocator): Provide the extra arguments to
3809 make_aligning_type for super-aligned objects allocated from the default
3810 pool. Leave enough room for a pointer before the aligning field, and
3811 store the system's allocator return value there.
3812 (build_call_alloc_dealloc): When releasing a super-aligned object,
3813 retrieve the system's allocator return value from where build_allocator
3814 has stored it, just ahead of the adjusted address we are passed.
3815 (build_call_raise): Handle properly the generation of line numbers when
3816 the node is marked No_Location.
3817 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
3818 by using DECL_UID on ties.
3819 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
3820 main variant.
3821 (build_call_raise): Handle converting exception into goto; support new
3822 argument KIND.
3823 (build_component_ref): Add new arg to build_call_raise.
3824
38252007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
3826
3827 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
3828 "." in the case of nnn.xxx when nnn terminates with an underscore.
3829 Parse the remaining "#" or ":" in the case of nnn#.xxx#
3830
38312007-06-06 Robert Dewar <dewar@adacore.com>
3832
3833 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
3834
38352007-06-06 Arnaud Charlet <charlet@adacore.com>
3836 Vincent Celier <celier@adacore.com>
3837 Robert Dewar <dewar@adacore.com>
3838
3839 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
3840 needed.
3841 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
3842 ((destructor)) for adafinal, even when switch -a is used.
3843 Do not issue pragma Linker_Destructor for adafinal when switch -a is
3844 used.
3845 (Gen_Object_Files_Options): Add formatting of Linker Options, when
3846 Output_Linker_Option_List is set. Suppress this formatting when
3847 Zero_Formatting is set.
3848 Add case for CLI_Target.
3849 (System_Restrictions_Used): New flag, used to avoid generating with of
3850 System_Restrictions and initialization of the data unless there is
3851 some use of System.Restrictions in the partition.
3852 (Check_System_Restrictions_Used): New procedure
3853
3854 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
3855 since we only with this unit in the binder file if it is used elsewhere
3856 in the partition.
3857
38582007-06-06 Vincent Celier <celier@adacore.com>
3859
3860 * bindusg.adb: Add line for @<response file>
3861 Add lines for new switches -R and -Z
3862
3863 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
3864 hierarchy in the list of files of the closure when -R is used
3865 (Gnatbind): Accept arguments starting with '@' to indicate response
3866 files and take the arguments from the response files.
3867 If List_Closure is set, display the referenced files
3868
38692007-06-06 Javier Miranda <miranda@adacore.com>
3870 Robert Dewar <dewar@adacore.com>
3871 Ed Schonberg <schonberg@adacore.com>
3872
3873 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
3874 which the address-clause is applied to in-mode actuals (allowed by
3875 13.1(22)).
3876 (Apply_Discriminant_Check): Do not generate a check if the type is
3877 constrained by a current instance.
3878 (Activate_Division_Check): New procedure
3879 (Activate_Overflow_Check): New procedure
3880 (Activate_Range_Check): New procedure
3881 Call these new Activate procedures instead of setting flags directly
3882 (Apply_Array_Size_Check): Removed, no longer needed.
3883 Code clean up: remove obsolete code related to GCC 2.
3884 (Get_E_Length): Protect against bomb in case scope is standard
3885 (Selected_Range_Checks): If the node to be checked is a conversion to
3886 an unconstrained array type, and the expression is a slice, use the
3887 bounds of the slice to construct the required constraint checks.
3888 Improve NOT NULL error messages
3889 (Apply_Constraint_Check): If the context is a null-excluding access
3890 type, diagnose properly the literal null.
3891
38922007-06-06 Pascal Obry <obry@adacore.com>
3893
3894 * clean.adb (Clean_Archive): Use untouched casing for the archive name
3895 and the corresponding .deps file.
3896 (Clean_Interface_Copy_Directory): Use untouched casing for the library
3897 src directory. Minor code-clean-up. Use untouched casing for files
3898 read into the library src dir.
3899 (Clean_Library_Directory): Idem.
3900 (Parse_Cmd_Line): Accept new switch -aP
3901
39022007-06-06 Javier Miranda <miranda@adacore.com>
3903 Ed Schonberg <schonberg@adacore.com>
3904 Robert Dewar <dewar@adacore.com>
3905 Eric Botcazou <ebotcazou@adacore.com>
3906 Arnaud Charlet <charlet@adacore.com>
3907
3908 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
3909 applicable to types that have the With_Type flag set. Returns the
3910 non-limited view of the type, if available, otherwise the type itself.
3911 For class-wide types, there is no direct link in the tree, so we have
3912 to retrieve the class-wide type of the non-limited view of the Etype.
3913 New attributes Static_Initialization and Static_Elaboration_Desired.
3914 Remove the pragma Thread_Body, and the associated flag
3915 Is_Thread_Body in entities, and all related code.
3916 (Suppress_Value_Tracking_On_Call): New flag
3917 E_Exception has Esize and Alignment fields
3918 (Universal_Aliasing): New function.
3919 (Set_Universal_Aliasing): New procedure.
3920 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
3921 (Check_Nested_Access): New procedure.
3922 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
3923 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
3924 (Related_Interface): New attribute. Present in dispatch table pointer
3925 components of records. Set to point to the entity of the corresponding
3926 interface type.
3927 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
3928 (Original_Access_Type): Remove, not needed.
3929 (Root_Type): Handle properly subtypes of class-wide-types.
3930 Update comments.
3931
3932 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
3933 class-wide types visible through limited-with clauses.
3934 (Try_Primitive_Operation): When examining all primitive operations of a
3935 tagged type, do not consider subprograms labeled as hidden unless they
3936 belong to a private generic type with a tagged parent.
3937 (Try_Object_Operation): Extensive rewriting, to handle properly various
3938 overloading cases, when several ancestors may have class-wide operations
3939 that are possible candidates, and when the overloaded functions return
3940 array types and have defaulted parameters so that the call may be
3941 interpreted as an indexing.
3942 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
3943 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
3944 successive actuals before analyzing the call itself.
3945 (Try_Primitive_Operation): A primitive operation is compatible with the
3946 prefix if the prefix has a synchronized type and the type of the formal
3947 is its corresponding record, as can be the case when the primitive
3948 operation is declared outside of the body of the type.
3949 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
3950 perform homonym traversal, looking for class-wide operation matches
3951 (formerly done in statements of Try_Class_Wide_Operation). Matches on
3952 access parameters are now restricted to anonymous access types.
3953 (Mark_Allocator): An allocator with a discriminant association parent is
3954 a coextension.
3955 (Try_One_Prefix_Interpretation): If the type of the object is
3956 incomplete, as can be happen when it is a limited view obtained through
3957 a limited_with_clause, the selected component is not part of a prefixed
3958 call.
3959 (Complete_Object_Operation): Diagnose properly an object that is not
3960 aliased when the corresponding controlling formal is an access
3961 parameter.
3962 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
3963 ambiguous calls in prefixed notation, where two primitives differ only
3964 in that the controlling argument of one is an access parameter.
3965
3966 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
3967 whether a function that returns an unconstrained type can be inlined.
3968 (Process_Formals): Diagnose properly the illegal use of an incomplete
3969 type in the profile of an access_to_subprogram declaration.
3970 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
3971 operations are attached to the corresponding record.
3972 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
3973 When processing a primitive of a concurrent type which implements an
3974 interface change the type of all controlling formals to that of the
3975 corresponding record type.
3976 (Check_Synchronized_Overriding): Relax the conditional logic when trying
3977 to determine the tagged type to which a primitive belongs.
3978 (Check_Conventions): Capture condition to ignore a primitive operation
3979 (which is shared between the loop in Check_Conventions and the one in
3980 Check_Convention) in a new local function Skip_Check.
3981 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
3982 confusion with Check_Conventions' own Prim_Op local variable.
3983 (Create_Extra_Formals): Test for a tagged result type rather than a
3984 controlling result when determining whether to add a BIP_Alloc_Form
3985 formal and a BIP_Final_List formal to the function.
3986 (Check_Conformance); For parameters that are anonymous access types,
3987 subtype conformance requires that the not null and the constant
3988 indicators must match
3989 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
3990 to retrieve the appropriate type when processing a concurrent type
3991 declared within a generic. Minor comment reformatting. Change invocation
3992 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
3993 mitive.
3994 (Analyze_Subprogram_Body): If the return type of a function is an
3995 anonymous access to the limited view of a class-wide type, and the
3996 non-limited view of the type is available, update the type of the
3997 function so that code can be generated.
3998 (Process_Formals): In case of access-subtype itype whose designated
3999 type is also an itype (situation that happens now with access to
4000 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
4001 attribute to avoid backend problems.
4002 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
4003 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
4004 anonymous types' designated types are same before testing
4005 Subtypes_Statically_Match.
4006 (Create_Extra_Formals): Test for a named access parameter that is a
4007 controlling formal as an additional condition for adding an
4008 accessibility level formal. This can occur in the subp type created for
4009 dispatching calls in Expand_Dispatching_Call, and allows calling
4010 Create_Extra_Formals from that procedure rather than special-casing the
4011 extra formals there.
4012 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
4013 when the function has a controlling result.
4014 (Check_Returns): Add much more knowledge of the optimization of local
4015 raise statements to gotos, to retain proper warnings in this case.
4016 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
4017 nodes when looking for last statement.
4018
4019 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
4020 class-wide types visible through limited with clauses.
4021 (Add_One_Interp): If the operands are anonymous access types, the
4022 predefined operator on universal_access is immediately visibles
4023 (Find_Unique_Type): Handle anonymous access to subprogram types just as
4024 other anonymous access types.
4025 (Disambiguate): Take into account CIL convention.
4026 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
4027
40282007-06-06 Robert Dewar <dewar@adacore.com>
4029
4030 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
4031 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
4032 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
4033 Fix lower bound of tables.
4034 Add rep clauses.
4035
4036 * nlists.adb: Ditto.
4037 (Prev_Node, Next_Node): Change index type to Int so that it properly
4038 covers the range First_Node_Id - 1 up.
4039
40402007-06-06 Javier Miranda <miranda@adacore.com>
4041 Ed Schonberg <schonberg@adacore.com>
4042 Bob Duff <duff@adacore.com>
4043 Hristian Kirtchev <kirtchev@adacore.com>
4044
4045 * exp_aggr.ads, exp_aggr.adb:
4046 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
4047 in extension aggregates.
4048 (Flatten): Other conditions being met, an aggregate is static if the
4049 low bound given by component associations is different from the low
4050 bound of the base index type.
4051 (Packed_Array_Aggregate_Handled): If the component type is itself a
4052 packed array or record, the front-end must expand into assignments.
4053 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
4054 Init_Pr, instead of Ancestor_Is_Expression.
4055 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
4056 coextension chain root, either generate a list controller or use the
4057 already existing one.
4058 (Static_Array_Aggregate): New procedure to construct a positional
4059 aggregate that can be handled by the backend, when all bounds and
4060 components are compile-time known constants.
4061 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
4062 types covering interface types into assignments.
4063 (Replace_Type): move to Build_Record_Aggr_Code.
4064 (Expand_Record_Aggr_Code): if the target of the aggregate is an
4065 interface type, convert to the definite type of the aggregate itself,
4066 so that needed components are visible.
4067 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
4068 components and the context is an extended return statement do not
4069 create a transient block for it, to prevent premature finalization
4070 before the return is executed.
4071 (Gen_Assign): Do not generate a call to deep adjust routine if the
4072 component type is itself an array of controlled (sub)-components
4073 initialized with an inner aggregate.
4074 (Component_Check): New name for Static_Check. This name is now more
4075 appropriate, and documentation is added which was missing.
4076 (Component_Check): Add test for bit aligned component value
4077 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
4078 Tagged_Comps, name is more appropriate given added function below.
4079 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
4080
40812007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
4082 Javier Miranda <miranda@adacore.com>
4083 Robert Dewar <dewar@adacore.com>
4084
4085 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
4086 Terminated: Add unchecked type conversion from System.Address to
4087 System.Tasking.Task_Id when calling the predefined primitive
4088 _disp_get_task_id.
4089 Disable new Ada 05 accessibility check for JVM.NET targets, which
4090 cannot be implemented in a practical way.
4091 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
4092 the sources always references the tag of the actual object. Therefore,
4093 if 'Tag is applied in the sources to class-wide interface objects we
4094 generate code that displaces "this" to reference the base of the object.
4095 (Expand_N_Attribute_Reference, case Size): Return specified size if
4096 known to front end.
4097 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
4098 has code that displaces the pointer of the object to manage interface
4099 types. However this code must not be executed when the prefix is a
4100 subprogram. This bug caused the wrong expansion of the internally
4101 generated assignment that fills the dispatch table when the primitive
4102 is a function returning a class-wide interface type.
4103 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
4104 Set_Attribute_Name for Name_Unaligned_Valid.
4105
41062007-06-06 Ed Schonberg <schonberg@adacore.com>
4107 Gary Dismukes <dismukes@adacore.com>
4108
4109 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
4110 If the initialization is the equivalent aggregate of the initialization
4111 procedure of the type, do not remove it.
4112 (Expand_N_Attribute_Definition_Clause): Exclude access variables
4113 initialized to null from having their expression reset to empty and
4114 note this exception in the comment.
4115
41162007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
4117 Robert Dewar <dewar@adacore.com>
4118 Ed Schonberg <schonberg@adacore.com>
4119 Gary Dismukes <dismukes@adacore.com>
4120
4121 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
4122 Add "with" and "use" clauses for Sem_Attr.
4123 (Expand_Current_Value): Do not replace occurences of attribute
4124 references where the prefix must be a simple name.
4125
4126 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
4127 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
4128 Attribute_Requires_Simple_Name_Prefix.
4129 (Name_Modifies_Prefix): Body of new function.
4130 (Requires_Simple_Name_Prefix): Body of new function.
4131 (Resolve_Attribute, case Access): Improve error message for case of
4132 mismatched conventions.
4133 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
4134 incomplete type.
4135 (Analyze_Attribute, case 'Access): If the type of the prefix is a
4136 constrained subtype for a nominal unconstrained type, use its base type
4137 to check for conformance with the context.
4138 (Resolve_Attribute): Remove test of the access type being associated
4139 with a return statement from condition for performing accessibility
4140 checks on access attributes, since this case is now captured by
4141 Is_Local_Anonymous_Access.
4142 (Analyze_Access_Attribute): Set Address_Taken on entity
4143 (Analyze_Attribute, case Address): Set Address_Taken on entity
4144 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
4145 validating an access attribute whose prefix is a current instance.
4146 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
4147 applied to dispatching operations, if freezing is required then we set
4148 the attribute Has_Delayed_Freeze in the prefix's entity.
4149 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
4150 current scope if access of local subprogram taken
4151 (Analyze_Access_Attribute): Check legality of self-reference even if the
4152 expression comes from source, as when a single component association in
4153 an aggregate has a box association.
4154 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
4155 the prefix if it is a protected operation and the attribute is
4156 Unrestricted_Access.
4157 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
4158 reference to the base type of the context, to force a constraint check
4159 when the context is an access subtype with an explicit constraint.
4160 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
4161 node is rewritten as an interface conversion. leave unanalyzed after
4162 resolution, to ensure that type checking against the context will take
4163 place.
4164
41652007-06-06 Ed Schonberg <schonberg@adacore.com>
4166 Javier Miranda <miranda@adacore.com>
4167 Robert Dewar <dewar@adacore.com>
4168
4169 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
4170 wrapper when the full view of the controlling type of an inherited
4171 function that dispatches on result implements interfaces.
4172 (Expand_N_Object_Declaration): In cases where the type of the
4173 declaration is anonymous access, create finalization list for it.
4174 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
4175 if the object has no explicit initialization, to match description of
4176 functionality of pragam Persistent_BSS.
4177 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
4178 new function to build static aggregates, to replace initialization call
4179 when static initialization is desired.
4180 (Freeze_Type): Generate a list controller for an access type whenever
4181 its designated type has controlled anonymous access discriminants.
4182 (Build_Equivalent_Aggregate): New procedure to compute a static
4183 aggregate to be used as default initialization for composite types,
4184 instead of a generating a call to the initialization procedure for the
4185 type.
4186 (Build_Initialization_Call): When available, replace a call to the
4187 initialization procedure with a copy of the equivalent static aggregate
4188 for the type.
4189 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
4190 declarations for objects of a class-wide interface type, rather than
4191 just identifiers, to prevent visibility problems.
4192 (Expand_N_Object_Declaration): When expanding the declaration for an
4193 object of a class-wide interface type, preserve the homonym chain of
4194 the original entity before exchanging it with that of the generated
4195 renaming declaration.
4196 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
4197 active, because there is no way to handle the exception.
4198 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
4199 to do a minimum decoration of the Access_Disp_Table list.
4200 (Expand_Record_Controller): Avoid the addition of the controller between
4201 the component containing the tag of a secondary dispatch table and its
4202 adjacent component that stores the offset to the base of the object.
4203 This latter component is only generated when the parent type has
4204 discriminants ---documented in Add_Interface_Tag_Components).
4205 (Apply_Array_Size_Check): Removed, no longer needed.
4206 (Expand_N_Full_Type_Declaration): If the type has anonymous access
4207 components, create a Master_Entity for it only if it contains tasks.
4208 (Build_Init_Procedure): Suppress the tag assignment compiling under
4209 no run-time mode.
4210 (Freeze_Record_Type): Remove code associated with creation of dispatch
4211 table.
4212 (Init_Secondary_Tags): Update type of actuals when generating calls to
4213 Ada.Tags.Set_Offset_To_Top
4214 (Stream_Operation_OK): Disable use of streams compiling under no
4215 run-time mode
4216 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
4217 if Has_Init_Expression set.
4218 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
4219 Register_Primitive, which provides the same functionality.
4220 (Requires_Init_Proc): Return false in case of interface types.
4221 (Add_Secondary_Tables): Use the new attribute Related_Interface to
4222 cleanup the code.
4223 (Predefined_Primitive_Freeze): Do not assume that an internal entity
4224 is always associated with a predefined primitive because the internal
4225 entities associated with interface types are not predefined primitives.
4226 Therefore, the call to Is_Internal is replaced by a call to the
4227 function Is_Predefined_Dispatching_Operation.
4228 (Make_Eq_If): When generating the list of comparisons for the
4229 components of a given variant, omit the controller component that is
4230 present if the variant has controlled components.
4231
42322007-06-06 Javier Miranda <miranda@adacore.com>
4233 Hristian Kirtchev <kirtchev@adacore.com>
4234 Bob Duff <duff@adacore.com>
4235
4236 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
4237 handle the creation of finalization lists and calls for nested
4238 coextensions when the root of the chains is part of a return statement.
4239 (Inside_A_Return_Statement): New function inside Complete_Coextension_
4240 Finalization.
4241 (Expand_Record_Equality): Skip components that are interface types.
4242 (Displace_Allocator_Pointer): Add missing support for interface subtypes
4243 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
4244 with Rewrite_Coextension. Change the condition for detecting coextension
4245 root nodes.
4246 (Is_Local_Access_Discriminant): Removed.
4247 (Rewrite_Coextension): New routine which rewrites a static coextension
4248 as a temporary and uses its unrestricted access in the construction of
4249 the outer object.
4250 (Complete_Coextension_Finalization): New routine. Generate finalization
4251 attachment calls to all delayed coextensions.
4252 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
4253 the allocator is not a coextension itself and has delayed coextensions.
4254 If the current allocator is controlled, but also a coextension, delay
4255 the generation of the finalization attachment call.
4256 Rename local variable "Node" to "Nod" in order to avoid confusion with
4257 "Elists.Node".
4258 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
4259 limited types that are not inherently limited. Such an allocator is
4260 illegal, but is generated by the expander for a return statement, to
4261 copy the result onto the secondary stack. This is the only case where a
4262 limited object can be copied. Generate code to displace the pointer
4263 to the object if the qualified expression is a class-wide interface
4264 object. Such displacement was missing and hence the copy of the object
4265 was wrong.
4266 (Apply_Accessibility_Check): Handle allocated objects initialized in
4267 place.
4268 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
4269 and Expand_Allocator_Expression. Allocating class-wide interface objects
4270 this routine displaces the pointer to the allocated object to reference
4271 the component referencing the corresponding secondary dispatch table.
4272 Expand_Allocator_Expression): Add missing support to allocate class-wide
4273 interface objects initialized with a qualified expression.
4274 (Get_Allocator_Final_List): Test for an anonymous access type that is a
4275 function result type, and use the finalization list associated with the
4276 function scope in that case (such an anonymous type should not be
4277 treated like an access parameter's type).
4278
42792007-06-06 Ed Schonberg <schonberg@adacore.com>
4280 Gary Dismukes <dismukes@adacore.com>
4281 Javier Miranda <miranda@adacore.com>
4282
4283 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
4284 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
4285 required exception handler.
4286 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
4287 properly the case of a function whose return type is a limited
4288 class-wide interface type. Modify the code of the accessibility
4289 check to handle class-wide interface objects. In this case we need to
4290 displace "this" to reference the primary dispatch table to get access
4291 to the TSD of the object (to evaluate its accessibility level).
4292 (Expand_N_Extended_Return_Statement): Test for a tagged result type
4293 rather than a controlling result as one of the conditions for
4294 generating tests of the implicit BIP_Alloc_Form formal. The
4295 initialization assignment is also handled according to whether the
4296 result is tagged instead of controlling.
4297 In the case where the init assignment is inserted in the "then" part of
4298 the allocation conditional, rewrite the target to be a dereference of
4299 the implicit BIP_Object_Access formal.
4300 If the returned value is unconstrained and created on the secondary
4301 stack, mark the enclosing block and function so that the secondary
4302 stack is not reclaimed on return.
4303 Treat returns from functions with controlling results similarly to
4304 returns from functions with unconstrained result subtypes.
4305 If the object returned is unconstrained, and an allocator must be
4306 created for it, analyze the allocator once the block for the extended
4307 return is installed, to ensure that finalizable components
4308 of the expression use the proper finalization list. Guard the call to
4309 Move_Final_List with a check that there is something to finalize.
4310 (Make_Tag_Ctrl_Assignment): Use "old" handling
4311 of controlled type assignment for virtual machines, since new code uses
4312 unsupported features (such as direct access to bytes in memory).
4313
43142007-06-06 Gary Dismukes <dismukes@adacore.com>
4315 Ed Schonberg <schonberg@adacore.com>
4316
4317 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
4318 accessibility actual, check for the case of an aliased object that has
4319 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
4320 we fall into processing for the attribute rather than the name of the
4321 object.
4322 (Expand_Inline_Call): If an actual is a literal, and the corresponding
4323 formal has its address taken in the body, create a temporary to capture
4324 value. If the return type is a limited interface, do not treat the
4325 return value as Controlled.
4326 (Is_In_Place_Function): If the return type is a limited interface,
4327 treat as returning in place. The actual returned object may not always
4328 be limited, but the caller has to assume that it is returned in place.
4329 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
4330 context of an allocator, use the correct finalization chain (that is,
4331 the chain belonging to the access type, rather than the chain belonging
4332 to the current scope).
4333 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
4334 result type rather than a controlling result as a precondition for
4335 adding an allocation form actual to a build-in-place call.
4336 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
4337 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
4338 primitive in the dispatch tables. This work is now done by Make_DT when
4339 the type is frozen.
4340 (Register_Predefined_DT_Entry): Removed.
4341 (Add_Return): If end label is not present, use sloc of last statement
4342 for generated return statement in procedure, for better gdb behavior
4343 on expanded code.
4344 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
4345 object address nodes to ensure proper processing by routines like
4346 Insert_After*.
4347 (Expand_Call): Fix generation of validity check for parameter
4348 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
4349 the allocation form parameter if the result subtype is constrained,
4350 except when the function has a controlling result.
4351 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
4352 rather than Is_Controlled and Has_Controlled_Component, since we want to
4353 include class-wide result types in this treatment. Also test for a
4354 controlling result, since that also requires passing a finalization
4355 list.
4356 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
4357 even when the result subtype is constrained, to handle calls involving
4358 controlling results.
4359 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
4360 is now called even when the result subtype is constrained, to handle
4361 calls involving controlling results.
4362 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
4363 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
4364 now performs the test).
4365 (Make_Build_In_Place_Call_In_Object_Declaration):
4366 Add_Alloc_Form_Actual_* is now called even when the result subtype is
4367 constrained, to handle calls involving controlling results.
4368 (Add_Return): Accomodate rewritten pattern from local raise to goto
4369 transformation, so that we still recognize an transfer statement
4370 and do the right thing here in that case.
4371 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
4372 and end of subprogram code.
4373 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
4374 support for primitives that are functions (without formals) with a
4375 controlling result.
4376 (Inherited_From_Formal): If the actual subtype has not generic parent
4377 type, it is not an actual for a formal derived type, and there is no
4378 operation to inherit from the formal.
4379
43802007-06-06 Ed Schonberg <schonberg@adacore.com>
4381 Thomas Quinot <quinot@adacore.com>
4382
4383 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
4384 inserted cleanup code appropriately for GDB use.
4385 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
4386 exception handler for Deep_Adjust or Deep_Finalize.
4387 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
4388 Raise_From_Controlled_Operation is available, use a call to that
4389 subprogram instead of a plain "raise Program_Error" node to raise
4390 Program_Error if an exception is propagated from an Adjust or Finalize
4391 operation.
4392 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
4393 appears in the optional statement list of a triggering alternative, the
4394 scope actions can be inserted directly there, and not in the list that
4395 includes the asynchronous select itself.
4396
43972007-06-06 Ed Schonberg <schonberg@adacore.com>
4398 Robert Dewar <dewar@adacore.com>
4399 Hristian Kirtchev <kirtchev@adacore.com>
4400
4401 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
4402 generated exception handler appropriately when debugging generated code.
4403 Deal properly with No_Exception_Propagation restriction mode.
4404 (Expand_N_Abort_Statement): Add an unchecked type conversion from
4405 System.Address to System.Tasking.Task_Id when processing the result of
4406 the predefined primitive _disp_get_task_id.
4407 (Expand_N_Asynchronous_Select): Clarify comment.
4408 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
4409 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
4410 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
4411 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
4412 privals and for generated call to Complete_Entry_Body, for better gdb
4413 behavior.
4414 (Copy_Result_Type): Utility to construct a parameter and result profile
4415 for protected functions whose return type is an anonymous access to
4416 subprogram.
4417 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
4418 call the above.
4419 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
4420 point when the local-raise-to-goto transformation has taken place.
4421
44222007-06-06 Javier Miranda <miranda@adacore.com>
4423 Nicolas Setton <setton@adacore.com>
4424
4425 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
4426 functionality when the backend is generating code.
4427 Otherwise any serious error
4428 reported by the backend calling the frontend routine Error_Msg
4429 changes the Compilation_Mode to Check_Semantics, disables the
4430 functionality of this routine and causes the generation of
4431 spureous additional errors.
4432
4433 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
4434 debugging information now generated by the compiler for fat-pointer
4435 types.
4436 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
4437 DWARF2/3.
4438 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
4439
44402007-06-06 Thomas Quinot <quinot@adacore.com>
4441
4442 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
4443 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
4444 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
4445 For a remote call to a function with a classwide return type, apply an
4446 E.4(18) check to the returned value.
4447 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
4448 stream attributes of the designated type of an RACW, as they are not
4449 dispatching primitive operations.
4450
44512007-06-06 Geert Bosch <bosch@adacore.com>
4452
4453 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
4454 negative literal
4455 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
4456 positive
4457 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
4458 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
4459 positive
4460 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
4461
44622007-06-06 Javier Miranda <miranda@adacore.com>
4463
4464 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
4465 attribute compiling package Ada.Tags under No_Run_Time_Mode.
4466
44672007-06-06 Javier Miranda <miranda@adacore.com>
4468
4469 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
4470 deallocation of class-wide interface objects.
4471 (Expand_Dispatching_Constructor_Call): Take into account that if the
4472 result of the dispatching constructor is an interface type, the
4473 function returns a class-wide interface type; otherwise the returned
4474 object would be actual. The frontend previously accepted returning
4475 interface types because Expand_Interface_Actuals silently performed
4476 the management of the returned type "as if" it were a class-wide
4477 interface type.
4478 (Expand_Dispatching_Constructor_Call): Replace call to
4479 Make_DT_Access_Action by direct call to Make_Function_Call.
4480
44812007-06-06 Robert Dewar <dewar@adacore.com>
4482 Ed Schonberg <schonberg@adacore.com>
4483
4484 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
4485 compute masking constant, since we now set Esize properly to the
4486 underlying size.
4487 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
4488 to match the alignment.
4489 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
4490 packed arrays of 8 bits or less.
4491
4492 * freeze.adb (Freeze_Entity): When freezing the formals of a
4493 subprogram, freeze the designated type of a parameter of an access type
4494 only if it is an access parameter.
4495 Increase size of C convention enumeration object
4496 (Freeze_Entity, array type case): Make sure Esize value is properly
4497 adjusted for the alignment if it is known.
4498 (Freeze_Entity, array type case): When checking bit packed arrays for
4499 the size being incorrect, check RM_Size, not Esize.
4500 (Freeze_Record_Type): Check for bad discriminated record convention
4501 (In_Exp_Body): Return true if the body is generated for a subprogram
4502 renaming, either an attribute renaming or a renaming as body.
4503 (Check_Itype): If the designated type of an anonymous access component
4504 is a non-protected subprogram type, indicate that it is frozen, to
4505 prevent out-of-scope freeze node at some subsequent call.
4506 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
4507 only if the subprogram is neither imported nor exported, as well as the
4508 NCA descriptor class if the subprogram is exported.
4509
45102007-06-06 Ed Schonberg <schonberg@adacore.com>
4511 Arnaud Charlet <charlet@adacore.com>
4512 Robert Dewar <dewar@adacore.com>
4513 Gary Dismukes <dismukes@adacore.com>
4514
4515 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
4516 default initialization on an imported object, when there is no
4517 initialization call generated for it.
4518 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
4519 restriction
4520
4521 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
4522 Static_Elaboration_Desired.
4523 Remove pragma Thread_Body.
4524 Implement a new pragma No_Body
4525 Removes the Explicit_Overriding pragma
4526 Remove Optional_Overriding pragma
4527 (Prag): Deal with Universal_Aliasing.
4528 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
4529 Pragma_CIL_Constructor): New names.
4530
4531 * sem_cat.adb (Validate_Object_Declaration): An initialization that
4532 uses the equivalent aggregate of a type must be treated as an implicit
4533 initialization.
4534 (Get_Categorization): Check a unit for pragma Preelaborate only if it
4535 has none of the other categories.
4536 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
4537 to apply Import to an object renaming declaration.
4538
4539 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
4540 from a C++ class should be declared as limited and that it will be
4541 considererd limited.
4542 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
4543 should be declared as limited and that it will be considererd limited.
4544 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
4545 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
4546 (Analyze_Pragma): Deal with Universal_Aliasing.
4547 (Sig_Flags): Likewise.
4548 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
4549 (Overflow_Checks_Unsuppressed): New flag.
4550 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4551 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
4552 case of JVM or .NET targets, and compiling user code.
4553 Add debugging convenience routine rv
4554
45552007-06-06 Robert Dewar <dewar@adacore.com>
4556
4557 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
4558 are interface type.
4559 (Build_Elementary_Input_Call): For floating-point use right type in the
4560 absence of strange size or stream size clauses.
4561 (Build_Elementary_Write_Call): Same fix
4562 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
4563 set to value that does not match base type size.
4564
45652007-06-06 Ed Schonberg <schonberg@adacore.com>
4566
4567 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
4568 object of a limited type can be initialized with a call to a function
4569 that returns in place. If the limited type has unknown discriminants,
4570 and the underlying type is a constrained composite type, build an actual
4571 subtype from the function call, as is done for private types.
4572 (Side_Effect_Free): An expression that is the renaming of an object or
4573 whose prefix is the renaming of a object, is not side-effect free
4574 because it may be assigned through the renaming and its value must be
4575 captured in a temporary.
4576 (Has_Controlled_Coextensions): New routine.
4577 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
4578 as is done for other limited types.
4579 (Non_Limited_Designated_Type): new predicate.
4580 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
4581 objects.
4582 Remove all handling of with_type clauses.
4583
4584 * par-ch10.adb: Remove all handling of with_type clauses.
4585
4586 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
4587 checksum if the main source could not be parsed.
4588 (Loat_Unit): When processing a child unit, determine properly whether
4589 the parent unit is a renaming when the parent is itself a child unit.
4590 Remove handling of with_type clauses.
4591
4592 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
4593 (Set_Is_Static_Coextension): New procedure.
4594 (Has_Local_Raise): New function
4595 (Set_Has_Local_Raise): New procedure
4596 (Renaming_Exception): New field
4597 (Has_Init_Expression): New flag
4598 (Delay_Finalize_Attach): Remove because flag is obsolete.
4599 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
4600 Remove all handling of with_type clauses.
4601 (Exception_Junk): Can now be set in N_Block_Statement
4602
46032007-06-06 Vincent Celier <celier@adacore.com>
4604 Robert Dewar <dewar@adacore.com>
4605
4606 * frontend.adb (Frontend): Return immediately if the main source could
4607 not be parsed, because of preprocessing errors.
4608
4609 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
4610 (Gnat1drv): Exit with errors if the main source could not be parsed,
4611 because of preprocessing errors.
4612 (Check_Rep_Info): New procedure
4613
46142007-06-06 Robert Dewar <dewar@adacore.com>
4615
4616 * g-hesorg.ads, g-heasor.ads,
4617 g-busorg.ads, g-bubsor.ads: Update documentation
4618 GNAT.Heap/Bubble_Sort_G is now pure
4619
46202007-06-06 Robert Dewar <dewar@adacore.com>
4621
4622 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
4623
46242007-06-06 Robert Dewar <dewar@adacore.com>
4625 Ed Schonberg <schonberg@adacore.com>
4626
4627 * g-comlin.ads, g-comlin.adb:
4628 Add new warning for renaming of function return objects
4629
4630 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
4631 (Tree_Read): Use size of object instead of type'object_size, since the
4632 latter is incorrect for packed array types.
4633 (Tree_Write): Same fix
4634
4635 * opt.ads: Add new warning for renaming of function return objects
4636 (Generating_Code): New boolean variable used to indicate that the
4637 frontend as finished its work and has called the backend to process
4638 the tree and generate the object file.
4639 (GCC_Version): Is now private
4640 (Static_Dispatch_Tables): New constant declaration.
4641 (Overflow_Checks_Unsuppressed): New flag.
4642 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4643 (List_Closure): New flag for gnatbind (-R)
4644 Zero_Formatting: New flag for gnatbind (-Z)
4645 (Special_Exception_Package_Used): New flag.
4646 (Warn_On_Unrepped_Components): New flag.
4647
4648 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
4649 unit is a compilation unit, rather than relying on its scope, so that
4650 Standard can be renamed.
4651 (Analyze_Object_Renaming): Add new warning for renaming of function
4652 return objects.
4653 Also reject attempt to rename function return object in Ada 83 mode.
4654 (Attribute_Renaming): In case of tagged types, add the body of the
4655 generated function to the freezing actions of the type.
4656 (Find_Type): A protected type is visible right after the reserved word
4657 "is" is encountered in its type declaration. Set the entity and type
4658 rather than emitting an error message.
4659 (New_Scope): Properly propagate Discard_Names to inner scopes
4660 (Check_Nested_Access): New procedure.
4661 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
4662 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
4663
4664 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
4665 Add new warning for renaming of function return objects
4666 (Check_References): Suppress warnings for objects whose type or
4667 base type has Warnings suppressed.
4668 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
4669 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
4670
46712007-06-06 Vincent Celier <celier@adacore.com>
4672 Emmanuel Briot <briot@adacore.com>
4673 Olivier Hainque <hainque@adacore.com>
4674
4675 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
4676 absolute value of Header.Block_Size when displaying the freed physical
4677 memory in traces.
4678 (Allocate): Compute Storage_Address using Integer_Address, not
4679 Storage_Offset, because the range of Storage_Offset may not be large
4680 enough.
4681 (Configure): New parameter Low_Level_Traces
4682 (Allocate, Deallocation, Free_Physically): Added low-level traces
4683 (Configure): new parameter Errors_To_Stdout.
4684 (Output_File): new subprogram
4685 (Deallocate, Dereference): Send error messages to the proper stream
4686 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
4687 documented. Previous code would send it to the current output file
4688 defined in GNAT.IO, which might not be stdout
4689 (Is_Valid): Adjust comment to mention that a positive reply means that
4690 Header_Of may be used to retrieve the allocation header associated with
4691 the subprogram Storage address argument. Return False early if this
4692 address argument is misaligned.
4693
46942007-06-06 Vincent Celier <celier@adacore.com>
4695
4696 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
4697 switch -P
4698 (ASIS_Main): New global variable
4699 (Get_Closure): New procedure
4700 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
4701 check, metric or pretty. Call Get_Closure in this case.
4702 (Check_Files): For GNAT LIST, check all sources of all projects when
4703 All_Projects is True.
4704 (GNATCmd): Accept -U for GNAT LIST
4705
47062007-06-06 Vincent Celier <celier@adacore.com>
4707
4708 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
4709 has been specified
4710 Correct error message when invocation of the linker fails
4711 Add explicit size clause for the C imported variables
4712 Object_List_File_Supported and Using_GNU_Linker to emphasize that
4713 we expect char size.
4714 Read target parameters earlier, since this is needed to set
4715 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
4716 targets.
4717
47182007-06-06 Vincent Celier <celier@adacore.com>
4719
4720 * gnatls.adb:
4721 Add 3 spaces before the default project directory when displaying
4722 the project search path.
4723 Add new command line switch '-l' to display license information.
4724
47252007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
4726
4727 * gmem.c: Add support for timestamps on memory operations.
4728
4729 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
4730 operations (not used currently, just foundation for future
4731 enhancements). Add possibility to perform full dump of gmem.out file.
4732 (Print_Back_Traces): Declare accesses to root arrays constants since
4733 they aren't modified.
4734 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
4735
47362007-06-06 Vincent Celier <celier@adacore.com>
4737
4738 * gnatsym.adb: Update Copyright notice
4739 (Parse_Cmd_Line): Accept new switch -D
4740 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
4741 file.
4742
4743 * prj.ads (Policy): New policy Direct
4744 (Yes_No_Unknown): New enumeration type
4745 (Project_Data): New component Libgnarl_Needed
4746
4747 * prj-nmsc.adb (Check_For_Source): When recording a source file make
4748 use the untouched pathname casing.
4749 (Get_Directories): Ensure that the Display_Exec_Directory is using the
4750 proper casing on non case-sensitive platforms like Windows.
4751 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
4752 on all platforms, as it is not possible to know which one is allowed
4753 before processing the project files.
4754 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
4755 specified when symbol policy is Direct. Check that when there is a
4756 symbol file defined (either by default or with attribute
4757 Library_Symbol_File) it is not the same as the reference symbol file.
4758 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
4759 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
4760 extending projects.
4761 (Record_Ada_Source): Record a source that has been locally removed in an
4762 imported project.
4763
4764 * symbols.ads (Policy): New policy Direct
4765
4766 * symbols-vms.adb (Initialize): Take new policy Direct in case
4767 statement
4768
47692007-06-06 Vincent Celier <celier@adacore.com>
4770
4771 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
4772 Correct obvious bug (return Dir; instead of return Directory;).
4773 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
4774
47752007-06-06 Thomas Quinot <quinot@adacore.com>
4776
4777 * g-pehage.adb (Produce): Open output files in Binary mode, so that
4778 they have UNIX line endings (LF only) even on Windows, and thus pass
4779 all GNAT style checks.
4780
47812007-06-06 Emmanuel Briot <briot@adacore.com>
4782
4783 * g-regpat.adb (Quote): Fix improper quoting of '.'
4784
47852007-06-06 Thomas Quinot <quinot@adacore.com>
4786
4787 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
4788 default, set False on a per-runtime basis.
4789 (Need_Netdb_Buffer): New constant.
4790
4791 * g-socket.ads, g-socket.adb: Import new package
4792 GNAT.Sockets.Thin.Task_Safe_NetDB.
4793 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
4794 binding to obtain proper message.
4795 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
4796 Replace various occurrences of Arry (Arry'First)'Address with the
4797 equivalent Arry'Address (GNAT always follows implementation advice from
4798 13.3(14)).
4799 (Get_Host_By_Address, Get_Host_By_Name,
4800 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
4801 instead, rely on platform-specific task safe netdb operations provided
4802 by g-socthi.
4803
4804 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
4805 parameter Process_Blocking_IO.
4806 (Host_Error_Messages): Add stub body.
4807 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4808 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
4809 Safe_Getservbyport): Move functions into new child package
4810 Task_Safe_NetDB.
4811 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
4812 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
4813 (In_Addr): Add alignment clause.
4814
48152007-06-06 Robert Dewar <dewar@adacore.com>
4816
4817 * g-trasym.ads, g-traceb.ads: Update list of supported targets
4818 Add note about symbolic traceback
4819
48202007-06-06 Pascal Obry <obry@adacore.com>
4821
4822 * hostparm.ads (Normalized_CWD): Use the host directory separator
4823 instead of the hardcoded forward slash which is not the proper
4824 character on Windows for example.
4825 (Java_VM): Removed.
4826
48272007-06-06 Vincent Celier <celier@adacore.com>
4828 Arnaud Charlet <charlet@adacore.com>
4829
4830 * a-clrefi.adb, a-clrefi.ads: New files
4831
4832 * impunit.adb: Add s-os_lib in the list of user visible units.
4833 (Non_Imp_File_Names_95): Add a-clrefi to this list
4834 Remove obsolete run-time entries.
4835 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
4836 "a-exetim" -- Ada.Execution_Time
4837 "a-extiti" -- Ada.Execution_Time.Timers
4838
4839 * mlib-prj.ads, mlib-prj.adb
4840 (Build_Library): Use untouched object dir and library dir. At the
4841 same time makes sure that the checks are done using the canonical
4842 form. Removes hard-coded directory separator and use the proper host
4843 one instead.
4844 (Process_Project): Do not look in object directory to check if libgnarl
4845 is needed for a library, if there is no object directory.
4846 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
4847 linking.
4848 (Build_Library): When invoking gnatbind, use a response file if the
4849 total size of the arguments is too large.
4850
4851 * Makefile.rtl: (g-sttsne): New object file.
4852 Add entry for a-clrefi, s-utf_32, System.Exceptions
4853
4854 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
4855 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
4856 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
4857 Change g-string to s-string, g-os_lib to s-os_lib
4858 Change all g-utf_32 references to s-utf_32
4859
48602007-06-06 Tristan Gingold <gingold@adacore.com>
4861 Olivier Hainque <hainque@adacore.com>
4862
4863 * init.c: Do not adjust IP of an imported VMS exception of ia64.
4864 LIB$STOP is called to raise an exception and the IP of the exception
4865 is the instruction right after the call.
4866 (__gnat_adjust_context_for_raise, AIX): Implement.
4867 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
4868 adjust_context_for_raise before Raise_From_Signal_Hanler.
4869 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
4870 siginfo is passed to the handler, necessary to let the zcx propagation
4871 engine unwind past it.
4872
48732007-06-06 Olivier Hainque <hainque@adacore.com>
4874
4875 * initialize.c (__gnat_initialize for vxworks): Update documentation
4876 on the ZCX support, using different sets of crtstuff objects than with
4877 GCC 3.4.
4878
48792007-06-06 Robert Dewar <dewar@adacore.com>
4880
4881 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
4882 spec from body
4883 (Layout_Type): Fix recomputation of size from alignment.
4884
48852007-06-06 Ed Schonberg <schonberg@adacore.com>
4886 Javier Miranda <miranda@adacore.com>
4887
4888 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
4889 association in an instance.
4890 (Copy_Generic_Node): If the node is a string literal, no need to copy
4891 its descendants.
4892 (Is_Generic_Formal): For a formal subprogram, the declaration is the
4893 grandparent of the entity.
4894 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
4895 to simplify handling of formal interfaces that derive from other formal
4896 interfaces.
4897 (Instantiate_Subprogram_Body): The defining unit name of the body of
4898 the instance should be a defining identifier.
4899 (Install_Formal_Packages): make global to the package, for use in
4900 instantiations of child units.
4901 (Analyze_Package_Instantiation): Do not attempt to set information on an
4902 enclosing master of an entry when expansion is disabled.
4903 (Instantiate_Type): If the actual is a tagged synchronized type and the
4904 generic ancestor is an interface, create a generic actual for the
4905 corresponding record.
4906 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
4907 declaration, to ensure that the interface list is processed correctly.
4908 (Inline_Instance_Body): If enclosing scope is an instance body, remove
4909 its entities from visibiility as well.
4910 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
4911 given with a named association, analyze the expression only, not the
4912 discriminant association itself.
4913 (Reset_Entity): If the analysis of a selected component is transformed
4914 into an expanded name in the prefix of a call with parameters, do not
4915 transform the original node into an expanded name, to prevent visibility
4916 errors in the case of nested generics.
4917 (Check_Private_View): For an array type, check whether the index types
4918 may need exchanging.
4919
49202007-06-06 Arnaud Charlet <charlet@adacore.com>
4921 Vincent Celier <celier@adacore.com>
4922
4923 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
4924 since both are separated.
4925 Add support for imported CIL packages.
4926 Add further special handling of "value_type" for CIL.
4927 Add special handling of pragma Import for CIL.
4928
4929 * make.ads, make.adb: When switch -eS is used, direct all outputs to
4930 standard output instead of standard error, except errors.
4931 (Absolute_Path): Use untouched casing for the parent directory.
4932 (Add_Library_Search_Dir): Use the untouched directory name.
4933 (Add_Source_Search_Dir): Idem.
4934 (Change_To_Object_Directory): Update output to use proper casing.
4935 (Create_Binder_Mapping_File): Use the untouched filename to set
4936 ALI_Name.
4937 (Gnatmake): Use untouched library and executable directory names.
4938 (Insert_Project_Sources): Use untouched filename for spec and body.
4939 (Is_In_Object_Directory): Use untouched object directory.
4940 (Mark_Directory): Idem.
4941 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
4942 contains the non-canonical filename in all cases.
4943 (Change_To_Object_Directory): In verbose mode, display the name of the
4944 object directory we're changing to.
4945 (Compile_Sources): Make sure, when a project file is used, to compile
4946 the body of the unit, when there is one, even when only the spec is
4947 recorded in an ALI file.
4948 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
4949 spec to the body.
4950 (Report_Compilation_Failed): New procedure
4951 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
4952 procedures moved from the spec to the body.
4953 (Extract_Failure): Removed, not used
4954 Replace explicit raises of exception Bind_Failed and Link_Failed with
4955 calls to Make_Failed with the proper message.
4956 Replace explicit raises of exception Compilation_Failed with calls to
4957 procedure Report_Compilation_Failed.
4958 (Initialize): Create mapping files unconditionally when using project
4959 files.
4960
4961 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
4962 Pragma_CIL_Constructor): New names.
4963
4964 * targparm.ads, targparm.adb
4965 (Compiler_System_Version): Removed, no longer used.
4966 (Get_Target_Parameters): Relax checks on system.ads validity. Add
4967 handling of two new system flags: JVM and CLI.
4968
49692007-06-06 Jose Ruiz <ruiz@adacore.com>
4970 Arnaud Charlet <charlet@adacore.com>
4971
4972 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
4973 time, use the default s-interr body that provides interrupt support
4974 based on signals.
4975 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
4976 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
4977 g-soccon.ads, and s-taprop.adb for the marte run time.
4978 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
4979 timers are supported on marte.
4980 (EH_MECHANISM for marte): Do not use ZCX.
4981 (THREADSLIB for marte): Use -lmarte.
4982 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
4983 Add mlib-tgt-specific.o to gnatmake objects
4984 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
4985 longer of MLib.Tgt.
4986 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
4987 6, either kernel or rtp, use a specialized version of s-osinte.ads.
4988
49892007-06-06 Pascal Obry <obry@adacore.com>
4990
4991 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
4992
49932007-06-06 Vincent Celier <celier@adacore.com>
4994
4995 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
4996 separator, use instead the proper host directory separator.
4997 (Copy_ALI_Files): Make sure that an already existing ALI file in the
4998 ALI copy dir is writable, before doing the copy.
4999
5000 * mlib-utl.ads, mlib-utl.adb:
5001 (Gcc): If length of command line is too long, put the list of object
5002 files in a response file, if this is supported by the platform.
5003 (Ar): If invocation of the archive builder is allowed to be done in
5004 chunks and building it in one shot would go above an OS dependent
5005 limit on the number of characters on the command line, build the archive
5006 in chunks.
5007
50082007-06-06 Vincent Celier <celier@adacore.com>
5009
5010 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
5011 of specified object file is not equal to base name of source.
5012
50132007-06-06 Javier Miranda <miranda@adacore.com>
5014 Hristian Kirtchev <kirtchev@adacore.com>
5015 Ed Schonberg <schonberg@adacore.com>
5016
5017 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
5018 the full type declaration.
5019 (Analyze_Component_Declaration): Add local variable E to capture the
5020 initialization expression of the declaration. Replace the occurences of
5021 Expression (N) with E.
5022 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
5023 limited interface object with a function call.
5024 (Array_Type_Declaration): If the declaration lacks subtype marks for
5025 indices, create a simple index list to prevent cascaded errors.
5026 (Is_Null_Extension): Ignore internal components created for secondary
5027 tags when checking whether a record extension is a null extension.
5028 (Check_Abstract_Interfaces): Add missing support for interface subtypes
5029 and generic formals.
5030 (Derived_Type_Declaration): Add missing support for interface subtypes
5031 and generic formals.
5032 (Analyze_Object_Declaration): If an initialization expression is
5033 present, traverse its subtree and mark all allocators as static
5034 coextensions.
5035 (Add_Interface_Tag_Component): When looking for components that may be
5036 secondary tags, ignore pragmas that can appear within a record
5037 declaration.
5038 (Check_Abstract_Overriding): an inherited function that dispatches on
5039 result does not need to be overriden if the controlling type is a null
5040 extension.
5041 (Mentions_T): Handle properly a 'class attribute in an anonymous access
5042 component declaration, when the prefix is an expanded name.
5043 (Inherit_Component): If the derivation is for a private extension,
5044 inherited components remain visible and their ekind should not be set
5045 to Void.
5046 (Find_Type_Of_Object): In the case of an access definition, always set
5047 Is_Local_Anonymous_Access. We were previously not marking the anonymous
5048 access type of a return object as a local anonymous type.
5049 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
5050 range with character literal bounds.
5051 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
5052 (Access_Subprogram_Declaration): Indicate that the type declaration
5053 depends on an incomplete type only if the incomplete type is declared
5054 in an open scope.
5055 (Analyze_Subtype_Declaration): Handle properly subtypes of
5056 synchronized types that are tagged, and that may appear as generic
5057 actuals.
5058 (Access_Subprogram_Declaration): An anonymous access to subprogram can
5059 appear as an access discriminant in a private type declaration.
5060 (Add_Interface_Tag_Components): Complete decoration of the component
5061 containing the tag of a secondary dispatch table and the component
5062 containing the offset to the base of the object (this latter component
5063 is only generated when the parent type has discriminants --as documented
5064 in this routine).
5065 (Inherit_Components): Use the new decoration of the tag components to
5066 improve the condition that avoids inheriting the components associated
5067 with secondary tags of the parent.
5068 (Build_Discriminanted_Subtype): Indicate to the backend that the
5069 size of record types associated with dispatch tables is known at
5070 compile time.
5071 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
5072 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
5073 to include task, protected, and synchronized interfaces as limited
5074 interfaces.
5075 (Process_Discriminants): Remove the setting of
5076 Is_Local_Anonymous_Access on the type of (anonymous) access
5077 discriminants of nonlimited types.
5078 (Analyze_Interface_Type_Declaration): Complete the decoration of the
5079 class-wide entity it is is already present. This situation occurs if
5080 the limited-view has been previously built.
5081 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
5082 field.
5083 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
5084 Related_Interface.
5085
50862007-06-06 Ed Schonberg <schonberg@adacore.com>
5087
5088 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
5089 of the type that specify the position of interface tags when the type
5090 inherits discriminated array components from the parent type.
5091 If a component is initialized with a box, check for the presence of a
5092 default expression in its declaration before using its default
5093 initialization procedure.
5094 (Resolve_Record_Aggregate): If a component is box-initialized, and the
5095 component type has a discriminants, create a partial aggregate for it
5096 by copying the discriminants of the component subtype.
5097 Reject attempt to initialize a discriminant with a box.
5098 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
5099 associated with dispatch tables is known at compile time.
5100 (Get_Value): If an association in a record aggregate has a box
5101 association, and the corresponding record component has a default
5102 expression, always copy the default expression, even when the
5103 association has a single choice, in order to create a proper
5104 association for the expanded aggregate.
5105
51062007-06-06 Ed Schonberg <schonberg@adacore.com>
5107 Robert Dewar <dewar@adacore.com>
5108
5109 * par-ch12.adb (P_Generic_Associations): The source position of an
5110 Others association is that of the others keyword, not that of the token
5111 that follows the box.
5112 (P_Formal_Type_Definition): Handle formal access types that carry a
5113 not null indicator.
5114
5115 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
5116 multiple identifier are present, save Scan_State before scanning the
5117 colon, to ensure that separate trees are constructed for each
5118 declaration.
5119 (P_Identifier_Declarations): For object declaration, set new flag
5120 Has_Init_Expression if initialization expression present.
5121 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
5122 Improve NOT NULL error messages
5123
51242007-06-06 Robert Dewar <dewar@adacore.com>
5125
5126 * par-ch4.adb: (P_Name): Recover from literal used as name
5127
51282007-06-06 Vincent Celier <celier@adacore.com>
5129
5130 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
5131 defaulted to False.
5132 In the "not" case, recursive call with Complemented set to True.
5133 Do not allow "or" or "and" operators when Complemented is True.
5134
51352007-06-06 Vincent Celier <celier@adacore.com>
5136
5137 * prj.adb (Project_Empty): Gives default value for new component
5138 Libgnarl_Needed
5139
5140 * prj-attr.ads: Minor reformatting
5141
5142 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
5143 directory using the untouched casing.
5144 (For_All_Source_Dirs): Idem.
5145
5146 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
5147 directories specified with switches -aP.
5148 (Add_Search_Project_Directory): New procedure
5149 (Initialize_Project_Path): Put the directories in table
5150 Search_Directories in the project search path.
5151 (Initialize_Project_Path): For VMS, transform into canonical form the
5152 project path.
5153
51542007-06-06 Arnaud Charlet <charlet@adacore.com>
5155
5156 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
5157 true if configurable run-time or No_Run_Time is set.
5158 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
5159 processing an unit which is not the one being compiled.
5160
51612007-06-06 Arnaud Charlet <charlet@adacore.com>
5162
5163 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
5164 Replace UC by Ada.UC
5165
5166 * s-bitops.adb: Get rid of System.Pure_Exceptions.
5167 Replace UC by Ada.UC
5168
51692007-06-06 Robert Dewar <dewar@adacore.com>
5170
5171 * scng.adb: (Check_End_Of_Line): Deal with very long lines
5172
51732007-06-06 Robert Dewar <dewar@adacore.com>
5174
5175 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
5176 Remove no longer used nodes.
5177
51782007-06-06 Javier Miranda <miranda@adacore.com>
5179 Ed Schonberg <schonberg@adacore.com>
5180 Robert Dewar <dewar@adacore.com>
5181
5182 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
5183 on obsolescent withed unit in case of limited-withed units.
5184 (Analyze_Compilation_Unit): Add guard to code that removed an
5185 instantiation from visibility, to prevent compiler aborts when
5186 instantiation is abandoned early on.
5187 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
5188 current unit being analyzed, and Distinguish local incomplete types
5189 from limited views of types declared elsewhere.
5190 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
5191 to state that the class-wide entity is shared by the limited-view
5192 and the full-view.
5193 (Analyze_With_Clause): Improve placement of flag for case of
5194 unimplemented unit.
5195 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
5196 manner similar to GNAT.Current_Exception. This is a violation of
5197 restriction (No_Exception_Propagation), and also inhibits the
5198 optimization of local raise to goto.
5199 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
5200 and if so set Most_Recent_Exception_Used flag in Opt, and also check
5201 for violation of restriction No_Exception_Propagation.
5202
52032007-06-06 Javier Miranda <miranda@adacore.com>
5204 Hristian Kirtchev <kirtchev@adacore.com>
5205 Gary Dismukes <dismukes@adacore.com>
5206
5207 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
5208 use of entity Exception_Occurrence if it is not available in the
5209 target run-time.
5210
5211 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
5212 concurrent types are declared within an Ada 2005 generic, build their
5213 corresponding record types since they are needed for overriding-related
5214 semantic checks.
5215 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
5216 protected type does not implement a task interface or a nonlimited
5217 interface.
5218 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
5219 type does not implement a protected interface or a nonlimited interface.
5220 (Single_Task_Declaration, Single_Protected_Declaration): use original
5221 entity for variable declaration, to ensure that debugging information
5222 is correcty generated.
5223 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
5224 routines if the expander is not active.
5225 (Analyze_Task_Body): Mark all handlers to stop optimization of local
5226 raise, since special things happen for task exception handlers.
5227
5228 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
5229 concurrent types declared within a generic.
5230 (Check_Dispatching_Operation): Do not emit warning about late interface
5231 operations in the context of an instance.
5232 (Check_Dispatching_Call): Remove restriction against calling a
5233 dispatching operation with a limited controlling result.
5234 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
5235 Register_Interface_DT_Entry by calls to Register_Primitive.
5236 (Check_Dispatching_Formals): Handle properly a function with a
5237 controlling access result.
5238
52392007-06-06 Robert Dewar <dewar@adacore.com>
5240 Arnaud Charlet <charlet@adacore.com>
5241
5242 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
5243 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
5244 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
5245 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
5246 message when using a VM, since this attribute is not supported.
5247 (Analyze_Record_Representation_Clause): Give unrepped component warnings
5248
5249 * usage.adb: Add new warning for renaming of function return objects
5250 Indicate that -gnatwp and -gnatwP concern front-end inlining
5251 Add line for -gnatyg
5252 Add usage information for -gnatw.c/C
5253
52542007-06-06 Robert Dewar <dewar@adacore.com>
5255 Ed Schonberg <schonberg@adacore.com>
5256
5257 * sem_ch5.adb
5258 (Find_Var): Do not consider function call in test for infinite loop
5259 warning if warnings set off for function entity.
5260 (One_Bound): Do not create a temporary for a loop bound if it is a
5261 character literal.
5262 (Analyze_Assignment): Traverse the right hand side of an assignment and
5263 mark all allocators as static coextensions.
5264 (Analyze_Assignment): Exempt assignments involving a dispatching call
5265 to a function with a controlling access result from the check requiring
5266 the target to be class-wide.
5267
52682007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
5269 Ed Schonberg <schonberg@adacore.com>
5270 Robert Dewar <dewar@adacore.com>
5271 Javier Miranda <miranda@adacore.com>
5272
5273 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
5274 chain of coextensions when an allocator serves as the root of such a
5275 chain.
5276 (Propagate_Coextensions): Remove the test for the root being an
5277 allocator.
5278 (Resolve_Allocator): Add condition to ensure that all future decoration
5279 occurs on an allocator node. Add processing and cleanup for static
5280 coextensions.
5281 (Valid_Conversion): If the operand type is the limited view of a
5282 class-wide type, use the non-limited view is available to determine
5283 legality of operation.
5284 (Ambiguous_Character): move to spec, for use elsewhere.
5285 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
5286 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
5287 character literals.
5288 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
5289 Do_Division_Check flag explicitly.
5290 (Resolve_Actuals): If the actual is of a synchronized type, and the
5291 formal is of the corresponding record type, this is a call to a
5292 primitive operation of the type, that is declared outside of the type;
5293 the actual must be unchecked-converted to the type of the actual
5294 (Resolve_Call): Kill all current values for any subprogram call if
5295 flag Suppress_Value_Tracking_On_Call is set.
5296 (Resolve_Type_Conversion): Generate error message the the operand
5297 or target of interface conversions come from a limited view.
5298 (Check_Infinite_Recursion): Ignore generated calls
5299 (Check_Allocator_Discrim_Accessibility): New procedure for checking
5300 that an expression that constrains an access discriminant in an
5301 allocator does not denote an object with a deeper level than the
5302 allocator's access type.
5303 (Resolve_Allocator): In the case of an allocator initialized by an
5304 aggregate of a discriminated type, check that associations for any
5305 access discriminants satisfy accessibility requirements by calling
5306 Check_Allocator_Discrim_Accessibility.
5307 (Resolve_Equality_Op): Handle comparisons of anonymous access to
5308 subprogram types in the same fashion as other anonymous access types.
5309 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
5310 message that is not a continuation message.
5311 (Resolve_Type_Conversion): Add missing support for conversion to
5312 interface type.
5313 (Resolve_Actuals): Introduce a transient scope around the call if an
5314 actual is a call to a function returning a limited type, because the
5315 resulting value must be finalized after the call.
5316 (Resolve_Actuals): If the call was given in prefix notations, check
5317 whether an implicit 'Access reference or implicit dereference must be
5318 added to make the actual conform to the controlling formal.
5319
53202007-06-06 Robert Dewar <dewar@adacore.com>
5321 Javier Miranda <miranda@adacore.com>
5322
5323 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
5324 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
5325 overriding of an inherited private subprogram now there is no need to
5326 inherit its dispatching slot and reduce the size of the dispatch table.
5327 Set_All_DT_Position now ensures that the same slot is now assigned to
5328 both entities. This is required to statically build the dispatch table.
5329 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
5330 of calling Set_All_DT_Position to re-evaluate the position of the
5331 entries in the dispatch table. Such reevaluation is not desired if
5332 the tagged type is already frozen.
5333
53342007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
5335 Gary Dismukes <dismukes@adacore.com>
5336 Robert Dewar <dewar@adacore.com>
5337 Javier Miranda <miranda@adacore.com>
5338
5339 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
5340 reference acts as an lvalue when the attribute name modifies the prefix
5341 (Is_Coextension_Root): New routine.
5342 (Mark_Static_Coextensions): New routine.
5343 (Type_Access_Level): Revise code for checking the level of the
5344 anonymous access type of a return object.
5345 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
5346 (Matches_Prefixed_View_Profile): Remove the no longer necessary
5347 retrieval of the corresponding controlling record type.
5348 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
5349 concurrent types declared within a generic as well as class wide types.
5350 Emit a mode incompatibility error whenever a protected entry or routine
5351 override an interface routine whose first parameter is not of mode
5352 "out", "in out" or access to variable.
5353 (Overrides_Synchronized_Primitive): Rename to
5354 Find_Overridden_Synchronized_Primitive.
5355 (Collect_Interface_Components): New subprogram that collects all the
5356 components of a tagged record containing tags of secondary dispatch
5357 tables.
5358 (Add_Global_Declaration): New procedure
5359 (Abstract_Interface_List): Handle properly the case of a subtype of a
5360 private extension.
5361 (Type_Access_Level): In the case of a type whose parent scope is a
5362 return statement, call Type_Access_Level recursively on the enclosing
5363 function's result type to determine the level of the return object's
5364 type.
5365 (Build_Elaboration_Entity): Build name of elaboration entity from the
5366 scope chain of the entity, rather than the unit name of the file name.
5367 (Check_Nested_Access): New procedure.
5368 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5369 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5370 (Get_Renamed_Entity): Utility routine for performing common operation
5371 of chasing the Renamed_Entity field of an entity.
5372
53732007-06-06 Robert Dewar <dewar@adacore.com>
5374
5375 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
5376 elaboration model
5377 (Check_A_Call): Add check for entry call which was causing blowup
5378
53792007-06-06 Olivier Hainque <hainque@adacore.com>
5380
5381 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
5382 special code on ia64-vms to handle major incompatibilities between the
5383 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
5384 this routine with a very different set of arguments and expectations on
5385 the return value.
5386
53872007-06-06 Thomas Quinot <quinot@adacore.com>
5388
5389 * socket.c (__gnat_close_signalling_fd): New function.
5390 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
5391 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
5392 New supporting functions for task safe Netdb operations.
5393
53942007-06-06 Thomas Quinot <quinot@adacore.com>
5395 Olivier Hainque <hainque@adacore.com>
5396
5397 * a-except-2005.ads, a-except-2005.adb
5398 (Raise_From_Controlled_Operation): New procedure in
5399 (private part of) Ada.Exceptions (standard runtime version). Used to
5400 provide informational exception message when Program_Error is raised as
5401 a result of an Adjust or Finalize operation propagating an exception.
5402 (Rmsg_28): Fix description for E.4(18) check.
5403 (Raise_Current_Excep): Call Debug_Raise_Exception just before
5404 propagation starts, to let debuggers know about the event in a reliable
5405 fashion.
5406 Take the address of E and dereference to make sure it is homed on stack
5407 and prevent the stores from being deleted, necessary for proper
5408 debugger behavior on "break exception" hits.
5409 (Local_Raise): Moved to System.Exceptions
5410
5411 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
5412 exception message from the current occurrence and raise Program_Error
5413 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
5414
54152007-06-06 Jose Ruiz <ruiz@adacore.com>
5416 Arnaud Charlet <charlet@adacore.com>
5417
5418 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
5419 lock, if needed.
5420
5421 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
5422 priority associated to a lock.
5423
5424 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
5425 assertion to take into account case of no abort restriction.
5426 (Initialize_Protection_Entries): Add initialization for the field
5427 New_Ceiling associated to the protected object.
5428 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
5429 needed.
5430
5431 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5432 since this function needs to be set consistently with Update_Exception.
5433
5434 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5435 since this function needs to be set consistently with Update_Exception.
5436
5437 * s-taskin.ads: Update comments on
5438 Interrupt_Server_Blocked_On_Event_Flag.
5439 (Unbind_Handler): Fix handling of server_task wakeup
5440 (Server_Task): Set self's state so that Unbind_Handler can take
5441 appropriate actions.
5442 (Common_ATCB): Now use a constant from System.Parameters to determine
5443 the max size of the Task_Image field.
5444
5445 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
5446 Initialize_Analyzer function.
5447 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
5448 take into account case of no abort restriction.
5449 ([Vulnerable_]Complete_Master): Modify assertion.
5450
5451 * s-tataat.adb (Finalize): Use the nestable versions of
5452 Defer/Undefer_Abort.
5453
5454 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
5455
5456 * s-tpobop.ads: Update comments.
5457
5458 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
5459 of locking the object manually, to avoid inconsistencies between
5460 Lock/Unlock_Entry assertions.
5461
5462 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
5463 terminating
5464 application and System.Parameters.No_Abort is True.
5465 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
5466 (Unbind_Handler): Fix handling of server_task wakeup
5467 (Server_Task): Set self's state so that Unbind_Handler can take
5468 appropriate actions.
5469
54702007-06-06 Thomas Quinot <quinot@adacore.com>
5471
5472 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
5473 declarations instead of an explicit null body, for conciseness.
5474
54752007-06-06 Robert Dewar <dewar@adacore.com>
5476
5477 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
5478 illegal aggregate and the type is still Any_Composite.
5479 (Subtypes_Statically_Match): Fix problem of empty discriminant list
5480
54812007-06-06 Ed Schonberg <schonberg@adacore.com>
5482
5483 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
5484 to prevent subsequent expansion.
5485
54862007-06-06 Robert Dewar <dewar@adacore.com>
5487
5488 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
5489
54902007-06-06 Ed Schonberg <schonberg@adacore.com>
5491 Robert Dewar <dewar@adacore.com>
5492
5493 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
5494 exceptions.
5495 (Write_Itype): Handle case of string literal subtype, which
5496 comes up in this context.
5497 (Update_Itype): when debugging expanded code, update sloc of itypes
5498 associated with defining_identifiers and ranges, for gdb use.
5499 (Sprint_Node_Actual): Add static keyword to object or exception
5500 declaration output if Is_Statically_Allocated is True.
5501 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
5502 or task body, so that the tree carries the proper Sloc information for
5503 debugging use.
5504 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
5505
55062007-06-06 Arnaud Charlet <charlet@adacore.com>
5507
5508 * s-secsta.adb (Chunk): Ensure this object has a static size known at
5509 compile time, to avoid dynamic memory allocation
5510 (Elaboration code): Only use dynamic memory allocation when needed.
5511
55122007-06-06 Quentin Ochem <ochem@adacore.com>
5513
5514 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
5515 "Overflow_Guard".
5516 (Stack_Analyzer): Added field "Overflow_Guard"
5517 (Task_Result): Added field "Overflow_Guard".
5518 (Index_Str): New constant.
5519 (Task_Name_Str): New constant.
5520 (Actual_Size_Str): New constant.
5521 (Pattern_Array_Element_Size): New constant.
5522 (Get_Usage_Range): New subprogram.
5523 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
5524 Now align the output.
5525 Added comments.
5526 (Initialize): Added value for Overflow_Guard.
5527 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
5528 Update the value of the overflow guard according to the actual
5529 beginning of the pattern array.
5530 (Initialize_Analyzer): Added parameter Overflow_Guard.
5531 Take this parameter into accound when computing the max size.
5532 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
5533 (Report_Result): Removed extra useless procedure.
5534 Updated call to Output_Result.
5535 Moved full computation of the Task_Result here.
5536
55372007-06-06 Thomas Quinot <quinot@adacore.com>
5538
5539 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
5540 Thread_Blocking_IO, always True by default, set False on a per-runtime
5541 basis.
5542 Add Windows-specific constants
5543 Add new constant Need_Netdb_Buffer.
5544 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5545 not, whether to use getXXXbyYYY_r.
5546
5547 * gsocket.h: Add new constant Need_Netdb_Buffer.
5548 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5549 not, whether to use getXXXbyYYY_r.
5550
55512007-06-06 Eric Botcazou <ebotcazou@adacore.com>
5552
5553 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
5554 than their first call.
5555 Add type Dummy_Communication_Block used in the generation of the pre-
5556 defined dispatching primitive _disp_asynchronous_select.
5557 (Storage_Element): Put Pragma Universal_Aliasing on it.
5558
55592007-06-06 Vincent Celier <celier@adacore.com>
5560
5561 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
5562 function.
5563
5564 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
5565 letter if it is not followed by a '/' or a '\'.
5566 (Windows): New Boolean function
5567
5568 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
5569 Ada 2005.
5570 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
5571 drive letter.
5572 (Containing_Directory): Raise Use_Error when the directory is a root
5573 directory.
5574 (Extension): When returning the result, use a conversion to Result_Type,
5575 not a qualification.
5576
55772007-06-06 Robert Dewar <dewar@adacore.com>
5578
5579 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
5580 (Set_Style_Check_Options): Recognize new -gnatyg style switch
5581
5582 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
5583 Warn_On_Non_Local_Exception to False, to turn off warnings for
5584 No_Exception_Propagation in ZFP runtime.
5585 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
5586 back-ends.
5587 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
5588
55892007-06-06 Vincent Celier <celier@adacore.com>
5590
5591 * switch-b.adb (Scan_Binder_Switches): Add processing for new
5592 switches -R and -Z
5593
5594 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
5595 (Scan_Make_Switches): Recognize new switch -aP
5596
55972007-06-06 Matthew Gingell <gingell@adacore.com>
5598 Jose Ruiz <ruiz@adacore.com>
5599
5600 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
5601 VxWorks task descriptor in the Ada run time, call a C subprogram
5602 (__gnat_get_stack_info) that extracts the required information.
5603
5604 * sysdep.c: Back out temporary lynxos workaround.
5605 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
5606 time the stack information associated to the currently executing task.
5607 Only VxWorks systems require this function.
5608
56092007-06-06 Eric Botcazou <ebotcazou@adacore.com>
5610
5611 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
5612 add the stack bias if the offset is computed from a frame address.
5613 (__gnat_backtrace): Adjust for above change.
5614
56152007-06-06 Thomas Quinot <quinot@adacore.com>
5616
5617 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
5618 PE_Non_Transportable_Actual.
5619 (By_Descriptor_Last): New constant.
5620 (By_Copy_Return): Likewise.
5621
56222007-06-06 Vincent Celier <celier@adacore.com>
5623
5624 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
5625 is.
5626
5627 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
5628 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
5629 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
5630 Add missing comment for /OPTIMIZE=SPACE
5631 Add entry for OPTIMIZE=SPACE
5632 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
5633 Add documentation for new qualifiers corresponding to -gnatw.c/.C
5634
56352007-06-06 Vincent Celier <celier@adacore.com>
5636 Robert Dewar <dewar@adacore.com>
5637
5638 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
5639 -gnatw.C)
5640
5641 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
5642 Document gnatbind switch -a
5643 (case Constructions): Document that variables declarations are allowed
5644 for previously declared variables.
5645 Fix external lib project example
5646 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
5647 Indicate that "#if not X or Y then" is not allowed in input files to
5648 gnatprep.
5649 Document gnatw.x and gnatw.X warning flags
5650 Mention -Winline switch to activate warnings when back-end inlining is
5651 ineffective.
5652 Add gnatcheck rule descriptions
5653 Describe how to use the GNAT driver to call a tool on a closure.
5654 Describe how to run project-wide checks or metrics.
5655 Document gnatbind's -R option
5656 Updated to account for Ada 2005 support
5657
5658 * gnat_rm.texi (Case Construction): Allow variable declarations for
5659 previously declared variables.
5660 (Representation Clauses and Pragmas): Lift restriction on alignment
5661 clauses for record types.
5662 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
5663 Document No_Exception_Propagation restriction
5664 Document No_Body pragma
5665 Updated to account for Ada 2005 support; corrected some typos
5666 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
5667
5668 * gnat-style.texi: Make it clear that we never use mode IN for
5669 procedures or functions
5670
5671 * ug_words: Add entries for -gnatw.x and -gnatw.X
5672 Add entries for -gnatw.c/.C
5673
56742007-06-06 Pascal Obry <obry@adacore.com>
5675 Vincent Celier <celier@adacore.com>
5676
5677 * makegpr.adb (Add_Archive_Path): Use untouched object and library
5678 dirs and library name.
5679 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
5680 comments.
5681 (Build_Library): Idem.
5682 (Compile_Individual_Sources): Idem.
5683 (Compile_Link_With_Gnatmake): Idem.
5684 (Compile_Sources): Idem.
5685 (Get_Imported_Directories): Idem.
5686 (Link_Executables): Idem. Same change for the executable dir.
5687 (Check_Compilation_Needed): C_Source_Path new variable containing
5688 the canonical form of Source_Path to check against the source names
5689 in the dependency file.
5690 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
5691 verbose mode, display the name of the object directory we're changing
5692 to.
5693 (Saved_Switches): New name of table X_Switches
5694 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
5695 (Usage): New line for switch -aP
5696 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
5697 testing if a directory should be added to the search path.
5698
56992007-06-06 Javier Miranda <miranda@adacore.com>
5700
5701 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
5702 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
5703 declaration after freezing point of all its associated tagged types;
5704 otherwise such types are frozen too early.
5705
57062007-06-06 Robert Dewar <dewar@adacore.com>
5707
5708 * a-reatim.adb: Documentation addition
5709
5710 * g-cgideb.adb: Minor code reorganization
5711
5712 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
5713 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
5714 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
5715
5716 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
5717 function. Change name New_Scope to Push_Scope
5718 (Get_Debug_Flag_K): Remove unused obsolete function.
5719
5720 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
5721 Push_Scope.
5722
5723 * makeusg.adb: Update Copyright notice
5724 Add line for switch -aP
5725
5726 * makeusg.adb: Fix wording of some usage messages
5727
5728 * s-assert.adb (Raise_Assert_Failure): Add call to
5729 Debug_Raise_Assert_Failure.
5730
5731 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
5732 (2, Standard'Alignment) for compatibility with AAMP (where alignment
5733 is restricted to 1).
5734
5735 * s-wchjis.adb: Remove use of System.Pure_Exceptions
5736
5737 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
5738 node location to No_Location when we're not debugging the expanded
5739 code.
5740
dbc30a96
AO
57412007-05-22 Alexandre Oliva <aoliva@redhat.com>
5742
5743 * misc.c (enumerate_modes): Consider log2_b to always be one.
5744
ca5ba2a3
RAE
57452007-05-14 Rafael Avila de Espindola <espindola@google.com>
5746
5747 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5748
d7598e11
PO
57492007-05-02 Pascal Obry <obry@adacore.com>
5750
5751 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
5752 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
5753 encoding support of Stream_IO.
5754 (Write_Unit): Idem.
5755
5756 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
5757 filename and corresponding encoding to match the OS requirement.
5758 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
5759 routine will fail on specific devices like CON: AUX: ...
5760
5761 PR ada/29856: Add missing braces
5762
1be52f61
AP
57632007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5764
5765 PR ada/31660
5766 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
5767
395a40e0
JH
57682007-04-21 Jan Hubicka <jh@suse.cz>
5769
5770 * misc.c (gnat_expand_body): Don't call target for destructors,
5771 avoid redundant check on syntax errors.
5772
3d95caa4
AP
57732007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
5774
5775 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
5776 instead of checking GIMPLE_STMT_P in chain_next.
5777
ea30850a
AK
57782007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
5779
5780 PR ada/31576
5781 * system-linux-alpha.ads: Disable constant condition warning for the
5782 Default_Bit_Order variable.
5783 * system-linux-s390.ads: Likewise.
5784 * system-linux-s390x.ads: Likewise.
5785 * system-linux-sparc.ads: Likewise.
5786
4b437c6b
AC
57872007-04-06 Javier Miranda <miranda@adacore.com>
5788 Matt Heaney <heaney@adacore.com>
5789 Robert Dewar <dewar@adacore.com>
5790
5791 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
5792 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
5793 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
5794 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
5795 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
5796 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
5797 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
5798 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
5799 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
5800 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
5801 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
5802 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
5803 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
5804 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
5805 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
5806 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
5807 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
5808 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
5809 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
5810 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
5811 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
5812 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
5813 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
5814 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
5815 s-taprop-tru64.adb, s-taprop-irix.adb,
5816 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
5817 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
5818 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
5819 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
5820 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
5821 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
5822 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
5823 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
5824 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
5825 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
5826 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
5827 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
5828 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
5829 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
5830 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
5831 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
5832 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
5833 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
5834 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
5835 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
5836 access types.
5837 Update documentation.
5838 Minor rewording.
5839
58402007-04-06 Robert Dewar <dewar@adacore.com>
5841
5842 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
5843 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
5844 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
5845 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
5846 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
5847 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
5848 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
5849 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
5850 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
5851 system-hpux-ia64.ads, targparm.adb,
5852 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
5853
5854 * system.ads: Move Functions_Return_By_DSP to obsolete section,
5855 kept for bootstrap purposes only.
5856
58572007-04-06 Arnaud Charlet <charlet@adacore.com>
5858
5859 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5860 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
5861 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
5862 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
5863
58642007-04-06 Robert Dewar <dewar@adacore.com>
5865
5866 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
5867 (Local_Raise): New dummy procedure called when a raise is converted
5868 to a local goto. Used for debugger to detect that the exception
5869 is raised.
5870
5871 * debug.adb: Document new d.g flag (expand local raise statements to
5872 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
5873
5874 * exp_sel.adb: Use Make_Implicit_Exception_Handler
5875
5876 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
5877 suppress warnings for unused handlers.
5878 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
5879 warnings for raise statements not handled locally.
5880 (Get_RT_Exception_Entity): New function
5881 (Get_Local_Call_Entity): New function
5882 (Find_Local_Handler): New function
5883 (Warn_If_No_Propagation): New procedure
5884 (Expand_At_End_Handler): Call Make_Implicit_Handler
5885 (Expand_Exception_Handlers): Major additions to deal with local handlers
5886 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
5887 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
5888 for local raise
5889
5890 * exp_ch11.ads (Get_RT_Exception_Entity): New function
5891 (Get_Local_Call_Entity): New function
5892
5893 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
5894 of restrictions that the binder will never suggest adding.
5895
5896 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
5897 to No_Elist.
5898
5899 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
5900 be with'ed in the presence of pragma Restriction
5901 (No_Exception_Propagation).
5902
5903 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
5904
5905 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
5906 parameter, then the handler is not a suitable target for a local raise,
5907 and this is a violation of restriction No_Exception_Propagation.
5908 (Analyze_Handled_Statements): Analyze choice parameters in exception
5909 handlers before analyzing statement sequence (needed for proper
5910 detection of local raise statements).
5911 (Analyze_Raise_Statement): Reraise statement is a violation of the
5912 No_Exception_Propagation restriction.
5913
5914 * s-rident.ads: Add new restriction No_Exception_Propagation
5915
5916 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
5917 function, like Make_Exception_Handler but sets Local_Raise_Statements
5918 to No_List.
5919 (Add_Unique_Serial_Number): Deal with case where this is called during
5920 processing of configuration pragmas.
5921
59222007-04-06 Thomas Quinot <quinot@adacore.com>
5923 Pat Rogers <rogers@adacore.com>
5924 Pascal Obry <obry@adacore.com>
5925
5926 * g-stsifd-sockets.adb: New file.
5927
5928 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
5929 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
5930 g-socthi-vms.adb: Move signalling
5931 fd management to a nested package, so that they can conveniently be
5932 moved to a subunit that is shared across Windows, VMS, and VxWorks
5933 (Ada implementation) or completed with imported bodies from socket.c
5934 (UNIX case).
5935 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
5936 subprograms.
5937 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
5938 the signalling file descriptor.
5939 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
5940 signalling file descriptor.
5941 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
5942 instead of creating a pair of sockets for signalling here.
5943
5944 * g-socthi.adb: Ditto.
5945 Set the runtime process to ignore SIGPIPEs on platforms that support
5946 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
5947
5948 * g-socthi-mingw.adb: Ditto.
5949 (WS_Version): Use Windows 2.2.
5950 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
5951
5952 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
5953 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
5954
5955 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
5956 added GNAT byte swapping facility
5957 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
5958
5959 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
5960
5961 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
5962 New subprograms.
5963 (__gnat_create_signalling_fds): New subprogram.
5964 Set the runtime process to ignore SIGPIPEs on platforms that support
5965 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
5966
59672007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
5968 Vincent Celier <celier@adacore.com>
5969
5970 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
5971 New version of Ada.Calendar which supports the new upper bound of Ada
5972 time (2399-12-31 86_399.999999999).
5973 The following modifications have been made to the package:
5974 - New representation of time as count of nanoseconds since the start of
5975 Ada time (1901-1-1 0.0).
5976 - Target independent Split and Time_Of routines which service both
5977 Ada 95 and Ada 2005 code.
5978 - Target independent interface to the Ada 2005 children of Calendar.
5979 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
5980 - Handling of non-leap centenial years.
5981 - Updated clock function.
5982 - Updated arithmetic and comparison operators.
5983
5984 * a-caldel.adb (To_Duration): Add call to target independent routine in
5985 Ada.Calendar to handle the conversion of time to duration.
5986
5987 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
5988 (UTC Offset).
5989 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
5990 set off to 0.
5991 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
5992 targets do not have a natural time zone, GMT is used as a default.
5993 (__gnat_get_task_options): New.
5994
5995 * a-direct.adb (Modification_Time): Add with and use clauses for
5996 Ada.Calendar and Ada.
5997 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
5998 since it is no longer needed.
5999 (Duration_To_Time): Removed.
6000 (OS_Time_To_Long_Integer): Removed.
6001 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
6002 Formatting Time_Of routines which automatically handle time zones,
6003 buffer periods and leap seconds.
6004
6005 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
6006 target independent routines in Ada.Calendar.
6007
6008 * a-calfor.ads, a-calfor.adb:
6009 Code cleanup and addition of validity checks in various routines.
6010 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
6011 Ada.Calendar.
6012
6013 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
6014 independent routine in Ada.Calendar.
6015
60162007-04-06 Olivier Hainque <hainque@adacore.com>
6017
6018 * adaint.c:
6019 (convert_addresses): Adjust prototype and dummy definition to expect an
6020 extra file_name argument.
6021
6022 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
6023 filling the now expected file_name argument with the appropriate
6024 argv[0] expansion.
6025 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
6026 (tracebk): Array of void * instead of char *, corresponding to what
6027 convert_addresses expects.
6028 (exename): New static global, to hold the executable file name to be
6029 used in all convert_addresses invocations.
6030 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
6031 change.
6032 (__gnat_gmem_a2l_initialize): Resolve exename.
6033 (__gnat_convert_addresses): Use exename as the convert_addresses
6034 file_name argument.
6035
6036 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
6037 "convert_addresses", now expecting a filename argument. Import the
6038 necessary entities to compute the filename to use and pass it to
6039 convert_addresses.
6040
60412007-04-06 Matt Gingell <gingell@adacore.com>
6042
6043 * system-aix.ads: Back out previous change.
6044 (Functions_Return_By_DSP): Removed
6045
60462007-04-06 Pascal Obry <obry@adacore.com>
6047
6048 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
6049 or the monotonic used by Ada.Real_Time) to compute the sleep duration
6050 on Windows.
6051
60522007-04-06 Jose Ruiz <ruiz@adacore.com>
6053
6054 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
6055 function. Its value changes in different VxWorks versions, and it is
6056 now handled by the function __gnat_get_task_options.
6057
6058 * s-taprop-vxworks.adb (Create_Task): Call the function
6059 __gnat_get_task_options to get the required options for creating a task.
6060
60612007-04-06 Pascal Obry <obry@adacore.com>
6062 Thomas Quinot <quinot@adacore.com>
6063
6064 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
6065 dealing with filename.
6066 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
6067 filename from a standard string to a wide-string depending on the
6068 encoding value.
6069 (__gnat_freopen): Idem.
6070 (__gnat_current_time): New function (wrapper for time(3) standard C
6071 function).
6072
6073 * g-os_lib.ads (Current_Time): New function. Returns the current
6074 system time as an OS_Time value.
6075
6076 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
6077 (Monotonic_Clock): Same.
6078
60792007-04-06 Quentin Ochem <ochem@adacore.com>
6080
6081 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
6082 not on a natural.
6083 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
6084
60852007-04-06 Jose Ruiz <ruiz@adacore.com>
6086
6087 * a-retide.adb: Add elaboration code to ensure that the tasking run
6088 time is initialized when using delay operations even when no task is
6089 created.
6090
60912007-04-06 Javier Miranda <miranda@adacore.com>
6092
6093 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
6094 component Num_Prim_Ops.
6095 (Set_Num_Prim_Ops): Removed.
6096 Remove all the assertions because all the routines of this
6097 package are inline always.
6098 (Get_Offset_Index): Add support to primary dispatch tables.
6099 Move the documentation about the dispatch table to a-tags.ads
6100 (Set_External_Tag): Removed
6101 (Inherit_TSD): Removed.
6102 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
6103 moved to a-tags.ads
6104 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
6105 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
6106 of the TSD field "Table" because this field has been renamed to
6107 "Ifaces_Table".
6108 (Inherit_CPP_DT): Removed.
6109 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
6110 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
6111 declarations have been moved to a-tags.ads
6112 (Check_Size): Removed.
6113 (Expanded_Name): Updated to get access to the new field of TSD
6114 containing the address of the expanded name.
6115 (Get_Access_Level/Set_Access_Level): Removed.
6116 (Get_Predefined_Prim_Op_Address): Removed.
6117 (Set_Predefined_Prim_Op_Address): Removed.
6118 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
6119 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
6120 (Set_Expanded_Name): Removed.
6121 (Inherit_DT): Removed.
6122 (Inherit_CPP_DT): Removed.
6123 (Set_RC_Offset): Removed.
6124 (Set_TSD): Removed.
6125 (Base_Address): New function that displaces "this" to point to the base
6126 of the object (that is, to point to the primary tag of the object).
6127
61282007-04-06 Ed Schonberg <schonberg@adacore.com>
6129 Javier Miranda <miranda@adacore.com>
6130
6131 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
6132 anonymous access component, do not create a master_id if type already
6133 has one, as may happen if the type is a subcomponent of a packed array
6134 type.
6135 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
6136 Initialize_Tag): Remove code associated with the old CPP pragmas.
6137 CPP_Virtual and CPP_Vtable are no longer supported.
6138 (Build_Offset_To_Top_Internal): Add support for concurrent record types
6139 (Build_Offset_To_Top_Functions): Add support for concurrent record types
6140 (Freeze_Record_Type): Remove call to
6141 Init_Predefined_Interface_Primitives.
6142 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
6143 code required to initialize the tags of the secondary dispatch tables.
6144 This leaves the algoritm more clear.
6145 (Init_Secondary_Tags): Add support for concurrent record types
6146 (Make_Predefined_Primitive_Specs): Code cleanup.
6147 (Predefined_Primitive_Bodies): Code cleanup.
6148 (Build_Master_Renaming): New local subprogram.
6149 (Expand_N_Full_Type_Declaration): Build the master_id associated with
6150 anonymous access to task type components.
6151 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
6152 subtype indication are resolved during analysis, and must not be done
6153 here.
6154 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
6155
61562007-04-06 Geert Bosch <bosch@adacore.com>
6157 Ed Schonberg <schonberg@adacore.com>
6158 Javier Miranda <miranda@adacore.com>
6159 Bob Duff <duff@adacore.com>
6160
6161 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
6162 for conversion of a Float_Type'Truncation to integer.
6163
6164 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
6165 check if a node is an attribute that can be handled directly by the
6166 back end.
6167 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
6168 attributes that can be handled directly by the back end.
6169 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
6170 use new predicate Is_Access_Protected_Subprogram_Type.
6171 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
6172 and Unchecked_Union if it is generated as part of the default Output
6173 procedure for a type with default discriminants.
6174 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
6175 if we are compiling under restriction No_Dispatching_Calls.
6176 (Constrained): Use Underlying_Type, in case the type is private without
6177 discriminants, but the full type has discriminants.
6178 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
6179 call to Build_Get_Access_Level.
6180 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
6181 interface objects requires a call to the run-time subprogram that
6182 returns the base address of the object.
6183 (Valid_Conversion): Improve error message on illegal attempt to store
6184 an anonymous access to subprogram value into a record component.
6185
6186 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
6187 null".
6188 (Simplify_Type_Conversion): New procedure that performs simplification
6189 of Int_Type (Float_Type'Truncation (X)).
6190 (Resolve_Type_Conversion): Call above procedure after resolving operand
6191 and before performing checks. This replaces the existing ineffective
6192 code in Exp_Ch4.
6193 (Set_String_Literal_Subtype): When creating the internal static lower
6194 bound subtype for a string literal, use a newly created copy of the
6195 subtree representing the lower bound.
6196 (Resolve_Call): Exclude build-in-place function calls from transient
6197 scope treatment. Update comments to describe this exception.
6198 (Resolve_Equality_Op): In case of dispatching call check violation of
6199 restriction No_Dispatching_Calls.
6200 (Resolve_Call): If the call returns an array, the context imposes the
6201 component type of the array, and the function has one non-defaulted
6202 parameter, rewrite the call as the indexing of a call with a single
6203 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
6204 in prefix form.
6205 (Resolve_Actuals): If an actual is an allocator for an access parameter,
6206 the master of the created object is the innermost enclosing statement.
6207 (Remove_Conversions): For a binary operator, check if type of second
6208 formal is numeric, to check if an abstract interpretation is present
6209 in the case of exponentiation as well.
6210
62112007-04-06 Ed Schonberg <schonberg@adacore.com>
6212 Bob Duff <duff@adacore.com>
6213
6214 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
6215 copying a parameter list in a call, set properly the First_Named_Formal
6216 and Next_Named_Formal fields in the new list and in the enclosing call.
6217 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
6218 names, to ease typing in the debugger. Improve comments.
6219 (Watch_Node): New variable, intended to be set in the debugger.
6220 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
6221 called when the watched node is created.
6222 (New_Node_Debugging_Output): Combined version of local procedures
6223 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
6224 with a parameter so that conditional breakpoints like "if Node = 12345"
6225 work.
6226 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
6227 Add Elist1 function
6228
62292007-04-06 Thomas Quinot <quinot@adacore.com>
6230 Ed Schonberg <schonberg@adacore.com>
6231 Gary Dismukes <dismukes@adacore.com>
6232
6233 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
6234 required for a conversion between two access-to-unconstrained-array
6235 types.
6236 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
6237 to discriminant constraints on discriminant objects. This rule must
6238 apply as well to discriminants of protected types in private components.
6239 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
6240 object of a null-excluding access type then don't require the
6241 the object declaration to have an expression and don't emit a
6242 run-time check.
6243
62442007-04-06 Arnaud Charlet <charlet@adacore.com>
6245 Eric Botcazou <botcazou@adacore.com>
6246
6247 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
6248 and made constant.
6249
6250 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
6251 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
6252 carry any.
6253
6254 * fe.h (Compiler_Abort): Add third parameter.
6255
6256 * misc.c (internal_error_function): Build third argument from current
6257 input location and pass it to Compiler_Abort.
6258
62592007-04-06 Gary Dismukes <dismukes@adacore.com>
6260
6261 * cstand.adb (Create_Standard): When the target's storage unit size is
6262 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
6263 Standard_String.
6264
62652007-04-06 Nicolas Roche <roche@adacore.com>
6266
6267 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
6268 absolute path can have the following form: device:/a/b. In this case
6269 '/' should be inserted between the path and the filename.
6270
62712007-04-06 Olivier Hainque <hainque@adacore.com>
6272 Eric Botcazou <botcazou@adacore.com>
6273
6274 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
6275 VAR_DECL to a CONST_DECL we make for a public constant when we know the
6276 corresponding definition has created the so made visible variable.
6277 Handle anonymous access to protected subprogram.
6278 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
6279 object with an address clause volatile. Re-enable original fix.
6280 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
6281 too.
6282 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
6283 associated with either the Equivalent or Root type, instead of the
6284 naked type node.
6285 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
6286 subtree for every field of a global record type.
6287 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
6288 discriminants, invoke again variable_size on its newly computed sizes.
6289
62902007-04-06 Robert Dewar <dewar@adacore.com>
6291 Thomas Quinot <quinot@adacore.com>
6292 Ed Schonberg <schonberg@adacore.com>
6293 Bob Duff <duff@adacore.com>
6294
6295 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
6296 (Next_Component_Or_Discriminant): New function and procedure
6297 (First_Index, First_Literal, Master_Id,
6298 Set_First_Index, Set_First_Literal, Set_Master_Id):
6299 Add missing Ekind assertions.
6300 (Is_Access_Protected_Subprogram_Type): New predicate.
6301 (Has_RACW): New entity flag, set on package entities to indicate that
6302 the package contains the declaration of a remote accecss-to-classwide
6303 type.
6304 (E_Return_Statement): This node type has the Finalization_Chain_Entity
6305 attribute, in case the result type has controlled parts.
6306 (Requires_Overriding): Add this new flag, because "requires
6307 overriding" is subtly different from "is abstract" (see AI-228).
6308 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
6309 Is_Abstract_Type. Make sure these are called only when appropriate.
6310 (Has_Pragma_Unreferenced_Objects): New flag
6311
6312 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
6313 class-wide, the tag of the right-hand side must be an exact match, not
6314 an ancestor of that of the object on left-hand side.
6315 (Move_Activation_Chain): New procedure to create the call to
6316 System.Tasking.Stages.Move_Activation_Chain.
6317 (Expand_N_Extended_Return_Statement): Generate code to call
6318 System.Finalization_Implementation.Move_Final_List at the end of a
6319 return statement if the function's result type has controlled parts.
6320 Move asserts to Build_In_Place_Formal.
6321 (Move_Final_List): New function to create the call statement.
6322 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
6323 tagged type, replace generation of call to the run-time subprogram
6324 CW_Membership by call to Build_CW_Membership.
6325 (Expand_N_Return_Statement): Replace generation of call to the run-time
6326 subprogram Get_Access_Level by call to Build_Get_Access_Level.
6327 (Expand_N_Simple_Function_Return): Replace generation of call to the
6328 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6329
6330 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
6331 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
6332 access to protected operations.
6333 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
6334 master and chain actual parameters to a build-in-place function call
6335 involving tasks.
6336 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
6337 statement.
6338 (Make_Build_In_Place_Call_In_Allocator,
6339 Make_Build_In_Place_Call_In_Anonymous_Context,
6340 Make_Build_In_Place_Call_In_Assignment,
6341 Make_Build_In_Place_Call_In_Object_Declaration): Call
6342 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
6343 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
6344 stubbed procedure with a null body, replace the call with a null
6345 statement without using the full inlining machinery, for efficiency
6346 and to avoid invalid values in source file table entries.
6347
6348 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
6349 renamings of calls to build-in-place functions.
6350
6351 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
6352 provides the functionality of RTE_Available to record components.
6353 (RTU_Entity): The function Entity has been renamed to RTU_Entity
6354 to avoid undesired overloading.
6355 (Entity): New subprogram that returns the entity for the referened
6356 unit. If this unit has not been loaded, it returns Empty.
6357 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
6358 Remove no longer used entities.
6359 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
6360 (RE_Type_Specific_Data): New entity.
6361 (RE_Move_Any_Value): New entity.
6362 (RE_TA_A, RE_Get_Any_Type): New entities.
6363 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
6364 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
6365 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
6366 (Entity): New subprogram that returns the entity for the referened
6367 unit. If this unit has not been loaded, it returns Empty.
6368 (RTE): Addition of a new formal that extends the search to the scopes
6369 of the record types found in the chain of the package.
6370
6371 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
6372 "abstract subprograms must be visible" message, whether or not the type
6373 is an interface; that is, remove the special case for interface types.
6374 (Analyze_Function_Return): Remove error message "return of task objects
6375 is not yet implemented" because this is now implemented.
6376 (Create_Extra_Formals): Add the extra master and activation chain
6377 formals in case the result type has tasks.
6378 Remove error message "return of limited controlled objects is not yet
6379 implemented".
6380 (Create_Extra_Formals): Add the extra caller's finalization list formal
6381 in case the result type has controlled parts.
6382 (Process_Formals): In case of access formal types there is no need
6383 to continue with the analysis of the formals if we already notified
6384 errors.
6385 (Check_Overriding_Indicator): Add code to check overriding of predefined
6386 operators.
6387 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
6388 flags for formals that do not require them,.
6389 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
6390 hidden entity is use visible or directly visible.
6391 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
6392 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
6393 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
6394 New_Overloaded_Entity): Split Is_Abstract flag into
6395 Is_Abstract_Subprogram and Is_Abstract_Type.
6396
6397 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
6398 a return statement's finalization list to the caller's list, used for
6399 build-in-place functions with result type with controlled parts.
6400 Remove no longer used entities.
6401
6402 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
6403 longer needed, because the full type is now limited, and therefore a
6404 pass-by-reference type.
6405 (Foreign_Task_Level): New constant.
6406
6407 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
6408 move tasks from the activation chain belonging to a return statement to
6409 the one passed in by the caller, and update the master to the one
6410 passed in by the caller.
6411 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
6412 of unactivated tasks, so we don't kill the ones that are being returned
6413 by a build-in-place function.
6414 (Create_Task): Ignore AI-280 for foreign threads.
6415
64162007-04-06 Ed Schonberg <schonberg@adacore.com>
6417 Robert Dewar <dewar@adacore.com>
6418 Bob Duff <duff@adacore.com>
6419 Gary Dismukes <dismukes@adacore.com>
6420
6421 * errout.adb (Unwind_Internal_Type): Use predicate
6422 Is_Access__Protected_Subprogram_Type.
6423
6424 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
6425 (Freeze_Entity, packed array case): Do not override explicitly set
6426 alignment and size clauses.
6427 (Freeze_Entity): An entity declared in an outer scope can be frozen if
6428 the enclosing subprogram is a child unit body that acts as a spec.
6429 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
6430 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
6431 Remove all code for DSP option
6432
6433 * layout.adb (Layout_Record_Type): Use First/
6434 Next_Component_Or_Discriminant
6435 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
6436 to handle properly the anonymous access case.
6437
6438 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
6439 for all access attributes, because overload resolution should work the
6440 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
6441 causes the error message for the ambiguous "X'Access = Y'Access" and
6442 "X'Unrestricted_Access = Y'Access" and so forth to match.
6443 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
6444 now that anonymous access to protected operations have their own kind.
6445 (Resolve_Attribute): In case of dispatching call check the violation of
6446 restriction No_Dispatching_Calls.
6447 (Check_Array_Type): Check new -gnatyA array index style option
6448
6449 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
6450 attempt to derive from a synchronized tagged type.
6451 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
6452 type, inherit the class-wide type already created, because it may
6453 already have been used in a self-referential anonymous access component.
6454 (Mentions_T): Recognize self-referential anonymous access components
6455 that use (a subtype of) the class-wide type of the enclosing type.
6456 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
6457 Derived_Type for Prev formal on call to
6458 Check_Anonymous_Access_Components rather than Empty.
6459 (Make_Incomplete_Type_Declaration): Add test for case where the type has
6460 a record extension in deciding whether to create a class-wide type,
6461 rather than just checking Tagged_Present.
6462 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
6463 to stand-alone object declarations as well as component declarations.
6464 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
6465 prevent accidental overwriting when enclosing package appears in
6466 a limited_with_clause.
6467 (Array_Type_Declaration): If the component type is an anonymous access,
6468 the associated_node for the itype is the type declaration itself.
6469 (Add_Interface_Tag_Components): Modified to support concurrent
6470 types with abstract interfaces.
6471 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
6472 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
6473 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
6474 to complete the decoration of synchronized interface types. Add also
6475 a call to Check_Abstract_Interfaces to verify the ARM rules.
6476 (Derive_Interface_Subprograms): Modified to support concurrent types
6477 with abstract interfaces.
6478 (Analyze_Subtype_Indication): Resolve the range with the given subtype
6479 mark, rather than delaying the full resolution depending on context.
6480 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
6481 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
6482 Array_Type_Declaration,Build_Derived_Record_Type,
6483 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
6484 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
6485 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
6486 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6487 called only when appropriate.
6488 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
6489 to private type.
6490 (Analyze_Subtype_Declaration): For an access subtype declaration, create
6491 an itype reference for the anonymous designated subtype, to prevent
6492 scope anonmalies in gigi.
6493 (Build_Itype_Reference): New utility, to simplify construction of such
6494 references.
6495
64962007-04-06 Vincent Celier <celier@adacore.com>
6497
6498 * errutil.adb (Initialize): Initialize warnings table, if all warnings
6499 are suppressed, supply an initial dummy entry covering all possible
6500 source locations.
6501
6502 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
6503 and start with only one, such as "-RTS=none".
6504 (Collect_Arguments): Do not check for sources outside of projects.
6505 Do not collect arguments if project is externally built.
6506 (Compile_Sources): Do nothing, not even check if the source is up to
6507 date, if its project is externally built.
6508 (Compile): When compiling a predefined source, add -gnatpg
6509 as the second switch, after -c.
6510 (Compile_Sources): Allow compilation of Annex J renames without -a
6511 (Is_In_Object_Directory): Check if the ALI file is in the object
6512 even if there is no project extension.
6513 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
6514 gnatbind if the ALI file effectively exists.
6515 (Initialize): Add the directory where gnatmake is invoked in front of
6516 the path if it is invoked from a bin directory, even without directory
6517 information, so that the correct GNAT tools will be used when spawned
6518 without directory information.
6519
6520 * makeusg.adb: Change switch -S to -eS
6521 Add lines for new switches -we, -wn and -ws
6522 Add line for new switch -p
6523
6524 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
6525 Treat_As_Error and there are warnings.
6526
6527 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
6528 -gnatww Change gnatmake switch -S to -eS
6529 (Scan_Make_Switches): Code reorganisation. Process separately multi
6530 character switches and single character switches.
6531 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
6532 False when switch is not recognized by gnatmake.
6533 (Scan_Make_Switches): Set Setup_Projects True when -p or
6534 --create-missing-dirs is specified.
6535
6536 * fname.adb (Is_Predefined_File_Name): Return True for annex J
6537 renamings Calendar, Machine_Code, Unchecked_Conversion and
6538 Unchecked_Deallocation only when Renamings_Included is True.
6539
6540 * par.adb: Allow library units Calendar, Machine_Code,
6541 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
6542 when -gnatg is not specified.
6543 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
6544 there is no need to generate always a record_definition_node in case
6545 of synchronized interface types.
6546 (SIS_Entry_Active): Initialize global variable to False
6547 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
6548 indicate cases where AI-447 says "not null" is legal.
6549
6550 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
6551
6552 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
6553 files with with several lines starting with the object fileb name.
6554 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
6555 is specified.
6556 (Initialize): Add the directory where gprmake is invoked in front of the
6557 path, if it is invoked from a bin directory or with directory
6558 information, so that the correct GNAT tools will be used when invoked
6559 directly.
6560 (Check_Compilation_Needed): Process correctly backslashes on Windows.
6561
6562 * vms_data.ads: Update switches/qualifiers
6563
65642007-04-06 Ed Schonberg <schonberg@adacore.com>
6565 Thomas Quinot <quinot@adacore.com>
6566
6567 * exp_aggr.adb:
6568 If the array component is a discriminated record, the array aggregate
6569 is non-static even if the component is given by an aggregate with
6570 static components.
6571 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
6572 (Convert_Aggr_In_Allocator): If the allocator is for an access
6573 discriminant and the type is controlled. do not place on a finalization
6574 list at this point. The proper list will be determined from the
6575 enclosing object.
6576 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
6577 initialize record controller if needed, before the components, to ensure
6578 that they are properly finalized.
6579 (Build_Record_Aggr_Code): For the case of an array component that has a
6580 corresponding array aggregate in the record aggregate, perform sliding
6581 if required.
6582
65832007-04-06 Javier Miranda <miranda@adacore.com>
6584 Gary Dismukes <dismukes@adacore.com>
6585 Ed Schonberg <schonberg@adacore.com>
6586
6587 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
6588 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
6589
6590 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
6591 accessibility on class-wide allocators if the allocator occurs at the
6592 same scope level as the allocator's type. The check is guaranteed to
6593 succeed in that case, even when the expression originates from a
6594 parameter of the containing subprogram.
6595 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
6596 under No_Dispatching_Calls restriction. During the semantic analysis
6597 we already notified such violation.
6598 (Tagged_Membership): Constant folding. There is no need to check
6599 the tag at run-time if the type of the right operand is non
6600 class-wide abstract.
6601 Replace call to Is_Ancestor by call to Is_Parent
6602 to support concurrent types with interface types.
6603 (Expand_N_Allocator): Add an assertion associated with the generation
6604 of the master_id.
6605 (Expand_N_Slice): Do not enable range check to nodes associated
6606 with the frontend expansion of the dispatch table.
6607 (Is_Local_Access_Discriminant): Subsidiary function to
6608 Expand_N_Allocator.
6609 (Tagged_Membership): Replace generation of call to the run-time
6610 subprogram CW_Membership by call to Build_CW_Membership.
6611 (Expand_Allocator_Expression): Replace generation of call to the
6612 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6613
6614 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
6615 initialize most the TSD components by means of an aggregate.
6616 Modify the declaration of the object containing the TSD
6617 because we now expand code that has a higher level of abstraction.
6618 The TSD has a discriminant containing the Inheritance Depth Level,
6619 value that is used in the membership test but also to fix the size
6620 of the table of ancestors.
6621 (Expand_Interface_Conversion): Insert function body at the closest place
6622 to the conversion expression, to prevent access-before-elaboration
6623 errors in the backend.
6624 Code improved to reduce the size of the dispatch table if
6625 compiling under restriction No_Dispatching_Calls plus code cleanup.
6626 Code reorganization plus removal of calls to Set_Num_Prim_Ops
6627 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
6628 (Expand_Dispatching_Call): Minor code reorganization plus addition of
6629 code to return immediately if compiling under No_Dispatching_Calls
6630 restriction.
6631 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
6632 CPP_Virtual and CPP_Vtable are no longer supported.
6633 (Expand_Interface_Conversion): Add missing support for interface type
6634 derivations.
6635 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
6636 Is_Parent to support concurrent types with interfaces.
6637 (Init_Predefined_Interface_Primitives): Removed.
6638 (Make_Secondary_DT): Modified to support concurrent record types.
6639 (Set_All_DT_Position): Modified to support concurrent record types.
6640 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6641 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
6642 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
6643 with CW_Membership.
6644 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6645 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
6646 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
6647 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
6648 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
6649 (Expand_Dispatching_Call): Replace generation of call to the run-time
6650 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
6651 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
6652 Address.
6653 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
6654 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
6655 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
6656 Build_Set_Prim_Op_Address.
6657 (Get_Remotely_Callable): Subprogram removed.
6658 (Init_Predefined_Interface_Primitives): Replace generation of call to
6659 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
6660 Prims.
6661
6662 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
6663 First (Parameter_Associations ()) with the call to First_Actual that
6664 returns an actual parameter expression for both named and positional
6665 associations.
6666
6667 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
6668 check violation of restriction No_Dispatching_Calls.
6669 (Check_Controlling_Type): A formal of a tagged incomplete type is a
6670 controlling argument.
6671
6672 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
6673 First/Next_Component_Or_Discriminant
6674 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
6675 (Find_Implemented_Interface): Removed. All the calls to this subprogram
6676 specify Any_Limited_Interface, and this functionality is already
6677 provided by the function Has_Abstract_Interfaces.
6678 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
6679 support concurrent types implementing interfaces.
6680 (Find_Implemented_Interface): Removed. All the calls to this subprogram
6681 specify kind Any_Limited_Interface, and this functionality is already
6682 provided by the function Has_Abstract_Interfaces.
6683 (Remove_Side_Effects): replace Controlled_Type by
6684 CW_Or_Controlled_Type whenever the issue is related to
6685 using or not the secondary stack.
6686
6687 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
6688 P_Interface_Type_Definition to fulfill the new interface (the formal
6689 Is_Synchronized is no longer required).
6690
6691 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
6692 Update dependencies.
6693
6694 * exp_atag.ads, exp_atag.adb: New file
6695
66962007-04-06 Ed Schonberg <schonberg@adacore.com>
6697 Bob Duff <duff@adacore.com>
6698 Cyrille Comar <comar@adacore.com>
6699
6700 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
6701 anonymous, use finalization list of enclosing dynamic scope.
6702 (Expand_N_Package_Declaration): For a library package declaration
6703 without a corresponding body, generate RACW subprogram bodies in the
6704 spec (just as we do for the task activation call).
6705 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
6706 Is_Abstract_Type. Make sure these are called only when appropriate.
6707 Remove all code for DSP option
6708 (CW_Or_Controlled_Type): new subprogram.
6709
67102007-04-06 Eric Botcazou <botcazou@adacore.com>
6711 Ed Schonberg <schonberg@adacore.com>
6712 Gary Dismukes <dismukes@adacore.com>
6713
6714 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
6715 parameter. If it is set to true, return a result capped according to
6716 the global upper bound for the index of an entry family.
6717 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
6718 (Build_Find_Body_Index): Adjust for above change.
6719 (Entry_Index_Expression): Likewise.
6720 (Is_Potentially_Large_Family): New function extracted from...
6721 (Collect_Entry_Families): ...here. Call it to detect whether the family
6722 is potentially large.
6723 (Build_Entry_Count_Expression): If the family is potentially large, call
6724 Family_Size with 'Cap' set to true.
6725 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
6726 a protected version of an operation declared in the private part of
6727 a protected object, because they may be invoked through a callback.
6728 (Set_Privals): If the type of a private component is an anonymous access
6729 type, do not create a new itype for each protected body.
6730 If the body of a protected operation creates
6731 controlled types (including allocators for class-widetypes), the
6732 body of the corresponding protected subprogram must include a
6733 finalization list.
6734 (Build_Activation_Chain_Entity): Build the chain entity for extended
6735 return statements.
6736 (Type_Conformant_Parameters): Use common predicate Conforming_Types
6737 to determine whether operation overrides an inherited primitive.
6738 (Build_Wrapper_Spec): Add code to examine the parents while looking
6739 for a possible overriding candidate.
6740 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
6741 hold an actual parameter value since its initialization is separated
6742 from the the declaration. Prevents errors on null-excluding access
6743 formals.
6744
67452007-04-06 Thomas Quinot <quinot@adacore.com>
6746
6747 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
6748 Do an Unchecked_Conversion to handle the passage from the Underlying
6749 Type to the Base Type when calling Build_To_Any_Call and
6750 Build_From_Any_Call.
6751 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
6752 E_Constant, depending upon Variable formal.
6753 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6754 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
6755 parameter that requires an extra constrained parameter, declare
6756 temporary for actual as a variable, not a constant.
6757 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
6758 the unit being compiled is the one that contains the stub type.
6759 Change primitive operation name for the RACW associated with a RAS
6760 from Call to _Call so it cannot clash with any legal identifier.
6761 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
6762 Is_RAS.
6763 (Append_RACW_Bodies): New subprogram.
6764 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
6765 Add_Receiving_Stubs_To_Declarations functions.
6766 When expanding a package body, this list correspond to the
6767 statements in the HSS at the end of the pacakge.
6768 When expanding a package spec, this list correspond to the
6769 spec declarations.
6770 (Add_Receiving_Stubs_To_Declarations): Append the function
6771 registering the receiving stubs at the end of the 'Stmts' list.
6772 (RCI_Package_Locator): Pass the new Version generic formal when
6773 instantiating a RCI_Locator package.
6774 (Build_From_Any_Function): To compute the High bound for an
6775 unconstrained array actual, we add the Low bound with the length.
6776 Thus we must convert the low bound and the length to an appropriate
6777 type before doing the sum.
6778 (Build_Subprogram_Receiving_Stubs, PolyORB):
6779 * Retrieve the extra formals parameters at the
6780 end of the parameter stream.
6781 * Use Move_Any_Value to write back out parameters
6782 after executing the request as it is more efficient
6783 than Copy_Any_Value.
6784 * Build the any containing Extra Formals with the
6785 appropriate typecode.
6786 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
6787 empty Component_List.
6788 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
6789 the tree the declaration for an object that serves as actual parameter
6790 in server-side stubs.
6791 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6792 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6793 Use Build_Actual_Object_Declaration to prepare the actuals.
6794 (Add_Parameter_To_NVList): Set the parameter mode to In for
6795 Extra Constrained Parameters.
6796 (Build_General_Calling_Stubs): Set the parameter type to boolean for
6797 Extra Constrained parameters.
6798 (Build_To_Any_Function, Build_From_Any_Function,
6799 Built_TypeCode_Function): When Typ is implicit, call the correct
6800 function with the first not implicit parent type.
6801 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
6802 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
6803 typecode from the Etype. Therefore we retrieve the correct typecode
6804 with a call to Get_Any_Type.
6805 (Copy_Specification): Do controlling formal type substitution based on
6806 Is_Controlling_Formal flag, instead of caller-provided object type.
6807 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
6808 a RACW primitive operation, we might get a subprogram declaration for an
6809 ancestor of the RACW designated type (not for the designated type
6810 itself), in the case where this operation is inherited. In this case we
6811 have no easy means of determining the original tagged type for which
6812 the primitive was declared, so instead we now rely on
6813 Copy_Specification to use the Is_Controlling_Formal flag to determine
6814 which formals require type substitution.
6815
68162007-04-06 Robert Dewar <dewar@adacore.com>
6817 Ed Schonberg <schonberg@adacore.com>
6818
6819 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
6820 GNAT.Current_Exception are not allowed if pragma Restrictions
6821 (No_Exception_Propagation) is set and in any case make the associated
6822 handler unsuitable as a target for a local raise statement.
6823 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
6824 run-time subprogram CW_Membership by call to Build_CW_Membership.
6825 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
6826 by a function call, a temporary must be created before expanding the
6827 Constructor_Call itself, to prevent out-of-order elaboration in the
6828 back-end when stack checking is enabled..
6829
68302007-04-06 Ed Schonberg <schonberg@adacore.com>
6831
6832 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
6833 result are the bounds of the left operand, not the right.
6834
68352007-04-06 Ed Schonberg <schonberg@adacore.com>
6836
6837 * exp_strm.adb
6838 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
6839 discriminant defaults.
6840 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
6841 (Make_Component_List_Attributes): Ditto.
6842
68432007-04-06 Ed Schonberg <schonberg@adacore.com>
6844 Bob Duff <duff@adacore.com>
6845
6846 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
6847 an association with a box as providing a value even though the
6848 initialization procedure for the type is not available.
6849 (Resolve_Record_Aggregate): Check that a choice of an association with a
6850 box corresponds to a component of the type.
6851 (Resolve_Record_Aggregate): Split Is_Abstract flag into
6852 Is_Abstract_Subprogram and Is_Abstract_Type.
6853
6854 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
6855 assert.
6856
6857 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
6858 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6859 called only when appropriate.
6860
68612007-04-06 Olivier Hainque <hainque@adacore.com>
6862
6863 * g-alleve.ads (Low Level Vector type definitions): Map each to the
6864 associated vector view instead of all to the unsigned char view.
6865
6866 * g-altcon.adb (Generic_Conversions): New internal generic package,
6867 offering facilities for all the Vector/View conversion routines
6868 implemented by this unit.
6869 (To_View/To_Vector - all versions): Reimplemented in a systematic
6870 manner, using the internal Generic_Conversions facilities.
6871
68722007-04-06 Pascal Obry <obry@adacore.com>
6873
6874 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
6875 string.
6876 (Create): Free the source string before storing the new one.
6877
68782007-04-06 Vincent Celier <celier@adacore.com>
6879
6880 * g-debpoo.adb (Validity): New package with a complete new
6881 implementation of subprograms Is_Valid and Set_Valid.
6882 (Is_Valid): Move to local package Validity
6883 (Set_Valid): Move to local package Validity
6884
68852007-04-06 Arnaud Charlet <charlet@adacore.com>
6886
6887 * g-expect.adb (Get_Command_Output): When expanding the output buffer
6888 we must ensure that there is enough place for the new data we are going
6889 to copy in.
6890
68912007-04-06 Thomas Quinot <quinot@adacore.com>
6892
6893 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
6894 computation.
6895
68962007-04-06 Jose Ruiz <ruiz@adacore.com>
6897 Vincent Celier <celier@adacore.com>
6898
6899 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
6900 (Stack_String): Add this String that contains the name of the Stack
6901 package in the project file.
6902 (Packages_To_Check_By_Stack): Add this list that contains the packages
6903 to be checked by gnatstack, which are the naming and the stack packages.
6904 (Check_Files): If no .ci files were specified for gnatstack we add all
6905 the .ci files belonging to the projects, including binder generated
6906 files.
6907 (Non_VMS_Usage): Document that gnatstack accept project file switches.
6908 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
6909 Add gnatstack to the list of commands that use project file related
6910 switches, and get the single attribute Switches from the stack package
6911 in a project file when calling gnatstack. Parse the -U flag for
6912 processing files belonging to all projects in the project tree.
6913 Remove all processing for command Setup
6914
6915 * prj-attr.adb: Add new package Stack with single attribute Switches
6916
6917 * vms_conv.ads (Command_Type): Add command Stack.
6918 Move to body declarations that are only used in the body: types Item_Id,
6919 Translation_Type, Item_Ptr, Item and its subtypes.
6920
6921 * vms_conv.adb: (Initialize): Add data for new command Stack.
6922 Add declarations moved from the spec: types Item_Id, Translation_Type,
6923 Item_Ptr, Item and its subtypes.
6924 (Cargs_Buffer): New table
6925 (Cargs): New Boolean global variable
6926 (Process_Buffer): New procedure to create arguments
6927 (Place): Put character in table Buffer or Cargs_Buffer depending on the
6928 value of Cargs.
6929 (Process_Argument): Set Cargs when processing qualifiers for GNAT
6930 COMPILE
6931 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
6932 empty, for table Cargs_Buffer.
6933 (Initialize): Remove component Setup in Command_List
6934
69352007-04-06 Vincent Celier <celier@adacore.com>
6936
6937 * gprep.adb (Process_Files.Process_One_File): Use full file name when
6938 issuing pragma Source_Reference.
6939
69402007-04-06 Emmanuel Briot <briot@adacore.com>
6941
6942 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
6943 [[:xdigit:]] character class.
6944 Also raise an exception when an invalid character class is used.
6945
69462007-04-06 Pascal Obry <obry@adacore.com>
6947
6948 * i-cstrea.ads: (fopen): Add encoding parameter.
6949 (freopen): Idem.
6950 Change reference from a-sysdep.c to sysdep.c in comment.
6951 Update copyright notice.
6952 This set of patch add support for the encoding form parameter.
6953
6954 * mingw32.h (S2WSU): New macro to convert from a string to a
6955 wide-string using the UTF-8 encoding. The S2WS macro supports now only
6956 standard 8bits encoding.
6957 (WS2SU): As above but converting from wide-sring to string.
6958 This is needed as it is necessary to have access to both versions in the
6959 runtime for the form parameter encoding support.
6960 This set of patch add support for the encoding form parameter.
6961 (S2WS): Improve implementation to handle cases where the filename is not
6962 UTF-8 encoded. In this case we default to using the current code page
6963 for the conversion.
6964
6965 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
6966 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
6967 the constants defined in adaint.h.
6968 (fopen): Add encoding parameter.
6969 (freopen): Idem.
6970
6971 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
6972 encoding. This is needed for the Reset routine (freopen low level-call).
6973
6974 * s-fileio.adb (Open): Decode encoding form parameter and set the
6975 corresponding encoding value into AFCB structure.
6976 (Reset): Pass the encoding value to freopen.
6977 (Close): Move the call to Lock_Task to the beginning of the procedure.
6978
69792007-04-06 Geert Bosch <bosch@adacore.com>
6980 Robert Dewar <dewar@adacore.com>
6981
6982 * i-fortra.ads: Add Double_Complex type.
6983
6984 * impunit.adb: (Is_Known_Unit): New function
6985 Add Gnat.Byte_Swapping
6986 Add GNAT.SHA1
6987 Add new Ada 2005 units
6988 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
6989 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
6990 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
6991 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
6992
6993 * impunit.ads (Is_Known_Unit): New function
6994
6995 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
6996 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
6997 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
6998 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
6999 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
7000 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
7001 New files.
7002
7003 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
7004
7005 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
7006
70072007-04-06 Eric Botcazou <botcazou@adacore.com>
7008 Arnaud Charlet <charlet@adacore.com>
7009
7010 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
7011 __gnat_adjust_context_for_raise.
7012 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
7013 implementation of floating point operations as native x86 targets.
7014 So the FPU should be initialized in the same way using finit. Fix
7015 floating point operations accuracy issues.
7016 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
7017 member in struct sigaction, so as to avoid warning for incompatible
7018 pointer types.
7019
70202007-04-06 Serguei Rybin <rybin@adacore.com>
7021
7022 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
7023 switches from previously loaded tree
7024
70252007-04-06 Thomas Quinot <quinot@adacore.com>
7026
7027 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
7028 cases where a given dependency has a body or not.
7029 (Write_With_File_Names): New subprogram, common code for the two cases
7030 above.
7031
70322007-04-06 Ed Schonberg <schonberg@adacore.com>
7033 Javier Miranda <miranda@adacore.com>
7034
7035 * lib-xref.ads, lib-xref.adb:
7036 Modify the loop that collects type references, to include interface
7037 types that the type implements. List each of these interfaces when
7038 building the entry for the type.
7039 (Generate_Definition): Initialize component Def and Typ of new entry
7040 in table Xrefs, to avoid to have these components unitialized.
7041 (Output_References): Split Is_Abstract flag into
7042 Is_Abstract_Subprogram and Is_Abstract_Type.
7043 (Generate_Reference): Add barrier to do not generate the warning
7044 associated with Ada 2005 entities with entities generated by the
7045 expander.
7046
70472007-04-06 Robert Dewar <dewar@adacore.com>
7048 Arnaud Charlet <charlet@adacore.com>
7049 Vincent Celier <celier@adacore.com>
7050
7051 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
7052 Update 'Exception Handling Control' chapter which was outdated.
7053 Minor fix to documentation of -gnatwq
7054 Remove section "Adapting the Run Time to a New C++ Compiler" because
7055 it is now obsolete.
7056 Add passage on need of -nostart-files in some non-ada-main cases.
7057 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
7058 Update documentation about Interfacing with C++
7059 Add documentation for new gnatmake switch -p
7060 Add missing protocol part in URLs.
7061 Document -gnatyA
7062 Document pragma Compile_Time_Error
7063 Add documentation for Object_Size indicating that stand alone
7064 objects can have a larger size in some cases.
7065 Add node for GNAT.Byte_Swapping, GNAT.SHA1
7066 Update reference to the Ravenscar profile.
7067 Document pragma Unreferenced_Objects
7068
7069 * gnat-style.texi: Fix typo
7070
70712007-04-06 Vincent Celier <celier@adacore.com>
7072
7073 * mlib.adb (Building_Library): Only output "building a library..." in
7074 verbose mode
7075
7076 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
7077 files in verbose mode.
7078
7079 * mlib-utl.adb (Ar): Only output the first object files when not in
7080 verbose mode.
7081 (Gcc): Do not display all the object files if not in verbose mode, only
7082 the first one.
7083
70842007-04-06 Robert Dewar <dewar@adacore.com>
7085
7086 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
7087 it no longer destroys the contents of Name_Buffer or Name_Len and
7088 non-standard and invalid names are handled better.
7089 (Get_Decoded_Name_String): Improve performance by using
7090 Name_Has_No_Encodings flag in the name table.
7091 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
7092 Used for debugging printouts.
7093
70942007-04-06 Robert Dewar <dewar@adacore.com>
7095 Javier Miranda <miranda@adacore.com>
7096 Bob Duff <duff@adacore.com>
7097
7098 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
7099 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
7100 there is no need to generate always a record_definition_node in case
7101 of synchronized interface types.
7102 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
7103 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
7104 illegal in Ada 95, in cases where it is legal. Change the warnings to
7105 errors in other cases. Don't give the error unless the "not null"
7106 parses properly. Correct the source position at which the error occurs.
7107 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
7108 P_Null_Exclusion, to suppress "not null" warnings.
7109 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
7110 associated goto statements.
7111
7112 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
7113 of END RECORD
7114
7115 * scans.ads (Type_Token_Location): New flag
7116
7117 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
7118 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
7119 P_Null_Exclusion, to suppress "not null" warnings.
7120
71212007-04-06 Robert Dewar <dewar@adacore.com>
7122 Javier Miranda <miranda@adacore.com>
7123 Bob Duff <duff@adacore.com>
7124 Vincent Celier <celier@adacore.com>
7125
7126 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
7127 (Extensions_Allowed): No longer sets Ada_Version
7128 Entry for pragma Unreferenced_Objects
7129
7130 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
7131 system.tasking if pragma priority used in a procedure
7132 (Analyze_Pragma, case Warning): Handle dot warning switches
7133 (Process_Compile_Time_Warning_Or_Error): New procedure
7134 (Analyze_Pragma): Add processing for Compile_Time_Error
7135 Add support for extra arguments External_Name and Link_Name.
7136 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
7137 (Process_Import_Or_Interface): Add support for the use of pragma Import
7138 with tagged types.
7139 (Extensions_Allowed): No longer affects Ada_Version
7140 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
7141 Is_Abstract_Type. Make sure these are called only when appropriate.
7142 Add processing for pragma Unreferenced_Objects
7143
7144 * snames.h, snames.ads, snames.adb: Add entry for pragma
7145 Compile_Time_Error
7146 Add new standard name Minimum_Binder_Options for new gprmake
7147 Add new standard names for gprmake: Archive_Suffix,
7148 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
7149 Library_Support, Library_Version_Options,
7150 Shared_Library_Minimum_Options,
7151 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
7152 Change Name_Call to Name_uCall so that it cannot clash with a legal
7153 subprogram name.
7154 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
7155 Append C_Plus_Plus to convention identifiers as synonym for CPP
7156 Add new standard names Stack and Builder_Switches
7157 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
7158 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
7159 Run_Path_Option, Toolchain_Version.
7160 Entry for pragma Unreferenced_Objects
7161
7162 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
7163 switches, without repetition of "eD". Make sure that last character of
7164 -gnatep= switch is not taken as -gnat switch character.
7165 Complete rewrite of circuit for handling saving compilation options
7166 Occasioned by need to support dot switchs for -gnatw, but cleans up
7167 things in general.
7168 -gnatX does not affect Ada_Version
7169 Include -gnatyA in -gnatg style switches
7170
7171 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
7172 warnings on return objects.
7173 (Warn_On_Useless_Assignment): Exclude warnings on return objects
7174 (Set_Dot_Warning_Switch): New procedure
7175 (Check_References): Add missing case of test for
7176 Has_Pragma_Unreferenced_Objects
7177 (Output_Unreferenced_Messages): Implement effect of new pragma
7178 Unreferenced_Objects, remove special casing of limited controlled
7179 variables.
7180
71812007-04-06 Vincent Celier <celier@adacore.com>
7182
7183 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
7184 the default project path, initially done during elaboration of the
7185 package.
7186 If the prefix returned by Sdefault is null, get the prefix from a call
7187 to Executable_Prefix_Path.
7188 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
7189 null.
7190
7191 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
7192 canonical directory name to open the directory from which files are
7193 retrieved.
7194 (Record_Other_Sources): Idem.
7195 (Locate_Directory): Add the possibility to create automatically missing
7196 directories when Setup_Projects is True.
7197 Call Locate_Directory so that the directory will be created when
7198 Setup_Projects is True, for object dir, library dir, library ALI dir,
7199 library source copy dir and exec dir.
7200
7201 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
7202 versions of GNAT.
7203
72042007-04-06 Robert Dewar <dewar@adacore.com>
7205
7206 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
7207 Use First/Next_Component_Or_Discriminant
7208 (Analyze_Record_Representation_Clause):
7209 Use First/Next_Component_Or_Discriminant
7210 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
7211 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
7212 definition if type is unconstrained.
7213 (Adjust_Record_For_Reverse_Bit_Order): New procedure
7214 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
7215 Is_Abstract_Subprogram and Is_Abstract_Type.
7216 (Adjust_Record_For_Reverse_Bit_Order): New procedure
7217
7218 * repinfo.adb (List_Record_Info): Use First/
7219 Next_Component_Or_Discriminant.
7220
7221 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
7222 New procedure.
7223
7224 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
7225 Include -gnatyA in default switches
7226
7227 * opt.ads: (Warn_On_Non_Local_Exception): New flag
7228 (Warn_On_Reverse_Bit_Order): New flag
7229 (Extensions_Allowed): Update the documentation.
7230 (Warn_On_Questionable_Missing_Parens): Now on by default
7231
7232 * usage.adb: Add documentation of -gnatw.x/X switches
7233 Document new -gnatyA style switch
7234 -gnatq warnings are on by default
7235
72362007-04-06 Ed Falis <falis@adacore.com>
7237
7238 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
7239 full word is no longer compared twice.
7240
72412007-04-06 Ed Schonberg <schonberg@adacore.com>
7242
7243 * sem_ch10.adb (Install_Limited_Context_Clauses.
7244 Expand_Limited_With_Clause): Use a new copy of selector name in the
7245 call to Make_With_Clause. This fixes the tree structure for ASIS
7246 purposes. Nothing is changed in the compiler behaviour.
7247 (Process_Body_Clauses): Handle properly use clauses whose prefix is
7248 a package renaming.
7249 (Install_Limited_With_Clauses): Do not install non-limited view when it
7250 is still incomplete.
7251
72522007-04-06 Ed Schonberg <schonberg@adacore.com>
7253 Gary Dismukes <dismukes@adacore.com>
7254
7255 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
7256 when capturing size information, instead of base type, which for a
7257 formal array type will be the unconstrained type.
7258 (Analyze_Formal_Object_Declaration): Add check for illegal default
7259 expressions for a formal in object of a limited type.
7260 (Instantiate_Object): Ditto.
7261 (Check_Formal_Package_Instance): Skip entities that are formal objects,
7262 because they were defaulted in the formal package and no check applies
7263 to them.
7264 (Check_Formal_Package_Instance): Extend conformance check to other
7265 discrete types beyond Integer.
7266 (Process_Default): Copy directly the unmatched formal. A generic copy
7267 has already been performed in Analyze_Formal_Package.
7268 (Analyze_Associations): If a formal subprogram has no match, check for
7269 partial parametrization before looking for a default, to prevent
7270 spurious errors.
7271 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
7272 not set the instantiation environment before analyzing the actuals.
7273 Fixes regression on 8515-003 with implementation of AI-133.
7274 Set_Instance_Env checks whether the generic unit is a predefined
7275 unit, in which case the instance must be analyzed with the latest Ada
7276 mode. This setting must take place after analysis of the actuals,
7277 because the actuals must be analyzed and frozen in the Ada mode extant
7278 outside of the current instantiation.
7279 (Save_Env, Restore_Env): Preserve and restore the configuration
7280 parameters so that predefined units can be compiled in the proper Ada
7281 mode.
7282 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
7283 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
7284 and Is_Abstract_Type.
7285 (Analyze_Formal_Package): For better error recovery, Add exception
7286 handler to catch Instantion_Error, which can be raised in
7287 Analyze_Associations
7288
72892007-04-06 Ed Schonberg <schonberg@adacore.com>
7290 Bob Duff <duff@adacore.com>
7291 Gary Dismukes <dismukes@adacore.com>
7292
7293 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
7294 prefix type is a discriminated subtype of the type of the formal.
7295 (Analyze_Allocator): Collect all coextensions regardless of the context.
7296 Whether they can be allocated statically is determined in exp_ch4.
7297 (Analyze_Selected_Component): If the prefix is a limited view and the
7298 non-limited view is available, use the non-limited one.
7299 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
7300 therefore illegal), suggest a qualified expression rather than a type
7301 conversion, because a type conversion would be illegal in this context.
7302 (Anayze_Allocator): Trace recursively all nested allocators so that all
7303 coextensions are on the corresponding list for the root. Do no mark
7304 coextensions if the root allocator is within a declaration for a stack-
7305 allocated object, because the access discriminants will be allocated on
7306 the stack as well.
7307 (Analyze_Call): Remove restriction on calls to limited functions for the
7308 cases of generic actuals for formal objects, defaults for formal objects
7309 and defaults for record components.
7310 (Analyze_Allocator): Before analysis, chain coextensions on the proper
7311 element list. Their expansion is delayed until the enclosing allocator
7312 is processed and its finalization list constructed.
7313 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
7314 for an operation with the given name among the primitive operations of
7315 the corresponding record type.
7316 (Analyze_Selected_Component): If the prefix is a task type that
7317 implements an interface, and there is no entry with the given name,
7318 check whether there is another primitive operation (e.g. a function)
7319 with that name.
7320 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
7321 properly the indexing of a function call written in prefix form, where
7322 the function returns an array type, and all parameters of the function
7323 except the first have defaults.
7324 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
7325 the original operands, rather than relocating them, for efficiency and
7326 to work properly when an operand is overloaded.
7327 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
7328 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
7329 (Analyze_Selected_Component): If the prefix is a private extension, only
7330 scan the visible components, not those of the full view.
7331 (Try_Primitive_Operation): If the operation is a procedure, collect all
7332 possible interpretations, as for a function, because in the presence of
7333 classwide parameters several primitive operations of the type can match
7334 the given arguments.
7335
73362007-04-06 Ed Schonberg <schonberg@adacore.com>
7337 Robert Dewar <dewar@adacore.com>
7338
7339 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
7340 tag-indeterminate call to an abstract function, when the left-hand side
7341 is not classwide.
7342 (Analyze_Loop_Statement): Improve detection of infinite loops
7343
73442007-04-06 Ed Schonberg <schonberg@adacore.com>
7345 Thomas Quinot <quinot@adacore.com>
7346
7347 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
7348 out of Analyze_Package_Declaration, because processing must be applied
7349 to package bodies as well, for deferred constants completed by pragmas.
7350 (Analyze_Package_Declaration): When the package declaration being
7351 analyzed does not require an explicit body, call Check_Completion.
7352 (May_Need_Implicit_Body): An implicit body is required when a package
7353 spec contains the declaration of a remote access-to-classwide type.
7354 (Analyze_Package_Body): If the package contains RACWs, append the
7355 pending subprogram bodies generated by exp_dist at the end of the body.
7356 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
7357 Is_Abstract_Subprogram and Is_Abstract_Type.
7358 (Preserve_Full_Attributes): The full entity list is not an attribute
7359 that must be preserved from full to partial view.
7360
7361 * sem_dist.adb (Add_RAS_Dereference_TSS):
7362 Change primitive name to _Call so it cannot clash with any legal
7363 identifier, and be special-cased in Check_Completion.
7364 Mark the full view of the designated type for the RACW associated with
7365 a RAS as Comes_From_Source to get proper view switching when installing
7366 private declarations.
7367 Provite a placeholder nested package body along with the nested spec
7368 to have a place for Append_RACW_Bodies to generate the calling stubs
7369 and stream attributes.
7370
73712007-04-06 Ed Schonberg <schonberg@adacore.com>
7372 Robert Dewar <dewar@adacore.com>
7373
7374 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
7375 that is a limited view, check the non-limited view if available.
7376 (Undefined): Refine error message for missing with of Text_IO
7377 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
7378 to distinguish real missing with cases.
7379 Fix format of all missing with messages
7380 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
7381 renaming as body when renamed entity is abstract.
7382
73832007-04-06 Ed Schonberg <schonberg@adacore.com>
7384 Javier Miranda <miranda@adacore.com>
7385
7386 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
7387 predicate recursive, to handle complex expressions on literals whose
7388 spurious ambiguity comes from the abstract interpretation of some
7389 subexpression.
7390 (Interface_Present_In_Ancestor): Add support to concurrent record
7391 types.
7392 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
7393 Is_Abstract_Subprogram and Is_Abstract_Type.
7394
73952007-04-06 Ed Schonberg <schonberg@adacore.com>
7396 Javier Miranda <miranda@adacore.com>
7397
7398 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
7399 dereference of a local object R created as a reference to another
7400 object O, use the access level of O.
7401 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
7402 rather than local Same_Formal_Type, to check whether protected operation
7403 overrides an inherited one.
7404 (Same_Formal_Type): New predicate, used when matching signatures of
7405 overriding synchronized operations, to handle the case when a formal
7406 has a type that is a generic actual.
7407 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
7408 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
7409 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
7410 syntactic ambiguities involving indexing of function calls that return
7411 arrays.
7412 (Abstract_Interface_List): New subprogram that returns the list of
7413 abstract interfaces associated with a concurrent type or a
7414 concurrent record type.
7415 (Interface_Present_In_Parent): New subprogram used to check if a
7416 given type or some of its parents implement a given interface.
7417 (Collect_Abstract_Interfaces): Add support for concurrent types
7418 with interface types.
7419 (Has_Abstract_Interfaces): Add support for concurrent types with
7420 interface types.
7421 (Is_Parent): New subprogram that determines whether E1 is a parent
7422 of E2. For a concurrent type its parent is the first element of its
7423 list of interface types; for other types this function provides the
7424 same result than Is_Ancestor.
7425 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
7426 (Collect_Synchronized_Interfaces): Removed because the subprogram
7427 Collect_Abstract_Interfaces provides this functionality.
7428 (Collect_Abstract_Interfaces): Minor update to give support to
7429 concurrent types and thus avoid undesired code duplication.
7430 (Get_Subprogram_Entity): Handle entry calls.
7431 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
7432 entry calls.
7433 (Enter_Name): Do not give -gnatwh hiding warning for record component
7434 entities, they never result in hiding.
7435
74362007-04-06 Ed Schonberg <schonberg@adacore.com>
7437 Robert Dewar <dewar@adacore.com>
7438
7439 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
7440 to chain nested components that are allocators for access discriminants
7441 of the enclosing object.
7442 Add N_Push and N_Pop nodes
7443 New field Exception_Label added
7444 (Local_Raise_Statements): New field in N_Exception_Handler_Node
7445 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
7446 (Is_Coextension): New flag for allocators, to mark allocators that
7447 correspond to access discriminants of dynamically allocated objects.
7448 (N_Block_Statement): Document the fact that the corresponding entity
7449 can be an E_Return_Statement.
7450 (Is_Coextension): New flag for allocators.
7451 Remove all code for DSP option
7452
7453 * sprint.ads, sprint.adb: Display basic information for class_wide
7454 subtypes. Add handling of N_Push and N_Pop nodes
7455
74562007-04-06 Arnaud Charlet <charlet@adacore.com>
7457
7458 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
7459 before propagating exception.
7460
74612007-04-06 Olivier Hainque <hainque@adacore.com>
7462
7463 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
7464 an address always within the call instruction from a return address.
7465
74662007-04-06 Olivier Hainque <hainque@adacore.com>
7467 Eric Botcazou <botcazou@adacore.com>
7468
7469 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
7470 expression with a COMPOUND_EXPR including the call instead of emitting
7471 the call directly here.
7472 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
7473 high bound is constant and the slice is empty. Tidy.
7474 (tree_transform, case N_Op_Not): Handle properly the case where the
7475 operation applies to a private type whose full view is a modular type.
7476 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
7477 Address_Clause, use the associated Expression as the GNAT tree
7478 representing the choice value to ensure the corresponding GCC tree is
7479 of the proper kind.
7480 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
7481 instead of just the operands, as the base GCC stabilize_reference does.
7482 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
7483 requested; otherwise fail.
7484 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
7485
74862007-04-06 Thomas Quinot <quinot@adacore.com>
7487
7488 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
7489 implementation of UI_Div.
7490 (UI_Div): Reimplement as a call to UI_Div_Rem.
7491 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
7492 remainder, avoiding the cost of a multiplication and a subtraction.
7493 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
7494 provides both quotient and remainder in a single computation.
7495 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
7496 functions for uint.
7497 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
7498 is undefined if the given n is not inversible.
7499
75002007-04-06 Olivier Hainque <hainque@adacore.com>
7501
7502 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
7503 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
7504 opcodes.
7505
75062007-04-06 Eric Botcazou <botcazou@adacore.com>
7507 Olivier Hainque <hainque@adacore.com>
7508
7509 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
7510 when updating the contents of the old pointer to an unconstrained array.
7511 (end_subprog_body): Set error_gnat_node to Empty.
7512 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
7513 (unchecked_convert): For subtype to base type conversions, require that
7514 the source be a subtype if it is an integer type.
7515 (builtin_decls): New global, vector of available builtin functions.
7516 (gnat_pushdecl): Add global builtin function declaration nodes to the
7517 builtin_decls list.
7518 (gnat_install_builtins): Adjust comments.
7519 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
7520 calling gnat_pushdecl, so that it knows when it handed a builtin
7521 function declaration node.
7522 (builtin_decl_for): Search the builtin_decls list.
7523
75242007-04-06 Eric Botcazou <botcazou@adacore.com>
7525
7526 * s-stchop-vxworks.adb:
7527 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
7528
75292007-04-06 Robert Dewar <dewar@adacore.com>
7530 Arnaud Charlet <charlet@adacore.com>
7531
7532 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
7533
7534 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
7535 of files
7536 Add mention of -Sev (set initialize_scalars option from environment
7537 variable at run time) in gnatbind usage message.
7538
7539 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
7540
7541 * fname-uf.ads: Minor comment fix
7542
7543 * osint.ads: Change pragma Elaborate to Elaborate_All
7544
7545 * par-load.adb: Add documentation.
7546
7547 * sem_cat.ads, sem_cat.adb: Minor code reorganization
7548
7549 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
7550
7551 * s-secsta.ads: Extra comments
7552
7553 * s-soflin.ads: Minor comment fixes
7554
7555 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
7556
7557 * s-wchcon.ads: Minor comment addition
7558
7559 * treepr.adb: Minor change in message
7560 (Print_Name,Print_Node): Make these debug printouts more robust: print
7561 "no such..." instead of crashing on bad input.
7562
47ecd38d
RAE
75632007-03-30 Rafael Avila de Espindola <espindola@google.com>
7564
7565 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
7566 instead of gnat_signed_or_unsigned_type.
7567 * utils.c (gnat_signed_or_unsigned_type): Remove.
7568 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
7569 * gigi.h (gnat_signed_or_unsigned_type): Remove
7570
9645c3c5
RS
75712007-03-09 Roger Sayle <roger@eyesopen.com>
7572
7573 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
7574 fold with the result of buildN.
7575 * decl.c (gnat_to_gnu_entity): Likewise.
7576 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
7577 * utils.c (finish_record_type, merge_sizes, max_size, convert):
7578 Likewise.
7579 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
7580 nonbinary_modular_operation, build_binary_op, build_unary_op,
7581 build_cond_expr): Likewise.
7582
7583 * utils.c (convert): Use fold_build1 when casting values to void.
7584 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
7585 fold_convert instead of convert when appropriate.
7586
c279aa90
BM
75872007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
7588
7589 * Make-lang.in: Add install-pdf target as copied from
7590 automake v1.10 rules.
7591
c2615f30
AS
75922007-02-28 Andreas Schwab <schwab@suse.de>
7593
7594 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
7595 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
7596 (doc/gnat-style.info): Likewise.
7597
7771bb62
BM
75982007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
7599
7600 * gnat-style.texi: Standardize title page.
7601 * gnat_rm.texi: Likewise.
7602 * gnat_ugn.texi: Likewise.
7603
ae19c041
MM
76042007-02-25 Mark Mitchell <mark@codesourcery.com>
7605
7606 * decl.c (annotate_value): Adjust for refactoring of tree_map
7607 hierarchy.
7608
fc8600f9
MM
76092007-02-24 Mark Mitchell <mark@codesourcery.com>
7610
7611 * decl.c (annotate_value): Adjust for refactoring of tree_map
7612 hierarchy.
7613
c0bca7e1
EB
76142007-02-21 Ed Schonberg <schonberg@adacore.com>
7615
7616 PR ada/18819
7617 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
7618 untagged derived type, add hidden components to keep discriminant
7619 layout consistent, when a given discriminant of the derived type
7620 constraints several discriminants of the parent type.
7621
9f3432b8 76222007-02-16 Eric Botcazou <ebotcazou@adacore.com>
6f7f72f9 7623 Sandra Loosemore <sandra@codesourcery.com>
9f3432b8
EB
7624
7625 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
7626 build the call expression.
7627 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
7628 * utils.c (max_size) <tcc_exceptional>: Delete.
7629 <tcc_vl_exp>: New case.
7630 <tcc_expression>: Delete CALL_EXPR subcase.
7631 (build_global_cdtor): Use build_call_nary instead of build3.
7632 * utils2.c (build_call_1_expr): Likewise.
7633 (build_call_2_expr): Likewise.
7634 (build_call_0_expr): Likewise.
7635 (build_call_alloc_dealloc): Likewise.
7636
8438091f
AK
76372007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
7638
7639 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
ed41063a 7640 get_action_description_for): Replace _Unwind_Word with _uleb128_t
8438091f
AK
7641 and _Unwind_SWord with _sleb128_t.
7642
0802f6a2
PB
76432007-02-06 Paolo Bonzini <bonzini@gnu.org>
7644
7645 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
7646 * decl.c: Include gt-ada-decl.h.
7647 (annotate_value_cache): New.
7648 (annotate_value): Use it instead of TREE_COMPLEXITY.
7649
326f9a75
KH
76502007-02-03 Kazu Hirata <kazu@codesourcery.com>
7651
7652 * misc.c, utils2.c: Fix comment typos.
7653
cd259a98
RS
76542007-01-24 Roger Sayle <roger@eyesopen.com>
7655
7656 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
7657 TREE_CONSTANT_OVERFLOW.
7658 (allocatable_size_p, annotate_value): Likewise.
7659 * trans.c (gnat_to_gnu): Likewise.
7660 * utils.c (unchecked_convert): Likewise.
7661 * utils2.c (build_simple_component_ref): Likewise.
7662
5305be7e
RG
76632007-01-23 Richard Guenther <rguenther@suse.de>
7664
7665 PR bootstrap/30541
7666 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
7667 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
7668 (gnatboot3): Likewise.
7669 (GNATBIND): Do not define.
7670 * Makefile.in (GNATBIND): Do not define.
7671
2ac7cbb5
RG
76722007-01-08 Richard Guenther <rguenther@suse.de>
7673
7674 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
7675 * trans.c (gnat_to_gnu): Likewise.
7676
2989d30c
GK
76772006-12-07 Geoffrey Keating <geoffk@apple.com>
7678
7679 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
7680 * adaint.c: Likewise.
7681
5848e34a
EB
76822006-12-05 Aldy Hernandez <aldyh@redhat.com>
7683
6f7f72f9 7684 Merge from gimple-tuples-branch:
5848e34a 7685 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
6f7f72f9 7686
5848e34a
EB
7687 * ada-tree.h (lang_tree_node): Handle gimple tuples.
7688 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
7689 GIMPLE_MODIFY_STMT.
7690
d3c56bc8
KH
76912006-12-02 Kazu Hirata <kazu@codesourcery.com>
7692
7693 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
7694 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
7695 Fix typos.
7696
9fa25ead
EB
76972006-11-17 Eric Botcazou <ebotcazou@adacore.com>
7698
7699 PR ada/27936
7700 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
7701 if the initializer takes into account the padding.
7702
f9f770a8
RG
77032006-11-11 Richard Guenther <rguenther@suse.de>
7704
7705 * trans.c (maybe_stabilize_reference): Remove handling of
7706 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
7707
75c0ed05
AC
77082006-11-05 Arnaud Charlet <charlet@adacore.com>
7709
ed41063a 7710 PR ada/29707
75c0ed05
AC
7711 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
7712 (To_Target_Priority): New function.
75c0ed05 7713
70198b9f
AC
77142006-10-31 Robert Dewar <dewar@adacore.com>
7715
7716 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
7717 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
7718 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
7719 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
7720 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
7721 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
7722 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
7723 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
7724 a-szbzha.adb: Minor reformatting. Fix header.
7725
7726 * a-numaux-x86.adb: Add parentheses for use of unary minus
7727 * a-ngcefu.adb: Supply missing parentheses for unary minus
7728 * a-ngcoty.adb: Add parens for use of unary minus
7729 * a-ngelfu.adb: Add missing parens for unary minus
7730 * a-tifiio.adb: Add parentheses for uses of unary minus
7731
77322006-10-31 Robert Dewar <dewar@adacore.com>
7733 Bob Duff <duff@adacore.com>
7734 Ed Schonberg <schonberg@adacore.com>
7735
6f7f72f9 7736 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
70198b9f
AC
7737 with multiplying operator.
7738 (Expected_Type_Is_Any_Real): New function to determine from the Parent
7739 pointer whether the context expects "any real type".
7740 (Resolve_Arithmetic_Op): Do not give an error on calls to the
7741 universal_fixed "*" and "/" operators when they are used in a context
7742 that expects any real type. Also set the type of the node to
7743 Universal_Real in this case, because downstream processing requires it
7744 (mainly static expression evaluation).
7745 Reword some continuation messages
7746 Add some \\ sequences to continuation messages
7747 (Resolve_Call): Refine infinite recursion case. The test has been
7748 sharpened to eliminate some false positives.
7749 Check for Current_Task usage now includes entry barrier, and is now a
7750 warning, not an error.
7751 (Resolve): If the call is ambiguous, indicate whether an interpretation
7752 is an inherited operation.
7753 (Check_Aggr): When resolving aggregates, skip associations with a box,
7754 which are priori correct, and will be replaced by an actual default
7755 expression in the course of expansion.
7756 (Resolve_Type_Conversion): Add missing support for conversion from
7757 a class-wide interface to a tagged type. Minor code cleanup.
7758 (Valid_Tagged_Converion): Add support for abstact interface type
7759 conversions.
7760 (Resolve_Selected_Component): Call Generate_Reference here rather than
7761 during analysis, and use May_Be_Lvalue to distinguish read/write.
7762 (Valid_Array_Conversion): New procedure, abstracted from
7763 Valid_Conversion, to incorporate accessibility checks for arrays of
7764 anonymous access types.
7765 (Valid_Conversion): For a conversion to a numeric type occurring in an
7766 instance or inlined body, no need to check that the operand type is
7767 numeric, since this has been checked during analysis of the template.
7768 Remove legacy test for scope name Unchecked_Conversion.
7769
7770 * sem_res.ads: Minor reformatting
7771
7772 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
7773 (PE_Current_Task_In_Entry_Body): New exception code
7774 (SE_Restriction_Violation): Removed, not used
7775
7776 * a-except.ads: Update comments.
7777
7778 * types.h, types.ads: Add definition for Validity_Check
7779 (PE_Current_Task_In_Entry_Body): New exception code
7780 (SE_Restriction_Violation): Removed, not used
7781
77822006-10-31 Thomas Quinot <quinot@adacore.com>
7783
7784 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
7785 error status.
7786
77872006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
7788 Jose Ruiz <ruiz@adacore.com>
7789
7790 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
7791 part of Ada.Calendar: all subprogram raise Unimplemented.
7792 (Split_W_Offset): Temp function body, raising Unimplemented
7793
7794 * a-calend.ads, a-calend-vms.ads:
7795 Add imported variable Invalid_TZ_Offset used to designate targets unable
7796 to support time zones.
7797 (Unimplemented): Temporary function raised by the body of new
7798 subprograms below.
7799 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
7800 unit provides handling of leap seconds and is used by the new Ada 2005
7801 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
7802 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
7803 version returns an extra value which is the offset to UTC.
7804
7805 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
7806 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
7807 (Split_W_Offset): New function body.
7808 (Time_Of): When a date is close to UNIX epoch, compute the time for
7809 that date plus one day (that amount is later substracted after
7810 executing mktime) so there are no problems with time zone adjustments.
7811
7812 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
7813
7814 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
7815 a-catizo.ads, a-catizo.adb: New files.
7816
6f7f72f9 7817 * impunit.adb: Add new Ada 2005 entries
70198b9f
AC
7818
7819 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
7820 Rename all occurences of "__gnat_localtime_r" to
7821 "__gnat_localtime_tzoff".
7822 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
7823 zone data and calculate the GMT offset.
7824 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
7825 Use the field "tm_gmtoff" to extract the GMT offset.
7826 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
7827 the external variable "timezone" to calculate the GMT offset.
7828
78292006-10-31 Arnaud Charlet <charlet@adacore.com>
7830 Jose Ruiz <ruiz@adacore.com>
7831
7832 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
7833 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
7834 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
7835 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
7836 System.Any_Priority to a POSIX priority on the target.
7837
7838 * system-linux-ia64.ads:
7839 Extend range of Priority types on Linux to use the whole range made
7840 available by the system.
7841
7842 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
7843 function maps from System.Any_Priority to a POSIX priority on the
7844 target.
7845 (PTHREAD_PRIO_PROTECT): Set real value.
7846 (PTHREAD_PRIO_INHERIT): Now a function.
7847 (SIGCPUFAIL): New signal.
7848 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
7849 are documented as reserved by the OS.
7850
7851 * system-aix.ads: Use the full range of priorities provided by the
7852 system on AIX.
7853
7854 * s-taprop-posix.adb: Call new function To_Target_Priority.
7855 (Set_Priority): Take into account Task_Dispatching_Policy and
7856 Priority_Specific_Dispatching pragmas when determining if Round Robin
7857 must be used for scheduling the task.
7858
7859 * system-linux-x86_64.ads, system-linux-x86.ads,
7860 system-linux-ppc.ads: Extend range of Priority types on Linux to use
7861 the whole range made available by the system.
7862
7863 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
7864 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
7865 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
7866 when deallocating the TCB in order to avoid potential references to
7867 deallocated data.
7868 (Set_Priority): Take into account Task_Dispatching_Policy and
7869 Priority_Specific_Dispatching pragmas when determining if Round Robin
7870 or FIFO within priorities must be used for scheduling the task.
7871
7872 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
7873 the Thread field (to be used internally by the run-time system) and the
7874 kernel-level task id in the LWP field (to be used by the debugger).
7875 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
7876 instance, and propagate the current task options to the spawned task.
7877 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
7878 (Initialize): Set Round Robin dispatching when the corresponding pragma
7879 is in effect.
7880
78812006-10-31 Robert Dewar <dewar@adacore.com>
7882
7883 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7884 system-linux-hppa.ads, system-hpux-ia64.ads,
7885 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
7886 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7887 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7888 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
7889 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7890 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7891 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
7892 Default_Bit_Order) to kill constant condition warnings for references
7893 to this switch.
7894
78952006-10-31 Vincent Celier <celier@adacore.com>
7896 Eric Botcazou <ebotcazou@adacore.com>
7897
7898 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
7899 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
7900 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
7901 Ext_To, when building the library file name
7902
7903 * mlib-tgt-vxworks.adb: ditto.
7904 (Get_Target_Suffix): Add support for x86 targets.
7905
7906 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
7907
7908 * mlib-tgt-darwin.adb:
7909 Use Append_To, instead of Ext_To, when building the library file name
7910 (Flat_Namespace): New global variable.
7911 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
7912 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
7913 (Link_Shared_Libgcc): Delete.
7914 (Build_Dynamic_Library): Adjust for above changes.
7915 Use Opt package.
7916 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
7917
79182006-10-31 Eric Botcazou <ebotcazou@adacore.com>
7919
7920 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
7921 (Initialize): Add type conversions required by above change.
7922
79232006-10-31 Jose Ruiz <ruiz@adacore.com>
7924
7925 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
7926 (getpid): New body for this function that uses the underlying taskIdSelf
7927 function for VxWorks 5 and VxWorks 6 in kernel mode.
7928 (unsigned_int): New type, modular to allow logical bit operations.
7929 (taskOptionsGet): New imported function.
7930
7931 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
7932 field to be compliant with the type used by the corresponding operating
7933 system primitive.
7934
79352006-10-31 Pascal Obry <obry@adacore.com>
7936 Eric Botcazou <ebotcazou@adacore.com>
7937 Vincent Celier <celier@adacore.com>
7938
7939 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
7940 ASCII version of the registry API. This is needed as the GNAT runtime
7941 is now UNICODE by default.
7942 Include version.h.
7943 (get_gcc_version): Do not hardcode the return value.
7944 (__gnat_file_time_name): On Windows properly set the default returned
7945 value to -1 which corresponds to Invalid_Time.
7946 (__gnat_fopen): New routine. A simple wrapper on all plateforms
7947 except on Windows where it does conversion for unicode support.
7948 (__gnat_freopen): Idem.
7949 (__gnat_locate_exec_on_path): If environment variable PATH does not
7950 exist, return a NULL pointer
7951
7952 * adaint.h: (__gnat_fopen): Declare.
7953 (__gnat_freopen): Likewise.
7954
7955 * mingw32.h (_tfreopen): Define this macro here for older MingW
7956 version.
7957 Activate the unicode support on platforms using a MingW runtime
7958 version 3.9 or newer.
7959
7960 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
7961 This is needed for proper unicode support on Windows.
7962 (freopen): Idem.
7963
79642006-10-31 Eric Botcazou <ebotcazou@adacore.com>
7965 Nicolas Setton <setton@adacore.com>
7966 Olivier Hainque <hainque@adacore.com>
7967 Gary Dismukes <dismukes@adacore.com>
7968
7969 * gigi.h: (tree_code_for_record_type): Declare.
7970 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
7971 (get_global_renaming_pointers): Rename to
7972 invalidate_global_renaming_pointers.
7973 (static_ctors): Delete.
7974 (static_dtors): Likewise.
7975 (gnat_write_global_declarations): Declare.
7976 (create_var_decl): Adjust descriptive comment to indicate that the
7977 subprogram may return a CONST_DECL node.
7978 (create_true_var_decl): Declare new function, similar to
7979 create_var_decl but forcing the creation of a VAR_DECL node.
7980 (get_global_renaming_pointers): Declare.
7981 (add_global_renaming_pointer): Likewise.
7982
7983 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
7984
7985 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
7986 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
7987 processing.
7988 (gnat_to_gnu_entity): Remove From_With_Type from computation for
7989 imported_p.
7990 <E_Access_Type>: Use the Non_Limited_View as the full view of the
7991 designated type if the pointer comes from a limited_with clause. Make
7992 incomplete designated type if it is in the main unit and has a freeze
7993 node.
7994 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
7995 Underlying_Full_View similarly. Return earlier if the full view already
7996 has an associated tree.
7997 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
7998 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
7999 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
8000 reference type built for objects with an address clause.
8001 Use create_true_var_decl with const_flag set for
8002 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
8003 TREE_READONLY set.
8004 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
8005 for Character and Wide_Character types. This info is read by the
8006 dwarf-2 writer, and is needed to be able to use the command "ptype
8007 character" in the debugger.
8008 (gnat_to_gnu_entity): When generating a type representing
8009 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
8010 so that debug writers can distinguish it from ordinary integers.
8011 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
8012 addition to TREE_READONLY to assert the constantness of variables for
8013 elaboration purposes.
8014 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
8015 parameters to call new Einfo function First_Formal_With_Extras.
8016 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
8017 protected type with its corresponding discriminant, to obtain a usable
8018 declaration
8019 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
8020 for a multiple elaboration of the "equivalent" type.
8021 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
8022 into record_global_renaming_pointer.
8023 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
8024 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
8025 <E_Array_Subtype>: Likewise.
8026 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
8027 incomplete subtypes and incomplete subtypes of incomplete types visible
8028 through a limited with clause.
8029 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
8030 the base index type for the maximum size of the array only if they are
8031 constant.
8032 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
8033 expression into a SAVE_EXPR if stabilization failed.
8034
8035 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
8036 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
8037 by lower level compilation passes.
8038 (gnat_genericize): New function, lowering a function body to GENERIC.
8039 Turn the type of RESULT_DECL into a real reference type if the decl
8040 has been marked DECL_BY_REFERENCE, and adjust references to the latter
8041 accordingly.
8042 (gnat_genericize_r): New function. Tree walking callback for
8043 gnat_genericize.
8044 (convert_from_reference, is_byref_result): New functions. Helpers for
8045 gnat_genericize_r.
8046 (create_type_decl): Call gnat_pushdecl before calling
8047 rest_of_decl_compilation, to make sure that field TYPE_NAME of
8048 type_decl is properly set before calling the debug information writers.
8049 (write_record_type_debug_info): The heuristics which compute the
8050 alignment of a field in a variant record might not be accurate. Add a
8051 safety test to make sure no alignment is set to a smaller value than
8052 the alignment of the field type.
8053 (make_dummy_type): Use the Non_Limited_View as the underlying type if
8054 the type comes from a limited_with clause. Do not loop on the full view.
8055 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
8056 (dummy_node_table): New global variable, moved from decl.c.
8057 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
8058 (save_gnu_tree): Use above macros.
8059 (get_gnu_tree): Likewise.
8060 (present_gnu_tree): Likewise.
8061 (init_dummy_type): New function, moved from decl.c. Use above macros.
8062 (make_dummy_type): Likewise.
8063 (tree_code_for_record_type): New function extracted from make_dummy_type
8064 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
8065 (static_ctors): Change it to a vector, make static.
8066 (static_dtors): Likewise.
8067 (end_subprog_body): Adjust for above change.
8068 (build_global_cdtor): Moved from trans.c.
8069 (gnat_write_global_declarations): Emit global constructor and
8070 destructor, and call cgraph_optimize before emitting debug info for
8071 global declarations.
8072 (global_decls): New global variable.
8073 (gnat_pushdecl): Store the global declarations in global_decls, for
8074 later use.
8075 (gnat_write_global_declarations): Emit debug information for global
8076 declarations.
8077 (create_var_decl_1): Former create_var_decl, with an extra argument to
8078 state whether the creation of a CONST_DECL is allowed.
8079 (create_var_decl): Behavior unchanged. Now a wrapper around
8080 create_var_decl_1 allowing CONST_DECL creation.
8081 (create_true_var_decl): New function, similar to create_var_decl but
8082 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
8083 (create_field_decl): Do not always mark the field as addressable
8084 if its type is an aggregate.
8085 (global_renaming_pointers): New static variable.
8086 (add_global_renaming_pointer): New function.
8087 (get_global_renaming_pointers): Likewise.
8088
8089 * misc.c (gnat_dwarf_name): New function.
8090 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
8091 (gnat_post_options): Add comment about structural alias analysis.
8092 (gnat_parse_file): Do not call cgraph_optimize here.
8093 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
8094
8095 * trans.c (process_freeze_entity): Don't abort if we already have a
8096 non dummy GCC tree for a Concurrent_Record_Type, as it might
8097 legitimately have been elaborated while processing the associated
8098 Concurrent_Type prior to this explicit freeze node.
8099 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
8100 exception handler volatile if it is of variable size.
8101 (process_type): Remove bypass for types coming from a limited_with
8102 clause.
8103 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
8104 actual, convert the corresponding gnu_actual to the real destination
8105 type when necessary.
8106 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
8107 originally TREE_READONLY but whose elaboration cannot be performed
8108 statically.
8109 Part of fix for F504-021.
8110 (tree_transform, subprogram cases): Change loops on formal parameters to
8111 call new Einfo function First_Formal_With_Extras.
8112 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
8113 stemming from type conversion for the lhs.
8114 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
8115 number of bits per unit for components of records.
8116 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
8117 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
8118 with At_End_Proc after the SJLJ EH cleanup.
8119 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
8120 compilation unit.
8121 (elaborate_all_entities): Do not retest type_annotate_only.
8122 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
8123 result type of an abstract subprogram, which may be an itype associated
8124 with an anonymous access result (related to AI-318-02).
8125 (build_global_cdtor): Move to utils.c.
8126 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
8127 this choice is not a null tree nor an integer constant.
8128 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
8129 on the body of elaboration routines instead of mark_unvisited.
8130 (add_stmt): Do not mark the tree.
8131 (add_decl_expr): Tweak comment.
8132 (mark_unvisited): Delete.
8133 (unshare_save_expr): New static function.
8134 (call_to_gnu): Issue an error when making a temporary around a
8135 procedure call because of non-addressable actual parameter if the
8136 type of the formal is by_reference.
8137 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
8138 after building the elaboration routine.
8139
81402006-10-31 Bob Duff <duff@adacore.com>
8141
8142 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
8143 as finalization-started, so we can raise Program_Error on 'new'.
8144
8145 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
8146 collection has already started.
8147
8148 * s-finimp.ads (Collection_Finalization_Started): Added new special
8149 flag value for indicating that a collection's finalization has started.
8150
8151 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
8152 create a task whose master has already waited for dependent tasks.
8153
81542006-10-31 Robert Dewar <dewar@adacore.com>
8155
8156 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
8157
8158 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
8159 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
8160 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
8161 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
8162 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
8163 a-except-2005.ads: Add pragma Preelaborable_Warning
8164
81652006-10-31 Robert Dewar <dewar@adacore.com>
8166 Jose Ruiz <ruiz@adacore.com>
8167
8168 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
8169
8170 * ali.adb (Get_Name): Properly handle scanning of wide character names
8171 encoded with brackets notation.
8172 (Known_ALI_Lines): Add S lines to this list.
8173 (Scan_ALI): Acquire S (priority specific dispatching) lines.
8174 New flag Elaborate_All_Desirable in unit table
8175
8176 * ali.ads (Priority_Specific_Dispatching): Add this range of
8177 identifiers to be used for Priority_Specific_Dispatching table entries.
8178 (ALIs_Record): Add First_Specific_Dispatching and
8179 Last_Specific_Dispatching that point to the first and last entries
8180 respectively in the priority specific dispatching table for this unit.
8181 (Specific_Dispatching): Add this table for storing each S (priority
8182 specific dispatching) line encountered in the input ALI file.
8183 New flag Elaborate_All_Desirable in unit table
8184
8185 * bcheck.adb: (Check_Configuration_Consistency): Add call to
8186 Check_Consistent_Dispatching_Policy.
8187 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
8188 verifying that the use of Priority_Specific_Dispatching,
8189 Task_Dispatching_Policy, and Locking_Policy is consistent across the
8190 partition.
8191
8192 * bindgen.adb: (Public_Version_Warning): function removed.
8193 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
8194 required information from ALI files in order to initialize the table
8195 containing the specific dispatching policy.
8196 (Gen_Adainit_Ada): Generate the variables required for priority specific
8197 dispatching entries (__gl_priority_specific_dispatching and
8198 __gl_num_specific_dispatching).
8199 (Gen_Adainit_C): Generate the variables required for priority specific
8200 dispatching entries (__gl_priority_specific_dispatching and
8201 __gl_num_specific_dispatching).
8202 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
8203 pragma entries.
8204 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
8205 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
8206 (Tab_To): Removed.
8207 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
8208 a call to gnat_set_globals.
8209 Generate a string containing settings from
8210 Priority_Specific_Dispatching pragma entries.
8211 (Gen_Object_Files_Options): Do not include the runtime libraries when
8212 pragma No_Run_Time is specified.
8213
8214 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
8215 consistency with s-intman-posix.adb.
8216 (__gnat_error_handler, case FreeBSD): Account for the fact that the
8217 handler is installed with SA_SIGINFO.
8218 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
8219 FreeBSD ZCX support, copied from Linux version.
8220 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
8221 sigfillset, and sigemptyset so the routines defined by MaRTE.
8222 (__gl_priority_specific_dispatching): Add this variable that stores the
8223 string containing priority specific dispatching policies in the
8224 partition.
8225 (__gl_num_specific_dispatching): Add this variable that indicates the
8226 highest priority for which a priority specific dispatching pragma
8227 applies.
8228 (__gnat_get_specific_dispatching): Add this routine that returns the
8229 priority specific dispatching policy, as set by a
8230 Priority_Specific_Dispatching pragma appearing anywhere in the current
8231 partition. The input argument is the priority number, and the result
8232 is the upper case first character of the policy name.
8233 (__gnat_set_globals): Now a dummy function.
8234 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
8235 mechargs instead of sigargs, as the latter can be retrieved from the
8236 former and sigargs is not what we want on ia64.
8237 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
8238 mechargs argument.
8239 (__gnat_adjust_context_for_raise, ia64-vms): New function.
8240 (tasking_error): Remove unused symbol.
8241 (_abort_signal): Move this symbol to the IRIX specific part since this
8242 is the only target that uses this definition.
8243 (Check_Abort_Status): Move this symbol to the IRIX specific part since
8244 this is the only target that uses this definition.
8245 (Lock_Task): Remove unused symbol.
8246 (Unlock_Task): Remove unused symbol.
8247
8248 * lib-writ.adb (Write_ALI): Output new S lines for
8249 Priority_Specific_Dispatching pragmas.
8250 Implement new flag BD for elaborate body desirable
8251
8252 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
8253 (Specific_Dispatching): Add this table for storing the entries
8254 corresponding to Priority_Specific_Dispatching pragmas.
8255 Document new BD flag for elaborate body desirable
8256
8257 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
8258 of known pragmas.
8259
82602006-10-31 Javier Miranda <miranda@adacore.com>
8261
8262 * a-tags.ads, a-tags.adb:
8263 (Predefined_DT): New function that improves readability of the code.
8264 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
8265 Inherit_DT): Use the new function Predefined_DT to improve code
8266 readability.
8267 (Register_Interface_Tag): Update assertion.
8268 (Set_Interface_Table): Update assertion.
8269 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
8270 determining progenitor interfaces in Tags.
8271 (Inherit_CPP_DT): New subprogram.
8272
6f7f72f9 8273 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
70198b9f 8274 analysis of the thunk code.
6f7f72f9
EB
8275 (Expand_Interface_Conversion): Handle run-time conversion of
8276 access to class wide types.
70198b9f
AC
8277 (Expand_Dispatching_Call): When generating the profile for the
8278 subprogram itype for a dispatching operation, properly terminate the
8279 formal parameters chaind list (set the Next_Entity of the last formal
8280 to Empty).
8281 (Collect_All_Interfaces): Removed. This routine has been moved to
8282 sem_util and renamed as Collect_All_Abstract_Interfaces.
8283 (Set_All_DT_Position): Hidden entities associated with abstract
8284 interface primitives are not taken into account in the check for
8285 3.9.3(10); this check is done with the aliased entity.
8286 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
8287 interfacing with CPP by default.
8288 (Expand_Interface_Conversion): Add missing support for static conversion
8289 from an interface to a tagged type.
8290 (Collect_All_Interfaces): Add new out formal containing the list of
8291 abstract interface types to cleanup the subprogram Make_DT.
8292 (Make_DT): Update the code to generate the table of interfaces in case
8293 of abstract interface types.
8294 (Is_Predefined_Dispatching_Alias): New function that returns true if
8295 a primitive is not a predefined dispatching primitive but it is an
8296 alias of a predefined dispatching primitive.
8297 (Make_DT): If the ancestor of the type is a CPP_Class and we are
8298 compiling under full ABI compatibility mode we avoid the generation of
8299 calls to run-time services that fill the dispatch tables because under
8300 this mode we currently inherit the dispatch tables in the IP subprogram.
8301 (Write_DT): Emit an "is null" indication for a null procedure primitive.
8302 (Expand_Interface_Conversion): Use an address as the type of the formal
8303 of the internally built function that handles the case in which the
8304 target type is an access type.
8305
83062006-10-31 Robert Dewar <dewar@adacore.com>
8307
8308 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
8309
83102006-10-31 Robert Dewar <dewar@adacore.com>
8311
8312 * bindusg.ads, bindusg.adb:
8313 Change to package and rename procedure as Display, which
8314 now ensures that it only outputs usage information once.
8315
83162006-10-31 Jose Ruiz <ruiz@adacore.com>
8317
8318 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
8319 using RTPs.
8320
8321 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
8322 when using RTPs.
8323
83242006-10-31 Robert Dewar <dewar@adacore.com>
8325 Ed Schonberg <schonberg@adacore.com>
8326
8327 * treepr.adb: Use new subtype N_Membership_Test
8328
6f7f72f9
EB
8329 * checks.ads, checks.adb: Add definition for Validity_Check
8330 (Range_Or_Validity_Checks_Suppressed): New function
8331 (Ensure_Valid): Test Validity_Check suppressed
8332 (Insert_Valid_Check): Test Validity_Check suppressed
8333 (Insert_Valid_Check): Preserve Do_Range_Check flag
70198b9f
AC
8334 (Validity_Check_Range): New procedure
8335 (Expr_Known_Valid): Result of membership test is always valid
8336 (Selected_Range_Checks): Range checks cannot be applied to discriminants
8337 by themselves. Disabling those checks must also be done for task types,
8338 where discriminants may be used for the bounds of entry families.
8339 (Apply_Address_Clause_Check): Remove side-effects if address expression
8340 is non-static and is not the name of a declared constant.
8341 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
8342 Code cleanup and new error messages.
8343 (Enable_Range_Check): Test for some cases of suppressed checks
8344 (Generate_Index_Checks): Suppress index checks if index checks are
8345 suppressed for array object or array type.
8346 (Apply_Selected_Length_Checks): Give warning for compile-time detected
8347 length check failure, even if checks are off.
8348 (Ensure_Valid): Do not generate a check on an indexed component whose
8349 prefix is a packed boolean array.
8350 * checks.adb: (Alignment_Checks_Suppressed): New function
8351 (Apply_Address_Clause_Check): New procedure, this is a completely
8352 rewritten replacement for Apply_Alignment_Check
8353 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
8354 we request a discriminal value only in case of discriminants.
8355 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
8356 assignments where the target subtype is unconstrained and the target
8357 object is a parameter or dereference (other aliased cases are known
8358 to be unconstrained).
8359
83602006-10-31 Robert Dewar <dewar@adacore.com>
8361
8362 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
8363 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
8364 vms_conv.adb: Fix bad table increment values (much too small)
8365
8366 * table.adb (Realloc): Make sure we get at least some new elements
8367 Defends against silly small values for table increment
8368
83692006-10-31 Robert Dewar <dewar@adacore.com>
8370 Ed Schonberg <schonberg@adacore.com>
8371 Bob Duff <duff@adacore.com>
8372
8373 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
8374 entities. Move other fields around to make this possible
8375 (Is_Derived_Type): Add missing call to Is_Type.
8376 (Extra_Formals): New function for subprograms, entries, subprogram
8377 types.
8378 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
8379 (First_Formal_With_Extras): New function for subprogs, entries, subp
8380 types.
8381 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
8382 Add node information for E_Return_Statement.
8383 (Elaborate_Body_Desirable): New flag
8384 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
8385 to be Is_Inherently_Limited_Type, because return-by-reference has
8386 no meaning in Ada 2005.
8387 (E_Return_Statement): New entity kind.
8388 (Return_Applies_To): Field of E_Return_Statement.
8389 (Is_Return_Object): New flag in object entities.
8390 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
8391 (Must_Have_Preelab_Init): New flag
8392 (Known_To_Have_Preelab_Init): New flag
8393 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
8394 (Is_Visible_Formal): New flag on entities in formal packages.
8395 (Low_Bound_Known): New flag
8396 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
8397 Incomplete_Kind.
8398 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
8399 output when Id is an incomplete subtype.
8400
84012006-10-31 Robert Dewar <dewar@adacore.com>
8402
8403 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
8404 Avoid abbreviation Creat
8405 (Finalize): List all sources in extended mail source if -gnatl
8406 switch is active.
8407 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
8408 (Finalize): Implement new -gnatl=xxx switch to output listing to file
8409 (Set_Specific_Warning_On): New procedure
8410 (Set_Specific_Warning_Off): New procedure
8411 Add implementation of new insertion \\
8412 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
8413 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
8414 types.
8415 (Error_Msg_Internal): Make sure that we set Last_Killed to
8416 True when a message from another package is suppressed.
8417 Implement insertion character ~ (insert string)
8418 (First_Node): Minor adjustments to get better placement.
8419
8420 * frontend.adb:
8421 Implement new -gnatl=xxx switch to output listing to file
8422
8423 * gnat1drv.adb:
8424 Implement new -gnatl=xxx switch to output listing to file
8425
6f7f72f9 8426 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
70198b9f
AC
8427 (Commands_To_Stdout): New flag
8428 Implement new -gnatl=xxx switch to output listing to file
8429 New switch Dump_Source_Text
8430 (Warn_On_Deleted_Code): New warning flag for -gnatwt
8431 Define Error_Msg_Line_Length
8432 (Warn_On_Assumed_Low_Bound): New switch
8433
8434 * osint.ads, osint.adb
8435 (Normalize_Directory_Name): Fix bug.
8436 Implement new -gnatl=xxx switch to output listing to file
8437 (Concat): Removed, replaced by real concatenation
8438 Make use of concatenation now allowed in compiler
8439 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
8440 we find the 'lib' or 'bin' directory even when the tool has been
8441 invoked with a relative path.
8442 (Executable_Name): New function taking string parameters.
8443
8444 * osint-c.ads, osint-c.adb:
8445 Implement new -gnatl=xxx switch to output listing to file
8446
8447 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
8448
8449 * switch-c.adb:
8450 Implement new -gnatl=xxx switch to output listing to file
8451 Recognize new -gnatL switch
8452 (no longer keep in old warning about old style usage)
8453 Use concatenation to simplify code
8454 Recognize -gnatjnn switch
8455 (Scan_Front_End_Switches): Clean up handling of -gnatW
8456 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
8457
84582006-10-31 Robert Dewar <dewar@adacore.com>
8459
8460 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
8461 (Set_Specific_Warning_Off): New procedure
8462 (Warning_Specifically_Suppressed): New function
8463 (Validate_Specific_Warnings): New procedure
8464 (Output_Msg_Text): Complete rewrite to support -gnatjnn
8465
8466 * err_vars.ads: Implement insertion character ~ (insert string)
8467
84682006-10-31 Bob Duff <duff@adacore.com>
8469 Ed Schonberg <schonberg@adacore.com>
8470
8471 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
8472 the parent part is a build-in-place function call, generate assignments.
8473 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
8474 are build-in-place function calls.
8475 (Replace_Self_Reference): New subsidiary of
8476 Make_OK_Assignment_Statement, to replace an access attribute that is a
8477 self-reference into an access to the appropriate component of the
8478 target object. Generalizes previous mechanism to handle self-references
8479 nested at any level.
8480 (Is_Self_Referential_Init): Remove, not needed.
8481 (Is_Self_Referential_Init): New predicate to simplify handling of self
8482 referential components in record aggregates.
8483 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
8484 check for presence of entity before checking for self-reference.
8485 (Has_Default_Init_Comps): Return True if a component association is a
8486 self-reference to the enclosing type, which can only come from a
8487 default initialization.
8488 (Make_OK_Assignment_Statement): If the expression is of the form
8489 Typ'Acc, where Acc is an access attribute, the expression comes from a
8490 default initialized self-referential component.
8491 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
8492 that has been derived from several abstract interfaces we must also
8493 initialize the tags of the secondary dispatch tables.
8494
84952006-10-31 Ed Schonberg <schonberg@adacore.com>
8496 Thomas Quinot <quinot@adacore.com>
8497 Javier Miranda <miranda@adacore.com>
8498 Robert Dewar <dewar@adacore.com>
6f7f72f9
EB
8499
8500 * exp_attr.adb:
8501 (Expand_Access_To_Protected_Op): If the context indicates that an access
8502 to a local operation may be transfered outside of the object, create an
8503 access to the wrapper operation that must be used in an external call.
70198b9f
AC
8504 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
8505 target, pass the Valid attribute applied to a floating-point prefix on
8506 to the back end without expansion.
8507 (Storage_Size): Use the new run-time function Storage_Size to retrieve
8508 the allocated storage when it is specified by a per-object expression.
8509 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
8510 Nothing to do here, the attribute has been rewritten during semantic
8511 analysis.
8512 (Expand_Attribute_Reference): Handle expansion of the new Priority
8513 attribute
8514 (Find_Fat_Info): Handle case of universal real
8515 (Expand_Access_To_Protected_Op): Fix use of access to protected
8516 subprogram from inside the body of a protected entry.
8517 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
8518 'Access and 'Unrestricted_Access, to transform the attribute reference
8519 into a fat pointer.
8520 (Is_Constrained_Aliased_View): New predicate to help determine whether a
8521 subcomponent's enclosing variable is aliased with a constrained subtype.
8522 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
8523 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
8524 an aliased prefix must be known to be constrained in order to use True
8525 for the attribute value, and now it's possible for some aliased views
8526 to be unconstrained.
8527
85282006-10-31 Robert Dewar <dewar@adacore.com>
8529
8530 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
8531 (Expand_Entity_Reference): Correct error of not handling subprogram
8532 formals in current_value processing.
8533
85342006-10-31 Javier Miranda <miranda@adacore.com>
8535 Robert Dewar <dewar@adacore.com>
8536 Ed Schonberg <schonberg@adacore.com>
8537 Gary Dismukes <dismukes@adacore.com>
8538
6f7f72f9 8539 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
70198b9f
AC
8540 register in the final list objects containing class-wide interfaces;
8541 otherwise we incorrectly register the tag of the interface in the final
8542 list.
6f7f72f9
EB
8543 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
8544 generate the wrapper if the parent primitive is abstract. This is
8545 required to report the correct error message.
8546 (Expand_N_Subtype_Indication): Do validity checks on range
70198b9f
AC
8547 (Clean_Task_Names): If an initialization procedure includes a call to
8548 initialize a task (sub)component, indicate that the procedure will use
8549 the secondary stack.
8550 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
8551 compatibility for interfacing with CPP by default.
8552 (Expand_N_Object_Declaration): Only build an Adjust call when the
8553 object's type is a nonlimited controlled type.
8554 * exp_ch3.adb: Add with and use of Exp_Ch6.
8555 (Expand_N_Object_Declaration): Check for object initialization that is a
8556 call to build-in-place function and apply Make_Build_In_Place_Call_In_
8557 Object_Declaration to the call.
8558 (Freeze_Type): When the designated type of an RACW was not frozen at the
8559 point where the RACW was declared, validate the primitive operations
8560 with respect to E.2.2(14) when it finally is frozen.
8561 (Build_Initialization_Call,Expand_Record_Controller): Rename
8562 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
8563 return-by-reference has no meaning in Ada 2005.
8564 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
8565 to register tag of the immediate ancestor interfaces in the
8566 run-time structure.
8567 (Init_Secondary_Tags): Moved to the specification to allow the
8568 initialization of extension aggregates with abstract interfaces.
8569 (Build_Master_Renaming): Make public, for use by function declarations
8570 whose return type is an anonymous access type.
8571 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
8572 Insert_List_Before_And_Analyze after the generation of the specs
8573 associated with null procedures.
8574 (Expand_Tagged_Root): Update documentation in its specification.
8575 (Init_Secondary_Tags): Update documentation.
8576 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
8577 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
8578 then generate code to inherit the contents of the dispatch table
8579 directly from the ancestor.
8580 (Expand_Record_Controller): Insert controller component after tags of
8581 implemented interfaces.
8582 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
8583 create null procedure overridings when null procedures are inherited
8584 from interfaces.
8585 (Make_Null_Procedure_Specs): New procedure to generate null procedure
8586 declarations for overriding null primitives inherited from interfaces.
8587 (Is_Null_Interface_Procedure): New function in
8588 Make_Null_Procedure_Specs.
8589 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
8590 immediate ancestor of a tagged type is an abstract interface type we
8591 must generate the specification of the predefined primitives associated
8592 with controlled types (because the dispatch table of the ancestor is
8593 null and hence these entries cannot be inherited). This is required to
8594 elaborate well the dispatch table.
8595
85962006-10-31 Javier Miranda <miranda@adacore.com>
8597 Ed Schonberg <schonberg@adacore.com>
8598 Bob Duff <duff@adacore.com>
8599 Gary Dismukes <dismukes@adacore.com>
8600 Robert Dewar <dewar@adacore.com>
6f7f72f9
EB
8601
8602 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
70198b9f 8603 conversion.
6f7f72f9 8604 (Expand_N_In): Do validity checks on range
70198b9f
AC
8605 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
8606 (Expand_N_Allocator): For "new T", if the object is constrained by
8607 discriminant defaults, allocate the right amount of memory, rather than
8608 the maximum for type T.
8609 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
8610 when the allocator is initialized by a build-in-place call, since the
8611 allocator is already rewritten as a reference to the function result,
8612 and this prevents an unwanted duplication of the function call.
8613 Add with and use of Exp_Ch6.
8614 (Expand_Allocator_Expresssion): Check for an allocator whose expression
8615 is a call to build-in-place function and apply
8616 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
8617 untagged designated types).
8618 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
8619 optimization if source or target is biased.
8620 (Expand_N_Allocator): Add comments for case of an allocator within a
8621 function that returns an anonymous access type designating tasks.
8622 (Expand_N_Allocator): apply discriminant checks for access
8623 discriminants of anonymous access types (AI-402, AI-416)
8624
86252006-10-31 Bob Duff <duff@adacore.com>
8626 Robert Dewar <dewar@adacore.com>
8627 Gary Dismukes <dismukes@adacore.com>
8628 Ed Schonberg <schonberg@adacore.com>
8629
8630 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
8631
6f7f72f9 8632 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
70198b9f
AC
8633 (Expand_N_Assignment_Statement): Call
8634 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
8635 build-in-place function call. Currently, this can happen only for
8636 assignments that come from aggregates.
8637 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
8638 in order to alleviate the upward compatibility introduced by AI-318.
8639 (Expand_N_Extended_Return_Statement): Add support for handling the
8640 return object as a build-in-place result.
8641 (Expand_Non_Function_Return): Implement simple return statements nested
8642 within an extended return.
8643 (Enable_New_Return_Processing): Turn on the new processing of return
8644 statements.
8645 (Expand_Non_Function_Return): For a return within an extended return,
8646 don't raise Program_Error, because Sem_Ch6 now gives a warning.
8647 (Expand_N_Extended_Return_Statement): Implement AI-318
8648 (Expand_Simple_Function_Return): Ditto.
8649 (Expand_N_If_Statement): Handle new -gnatwt warning
8650 (Expand_N_Case_Statement): Handle new -gnatwt warning
8651 (Expand_N_Assignment): Handle assignment to the Priority attribute of
8652 a protected object.
8653 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
8654 validity checking of assignments to elementary record components.
8655 (Expand_N_Return_Statement): return Class Wide types on the secondary
8656 stack independantly of their controlled status since with HIE runtimes,
8657 class wide types are not potentially controlled anymore.
8658
8659 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
8660 node kind.
8661
8662 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
8663 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
8664 it expects a block, procedure, or task. The return statement will get
8665 turned into a block, and Expand_Cleanup_Actions will happen then.
8666
86672006-10-31 Robert Dewar <dewar@adacore.com>
8668 Ed Schonberg <schonberg@adacore.com>
8669 Bob Duff <duff@adacore.com>
8670 Gary Dismukes <dismukes@adacore.com>
8671
8672 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
8673 capability.
8674 (Expand_Inlined_Call): Tagged types are by-reference types, and
8675 therefore should be replaced by a renaming declaration in the expanded
8676 body, as is done for limited types.
8677 (Expand_Call): If this is a call to a function with dispatching access
8678 result, propagate tag from context.
8679 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
8680 CPP by default.
8681 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
8682 build-in-place when the right-hand side of an assignment is a
8683 build-in-place function call.
8684 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
8685 of the explicit dereference of the allocator to the result subtype of
8686 the build-in-place function. This is needed to satisfy type checking
8687 in cases where the caller's return object is created by an allocator for
8688 a class-wide access type and the type named in the allocator is a
8689 specific type.
8690 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
8691 conversion of the reference to the declared object to the result subtype
8692 of the build-in-place function. This is needed to satisfy type checking
8693 in cases where the declared object has a class-wide type. Also, in the
8694 class-wide case, change the type of the object entity to the specific
8695 result subtype of the function, to avoid passing a class-wide object
8696 without explicit initialization to the back end.
8697 (Register_Interface_DT_Entry): Moved outside the body of
8698 Freeze_Subprogram because this routine is now public; it is called from
8699 Check_Dispatching_Overriding to handle late overriding of abstract
8700 interface primitives.
8701 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
8702 adding an implicit access actual on a call to a build-in-place function.
8703 (Expand_Actuals): Test for an actual parameter that is a call to a
8704 build-in-place function and apply
8705 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
8706 (Is_Build_In_Place_Function): New function to determine whether an
8707 entity is a function whose calls should be handled as build-in-place.
8708 (Is_Build_In_Place_Function_Call): New function to determine whether an
8709 expression is a function call that should handled as build-in-place.
8710 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
8711 calls to build-in-place functions as the initialization of an allocator.
8712 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
8713 handling calls to build-in-place functions in contexts that do not
8714 involve init of a separate object (for example, actuals of subprogram
8715 calls).
8716 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
8717 handling calls to build-in-place functions as the initialization of an
8718 object declaration.
8719 (Detect_Infinite_Recursion): Add explicit parameter Process to
8720 instantiation of Traverse_Body to avoid unreferenced warning.
8721 (Check_Overriding_Inherited_Interfaces): Removed.
8722 (Register_Interface_DT_Entry): Code cleanup.
8723 (Register_Predefined_DT_Entry): Code cleanup.
8724 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
8725 inlined statements if within a transient scope.
8726 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
8727 formal parameters with occurrences of actuals in inlined body, establish
8728 visibility on the proper view of the actual's subtype for the body's
8729 context.
8730 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
8731 compatibility mode and we have an imported CPP subprogram because
8732 for now we assume that imported CPP primitives correspond with
8733 objects whose constructor is in the CPP side (and therefore we
8734 don't need to generate code to register them in the dispatch table).
8735 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
8736 aligned selected component.
8737 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
8738 the actual of an in-mode parameter is a type conversion.
8739 (Expand_Actuals): If the call does not come from source and the actual
8740 is potentially misaligned, let gigi handle it rather than rejecting the
8741 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
8742 Class Wide types as returning by reference independantly of their
8743 controlled status since with HIE runtimes class wide types are not
8744 potentially controlled anymore.
8745
6f7f72f9 87462006-10-31 Ed Schonberg <schonberg@adacore.com>
70198b9f 8747
6f7f72f9 8748 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
70198b9f
AC
8749 references that are private components of the protected object.
8750 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
8751 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
8752 instantiation to deal with warnings.
8753 (Initialize_Protection): If expression for priority is non-static, use
8754 System_Priority as its expected type, in case the expression has not
8755 been analyzed yet.
8756
87572006-10-31 Robert Dewar <dewar@adacore.com>
8758
8759 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
8760 initialization of Homonym_Len.
8761 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
8762 names from fully qualified name. Fixes problem of duplicate
8763 external names differing only in the presence of such a block name.
8764
87652006-10-31 Thomas Quinot <quinot@adacore.com>
8766 Pablo Oliveira <oliveira@adacore.com>
6f7f72f9
EB
8767
8768 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
70198b9f
AC
8769 subprogram Ids, even if they are not yet assigned.
8770 (Build_Subprogram_Id): It is now this function that will take care of
8771 calling Assign_Subprogram_Ids if necessary.
8772 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
8773 should be done only once they are assigned.
8774 (Build_From_Any_Function, case of tagged types): Add missing call to
8775 Allocate_Buffer.
8776 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
8777 type for an RACW type.
8778 (Add_RACW_Features): When processing an RACW declaration for which the
8779 designated type is already frozen, enforce E.2.2(14) rules immediately.
8780 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
8781 special reordering of controlling formals.
8782
8783 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
8784 associated stub type for an RACW type.
8785
87862006-10-31 Ed Schonberg <schonberg@adacore.com>
8787
8788 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
8789 fixed-point operations in an integer context, i.e. as operands of a
8790 conversion to an integer type, indicate that result must be rounded.
8791
87922006-10-31 Robert Dewar <dewar@adacore.com>
8793
8794 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
8795 cases, pass the encoding method, since it is now required by the run
8796 time.
8797
8798 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
8799 assumption that Str'First = 1.
8800 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
8801 it on to the Value_Wide_Wide_Character call.
8802 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
8803 properly handles a string of the form quote-encoded_wide_char-quote.
8804
8805 * s-wchcnv.adb: Minor reformatting
8806
88072006-10-31 Javier Miranda <miranda@adacore.com>
6f7f72f9 8808
70198b9f
AC
8809 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8810 run-time membership test to ensure that the constructed object
8811 implements the target abstract interface.
8812
88132006-10-31 Robert Dewar <dewar@adacore.com>
8814
8815 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
8816 Machine_Attribute pragma internally to implement the user pragma.
8817 Add processing for pragma Interface so that it is now completely
8818 equivalent to pragma Import.
8819
8820 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
8821 so that it can be applied to all entities, including record components
8822 and enumeration literals.
8823 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
8824 priority ranges are correct, verify compatibility against task
8825 dispatching and locking policies, and if everything is correct an entry
8826 is added to the table containing priority specific dispatching entries
8827 for this compilation unit.
8828 (Delay_Config_Pragma_Analyze): Delay processing
8829 Priority_Specific_Dispatching pragmas because when processing the
8830 pragma we need to access run-time data, such as the range of
8831 System.Any_Priority.
8832 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
8833 Allow pragma Unreferenced as a context item
8834 Add pragma Preelaborable_Initialization
8835 (Analyze_Pragma, case Interface): Interface is extended so that it is
8836 now syntactically and semantically equivalent to Import.
8837 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
8838 insertion characters.
8839 Add handling for Pragma_Wide_Character_Encoding
8840 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
8841 never supercedes a real restriction, and that a real restriction
8842 always supercedes a warning.
8843 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
8844 appropriate form.
8845
88462006-10-31 Bob Duff <duff@adacore.com>
8847 Ed Schonberg <schonberg@adacore.com>
8848 Robert Dewar <dewar@adacore.com>
8849
8850 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
8851 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
8852 Is_Inherently_Limited_Type, because return-by-reference has no meaning
8853 in Ada 2005.
8854 (Find_Node_To_Be_Wrapped): Use new method of determining the result
8855 type of the function containing a return statement, because the
8856 Return_Type field was removed. We now use the Return_Applies_To field.
8857
6f7f72f9 8858 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
70198b9f
AC
8859 (Build_Task_Image_Decl): If procedure is not called from an
8860 initialization procedure, indicate that function that builds task name
8861 uses the sec. stack. Otherwise the enclosing initialization procedure
8862 will carry the indication.
8863 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
8864 N_Object_Declaration instead.
8865 (Kill_Dead_Code): New interface to implement -gnatwt warning for
8866 conditional dead code killed, and change implementation accordingly.
8867 (Insert_Actions): Add N_Return_Object_Declaration case.
8868 Correct comment to mention N_Extension_Aggregate node.
8869 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
8870 attempts to save information for global variables which cannot be
8871 safely tracked.
8872 (Get_Current_Value_Condition): Handle conditions the other way round
8873 (constant on left). Also handle right operand of AND and AND THEN
8874 (Set_Current_Value_Condition): Corresponding changes
8875 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
8876 (Get_Current_Value_Condition): Handle simple boolean operands
8877 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
8878 (Get_Current_Value_Condition): If the variable reference is within an
8879 if-statement, does not appear in the list of then_statments, and does
8880 not come from source, treat it as being at unknown location.
8881 (Get_Current_Value_Condition): Enhance to allow while statements to be
8882 processed as well as if statements.
8883 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
8884 come from source.
8885 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
8886 of loop. This is safe now that we fixed Kill_Current_Values.
8887 (OK_To_Do_Constant_Replacement): Check whether current scope is
8888 Standard, before examining outer scopes.
8889
88902006-10-31 Vincent Celier <celier@adacore.com>
8891
8892 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
8893 When True, apply VMS treatment to children of packages A, G, I and S.
8894 For F320-016
8895
8896 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
8897
88982006-10-31 Robert Dewar <dewar@adacore.com>
8899 Ed Schonberg <schonberg@adacore.com>
8900
8901 * freeze.adb: Add handling of Last_Assignment field
8902 (Warn_Overlay): Supply missing continuation marks in error msgs
8903 (Freeze_Entity): Add check for Preelaborable_Initialization
8904
8905 * g-comlin.adb: Add Warnings (Off) to prevent new warning
8906
8907 * g-expect.adb: Add Warnings (Off) to prevent new warning
8908
8909 * lib-xref.adb: Add handling of Last_Assignment field
8910 (Generate_Reference): Centralize handling of pragma Obsolescent here
8911 (Generate_Reference): Accept an implicit reference generated for a
8912 default in an instance.
8913 (Generate_Reference): Accept a reference for a node that is not in the
8914 main unit, if it is the generic body corresponding to an subprogram
8915 instantiation.
8916
8917 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
8918
6f7f72f9 8919 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
70198b9f
AC
8920 -gnatwq/Q.
8921 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
8922 exception handler.
8923 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
8924 use clauses, to avoid messages on packages used to qualify, and also
8925 to avoid messages from obsolescent units.
8926 (Warn_On_Useless_Assignments): Don't generate messages for imported
8927 and exported variables.
8928 (Warn_On_Useless_Assignments): New procedure
8929 (Output_Obsolescent_Entity_Warnings): New procedure
8930 (Check_Code_Statement): New procedure
8931
6f7f72f9 8932 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
70198b9f
AC
8933 Change name Is_Ada_2005 to Is_Ada_2005_Only
8934 (Last_Assignment): New field for useless assignment warning
8935
89362006-10-31 Olivier Hainque <hainque@adacore.com>
8937
8938 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
8939 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
8940
89412006-10-31 Bob Duff <duff@adacore.com>
8942 Robert Dewar <dewar@adacore.com>
8943 Ed Schonberg <schonberg@adacore.com>
8944
8945 * g-awk.adb (Default_Session, Current_Session): Compile this file in
8946 Ada 95 mode, because it violates the new rules for AI-318.
8947
8948 * g-awk.ads: Use overloaded subprograms in every case where we used to
8949 have a default of Current_Session. This makes the code closer to be
8950 correct for both Ada 95 and 2005.
8951
8952 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
8953 code, relying on the fact that the compiler generates a warning
8954 instead of an error in -gnatg mode.
8955
8956 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
8957 E_Return_Statement entity kind.
8958 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
8959
8960 * par.adb (P_Interface_Type_Definition): Addition of one formal to
8961 report an error if the reserved word abstract has been previously found.
8962 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
6f7f72f9
EB
8963
8964 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
70198b9f
AC
8965 parenthesized range attribute usage
8966 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
8967
8968 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
8969 in the syntax for extended_return_statement. This is not in the latest
8970 RM, but the ARG is expected to issue an AI allowing this.
8971 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
8972 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
8973 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
8974 P_Return_Statement): Parse the new syntax for extended_return_statement.
8975
8976 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
8977 Output_End_Missing): Add error-recovery code for the new
8978 extended_return_statement syntax; that is, the new E_Return entry on
8979 the scope stack.
8980
8981 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
8982 limited to nonlimited, because otherwise we violate the new Ada 2005
8983 rules about returning limited types in function Create_AST_Handler in
8984 s-asthan.adb.
8985
8986 * sem.adb (Analyze): Add cases for new node kinds
8987 N_Extended_Return_Statement and N_Return_Object_Declaration.
8988
8989 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
8990 type is in the same category as type of context before applying check,
8991 to prevent anomalies in instantiations.
8992 (Resolve_Aggregate): Remove test for limited components in aggregates.
8993 It's unnecessary in Ada 95, because if it has limited components, then
8994 it must be limited. It's wrong in Ada 2005, because limited aggregates
8995 are now allowed.
8996 (Resolve_Record_Aggregate): Move check for limited types later, because
8997 OK_For_Limited_Init requires its argument to have been resolved.
8998 (Get_Value): When copying the component default expression for a
8999 defaulted association in an aggregate, use the sloc of the aggregate
9000 and not that of the original expression, to prevent spurious
9001 elaboration errors, when the expression includes function calls.
9002 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
9003 were missing. We also didn't handle qualified expressions. Now also
9004 allow function calls. Use new common routine OK_For_Limited_Init.
9005 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
9006 with space can upper case letter).
9007
6f7f72f9 9008 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
70198b9f 9009 Has_Static_Discriminants flag
6f7f72f9
EB
9010 (Record_Type_Declaration): Diagnose an attempt to declare an interface
9011 type with discriminants.
9012 (Process_Range_Expr_In_Decl): Do validity checks on range
70198b9f
AC
9013 (Build_Discriminant_Constraints): Use updated form of
9014 Denotes_Discriminant.
9015 (Process_Subtype): If the subtype is a private subtype whose full view
9016 is a concurrent subtype, introduce an itype reference to prevent scope
9017 anomalies in gigi.
9018 (Build_Derived_Record_Type, Collect_Interface_Primitives,
9019 Record_Type_Declaration): The functionality of the subprograms
9020 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
9021 is now performed by a single routine.
9022 (Build_Derived_Record_Type): If the type definition includes an explicit
9023 indication of limitedness, then the type must be marked as limited here
9024 to ensure that any access discriminants will not be treated as having
9025 a local anonymous access type.
9026 (Check_Abstract_Overriding): Issue a detailed error message when an
9027 abstract subprogram was not overridden due to incorrect mode of its
9028 first parameter.
9029 (Analyze_Private_Extension_Declaration): Add support for the analysis of
9030 synchronized private extension declarations. Verify that the ancestor is
9031 a limited or synchronized interface or in the generic case, the ancestor
9032 is a tagged limited type or synchronized interface and all progenitors
9033 are either limited or synchronized interfaces.
9034 Derived_Type_Declaration): Check for presence of private extension when
9035 dealing with synchronized formal derived types.
9036 Process_Full_View): Enchance the check done on the usage of "limited" by
9037 testing whether the private view is synchronized.
9038 Verify that a synchronized private view is completed by a protected or
9039 task type.
9040 (OK_For_Limited_Init_In_05): New function.
9041 (Analyze_Object_Declaration): Move check for limited types later,
9042 because OK_For_Limited_Init requires its argument to have been resolved.
9043 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9044 in order to alleviate the upward compatibility introduced by AI-318.
9045 (Constrain_Corresponding_Record): If the constraint is for a component
9046 subtype, mark the itype as frozen, to avoid out-of-scope references to
9047 discriminants in the back-end.
9048 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
9049 this subprogram against wrong sources.
9050 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
9051 discriminant of limited type completed with a protected type, when the
9052 discriminant is used to constrain a private component of the type, and
9053 expansion is disabled.
9054 (Find_Type_Of_Object): Do not treat a return subtype that is an
9055 anonymous subtype as a local_anonymous_type, because its accessibility
9056 level is the return type of the enclosing function.
9057 (Check_Initialization): In -gnatg mode, turn the error "cannot
9058 initialize entities of limited type" into a warning.
9059 (OK_For_Limited_Init): Return true for generated nodes, since it
9060 sometimes violates the legality rules.
9061 (Make_Incomplete_Declaration): If the type for which an incomplete
9062 declaration is created happens to be the currently visible entity,
9063 preserve the homonym chain when removing it from visibility.
9064 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
9065 inherited subprograms.
9066 (Access_Definition): If this is an access to function that is the return
9067 type of an access_to_function definition, context is a type declaration
9068 and the scope of the anonymous type is the current one.
9069 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
9070 incomplete subtype to the set of private dependents of the original
9071 incomplete type.
9072 (Constrain_Discriminated_Type): Emit an error message whenever an
9073 incomplete subtype is being constrained.
9074 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
9075 corresponding subtype of the full view of the original incomplete type.
9076 (Check_Incomplete): Properly detect invalid usage of incomplete types
9077 and subtypes.
9078
90792006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
9080
9081 * g-catiio.ads, g-catiio.adb (Value): New function.
9082 Given an input String, try and parse a valid Time value.
9083
90842006-10-31 Vincent Celier <celier@adacore.com>
9085
9086 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
9087 Integer_Address arithmetic, as in Set_Valid.
9088
90892006-10-31 Arnaud Charlet <charlet@adacore.com>
9090 Robert Dewar <dewar@adacore.com>
9091
9092 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
9093 handling executable extension manually and duplicating code.
9094
9095 * make.adb: Implement new -S switch
9096 (Gnatmake): Use new function Osint.Executable_Name instead
9097 of handling executable extension manually.
9098
9099 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
9100 is specified, the executable name ends with this suffix.
9101 Take advantage of Osint.Executable_Name instead of duplicating code.
9102
9103 * switch-m.adb: Recognize new gnatmake -S switch
9104
9105 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
9106 variable.
9107 (Get_Target_Parameters): Set Executable_Extension_On_Target if
9108 available.
9109
9110 * makeusg.adb: Add line for gnatmake -S switch
9111
91122006-10-31 Vincent Celier <celier@adacore.com>
9113
9114 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
9115 call it with -static-libgcc, as there are some platforms, such as
9116 Darwin, where one of these two switches is compulsory to link.
9117
91182006-10-31 Vincent Celier <celier@adacore.com>
6f7f72f9 9119
70198b9f
AC
9120 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
9121 instead of ADA_PROJECT_PATH, for the project path.
9122 (Gnatls): When displaying the project path directories, use host dir
9123 specs.
9124
9125 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
9126 names in the project path, as absolute paths may correspond to
9127 multi-valued VMS logical names.
9128
91292006-10-31 Vincent Celier <celier@adacore.com>
9130
9131 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
9132 absolute path name.
9133 (Locate_Regular_File): Ditto
9134 (Change_Dir): Remove, no longer used
9135 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
9136 on Windows. Get it calling Get_Current_Dir.
9137 (OpenVMS): Remove imported boolean, no longer needed.
9138 (Normalize_Pathname)[VMS]: Do not resolve directory names.
9139 (Pid_To_Integer): New function to convert a Process_Id to Integer
9140
91412006-10-31 Thomas Quinot <quinot@adacore.com>
9142
9143 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
9144 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
9145 to No_Socket.
9146 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
9147 W_Sig_Socket.
9148
91492006-10-31 Robert Dewar <dewar@adacore.com>
9150
9151 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
9152 initial letter o as a zero.
9153
91542006-10-31 Robert Dewar <dewar@adacore.com>
9155
9156 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
9157
91582006-10-31 Robert Dewar <dewar@adacore.com>
9159
6f7f72f9
EB
9160 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
9161 variant records
9162 (Layout_Variant_Record): Retrieve the discriminants from the entity
70198b9f
AC
9163 rather than from the type definition, because in the case of a full
9164 type for a private type we need to take the discriminants from the
9165 partial view.
6f7f72f9
EB
9166 (Layout_Component_List): When applying the Max operator to variants with
9167 a nonstatic size, check whether either operand is static and scale that
9168 operand from bits to storage units before applying Max.
70198b9f
AC
9169 (Layout_Type): In VMS, if a C-convention access type has no explicit
9170 size clause (and does not inherit one in the case of a derived type),
9171 then the size is reset to 32 from 64.
9172
91732006-10-31 Vincent Celier <celier@adacore.com>
9174
9175 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
9176 its file has already been loaded, according to the unit being loaded,
9177 not to the current value of Multiple_Unit_Index.
9178
91792006-10-31 Thomas Quinot <quinot@adacore.com>
9180 Eric Botcazou <ebotcazou@adacore.com>
9181 Arnaud Charlet <charlet@adacore.com>
9182
9183 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
9184 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
9185 possible.
9186 (a-except.o): Pass it to the compiler.
9187 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
9188 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
9189 a-calend-mingw.adb version.
9190
6f7f72f9 9191 * Makefile.rtl: Added s-dsaser.
70198b9f
AC
9192 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
9193 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
9194 Ada.Dispatching.Round_Robin.
9195 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
9196
9197 * Make-lang.in: Remove all references to gt-ada-decl.h.
9198 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
9199 sources.
9200 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
9201 Update dependencies.
9202
9203 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
9204
92052006-10-31 Vincent Celier <celier@adacore.com>
9206
9207 * mlib-utl.adb (Initialized): Remove, no longer used
9208 (Initialize): Remove, no longer used
9209 (Ar): If Ar_Exec is null, get the location of the archive builder and,
9210 if there is one, the archive indexer. Fail if the archive builder cannot
9211 be found.
9212 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
9213 be found.
9214
92152006-10-31 Ed Schonberg <schonberg@adacore.com>
9216
9217 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
9218 Process_Body_Clauses): If the context of a body includes a use clause
9219 for P.Q then a with_clause for P in the same body is not redundant,
9220 even if the spec also has a with_clause on P.
9221 Add missing continuation mark to error msg
9222 (Build_Limited_Views): A limited view of a type is tagged if its
9223 declaration includes a record extension.
9224 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
9225 node, even if the subunit has errors. This avoids malfunction by
9226 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
9227 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
9228 generation of obsolescent messages for with statements (cannot do
9229 this too early, or we cannot implement avoiding the messages in the
9230 case of obsolescent units withing obsolescent units).
9231 (Install_Siblings): If the with_clause is on a remote descendant of
9232 an ancestor of the current compilation unit, find whether there is
9233 a sibling child unit that is immediately visible.
9234 (Remove_Private_With_Clauses): New procedure, invoked after completing
9235 the analysis of the private part of a nested package, to remove from
9236 visibility the private with_clauses of the enclosing package
9237 declaration.
9238 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
9239 now centralized in Generate_Reference.
9240 (Install_Limited_Context_Clauses): Remove superfluous error
9241 message associated with unlimited view visible through use
9242 and renamings. In addition, at the point in which the error
9243 is reported, we add the backslash to the text of the error
9244 to ensure that it is reported as a single error message.
9245 Use new // insertion for some continuation messages
9246 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
9247 to create implicit with_clause for parent unit mentioned in original
9248 limited_with_clause.
9249 (Install_Limited_With_Unit): Set entity of parent identifiers if the
9250 unit is a child unit. For ASIS queries.
9251 (Analyze_Subunit): If the subunit appears within a child unit, make all
9252 ancestor child units directly visible again.
9253
92542006-10-31 Robert Dewar <dewar@adacore.com>
9255
9256 * par-ch10.adb (P_Context_Clause): Minor error message fix
9257
92582006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
9259 Javier Miranda <miranda@adacore.com>
9260
9261 * par-ch12.adb: Grammar update and cleanup.
9262 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
9263 support for synchronized derived type definitions.
9264 Add the new actual Abstract_Present to every call to
9265 P_Interface_Type_Definition.
9266 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
9267 a formal object declaration with an access definition or a subtype mark
9268 with a null exclusion.
9269 (P_Generic_Association): Handle association with box, and others_choice
9270 with box, to support Ada 2005 partially parametrized formal packages.
9271
92722006-10-31 Robert Dewar <dewar@adacore.com>
9273 Javier Miranda <miranda@adacore.com>
6f7f72f9 9274
70198b9f
AC
9275 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
9276 (P_Type_Declaration): Remove barrier against the reserved word "limited"
9277 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
9278 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
9279 private extensions.
9280 (P_Type_Declaration): Add the new actual Abstract_Present to every call
9281 to P_Interface_Type_Definition.
9282 (P_Interface_Type_Definition): Addition of one formal to report an error
9283 if the reserved word abstract has been previously found.
9284 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
9285 object renaming declaration with an access definition or subtype mark
9286 with a possible null exclusion.
9287
9288 * par-ch9.adb: Minor error msg fix
9289
9290 * par-load.adb: Add missing continuation mark to error msg
9291
9292 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
9293
92942006-10-31 Vincent Celier <celier@adacore.com>
9295
9296 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
9297 unknown attribute in unknown package or in package that does not need
9298 to be checked.
9299 (Parse_Package_Declaration): Do not issue warning for unknown package in
9300 quiet output.
9301
93022006-10-31 Vincent Celier <celier@adacore.com>
9303
9304 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
9305 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
9306 Packages_To_Check.
9307
93082006-10-31 Vincent Celier <celier@adacore.com>
9309
9310 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
9311 on VMS, change "__" to '.' before checking the name.
9312 (Record_Ada_Source): Always add the source file name in the list of
9313 of sources, even if it is not the first time, as it is for another
9314 source index.
9315 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
9316 dot, instead of replacing only the first '_'.
9317
9318 * prj-part.adb (Parse): Convert project file path to canonical form
9319
9320 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
9321 extended, the project id of the project extending it is recorded in its
9322 data, even when it has already been processed as an imported project.
9323
93242006-10-31 Robert Dewar <dewar@adacore.com>
9325
9326 * repinfo.adb (List_Entities): Don't list entities from renaming
9327 declarations.
9328
93292006-10-31 Arnaud Charlet <charlet@adacore.com>
9330 Robert Dewar <dewar@adacore.com>
9331
9332 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
9333 only a restriction warning is active for the given restriction. This is
9334 desirable because we do not want to modify code in the case where only
9335 a warning is set.
9336 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
9337 causes overriding of real restrictions.
9338 Take advantage of new No_Restrictions constant.
9339
9340 * raise.h: (__gnat_set_globals): Change profile.
9341
93422006-10-31 Arnaud Charlet <charlet@adacore.com>
70198b9f 9343
6f7f72f9
EB
9344 * rtsfind.adb: Remove s-polint from comment as it exists no more.
9345
9346 * rtsfind.ads:
9347 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
9348 Move all the entities in obsolete package System.PolyORB_Interface to
9349 System.Partition_Interface.
70198b9f
AC
9350 (RE_Storage_Size): New function in System.Tasking.
9351 (RE_Get_Ceiling): New entity.
9352 (RE_Set_Ceiling): New entity.
9353 (RO_PE_Get_Ceiling): New entity.
9354 (RO_RE_Set_Ceiling): New entity.
9355 (Inherit_CPP_DT): New entity
9356
93572006-10-31 Robert Dewar <dewar@adacore.com>
9358
9359 * scng.adb (Scan, case of numeric literal): Better msg for identifier
9360 starting with a digit.
9361
93622006-10-31 Ed Schonberg <schonberg@adacore.com>
9363 Thomas Quinot <quinot@adacore.com>
9364 Javier Miranda <miranda@adacore.com>
9365 Gary Dismukes <dismukes@adacore.com>
9366
9367 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
9368 properly an attempt to apply Unchecked_Access to a protected operation.
9369 (OK_Self_Reference): New subprogram to check the legality of an access
9370 attribute whose prefix is the type of an enclosing aggregate.
9371 Generalizes previous mechanism to handle attribute references nested
9372 arbitrarily deep within the aggregate.
9373 (Analyze_Access_Attribute): An access attribute whose prefix is a type
9374 can appear in an aggregate if this is a default-initialized aggregate
9375 for a self-referential type.
9376 (Resolve_Attribute, case Access): Ditto.
9377 Add support for new implementation defined attribute Stub_Type.
9378 (Eval_Attribute, case Attribute_Stub_Type): New case.
9379 (Analyze_Attribute, case Attribute_Stub_Type): New case.
9380 (Stream_Attribute_Available): Implement using new subprogram from
9381 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
9382 Has_Specified_Stream_Attribute flag.
9383 Disallow Storage_Size and Storage_Pool for access to subprogram
9384 (Resolve_Attribute, case 'Access et al): Take into account anonymous
9385 access types of return subtypes in extended return statements. Remove
9386 accessibility checks on anonymous access types when Unchecked_Access is
9387 used.
9388 (Analyze_Attribute): Add support for the use of 'Class to convert
9389 a class-wide interface to a tagged type.
9390 Add support for the attribute Priority.
9391 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
9392 whether the designated type is discriminated with a constrained partial
9393 view and require static matching in that case.
9394 Add local variable Des_Btyp. The Designated_Type
9395 of an access to incomplete subtype is either its non-limited view if
9396 coming from a limited with or its etype if regular incomplete subtype.
9397
9398 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
9399 Fix predicate to identify and allow cases of (expander-generated)
9400 references to tag of designated object of a RACW.
9401 (Validate_Static_Object_Name): In Ada 2005, a formal object is
9402 non-static, and therefore cannot appear as a primary in a preelaborable
9403 package.
9404 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
9405 Has_Read_Write_Attributes.
9406 (Has_Read_Write_Attributes): Reimplement in termes of
9407 Has_Stream_Attribute_Definition.
9408 (Missing_Read_Write_Attributes): When checking component types in a
9409 record, unconditionally call Missing_Read_Write_Attributes recursively
9410 (remove guard checking for Is_Record_Type / Is_Access_Type).
9411
94122006-10-31 Robert Dewar <dewar@adacore.com>
9413
9414 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
9415 useless assignments here and conditionalize it on absence of exception
9416 handlers.
9417 (Analyze_Exception_Handlers): Small code reorganization of error
9418 detection code, for new handling of formal packages.
9419
94202006-10-31 Ed Schonberg <schonberg@adacore.com>
9421 Hristian Kirtchev <kirtchev@adacore.com>
6f7f72f9
EB
9422
9423 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
70198b9f
AC
9424 that has been constant-folded, preserve information of original tree,
9425 for ASIS uses.
9426 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
9427 generated private extension declaration if the formal derived type is
9428 synchronized. Carry synchronized present over to the generated private
9429 extension.
9430 (Validate_Derived_Type_Instance): Ensure that the actual of a
9431 synchronized formal derived type is a synchronized tagged type.
9432 (Instantiate_Formal_Package): When creating the instantiation used to
9433 validate the actual package of a formal declared without a box, check
9434 whether the formal itself depends on a prior actual.
9435 (Instantiate_Formal_Subprogram): Create new entities for the defining
9436 identifiers of the formals in the renaming declaration, for ASIS use.
9437 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
9438 a renaming declaration or a subtype declaration for an actual in an
9439 instance, capture location information of declaration in generic, for
9440 ASIS use.
9441 (Instantiate_Formal_Package): Add comments on needed additional tests.
9442 AI-317 (partial parametrization) is fully implemented.
9443 (Validate_Private_Type_Instance): Add check for actual which
9444 must have preelaborable initialization
9445 Use new // insertion for some continuation messages
9446 (Analyze_Formal_Object_Declaration): Change usage of Expression to
9447 Default_Expression. Add type retrieval when the declaration has an
9448 access definition. Update premature usage of incomplete type check.
9449 (Check_Access_Definition): New subsidiary routine. Check whether the
9450 current compilation version is Ada 05 and the supplied node has an
9451 access definition.
9452 (Instantiate object): Alphabetize local variables. Handle the creation
9453 of new renaming declarations with respect to the kind of definition
9454 used - either an access definition or a subtype mark. Guard against
9455 unnecessary error message in the context of anonymous access types after
9456 they have been resolved. Add check for required null exclusion in a
9457 formal object declaration.
9458 (Switch_View): A private subtype of a non-private type needs to be
9459 switched (the base type can have been switched without its private
9460 dependents because of the last branch of Check_Private_View.
9461 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
9462 value from BT.
9463 (Instantiate_Type): Emit an error message whenever a class-wide type of
9464 a tagged incomplete type is used as a generic actual.
9465 (Find_Actual_Type): Extend routine to handle a component type in a child
9466 unit that is imported from a formal package in a parent.
9467 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
9468 agree on constrainedness, rather than checking against ultimate ancestor
9469 (Instantiate_Subprogram_Body): Create a cross-reference link to the
9470 generic body, for navigation purposes.
9471
94722006-10-31 Robert Dewar <dewar@adacore.com>
9473 Thomas Quinot <quinot@adacore.com>
9474
9475 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
9476 type.
9477 (New_Stream_Subprogram): When processing an attribute definition clause
9478 for a stream-oriented subprogram, record an entity node occurring at
9479 the point of clause to use for checking the visibility of the clause,
9480 as defined by 8.3(23) as amended by AI-195.
9481 (New_Stream_Subprogram): New procedure, factoring behaviour from both
9482 New_Stream_Function and New_Stream_Procedure.
9483 (New_Stream_Function, New_Stream_Procedure): Removed.
9484 (Analyze_Attribute_Definition_Clause, case Address): Check new
9485 Alignment_Check check
9486
94872006-10-31 Ed Schonberg <schonberg@adacore.com>
9488 Javier Miranda <miranda@adacore.com>
9489 Robert Dewar <dewar@adacore.com>
9490
9491 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
9492 generate the same errors compiling under -gnatc.
9493 (Try_Object_Operation): If no candidate interpretation succeeds, but
9494 there is at least one primitive operation with the right name, report
9495 error in call rather than on a malformed selected component.
9496 (Analyze_Selected_Component): If the prefix is an incomplete type from
9497 a limited view, and the full view is available, use the full view to
9498 determine whether this is a prefixed call to a primitive operation.
9499 (Operator_Check): Verify that a candidate interpretation is a binary
9500 operation before checking the type of its second formal.
9501 (Analyze_Call): Add additional warnings for function call contexts not
9502 yet supported.
9503 (Analyze_Allocator): Move the check for "initialization not allowed for
9504 limited types" after analyzing the expression. This is necessary,
9505 because OK_For_Limited_Init looks at the structure of the expression.
9506 Before analysis, we don't necessarily know what sort of expression it
9507 is. For example, we don't know whether F(X) is a function call or an
9508 indexed component; the former is legal in Ada 2005; the latter is not.
9509 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
9510 were missing. We also didn't handle qualified expressions. Now also
9511 allow function calls. Use new common routine OK_For_Limited_Init.
9512 (Analyze_Type_Conversion): Do not perform some legality checks in an
9513 instance, because the error message will be redundant or spurious.
9514 (Analyze_Overloaded_Selected_Component): Do not do style check when
9515 setting an entity, since we do not know it is the right entity yet.
9516 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
9517 (Analyze_Overloaded_Selected_Component): Same change
9518 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
9519 since regular incomplete subtypes are transformed into corresponding
9520 subtypes of their full views.
9521 (Complete_Object_Operation): Treat name of transformed subprogram call
9522 as coming from source, for browsing purposes.
9523 (Try_Primitive_Operation): If formal is an access parameter, compare
9524 with base type of object to determine whether it is a primitive
9525 operation.
9526 (Operator_Check): If no interpretation of the operator matches, check
9527 whether a use clause on any candidate might make the operation legal.
9528 (Try_Class_Wide_Operation): Check whether the first parameter is an
9529 access type whose designated type is class-wide.
9530
95312006-10-31 Robert Dewar <dewar@adacore.com>
9532 Ed Schonberg <schonberg@adacore.com>
9533 Gary Dismukes <dismukes@adacore.com>
9534
9535 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
9536 warn on infinite loops.
9537 Add \\ to some continuation messages
9538 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
9539 (Process_Bounds): If the bounds are integer literals that result from
9540 constant-folding, and they carry a user-defined type, preserve that type
9541 rather than treating this as an integer range.
9542 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
9543 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
9544 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
9545 left hand side of assignment.
9546 (Analyze_Assignment): Add suport to manage assigments to the attribute
9547 priority of a protected object.
9548 (Check_Possible_Current_Value_Condition): Allow fully qualified names
9549 not just identifiers.
9550 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
9551 or AND THEN for possible tracking.
9552 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
9553 case of while loops so we can track values in the loop body.
9554
95552006-10-31 Ed Schonberg <schonberg@adacore.com>
9556 Hristian Kirtchev <kirtchev@adacore.com>
9557 Bob Duff <duff@adacore.com>
6f7f72f9 9558
70198b9f
AC
9559 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
9560 procedure cannot be a protected operation (it is a basic_declaration,
9561 not a subprogram_declaration).
9562 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
9563 Subp. Add logic for entry processing.
9564 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
9565 Determine whether an entry or subprogram of a protected or task type
9566 override an inherited primitive of an implemented interface.
9567 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
9568 Update the actual used in calls to Check_Overriding_Indicator.
9569 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
9570 generate the proper reference to the parent unit, for cross-reference.
9571 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
9572 Is_Formal.
9573 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9574 (Add_Extra_Formal): Revise procedure to allow passing in associated
9575 entity, scope, and name suffix, and handle setting of the new
9576 Extra_Formals field.
9577 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
9578 pass new parameters. Add support for adding the new extra access formal
9579 for functions whose calls are treated as build-in-place.
9580 (Analyze_A_Return_Statement): Correct casing in error message.
9581 Move Pop_Scope to after Analyze_Function_Return, because an extended
9582 return statement really is a full-fledged scope. Otherwise, visibility
9583 doesn't work right. Correct use of "\" for continuation messages.
9584 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
9585 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
9586 the node doesn't get properly marked as analyzed.
9587 (Analyze_Subprogram_Body): If subprogram is a function that returns
9588 an anonymous access type that denotes a task, build a Master Entity
9589 for it.
9590 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
9591 proper usage of null exclusion in a result definition.
9592 (Process_Formals): Code cleanup and new error message.
9593 (Process_Formals): Detect incorrect application of null exclusion to
9594 non-access types.
9595 (Conforming_Types): Handle conformance between [sub]types and itypes
9596 generated for entities that have null exclusions applied to them.
9597 (Maybe_Primitive_Operation): Add an additional type retrieval when the
9598 base type is an access subtype. This case arrises with null exclusions.
9599 (New_Overloaded_Entity): Do not remove the overriden entity from the
9600 homonym chain if it corresponds with an abstract interface primitive.
9601 (Process_Formals): Replace membership test agains Incomplete_Kind with a
9602 call to the synthesized predicate Is_Incomplete_Type.
9603 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
9604 primitives.
9605 (Analyze_Subprogram_Declaration): Check that abstract interface
9606 primitives are abstract or null.
9607 (Analyze_Subprogram_Specification): Remove previous check for abstract
9608 interfaces because it was not complete.
9609 (Has_Interface_Formals): Removed.
9610
96112006-10-31 Ed Schonberg <schonberg@adacore.com>
9612 Javier Miranda <miranda@adacore.com>
9613
9614 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
9615 of Analyze_Package_Body, to create Itype references for anonymous
9616 access types created in the package declaration, whose designated types
9617 may have only a limited view.
9618 (Analyze_Package_Specification): For the private part of a nested
9619 package, install private_with_clauses of enclosing compilation unit if
9620 we are in its visible part.
9621 (Declare_Inherited_Private_Subprograms): Complete barrier
9622 to ensure that the primitive operation has an alias to some parent
9623 primitive. This is now required because, after the changes done for the
9624 implementation of abstract interfaces, the contents of the list of
9625 primitives has entities whose alias attribute references entities of
9626 such list of primitives.
9627 (Analyze_Package_Specification): Simplify code that handles parent units
9628 of instances and formal packages.
9629 (Uninstall_Declarations): Check the convention consistency among
9630 primitive overriding operations of a tagged record type.
9631
96322006-10-31 Robert Dewar <dewar@adacore.com>
9633 Hristian Kirtchev <kirtchev@adacore.com>
9634 Javier Miranda <miranda@adacore.com>
9635 Ed Schonberg <schonberg@adacore.com>
6f7f72f9 9636
70198b9f
AC
9637 * sem_ch8.adb: Minor error msg rewording
9638 (Undefined): When checking for misspellings, invert arguments (to get
9639 expected and found set right)
9640 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
9641 (Analyze_Generic_Renaming): Same fix
9642 (Use_One_Package): Do not take into account the internal entities of
9643 abstract interfaces during the analysis of entities that are marked
9644 as potentially use-visible.
9645 (Find_Type): Handle the case of an attribute reference for
9646 implementation defined attribute Stub_Type (simply let the analysis of
9647 the attribute reference rewrite it).
9648 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
9649 type that appears in a Use_Type clause.
9650 (Analyze_Object_Renaming): Add support for renaming of the Priority
9651 attribute.
9652 (Find_Type): In Ada 2005, a task type can be used within its own body,
9653 when it appears in an access definition.
9654 (Analyze_Object_Renaming): Remove warning on null_exclusion.
9655 (Analyze_Object_Renaming): Introduce checks for required null exclusion
9656 in a formal object declaration or in a subtype declaration.
9657 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
9658 (Check_Null_Exclusion): New local routine to
9659 Analyze_Subprogram_Renaming. Check whether the formals and return
9660 profile of a renamed subprogram have required null exclusions when
9661 their counterparts of the renaming already impose them.
9662 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
9663 Determine whether an entity is inside a generic scope.
9664 (In_Open_Scope): First pass of documentation update.
9665 (Find_Expanded_Name): Add support for shadow entities associated with
9666 limited withed packages. This is required to handle nested packages.
9667 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
9668 that makes a renaming of a limited withed package illegal.
9669
96702006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
9671 Ed Schonberg <schonberg@adacore.com>
9672
9673 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
9674 Check_Overriding_Indicator.
9675 (Analyze_Task_Definition): Ditto.
9676 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
9677 (Check_Overriding_Indicator): To find overridden interface operation,
9678 examine only homonyms that have an explicit subprogram declaration, not
9679 inherited operations created by an unrelated type derivation.
9680 (Check_Overriding_Indicator): When checking for the presence of "null"
9681 in a procedure, ensure that the queried node is a procedure
9682 specification.
9683 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
9684 type when the formal is an access to variable.
9685 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
9686 (Analyze_Task_Type): Same addition
9687 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
9688 provide navigation capabilities for entries.
9689
96902006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
9691 Ed Schonberg <schonberg@adacore.com>
9692 Javier Miranda <miranda@adacore.com>
9693 Gary Dismukes <dismukes@adacore.com>
9694
9695 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
9696 inherited from an interface ancestor by another interface in the
9697 context of an instance as 'late'.
9698 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
9699 of a call to a function that dispatches on access result.
9700 (Check_Dispatching_Operation): In case of late overriding of a primitive
9701 that covers abstract interface subprograms we register it in all the
9702 secondary dispatch tables associated with abstract interfaces.
9703 (Check_Dispatching_Call): Add check that a dispatching call is not made
9704 to a function with a controlling result of a limited type. This is a
9705 current implementation restriction.
9706 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
9707 (Check_Dispatching_Operation): Do no emit a warning if the controlling
9708 argument is an interface type that is a generic formal.
9709 (Is_Interface_Subprogram): Removed.
9710 (Check_Dispatching_Operation): If the subprogram is not a dispatching
9711 operation, check the formals to handle the case in which it is
9712 associated with an abstract interface type.
9713
97142006-10-31 Robert Dewar <dewar@adacore.com>
9715 Ed Schonberg <schonberg@adacore.com>
9716
9717 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
9718 Add new calls to this procedure during traversal
9719 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
9720 another unit if expansion is disabled.
9721
97222006-10-31 Robert Dewar <dewar@adacore.com>
9723
9724 * sem_eval.adb (Compile_Time_Compare): Make use of information from
9725 Current_Value in the conditional case, to evaluate additional
9726 comparisons at compile time.
9727
97282006-10-31 Ed Schonberg <schonberg@adacore.com>
9729 Hristian Kirtchev <kirtchev@adacore.com>
9730 Javier Miranda <miranda@adacore.com>
9731
9732 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
9733 subprogram type to provide better diagnostics in case of ambiguity.
9734 (Covers): Handle coverage of formal and actual anonymous access types in
9735 the context of generic instantiation.
9736 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
9737 abstract interface types; this is required to handle concurrent types
9738 with discriminants and abstract interface types.
9739 (Covers): Include type coverage of both regular incomplete subtypes and
9740 incomplete subtypes of incomplete type visibles through a limited with
9741 clause.
9742
97432006-10-31 Robert Dewar <dewar@adacore.com>
9744 Hristian Kirtchev <kirtchev@adacore.com>
9745 Ed Schonberg <schonberg@adacore.com>
6f7f72f9
EB
9746
9747 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
70198b9f
AC
9748 messages for entities in packages which are not used.
9749 (Collect_Synchronized_Interfaces): New procedure.
9750 (Overrides_Synchronized_Primitive): New function.
9751 (Denotes_Discriminant): Extend predicate to apply to task types.
9752 Add missing continuation marks in error msgs
9753 (Unqualify): New function for removing zero or more levels of
9754 qualification from an expression. There are numerous places where this
9755 ought to be used, but we currently only deal properly with zero or one
9756 level.
9757 (In_Instance); The analysis of the actuals in the instantiation of a
9758 child unit is not within an instantiation, even though the parent
9759 instance is on the scope stack.
9760 (Safe_To_Capture_Value): Exclude the case of variables that are
9761 renamings.
9762 (Check_Obsolescent): Removed
9763 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
9764 is an aliased view, even when rewritten as a reference to the target
9765 object in an assignment.
9766 (Get_Subprogram_Entity): New function
9767 (Known_To_Be_Assigned): New function
9768 (Type_Access_Level): Compute properly the access level of a return
9769 subtype that is an anonymous access type.
9770 (Explain_Limited_Type): Correct use of "\" for continuation messages.
9771 (Is_Transfer): The new extended_return_statement causes a transfer of
9772 control.
9773 (Has_Preelaborable_Initialization): New function
9774 (Has_Null_Exclusion): New function. Given a node N, determine whether it
9775 has a null exclusion depending on its Nkind.
9776 Change Is_Lvalue to May_Be_Lvalue
9777 (May_Be_Lvalue): Extensive additional code to deal with subprogram
9778 arguments (IN parameters are not Lvalues, IN OUT parameters are).
9779 (Safe_To_Capture_Value): Extend functionality so it can be used for
9780 the current value condition case.
9781 (Has_Compatible_Alignment): New function
9782 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
9783 objects to handle the Ada 2005 case, where aliasedness no longer implies
9784 that the object is constrained. In particular, for dereferenced names,
9785 the designated object must be assumed to be unconstrained.
9786 (Kill_Current_Values): Properly deal with the case where we encounter
9787 a loop in the scope chain.
9788 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
9789 a value.
9790 (Compile_Time_Constraint_Error): Improve error message in error case
9791
9792 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
9793 associated with entities of abstract interface primitives.
9794 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
9795
97962006-10-31 Robert Dewar <dewar@adacore.com>
9797
9798 * s-osinte-tru64.adb:
9799 Mark Asm statements Volatile to prevent warnings (seems a
9800 reasonable change anyway)
9801 Fixes new warnings
9802
9803 * s-mastop-irix.adb: Add Volatile to Asm statements
9804 Suppresses warning, and seems appropriate in any case
9805
9806 * s-osinte-vms.adb: Add Volatile to Asm statement
9807
9808 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
9809
9810 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
9811 returned.
9812 Add call to Check_Code_Statement
9813
98142006-10-31 Robert Dewar <dewar@adacore.com>
9815 Ed Schonberg <schonberg@adacore.com>
9816 Bob Duff <duff@adacore.com>
9817
9818 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
9819 Synchronized_Present): Add Formal_Derived_Type_Definition and
9820 Private_Extension_Declaration to the list of assertions.
9821 (Is_Entry_Barrier_Function): New flag
9822 (Has_Self_Reference): New flag on aggregates, to indicate that they
9823 contain a reference to the enclosing type, inserted through a default
9824 initialization.
9825 (Next_Rep_Item): Move from Node4 to Node5.
9826 (Entity): Add this field for N_Attribute_Definition_Clause.
9827 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
9828 (N_Return_Object_Declaration): Remove this node kind. We now use
9829 N_Object_Declaration instead.
9830 (Actual_Designated_Subtype): Move to a different place to make room in
9831 N_Extended_Return_Statement.
9832 (Procedure_To_Call): Move to a different place to make room in
9833 N_Extended_Return_Statement.
9834 (Return_Type): Removed this field to make room in return statements
9835 (both kinds).
9836 (Return_Statement_Entity): New field in return statements, in part to
9837 replace Return_Type, and in part to support the fact that return
9838 statements are now pushed on the scope stack during semantic analysis.
9839 (Return_Object_Declarations): New field to support extended return
9840 statements.
9841 (N_Extended_Return_Statement): New node for extended_return_statement
9842 nonterminal.
9843 (N_Return_Object_Declaration): New node for part of
9844 extended_return_statement nonterminal. Needed because all the necessary
9845 fields won't fit in N_Extended_Return_Statement.
9846 Generic_associations now carry the Box_Present flag, to indicate a
9847 default for an actual in a partially parametrized formal package.
9848
6f7f72f9 9849 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
70198b9f
AC
9850 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
9851 and for the new predefined dispatching policies: EDF_Across_Priorities,
9852 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
9853 Introduce new name Stub_Type for implementation defined attribute.
9854 Add pragma Preelaborable_Initialization
9855 Add entry for Priority attribute.
9856 Add Pragma_Wide_Character_Encoding
9857 (Get_Convention_Name): Given a convention id, this function returns the
9858 corresponding name id from the names table.
9859
98602006-10-31 Ed Schonberg <schonberg@adacore.com>
9861 Robert Dewar <dewar@adacore.com>
9862 Bob Duff <duff@adacore.com>
9863
9864 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
9865 print null exclusion twice in the case of an access definition,
9866 Implement new -gnatL switch
9867 Remove N_Return_Object_Declaration. We now use
9868 N_Object_Declaration instead. Implement the case for
9869 N_Extended_Return_Statement. Alphabetize the cases.
9870 Add cases for new nodes N_Extended_Return_Statement and
9871 N_Return_Object_Declaration. The code is not yet written.
9872 Update the output for N_Formal_Object_Declaration
9873 and N_Object_Renaming_Declaration.
9874 (Write_Itype): Account for the case of a modular integer subtype whose
9875 base type is private.
9876
98772006-10-31 Arnaud Charlet <charlet@adacore.com>
9878
9879 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
9880 Remove elaboration code, now done in the binder.
9881
9882 * s-rident.ads: Make this unit Preelaborate.
9883 (No_Restrictions): New constant used to clean up code and follow
9884 preelaborate constraints.
9885
9886 * s-stalib.adb:
9887 Add System.Restrictions dependence, referenced directly from the
9888 binder generated file.
9889
98902006-10-31 Gary Dismukes <dismukes@adacore.com>
9891
9892 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
9893 True when AAMP extended floating-point is in use (48-bit). Change type
9894 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
9895 the two byte array types on AFloat. Change type of IV_Ilf overlay
9896 variable from Byte8 to ByteLF. Add appropriate initializations of
9897 floating-point overlays for AAMP cases.
9898
98992006-10-31 Javier Miranda <miranda@adacore.com>
9900
9901 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
9902 (Get_Ceiling): New subprogram that returns
9903 the ceiling priority of the protected object.
9904 (Set_Ceiling): New subprogram that sets the new ceiling priority of
9905 the protected object.
9906
9907 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
9908
9909 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
9910
99112006-10-31 Jose Ruiz <ruiz@adacore.com>
9912
9913 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
9914 requeuing to the same protected object to give higher priority tasks
9915 the opportunity to execute.
9916
99172006-10-31 Robert Dewar <dewar@adacore.com>
9918
9919 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
9920 add more precise check for the character sequence that follows '[' to
9921 avoid possible confusion in case if '[' is the last character of a
9922 string literals.
9923 (Scan_Wide): Always allow brackets encoding
9924
99252006-10-31 Olivier Hainque <hainque@adacore.com>
9926
9927 * s-stchop.ads: make this unit preelaborate. This is desirable in
9928 general and made mandatory by the use of this unit by s-taprop which
9929 is itself preelaborate.
9930
9931 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
9932 Td_Events component.
9933
99342006-10-31 Vincent Celier <celier@adacore.com>
9935
9936 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
9937 in file names.
9938
99392006-10-31 Vincent Celier <celier@adacore.com>
9940
9941 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
9942
99432006-10-31 Vincent Celier <celier@adacore.com>
9944
9945 * makegpr.adb (Check_Compilation_Needed): Take into account path names
9946 with spaces.
9947 (Check_Compilation_Needed): When checking a C or C++ source, do not
9948 resolve symbolic links.
9949 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
9950 When not in verbose mode and Ellipse is True, display "..." for the
9951 first argument with Display set to False.
9952 (Build_Global_Archive): Always set Display True for the first object
9953 file. Call Display_Command with Ellipse set to True.
9954
99552006-10-31 Matt Heaney <heaney@adacore.com>
9956
9957 * a-crbtgo.ads: Commented each subprogram
9958
9959 * a-crbtgo.adb: Added reference to book from which algorithms were
9960 adapted.
9961
6f7f72f9 9962 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
70198b9f
AC
9963 indicate which child.
9964 (Generic_Conditional_Insert): changed parameter name from "Success" to
9965 "Inserted".
9966 (Generic_Unconditional_Insert_With_Hint): improved algorithm
9967
9968 * a-coorse.adb (Replace_Element): changed parameter name in call to
9969 conditional insert operation.
9970
9971 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
9972
9973 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
9974 Generic_Iteration
9975
9976 * a-ciorse.adb (Replace_Element): changed parameter name in call to
9977 conditional insert operation.
9978
9979 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
9980 Generic_Iteration.
9981
9982 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
9983 instead of mode inout.
9984
9985 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
9986 draft
9987 (Generic_Read): preserve existing buckets array if possible
9988 (Generic_Write): don't send buckets array length anymore
9989
9990 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
9991 instead of mode inout.
9992
9993 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
9994 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
9995
9996 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
9997 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
9998 (Replace_Element): local operation is now an instantiation
9999
10000 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
10001 check current length.
10002 (Generic_Replace_Element): new operation
10003
100042006-10-31 Doug Rupp <rupp@adacore.com>
10005
10006 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
10007 Call TBK$SYMBOLIZE without omitting parameters.
10008
100092006-10-31 Vincent Celier <celier@adacore.com>
10010
10011 * symbols-processing-vms-ia64.adb,
10012 symbols-processing-vms-alpha.adb (Process): Do not include symbols
10013 that come from generic instantiations in bodies.
10014
100152006-10-31 Pat Rogers <rogers@adacore.com>
10016
10017 * a-rttiev.ads, a-rttiev.adb:
10018 This is a significant redesign primarily for the sake of automatic
10019 timer task termination but also to fix a design flaw.
10020 Therefore we are now using an RTS lock, instead of a protected
10021 object, to provide mutual exclusion to the queue of pending events
10022 and the type Timing_Event is no longer a protected type.
10023
100242006-10-31 Robert Dewar <dewar@adacore.com>
10025 Cyrille Comar <comar@adacore.com>
10026 Ben Brosgol <brosgol@adacore.com>
10027
10028 * debug.adb: Update flags documentation
10029
6f7f72f9
EB
10030 * gnat_ugn.texi: Add documentation for new -gnatwq switch
10031 Clean up documentation for several other warning switches
10032 Clarify how task stack size can be specified with various
10033 versions of Windows.
10034 Add note that -gnatVo includes ranges including loops
70198b9f
AC
10035 Add documentation for -gnatL switch
10036 Add note on elaboration warning for initializing variables
10037 Add documentation for new -gnatwt warning switch
10038 Document new form of pragma Warnings (On|Off, string)
10039 Add comment on use of pragma Warnings to control warnings
10040 Add documentation for -gnatjnn switch
10041 Modify section on interfacing with C for VMS 64-bit.
10042 Add doc for -gnatVe/E
10043 Add documentation of new warning flags -gnatww/-gnatwW
10044 Add warnings about address clause overlays to list of warnings
10045 (Exception Handling Control): Document that the option --RTS must be
10046 used consistently for gcc and gnatbind.
10047 Clarify that inlining is not always possible
10048 Update documentation on pragma Unchecked_Union.
10049
10050 * gnat_rm.texi:
10051 Add documentation for new extended version of pragma Obsolescent
10052 Add documentation for implementation defined attribute 'Stub_Type.
10053 Add note on use of Volatile in asm statements
10054 Add documentation on use of pragma Unreferenced in context clause
10055 Document new form of pragma Warnings (On|Off, pattern)
10056 Document pragma Wide_Character_Encoding
10057 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
10058 enforced if code generation is active.
10059 Add section on pragma Suppress to document GNAT specific check
10060 Alignment_Check
10061 Clarify difference between No_Dispatching_Calls & No_Dispatch.
10062 Add documentation for pragma Restrictions (No_Elaboration_Code)
10063
10064 * gnat-style.texi:
10065 Add comments on layout of subprogram local variables in the
10066 presence of nested subprograms.
10067
6f7f72f9 10068 * ug_words: Resync.
70198b9f
AC
10069
10070 * elists.ads: Minor reformatting
10071 Node returns Node_Or_Entity_Id (doc change only)
10072
10073 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
10074
10075 * g-arrspl.ads (Create): Update comments.
10076
10077 * sem.ads: Add details on the handling of the scope stack.
10078
6f7f72f9 10079 * usage.adb: Update documentation.
70198b9f
AC
10080
10081 * validsw.ads, validsw.adb:
10082 Add definition of Validity_Check_Components and implement -gnatVe/E
10083
6f7f72f9 10084 * vms_data.ads: Add missing VMS qualifiers.
70198b9f
AC
10085
10086 * s-addope.ads: Add documentation on overflow and divide by zero
10087
100882006-10-31 Robert Dewar <dewar@adacore.com>
10089 Thomas Quinot <quinot@adacore.com>
10090 Arnaud Charlet <charlet@adacore.com>
10091
10092 * fmap.adb: Put routines in alpha order
10093
10094 * g-boumai.ads: Remove redundant 'in' keywords
10095
10096 * g-cgi.adb: Minor reformatting
10097
10098 * g-cgi.ads: Remove redundant 'in' keywords
10099
10100 * get_targ.adb: Put routines in alpha order
10101
10102 * prj-attr.ads: Minor reformatting
10103
10104 * s-atacco.ads: Minor reformatting
10105
10106 * scn.adb: Put routines in alpha order
10107
10108 * sinput-l.adb: Minor comment fix
10109
10110 * sinput-p.adb: Minor comment fix
10111
10112 * s-maccod.ads: Minor reformatting
10113
10114 * s-memory.adb: Minor reformatting
10115
10116 * s-htable.adb: Fix typo in comment.
10117
10118 * s-secsta.adb: Minor comment update.
10119
10120 * s-soflin.adb: Minor reformatting
10121
10122 * s-stoele.ads:
10123 Add comment about odd qualification in Storage_Offset declaration
10124
10125 * s-strxdr.adb:
10126 Remove unnecessary 'in' keywords for formal parameters.
10127
10128 * treeprs.adt: Minor reformatting
10129
10130 * urealp.adb: Put routines in alpha order
10131
10132 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
10133 taking string.
10134
10135 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10136
10137 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
10138
10139 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
10140 workaround as on other platforms.
10141
10142 * g-eacodu-vms.adb: Remove redundant 'in' keywords
10143 * g-expect-vms.adb: Remove redundant 'in' keywords
10144
10145 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
10146 clear error message if the list-of-files file cannot be opened.
10147
10148 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
10149 equality operator is always visible.
10150
10151 * lang.opt: Woverlength-strings: New option.
10152
10153 * nmake.adt:
10154 Update copyright, since nmake.ads and nmake.adb have changed.
10155
10156 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
10157 (Binder_Output_Time_Stamps_Set): removed.
10158 (Old_Binder_Output_Time_Stamp): idem.
10159 (New_Binder_Output_Time_Stamp): idem.
10160 (Recording_Time_From_Last_Bind): idem.
10161 (Recording_Time_From_Last_Bind): Make constant.
10162
10163 * output.ads, output.adb (Write_Str): Allow LF characters
10164 (Write_Spaces): New procedure
10165
10166 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
10167
10168 * inline.adb: Minor reformatting
10169
10170 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10171
10172 * s-mastop-vms.adb: Remove redundant 'in' keywords
10173
10174 * s-osprim-vms.adb: Remove redundant 'in' keywords
10175
10176 * s-trafor-default.adb: Remove redundant 'in' keywords
10177
10178 * 9drpc.adb: Remove redundant 'in' keywords
10179
10180 * s-osinte-mingw.ads: Minor reformatting
10181
10182 * s-inmaop-posix.adb: Minor reformatting
10183
10184 * a-direio.ads: Remove quotes from Compile_Time_Warning message
10185
10186 * a-exexda.adb: Minor code reorganization
10187
10188 * a-filico.adb: Minor reformatting
10189
10190 * a-finali.adb: Minor reformatting
10191
10192 * a-nudira.ads: Remove quote from Compile_Time_Warning message
10193
10194 * a-numeri.ads: Minor reformatting
10195
10196 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
10197
10198 * exp_pakd.ads: Fix obsolete comment
10199
10200 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
10201 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
10202 Probably not a bug, but certainly neater and more efficient.
10203
10204 * a-tienio.adb: Minor reformatting
10205
10206 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
10207 Avoid assuming low bound of string is 1.
10208
10209 * gnatbind.adb: Change Bindusg to package and rename procedure as
10210 Display, which now ensures that it only outputs usage information once.
10211 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
10212
10213 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
10214 Table'First.
10215
10216 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
10217 warning.
10218 (Match): Add pragma Assert to ensure that Matches'First is zero
10219
10220 * g-regpat.ads (Match): Document that Matches lower bound must be zero
10221
10222 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
10223 documented preconditions (also kills warnings about bad indexes).
10224
10225 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
10226 is 1.
10227 (Build_Import_Library): Ditto;
10228
10229 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
10230
10231 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
10232
10233 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
10234 lower bound of choice table is 1.
10235
10236 * sem_case.ads (Analyze_Choices): Document that lower bound of
10237 Choice_Table is 1.
10238
10239 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
10240 string is 1.
10241
10242 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
10243 and add appropriate Assert pragma to suppress warnings.
10244
10245 * atree.h, atree.ads, atree.adb
10246 Change Elist24 to Elist25
10247 Add definitions of Field28 and Node28
10248 (Traverse_Field): Use new syntactic parent table in sinfo.
10249
10250 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10251
10252 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10253
10254 * exp_tss.adb: Put routines in alpha order
10255
10256 * fe.h: Remove redundant declarations.
10257
c79efc4d 102582006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
ed41063a 10259
c79efc4d
RÁE
10260 * utils.c (builtin_function): Rename to gnat_builtin_function.
10261 Move common code to add_builtin_function.
10262 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
10263 gnat_builtin_function.
10264 * gigi.h (builtin_function): Rename to gnat_builtin_function.
10265 Change the signature.
10266
a8384928
BM
102672006-10-16 Brooks Moses <bmoses@stanford.edu>
10268
10269 * Makefile.in: Add TEXI2PDF definition.
10270 * Make-lang.in: Add "ada.pdf" target.
10271
2285b053
KH
102722006-10-03 Kazu Hirata <kazu@codesourcery.com>
10273
10274 * decl.c, utils.c: Fix comment typos.
c0a69967
KH
10275 * utils.c: Fix a typo.
10276
b55e7f34
EB
102772006-09-28 Eric Botcazou <ebotcazou@adacore.com>
10278
10279 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
10280 on "pure" Ada subprograms if SJLJ exceptions are used.
10281 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
10282 on the declaration node of JMPBUF_SAVE.
10283 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
10284 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
10285 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
10286
d2b40c09
LG
102872006-08-20 Laurent GUERBY <laurent@guerby.net>
10288
7a197678
EB
10289 PR ada/28716
10290 g-socket.adb (Bind_Socket): Call Set_Address.
10291
41d9adc7
EB
102922006-09-15 Eric Botcazou <ebotcazou@adacore.com>
10293
10294 PR ada/15802
10295 * decl.c (same_discriminant_p): New static function.
10296 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
10297 subtype and we have discriminants, fix up the COMPONENT_REFs
10298 for the discriminants to make them reference the corresponding
10299 fields of the parent subtype after it has been built.
10300
21cc3719
RS
103012006-09-15 Roger Sayle <roger@eyesopen.com>
10302
10303 PR ada/18817
10304 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
10305 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
10306
6f2789da
OH
103072006-09-13 Olivier Hainque <hainque@adacore.com>
10308
10309 PR ada/29025
10310 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
10311 of a SAVE_EXPR, just make the operand addressable/not-readonly and
10312 let the common gimplifier code make and propagate a temporary copy.
10313 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
10314 out/in-out actuals and defer setting the addressable/readonly bits
10315 to the gimplifier.
10316
efaa616e
EB
103172006-09-13 Eric Botcazou <ebotcazou@adacore.com>
10318
10319 PR ada/28591
10320 * decl.c (components_to_record): Defer emitting debug info for the
10321 record type associated with the variant until after we are sure to
10322 actually use it.
10323
2655f1c6
EB
103242006-09-13 Eric Botcazou <ebotcazou@adacore.com>
10325
10326 PR ada/21952
10327 * gigi.h (gnat_internal_attribute_table): Declare.
10328 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
10329 * utils.c (gnat_internal_attribute_table): New global variable.
10330 (builtin_function): Always call decl_attributes on the builtin.
10331 (handle_const_attribute): New static function.
10332 (handle_nothrow_attribute): Likewise.
10333
48779194
VR
103342006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
10335
10336 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
10337
8df7d439
EB
103382006-06-23 Olivier Hainque <hainque@adacore.com>
10339
10340 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
10341 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
10342
83fdc7c4 103432006-06-20 James A. Morrison <phython@gcc.gnu.org>
6f7f72f9 10344 Eric Botcazou <ebotcazou@adacore.com>
83fdc7c4
JM
10345
10346 PR ada/18692
10347 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
10348 check-gnat into check-acats.
10349
5f516f59
KB
103502006-06-17 Karl Berry <karl@gnu.org>
10351
6f7f72f9 10352 * gnat-style.texi (@dircategory): Use "Software development"
5f516f59
KB
10353 instead of "Programming", following the Free Software Directory.
10354
ce0d1b88
JDA
103552006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10356
10357 PR ada/27944
10358 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
10359
8c60f779
LG
103602006-06-06 Laurent GUERBY <laurent@guerby.net>
10361
6f7f72f9
EB
10362 PR ada/27769
10363 mlib-utl.adb: Use Program_Name.
10364
ce2e12c2
KH
103652006-05-28 Kazu Hirata <kazu@codesourcery.com>
10366
10367 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
10368 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
10369 trans.c, utils.c: Fix comment typos. Follow spelling
10370 conventions.
10371 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
10372 conventions.
10373
ba4ac682
EB
103742006-05-19 Nicolas Setton <setton@adacore.com>
10375
10376 * misc.c (gnat_dwarf_name): New function.
10377 (LANG_HOOKS_DWARF_NAME): Define to it.
10378
05b44921
L
103792006-05-14 H.J. Lu <hongjiu.lu@intel.com>
10380
10381 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
10382 (ada/misc.o): Likewise.
10383 (ada/utils.o): Likewise.
10384
a3bd7058
AJ
103852006-04-08 Aurelien Jarno <aurel32@debian.org>
10386
10387 * Makefile.in: Add Ada support for GNU/kFreeBSD.
10388 * s-osinte-kfreebsd-gnu.ads: New file.
10389
ad3a7ce3
CD
103902006-03-29 Carlos O'Donell <carlos@codesourcery.com>
10391
10392 * Make-lang.in: Rename docdir to gcc_docdir.
10393
936a6fa7
EB
103942006-03-04 Eric Botcazou <ebotcazou@adacore.com>
10395
10396 * gigi.h (get_ada_base_type): Delete.
10397 * utils2.c (get_ada_base_type): Likewise.
10398 * trans.c (convert_with_check): Operate in the real base type.
10399
93f978b7
RK
104002006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10401
10402 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
10403
434aeebb
RS
104042006-03-02 Richard Sandiford <richard@codesourcery.com>
10405
10406 * utils.c (create_var_decl): Use have_global_bss_p when deciding
10407 whether to make the decl common.
10408
6f7f72f9 10409