1 2006-06-06 Laurent GUERBY <laurent@guerby.net>
4 mlib-utl.adb: Use Program_Name.
6 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
8 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
9 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
10 trans.c, utils.c: Fix comment typos. Follow spelling
12 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
15 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
17 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
18 (ada/misc.o): Likewise.
19 (ada/utils.o): Likewise.
21 2006-04-08 Aurelien Jarno <aurel32@debian.org>
23 * Makefile.in: Add Ada support for GNU/kFreeBSD.
24 * s-osinte-kfreebsd-gnu.ads: New file.
26 2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
28 * Make-lang.in: Rename docdir to gcc_docdir.
30 2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
32 * gigi.h (get_ada_base_type): Delete.
33 * utils2.c (get_ada_base_type): Likewise.
34 * trans.c (convert_with_check): Operate in the real base type.
36 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
40 2006-03-02 Richard Sandiford <richard@codesourcery.com>
42 * utils.c (create_var_decl): Use have_global_bss_p when deciding
43 whether to make the decl common.
45 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
47 * Make-lang.in (Ada): Remove
50 2006-02-17 Ed Schonberg <schonberg@adacore.com>
52 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
53 aggregate, check the interpretations of the other operand to find one
54 that may be a boolean array.
56 (Analyze_Selected_Component): Fix flow-of-control typo in case where
57 the prefix is a private extension.
59 2006-02-17 Eric Botcazou <botcazou@adacore.com>
63 * utils2.c (find_common_type): If both input types are BLKmode and
64 have the same constant size, keep using the first one.
66 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
68 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
70 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
72 2006-02-17 Jose Ruiz <ruiz@adacore.com>
74 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
75 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
76 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
77 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
78 Abort_Defer/Undefer pairs to avoid the possibility of a task being
79 aborted while owning a lock.
81 2006-02-17 Javier Miranda <miranda@adacore.com>
82 Robert Dewar <dewar@adacore.com>
84 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
85 through an access to class-wide interface we force the displacement of
86 the pointer to the allocated object to reference the corresponding
87 secondary dispatch table.
88 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
89 if Long_Shifts are supported on the target, even if 64 bit divides
90 are not supported (configurable run time mode).
91 (Expand_N_Type_Conversion): Do validity check if validity checks on
93 (Expand_N_Qualified_Expression): Do validity check if validity checks
94 on operands are enabled.
96 2006-02-17 Ed Schonberg <schonberg@adacore.com>
98 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
99 must be materialized when the renamed expression is an explicit
102 2006-02-17 Ed Schonberg <schonberg@adacore.com>
104 * freeze.adb (Statically_Discriminated_Components): Return false if
105 the bounds of the type of the discriminant are not static expressions.
107 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
108 the bounds of the discriminant type are not static.
110 2006-02-17 Robert Dewar <dewar@adacore.com>
112 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
113 then we close To if it is valid.
115 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
117 * init.c (facility_resignal_table): new array
118 (__gnat_default_resignal_p): enhance default predicate to resignal if
119 VMS condition has one of the predefined facility codes.
121 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
123 * Makefile.in: Use VMS64 specialized versions of several units in
124 Interfaces.C hierarchy to be compatible with HP C default size choices.
125 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
127 2006-02-17 Ed Schonberg <schonberg@adacore.com>
129 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
130 instantiation, the corresponding entity is the related_instance of the
131 wrapper package created for the instance.
133 2006-02-17 Ed Schonberg <schonberg@adacore.com>
135 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
136 the current instance is nested within another instance in a child unit.
138 2006-02-17 Javier Miranda <miranda@adacore.com>
139 Ed Schonberg <schonberg@adacore.com>
141 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
142 type we cannot inherit the primitive operations; we inherit the
143 Corresponding_Record_Type (which has the list of primitive operations).
144 (Check_Anonymous_Access_Types): When creating anonymous access types for
145 access components, use Rewrite in order to preserve the tree structure,
147 (Analyze_Object_Declaration): For limited types with access
148 discriminants with defaults initialized by an aggregate, obtain
149 subtype from aggregate as for other mutable types.
150 (Derived_Type_Declaration): If the derived type is a limited interface,
151 set the corresponding flag (Is_Limited_Record is not sufficient).
153 2006-02-17 Ed Schonberg <schonberg@adacore.com>
155 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
156 to inline a function that returns an unconstrained type, the return
157 expression must be the first variable declared in the body of the
160 2006-02-17 Javier Miranda <miranda@adacore.com>
162 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
163 abstract interface type, the static analysis is not enough to know if
164 the interface is implemented or not by the source tagged type. Hence
165 we must pass the work to the expander to generate the required code to
166 evaluate the conversion at run-time.
167 (Resolve_Equality_Op): Do not apply previous
168 transformation if expansion is disasbled, to prevent anomalies when
169 locating global references in a generic unit.
171 2006-02-17 Vincent Celier <celier@adacore.com>
173 * snames.ads, snames.adb: New standard names for new project attributes:
174 archive_builder, archive_indexer, compiler_pic_option,
175 config_body_file_name, config_body_file_name_pattern,
176 config_file_switches, config_file_unique, config_spec_file_name,
177 config_spec_file_name_pattern, default_builder_switches,
178 default_global_compiler_switches, default_language,
179 dependency_file_kind, global_compiler_switches, include_path,
180 include_path_file, language_kind, linker_executable_option,
181 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
182 roots, runtime_project.
184 2006-02-17 Matthew Heaney <heaney@adacore.com>
186 * a-convec.ads, a-convec.adb:
187 (operator "&"): handle potential overflow for large index types
188 (Insert): removed Contraint_Error when using large index types
189 (Insert_Space): removed Constraint_Error for large index types
190 (Length): moved constraint check from Length to Insert
192 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
194 Explicit raise statements now include an exception message.
195 (operator "&"): handle potential overflow for large index types
196 (Insert): removed Contraint_Error when using large index types
197 (Insert_Space): removed Constraint_Error for large index types
198 (Length): moved constraint check from Length to Insert
200 2006-02-17 Robert Dewar <dewar@adacore.com>
202 * s-wchcnv.adb: Document handling of [ on output (we do not change
203 this to ["5B"] and the new comments say why not.
206 Add note for -gnatVo that this now includes the cases of type
207 conversions and qualified expressions.
208 Add comments on handling of brackets encoding for Text_IO
210 2006-02-17 Ramon Fernandez <fernandez@adacore.com>
211 Thomas Quinot <quinot@adacore.com>
212 Robert Dewar <dewar@adacore.com>
213 Javier Miranda <miranda@adacore.com>
215 * expander.adb: Fix typo in comment
217 * exp_pakd.adb: Fix typo
218 Minor comment reformatting.
220 * g-dyntab.adb: Minor reformatting
222 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
223 aliased subprograms to look for the abstract interface subprogram.
225 2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
227 * env.c (__gnat_setenv): Use size_t.
228 (__gnat_unsetenv): Likewise.
229 (__gnat_clearenv): Likewise.
231 2006-02-16 Arnaud Charlet <charlet@adacore.com>
233 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
235 2006-02-13 Arnaud Charlet <charlet@adacore.com>
237 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
238 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
239 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
240 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
241 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
242 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
243 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
244 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
245 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
248 2006-02-13 Jose Ruiz <ruiz@adacore.com>
250 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
251 protection against race conditions is not needed.
252 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
254 (Set_Specific_Handler): Add mutual exclusive access to the specific
256 (Specific_Handler): Add mutual exclusive access for retrieving the
259 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
262 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
263 Fall_Back_Handler and Specific_Handler.
265 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
266 termination handlers.
267 Set two different owerflow depending on the maximal stack size.
269 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
270 protection against race conditions is not needed when executing the
271 task termination handler.
273 2006-02-13 Robert Dewar <dewar@adacore.com>
275 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
276 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
277 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
278 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
279 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
280 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
281 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
282 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
283 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
284 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
285 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
286 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
287 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
288 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
289 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
290 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
291 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
292 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
293 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
294 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
295 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
296 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
297 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
298 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
299 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
300 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
301 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
302 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
303 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
304 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
305 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
306 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
307 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
308 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
311 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
313 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
314 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
315 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
316 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
317 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
318 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
319 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
320 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
321 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
323 2006-02-13 Arnaud Charlet <charlet@adacore.com>
325 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
326 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
327 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
328 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
329 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
330 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
331 replaced by anonymous access type.
332 (pthread_sigmask): Now take an access sigset_t
334 * s-osinte-hpux.ads: Ditto.
335 (pthread_mutex_t, pthread_cond_t): Update definitions to support
336 properly 32 and 64 bit ABIs.
338 2006-02-13 Pascal Obry <obry@adacore.com>
340 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
341 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
342 s-taprop-linux.adb, s-taprop-solaris.adb,
343 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
344 adjustement is already done when calling this routine.
346 2006-02-13 Pascal Obry <obry@adacore.com>
348 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
349 table to take advantage of the 16 priority levels available on Windows
350 2000 and XP. On NT4 there are only 7 priority levels, this is properly
351 supported by this new mapping.
353 2006-02-13 Nicolas Setton <setton@adacore.com>
355 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
356 (get_encoding): New subprogram. Extracts the encodings from an encoded
359 2006-02-13 Pascal Obry <obry@adacore.com>
360 Nicolas Roche <roche@adacore.com>
361 Arnaud Charlet <charlet@adacore.com>
363 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
365 (__gnat_try_lock): Add unicode support by using a specific section on
367 (__gnat_get_current_dir): Idem.
368 (__gnat_open_read): Idem.
369 (__gnat_open_rw): Idem.
370 (__gnat_open_create): Idem.
371 (__gnat_create_output_file): Idem.
372 (__gnat_open_append): Idem.
373 (__gnat_open_new): Idem.
374 (__gnat_file_time_name): Idem.
375 (__gnat_set_file_time_name): Idem.
377 (win32_no_block_spawn): Idem.
378 (__gnat_locate_exec_on_path): Idem.
379 (__gnat_opendir): New routine.
380 (__gnat_closedir): Idem.
381 (__gnat_readdir): Add new parameter length (pointer to int). Update
382 implementation to use it and add specific Win32 code for Unicode
384 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
385 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
386 (convert_addresses): Do not define this dummy routine on VMS.
388 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
389 runtime Unicode support will be activated.
390 (S2WS): String to Wide-String conversion. This version just copy a
391 string in non Unicode version.
392 (WS2S): Wide-String to String conversion. This version just copy a
393 string in non Unicode version.
395 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
396 (Open): Now import __gnat_opendir from adaint.c.
397 (Read): Change the implementation to support unicode characters. It is
398 not possible to use strlen() on Windows as this version supports only
399 standard ASCII characters. So the length of the directory entry is now
400 returned from the imported __gnat_readdir routine.
401 Update copyright notice.
403 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
404 (opendir): Moved to adaint.c.
406 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
407 (Get_Directory): Fix wrong indexing.
408 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
409 __gnat_getenv from env.c
410 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
413 * env.h, env.c: New file.
415 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
416 adaint.c by __gnat_getenv from env.c
418 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
419 adaint.c by __gnat_getenv from env.c
421 * Make-lang.in: Add env.o in the list of C object needed by gnat1
425 2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
426 Olivier Hainque <hainque@adacore.com>
427 Eric Botcazou <ebotcazou@adacore.com>
429 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
431 * gigi.h (value_factor_p): Add prototype and description, now public.
433 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
434 promotion for field with rep clause if the associated size was proven
436 Expand comments describing attempts to use a packable type.
437 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
438 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
439 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
440 necessary since these are not different types and pointers may
441 actually designate any subtype in this hierarchy.
442 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
443 discriminants but put them into record only if not Unchecked_Union;
444 pass flag to components_to_record showing Unchecked_Union.
445 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
446 components before variants; don't set TYPE_UNCHECKED_UNION_P.
447 (components_to_record): New argument UNCHECKED_UNION.
448 Remove special case code for Unchecked_Union and instead use main code
452 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
453 aligning variable with the expression being built, only its inner
456 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
457 emit_sequence_entry_statements.
458 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
459 (establish_gnat_vms_condition_handler): Move before
460 Subprogram_Body_to_gnu.
461 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
462 for a subprogram if it has a foreign convention or is exported.
463 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
464 substituted for a CONST_DECL.
465 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
466 Etype to assoc_to_constructor.
467 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
468 discriminants of Unchecked_Union.
469 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
470 don't need cluttering preprocessor directives.
471 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
472 condition handler as current in the compiled function.
473 (body_with_handlers_p): New function. Tell whether a given sequence of
474 statements node is attached to a package or subprogram body and involves
475 exception handlers possibly nested within inner block statements.
476 (emit_sequence_entry_statements): New function, to emit special
477 statements on entry of sequences when necessary. Establish GNAT
478 condition handler in the proper cases for VMS.
479 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
480 emit_sequence_entry_statements.
482 * utils2.c (find_common_type): If both input types are BLKmode and
483 have a constant size, use the smaller one.
484 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
487 * utils.c (value_factor_p): Make public, to allow uses from other gigi
489 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
490 (convert, case UNION_TYPE): Remove special treatment for unchecked
494 (update_pointer_to): Update variants of pointer types to
495 unconstrained arrays by attaching the list of fields of the main
498 2006-02-13 Arnaud Charlet <charlet@adacore.com>
499 Robert Dewar <dewar@adacore.com>
501 * a-exexpr.adb, a-exexpr-gcc.adb
502 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
503 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
504 Remove code unused for exception propagation for the compiler itself
505 from a-except.adb and update to still share separate packages.
507 * a-except.ads, a-except.adb: Ditto.
508 Add comments that this version is now used only by the compiler and
509 other basic tools. The full version that includes the Ada 2005 stuff
510 is in separate files a-except-2005.ads/adb. The reason is that we do
511 not want to cause bootstrap problems with compilers not recognizing
513 Add exception reason code PE_Implicit_Return
514 Add new exception reason code (Null Exception_Id)
516 * a-except-2005.adb, a-except-2005.ads: New files.
518 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
520 * s-wchcon.adb: New file.
522 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
523 (traceback.o deps): Likewise.
524 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
525 Activate build of GMEM instrumentation library on VMS targets.
526 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
527 Use a-except-2005.ads/adb for all run-time library builds unless
529 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
530 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
531 Use s-parame.adb on all native platforms.
532 Use s-parame-vxworks.adb on all vxworks platforms.
533 Add env.c env.h in LIBGNAT_SRCS
534 Add env.o in LIBGNAT_OBJS
535 (GNATMAKE_OBJS): Remove ctrl_c.o object.
536 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
537 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
538 supports VxWorks 6 RTPs.
539 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
540 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
542 * types.h, types.ads (Terminate_Program): New exception
543 Add comment on modifying multiple versions of a-except.adb when the
544 table of exception reasons is modified.
545 Add exception reason code PE_Implicit_Return
546 Add new exception reason code (Null Exception_Id)
548 * clean.adb (Initialize): Get the target parameters before checking
549 if target is OpenVMS. Move the OpenVMS specific code here from package
550 body elaboration code.
552 2006-02-13 Thomas Quinot <quinot@adacore.com>
553 Vincent Celier <celier@adacore.com>
554 Robert Dewar <dewar@adacore.com>
556 * ali-util.adb (Get_File_Checksum): Update to account for change in
557 profile of Initialize_Scanner.
559 * gprep.adb (Gnatprep): Update to account for change in profile of
561 (Process_One_File): Same.
563 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
564 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
565 that behaviour using the new Unit information recorded in the source
566 files table, rather than going through all units every time.
567 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
568 (Get_Source_Unit): Same.
570 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
571 change in profile of Initialize_Scanner.
572 (Prepare_To_Preprocess): Same.
574 * lib.ads: Fix typo in comment (templace -> template).
576 * prj-part.adb (Parse_Single_Project): Update to account for change in
577 profile of Initialize_Scanner.
579 * scn.adb (Initialize_Scanner): Account for change in profile of
580 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
581 Also record the association of the given Source_File_Index to the
582 corresponding Unit_Number_Type.
584 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
586 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
587 Remove Unit formal for generic scanner: this formal
588 is only relevant to Scn (the scanner instance used to parse Ada source
589 files), not to other instances. Update comment accordingly.
590 (Scan): Use new function Snames.Is_Keyword_Name.
592 * sinfo-cn.adb: Fix typo in comment.
594 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
597 * sinput.ads (Source_File_Record): New component Unit, used to capture
598 the unit identifier (if any) associated to a source file.
600 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
601 Unit in Source_File_Record.
603 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
604 in profile of Initialize_Scanner.
606 * scans.adb (Initialize_Ada_Keywords): New procedure
608 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
609 Ada keywords in the Namet table, without the need to call
612 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
613 (Is_Keyword_Name): New function
615 * snames.ads: Add subtype Configuration_Pragma_Names
616 Add pragma Ada_2005 (synonym for Ada_05)
617 (Is_Keyword_Name): New function
619 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
621 2006-02-13 Arnaud Charlet <charlet@adacore.com>
623 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
626 * a-stwima.adb (To_Set): Add extra check when N = 0.
628 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
630 2006-02-13 Arnaud Charlet <charlet@adacore.com>
632 * s-parame-mingw.adb, s-parame-linux.adb,
633 s-parame-solaris.adb: Removed, replaced by s-parame.adb
635 * s-parame-vxworks.ads: Fix typo.
637 * s-parame-vxworks.adb: New file.
639 * s-parame.adb: Version now used by all native platforms.
640 (Default_Stack_Size): Use 2 megs for default stack size and use
641 __gl_default_stack_size when available.
642 (Minimum_Stack_Size): Use 12K.
644 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
645 (Create_Task): Refine implementation taking advantage of the XP stack
646 size support. On XP, we now create the thread using the flag
647 STACK_SIZE_PARAM_IS_A_RESERVATION.
649 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
651 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
652 XP and 0 on older Windows versions.
654 * interfac-vms.ads: Removed, no longer used.
656 2006-02-13 Matthew Heaney <heaney@adacore.com>
658 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
659 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
660 a-cohase.adb: All explicit raise statements now include an exception
663 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
664 (Update_Element_Preserving_Key): renamed op to just Update_Element.
665 Explicit raise statements now include an exception message
667 * a-cihase.ads, a-cohase.ads: Removed comment.
669 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
670 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
671 a-szbzha.adb, a-szfzha.ads: New files.
673 2006-02-13 Matthew Heaney <heaney@adacore.com>
675 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
678 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
680 * lang.opt: Wvariadic-macros: New option.
681 Wold-style-definition: Likewise.
682 Wmissing-format-attribute: Likewise.
684 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
685 -Wold-style-definition and -Wmissing-format-attribute.
687 2006-02-13 Robert Dewar <dewar@adacore.com>
689 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
691 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
693 2006-02-13 Nicolas Roche <roche@adacore.com>
695 * a-envvar.adb, a-envvar.ads: New files.
697 2006-02-13 Douglas Rupp <rupp@adacore.com>
699 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
701 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
703 2006-02-13 Pat Rogers <rogers@adacore.com>
705 * a-rttiev.adb, a-rttiev.ads: New files.
707 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
709 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
710 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
712 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
714 2006-02-13 Robert Dewar <dewar@adacore.com>
716 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
717 sem_case.adb: Minor code reorganization (not Present should be No)
719 2006-02-13 Geert Bosch <bosch@adacore.com>
720 Gary Dismukes <dismukes@adacore.com>
722 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
723 0, since the lower bound of the actual string may be greater than one.
727 (Put): Fix condition to raise Layout_Error when invalid
730 2006-02-13 Vincent Celier <celier@adacore.com>
732 * back_end.adb (Scan_Compiler_Arguments): Check if
733 Search_Directory_Present is True and, if it is, add the argument in
734 the source search directory path.
736 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
737 Search_Directory_Present to True.
739 2006-02-13 Joel Brobecker <brobecke@adacore.com>
741 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
742 volatile, to tell the compiler to preserve this variable at any level
744 (Gen_Versions_Ada): Temporarily work around codegen bug.
746 2006-02-13 Vincent Celier <celier@adacore.com>
748 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
749 gcc to link with option -shared-libgcc.
750 (Gnatlink): Remove duplicate switches -shared-libgcc
752 2006-02-13 Robert Dewar <dewar@adacore.com>
754 * gnatvsn.ads (Current_Year): New constant, used to easily update
755 copyright on all GNAT tools.
757 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
760 2006-02-13 Robert Dewar <dewar@adacore.com>
762 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
763 after hyphen (small aesthetic change useful for a range of numbers
765 Suppress range checks for a couple of assignments which otherwise
766 cause validity checks with validity checking turned on.
768 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
769 Improvement in error message for object.
770 (Rep_Item_Too_Late): Remove '!' in warning message.
772 2006-02-13 Robert Dewar <dewar@adacore.com>
773 Eric Botcazou <ebotcazou@adacore.com>
775 * err_vars.ads: Suppress range checks for a couple of assignments
776 which otherwise cause validity checks with validity checking turned on.
779 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
780 Make message unconditional if it is a warning.
781 (Error_Msg_NEL): Always output warning messages.
782 Suppress range checks for a couple of assignments which otherwise
783 cause validity checks with validity checking turned on.
785 * errout.ads (Message Insertion Characters): Document that '!' is
786 implied by '?' in error messages.
788 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
789 (Gnat1drv): Use a goto to end of main subprogram instead of
790 Exit_Program (E_Success) so that finalization can occur normally.
792 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
794 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
797 2006-02-13 Vincent Celier <celier@adacore.com>
799 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
800 Unchecked_Conversion functions.
801 (Modification_Time): Use direct conversion of OS_Time to Calendar time
802 when OpenVMS returns False.
804 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
805 a-dirval.adb (OpenVMS): New Boolean function
807 2006-02-13 Ed Schonberg <schonberg@adacore.com>
808 Thomas Quinot <quinot@adacore.com>
810 * checks.adb (Build_Discriminant_Checks): If the expression being
811 checks is an aggregate retrieve the values of its discriminants to
812 generate the check, rather than creating a temporary and a reference
814 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
815 (Install_Null_Excluding_Check): Ditto
816 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
817 not for the renamed object, so that the actual itype is attached in the
820 2006-02-13 Robert Dewar <dewar@adacore.com>
821 Vincent Celier <celier@adacore.com>
823 * debug.adb: Eliminate numeric switches for binder/gnatmake
825 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
826 switches for the compiler.
827 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
828 (Scan_Make_Switches): When failing with an illegal switch, output an
829 error message with the full switch.
830 Eliminate numeric switches for binder/gnatmake
832 * switch.ads, switch.adb (Bad_Switch): New procedure
834 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
835 Remove 0-9 as debug flag character possibilities
836 -d is now controlling the primary stack size when its value is a
837 positive. Also add checks against invalid values, and support for kb,
838 mb. Ditto for -D switch.
840 2006-02-13 Robert Dewar <dewar@adacore.com>
841 Serguei Rybin <rybin@adacore.com>
843 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
844 save/restore routines.
845 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
846 were not always properly handled previously.
847 Since we are changing the tree format anyway, also get rid of the
848 junk obsolete Immediate_Errors flag.
849 (Tree_Read): Change the way of reading Tree_Version_String - now we
850 read the version string from the tree even if its length is not the
851 same as the length of the version string computed from Gnatvsn.
852 (Search_Directory_Present): New Boolean flag for the compiler.
853 Define Tree_Version_String as a dynamic string.
854 (Default_Stack_Size): new variable, used to handle switch -d.
857 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
859 Add pragma Ada_2005 (synonym for Ada_05)
860 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
861 were not always properly handled previously.
863 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
864 explicit Ada_95 to Ada_2005.
866 2006-02-13 Javier Miranda <miranda@adacore.com>
867 Robert Dewar <dewar@adacore.com>
868 Ed Schonberg <schonberg@adacore.com>
870 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
871 against errors in the source program: a private types for which the
872 corresponding full type declaration is missing and pragma CPP_Virtual
874 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
875 (Is_Known_Null): New flag
876 (Has_Pragma_Pure): New flag
877 (No_Return): Present in all entities, set only for procedures
878 (Is_Limited_Type): A type whose ancestor is an interface is limited if
879 explicitly declared limited.
880 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
881 entities. Only used for component marked Is_Tag. If present it stores
882 the Offset_To_Top function used to provide this value in tagged types
883 whose ancestor has discriminants.
885 * exp_ch2.adb: Update status of new Is_Known_Null flag
887 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
889 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
890 the categorization sense if Is_Pure was set by pragma Pure_Function.
892 2006-02-13 Quentin Ochem <ochem@adacore.com>
893 Olivier Hainque <hainque@adacore.com>
895 * bindusg.adb: Updated documentation for -d and -D switches.
897 * raise.h (__gnat_set_globals): added new parameter for
900 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
901 (__gnat_handle_vms_condition): Adjust context before raise.
902 (__gnat_install_handler): Restore the global vector setup for GCC
903 versions before 3.4, as the frame based circtuitry is not available
905 (__gnat_set_globals): added a parameter default_stack_size
906 (__gl_default_stack_size): new variable.
908 2006-02-13 Ed Schonberg <schonberg@adacore.com>
910 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
911 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
912 does not exist in the Ada RM.
913 (Compatible_Int_Bounds): Determine whether two integer range bounds
914 are of equal length and have the same start and end values.
915 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
916 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
917 aggregate when it is part of an object declaration.
918 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
919 constrains discriminants of its parent, add explicitly the discriminant
920 constraints of the ancestor by retrieving them from the
921 stored_constraint of the parent.
923 2006-02-13 Robert Dewar <dewar@adacore.com>
925 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
926 attribute Mechanism_Code is applied to renamed subprogram, modify
927 prefix to point to base subprogram.
928 Max/Min attributes now violate Restriction No_Implicit_Conditionals
930 * sinfo.ads: Document that Mechanism_Code cannot be applied to
931 renamed subprograms so that the front-end must replace the prefix
934 2006-02-13 Javier Miranda <miranda@adacore.com>
935 Gary Dismukes <dismukes@adacore.com>
937 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
938 availability of RE_Interface_Tag.
939 (Build_Initialization_Call): Fix wrong access to the discriminant value.
940 (Freeze_Record_Type): Do not generate the tables associated with
941 timed and conditional dispatching calls through synchronized
942 interfaces if compiling under No_Dispatching_Calls restriction.
943 When compiling for Ada 2005, for a nonabstract
944 type with a null extension, call Make_Controlling_Function_Wrappers
945 and insert the wrapper function declarations and bodies (the latter
946 being appended as freeze actions).
947 (Predefined_Primitive_Bodies): Do not generate the bodies of the
948 predefined primitives associated with timed and conditional
949 dispatching calls through synchronized interfaces if we are
950 compiling under No_Dispatching_Calls.
951 (Build_Init_Procedure): Use RTE_Available to check if a run-time
952 service is available before generating a call.
953 (Make_Controlling_Function_Wrappers): New procedure.
954 (Expand_N_Full_Type_Declaration): Create a class-wide master for
955 access-to-limited-interfaces because they can be used to reference
956 tasks that implement such limited interface.
957 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
958 procedure spec and body of the Offset_To_Top function that is generated
959 when the parent of a type with discriminants has secondary dispatch
961 (Init_Secondary_Tags): Handle the case in which the parent of the type
962 containing secondary dispatch tables has discriminants to generate the
963 correct arguments to call Set_Offset_To_Top.
964 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
966 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
967 Add Wide_[Wide_]Expanded_Name.
968 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
969 the same functionality of Get_Prim_Op_Address but applied to predefined
970 primitive operations because the pointers to the predefined primitives
971 are now saved in a separate table.
972 (Parent_Size): Modified to get access to the separate table of primitive
973 operations or the parent type.
974 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
975 functionality of Set_Prim_Op_Address but applied to predefined primitive
977 (Set_Signature): New subprogram used to store the signature of a DT.
978 (Displace): If the Offset_To_Top value is not static then call the
979 function generated by the expander to get such value; otherwise use
980 the value stored in the table of interfaces.
981 (Offset_To_Top): The type of the actual has been changed to Address to
982 give the correct support to tagged types with discriminants. In this
983 case this value is stored just immediately after the tag field.
984 (Set_Offset_To_Top): Two new formals have been added to indicate if the
985 offset_to_top value is static and hence pass this value to the run-time
986 to store it in the table of interfaces, or else if this value is dynamic
987 and then pass to the run-time the address of a function that is
988 generated by the expander to provide this value for each object of the
991 * rtsfind.ads (Default_Prin_Op_Count): Removed.
992 (Default_Prim_Op_Count): New entity
993 (Get_Predefined_Prim_Op_Address): New entity
994 (Set_Predefined_Prim_Op_Address): New entity
995 (RE_Set_Signature): New entity
997 2006-02-13 Thomas Quinot <quinot@adacore.com>
998 Ed Schonberg <schonberg@adacore.com>
1000 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
1001 Make_Adjust_Call done for a newly-allocated object.
1003 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
1004 in a subprogram are wrapped in a cleanup block, indicate that the
1005 subprogram contains an inner block with an exception handler.
1006 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
1007 Adjust call is for a newly-allocated object. In that case we must not
1008 assume that the finalization list chain pointers are correct (since they
1009 come from a bit-for-bit copy of the original object's pointers) so if
1010 the attach level would otherwise be zero (no change), we set it to 4
1011 instead to cause the pointers to be reset to null.
1013 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
1014 reset chain pointers to null.
1016 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1018 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
1019 string, and the context requires a loop for the assignment (e.g.
1020 because the left-hand side is packed), generate a unique name for the
1021 temporary that holds the string, to prevent spurious name clashes.
1023 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1024 Javier Miranda <miranda@adacore.com>
1025 Robert Dewar <dewar@adacore.com>
1026 Gary Dismukes <dismukes@adacore.com>
1028 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
1029 return unconstrained arrays.
1031 (Expand_Call): An indirect call through an access parameter of a
1032 protected operation is not a protected call.
1033 Add circuit to raise CE in Ada 2005 mode following call
1035 (Register_DT_Entry): Do nothing if
1036 the run-time does not give support to abstract interfaces.
1037 (Freeze_Subprogram): In case of dispatching operations, do not generate
1038 code to register the operation in the dispatch table if the source
1039 is compiled with No_Dispatching_Calls.
1040 (Register_Predefined_DT_Entry): Generate code that calls the new
1041 run-time subprogram Set_Predefined_Prim_Op_Address instead of
1042 Set_Prim_Op_Address.
1044 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
1045 on array assignments if the right-hand side is a function call that has
1046 been inlined. Check is performed on the assignment in the block.
1047 (Process_Bounds): If bounds and range are overloaded, apply preference
1048 rule for root operations to disambiguate, and diagnose true ambiguity.
1049 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
1050 a tag-indeterminate right-hand side even when Expander_Active is True.
1051 Needed to ensure that dispatching calls to T'Input are allowed and
1052 get the tag of the target class-wide object.
1054 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
1055 an inherited primitive operation that already overrides several
1056 abstract interface primitives. For transitivity, the new entity must
1057 also override all the abstract interface primitives covered by the
1058 inherited overriden primitive.
1059 Emit warning if new entity differs from homograph in same scope only in
1060 that one has an access parameter and the other one has a parameter of
1061 a general access type with the same designated type, at the same
1062 position in the signature.
1063 (Make_Inequality_Operator): Use source locations of parameters and
1064 subtype marks from corresponding equality operator when creating the
1065 tree structure for the implicit declaration of "/=". This does not
1066 change anything in behaviour except that the decoration of the
1067 components of the subtree created for "/=" allows ASIS to get the
1068 string images of the corresponding identifiers.
1069 (Analyze_Return_Statement): Remove '!' in warning message.
1070 (Check_Statement_Sequence): Likewise.
1071 (Analyze_Subprogram_Body): For an access parameter whose designated type
1072 is an incomplete type imported through a limited_with clause, use the
1073 type of the corresponding formal in the body.
1074 (Check_Returns): Implicit return in No_Return procedure now raises
1075 Program_Error with a compile time warning, instead of beging illegal.
1076 (Has_Single_Return): Function returning unconstrained type cannot be
1077 inlined if expression in unique return statement is not an identifier.
1078 (Build_Body_To_Inline): It is possible to inline a function call that
1079 returns an unconstrained type if all return statements in the function
1080 return the same local variable. Subsidiary procedure Has_Single_Return
1081 verifies that the body conforms to this restriction.
1083 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
1084 same type, and one of them is of an anonymous access type, convert
1085 the other operand to it, so that this is a valid binary operation for
1087 (Resolve_Type_Conversion): Handle subtypes of protected types and
1088 task types when accessing to the corresponding record type.
1089 (Resolve_Allocator): Add '\' in 2-line warning message.
1090 Remove '!' in warning message.
1091 (Resolve_Call): Add '\' in 2-line warning message.
1092 (Valid_Conversion): Likewise.
1093 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
1094 resulting type may be an access type with an implicit dereference.
1095 Obtain the proper component from the designated type.
1096 (Make_Call_Into_Operator): Handle properly a call to predefined equality
1097 given by an expanded name with prefix Standard, when the operands are
1098 of an anonymous access type.
1099 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
1100 Explicit_Dereference and Resolve_Selected_Component, to verify that the
1101 prefix of the expression is not of an incomplete type. Allows full
1102 diagnoses of all semantic errors.
1103 (Resolve_Actuals): If the actual is an allocator whose directly
1104 designated type is a class-wide interface we build an anonymous
1105 access type to use it as the type of the allocator. Later, when
1106 the subprogram call is expanded, if the interface has a secondary
1107 dispatch table the expander will add a type conversion to force
1108 the displacement of the pointer.
1109 (Resolve_Call): If a function that returns an unconstrained type is
1110 marked Inlined_Always and inlined, the call will be inlined and does
1111 not require the creation of a transient scope.
1112 (Check_Direct_Boolean_Op): Removed
1113 (Resolve_Comparison_Op): Remove call to above
1114 (Resolve_Equality_Op): Remove call to above
1115 (Resolve_Logical_Op): Inline above, since this is only call.
1116 (Valid_Conversion): Handle properly conversions between arrays of
1117 convertible anonymous access types.
1121 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
1122 the literal in an unchecked conversion, because GCC 4.x needs a static
1123 value for a string bound.
1125 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1126 Hristian Kirtchev <kirtchev@adacore.com>
1128 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
1129 components of the corresponding record, take into account component
1130 definitions that are access definitions.
1131 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
1132 procedure is not considered a dispatching call and will be expanded
1135 2006-02-13 Javier Miranda <miranda@adacore.com>
1137 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
1138 controlling argument of the dispatching call is an abstract interface
1139 class-wide type then we use it directly.
1140 Check No_Dispatching_Calls restriction.
1141 (Default_Prim_Op_Position): Remove the code that looks for the last
1142 entity in the list of aliased subprograms. This code was wrong in
1144 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
1145 when the source is compiled with the No_Dispatching_Calls restriction.
1146 (Init_Predefined_Interface_Primitives): No need to inherit primitives
1147 if we are compiling with restriction No_Dispatching_Calls.
1148 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
1149 subprograms if we are compiling under No_Dispatching_Calls restriction.
1150 (Make_DT): Generate a dispatch table with a single dummy entry if
1151 we are compiling with the No_Dispatching_Calls restriction. In
1152 addition, in this case we don't generate code that calls to the
1153 following run-time subprograms: Set_Type_Kind, Inherit_DT.
1154 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
1155 of this subprogram if compiling with the No_Dispatching_Calls
1157 (Expand_Type_Conversion): Instead of using the actual parameter,
1158 the argument passed as parameter to the conversion function was
1159 erroneously referenced by the expander.
1160 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
1161 Set_Predefined_Primitive_Op_Address and Set_Signature.
1162 (Expand_Dispatching_Call): Generate call to
1163 Get_Predefined_Prim_Op_Address for predefined primitives.
1164 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
1165 predefined primitives.
1166 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
1167 primitives we reserve one dummy entry to ensure that the tag does not
1168 point to some memory that is associated with some other object. In
1169 addition, remove all the old code that generated the assignments
1170 associated with the signature of the dispatch table and replace them
1171 by a call to the new subprogram Set_Signature.
1172 (Set_All_DT_Position): Change the algorithm because now we have a
1173 separate dispatch table associated with predefined primitive operations.
1174 (Expand_Interface_Conversion): In case of non-static offset_to_top
1175 add explicit dereference to get access to the object after the call
1176 to displace the pointer to the object.
1177 (Expand_Interface_Thunk): Modify the generation of the actual used
1178 in the calls to the run-time function Offset_To_Top to fulfil its
1180 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
1182 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1184 * exp_dist.adb (Copy_Specification): For access parameters, copy
1185 Null_Exclusion flag, which will have been set for stream subprograms
1188 2006-02-13 Pascal Obry <obry@adacore.com>
1190 * expect.c (__gnat_expect_portable_execvp): New implementation. The
1191 previous implementation was using the C runtime spawnve routine but
1192 the corresponding wait was using directly the Win32 API. This was
1193 causing some times a lock when waiting for an event using
1194 WaitForSingleObject in __gnat_waitpid. This new implementation uses
1195 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
1196 API fixes this problem.
1198 2006-02-13 Robert Dewar <dewar@adacore.com>
1200 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
1203 2006-02-13 Thomas Quinot <quinot@adacore.com>
1205 * exp_pakd.ads: Fix typos in comments.
1207 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
1208 array reference that is an explicit dereference, mark the converted
1209 (packed) array reference as analyzed to prevent a forthcoming
1210 reanalysis from resetting its type to the original (non-packed) array
1213 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1214 Javier Miranda <miranda@adacore.com>
1215 Eric Botcazou <ebotcazou@adacore.com>
1217 * exp_util.ads, exp_util.adb (Find_Prim_Op,
1218 Is_Predefined_Primitive_Operation): When
1219 searching for the predefined equality operator, verify that operands
1221 (Is_Predefined_Dispatching_Operation): Remove the code that looks
1222 for the last entity in the list of aliased subprograms. This code
1223 was wrong in case of renamings.
1224 (Set_Renamed_Subprogram): New procedure
1225 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
1226 Exp_Type constant computed when entering this subprogram.
1227 (Known_Null): New function
1228 (OK_To_Do_Constant_Replacement): New function
1229 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
1230 (Side_Effect_Free): An attribute reference 'Input is not free of
1231 side effect, unlike other attributes that are functions. (from code
1233 (Remove_Side_Effects): Expressions that involve packed arrays or records
1234 are copied at the point of reference, and therefore must be marked as
1235 renamings of objects.
1236 (Is_Predefined_Dispatching_Operation): Return false if the operation is
1237 not a dispatching operation.
1240 (Remove_Side_Effects): Lift enclosing type conversion nodes for
1241 elementary types in all cases.
1243 2006-02-13 Javier Miranda <miranda@adacore.com>
1245 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
1246 task types when accessing to the corresponding record type.
1247 Remove '!' in warning message.
1249 2006-02-13 Olivier Hainque <hainque@adacore.com>
1251 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
1252 to avoid useless and space inefficient overalignments on targets where
1253 Max_Alignment is larger than 16.
1255 2006-02-13 Pascal Obry <obry@adacore.com>
1257 * g-catiio.adb (Sec_Number): New type used to compute the number of
1258 seconds since 1-1-1970.
1259 (Image) [Natural]: The parameter was an Integer, as we can't deal with
1260 negative numbers (years, months...) it is better to have a Natural here.
1262 (Image) [Number]: Change parameter from Long_Integer to Number.
1263 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
1264 overflow for dates past year 2038.
1266 2006-02-13 Matthew Heaney <heaney@adacore.com>
1268 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
1271 2006-02-13 Arnaud Charlet <charlet@adacore.com>
1273 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
1275 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
1276 finalization can occur normally.
1278 2006-02-13 Vincent Celier <celier@adacore.com>
1280 * gnatcmd.adb (Rules_Switches): New table
1281 (Add_To_Rules_Switches): New procedure
1282 (GNATCmd): For command CHECK, put all options following "-rules" in the
1283 Rules_Switches table. Append these -rules switches after the -cargs
1286 2006-02-13 Robert Dewar <dewar@adacore.com>
1288 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
1289 These two cases were generating incorrect output, and if this unit
1290 was built with checks on, generated a discriminant mismatch constraint
1293 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1294 Robert Dewar <dewar@adacore.com>
1296 * lib-xref.adb (Get_Type_Reference): For a private type whose full
1297 view is an array type, indicate the component type as well, for
1298 navigation purposes.
1299 (Generate_Reference): Don't consider array ref on LHS to be a case
1300 of violating pragma Unreferenced.
1301 Do not give Ada 2005 warning except on real reference.
1303 2006-02-13 Vincent Celier <celier@adacore.com>
1305 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
1306 main source, add switch -mdebug-main=_ada_ so that the executable can
1307 be debugged by the standard VMS debugger.
1308 (Gnatmake): Set No_Main_Subprogram to True when there is no main
1309 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
1310 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
1311 of the last source, as the binding and linking phases are never
1313 Set all executable obsolete when rebuilding a library.
1315 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
1318 2006-02-13 Javier Miranda <miranda@adacore.com>
1322 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
1323 code to improve the error message reported when the program has
1324 declarations of abstract interface types and it is not compiled with
1326 (P_Access_Definition): Reorganize the code to improve the error
1327 message reported when the new Ada 2005 syntax for anonymous
1328 access types is used and the program is not compiled with the
1331 2006-02-13 Robert Dewar <dewar@adacore.com>
1333 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
1334 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
1337 2006-02-13 Javier Miranda <miranda@adacore.com>
1339 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
1340 against source containing syntax errors.
1342 2006-02-13 Vincent Celier <celier@adacore.com>
1344 * prj.adb (Reset): Initialize the first element of table Namings with
1345 the standard naming data.
1347 2006-02-13 Vincent Celier <celier@adacore.com>
1349 * prj.ads (Error_Warning): New enumeration type
1351 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
1352 unknown, use the location of the project to report the error.
1353 (When_No_Sources): New global variable
1354 (Report_No_Ada_Sources): New procedure
1355 (Check): New parameter When_No_Sources. Set value of global variable
1357 (Find_Sources): Call Report_No_Ada_Sources when appropriate
1358 (Get_Sources_From_File): Ditto
1359 (Warn_If_Not_Sources): Better warning messages indicating the unit name
1362 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
1363 Call Prj.Proc.Process with parameter When_No_Sources.
1365 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
1366 Call Recursive_Check with parameter When_No_Sources.
1367 (Recursive_Check): New parameter When_No_Sources. Call itself and
1368 Prj.Nmsc.Check with parameter When_No_Sources.
1369 (Process): New parameter When_No_Sources. Call Check with parameter
1371 (Copy_Package_Declarations): New procedure to copy renamed parameters
1372 and setting the location of the declared attributes to the location
1373 of the renamed package.
1374 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
1377 2006-02-13 Vincent Celier <celier@adacore.com>
1379 * prj-makr.adb (Make): Preserve the comments from the original project
1381 When removing nodes (attributes Source_Dirs, Source_Files,
1382 Source_List_File and package Naming), save the comments and attach the
1383 saved comments to the newly created nodes.
1384 Do not add a with clause for the naming package if one already exists.
1386 2006-02-13 Javier Miranda <miranda@adacore.com>
1387 Gary Dismukes <dismukes@adacore.com>
1388 Robert Dewar <dewar@adacore.com>
1390 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
1392 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
1393 aliased entities to look for the overriden abstract interface
1395 (Is_Interface_Subprogram): Complete documentation.
1396 (Check_Dispatching_Operation): Do not generate code to register the
1397 operation in the dispatch table if the source is compiled with
1398 restriction No_Dispatching_Calls.
1399 (Override_Dispatching_Operation): Check for illegal attempt to override
1400 No_Return procedure with procedure that is not No_Return
1401 (Check_Dispatching_Call): Suppress the check for an abstract operation
1402 when the original node of an actual is a tag-indeterminate attribute
1403 call, since the attribute, which must be 'Input, can never be abstract.
1404 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
1405 call to the Input attribute (even when rewritten).
1406 (Propagate_Tag): Augment comment to indicate the possibility of a call
1407 to an Input attribute.
1409 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
1410 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
1412 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
1413 No_Wide_Characters is no longer partition-wide
1414 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
1417 2006-02-13 Douglas Rupp <rupp@adacore.com>
1419 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
1421 2006-02-13 Javier Miranda <miranda@adacore.com>
1423 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
1424 handles default-initialized components to keep separate the management
1425 of this feature but also avoid the unrequired resolution and
1426 expansion of components that do not have partially initialized
1428 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
1429 (Check_Bounds): Likewise.
1430 (Check_Length): Likewise.
1432 2006-02-13 Javier Miranda <miranda@adacore.com>
1433 Ed Schonberg <schonberg@adacore.com>
1435 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
1436 abstract interface type call analyze_and_resolve to expand the type
1437 conversion into the corresponding displacement of the
1438 reference to the base of the object.
1439 (Eval_Attribute, case Width): For systems where IEEE extended precision
1440 is supported, the maximum exponent occupies 4 decimal digits.
1441 (Accessibility_Message): Add '\' in 2-line warning message.
1442 (Resolve_Attribute): Likewise.
1443 (case Attribute_Access): Significantly revise checks
1444 for illegal access-to-subprogram Access attributes to properly enforce
1445 the rules of 3.10.2(32/2).
1446 Diagnose use of current instance with an illegal attribute.
1448 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
1450 (Enclosing_Generic_Unit): New function to return a node's innermost
1451 enclosing generic declaration node.
1452 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
1453 (Type_Access_Level): The accessibility level of anonymous acccess types
1454 associated with discriminants is that of the current instance of the
1455 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
1456 (Compile_Time_Constraint_Error): Handle case of conditional expression.
1457 (Kill_Current_Values_For_Entity): New function
1458 (Enter_Name): Change formal type to Entity_Id
1460 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
1461 Ed Schonberg <schonberg@adacore.com>
1462 Gary Dismukes <dismukes@adacore.com>
1464 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
1465 Analyze_Compilation_Unit.
1466 Detect and warn on redundant with clauses detected in a package spec
1467 and/or body when -gnatwr is used.
1468 (Analyze_Context): Analyze config pragmas before other items
1469 (Install_Context_Items): Don't analyze config pragmas here
1470 (Install_Limited_Withed_Unit): Set limited entity of package in
1471 with_clause so that cross-reference information or warning messages on
1472 unused packages can be properly generated
1473 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
1474 has Error_Posted set. Prevent infinite loops in illegal programs.
1475 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
1476 to the point of the error test requiring the current unit to be private.
1477 This ensures that private with clauses are not exempted from the basic
1478 checking for being a descendant of the same library unit parent as a
1479 withed private descendant unit.
1480 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
1481 handle private with clauses properly, as well as to account for cases
1482 where the withed unit is a public descendant of a private ancestor
1483 (in which case the current unit must be a descendant of the private
1484 ancestor's parent). The spec comments were updated accordingly. Also,
1485 the old error message in this subprogram was replaced with error
1486 messages that mirror the errors tested and reported by
1487 Check_Private_Child_Unit.
1488 Parameter and variable names improved for readability.
1489 (Install_Limited_Context_Clauses): Remove test for a withed unit being
1490 private as the precondition for calling
1491 Check_Private_Limited_Withed_Unit since that subprogram has been
1492 revised to test public units as well as private units.
1494 2006-02-13 Thomas Quinot <quinot@adacore.com>
1495 Robert Dewar <dewar@adacore.com>
1496 Ed Schonberg <schonberg@adacore.com>
1497 Javier Miranda <miranda@adacore.com>
1499 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
1500 that Scope_Stack.First = 1.
1501 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1502 were not always properly handled previously.
1503 (Formal_Entity): Complete rewrite, to handle properly some complex case
1504 with multiple levels of parametrization by formal packages.
1505 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
1506 to the corresponding derived type declaration for proper semantics.
1508 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
1509 (Check_Component): Enforce restriction on components of
1510 unchecked_unions: a component in a variant cannot contain tasks or
1512 (Unchecked_Union): Allow nested variants and multiple discriminants, to
1514 Add pragma Ada_2005 (synonym for Ada_05)
1515 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1516 were not always properly handled previously.
1517 Document that pragma Propagate_Exceptions has no effect
1518 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
1519 (Set_Convention_From_Pragma): Check that if a convention is
1520 specified for a dispatching operation, then it must be
1521 consistent with the existing convention for the operation.
1522 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
1523 longer required to specify an vtable-ptr component in the record. For
1524 compatibility reasons we leave the support for the previous definition.
1525 (Analyze_Pragma, case No_Return): Allow multiple arguments
1527 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
1528 non-overrideen inherited operation with a controlling result as
1529 illegal only its implicit declaration comes from the derived type
1530 declaration of its result's type.
1531 (Check_Possible_Deferred_Completion): Relocate the object definition
1532 node of the subtype indication of a deferred constant completion rather
1533 than directly analyzing it. The analysis of the generated subtype will
1534 correctly decorate the GNAT tree.
1535 (Record_Type_Declaration): Check whether this is a declaration for a
1536 limited derived record before analyzing components.
1537 (Analyze_Component_Declaration): Diagnose record types not explicitly
1538 declared limited when a component has a limited type.
1539 (Build_Derived_Record_Type): Code reorganization to check if some of
1540 the inherited subprograms of a tagged type cover interface primitives.
1541 This check was missing in case of a full-type associated with a private
1543 (Constant_Redeclaration): Check that the subtypes of the partial and the
1544 full view of a constrained deferred constant statically match.
1545 (Mentions_T): A reference to the current type in an anonymous access
1546 component declaration must be an entity name.
1547 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
1548 class_wide type to refer to full type, not to the incomplete one.
1549 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
1550 available. Required to give support to the certified run-time.
1551 (Analyze_Component_Declaration): In case of anonymous access components
1552 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
1553 (Process_Discriminants): For an access discriminant, use the
1554 discriminant specification as the associated_node_for_itype, to
1555 simplify accessibility checks.
1557 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1558 Javier Miranda <miranda@adacore.com>
1560 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
1561 abstract interpretations on an operator, remove interpretations that
1562 yield Address or a type derived from it, if one of the operands is an
1564 (Try_Object_Operation.Try_Primitive_Operation,
1565 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
1566 location when creating the new reference to a primitive or class-wide
1567 operation as a part of rewriting a subprogram call.
1568 (Try_Primitive_Operations): If context requires a function, collect all
1569 interpretations after the first match, because there may be primitive
1570 operations of the same type with the same profile and different return
1571 types. From code reading.
1572 (Try_Primitive_Operation): Use the node kind to choose the proper
1573 operation when a function and a procedure have the same parameter
1575 (Complete_Object_Operation): If formal is an access parameter and prefix
1576 is an object, rewrite as an Access reference, to match signature of
1577 primitive operation.
1578 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
1579 by an expanded name with prefix Standard, when the operands are of an
1580 anonymous access type.
1581 (Remove_Abstract_Operations): If the operation is abstract because it is
1582 inherited by a user-defined type derived from Address, remove it as
1583 well from the set of candidate interpretations of an overloaded node.
1584 (Analyze_Membership_Op): Membership test not applicable to cpp-class
1587 2006-02-13 Bob Duff <duff@adacore.com>
1589 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
1590 redundant use clauses.
1591 In particular, if the scope of two use clauses overlaps, but one is not
1592 entirely included in the other, we should not warn. This can happen
1593 with nested packages.
1594 (Analyze_Subprogram_Renaming): Protect the compiler against previously
1595 reported errors. The bug was reported when the compiler was built
1596 with assertions enabled.
1597 (Find_Type): If the node is a 'Class reference and the prefix is a
1598 synchronized type without a corresponding record, return the type
1601 2006-02-13 Javier Miranda <miranda@adacore.com>
1603 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
1604 if this is the full-declaration associated with a private declaration
1605 that implement interfaces, then the private type declaration must be
1607 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
1608 as aliased. The use of the 'access attribute is not available for such
1609 object (for this purpose the object should be explicitly marked as
1610 aliased, but being an anonymous type this is not possible).
1612 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1613 Robert Dewar <dewar@adacore.com>
1615 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
1616 compilation unit is an elaboration scope.
1617 (Add_Task_Proc): Add '\' in 2-line warning message.
1618 (Activate_All_Desirable): Deal with case of unit with'ed by parent
1620 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1621 Javier Miranda <miranda@adacore.com>
1623 * sem_type.adb (Write_Overloads): Improve display of candidate
1625 (Add_One_Interp): Do not add to the list of interpretations aliased
1626 entities corresponding with an abstract interface type that is an
1627 immediate ancestor of a tagged type; otherwise we have a dummy
1628 conflict between this entity and the aliased entity.
1629 (Disambiguate): The predefined equality on universal_access is not
1630 usable if there is a user-defined equality with the proper signature,
1631 declared in the same declarative part as the designated type.
1632 (Find_Unique_Type): The universal_access equality operator defined under
1633 AI-230 does not cover pool specific access types.
1634 (Covers): If one of the types is a generic actual subtype, check whether
1635 it matches the partial view of the other type.
1637 2006-02-13 Thomas Quinot <quinot@adacore.com>
1639 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
1640 line. This is necessary to allow In_Extended_Main_Unit to provide
1641 correct results for itypes while writing out expanded source.
1642 (Close_File): No need to update the source_index_table here since it's
1643 now done for each line.
1645 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1646 Robert Dewar <dewar@adacore.com>
1648 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
1649 preserve the source unit where the itype is declared, and prevent a
1651 (Note_Implicit_Run_Time_Call): New procedure
1652 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
1655 * sprint.ads: Document use of $ for implicit run time routine call
1657 2006-02-13 Quentin Ochem <ochem@adacore.com>
1659 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
1662 2006-02-13 Bob Duff <duff@adacore.com>
1664 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
1665 Scan_Unsigned, so we do not scan leading blanks and sign twice.
1666 Integer'Value("- 5") and Integer'Value("-+5") now correctly
1667 raise Constraint_Error.
1669 * s-vallli.adb (Scan_Long_Long_Integer): Call
1670 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
1671 do not scan leading blanks and sign twice.
1672 Integer'Value("- 5") and Integer'Value("-+5") now correctly
1673 raise Constraint_Error.
1675 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
1676 Scan_Long_Long_Unsigned): Split out most of the processing from
1677 Scan_Long_Long_Unsigned out into
1678 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
1679 This prevents scanning leading blanks and sign twice.
1680 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
1683 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
1684 out most of the processing from Scan_Unsigned out into
1685 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
1686 This prevents scanning leading blanks and sign twice.
1688 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
1689 use with Modular'Value attribute.
1690 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
1693 2006-02-13 Robert Dewar <dewar@adacore.com>
1695 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
1697 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
1699 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
1700 (PPC VxWorks): Likewise.
1701 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
1702 (forced_callee): Make non-inlinable and non-pure.
1703 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
1705 2006-02-13 Arnaud Charlet <charlet@adacore.com>
1706 Ben Brosgol <brosgol@adacore.com>
1707 Robert Dewar <dewar@adacore.com>
1709 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
1711 Document that gnatbind -M option is for cross environments only.
1712 Added description of using gnatmem to trace gnat rtl allocs and deallocs
1713 Add note on use of $ to label implicit run time calls
1714 Add documentation for -gnatyI (check mode IN)
1715 Updated chapter on compatibility with HP Ada
1717 Ran spell and corrected errors
1718 Add documentation for gnatbind -d and rework documentation of -D
1720 Add subprogram/data elimination section.
1721 Minor editing of annex A.
1722 Add section for gnatcheck.
1723 Add documentation for restriction No_Dispatching_Calls
1724 Add documentation for pragma Ada_2005
1725 Remove mention of obsolete pragma Propagate_Exceptions
1726 Document that pragma Unreferenced can appear after DO in ACCEPT
1727 Clarify Pure_Function for library level units
1728 Mention Max/Min in connection with No_Implicit_Conditionals
1729 No_Wide_Characters restriction is no longer partition-wide
1730 Add a nice example for Universal_Literal_String attribute
1731 Document that pragma No_Return can take multiple arguments
1733 * ug_words: Added entry for gnatcheck
1735 * g-ctrl_c.ads (Install_Handler): Enhance comments
1737 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
1739 * g-trasym.ads: Add documentation on how to do off line symbolic
1740 traceback computation.
1742 * s-fatgen.adb: Add comments for Unaligned_Valid
1744 * stand.ads: Fix typo in comment
1746 2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1748 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
1750 2006-02-06 Roger Sayle <roger@eyesopen.com>
1752 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
1754 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1757 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
1758 implementation that calls __main.
1760 2006-01-25 Peter O'Gorman <peter@pogma.com>
1763 * Makefile.in (GCC_LINK): Remove quotes.
1764 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
1767 (powerpc-darwin): Pass -shared-libgcc when building shared library.
1769 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1772 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
1774 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1776 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
1778 2005-12-12 Arnaud Charlet <charlet@adacore.com>
1780 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
1783 2005-12-12 Arnaud Charlet <charlet@adacore.com>
1785 * Make-lang.in: Update dependencies
1787 2005-12-12 Arnaud Charlet <charlet@adacore.com>
1789 * Make-lang.in: Add rule for ada/exp_sel.o
1791 2005-12-12 Arnaud Charlet <charlet@adacore.com>
1793 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
1795 2005-12-09 Arnaud Charlet <charlet@adacore.com>
1797 * gnatvsn.ads (Library_Version): Bump to version 4.2
1798 (ASIS_Version_Number): Bumped.
1800 2005-12-09 Doug Rupp <rupp@adacore.com>
1802 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
1803 Ada bind file prefix on VMS from b$ to b__.
1804 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
1807 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
1808 Targparm.OpenVMS_On_Target.
1809 (Object_Suffix): Initialize with target object suffix.
1810 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
1812 * butil.adb: Change some Hostparm.OpenVMS checks to
1813 Targparm.OpenVMS_On_Target.
1815 * clean.adb: Change some Hostparm.OpenVMS checks to
1816 Targparm.OpenVMS_On_Target.
1817 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
1818 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
1819 Ada bind file prefix on VMS from b$ to b__.
1821 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
1822 --GCC so that Get_Target_Parameters can find system.ads.
1823 (Gnatlink): Call Get_Target_Parameters in mainline.
1824 Initialize standard packages for Targparm.
1825 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
1826 (Process_Args): Also Check for object files with target object
1828 (Make_Binder_File_Names): Create with target object extension.
1829 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
1832 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
1833 Targparm.OpenVMS_On_Target.
1834 ({declaration},Build_Library,Check_Library): Change Ada bind file
1835 prefix on VMS from b$ to b__.
1837 * osint-b.adb: Change some Hostparm.OpenVMS checks to
1838 Targparm.OpenVMS_On_Target.
1839 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
1842 * targext.c: New file.
1844 * Makefile.in: add support for vxworks653 builds
1845 (../../vxaddr2line): gnatlink with targext.o.
1846 (TOOLS_LIBS): Move targext.o to precede libgnat.
1847 (init.o, initialize.o): Minor clean up in dependencies.
1848 (GNATLINK_OBJS): Add targparm.o, snames.o
1849 Add rules fo building targext.o and linking it explicitly with all
1851 Also add targext.o to gnatlib.
1853 * Make-lang.in: Add rules for building targext.o and linking it in
1854 with gnat1 and gnatbind.
1855 Add entry for exp_sel.o.
1857 * osint.adb Change some Hostparm.OpenVMS checks to
1858 Targparm.OpenVMS_On_Target.
1859 (Object_File_Name): Use target object suffix.
1861 * osint.ads (Object_Suffix): Remove, no longer used.
1862 (Target_Object_Suffix): Initialize with target object suffix.
1864 * rident.ads: Add special exception to license.
1866 * targparm.adb (Get_Target_Parameters): Set the value of
1867 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
1869 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
1871 * targparm.ads: Add special exception to license.
1873 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
1875 (Copy_File): Make sure from file is closed if error on to file
1876 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
1878 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
1879 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
1881 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
1882 target object suffix.
1884 2005-12-09 Jose Ruiz <ruiz@adacore.com>
1885 Quentin Ochem <ochem@adacore.com>
1886 Florian Villoing <villoing@adacore.com>
1888 * a-taster.ads, a-taster.adb: New files.
1890 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
1891 link to the version that does nothing. This way the task termination
1892 routine is not executed twice for the environment task when finishing
1893 because of an unhandled exception.
1895 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
1896 handler because of an unhandled exception.
1898 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
1899 System.Tasking.Utilities instead of that in System.Tasking.Stages.
1901 * s-finimp.adb (initialization code): Modify the soft link for the
1902 finalization of the global list instead of Adafinal.
1904 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
1905 non-tasking version of the soft link for task termination. We do
1906 nothing since if we are using the non-tasking version it
1907 means that the task termination functionality is not used.
1908 (Null_Finalize_Global_List): Add this null version for the procedure
1909 in charge of finalizing the global list for controlled objects.
1910 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
1911 instead for handling run-time termination in a more flexible way.
1912 (Adafinal_NT): This new procedure will take care of finalizing the
1913 global list for controlled objects if needed, but no tasking
1916 * s-tarest.adb (Task_Lock): Do not try to lock again the
1917 Global_Task_Lock if we already own it. Otherwise, we get blocked in
1918 some run-time operations.
1919 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
1920 until all nested locks have been released.
1921 (Task_Wrapper): Call the fall-back task termination handler. It
1922 applies to all tasks but the environment task.
1923 (Finalize_Global_Tasks): Add the call for the task termination
1924 procedure for the environment task.
1925 (Task_Wrapper): suppress warnings around declaration of
1926 Secondary_Stack_Address.
1928 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
1929 moved to the Common_ATCB record.
1930 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
1932 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
1935 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
1936 Fall_Back_Handler, and Specific_Handler.
1938 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
1939 defined in Ada.Task_Termination, to avoid circular dependencies.
1940 (Termination_Handler): Redefine this type here, alredy defined in
1941 Ada.Task_Termination, for avoiding circular dependencies.
1942 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
1943 for storing task termination handlers. In addition,
1944 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
1945 Common_ATCB because it is used by both the regular and the restricted
1947 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
1948 Common_ATCB because it is used by both the regular and the restricted
1950 (Common_ATCB): Added a dynamic task analyzer field.
1952 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
1953 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
1954 (Task_Wrapper): Call the task termination handler. It applies to all
1955 tasks but the environment task.
1956 (Finalize_Global_Tasks): Call the task termination procedure for the
1957 environment task. The call to Finalize_Global_List is now performed
1958 using the soft links mechanism.
1959 (Task_Wrapper): added dynamic stack analysis.
1961 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
1962 potentially blocking operations has been moved from
1963 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
1964 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
1965 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
1966 this run-time check.
1968 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
1969 of task termination procedure.
1970 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
1971 link for the task termination procedure.
1973 * bindusg.adb: (Bindusg): Added documentation for -u option.
1975 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
1976 (Get_Main_C): Add handling of dynamic stack analysis.
1977 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
1979 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
1980 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
1981 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
1983 * opt.ads: Added flags used by dynamic stack measurement.
1984 (Max_Line_Length): Remove (not used anymore)
1986 * s-io.ads, s-io.adb (Standard_Error): new subprogram
1987 (Standart_Output): new subprogram
1988 (Set_Output): new subprogram
1989 (Put): now uses the value of Current_Out to know if the output has to be
1990 send to stderr or stdout.
1992 * s-stausa.ads: Complete implementation.
1994 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
1996 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
1997 list of Ada 05 files.
1998 (GNAT Library Units): Add AltiVec files.
2000 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
2001 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
2002 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
2004 2005-12-09 Nicolas Setton <setton@adacore.com>
2006 * adaint.c (__gnat_locate_regular_file): Return immediately if
2009 2005-12-09 Javier Miranda <miranda@adacore.com>
2010 Hristian Kirtchev <kirtchev@adacore.com>
2012 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
2013 to the specification because the frontend generates code that uses this
2015 (Set_Interface_Table): Add missing assertion.
2016 Update documentation describing the run-time structure.
2017 (Displace): New subprogram that displaces the pointer to the object
2018 to reference one of its secondary dispatch tables.
2019 (IW_Membership): Modified to use the new table of interfaces.
2020 (Inherit_TSD): Modified to use the new table of interfaces.
2021 (Register_Interface_Tag): Use the additional formal to fill the
2022 contents of the new table of interfaces.
2023 (Set_Interface_Table): New subprogram that stores in the TSD the
2024 pointer to the table of interfaces.
2025 (Set_Offset_To_Top): Use the additional formal to save copy of
2026 the offset value in the table of interfaces.
2027 Update structure of GNAT Primary and Secondary dispatch table diagram.
2028 Add comment section on GNAT dispatch table prologue.
2029 (Offset_To_Signature): Update the constant value of the Signature field.
2030 (Dispatch_Table): Update comment on hidden fields in the prologue.
2031 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
2032 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
2033 the type of formal parameter T to Tag, introduce additional assertions.
2034 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
2036 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
2038 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
2039 in all the calls to Expand_Interface_Thunk. Instead of referencing the
2040 record component containing the tag of the secondary dispatch table we
2041 have to use the Offset_To_Top run-time function to get this information;
2042 otherwise if the pointer to the base of the object has been displace
2043 we get a wrong value if we use the 'position attribute.
2045 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
2046 all the calls to Expand_Interface_Thunk.
2047 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
2048 interfaces; hence the call to Set_Interface_Table was clearly wrong.
2049 (Collect_All_Interfaces): Modify the internal subprogram Collect to
2050 ensure that the interfaces implemented by the ancestors are placed
2051 at the header of the generated list.
2052 (Expand_Interface_Conversion): Handle the case in which the displacement
2053 associated with the interface conversion is not statically known. In
2054 this case we generate a call to the new run-time subprogram Displace.
2055 (Make_DT): Generate and fill the new table of interfaces.
2056 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
2057 Get_Tagged_Kind and Set_Tagged_Kind.
2058 (Tagged_Kind): New function that determines the tagged kind of a type
2059 with respect to limitedness and concurrency and returns a reference to
2061 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
2062 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
2063 primary dispatch table for a type.
2064 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
2065 secondary dispatch table respectively of a tagged type.
2067 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
2068 (Expand_Interface_Conversion): New subprogram to indicate if the
2069 displacement of the type conversion is statically known.
2070 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
2072 * rtsfind.ads (RE_Offset_To_Top): New entity
2073 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
2074 accessible to users.
2075 (Re_Displace): New entity
2076 (RE_Interface_Data): New entity
2077 (RE_Set_Interface_Data): New_Entity
2078 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
2079 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
2080 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
2081 RE_TK_Tagged, RE_TK_Task.
2083 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
2084 Init_Secondary_Tags_Internal to allow its use with interface types and
2085 also to generate the code for the new additional actual required
2086 by Set_Offset_To_Top.
2087 (Build_Init_Statements): In case of components associated with abstract
2088 interface types there is no need to generate a call to its IP.
2089 (Freeze_Record_Type): Generate Select Specific Data tables only for
2091 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
2092 the bodies and specifications of the predefined primitive operations
2093 dealing with dispatching selects and abort, 'Callable, 'Terminated only
2094 for concurrent types.
2096 * exp_sel.ads, exp_sel.adb: New files.
2098 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
2099 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
2100 properly protected objects and attach handler in the case of the
2102 Move embeded package Select_Expansion_Utilities into a separate external
2104 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
2105 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
2106 (Build_K, Build_S_Assignment): New subprograms, part of the select
2107 expansion utilities.
2108 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
2109 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
2110 where the trigger is a dispatching procedure of a limited tagged type.
2112 2005-12-09 Olivier Hainque <hainque@adacore.com>
2114 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
2115 pointer initialization values. Make a SAVE_EXPR instead. Add comments
2116 about the use and expansion of SAVE_EXPRs in the various possible
2117 renaming handling cases.
2118 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
2119 abusing DECL_FCONTEXT.
2121 2005-12-09 Matthew Heaney <heaney@adacore.com>
2123 * a-convec.adb (Merge): Added assertions to check whether vector params
2126 * a-coinve.adb (Merge): Added assertions to check whether vector params
2129 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
2131 (Cursor'Read): raises PE
2133 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
2134 to its default value.
2136 * a-cihama.adb: Manually check whether cursor's key and elem are
2139 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
2140 (Merge): Assert that target and source lists are in order
2141 (Swap): Declare non-const temporaries, to pass to Splice
2143 * a-cdlili.ads: (Splice): Changed param name and param mode
2145 * a-cdlili.adb: (Splice): Changed param name and param mode
2146 (Merge): Assert that target and source lists are in order
2147 (Swap): Declare non-const temporaries, to pass to Splice
2149 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
2150 (Write): declare Stream param as not null
2152 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
2153 an exception message.
2155 2005-12-09 Thomas Quinot <quinot@adacore.com>
2156 Robert Dewar <dewar@adacore.com>
2158 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
2159 which is the absolute maximum length we can support.
2161 * frontend.adb: For the processing of configuration pragma files,
2162 remove references to Opt.Max_Line_Length, which is not checked anymore.
2164 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
2167 * scn.adb, scng.adb:
2168 Always check line length against the absolute supported maximum,
2169 Hostparm.Max_Line_Length.
2171 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
2172 value for the maximum line length is Max_Line_Length (not
2173 Column_Number'Last).
2174 Minor error msg update
2175 (Set_Style_Check_Options): New interface returning error msg
2176 Minor code reorganization (processing for 'M' was out of alpha order)
2178 * switch-c.adb: New interface for Set_Style_Check_Options
2180 * stylesw.ads (Set_Style_Check_Options): New interface returning error
2183 2005-12-09 Javier Miranda <miranda@adacore.com>
2185 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
2186 with IP subprogram were only supported if there were limited types.
2188 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
2189 records with IP subprogram were only supported if there were limited
2192 2005-12-09 Olivier Hainque <hainque@adacore.com>
2193 Eric Botcazou <ebotcazou@adacore.com>
2195 * trans.c (tree_transform, emit_check): Adjust calls to
2196 build_call_raise, passing the now expected GNAT_NODE argument.
2198 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
2199 source line information than what the current global locus indicates
2202 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
2203 field has overflowed.
2204 (build_call_raise): Add a GNAT_NODE argument to convey better source
2205 line information than what the current global locus indicates when
2207 (build_component_ref): Adjust call to build_call_raise.
2209 2005-12-09 Pascal Obry <obry@adacore.com>
2211 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
2212 the iterator is quitting iteration on parent directory.
2214 2005-12-09 Javier Miranda <miranda@adacore.com>
2216 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
2217 and the assignment to a class-wide object, before the assignment we
2218 generate a run-time check to ensure that the tag of the Target is
2219 covered by the tag of the source.
2221 2005-12-09 Robert Dewar <dewar@adacore.com>
2223 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
2224 parameter in call to Image_Wide_Character.
2226 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
2227 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
2228 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
2229 annoying FFFE/FFFF inconsistency.
2231 2005-12-09 Robert Dewar <dewar@adacore.com>
2232 Javier Miranda <miranda@adacore.com>
2233 Ed Schonberg <schonberg@adacore.com>
2235 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
2237 (Find_Interface): New subprogram that given a tagged type and one of its
2238 component associated with the secondary table of an abstract interface
2239 type, return the entity associated with such abstract interface type.
2240 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
2241 base type to create anonymous subtype, because entity may be a locally
2242 declared subtype or generic actual.
2243 (Find_Interface): New subprogram that given a tagged type and one of its
2244 component associated with the secondary table of an abstract interface
2245 type, return the entity associated with such abstract interface type.
2247 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
2248 conversion cannot be handled at compile time. In this case we pass this
2249 information to the expander to generate the appropriate code.
2251 2005-12-09 Robert Dewar <dewar@adacore.com>
2252 Ed Schonberg <schonberg@adacore.com>
2253 Gary Dismukes <dismukes@adacore.com>
2254 Javier Miranda <miranda@adacore.com>
2255 Hristian Kirtchev <kirtchev@adacore.com>
2257 * einfo.adb (Itype_Printed): New flag
2258 (Is_Limited_Type): Derived types do not inherit limitedness from
2259 interface progenitors.
2260 (Is_Return_By_Reference_Type): Predicate does not apply to limited
2263 * einfo.ads (Itype_Printed): New flag
2264 Move Is_Wrapper_Package to proper section
2265 Add missing Inline for Is_Volatile
2267 * output.ads, output.adb (Write_Erase_Char): New procedure
2268 (Save/Restore_Output_Buffer): New procedures
2269 (Save/Restore_Output_Buffer): New procedures
2271 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
2272 Add missing support for anonymous access type
2273 (Write_Id): Insert calls to Write_Itype
2274 (Write_Itype): New procedure to output itypes
2276 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
2277 use of "limited" in declaration.
2279 * sinfo.ads, sinfo.adb:
2280 Formal derived types can carry an explicit "limited" indication.
2282 * sem_ch3.adb: Add with and use of Targparm.
2283 (Create_Component): If Frontend_Layout_On_Target is True and the
2284 copied component does not have a known static Esize, then reset
2285 the size and positional fields of the new component.
2286 (Analyze_Component_Declaration): A limited component is
2287 legal within a protected type that implements an interface.
2288 (Collect_Interfaces): Do not add to the list the interfaces that
2289 are implemented by the ancestors.
2290 (Derived_Type_Declaration): If the parent of the full-view is an
2291 interface perform a transformation of the tree to ensure that it has
2292 the same parent than the partial-view. This simplifies the job of the
2293 expander in order to generate the correct object layout, and it is
2294 needed because the list of interfaces of the full-view can be given in
2296 (Process_Full_View): The parent of the full-view does not need to be
2297 a descendant of the parent of the partial view if both parents are
2299 (Analyze_Private_Extension_Declaration): If declaration has an explicit
2300 "limited" the parent must be a limited type.
2301 (Build_Derived_Record_Type): A derived type that is explicitly limited
2302 must have limited ancestor and progenitors.
2303 (Build_Derived_Type): Ditto.
2304 (Process_Full_View): Verify that explicit uses of "limited" in partial
2305 and full declarations are consistent.
2306 (Find_Ancestor_Interface): Remove function.
2307 (Collect_Implemented_Interfaces): New procedure used to gather all
2308 implemented interfaces by a type.
2309 (Contain_Interface): New function used to check whether an interface is
2311 (Find_Hidden_Interface): New function used to determine whether two
2312 lists of interfaces constitute a set equality. If not, the first
2313 differing interface is returned.
2314 (Process_Full_View): Improve the check for the "no hidden interface"
2315 rule as defined by AI-396.
2317 2005-12-09 Robert Dewar <dewar@adacore.com>
2319 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
2320 types, not on record subtypes.
2321 (Freeze_Entity): Code cleanup. Add barrier to the loop
2322 that generates the references for primitive operations. This allows to
2323 remove an unnecessary exception handler.
2324 Code reformatting and comment clean ups.
2326 2005-12-09 Vincent Celier <celier@adacore.com>
2328 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
2329 If GNAT CHECK is called with a project file, but with no
2330 source on the command line, call gnatcheck with all the compilable
2331 sources of the project.
2332 Take into account the new command Check, for gnatcheck. Treat as for
2333 other ASIS tools: take into account project, specific package Check and
2335 For ASIS tools, add the switches in package Compiler for
2336 the invocation of the compiler.
2338 * prj-attr.adb: Add package Check and its attributes
2340 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
2342 * vms_conv.adb (Initialize): Change Params of command Check to
2344 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
2345 Add data for new command Check
2347 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
2349 Add qualifiers for Check command options
2350 (Command_Type): New command Check
2352 2005-12-09 Thomas Quinot <quinot@adacore.com>
2354 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
2355 command line switch overruns the output buffer.
2357 2005-12-09 Robert Dewar <dewar@adacore.com>
2359 * sem_prag.adb: Processing for new pragma Complete_Representation
2360 (Analyze_Pragma, case Debug): Implement two argument form.
2362 * par-prag.adb: Entry for new pragma Complete_Representation
2363 (Prag, case Debug): Recognize two argument form of pragma Debug
2364 New interface for Set_Style_Check_Options.
2366 * sem_ch13.adb: Implement new pragma Complete_Representation.
2368 * snames.adb, snames.ads, snames.h: Entry for new pragma
2369 Complete_Representation.
2371 2005-12-09 Gary Dismukes <dismukes@adacore.com>
2373 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
2374 available user-specified stream attributes on limited parameters to
2375 also test the type directly rather than only its underlying type (for
2376 Ada 95) and, in the case of Ada 2005, to check that the user-specified
2377 attributes are visible at the point of the subprogram declaration.
2378 For Ada 2005, the error message is modified to indicate that the
2379 type's stream attributes must be visible (again, only for -gnat05).
2381 2005-12-09 Ed Schonberg <schonberg@adacore.com>
2383 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
2384 anonymous access types.
2386 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
2387 matching of anonymous access types and anonymous access to subprogram
2388 types. 'R'M 4.9.1 (2/2).
2390 2005-12-09 Ed Schonberg <schonberg@adacore.com>
2392 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
2393 rule prematurely when operands are universal, remaining ambiguities
2394 will be removed during resolution.
2397 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
2398 that are Ada 2005 functions.
2399 (Has_Abstract_Interpretation): Subsidiary to
2400 Remove_Conversions, to remove ambiguities caused by abstract operations
2401 on numeric types when operands are universal.
2403 2005-12-09 Robert Dewar <dewar@adacore.com>
2405 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
2406 for case where spec is categorized.
2408 2005-12-09 Javier Miranda <miranda@adacore.com>
2410 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
2411 types use the corresponding record type. This was not needed before
2412 the implementation of Ada 2005 synchronized types because
2413 concurrent types were never tagged types in Ada 95.
2415 2005-12-09 Ed Schonberg <schonberg@adacore.com>
2417 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
2418 first subtype of the type of the expression to verify that it is a
2421 2005-12-09 Robert Dewar <dewar@adacore.com>
2423 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
2426 2005-12-09 Quentin Ochem <ochem@adacore.com>
2427 Robert Dewar <dewar@adacore.com>
2428 Ed Falis <falis@adacore.com>
2429 Florian Villoing <villoing@adacore.com>
2430 Thomas Quinot <quinot@adacore.com>
2431 Arnaud Charlet <charlet@adacore.com>
2433 * gnat_ugn.texi: Created section "Stack Related Tools"
2434 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
2435 "Stack Related Tools"
2436 Added subsection "Static Stack Usage Analysis"
2437 Added subsection "Dynamic Stack Usage Analysis"
2438 Include documentation of itypes in sprint listing (-gnatG)
2439 Documented gnatbind -D switch (default sec stack size for fixed sec
2441 Added Interrupt_State and Persistent_BSS to list of configuration
2443 Add missing doc for maximum value of nnn in -gnatyMnnn
2445 * gnat_rm.texi: Document the AltiVec binding.
2446 Add documentation for pragma Complete_Representation
2447 Shortened an overly long line (> 79 chars)
2448 Clarify documentation of unchecked conversion in implementation
2450 Document two argument form of pragma Debug
2452 * types.ads (Column_Number): Update documentation.
2454 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
2455 library level Finalize_Storage_Only objects (these are not attached to
2456 any finalization list).
2458 * system-mingw.ads: (Underlying_Priorities): Update comment.
2460 2005-12-09 Robert Dewar <dewar@adacore.com>
2462 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
2463 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
2464 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
2465 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
2466 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
2467 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
2468 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
2469 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
2472 2005-12-09 Robert Dewar <dewar@adacore.com>
2474 * s-vaflop-vms-alpha.adb: (Ne_F): New function
2475 (Ne_G): New function
2477 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
2479 (Rewrite_Comparison): Handle case where operation is not a comparison
2480 and ignore, and also handle type conversion case.
2482 2005-12-09 Thomas Quinot <quinot@adacore.com>
2484 * exp_aggr.ads: Fix typo in comment.
2485 ???-mark Convert_Aggr_In_Assignment as needing documentation.
2487 2005-12-09 Gary Dismukes <dismukes@adacore.com>
2489 * layout.adb: Replace various uses of byte by storage unit throughout.
2490 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
2491 static size, convert to storage units before returning, to conform to
2494 2005-12-09 Matthew Gingell <gingell@adacore.com>
2496 * g-exctra.ads: Fix typo in comment.
2498 2005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2500 * utils.c: Minor reformatting.
2502 2005-12-09 Robert Dewar <dewar@adacore.com>
2505 Further comment fixes to make the status of the default file clear
2507 * s-bitops.adb: Clarify comment for Bits_Array
2509 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2511 * Make-lang.in (ada.install-normal): Remove.
2513 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2515 * Make-lang.in: Remove all dependencies on s-gtype.
2517 2005-12-05 Richard Guenther <rguenther@suse.de>
2519 * utils.c (convert): Use fold_convert where appropriate.
2521 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
2523 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
2526 2005-12-02 Richard Guenther <rguenther@suse.de>
2528 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
2530 2005-12-01 Roger Sayle <roger@eyesopen.com>
2532 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
2535 2005-11-23 Laurent GUERBY <laurent@guerby.net>
2537 * mlib-prj.adb (Build_Library): Initialize Delete.
2539 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
2541 * socket.c: Add extern int h_errno for rtems since networking header
2542 files are not available at this point in a tool bootstrap. Newlib
2543 only has basic C library header files.
2545 2005-11-19 Richard Guenther <rguenther@suse.de>
2546 Roger Sayle <roger@eyesopen.com>
2549 * misc.c (internal_error_function): Don't use vsprintf to format
2550 the error message text, instead use pp_format_text and the new
2551 pretty printer APIs. This allows handling of %qs, %w, etc.
2553 2005-11-18 Laurent GUERBY <laurent@guerby.net>
2556 * Makefile.in: Use s-auxdec-empty for RTEMS.
2558 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2561 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
2562 a temporary if taking the address of something that is neither
2563 reference, declaration, or constant, since the gimplifier
2564 can't handle that case.
2566 2005-11-17 Laurent GUERBY <laurent@guerby.net>
2569 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
2571 2005-11-16 Richard Guenther <rguenther@suse.de>
2573 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
2575 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
2578 * raise-gcc.c: Add missing stdarg.h include.
2580 2005-11-16 Richard Guenther <rguenther@suse.de>
2582 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
2583 (ada/misc.o): Likewise.
2585 2005-11-14 Thomas Quinot <quinot@adacore.com>
2587 * g-soccon.ads: Minor reformatting. Update comments.
2589 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
2590 gain visibility on the declaration of struct timeval.
2592 * g-soccon-freebsd.ads,
2593 g-soccon-darwin.ads,
2598 g-soccon-solaris.ads,
2601 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
2603 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
2604 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
2605 g-soccon-linux-x86.ads: New files.
2607 * g-socthi-mingw.adb:
2608 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
2610 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
2611 (time_t, suseconds_t): New types constructed to match the tv_sec
2612 and tv_usec fields of C struct timeval.
2613 (Timeval): Construct structure in terms of the new types.
2614 (Host_Errno): New function (imported from socket.c), returns last hosts
2617 * g-socthi-vxworks.adb: Add error handling circuitry.
2619 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
2620 components of struct timeval.
2621 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
2622 (Check_Selector): In error conditions, clear internal socket sets to
2623 avoid a memory leak.
2624 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
2625 Send_Timeout, Receive_Timeout.
2627 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
2628 the tv_sec and tv_usec fields of C struct timeval.
2629 (Timeval): Construct structure in terms of the new types.
2630 (Host_Errno): New function (imported from socket.c), returns last hosts
2633 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
2634 hosts database last error code.
2636 * gen-soccon.c: Complete value expansion should not be performed on
2637 TARGET, as it has the form of a math expression, and some components
2638 may be platform-defined macros.
2639 For VxWorks, generate the OK and ERROR values.
2640 New constants giving the sizes of the components of C struct timeval.
2642 2005-11-14 Robert Dewar <dewar@adacore.com>
2643 Ed Schonberg <schonberg@adacore.com>
2647 * types.ads: Include All_Checks in Suppress_Array
2649 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
2650 not(a=b), since we no longer do this rewriting, and hence it is not
2652 (Elaboration_Checks_Suppressed): Add special casing to
2653 deal with different cases of static and dynamic elaboration checks (all
2654 checks does not count in the first case, but does in the second).
2655 (Expr_Known_Valid): Do not assume that the result of any arbitrary
2656 function call is valid, since this is not the case.
2657 (Ensure_Valid): Do not apply validity check to a real literal
2658 in a universal or fixed context
2660 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
2661 elementary types using the operator in standard. It is cleaner not to
2662 modify the programmers intent, especially in the case of floating-point.
2663 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
2664 it did not matter because we always rewrote a/=b to not(a=b).
2665 (Expand_Allocator_Expression): For an allocator expression whose nominal
2666 subtype is an unconstrained packed type, convert the expression to its
2667 actual constrained subtype.
2668 Implement warning for <= or >= where < or > not possible
2669 Fix to Vax_Float tests (too early in many routines, causing premature
2670 Vax_Float expansions.
2672 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
2673 to be used with packages and generic packages as well as with
2675 (Suppress): Set All_Checks, but not Elaboration_Check, for case
2676 of pragma Suppress (All_Checks)
2677 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
2678 a string literal for precise control over warnings.
2679 Avoid raise of pragma in case of unrecognized pragma and just return
2682 * sem_prag.ads: Minor reformatting
2684 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
2685 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
2686 Switch. Do not handle any exception.
2687 Include -gnatwx as part of -gnatg (warn on redundant parens)
2688 Allow optional = after -gnatm
2689 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
2690 longer sets Elaboration_Checks.
2691 Code to set warning mode moved to Sem_Warn
2692 so that it can be shared by pragma processing.
2694 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
2697 * s-taprop-solaris.adb:
2698 Change some <= to =, to avoid new warning
2700 * a-exexda.adb, prj-proc.adb:
2701 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
2702 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
2704 2005-11-14 Robert Dewar <dewar@adacore.com>
2706 * exp_vfpt.adb: Handle /= case
2707 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
2708 so that we do not get duplicate scaling for fixed point conversions.
2710 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
2712 2005-11-14 Matthew Gingell <gingell@adacore.com>
2714 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
2715 Increase default priority on Lynx from 15 to 17, and meet the Ada
2716 requirement that Default_Priority be ((Priority'First +
2717 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
2719 2005-11-14 Vincent Celier <celier@adacore.com>
2721 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
2722 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2723 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
2724 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
2725 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
2726 mlib-tgt-lynxos.adb (DLL_Prefix): New function
2728 2005-11-14 Doug Rupp <rupp@adacore.com>
2730 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
2733 2005-11-14 Arnaud Charlet <charlet@adacore.com>
2735 * s-traces-default.adb, s-trafor-default.ads,
2736 s-tratas-default.adb: Fix compilation errors.
2738 2005-11-14 Jose Ruiz <ruiz@adacore.com>
2740 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
2741 raising the exception so the memory used is freed.
2743 2005-11-14 Arnaud Charlet <charlet@adacore.com>
2745 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
2746 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
2747 (convert_address): Update comments and list of platforms using this.
2749 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
2752 2005-11-14 Pascal Obry <obry@adacore.com>
2753 Vincent Celier <celier@adacore.com>
2755 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
2758 * memroot.adb: Remove redundant with/use clause on
2759 System.Storage_Elements.
2761 2005-11-14 Arnaud Charlet <charlet@adacore.com>
2763 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
2764 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
2765 related code to a-exexpr.adb
2766 (Save_Occurrence_And_Private): Move GCC EH related code to
2768 (Raise_Current_Excep): Add new variable Id with pragma
2769 volatile, to ensure that the variable lives on stack.
2771 * a-exexpr-gcc.adb, raise-gcc.c: New file.
2773 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
2775 Move GCC EH related code to a-exexpr-gcc.adb
2777 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
2779 Split the Linux version of g-soccon into separate variants for 32 and 64
2781 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
2782 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
2783 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
2784 of host variable $(RANLIB_FLAGS).
2785 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
2786 Code clean up: remove unused/obsolete targets.
2787 (EH_MECHANISM): New variable introduced to differenciate between the
2788 two EH mechanisms statically.
2789 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
2790 (LIBGNAT_OBJS): Add raise-gcc.o
2791 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
2792 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
2793 supports VxWorks 6 RTPs.
2794 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
2795 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
2797 * raise.c: Move all GCC EH-related routines to raise-gcc.c
2799 2005-11-14 Jose Ruiz <ruiz@adacore.com>
2801 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
2802 deferral level, when abort is not allowed, to a later stage (the
2804 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
2805 it will not get changed by the generated code. It was previously done
2808 2005-11-14 Thomas Quinot <quinot@adacore.com>
2809 Olivier Hainque <hainque@adacore.com>
2810 Eric Botcazou <ebotcazou@adacore.com>
2813 Factor common code to build a storage type for an unconstrained object
2814 from a fat or thin pointer type and a constrained object type.
2815 (annotate_value): Handle BIT_AND_EXPR.
2816 (annotate_rep): Don't restrict the back annotation of inherited
2817 components to the type_annotate_only case.
2818 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
2819 we are not defining the type.
2820 <E_Record_Type>: Likewise.
2821 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
2822 to get advantage of the new maybe_stabilize_reference interface, to
2823 ensure that what we reference is indeed stabilized instead of relying
2824 on assumptions on what the stabilizer does.
2825 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
2826 type imported through a limited_with clause, use its non-limited view.
2827 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
2829 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
2830 of #if sections + explicit comparisons of convention identifiers.
2831 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
2832 before early-returning for certain types when code generation is
2834 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
2835 nullification of gnu_expr we do for objects with address clause and
2836 that we are not defining.
2837 (elaborate_expression_1): Do not create constants when creating
2838 variables needed by the debug info: the dwarf2 writer considers that
2839 CONST_DECLs is used only to represent enumeration constants, and emits
2841 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
2842 object with an address clause into an indirect reference, drop the
2843 initializing expression.
2845 (STACK_CHECK_BUILTIN): Delete.
2846 (STACK_CHECK_PROBE_INTERVAL): Likewise.
2847 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
2848 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
2849 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
2850 corresponding to the renamed object as ignored for debugging purposes.
2852 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
2853 related): For a prefix that is a dereference of a fat or thin pointer,
2854 if there is an actual subtype provided by the front-end, use that
2855 subtype to build an actual type with bounds template.
2856 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
2857 is provided by the front-end, use that subtype to compute the size of
2858 the deallocated object.
2859 (gnat_to_gnu): When adding a statement into an elaboration procedure,
2860 check for a potential violation of a No_Elaboration_Code restriction.
2861 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2862 with extra arguments to control whether to recurse through non-values
2863 and to let the caller know if the stabilization has succeeded.
2864 (gnat_stabilize_reference): Now a simple wrapper around
2865 maybe_stabilize, for common uses without restriction on lvalues and
2866 without need to check for the success indication.
2867 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
2868 pass false instead of 0 as the FORCE argument which is a bool.
2869 (Identifier_to_gnu): Remove checks ensuring that an renamed object
2870 attached to a renaming pointer has been properly stabilized, as no such
2871 object is attached otherwise.
2872 (call_to_gnu): Invoke create_var_decl to create the temporary when the
2873 function uses the "target pointer" return mechanism.
2874 Reinstate conversion of the actual to the type of the formal
2875 parameter before any other specific treatment based on the passing
2876 mechanism. This turns out to be necessary in order for PLACEHOLDER
2877 substitution to work properly when the latter type is unconstrained.
2879 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
2881 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2882 with extra arguments to control whether to recurse through non-values
2883 and to let the caller know if the stabilization has succeeded.
2885 * utils2.c (gnat_build_constructor): Only sort the fields for possible
2886 static output of record constructor if all the components are constant.
2887 (gnat_build_constructor): For a record type, sort the list of field
2888 initializers in increasing bit position order.
2889 Factor common code to build a storage type for an unconstrained object
2890 from a fat or thin pointer type and a constrained object type.
2891 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
2892 types variants, and process special cases of VIEW_CONVERT expressions
2893 as their NOP_EXPR counterpart to ensure we get to the
2894 CORRESPONDING_VARs associated with CONST_DECls.
2895 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
2896 on the right-hand side.
2898 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
2900 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
2901 are converting back to its original type.
2902 (convert) <JM input>: Fallthrough regular conversion code instead of
2903 extracting the object if converting to a type variant.
2904 (create_var_decl): When a variable has an initializer requiring code
2905 generation and we are at the top level, check for a potential violation
2906 of a No_Elaboration_Code restriction.
2907 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
2908 SIZE and SIZE_UNIT which we need for later back-annotations.
2909 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
2910 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
2911 is an unchecked union.
2912 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
2913 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
2914 main variant, just replace the VIEW_CONVERT_EXPR.
2915 <UNION_TYPE>: Revert 2005-03-02 change.
2917 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
2919 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
2921 2005-11-14 Matthew Heaney <heaney@adacore.com>
2923 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
2924 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
2925 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
2926 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
2927 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
2928 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
2929 Compiles against the spec for ordered maps described in sections
2930 A.18.6 of the most recent (August 2005) AI-302 draft.
2932 2005-11-14 Olivier Hainque <hainque@adacore.com>
2934 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
2935 to ensure bias adjustments take place when need be and to prevent
2936 occurrences of intermediate overflows.
2938 2005-11-14 Matthew Gingell <gingell@adacore.com>
2939 Olivier Hainque <hainque@adacore.com>
2941 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
2944 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
2945 tracebacks on ia64 HP-UX and provide explanatory comment.
2946 Enable backtraces on ia64 GNU/Linux.
2947 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
2948 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
2950 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
2951 Javier Miranda <miranda@adacore.com>
2953 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
2954 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
2955 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
2956 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
2958 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
2959 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
2962 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
2963 subprogram that generates the external name associated with a
2964 secondary dispatch table.
2965 (Get_Secondary_DT_External_Name): New subprogram that generates the
2966 external name associated with a secondary dispatch table.
2968 2005-11-14 Emmanuel Briot <briot@adacore.com>
2970 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
2971 line in the ALI file to include both an instantiation reference, and a
2974 2005-11-14 Vincent Celier <celier@adacore.com>
2976 * clean.adb (Check_Project): Look for Ada code in extending project,
2977 even if Ada is not specified as a language.
2978 Use new function DLL_Prefix for DLL_Name
2979 (Clean_Interface_Copy_Directory): New procedure
2980 (Clean_Library_Directory): New procedure
2981 (Clean_Directory): Remove procedure, no longer used
2982 (Clean_Project): Do not delete any file in an externally built project
2984 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
2985 directory of an extending project, even when there are no Ada source
2987 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
2988 (Set_Ada_Paths.Add.Recursive_Add): Ditto
2990 * mlib-prj.adb (Check_Library): For all library projects, get the
2991 library file timestamp.
2992 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
2993 (Build_Library): Use new function DLL_Prefix for the DLL_Name
2994 (Clean): Remove procedure, no longer used
2995 (Ultimate_Extension_Of): New function
2996 (Build_Library): When cleaning the library directory, only remove an
2997 existing library file and any ALI file of a source of the project.
2998 When cleaning the interface copy directory, remove any source that
2999 could be a source of the project.
3001 * prj.ads, prj.adb (Project_Empty): Add values of new components
3002 Library_TS and All_Imported_Projects.
3003 (Project_Empty): Add values for new components of Project_Data:
3004 Library_ALI_Dir and Display_Library_ALI_Dir
3006 * prj-attr.adb: New project level attribute name Library_ALI_Dir
3008 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
3009 attribute Library_ALI_Dir.
3010 (Check_Library_Attributes): The library directory cannot be the same as
3011 any source directory of the project tree.
3012 (Check_Stand_Alone_Library): The interface copy directory cannot be
3013 the same as any source directory of the project tree.
3015 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
3016 all temporary files.
3018 2005-11-14 Robert Dewar <dewar@adacore.com>
3019 Ed Schonberg <schonberg@adacore.com>
3021 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3022 (Check_Elab_Call): A call within a protected body is never an
3023 elaboration call, and does not require checking.
3024 (Same_Elaboration_Scope): Take into account protected types for both
3026 (Activate_Elaborate_All_Desirable): New procedure
3028 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
3031 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
3032 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
3034 * lib-writ.ads, lib-writ.adb:
3035 Implement new AD/ED for Elaborate_All/Elaborate desirable
3036 Use new Elaborate_All_Desirable flag in N_With_Clause node
3038 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
3039 N_Free_Statement nodes.
3040 Define new class N_Subprogram_Instantiation
3041 Add Elaborate_Desirable flag to N_With_Clause node
3042 Add N_Delay_Statement (covering two kinds of delay)
3044 * debug.adb: Introduce d.f flag for compiler
3045 Add -da switch for binder
3047 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3048 Cyrille Comar <comar@adacore.com>
3050 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
3051 for task component, in the case of a limited aggregate. The enclosed
3052 object declaration will create it earlier. Otherwise, in the case of a
3053 nested aggregate, the object may appear in the wrong scope.
3054 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
3055 (Gen_Assign): If the component being assigned is an array type and the
3056 expression is itself an aggregate, wrap the assignment in a block to
3057 force finalization actions on the temporary created for each row of the
3059 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
3060 structures are initialized after all discriminants are set so that
3061 they can be accessed even when their offset is dynamic.
3063 2005-11-14 Robert Dewar <dewar@adacore.com>
3064 Hristian Kirtchev <kirtchev@adacore.com>
3066 * sem_attr.adb: Implement Machine_Rounding attribute
3067 (Analyze_Access_Attribute): The access attribute may appear within an
3068 aggregate that has been expanded into a loop.
3069 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
3070 'Terminated whenever the prefix is of a task interface class-wide type.
3071 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
3072 the prefix is of a task interface class-wide type.
3074 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
3077 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
3078 Remove pragma Inline for [Unaligned_]Valid.
3079 Add comments that Valid routines do not work for Vax_Float
3081 * exp_attr.adb: Implement Machine_Rounding attribute
3083 * snames.h: Add entry for Machine_Rounding attribute
3085 2005-11-14 Javier Miranda <miranda@adacore.com>
3086 Robert Dewar <dewar@adacore.com>
3087 Hristian Kirtchev <kirtchev@adacore.com>
3089 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
3090 and related): For a prefix that is an explicit dereference of an
3091 access to unconstrained packed array type, annotate the dereference
3092 with an actual subtype so GIGI can make a correct size computation.
3093 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
3094 'Unrestricted_Access, if the designated type is an interface we
3095 add a type conversion to force the displacement of the pointer
3096 to the secondary dispatch table.
3097 Use Universal_Real instead of Long_Long_Float when we need a high
3098 precision float type for the generated code (prevents gratuitous
3099 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3100 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
3101 'Terminated for task interface class-wide objects. Generate a call to
3102 the predefined dispatching routine used to retrieve the _task_id from
3103 a task corresponding record.
3104 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
3106 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3107 (Check_Dispatching_Operation): Protect the frontend againts
3108 previously detected errors.
3110 * Makefile.rtl: Add new instantiations of system.fat_gen
3112 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
3113 Change name of instantiated package for better consistency
3114 with newly added system.fat_gen instantiations.
3116 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
3117 s-fvagfl.ads: New files.
3119 2005-11-14 Cyrille Comar <comar@adacore.com>
3120 Thomas Quinot <quinot@adacore.com>
3122 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
3123 assignment of a value of a tagged type that has been rewritten to a
3124 block statement, it is known by construction that no checks are
3125 necessary for the statements within the block: analyze it with checks
3127 (Expand_N_If_Statement): When killing a dead then-branch in an
3128 if-statement that has elsif_parts, recompute the Current_Value node
3129 for any entity whose value is known from the condition of the first
3131 (Expand_N_Return_Statement): When returning a mutable record, convert
3132 the return value into its actual subtype in order to help the backend
3133 to return the actual size instead of the maximum. This is another
3134 aftermath of not returning mutable records on the sec-stack anymore.
3136 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
3137 handling of error msg for suspicious reverse range iteration.
3138 (Check_Possible_Current_Value_Condition): Move declaration from body to
3139 spec, to allow this subprogram to be called from exp_ch5.
3141 2005-11-14 Thomas Quinot <quinot@adacore.com>
3143 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
3144 generate a set of nested array aggregates instead of a single flat
3145 aggregate for multi-dimensional arrays.
3147 2005-11-14 Pascal Obry <obry@adacore.com>
3149 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
3150 by spawnve is a process handle, no need to convert. Add a parameter
3151 close to control wether the process handle must be closed.
3152 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
3153 a process handle, not need to convert.
3154 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
3156 * g-expect.adb: (Kill): Document the new close parameter.
3157 (Close): Do not release the process handle in the kill there as
3158 waitpid() is using it.
3159 (Send_Signal): Release the process handle.
3161 2005-11-14 Robert Dewar <dewar@adacore.com>
3163 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
3164 need a high precision float type for the generated code (prevents
3165 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3168 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
3169 need a high precision float type for the generated code (prevents
3170 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3172 (Expand_Width_Attribute): In configurable run-time, the attribute is not
3173 allowed on non-static enumeration subtypes. Force a load error to emit
3174 the correct diagnostic.
3176 2005-11-14 Thomas Quinot <quinot@adacore.com>
3177 Robert Dewar <dewar@adacore.com>
3178 Ed Schonberg <schonberg@adacore.com>
3180 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
3181 subtype to compute the size of the designated object at run-time,
3182 create such a subtype and store it in the Actual_Designated_Subtype
3183 attribute of the N_Free_Statement.
3184 Generate itype for classwide designated object in both cases of
3185 user-specified storage pool: specific and class-wide, not only in the
3187 Raise CE when trying to set a not null access type object to null.
3188 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
3189 an explicit loop, because freeze nodes make its position variable.
3191 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
3194 2005-11-14 Javier Miranda <miranda@adacore.com>
3196 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
3197 Build_Stream_Procedure): Add the null-excluding attribute to the first
3199 This has no semantic meaning under Ada95 mode but it is a
3200 requirement under Ada05 mode.
3202 * par-ch3.adb (P_Access_Definition): Addition of warning message if
3203 the null exclusion is used under Ada95 mode
3204 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
3205 (P_Access_Definition): Remove assertion that forbids the use of
3206 the null-exclusion feature in Ada95.
3208 2005-11-14 Robert Dewar <dewar@adacore.com>
3210 * impunit.adb: Exclude container helper units not intended for use by
3213 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3215 * freeze.adb (Freeze_Entity): For an access formal that is an access
3216 to subprogram, freeze the anonymous subprogram type at the same time,
3217 to prevent later freezing in the wrong scope, such as the enclosing
3219 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
3220 subprogram whenever available.
3222 2005-11-14 Arnaud Charlet <charlet@adacore.com>
3225 * gnatvsn.ads (Library_Version): Bump to 4.1
3227 2005-11-14 Robert Dewar <dewar@adacore.com>
3229 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
3230 Storage_Offset to avoid wrap around causing invalid results.
3232 2005-11-14 Pascal Obry <obry@adacore.com>
3234 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
3236 (Scan_Bind_Arg): Fail with an error message if -M option is used
3237 on a native compiler.
3239 2005-11-14 Robert Dewar <dewar@adacore.com>
3240 Vincent Celier <celier@adacore.com>
3242 * gprep.adb: Implement -C switch to scan comments
3244 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
3246 * scans.ads: Comment updates (including new use of Tok_Comment in
3249 * opt.ads: Add documentation for flags that are used by gprmake,
3250 currently and in the next version of gprmake.
3251 (Verbosity_Level): New variable
3252 Add Replace_In_Comments switch
3254 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
3256 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
3258 2005-11-14 Arnaud Charlet <charlet@adacore.com>
3260 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
3261 message, friendlier.
3263 2005-11-14 Robert Dewar <dewar@adacore.com>
3265 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
3267 2005-11-14 Doug Rupp <rupp@adacore.com>
3269 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
3271 2005-11-14 Robert Dewar <dewar@adacore.com>
3273 * interfac.ads: Change declarations of IEEE float types so that we no
3274 longer need a separate version of this package for VMS.
3276 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3278 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
3279 internal entity created for the declaration of a child subprogram body
3280 with no spec as coming from source, to generate proper cross-reference
3283 2005-11-14 Vincent Celier <celier@adacore.com>
3285 * make.adb (Compile_Sources): Change verbose message to minimum
3286 verbosity level High for "is in an Ada library", "is a read-only
3287 library" and "is an internal library",
3288 (Create_Binder_Mapping_File): Path name of ALI file for library project
3289 must include the library directory, not the object directory.
3290 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
3291 for new switches -vl, -vm and -vh.
3292 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
3293 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
3294 (Compile_Sources): Do not attempt to compile if an ALI file is missing
3295 in a project that is externally built.
3296 (Compute_All_Imported_Projects): New procedure
3297 (Gnatmake): Check if importing libraries should be regenerated because
3298 at least an imported library is more recent.
3299 (Initialize): For each project compute the list of the projects it
3300 imports directly or indirectly.
3301 (Add_Library_Search_Dir): New procedure, used in place of
3302 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
3303 put in the search paths.
3304 (Add_Source_Search_Dir): New procedure, used in place of
3305 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
3306 put in the search paths.
3307 (Mark_Directory): Resolve the absolute path the directory before marking
3310 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
3311 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
3312 Switch. Do not handle any exception.
3313 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
3314 so that the switch is recognized as valid.
3315 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
3317 2005-11-14 GNAT Script <nobody@adacore.com>
3319 * Make-lang.in: Makefile automatically updated
3321 2005-11-14 Pascal Obry <obry@adacore.com>
3323 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
3325 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
3326 In both cases the last argument was dropped.
3328 2005-11-14 Eric Botcazou <ebotcazou@adacore.com>
3330 * namet.h: (Column_Numbe): New type.
3331 (Get_Column_Number): Define to sinput__get_column_number.
3332 (Instantiation): Define to sinput__instantiation.
3333 (Get_Column_Number): Declare.
3334 (Instantiation): Likewise.
3336 2005-11-14 Robert Dewar <dewar@adacore.com>
3338 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
3339 syntax, which could cause compiler hangs.
3341 2005-11-14 Vincent Celier <celier@adacore.com>
3343 * prj-ext.adb: Take into account new environment variable
3344 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
3346 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
3347 normalize its path name, making it absolute and resolving symbolic
3348 links, and replace the original if resolved path is different.
3350 2005-11-14 Vincent Celier <celier@adacore.com>
3352 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
3353 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
3355 2005-11-14 Emmanuel Briot <briot@adacore.com>
3357 * prj-pp.adb (Print): Do not output the with statement if the
3358 associated name is empty, which happens for virtual extending projects.
3359 (Print): Preserve the "extends all" attribute when printing the project.
3361 * prj-tree.ads (String_Value_Of): Add comment about returned value for
3362 a virtual extending project.
3364 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3366 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
3367 rhs of an assignment even if the type is unconstrained, when the
3368 context is non-expanding.
3369 In an inlined body, if the context type is private,
3370 resolve with its full view, which must be a composite type.
3372 2005-11-14 Robert Dewar <dewar@adacore.com>
3373 Ed Schonberg <schonberg@adacore.com>
3375 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3376 Do not give obsolescent warning on with of subprogram (since we
3378 (Analyze_With_Clause): Add test for obsolescent package
3379 (Install_Context_Clauses): If the unit is the body of a child unit, do
3380 not install twice the private declarations of the parents, to prevent
3381 circular lists of Use_Clauses in a parent.
3382 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
3383 compiling body of child unit.
3384 Use new class N_Subprogram_Instantiation
3385 (Expand_With_Clause): If this is a private with_clause for a child unit,
3386 appearing in the context of a package declaration, then the implicit
3387 with_clauses generated for parent units are private as well.
3388 (License_Check): Do not generate message if with'ed unit is internal
3390 2005-11-14 Gary Dismukes <dismukes@adacore.com>
3391 Ed Schonberg <schonberg@adacore.com>
3392 Thomas Quinot <quinot@adacore.com>
3394 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
3395 names are internal, because they will not have a corresponding partner
3396 in the actual package.
3397 (Analyze_Formal_Package): Move the setting of the formal package spec's
3398 Generic_Parent field so that it occurs prior to analyzing the package,
3399 to allow proper operation of Install_Parent_Private_Declarations.
3400 (Analyze_Package_Instantiation): Set the instantiated package entity's
3401 Package_Instantiation field.
3402 (Get_Package_Instantiation_Node): Move declaration to package spec.
3403 Retrieve the N_Package_Instantiation node when the Package_Instantiation
3405 (Check_Generic_Child_Unit): Within an inlined call, the only possible
3406 instantiation is Unchecked_Conversion, for which no parents are needed.
3407 (Inline_Instance_Body): Deinstall and record the use_clauses for all
3408 parent scopes of a scope being removed prior to inlining an instance
3410 (Analyze_Package_Instantiation): Do not perform front-end inlining when
3411 the current context is itself an instance within a non-instance child
3412 unit, to prevent scope stack errors.
3413 (Save_References): If the node is an aggregate that is an actual in a
3414 call, rewrite as a qualified expression to preserve some type
3415 information, to resolve possible ambiguities in the instance.
3416 (Instance_Parent_Unit): New global variable to record the ultimate
3417 parent unit associated with a generic child unit instance (associated
3418 with the existing Parent_Unit_Visible flag).
3419 (type Instance_Env): New component Instance_Parent_Unit for stacking
3420 parents recorded in the global Instance_Parent_Unit.
3421 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
3423 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
3424 it's not a top-level unit, and only do this if Instance_Parent_Unit is
3425 not already set. Replace test of Is_Child_Unit with test of parent's
3426 scope against package Standard. Add comments and a ??? comment.
3427 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
3428 on a child instance parent to test that the parent equals
3429 Instance_Parent rather than simply checking that the unit is not a
3431 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
3432 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
3433 a formal interface are ancestors of the corresponding actual.
3434 (Validate_Formal_Interface_Type): Additional legality checks.
3435 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
3436 interface types with ancestors.
3437 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
3438 to diagnose attempts to use generic within its own declaration.
3440 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3441 Javier Miranda <miranda@adacore.com>
3443 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
3445 (Build_Private_Derived_Type): The entity of the created full view of the
3446 derived type does not come from source. If after installing the private
3447 declarations of the parent scope the parent is still private, use its
3448 full view to construct the full declaration of the derived type.
3449 (Build_Derived_Record_Type): Relax the condition that controls the
3450 execution of the check that verifies that the partial view and
3451 the full view agree in the set of implemented interfaces. In
3452 addition, this test now only takes into account the progenitors.
3453 (Derive_Interface_Subprograms): No need to derive subprograms
3454 of ancestors that are interfaces.
3455 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
3457 Change name Is_Package to Is_Package_Or_Generic_Package
3458 (Complete_Subprograms_Derivation): Handle the case in which the full
3459 view is a transitive derivation of the ancestor of the partial view.
3460 (Process_Full_View): Rename local subprogram Find_Interface_In_
3461 Descendant to Find_Ancestor_Interface to leave the code more clear.
3462 Remove wrong code that avoids the generation of an error message
3463 when the immediate ancestor of the partial view is an interface.
3464 In addition some minor reorganization of the code has been done to
3465 leave it more clear.
3466 (Analyze_Type_Declaration): If type has previous incomplete tagged
3467 partial view, inherit properly its primitive operations.
3468 (Collect_Interfaces): Make public, for analysis of formal
3470 (Analyze_Interface_Declaration): New procedure for use for regular and
3471 formal interface declarations.
3472 (Build_Derived_Record_Type): Add support for private types to the code
3473 that checks if a tagged type implements abstract interfaces.
3474 (Check_Aliased_Component_Type): The test applies in the spec of an
3476 (Access_Type_Declaration): Clean up declaration of malformed type
3477 declared as an access to its own classwide type, to prevent cascaded
3479 (Collect_Interfaces): For private extensions and for derived task types
3480 and derived protected types, the parent may be an interface that must
3481 be included in the interface list.
3482 (Access_Definition): If the designated type is an interface that may
3483 contain tasks, create Master_Id for it before analyzing the expression
3484 of the declaration, which may be an allocator.
3485 (Record_Type_Declaration): Set properly the interface kind, for use
3486 in allocators, the creation of master id's for task interfaces, etc.
3488 2005-11-14 Javier Miranda <miranda@adacore.com>
3489 Ed Schonberg <schonberg@adacore.com>
3491 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
3492 omitted in case of stream attribute subprograms.
3493 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
3494 appear immediately after a subprogram body, when there is no previous
3495 subprogram declaration.
3496 Change name Is_Package to Is_Package_Or_Generic_Package
3497 (Process_Formals): A non null qualifier on a non null named access
3498 type is not an error, and is a warning only if Redundant_Constructs
3501 2005-11-14 Gary Dismukes <dismukes@adacore.com>
3502 Ed Schonberg <schonberg@adacore.com>
3504 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
3505 nested within Analyze_Package_Specification to install the private
3506 declarations and use clauses within each of the parent units of a
3507 package instance of a generic child package.
3508 (Analyze_Package_Specification): When entering a private part of a
3509 package associated with a generic instance or formal package, the
3510 private declarations of the parent must be installed (by calling new
3511 procedure Install_Parent_Private_Declarations).
3512 Change name Is_Package to Is_Package_Or_Generic_Package
3513 (Preserve_Full_Attributes): For a synchronized type, the corresponding
3514 record is absent in a generic context, which does not indicate a
3517 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3519 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
3520 not try to rewrite a renamed stream attribute, because the operations
3521 on the type may not have been generated.
3522 Handle properly a renaming_as_body generated for a stream operation
3523 whose default is abstract because the object type itself is abstract.
3524 (Find_Type): If the type is incomplete and appears as the prefix of a
3525 'Class reference, it is tagged, and its list of primitive operations
3526 must be initialized properly.
3527 (Chain_Use_Clauses): When chaining the use clauses that appear in the
3528 private declaration of a parent unit, prior to compiling the private
3529 part of a child unit, find on the scope stack the proper parent entity
3530 on which to link the use clause.
3531 (Note_Redundant_Use): Emit a warning when a redundant use clause is
3533 (Analyze_Object_Renaming): An attribute reference is not a legal object
3534 if it is not a function call.
3536 2005-11-14 Robert Dewar <dewar@adacore.com>
3537 Ed Schonberg <schonberg@adacore.com>
3539 * sem_eval.adb: Implement d.f flag
3540 (Subtype_Statically_Match): A generic actual type has unknown
3541 discriminants when the corresponding actual has a similar partial view.
3542 If the routine is called to validate the signature of an inherited
3543 operation in a child instance, the generic actual matches the full view,
3545 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
3546 Ed Schonberg <schonberg@adacore.com>
3547 Robert Dewar <dewar@adacore.com>
3548 Thomas Quinot <quinot@adacore.com>
3550 * sem_res.adb (Resolve_Call): Provide a better error message whenever
3551 a procedure call is used as a select statement trigger and is not an
3552 entry renaming or a primitive of a limited interface.
3553 (Valid_Conversion): If the operand has a single interpretation do not
3554 remove address operations.
3555 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
3556 statement to inhibit warning.
3557 (Resolve_Unary_Op): Do not produce a warning when
3558 processing an expression of the form -(A mod B)
3559 Use Universal_Real instead of Long_Long_Float when we need a high
3560 precision float type for the generated code (prevents gratuitous
3561 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3562 (Resolve_Concatenation_Arg): Improve error message when argument is an
3563 ambiguous call to a function that returns an array.
3564 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
3565 there is an implicit operator in the given scope if we are within an
3566 instance: legality check has been performed on the generic.
3567 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
3568 after resolving operand, to avoid false warnings on overloaded calls.
3570 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3571 Javier Miranda <miranda@adacore.com>
3575 * sem_type.adb (Covers): In an inlined body, a composite type matches
3576 a private type whose full view is a composite type.
3577 (Interface_Present_In_Ancestor): Protect the frontend against
3578 previously detected errors to ensure that its compilation
3579 with assertions enabled gives the same output that its
3580 compilation without assertions.
3581 (Interface_Present_In_Ancestor): Add support for private types.
3582 Change name In_Actual to In_Generic_Actual (clean up)
3583 (Disambiguate): New predicate In_Actual, to recognize expressions that
3584 appear in the renaming declaration generated for generic actuals, and
3585 which must be resolved in the outer context.
3587 2005-11-14 Robert Dewar <dewar@adacore.com>
3588 Thomas Quinot <quinot@adacore.com>
3589 Hristian Kirtchev <kirtchev@adacore.com>
3590 Ed Schonberg <schonberg@adacore.com>
3592 * sem_util.ads, sem_util.adb: Change name Is_Package to
3593 Is_Package_Or_Generic_Package.
3594 (Check_Obsolescent): New procedure.
3595 (Set_Is_Public): Remove obsolete junk test.
3596 (Set_Public_Status): Do not set Is_Public on an object whose declaration
3597 occurs within a handled_sequence_of_statemets.
3598 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
3599 for a parameterless procedure.
3600 (Enter_Name): Recognize renaming declarations created for private
3601 component of a protected type within protected operations, so that
3602 the source name of the component can be used in the debugger.
3604 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3605 Robert Dewar <dewar@adacore.com>
3607 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
3608 of a generic subprogram are not visible outside the body.
3609 (Set_Warning_Switch): New procedure (code to set warning mode moved
3610 here from Switch.C so that it can be shared by pragma processing.
3611 (Check_References): Special case warning for non-modified non-imported
3613 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
3614 form with a string literal argument
3616 2005-11-14 Javier Miranda <miranda@adacore.com>
3618 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
3620 (Write): Addition of "not null" to the anonymous access.
3621 (Read): Addition of "not null" to the anonymous access.
3622 (Write): Addition of "not null" to the anonymous access.
3624 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
3625 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
3626 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
3627 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
3628 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
3629 "not null" to the anonymous access.
3631 2005-11-14 Robert Dewar <dewar@adacore.com>
3633 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
3636 2005-11-14 Vincent Celier <celier@adacore.com>
3638 * switch.adb (Bad_Switch): New procedure
3639 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
3640 message when in error.
3642 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
3643 Too_Many_Output_Files): Remove declarations, no longer used.
3644 (Scan_Nat): New parameter Switch
3646 (Bad_Switch): New procedure
3648 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
3649 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
3650 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
3651 to Osint.Fail. Do not handle any exception.
3653 2005-11-14 Vincent Celier <celier@adacore.com>
3655 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
3656 designates a non existent directory.
3658 2005-11-14 Robert Dewar <dewar@adacore.com>
3660 * xgnatugn.adb: Replace invalid membership test by 'Valid
3662 2005-11-14 Vincent Celier <celier@adacore.com>
3664 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
3665 there is no object directory.
3667 2005-11-14 Robert Dewar <dewar@adacore.com>
3669 * usage.adb: Minor adjustment to output format, use nn instead of nnn
3670 (so that -gnateInnn does not run into next column)
3672 2005-11-14 Ed Falis <falis@adacore.com>
3674 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
3677 2005-11-14 Cyrille Comar <comar@adacore.com>
3679 * s-chepoo.ads: Add comments on Dereference.
3680 Remove unnecessary inherited abstract primitives.
3683 2005-11-14 Robert Dewar <dewar@adacore.com>
3685 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
3686 node parameter, not needed, since it is available as Declaration_Node.
3688 2005-11-14 Geert Bosch <bosch@adacore.com>
3690 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
3691 grammatically correct.
3693 2005-11-14 Vincent Celier <celier@adacore.com>
3695 * s-fileio.ads: Correct spelling error in comment
3697 2005-11-14 Cyrille Comar <comar@adacore.com>
3698 Robert Dewar <dewar@adacore.com>
3699 Vincent Celier <celier@adacore.com>
3700 Ben Brosgol <brosgol@adacore.com>
3701 Jose Ruiz <ruiz@adacore.com>
3702 Pascal Obry <obry@adacore.com>
3705 Document that -fstack-check is needed for strict compliance with the
3706 Ada 95 Reference Manual.
3707 Correct reference to VAX systems to meet HP guidelines
3708 Add documentation for new gnatmake switches -vl, -vm and -vh
3709 Replace DEC Ada by HP Ada
3710 Replace DIGITAL by HP
3711 Remove empty section on tools in compatibility section
3712 Clarify the Windows convention semantics.
3713 Document the Win32 calling convention.
3714 The Stdcall, Win32 and DLL convention are synonyms.
3715 Add a note in -gnatR description about zero size record components
3716 Note on new >= and <= warnings for -gnatwc
3717 Document that equal sign after -gnatm is optional.
3718 Note that strip is working fine on DLL built with a Library
3719 Project. The restriction apply only to DLL built with gnatdll.
3720 Update section about the way to debug a DLL.
3721 Update information about the DLL convention.
3722 Document -C switch for gnatprep
3723 Document new attribute Library_ALI_Dir
3724 Update elaboration doc to include implicit Elaborate pragmas now
3725 generated for subprogram instantiations.
3726 Document limitation on executable names that include spaces for --GCC,
3727 --GNATBIND, and --GNATLINK switches.
3728 Document that -w causes -gnatws to be added at start of gcc switches
3730 * gnat_rm.texi: Document that -mieee is needed for generating infinite
3731 and NaN values in case of overflow on machines that are not fully
3732 compliant with the IEEE floating-point standard.
3733 Create a section describing the set of compiler options needed for
3734 strict compliance with the Ada 95 Reference Manual.
3735 Add documentation for pragma Obsolescent applied to a package
3736 Clarify potential issues of mixed language programs related to the
3737 I/O buffering enabling in the elaboration of the GNAT runtime.
3738 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
3739 This documentation only patch adds extra documentsion for pragma
3740 Restrictions (No_Elaboration_Code), explaining why it is not possible
3741 to document this restriction in terms of allowed source constructs.
3742 Document string literal form of pragma Warnings
3743 Document new attribute Library_ALI_Dir
3744 Add documentation on stable attributes in project files that was missing