1 2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
3 * Make-lang.in: Rename docdir to gcc_docdir.
5 2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
7 * gigi.h (get_ada_base_type): Delete.
8 * utils2.c (get_ada_base_type): Likewise.
9 * trans.c (convert_with_check): Operate in the real base type.
11 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
15 2006-03-02 Richard Sandiford <richard@codesourcery.com>
17 * utils.c (create_var_decl): Use have_global_bss_p when deciding
18 whether to make the decl common.
20 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
22 * Make-lang.in (Ada): Remove
25 2006-02-17 Ed Schonberg <schonberg@adacore.com>
27 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
28 aggregate, check the interpretations of the other operand to find one
29 that may be a boolean array.
31 (Analyze_Selected_Component): Fix flow-of-control typo in case where
32 the prefix is a private extension.
34 2006-02-17 Eric Botcazou <botcazou@adacore.com>
38 * utils2.c (find_common_type): If both input types are BLKmode and
39 have the same constant size, keep using the first one.
41 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
43 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
45 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
47 2006-02-17 Jose Ruiz <ruiz@adacore.com>
49 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
50 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
51 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
52 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
53 Abort_Defer/Undefer pairs to avoid the possibility of a task being
54 aborted while owning a lock.
56 2006-02-17 Javier Miranda <miranda@adacore.com>
57 Robert Dewar <dewar@adacore.com>
59 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
60 through an access to class-wide interface we force the displacement of
61 the pointer to the allocated object to reference the corresponding
62 secondary dispatch table.
63 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
64 if Long_Shifts are supported on the target, even if 64 bit divides
65 are not supported (configurable run time mode).
66 (Expand_N_Type_Conversion): Do validity check if validity checks on
68 (Expand_N_Qualified_Expression): Do validity check if validity checks
69 on operands are enabled.
71 2006-02-17 Ed Schonberg <schonberg@adacore.com>
73 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
74 must be materialized when the renamed expression is an explicit
77 2006-02-17 Ed Schonberg <schonberg@adacore.com>
79 * freeze.adb (Statically_Discriminated_Components): Return false if
80 the bounds of the type of the discriminant are not static expressions.
82 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
83 the bounds of the discriminant type are not static.
85 2006-02-17 Robert Dewar <dewar@adacore.com>
87 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
88 then we close To if it is valid.
90 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
92 * init.c (facility_resignal_table): new array
93 (__gnat_default_resignal_p): enhance default predicate to resignal if
94 VMS condition has one of the predefined facility codes.
96 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
98 * Makefile.in: Use VMS64 specialized versions of several units in
99 Interfaces.C hierarchy to be compatible with HP C default size choices.
100 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
102 2006-02-17 Ed Schonberg <schonberg@adacore.com>
104 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
105 instantiation, the corresponding entity is the related_instance of the
106 wrapper package created for the instance.
108 2006-02-17 Ed Schonberg <schonberg@adacore.com>
110 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
111 the current instance is nested within another instance in a child unit.
113 2006-02-17 Javier Miranda <miranda@adacore.com>
114 Ed Schonberg <schonberg@adacore.com>
116 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
117 type we cannot inherit the primitive operations; we inherit the
118 Corresponding_Record_Type (which has the list of primitive operations).
119 (Check_Anonymous_Access_Types): When creating anonymous access types for
120 access components, use Rewrite in order to preserve the tree structure,
122 (Analyze_Object_Declaration): For limited types with access
123 discriminants with defaults initialized by an aggregate, obtain
124 subtype from aggregate as for other mutable types.
125 (Derived_Type_Declaration): If the derived type is a limited interface,
126 set the corresponding flag (Is_Limited_Record is not sufficient).
128 2006-02-17 Ed Schonberg <schonberg@adacore.com>
130 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
131 to inline a function that returns an unconstrained type, the return
132 expression must be the first variable declared in the body of the
135 2006-02-17 Javier Miranda <miranda@adacore.com>
137 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
138 abstract interface type, the static analysis is not enough to know if
139 the interface is implemented or not by the source tagged type. Hence
140 we must pass the work to the expander to generate the required code to
141 evaluate the conversion at run-time.
142 (Resolve_Equality_Op): Do not apply previous
143 transformation if expansion is disasbled, to prevent anomalies when
144 locating global references in a generic unit.
146 2006-02-17 Vincent Celier <celier@adacore.com>
148 * snames.ads, snames.adb: New standard names for new project attributes:
149 archive_builder, archive_indexer, compiler_pic_option,
150 config_body_file_name, config_body_file_name_pattern,
151 config_file_switches, config_file_unique, config_spec_file_name,
152 config_spec_file_name_pattern, default_builder_switches,
153 default_global_compiler_switches, default_language,
154 dependency_file_kind, global_compiler_switches, include_path,
155 include_path_file, language_kind, linker_executable_option,
156 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
157 roots, runtime_project.
159 2006-02-17 Matthew Heaney <heaney@adacore.com>
161 * a-convec.ads, a-convec.adb:
162 (operator "&"): handle potential overflow for large index types
163 (Insert): removed Contraint_Error when using large index types
164 (Insert_Space): removed Constraint_Error for large index types
165 (Length): moved constraint check from Length to Insert
167 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
169 Explicit raise statements now include an exception message.
170 (operator "&"): handle potential overflow for large index types
171 (Insert): removed Contraint_Error when using large index types
172 (Insert_Space): removed Constraint_Error for large index types
173 (Length): moved constraint check from Length to Insert
175 2006-02-17 Robert Dewar <dewar@adacore.com>
177 * s-wchcnv.adb: Document handling of [ on output (we do not change
178 this to ["5B"] and the new comments say why not.
181 Add note for -gnatVo that this now includes the cases of type
182 conversions and qualified expressions.
183 Add comments on handling of brackets encoding for Text_IO
185 2006-02-17 Ramon Fernandez <fernandez@adacore.com>
186 Thomas Quinot <quinot@adacore.com>
187 Robert Dewar <dewar@adacore.com>
188 Javier Miranda <miranda@adacore.com>
190 * expander.adb: Fix typo in comment
192 * exp_pakd.adb: Fix typo
193 Minor comment reformatting.
195 * g-dyntab.adb: Minor reformatting
197 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
198 aliased subprograms to look for the abstract interface subprogram.
200 2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
202 * env.c (__gnat_setenv): Use size_t.
203 (__gnat_unsetenv): Likewise.
204 (__gnat_clearenv): Likewise.
206 2006-02-16 Arnaud Charlet <charlet@adacore.com>
208 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
210 2006-02-13 Arnaud Charlet <charlet@adacore.com>
212 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
213 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
214 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
215 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
216 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
217 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
218 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
219 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
220 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
223 2006-02-13 Jose Ruiz <ruiz@adacore.com>
225 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
226 protection against race conditions is not needed.
227 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
229 (Set_Specific_Handler): Add mutual exclusive access to the specific
231 (Specific_Handler): Add mutual exclusive access for retrieving the
234 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
237 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
238 Fall_Back_Handler and Specific_Handler.
240 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
241 termination handlers.
242 Set two different owerflow depending on the maximal stack size.
244 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
245 protection against race conditions is not needed when executing the
246 task termination handler.
248 2006-02-13 Robert Dewar <dewar@adacore.com>
250 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
251 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
252 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
253 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
254 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
255 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
256 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
257 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
258 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
259 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
260 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
261 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
262 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
263 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
264 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
265 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
266 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
267 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
268 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
269 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
270 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
271 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
272 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
273 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
274 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
275 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
276 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
277 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
278 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
279 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
280 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
281 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
282 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
283 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
286 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
288 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
289 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
290 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
291 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
292 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
293 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
294 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
295 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
296 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
298 2006-02-13 Arnaud Charlet <charlet@adacore.com>
300 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
301 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
302 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
303 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
304 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
305 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
306 replaced by anonymous access type.
307 (pthread_sigmask): Now take an access sigset_t
309 * s-osinte-hpux.ads: Ditto.
310 (pthread_mutex_t, pthread_cond_t): Update definitions to support
311 properly 32 and 64 bit ABIs.
313 2006-02-13 Pascal Obry <obry@adacore.com>
315 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
316 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
317 s-taprop-linux.adb, s-taprop-solaris.adb,
318 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
319 adjustement is already done when calling this routine.
321 2006-02-13 Pascal Obry <obry@adacore.com>
323 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
324 table to take advantage of the 16 priority levels available on Windows
325 2000 and XP. On NT4 there are only 7 priority levels, this is properly
326 supported by this new mapping.
328 2006-02-13 Nicolas Setton <setton@adacore.com>
330 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
331 (get_encoding): New subprogram. Extracts the encodings from an encoded
334 2006-02-13 Pascal Obry <obry@adacore.com>
335 Nicolas Roche <roche@adacore.com>
336 Arnaud Charlet <charlet@adacore.com>
338 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
340 (__gnat_try_lock): Add unicode support by using a specific section on
342 (__gnat_get_current_dir): Idem.
343 (__gnat_open_read): Idem.
344 (__gnat_open_rw): Idem.
345 (__gnat_open_create): Idem.
346 (__gnat_create_output_file): Idem.
347 (__gnat_open_append): Idem.
348 (__gnat_open_new): Idem.
349 (__gnat_file_time_name): Idem.
350 (__gnat_set_file_time_name): Idem.
352 (win32_no_block_spawn): Idem.
353 (__gnat_locate_exec_on_path): Idem.
354 (__gnat_opendir): New routine.
355 (__gnat_closedir): Idem.
356 (__gnat_readdir): Add new parameter length (pointer to int). Update
357 implementation to use it and add specific Win32 code for Unicode
359 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
360 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
361 (convert_addresses): Do not define this dummy routine on VMS.
363 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
364 runtime Unicode support will be activated.
365 (S2WS): String to Wide-String conversion. This version just copy a
366 string in non Unicode version.
367 (WS2S): Wide-String to String conversion. This version just copy a
368 string in non Unicode version.
370 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
371 (Open): Now import __gnat_opendir from adaint.c.
372 (Read): Change the implementation to support unicode characters. It is
373 not possible to use strlen() on Windows as this version supports only
374 standard ASCII characters. So the length of the directory entry is now
375 returned from the imported __gnat_readdir routine.
376 Update copyright notice.
378 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
379 (opendir): Moved to adaint.c.
381 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
382 (Get_Directory): Fix wrong indexing.
383 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
384 __gnat_getenv from env.c
385 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
388 * env.h, env.c: New file.
390 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
391 adaint.c by __gnat_getenv from env.c
393 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
394 adaint.c by __gnat_getenv from env.c
396 * Make-lang.in: Add env.o in the list of C object needed by gnat1
400 2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
401 Olivier Hainque <hainque@adacore.com>
402 Eric Botcazou <ebotcazou@adacore.com>
404 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
406 * gigi.h (value_factor_p): Add prototype and description, now public.
408 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
409 promotion for field with rep clause if the associated size was proven
411 Expand comments describing attempts to use a packable type.
412 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
413 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
414 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
415 necessary since these are not different types and pointers may
416 actually designate any subtype in this hierarchy.
417 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
418 discriminants but put them into record only if not Unchecked_Union;
419 pass flag to components_to_record showing Unchecked_Union.
420 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
421 components before variants; don't set TYPE_UNCHECKED_UNION_P.
422 (components_to_record): New argument UNCHECKED_UNION.
423 Remove special case code for Unchecked_Union and instead use main code
427 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
428 aligning variable with the expression being built, only its inner
431 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
432 emit_sequence_entry_statements.
433 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
434 (establish_gnat_vms_condition_handler): Move before
435 Subprogram_Body_to_gnu.
436 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
437 for a subprogram if it has a foreign convention or is exported.
438 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
439 substituted for a CONST_DECL.
440 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
441 Etype to assoc_to_constructor.
442 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
443 discriminants of Unchecked_Union.
444 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
445 don't need cluttering preprocessor directives.
446 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
447 condition handler as current in the compiled function.
448 (body_with_handlers_p): New function. Tell whether a given sequence of
449 statements node is attached to a package or subprogram body and involves
450 exception handlers possibly nested within inner block statements.
451 (emit_sequence_entry_statements): New function, to emit special
452 statements on entry of sequences when necessary. Establish GNAT
453 condition handler in the proper cases for VMS.
454 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
455 emit_sequence_entry_statements.
457 * utils2.c (find_common_type): If both input types are BLKmode and
458 have a constant size, use the smaller one.
459 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
462 * utils.c (value_factor_p): Make public, to allow uses from other gigi
464 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
465 (convert, case UNION_TYPE): Remove special treatment for unchecked
469 (update_pointer_to): Update variants of pointer types to
470 unconstrained arrays by attaching the list of fields of the main
473 2006-02-13 Arnaud Charlet <charlet@adacore.com>
474 Robert Dewar <dewar@adacore.com>
476 * a-exexpr.adb, a-exexpr-gcc.adb
477 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
478 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
479 Remove code unused for exception propagation for the compiler itself
480 from a-except.adb and update to still share separate packages.
482 * a-except.ads, a-except.adb: Ditto.
483 Add comments that this version is now used only by the compiler and
484 other basic tools. The full version that includes the Ada 2005 stuff
485 is in separate files a-except-2005.ads/adb. The reason is that we do
486 not want to cause bootstrap problems with compilers not recognizing
488 Add exception reason code PE_Implicit_Return
489 Add new exception reason code (Null Exception_Id)
491 * a-except-2005.adb, a-except-2005.ads: New files.
493 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
495 * s-wchcon.adb: New file.
497 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
498 (traceback.o deps): Likewise.
499 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
500 Activate build of GMEM instrumentation library on VMS targets.
501 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
502 Use a-except-2005.ads/adb for all run-time library builds unless
504 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
505 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
506 Use s-parame.adb on all native platforms.
507 Use s-parame-vxworks.adb on all vxworks platforms.
508 Add env.c env.h in LIBGNAT_SRCS
509 Add env.o in LIBGNAT_OBJS
510 (GNATMAKE_OBJS): Remove ctrl_c.o object.
511 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
512 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
513 supports VxWorks 6 RTPs.
514 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
515 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
517 * types.h, types.ads (Terminate_Program): New exception
518 Add comment on modifying multiple versions of a-except.adb when the
519 table of exception reasons is modified.
520 Add exception reason code PE_Implicit_Return
521 Add new exception reason code (Null Exception_Id)
523 * clean.adb (Initialize): Get the target parameters before checking
524 if target is OpenVMS. Move the OpenVMS specific code here from package
525 body elaboration code.
527 2006-02-13 Thomas Quinot <quinot@adacore.com>
528 Vincent Celier <celier@adacore.com>
529 Robert Dewar <dewar@adacore.com>
531 * ali-util.adb (Get_File_Checksum): Update to account for change in
532 profile of Initialize_Scanner.
534 * gprep.adb (Gnatprep): Update to account for change in profile of
536 (Process_One_File): Same.
538 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
539 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
540 that behaviour using the new Unit information recorded in the source
541 files table, rather than going through all units every time.
542 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
543 (Get_Source_Unit): Same.
545 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
546 change in profile of Initialize_Scanner.
547 (Prepare_To_Preprocess): Same.
549 * lib.ads: Fix typo in comment (templace -> template).
551 * prj-part.adb (Parse_Single_Project): Update to account for change in
552 profile of Initialize_Scanner.
554 * scn.adb (Initialize_Scanner): Account for change in profile of
555 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
556 Also record the association of the given Source_File_Index to the
557 corresponding Unit_Number_Type.
559 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
561 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
562 Remove Unit formal for generic scanner: this formal
563 is only relevant to Scn (the scanner instance used to parse Ada source
564 files), not to other instances. Update comment accordingly.
565 (Scan): Use new function Snames.Is_Keyword_Name.
567 * sinfo-cn.adb: Fix typo in comment.
569 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
572 * sinput.ads (Source_File_Record): New component Unit, used to capture
573 the unit identifier (if any) associated to a source file.
575 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
576 Unit in Source_File_Record.
578 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
579 in profile of Initialize_Scanner.
581 * scans.adb (Initialize_Ada_Keywords): New procedure
583 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
584 Ada keywords in the Namet table, without the need to call
587 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
588 (Is_Keyword_Name): New function
590 * snames.ads: Add subtype Configuration_Pragma_Names
591 Add pragma Ada_2005 (synonym for Ada_05)
592 (Is_Keyword_Name): New function
594 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
596 2006-02-13 Arnaud Charlet <charlet@adacore.com>
598 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
601 * a-stwima.adb (To_Set): Add extra check when N = 0.
603 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
605 2006-02-13 Arnaud Charlet <charlet@adacore.com>
607 * s-parame-mingw.adb, s-parame-linux.adb,
608 s-parame-solaris.adb: Removed, replaced by s-parame.adb
610 * s-parame-vxworks.ads: Fix typo.
612 * s-parame-vxworks.adb: New file.
614 * s-parame.adb: Version now used by all native platforms.
615 (Default_Stack_Size): Use 2 megs for default stack size and use
616 __gl_default_stack_size when available.
617 (Minimum_Stack_Size): Use 12K.
619 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
620 (Create_Task): Refine implementation taking advantage of the XP stack
621 size support. On XP, we now create the thread using the flag
622 STACK_SIZE_PARAM_IS_A_RESERVATION.
624 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
626 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
627 XP and 0 on older Windows versions.
629 * interfac-vms.ads: Removed, no longer used.
631 2006-02-13 Matthew Heaney <heaney@adacore.com>
633 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
634 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
635 a-cohase.adb: All explicit raise statements now include an exception
638 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
639 (Update_Element_Preserving_Key): renamed op to just Update_Element.
640 Explicit raise statements now include an exception message
642 * a-cihase.ads, a-cohase.ads: Removed comment.
644 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
645 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
646 a-szbzha.adb, a-szfzha.ads: New files.
648 2006-02-13 Matthew Heaney <heaney@adacore.com>
650 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
653 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
655 * lang.opt: Wvariadic-macros: New option.
656 Wold-style-definition: Likewise.
657 Wmissing-format-attribute: Likewise.
659 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
660 -Wold-style-definition and -Wmissing-format-attribute.
662 2006-02-13 Robert Dewar <dewar@adacore.com>
664 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
666 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
668 2006-02-13 Nicolas Roche <roche@adacore.com>
670 * a-envvar.adb, a-envvar.ads: New files.
672 2006-02-13 Douglas Rupp <rupp@adacore.com>
674 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
676 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
678 2006-02-13 Pat Rogers <rogers@adacore.com>
680 * a-rttiev.adb, a-rttiev.ads: New files.
682 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
684 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
685 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
687 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
689 2006-02-13 Robert Dewar <dewar@adacore.com>
691 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
692 sem_case.adb: Minor code reorganization (not Present should be No)
694 2006-02-13 Geert Bosch <bosch@adacore.com>
695 Gary Dismukes <dismukes@adacore.com>
697 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
698 0, since the lower bound of the actual string may be greater than one.
702 (Put): Fix condition to raise Layout_Error when invalid
705 2006-02-13 Vincent Celier <celier@adacore.com>
707 * back_end.adb (Scan_Compiler_Arguments): Check if
708 Search_Directory_Present is True and, if it is, add the argument in
709 the source search directory path.
711 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
712 Search_Directory_Present to True.
714 2006-02-13 Joel Brobecker <brobecke@adacore.com>
716 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
717 volatile, to tell the compiler to preserve this variable at any level
719 (Gen_Versions_Ada): Temporarily work around codegen bug.
721 2006-02-13 Vincent Celier <celier@adacore.com>
723 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
724 gcc to link with option -shared-libgcc.
725 (Gnatlink): Remove duplicate switches -shared-libgcc
727 2006-02-13 Robert Dewar <dewar@adacore.com>
729 * gnatvsn.ads (Current_Year): New constant, used to easily update
730 copyright on all GNAT tools.
732 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
735 2006-02-13 Robert Dewar <dewar@adacore.com>
737 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
738 after hyphen (small aesthetic change useful for a range of numbers
740 Suppress range checks for a couple of assignments which otherwise
741 cause validity checks with validity checking turned on.
743 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
744 Improvement in error message for object.
745 (Rep_Item_Too_Late): Remove '!' in warning message.
747 2006-02-13 Robert Dewar <dewar@adacore.com>
748 Eric Botcazou <ebotcazou@adacore.com>
750 * err_vars.ads: Suppress range checks for a couple of assignments
751 which otherwise cause validity checks with validity checking turned on.
754 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
755 Make message unconditional if it is a warning.
756 (Error_Msg_NEL): Always output warning messages.
757 Suppress range checks for a couple of assignments which otherwise
758 cause validity checks with validity checking turned on.
760 * errout.ads (Message Insertion Characters): Document that '!' is
761 implied by '?' in error messages.
763 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
764 (Gnat1drv): Use a goto to end of main subprogram instead of
765 Exit_Program (E_Success) so that finalization can occur normally.
767 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
769 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
772 2006-02-13 Vincent Celier <celier@adacore.com>
774 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
775 Unchecked_Conversion functions.
776 (Modification_Time): Use direct conversion of OS_Time to Calendar time
777 when OpenVMS returns False.
779 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
780 a-dirval.adb (OpenVMS): New Boolean function
782 2006-02-13 Ed Schonberg <schonberg@adacore.com>
783 Thomas Quinot <quinot@adacore.com>
785 * checks.adb (Build_Discriminant_Checks): If the expression being
786 checks is an aggregate retrieve the values of its discriminants to
787 generate the check, rather than creating a temporary and a reference
789 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
790 (Install_Null_Excluding_Check): Ditto
791 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
792 not for the renamed object, so that the actual itype is attached in the
795 2006-02-13 Robert Dewar <dewar@adacore.com>
796 Vincent Celier <celier@adacore.com>
798 * debug.adb: Eliminate numeric switches for binder/gnatmake
800 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
801 switches for the compiler.
802 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
803 (Scan_Make_Switches): When failing with an illegal switch, output an
804 error message with the full switch.
805 Eliminate numeric switches for binder/gnatmake
807 * switch.ads, switch.adb (Bad_Switch): New procedure
809 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
810 Remove 0-9 as debug flag character possibilities
811 -d is now controlling the primary stack size when its value is a
812 positive. Also add checks against invalid values, and support for kb,
813 mb. Ditto for -D switch.
815 2006-02-13 Robert Dewar <dewar@adacore.com>
816 Serguei Rybin <rybin@adacore.com>
818 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
819 save/restore routines.
820 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
821 were not always properly handled previously.
822 Since we are changing the tree format anyway, also get rid of the
823 junk obsolete Immediate_Errors flag.
824 (Tree_Read): Change the way of reading Tree_Version_String - now we
825 read the version string from the tree even if its length is not the
826 same as the length of the version string computed from Gnatvsn.
827 (Search_Directory_Present): New Boolean flag for the compiler.
828 Define Tree_Version_String as a dynamic string.
829 (Default_Stack_Size): new variable, used to handle switch -d.
832 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
834 Add pragma Ada_2005 (synonym for Ada_05)
835 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
836 were not always properly handled previously.
838 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
839 explicit Ada_95 to Ada_2005.
841 2006-02-13 Javier Miranda <miranda@adacore.com>
842 Robert Dewar <dewar@adacore.com>
843 Ed Schonberg <schonberg@adacore.com>
845 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
846 against errors in the source program: a private types for which the
847 corresponding full type declaration is missing and pragma CPP_Virtual
849 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
850 (Is_Known_Null): New flag
851 (Has_Pragma_Pure): New flag
852 (No_Return): Present in all entities, set only for procedures
853 (Is_Limited_Type): A type whose ancestor is an interface is limited if
854 explicitly declared limited.
855 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
856 entities. Only used for component marked Is_Tag. If present it stores
857 the Offset_To_Top function used to provide this value in tagged types
858 whose ancestor has discriminants.
860 * exp_ch2.adb: Update status of new Is_Known_Null flag
862 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
864 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
865 the categorization sense if Is_Pure was set by pragma Pure_Function.
867 2006-02-13 Quentin Ochem <ochem@adacore.com>
868 Olivier Hainque <hainque@adacore.com>
870 * bindusg.adb: Updated documentation for -d and -D switches.
872 * raise.h (__gnat_set_globals): added new parameter for
875 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
876 (__gnat_handle_vms_condition): Adjust context before raise.
877 (__gnat_install_handler): Restore the global vector setup for GCC
878 versions before 3.4, as the frame based circtuitry is not available
880 (__gnat_set_globals): added a parameter default_stack_size
881 (__gl_default_stack_size): new variable.
883 2006-02-13 Ed Schonberg <schonberg@adacore.com>
885 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
886 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
887 does not exist in the Ada RM.
888 (Compatible_Int_Bounds): Determine whether two integer range bounds
889 are of equal length and have the same start and end values.
890 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
891 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
892 aggregate when it is part of an object declaration.
893 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
894 constrains discriminants of its parent, add explicitly the discriminant
895 constraints of the ancestor by retrieving them from the
896 stored_constraint of the parent.
898 2006-02-13 Robert Dewar <dewar@adacore.com>
900 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
901 attribute Mechanism_Code is applied to renamed subprogram, modify
902 prefix to point to base subprogram.
903 Max/Min attributes now violate Restriction No_Implicit_Conditionals
905 * sinfo.ads: Document that Mechanism_Code cannot be applied to
906 renamed subprograms so that the front-end must replace the prefix
909 2006-02-13 Javier Miranda <miranda@adacore.com>
910 Gary Dismukes <dismukes@adacore.com>
912 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
913 availability of RE_Interface_Tag.
914 (Build_Initialization_Call): Fix wrong access to the discriminant value.
915 (Freeze_Record_Type): Do not generate the tables associated with
916 timed and conditional dispatching calls through synchronized
917 interfaces if compiling under No_Dispatching_Calls restriction.
918 When compiling for Ada 2005, for a nonabstract
919 type with a null extension, call Make_Controlling_Function_Wrappers
920 and insert the wrapper function declarations and bodies (the latter
921 being appended as freeze actions).
922 (Predefined_Primitive_Bodies): Do not generate the bodies of the
923 predefined primitives associated with timed and conditional
924 dispatching calls through synchronized interfaces if we are
925 compiling under No_Dispatching_Calls.
926 (Build_Init_Procedure): Use RTE_Available to check if a run-time
927 service is available before generating a call.
928 (Make_Controlling_Function_Wrappers): New procedure.
929 (Expand_N_Full_Type_Declaration): Create a class-wide master for
930 access-to-limited-interfaces because they can be used to reference
931 tasks that implement such limited interface.
932 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
933 procedure spec and body of the Offset_To_Top function that is generated
934 when the parent of a type with discriminants has secondary dispatch
936 (Init_Secondary_Tags): Handle the case in which the parent of the type
937 containing secondary dispatch tables has discriminants to generate the
938 correct arguments to call Set_Offset_To_Top.
939 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
941 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
942 Add Wide_[Wide_]Expanded_Name.
943 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
944 the same functionality of Get_Prim_Op_Address but applied to predefined
945 primitive operations because the pointers to the predefined primitives
946 are now saved in a separate table.
947 (Parent_Size): Modified to get access to the separate table of primitive
948 operations or the parent type.
949 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
950 functionality of Set_Prim_Op_Address but applied to predefined primitive
952 (Set_Signature): New subprogram used to store the signature of a DT.
953 (Displace): If the Offset_To_Top value is not static then call the
954 function generated by the expander to get such value; otherwise use
955 the value stored in the table of interfaces.
956 (Offset_To_Top): The type of the actual has been changed to Address to
957 give the correct support to tagged types with discriminants. In this
958 case this value is stored just immediately after the tag field.
959 (Set_Offset_To_Top): Two new formals have been added to indicate if the
960 offset_to_top value is static and hence pass this value to the run-time
961 to store it in the table of interfaces, or else if this value is dynamic
962 and then pass to the run-time the address of a function that is
963 generated by the expander to provide this value for each object of the
966 * rtsfind.ads (Default_Prin_Op_Count): Removed.
967 (Default_Prim_Op_Count): New entity
968 (Get_Predefined_Prim_Op_Address): New entity
969 (Set_Predefined_Prim_Op_Address): New entity
970 (RE_Set_Signature): New entity
972 2006-02-13 Thomas Quinot <quinot@adacore.com>
973 Ed Schonberg <schonberg@adacore.com>
975 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
976 Make_Adjust_Call done for a newly-allocated object.
978 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
979 in a subprogram are wrapped in a cleanup block, indicate that the
980 subprogram contains an inner block with an exception handler.
981 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
982 Adjust call is for a newly-allocated object. In that case we must not
983 assume that the finalization list chain pointers are correct (since they
984 come from a bit-for-bit copy of the original object's pointers) so if
985 the attach level would otherwise be zero (no change), we set it to 4
986 instead to cause the pointers to be reset to null.
988 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
989 reset chain pointers to null.
991 2006-02-13 Ed Schonberg <schonberg@adacore.com>
993 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
994 string, and the context requires a loop for the assignment (e.g.
995 because the left-hand side is packed), generate a unique name for the
996 temporary that holds the string, to prevent spurious name clashes.
998 2006-02-13 Ed Schonberg <schonberg@adacore.com>
999 Javier Miranda <miranda@adacore.com>
1000 Robert Dewar <dewar@adacore.com>
1001 Gary Dismukes <dismukes@adacore.com>
1003 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
1004 return unconstrained arrays.
1006 (Expand_Call): An indirect call through an access parameter of a
1007 protected operation is not a protected call.
1008 Add circuit to raise CE in Ada 2005 mode following call
1010 (Register_DT_Entry): Do nothing if
1011 the run-time does not give support to abstract interfaces.
1012 (Freeze_Subprogram): In case of dispatching operations, do not generate
1013 code to register the operation in the dispatch table if the source
1014 is compiled with No_Dispatching_Calls.
1015 (Register_Predefined_DT_Entry): Generate code that calls the new
1016 run-time subprogram Set_Predefined_Prim_Op_Address instead of
1017 Set_Prim_Op_Address.
1019 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
1020 on array assignments if the right-hand side is a function call that has
1021 been inlined. Check is performed on the assignment in the block.
1022 (Process_Bounds): If bounds and range are overloaded, apply preference
1023 rule for root operations to disambiguate, and diagnose true ambiguity.
1024 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
1025 a tag-indeterminate right-hand side even when Expander_Active is True.
1026 Needed to ensure that dispatching calls to T'Input are allowed and
1027 get the tag of the target class-wide object.
1029 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
1030 an inherited primitive operation that already overrides several
1031 abstract interface primitives. For transitivity, the new entity must
1032 also override all the abstract interface primitives covered by the
1033 inherited overriden primitive.
1034 Emit warning if new entity differs from homograph in same scope only in
1035 that one has an access parameter and the other one has a parameter of
1036 a general access type with the same designated type, at the same
1037 position in the signature.
1038 (Make_Inequality_Operator): Use source locations of parameters and
1039 subtype marks from corresponding equality operator when creating the
1040 tree structure for the implicit declaration of "/=". This does not
1041 change anything in behaviour except that the decoration of the
1042 components of the subtree created for "/=" allows ASIS to get the
1043 string images of the corresponding identifiers.
1044 (Analyze_Return_Statement): Remove '!' in warning message.
1045 (Check_Statement_Sequence): Likewise.
1046 (Analyze_Subprogram_Body): For an access parameter whose designated type
1047 is an incomplete type imported through a limited_with clause, use the
1048 type of the corresponding formal in the body.
1049 (Check_Returns): Implicit return in No_Return procedure now raises
1050 Program_Error with a compile time warning, instead of beging illegal.
1051 (Has_Single_Return): Function returning unconstrained type cannot be
1052 inlined if expression in unique return statement is not an identifier.
1053 (Build_Body_To_Inline): It is possible to inline a function call that
1054 returns an unconstrained type if all return statements in the function
1055 return the same local variable. Subsidiary procedure Has_Single_Return
1056 verifies that the body conforms to this restriction.
1058 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
1059 same type, and one of them is of an anonymous access type, convert
1060 the other operand to it, so that this is a valid binary operation for
1062 (Resolve_Type_Conversion): Handle subtypes of protected types and
1063 task types when accessing to the corresponding record type.
1064 (Resolve_Allocator): Add '\' in 2-line warning message.
1065 Remove '!' in warning message.
1066 (Resolve_Call): Add '\' in 2-line warning message.
1067 (Valid_Conversion): Likewise.
1068 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
1069 resulting type may be an access type with an implicit dereference.
1070 Obtain the proper component from the designated type.
1071 (Make_Call_Into_Operator): Handle properly a call to predefined equality
1072 given by an expanded name with prefix Standard, when the operands are
1073 of an anonymous access type.
1074 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
1075 Explicit_Dereference and Resolve_Selected_Component, to verify that the
1076 prefix of the expression is not of an incomplete type. Allows full
1077 diagnoses of all semantic errors.
1078 (Resolve_Actuals): If the actual is an allocator whose directly
1079 designated type is a class-wide interface we build an anonymous
1080 access type to use it as the type of the allocator. Later, when
1081 the subprogram call is expanded, if the interface has a secondary
1082 dispatch table the expander will add a type conversion to force
1083 the displacement of the pointer.
1084 (Resolve_Call): If a function that returns an unconstrained type is
1085 marked Inlined_Always and inlined, the call will be inlined and does
1086 not require the creation of a transient scope.
1087 (Check_Direct_Boolean_Op): Removed
1088 (Resolve_Comparison_Op): Remove call to above
1089 (Resolve_Equality_Op): Remove call to above
1090 (Resolve_Logical_Op): Inline above, since this is only call.
1091 (Valid_Conversion): Handle properly conversions between arrays of
1092 convertible anonymous access types.
1096 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
1097 the literal in an unchecked conversion, because GCC 4.x needs a static
1098 value for a string bound.
1100 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1101 Hristian Kirtchev <kirtchev@adacore.com>
1103 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
1104 components of the corresponding record, take into account component
1105 definitions that are access definitions.
1106 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
1107 procedure is not considered a dispatching call and will be expanded
1110 2006-02-13 Javier Miranda <miranda@adacore.com>
1112 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
1113 controlling argument of the dispatching call is an abstract interface
1114 class-wide type then we use it directly.
1115 Check No_Dispatching_Calls restriction.
1116 (Default_Prim_Op_Position): Remove the code that looks for the last
1117 entity in the list of aliased subprograms. This code was wrong in
1119 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
1120 when the source is compiled with the No_Dispatching_Calls restriction.
1121 (Init_Predefined_Interface_Primitives): No need to inherit primitives
1122 if we are compiling with restriction No_Dispatching_Calls.
1123 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
1124 subprograms if we are compiling under No_Dispatching_Calls restriction.
1125 (Make_DT): Generate a dispatch table with a single dummy entry if
1126 we are compiling with the No_Dispatching_Calls restriction. In
1127 addition, in this case we don't generate code that calls to the
1128 following run-time subprograms: Set_Type_Kind, Inherit_DT.
1129 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
1130 of this subprogram if compiling with the No_Dispatching_Calls
1132 (Expand_Type_Conversion): Instead of using the actual parameter,
1133 the argument passed as parameter to the conversion function was
1134 erroneously referenced by the expander.
1135 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
1136 Set_Predefined_Primitive_Op_Address and Set_Signature.
1137 (Expand_Dispatching_Call): Generate call to
1138 Get_Predefined_Prim_Op_Address for predefined primitives.
1139 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
1140 predefined primitives.
1141 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
1142 primitives we reserve one dummy entry to ensure that the tag does not
1143 point to some memory that is associated with some other object. In
1144 addition, remove all the old code that generated the assignments
1145 associated with the signature of the dispatch table and replace them
1146 by a call to the new subprogram Set_Signature.
1147 (Set_All_DT_Position): Change the algorithm because now we have a
1148 separate dispatch table associated with predefined primitive operations.
1149 (Expand_Interface_Conversion): In case of non-static offset_to_top
1150 add explicit dereference to get access to the object after the call
1151 to displace the pointer to the object.
1152 (Expand_Interface_Thunk): Modify the generation of the actual used
1153 in the calls to the run-time function Offset_To_Top to fulfil its
1155 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
1157 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1159 * exp_dist.adb (Copy_Specification): For access parameters, copy
1160 Null_Exclusion flag, which will have been set for stream subprograms
1163 2006-02-13 Pascal Obry <obry@adacore.com>
1165 * expect.c (__gnat_expect_portable_execvp): New implementation. The
1166 previous implementation was using the C runtime spawnve routine but
1167 the corresponding wait was using directly the Win32 API. This was
1168 causing some times a lock when waiting for an event using
1169 WaitForSingleObject in __gnat_waitpid. This new implementation uses
1170 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
1171 API fixes this problem.
1173 2006-02-13 Robert Dewar <dewar@adacore.com>
1175 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
1178 2006-02-13 Thomas Quinot <quinot@adacore.com>
1180 * exp_pakd.ads: Fix typos in comments.
1182 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
1183 array reference that is an explicit dereference, mark the converted
1184 (packed) array reference as analyzed to prevent a forthcoming
1185 reanalysis from resetting its type to the original (non-packed) array
1188 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1189 Javier Miranda <miranda@adacore.com>
1190 Eric Botcazou <ebotcazou@adacore.com>
1192 * exp_util.ads, exp_util.adb (Find_Prim_Op,
1193 Is_Predefined_Primitive_Operation): When
1194 searching for the predefined equality operator, verify that operands
1196 (Is_Predefined_Dispatching_Operation): Remove the code that looks
1197 for the last entity in the list of aliased subprograms. This code
1198 was wrong in case of renamings.
1199 (Set_Renamed_Subprogram): New procedure
1200 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
1201 Exp_Type constant computed when entering this subprogram.
1202 (Known_Null): New function
1203 (OK_To_Do_Constant_Replacement): New function
1204 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
1205 (Side_Effect_Free): An attribute reference 'Input is not free of
1206 side effect, unlike other attributes that are functions. (from code
1208 (Remove_Side_Effects): Expressions that involve packed arrays or records
1209 are copied at the point of reference, and therefore must be marked as
1210 renamings of objects.
1211 (Is_Predefined_Dispatching_Operation): Return false if the operation is
1212 not a dispatching operation.
1215 (Remove_Side_Effects): Lift enclosing type conversion nodes for
1216 elementary types in all cases.
1218 2006-02-13 Javier Miranda <miranda@adacore.com>
1220 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
1221 task types when accessing to the corresponding record type.
1222 Remove '!' in warning message.
1224 2006-02-13 Olivier Hainque <hainque@adacore.com>
1226 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
1227 to avoid useless and space inefficient overalignments on targets where
1228 Max_Alignment is larger than 16.
1230 2006-02-13 Pascal Obry <obry@adacore.com>
1232 * g-catiio.adb (Sec_Number): New type used to compute the number of
1233 seconds since 1-1-1970.
1234 (Image) [Natural]: The parameter was an Integer, as we can't deal with
1235 negative numbers (years, months...) it is better to have a Natural here.
1237 (Image) [Number]: Change parameter from Long_Integer to Number.
1238 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
1239 overflow for dates past year 2038.
1241 2006-02-13 Matthew Heaney <heaney@adacore.com>
1243 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
1246 2006-02-13 Arnaud Charlet <charlet@adacore.com>
1248 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
1250 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
1251 finalization can occur normally.
1253 2006-02-13 Vincent Celier <celier@adacore.com>
1255 * gnatcmd.adb (Rules_Switches): New table
1256 (Add_To_Rules_Switches): New procedure
1257 (GNATCmd): For command CHECK, put all options following "-rules" in the
1258 Rules_Switches table. Append these -rules switches after the -cargs
1261 2006-02-13 Robert Dewar <dewar@adacore.com>
1263 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
1264 These two cases were generating incorrect output, and if this unit
1265 was built with checks on, generated a discriminant mismatch constraint
1268 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1269 Robert Dewar <dewar@adacore.com>
1271 * lib-xref.adb (Get_Type_Reference): For a private type whose full
1272 view is an array type, indicate the component type as well, for
1273 navigation purposes.
1274 (Generate_Reference): Don't consider array ref on LHS to be a case
1275 of violating pragma Unreferenced.
1276 Do not give Ada 2005 warning except on real reference.
1278 2006-02-13 Vincent Celier <celier@adacore.com>
1280 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
1281 main source, add switch -mdebug-main=_ada_ so that the executable can
1282 be debugged by the standard VMS debugger.
1283 (Gnatmake): Set No_Main_Subprogram to True when there is no main
1284 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
1285 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
1286 of the last source, as the binding and linking phases are never
1288 Set all executable obsolete when rebuilding a library.
1290 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
1293 2006-02-13 Javier Miranda <miranda@adacore.com>
1297 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
1298 code to improve the error message reported when the program has
1299 declarations of abstract interface types and it is not compiled with
1301 (P_Access_Definition): Reorganize the code to improve the error
1302 message reported when the new Ada 2005 syntax for anonymous
1303 access types is used and the program is not compiled with the
1306 2006-02-13 Robert Dewar <dewar@adacore.com>
1308 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
1309 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
1312 2006-02-13 Javier Miranda <miranda@adacore.com>
1314 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
1315 against source containing syntax errors.
1317 2006-02-13 Vincent Celier <celier@adacore.com>
1319 * prj.adb (Reset): Initialize the first element of table Namings with
1320 the standard naming data.
1322 2006-02-13 Vincent Celier <celier@adacore.com>
1324 * prj.ads (Error_Warning): New enumeration type
1326 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
1327 unknown, use the location of the project to report the error.
1328 (When_No_Sources): New global variable
1329 (Report_No_Ada_Sources): New procedure
1330 (Check): New parameter When_No_Sources. Set value of global variable
1332 (Find_Sources): Call Report_No_Ada_Sources when appropriate
1333 (Get_Sources_From_File): Ditto
1334 (Warn_If_Not_Sources): Better warning messages indicating the unit name
1337 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
1338 Call Prj.Proc.Process with parameter When_No_Sources.
1340 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
1341 Call Recursive_Check with parameter When_No_Sources.
1342 (Recursive_Check): New parameter When_No_Sources. Call itself and
1343 Prj.Nmsc.Check with parameter When_No_Sources.
1344 (Process): New parameter When_No_Sources. Call Check with parameter
1346 (Copy_Package_Declarations): New procedure to copy renamed parameters
1347 and setting the location of the declared attributes to the location
1348 of the renamed package.
1349 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
1352 2006-02-13 Vincent Celier <celier@adacore.com>
1354 * prj-makr.adb (Make): Preserve the comments from the original project
1356 When removing nodes (attributes Source_Dirs, Source_Files,
1357 Source_List_File and package Naming), save the comments and attach the
1358 saved comments to the newly created nodes.
1359 Do not add a with clause for the naming package if one already exists.
1361 2006-02-13 Javier Miranda <miranda@adacore.com>
1362 Gary Dismukes <dismukes@adacore.com>
1363 Robert Dewar <dewar@adacore.com>
1365 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
1367 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
1368 aliased entities to look for the overriden abstract interface
1370 (Is_Interface_Subprogram): Complete documentation.
1371 (Check_Dispatching_Operation): Do not generate code to register the
1372 operation in the dispatch table if the source is compiled with
1373 restriction No_Dispatching_Calls.
1374 (Override_Dispatching_Operation): Check for illegal attempt to override
1375 No_Return procedure with procedure that is not No_Return
1376 (Check_Dispatching_Call): Suppress the check for an abstract operation
1377 when the original node of an actual is a tag-indeterminate attribute
1378 call, since the attribute, which must be 'Input, can never be abstract.
1379 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
1380 call to the Input attribute (even when rewritten).
1381 (Propagate_Tag): Augment comment to indicate the possibility of a call
1382 to an Input attribute.
1384 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
1385 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
1387 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
1388 No_Wide_Characters is no longer partition-wide
1389 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
1392 2006-02-13 Douglas Rupp <rupp@adacore.com>
1394 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
1396 2006-02-13 Javier Miranda <miranda@adacore.com>
1398 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
1399 handles default-initialized components to keep separate the management
1400 of this feature but also avoid the unrequired resolution and
1401 expansion of components that do not have partially initialized
1403 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
1404 (Check_Bounds): Likewise.
1405 (Check_Length): Likewise.
1407 2006-02-13 Javier Miranda <miranda@adacore.com>
1408 Ed Schonberg <schonberg@adacore.com>
1410 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
1411 abstract interface type call analyze_and_resolve to expand the type
1412 conversion into the corresponding displacement of the
1413 reference to the base of the object.
1414 (Eval_Attribute, case Width): For systems where IEEE extended precision
1415 is supported, the maximum exponent occupies 4 decimal digits.
1416 (Accessibility_Message): Add '\' in 2-line warning message.
1417 (Resolve_Attribute): Likewise.
1418 (case Attribute_Access): Significantly revise checks
1419 for illegal access-to-subprogram Access attributes to properly enforce
1420 the rules of 3.10.2(32/2).
1421 Diagnose use of current instance with an illegal attribute.
1423 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
1425 (Enclosing_Generic_Unit): New function to return a node's innermost
1426 enclosing generic declaration node.
1427 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
1428 (Type_Access_Level): The accessibility level of anonymous acccess types
1429 associated with discriminants is that of the current instance of the
1430 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
1431 (Compile_Time_Constraint_Error): Handle case of conditional expression.
1432 (Kill_Current_Values_For_Entity): New function
1433 (Enter_Name): Change formal type to Entity_Id
1435 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
1436 Ed Schonberg <schonberg@adacore.com>
1437 Gary Dismukes <dismukes@adacore.com>
1439 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
1440 Analyze_Compilation_Unit.
1441 Detect and warn on redundant with clauses detected in a package spec
1442 and/or body when -gnatwr is used.
1443 (Analyze_Context): Analyze config pragmas before other items
1444 (Install_Context_Items): Don't analyze config pragmas here
1445 (Install_Limited_Withed_Unit): Set limited entity of package in
1446 with_clause so that cross-reference information or warning messages on
1447 unused packages can be properly generated
1448 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
1449 has Error_Posted set. Prevent infinite loops in illegal programs.
1450 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
1451 to the point of the error test requiring the current unit to be private.
1452 This ensures that private with clauses are not exempted from the basic
1453 checking for being a descendant of the same library unit parent as a
1454 withed private descendant unit.
1455 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
1456 handle private with clauses properly, as well as to account for cases
1457 where the withed unit is a public descendant of a private ancestor
1458 (in which case the current unit must be a descendant of the private
1459 ancestor's parent). The spec comments were updated accordingly. Also,
1460 the old error message in this subprogram was replaced with error
1461 messages that mirror the errors tested and reported by
1462 Check_Private_Child_Unit.
1463 Parameter and variable names improved for readability.
1464 (Install_Limited_Context_Clauses): Remove test for a withed unit being
1465 private as the precondition for calling
1466 Check_Private_Limited_Withed_Unit since that subprogram has been
1467 revised to test public units as well as private units.
1469 2006-02-13 Thomas Quinot <quinot@adacore.com>
1470 Robert Dewar <dewar@adacore.com>
1471 Ed Schonberg <schonberg@adacore.com>
1472 Javier Miranda <miranda@adacore.com>
1474 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
1475 that Scope_Stack.First = 1.
1476 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1477 were not always properly handled previously.
1478 (Formal_Entity): Complete rewrite, to handle properly some complex case
1479 with multiple levels of parametrization by formal packages.
1480 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
1481 to the corresponding derived type declaration for proper semantics.
1483 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
1484 (Check_Component): Enforce restriction on components of
1485 unchecked_unions: a component in a variant cannot contain tasks or
1487 (Unchecked_Union): Allow nested variants and multiple discriminants, to
1489 Add pragma Ada_2005 (synonym for Ada_05)
1490 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
1491 were not always properly handled previously.
1492 Document that pragma Propagate_Exceptions has no effect
1493 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
1494 (Set_Convention_From_Pragma): Check that if a convention is
1495 specified for a dispatching operation, then it must be
1496 consistent with the existing convention for the operation.
1497 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
1498 longer required to specify an vtable-ptr component in the record. For
1499 compatibility reasons we leave the support for the previous definition.
1500 (Analyze_Pragma, case No_Return): Allow multiple arguments
1502 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
1503 non-overrideen inherited operation with a controlling result as
1504 illegal only its implicit declaration comes from the derived type
1505 declaration of its result's type.
1506 (Check_Possible_Deferred_Completion): Relocate the object definition
1507 node of the subtype indication of a deferred constant completion rather
1508 than directly analyzing it. The analysis of the generated subtype will
1509 correctly decorate the GNAT tree.
1510 (Record_Type_Declaration): Check whether this is a declaration for a
1511 limited derived record before analyzing components.
1512 (Analyze_Component_Declaration): Diagnose record types not explicitly
1513 declared limited when a component has a limited type.
1514 (Build_Derived_Record_Type): Code reorganization to check if some of
1515 the inherited subprograms of a tagged type cover interface primitives.
1516 This check was missing in case of a full-type associated with a private
1518 (Constant_Redeclaration): Check that the subtypes of the partial and the
1519 full view of a constrained deferred constant statically match.
1520 (Mentions_T): A reference to the current type in an anonymous access
1521 component declaration must be an entity name.
1522 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
1523 class_wide type to refer to full type, not to the incomplete one.
1524 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
1525 available. Required to give support to the certified run-time.
1526 (Analyze_Component_Declaration): In case of anonymous access components
1527 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
1528 (Process_Discriminants): For an access discriminant, use the
1529 discriminant specification as the associated_node_for_itype, to
1530 simplify accessibility checks.
1532 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1533 Javier Miranda <miranda@adacore.com>
1535 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
1536 abstract interpretations on an operator, remove interpretations that
1537 yield Address or a type derived from it, if one of the operands is an
1539 (Try_Object_Operation.Try_Primitive_Operation,
1540 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
1541 location when creating the new reference to a primitive or class-wide
1542 operation as a part of rewriting a subprogram call.
1543 (Try_Primitive_Operations): If context requires a function, collect all
1544 interpretations after the first match, because there may be primitive
1545 operations of the same type with the same profile and different return
1546 types. From code reading.
1547 (Try_Primitive_Operation): Use the node kind to choose the proper
1548 operation when a function and a procedure have the same parameter
1550 (Complete_Object_Operation): If formal is an access parameter and prefix
1551 is an object, rewrite as an Access reference, to match signature of
1552 primitive operation.
1553 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
1554 by an expanded name with prefix Standard, when the operands are of an
1555 anonymous access type.
1556 (Remove_Abstract_Operations): If the operation is abstract because it is
1557 inherited by a user-defined type derived from Address, remove it as
1558 well from the set of candidate interpretations of an overloaded node.
1559 (Analyze_Membership_Op): Membership test not applicable to cpp-class
1562 2006-02-13 Bob Duff <duff@adacore.com>
1564 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
1565 redundant use clauses.
1566 In particular, if the scope of two use clauses overlaps, but one is not
1567 entirely included in the other, we should not warn. This can happen
1568 with nested packages.
1569 (Analyze_Subprogram_Renaming): Protect the compiler against previously
1570 reported errors. The bug was reported when the compiler was built
1571 with assertions enabled.
1572 (Find_Type): If the node is a 'Class reference and the prefix is a
1573 synchronized type without a corresponding record, return the type
1576 2006-02-13 Javier Miranda <miranda@adacore.com>
1578 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
1579 if this is the full-declaration associated with a private declaration
1580 that implement interfaces, then the private type declaration must be
1582 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
1583 as aliased. The use of the 'access attribute is not available for such
1584 object (for this purpose the object should be explicitly marked as
1585 aliased, but being an anonymous type this is not possible).
1587 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1588 Robert Dewar <dewar@adacore.com>
1590 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
1591 compilation unit is an elaboration scope.
1592 (Add_Task_Proc): Add '\' in 2-line warning message.
1593 (Activate_All_Desirable): Deal with case of unit with'ed by parent
1595 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1596 Javier Miranda <miranda@adacore.com>
1598 * sem_type.adb (Write_Overloads): Improve display of candidate
1600 (Add_One_Interp): Do not add to the list of interpretations aliased
1601 entities corresponding with an abstract interface type that is an
1602 immediate ancestor of a tagged type; otherwise we have a dummy
1603 conflict between this entity and the aliased entity.
1604 (Disambiguate): The predefined equality on universal_access is not
1605 usable if there is a user-defined equality with the proper signature,
1606 declared in the same declarative part as the designated type.
1607 (Find_Unique_Type): The universal_access equality operator defined under
1608 AI-230 does not cover pool specific access types.
1609 (Covers): If one of the types is a generic actual subtype, check whether
1610 it matches the partial view of the other type.
1612 2006-02-13 Thomas Quinot <quinot@adacore.com>
1614 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
1615 line. This is necessary to allow In_Extended_Main_Unit to provide
1616 correct results for itypes while writing out expanded source.
1617 (Close_File): No need to update the source_index_table here since it's
1618 now done for each line.
1620 2006-02-13 Ed Schonberg <schonberg@adacore.com>
1621 Robert Dewar <dewar@adacore.com>
1623 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
1624 preserve the source unit where the itype is declared, and prevent a
1626 (Note_Implicit_Run_Time_Call): New procedure
1627 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
1630 * sprint.ads: Document use of $ for implicit run time routine call
1632 2006-02-13 Quentin Ochem <ochem@adacore.com>
1634 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
1637 2006-02-13 Bob Duff <duff@adacore.com>
1639 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
1640 Scan_Unsigned, so we do not scan leading blanks and sign twice.
1641 Integer'Value("- 5") and Integer'Value("-+5") now correctly
1642 raise Constraint_Error.
1644 * s-vallli.adb (Scan_Long_Long_Integer): Call
1645 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
1646 do not scan leading blanks and sign twice.
1647 Integer'Value("- 5") and Integer'Value("-+5") now correctly
1648 raise Constraint_Error.
1650 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
1651 Scan_Long_Long_Unsigned): Split out most of the processing from
1652 Scan_Long_Long_Unsigned out into
1653 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
1654 This prevents scanning leading blanks and sign twice.
1655 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
1658 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
1659 out most of the processing from Scan_Unsigned out into
1660 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
1661 This prevents scanning leading blanks and sign twice.
1663 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
1664 use with Modular'Value attribute.
1665 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
1668 2006-02-13 Robert Dewar <dewar@adacore.com>
1670 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
1672 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
1674 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
1675 (PPC VxWorks): Likewise.
1676 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
1677 (forced_callee): Make non-inlinable and non-pure.
1678 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
1680 2006-02-13 Arnaud Charlet <charlet@adacore.com>
1681 Ben Brosgol <brosgol@adacore.com>
1682 Robert Dewar <dewar@adacore.com>
1684 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
1686 Document that gnatbind -M option is for cross environments only.
1687 Added description of using gnatmem to trace gnat rtl allocs and deallocs
1688 Add note on use of $ to label implicit run time calls
1689 Add documentation for -gnatyI (check mode IN)
1690 Updated chapter on compatibility with HP Ada
1692 Ran spell and corrected errors
1693 Add documentation for gnatbind -d and rework documentation of -D
1695 Add subprogram/data elimination section.
1696 Minor editing of annex A.
1697 Add section for gnatcheck.
1698 Add documentation for restriction No_Dispatching_Calls
1699 Add documentation for pragma Ada_2005
1700 Remove mention of obsolete pragma Propagate_Exceptions
1701 Document that pragma Unreferenced can appear after DO in ACCEPT
1702 Clarify Pure_Function for library level units
1703 Mention Max/Min in connection with No_Implicit_Conditionals
1704 No_Wide_Characters restriction is no longer partition-wide
1705 Add a nice example for Universal_Literal_String attribute
1706 Document that pragma No_Return can take multiple arguments
1708 * ug_words: Added entry for gnatcheck
1710 * g-ctrl_c.ads (Install_Handler): Enhance comments
1712 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
1714 * g-trasym.ads: Add documentation on how to do off line symbolic
1715 traceback computation.
1717 * s-fatgen.adb: Add comments for Unaligned_Valid
1719 * stand.ads: Fix typo in comment
1721 2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1723 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
1725 2006-02-06 Roger Sayle <roger@eyesopen.com>
1727 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
1729 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1732 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
1733 implementation that calls __main.
1735 2006-01-25 Peter O'Gorman <peter@pogma.com>
1738 * Makefile.in (GCC_LINK): Remove quotes.
1739 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
1742 (powerpc-darwin): Pass -shared-libgcc when building shared library.
1744 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1747 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
1749 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1751 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
1753 2005-12-12 Arnaud Charlet <charlet@adacore.com>
1755 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
1758 2005-12-12 Arnaud Charlet <charlet@adacore.com>
1760 * Make-lang.in: Update dependencies
1762 2005-12-12 Arnaud Charlet <charlet@adacore.com>
1764 * Make-lang.in: Add rule for ada/exp_sel.o
1766 2005-12-12 Arnaud Charlet <charlet@adacore.com>
1768 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
1770 2005-12-09 Arnaud Charlet <charlet@adacore.com>
1772 * gnatvsn.ads (Library_Version): Bump to version 4.2
1773 (ASIS_Version_Number): Bumped.
1775 2005-12-09 Doug Rupp <rupp@adacore.com>
1777 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
1778 Ada bind file prefix on VMS from b$ to b__.
1779 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
1782 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
1783 Targparm.OpenVMS_On_Target.
1784 (Object_Suffix): Initialize with target object suffix.
1785 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
1787 * butil.adb: Change some Hostparm.OpenVMS checks to
1788 Targparm.OpenVMS_On_Target.
1790 * clean.adb: Change some Hostparm.OpenVMS checks to
1791 Targparm.OpenVMS_On_Target.
1792 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
1793 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
1794 Ada bind file prefix on VMS from b$ to b__.
1796 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
1797 --GCC so that Get_Target_Parameters can find system.ads.
1798 (Gnatlink): Call Get_Target_Parameters in mainline.
1799 Initialize standard packages for Targparm.
1800 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
1801 (Process_Args): Also Check for object files with target object
1803 (Make_Binder_File_Names): Create with target object extension.
1804 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
1807 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
1808 Targparm.OpenVMS_On_Target.
1809 ({declaration},Build_Library,Check_Library): Change Ada bind file
1810 prefix on VMS from b$ to b__.
1812 * osint-b.adb: Change some Hostparm.OpenVMS checks to
1813 Targparm.OpenVMS_On_Target.
1814 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
1817 * targext.c: New file.
1819 * Makefile.in: add support for vxworks653 builds
1820 (../../vxaddr2line): gnatlink with targext.o.
1821 (TOOLS_LIBS): Move targext.o to precede libgnat.
1822 (init.o, initialize.o): Minor clean up in dependencies.
1823 (GNATLINK_OBJS): Add targparm.o, snames.o
1824 Add rules fo building targext.o and linking it explicitly with all
1826 Also add targext.o to gnatlib.
1828 * Make-lang.in: Add rules for building targext.o and linking it in
1829 with gnat1 and gnatbind.
1830 Add entry for exp_sel.o.
1832 * osint.adb Change some Hostparm.OpenVMS checks to
1833 Targparm.OpenVMS_On_Target.
1834 (Object_File_Name): Use target object suffix.
1836 * osint.ads (Object_Suffix): Remove, no longer used.
1837 (Target_Object_Suffix): Initialize with target object suffix.
1839 * rident.ads: Add special exception to license.
1841 * targparm.adb (Get_Target_Parameters): Set the value of
1842 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
1844 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
1846 * targparm.ads: Add special exception to license.
1848 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
1850 (Copy_File): Make sure from file is closed if error on to file
1851 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
1853 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
1854 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
1856 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
1857 target object suffix.
1859 2005-12-09 Jose Ruiz <ruiz@adacore.com>
1860 Quentin Ochem <ochem@adacore.com>
1861 Florian Villoing <villoing@adacore.com>
1863 * a-taster.ads, a-taster.adb: New files.
1865 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
1866 link to the version that does nothing. This way the task termination
1867 routine is not executed twice for the environment task when finishing
1868 because of an unhandled exception.
1870 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
1871 handler because of an unhandled exception.
1873 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
1874 System.Tasking.Utilities instead of that in System.Tasking.Stages.
1876 * s-finimp.adb (initialization code): Modify the soft link for the
1877 finalization of the global list instead of Adafinal.
1879 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
1880 non-tasking version of the soft link for task termination. We do
1881 nothing since if we are using the non-tasking version it
1882 means that the task termination functionality is not used.
1883 (Null_Finalize_Global_List): Add this null version for the procedure
1884 in charge of finalizing the global list for controlled objects.
1885 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
1886 instead for handling run-time termination in a more flexible way.
1887 (Adafinal_NT): This new procedure will take care of finalizing the
1888 global list for controlled objects if needed, but no tasking
1891 * s-tarest.adb (Task_Lock): Do not try to lock again the
1892 Global_Task_Lock if we already own it. Otherwise, we get blocked in
1893 some run-time operations.
1894 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
1895 until all nested locks have been released.
1896 (Task_Wrapper): Call the fall-back task termination handler. It
1897 applies to all tasks but the environment task.
1898 (Finalize_Global_Tasks): Add the call for the task termination
1899 procedure for the environment task.
1900 (Task_Wrapper): suppress warnings around declaration of
1901 Secondary_Stack_Address.
1903 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
1904 moved to the Common_ATCB record.
1905 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
1907 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
1910 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
1911 Fall_Back_Handler, and Specific_Handler.
1913 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
1914 defined in Ada.Task_Termination, to avoid circular dependencies.
1915 (Termination_Handler): Redefine this type here, alredy defined in
1916 Ada.Task_Termination, for avoiding circular dependencies.
1917 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
1918 for storing task termination handlers. In addition,
1919 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
1920 Common_ATCB because it is used by both the regular and the restricted
1922 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
1923 Common_ATCB because it is used by both the regular and the restricted
1925 (Common_ATCB): Added a dynamic task analyzer field.
1927 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
1928 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
1929 (Task_Wrapper): Call the task termination handler. It applies to all
1930 tasks but the environment task.
1931 (Finalize_Global_Tasks): Call the task termination procedure for the
1932 environment task. The call to Finalize_Global_List is now performed
1933 using the soft links mechanism.
1934 (Task_Wrapper): added dynamic stack analysis.
1936 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
1937 potentially blocking operations has been moved from
1938 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
1939 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
1940 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
1941 this run-time check.
1943 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
1944 of task termination procedure.
1945 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
1946 link for the task termination procedure.
1948 * bindusg.adb: (Bindusg): Added documentation for -u option.
1950 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
1951 (Get_Main_C): Add handling of dynamic stack analysis.
1952 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
1954 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
1955 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
1956 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
1958 * opt.ads: Added flags used by dynamic stack measurement.
1959 (Max_Line_Length): Remove (not used anymore)
1961 * s-io.ads, s-io.adb (Standard_Error): new subprogram
1962 (Standart_Output): new subprogram
1963 (Set_Output): new subprogram
1964 (Put): now uses the value of Current_Out to know if the output has to be
1965 send to stderr or stdout.
1967 * s-stausa.ads: Complete implementation.
1969 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
1971 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
1972 list of Ada 05 files.
1973 (GNAT Library Units): Add AltiVec files.
1975 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
1976 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
1977 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
1979 2005-12-09 Nicolas Setton <setton@adacore.com>
1981 * adaint.c (__gnat_locate_regular_file): Return immediately if
1984 2005-12-09 Javier Miranda <miranda@adacore.com>
1985 Hristian Kirtchev <kirtchev@adacore.com>
1987 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
1988 to the specification because the frontend generates code that uses this
1990 (Set_Interface_Table): Add missing assertion.
1991 Update documentation describing the run-time structure.
1992 (Displace): New subprogram that displaces the pointer to the object
1993 to reference one of its secondary dispatch tables.
1994 (IW_Membership): Modified to use the new table of interfaces.
1995 (Inherit_TSD): Modified to use the new table of interfaces.
1996 (Register_Interface_Tag): Use the additional formal to fill the
1997 contents of the new table of interfaces.
1998 (Set_Interface_Table): New subprogram that stores in the TSD the
1999 pointer to the table of interfaces.
2000 (Set_Offset_To_Top): Use the additional formal to save copy of
2001 the offset value in the table of interfaces.
2002 Update structure of GNAT Primary and Secondary dispatch table diagram.
2003 Add comment section on GNAT dispatch table prologue.
2004 (Offset_To_Signature): Update the constant value of the Signature field.
2005 (Dispatch_Table): Update comment on hidden fields in the prologue.
2006 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
2007 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
2008 the type of formal parameter T to Tag, introduce additional assertions.
2009 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
2011 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
2013 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
2014 in all the calls to Expand_Interface_Thunk. Instead of referencing the
2015 record component containing the tag of the secondary dispatch table we
2016 have to use the Offset_To_Top run-time function to get this information;
2017 otherwise if the pointer to the base of the object has been displace
2018 we get a wrong value if we use the 'position attribute.
2020 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
2021 all the calls to Expand_Interface_Thunk.
2022 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
2023 interfaces; hence the call to Set_Interface_Table was clearly wrong.
2024 (Collect_All_Interfaces): Modify the internal subprogram Collect to
2025 ensure that the interfaces implemented by the ancestors are placed
2026 at the header of the generated list.
2027 (Expand_Interface_Conversion): Handle the case in which the displacement
2028 associated with the interface conversion is not statically known. In
2029 this case we generate a call to the new run-time subprogram Displace.
2030 (Make_DT): Generate and fill the new table of interfaces.
2031 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
2032 Get_Tagged_Kind and Set_Tagged_Kind.
2033 (Tagged_Kind): New function that determines the tagged kind of a type
2034 with respect to limitedness and concurrency and returns a reference to
2036 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
2037 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
2038 primary dispatch table for a type.
2039 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
2040 secondary dispatch table respectively of a tagged type.
2042 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
2043 (Expand_Interface_Conversion): New subprogram to indicate if the
2044 displacement of the type conversion is statically known.
2045 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
2047 * rtsfind.ads (RE_Offset_To_Top): New entity
2048 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
2049 accessible to users.
2050 (Re_Displace): New entity
2051 (RE_Interface_Data): New entity
2052 (RE_Set_Interface_Data): New_Entity
2053 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
2054 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
2055 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
2056 RE_TK_Tagged, RE_TK_Task.
2058 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
2059 Init_Secondary_Tags_Internal to allow its use with interface types and
2060 also to generate the code for the new additional actual required
2061 by Set_Offset_To_Top.
2062 (Build_Init_Statements): In case of components associated with abstract
2063 interface types there is no need to generate a call to its IP.
2064 (Freeze_Record_Type): Generate Select Specific Data tables only for
2066 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
2067 the bodies and specifications of the predefined primitive operations
2068 dealing with dispatching selects and abort, 'Callable, 'Terminated only
2069 for concurrent types.
2071 * exp_sel.ads, exp_sel.adb: New files.
2073 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
2074 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
2075 properly protected objects and attach handler in the case of the
2077 Move embeded package Select_Expansion_Utilities into a separate external
2079 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
2080 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
2081 (Build_K, Build_S_Assignment): New subprograms, part of the select
2082 expansion utilities.
2083 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
2084 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
2085 where the trigger is a dispatching procedure of a limited tagged type.
2087 2005-12-09 Olivier Hainque <hainque@adacore.com>
2089 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
2090 pointer initialization values. Make a SAVE_EXPR instead. Add comments
2091 about the use and expansion of SAVE_EXPRs in the various possible
2092 renaming handling cases.
2093 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
2094 abusing DECL_FCONTEXT.
2096 2005-12-09 Matthew Heaney <heaney@adacore.com>
2098 * a-convec.adb (Merge): Added assertions to check whether vector params
2101 * a-coinve.adb (Merge): Added assertions to check whether vector params
2104 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
2106 (Cursor'Read): raises PE
2108 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
2109 to its default value.
2111 * a-cihama.adb: Manually check whether cursor's key and elem are
2114 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
2115 (Merge): Assert that target and source lists are in order
2116 (Swap): Declare non-const temporaries, to pass to Splice
2118 * a-cdlili.ads: (Splice): Changed param name and param mode
2120 * a-cdlili.adb: (Splice): Changed param name and param mode
2121 (Merge): Assert that target and source lists are in order
2122 (Swap): Declare non-const temporaries, to pass to Splice
2124 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
2125 (Write): declare Stream param as not null
2127 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
2128 an exception message.
2130 2005-12-09 Thomas Quinot <quinot@adacore.com>
2131 Robert Dewar <dewar@adacore.com>
2133 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
2134 which is the absolute maximum length we can support.
2136 * frontend.adb: For the processing of configuration pragma files,
2137 remove references to Opt.Max_Line_Length, which is not checked anymore.
2139 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
2142 * scn.adb, scng.adb:
2143 Always check line length against the absolute supported maximum,
2144 Hostparm.Max_Line_Length.
2146 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
2147 value for the maximum line length is Max_Line_Length (not
2148 Column_Number'Last).
2149 Minor error msg update
2150 (Set_Style_Check_Options): New interface returning error msg
2151 Minor code reorganization (processing for 'M' was out of alpha order)
2153 * switch-c.adb: New interface for Set_Style_Check_Options
2155 * stylesw.ads (Set_Style_Check_Options): New interface returning error
2158 2005-12-09 Javier Miranda <miranda@adacore.com>
2160 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
2161 with IP subprogram were only supported if there were limited types.
2163 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
2164 records with IP subprogram were only supported if there were limited
2167 2005-12-09 Olivier Hainque <hainque@adacore.com>
2168 Eric Botcazou <ebotcazou@adacore.com>
2170 * trans.c (tree_transform, emit_check): Adjust calls to
2171 build_call_raise, passing the now expected GNAT_NODE argument.
2173 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
2174 source line information than what the current global locus indicates
2177 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
2178 field has overflowed.
2179 (build_call_raise): Add a GNAT_NODE argument to convey better source
2180 line information than what the current global locus indicates when
2182 (build_component_ref): Adjust call to build_call_raise.
2184 2005-12-09 Pascal Obry <obry@adacore.com>
2186 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
2187 the iterator is quitting iteration on parent directory.
2189 2005-12-09 Javier Miranda <miranda@adacore.com>
2191 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
2192 and the assignment to a class-wide object, before the assignment we
2193 generate a run-time check to ensure that the tag of the Target is
2194 covered by the tag of the source.
2196 2005-12-09 Robert Dewar <dewar@adacore.com>
2198 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
2199 parameter in call to Image_Wide_Character.
2201 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
2202 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
2203 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
2204 annoying FFFE/FFFF inconsistency.
2206 2005-12-09 Robert Dewar <dewar@adacore.com>
2207 Javier Miranda <miranda@adacore.com>
2208 Ed Schonberg <schonberg@adacore.com>
2210 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
2212 (Find_Interface): New subprogram that given a tagged type and one of its
2213 component associated with the secondary table of an abstract interface
2214 type, return the entity associated with such abstract interface type.
2215 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
2216 base type to create anonymous subtype, because entity may be a locally
2217 declared subtype or generic actual.
2218 (Find_Interface): New subprogram that given a tagged type and one of its
2219 component associated with the secondary table of an abstract interface
2220 type, return the entity associated with such abstract interface type.
2222 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
2223 conversion cannot be handled at compile time. In this case we pass this
2224 information to the expander to generate the appropriate code.
2226 2005-12-09 Robert Dewar <dewar@adacore.com>
2227 Ed Schonberg <schonberg@adacore.com>
2228 Gary Dismukes <dismukes@adacore.com>
2229 Javier Miranda <miranda@adacore.com>
2230 Hristian Kirtchev <kirtchev@adacore.com>
2232 * einfo.adb (Itype_Printed): New flag
2233 (Is_Limited_Type): Derived types do not inherit limitedness from
2234 interface progenitors.
2235 (Is_Return_By_Reference_Type): Predicate does not apply to limited
2238 * einfo.ads (Itype_Printed): New flag
2239 Move Is_Wrapper_Package to proper section
2240 Add missing Inline for Is_Volatile
2242 * output.ads, output.adb (Write_Erase_Char): New procedure
2243 (Save/Restore_Output_Buffer): New procedures
2244 (Save/Restore_Output_Buffer): New procedures
2246 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
2247 Add missing support for anonymous access type
2248 (Write_Id): Insert calls to Write_Itype
2249 (Write_Itype): New procedure to output itypes
2251 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
2252 use of "limited" in declaration.
2254 * sinfo.ads, sinfo.adb:
2255 Formal derived types can carry an explicit "limited" indication.
2257 * sem_ch3.adb: Add with and use of Targparm.
2258 (Create_Component): If Frontend_Layout_On_Target is True and the
2259 copied component does not have a known static Esize, then reset
2260 the size and positional fields of the new component.
2261 (Analyze_Component_Declaration): A limited component is
2262 legal within a protected type that implements an interface.
2263 (Collect_Interfaces): Do not add to the list the interfaces that
2264 are implemented by the ancestors.
2265 (Derived_Type_Declaration): If the parent of the full-view is an
2266 interface perform a transformation of the tree to ensure that it has
2267 the same parent than the partial-view. This simplifies the job of the
2268 expander in order to generate the correct object layout, and it is
2269 needed because the list of interfaces of the full-view can be given in
2271 (Process_Full_View): The parent of the full-view does not need to be
2272 a descendant of the parent of the partial view if both parents are
2274 (Analyze_Private_Extension_Declaration): If declaration has an explicit
2275 "limited" the parent must be a limited type.
2276 (Build_Derived_Record_Type): A derived type that is explicitly limited
2277 must have limited ancestor and progenitors.
2278 (Build_Derived_Type): Ditto.
2279 (Process_Full_View): Verify that explicit uses of "limited" in partial
2280 and full declarations are consistent.
2281 (Find_Ancestor_Interface): Remove function.
2282 (Collect_Implemented_Interfaces): New procedure used to gather all
2283 implemented interfaces by a type.
2284 (Contain_Interface): New function used to check whether an interface is
2286 (Find_Hidden_Interface): New function used to determine whether two
2287 lists of interfaces constitute a set equality. If not, the first
2288 differing interface is returned.
2289 (Process_Full_View): Improve the check for the "no hidden interface"
2290 rule as defined by AI-396.
2292 2005-12-09 Robert Dewar <dewar@adacore.com>
2294 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
2295 types, not on record subtypes.
2296 (Freeze_Entity): Code cleanup. Add barrier to the loop
2297 that generates the references for primitive operations. This allows to
2298 remove an unnecessary exception handler.
2299 Code reformatting and comment clean ups.
2301 2005-12-09 Vincent Celier <celier@adacore.com>
2303 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
2304 If GNAT CHECK is called with a project file, but with no
2305 source on the command line, call gnatcheck with all the compilable
2306 sources of the project.
2307 Take into account the new command Check, for gnatcheck. Treat as for
2308 other ASIS tools: take into account project, specific package Check and
2310 For ASIS tools, add the switches in package Compiler for
2311 the invocation of the compiler.
2313 * prj-attr.adb: Add package Check and its attributes
2315 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
2317 * vms_conv.adb (Initialize): Change Params of command Check to
2319 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
2320 Add data for new command Check
2322 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
2324 Add qualifiers for Check command options
2325 (Command_Type): New command Check
2327 2005-12-09 Thomas Quinot <quinot@adacore.com>
2329 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
2330 command line switch overruns the output buffer.
2332 2005-12-09 Robert Dewar <dewar@adacore.com>
2334 * sem_prag.adb: Processing for new pragma Complete_Representation
2335 (Analyze_Pragma, case Debug): Implement two argument form.
2337 * par-prag.adb: Entry for new pragma Complete_Representation
2338 (Prag, case Debug): Recognize two argument form of pragma Debug
2339 New interface for Set_Style_Check_Options.
2341 * sem_ch13.adb: Implement new pragma Complete_Representation.
2343 * snames.adb, snames.ads, snames.h: Entry for new pragma
2344 Complete_Representation.
2346 2005-12-09 Gary Dismukes <dismukes@adacore.com>
2348 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
2349 available user-specified stream attributes on limited parameters to
2350 also test the type directly rather than only its underlying type (for
2351 Ada 95) and, in the case of Ada 2005, to check that the user-specified
2352 attributes are visible at the point of the subprogram declaration.
2353 For Ada 2005, the error message is modified to indicate that the
2354 type's stream attributes must be visible (again, only for -gnat05).
2356 2005-12-09 Ed Schonberg <schonberg@adacore.com>
2358 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
2359 anonymous access types.
2361 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
2362 matching of anonymous access types and anonymous access to subprogram
2363 types. 'R'M 4.9.1 (2/2).
2365 2005-12-09 Ed Schonberg <schonberg@adacore.com>
2367 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
2368 rule prematurely when operands are universal, remaining ambiguities
2369 will be removed during resolution.
2372 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
2373 that are Ada 2005 functions.
2374 (Has_Abstract_Interpretation): Subsidiary to
2375 Remove_Conversions, to remove ambiguities caused by abstract operations
2376 on numeric types when operands are universal.
2378 2005-12-09 Robert Dewar <dewar@adacore.com>
2380 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
2381 for case where spec is categorized.
2383 2005-12-09 Javier Miranda <miranda@adacore.com>
2385 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
2386 types use the corresponding record type. This was not needed before
2387 the implementation of Ada 2005 synchronized types because
2388 concurrent types were never tagged types in Ada 95.
2390 2005-12-09 Ed Schonberg <schonberg@adacore.com>
2392 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
2393 first subtype of the type of the expression to verify that it is a
2396 2005-12-09 Robert Dewar <dewar@adacore.com>
2398 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
2401 2005-12-09 Quentin Ochem <ochem@adacore.com>
2402 Robert Dewar <dewar@adacore.com>
2403 Ed Falis <falis@adacore.com>
2404 Florian Villoing <villoing@adacore.com>
2405 Thomas Quinot <quinot@adacore.com>
2406 Arnaud Charlet <charlet@adacore.com>
2408 * gnat_ugn.texi: Created section "Stack Related Tools"
2409 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
2410 "Stack Related Tools"
2411 Added subsection "Static Stack Usage Analysis"
2412 Added subsection "Dynamic Stack Usage Analysis"
2413 Include documentation of itypes in sprint listing (-gnatG)
2414 Documented gnatbind -D switch (default sec stack size for fixed sec
2416 Added Interrupt_State and Persistent_BSS to list of configuration
2418 Add missing doc for maximum value of nnn in -gnatyMnnn
2420 * gnat_rm.texi: Document the AltiVec binding.
2421 Add documentation for pragma Complete_Representation
2422 Shortened an overly long line (> 79 chars)
2423 Clarify documentation of unchecked conversion in implementation
2425 Document two argument form of pragma Debug
2427 * types.ads (Column_Number): Update documentation.
2429 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
2430 library level Finalize_Storage_Only objects (these are not attached to
2431 any finalization list).
2433 * system-mingw.ads: (Underlying_Priorities): Update comment.
2435 2005-12-09 Robert Dewar <dewar@adacore.com>
2437 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
2438 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
2439 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
2440 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
2441 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
2442 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
2443 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
2444 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
2447 2005-12-09 Robert Dewar <dewar@adacore.com>
2449 * s-vaflop-vms-alpha.adb: (Ne_F): New function
2450 (Ne_G): New function
2452 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
2454 (Rewrite_Comparison): Handle case where operation is not a comparison
2455 and ignore, and also handle type conversion case.
2457 2005-12-09 Thomas Quinot <quinot@adacore.com>
2459 * exp_aggr.ads: Fix typo in comment.
2460 ???-mark Convert_Aggr_In_Assignment as needing documentation.
2462 2005-12-09 Gary Dismukes <dismukes@adacore.com>
2464 * layout.adb: Replace various uses of byte by storage unit throughout.
2465 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
2466 static size, convert to storage units before returning, to conform to
2469 2005-12-09 Matthew Gingell <gingell@adacore.com>
2471 * g-exctra.ads: Fix typo in comment.
2473 2005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2475 * utils.c: Minor reformatting.
2477 2005-12-09 Robert Dewar <dewar@adacore.com>
2480 Further comment fixes to make the status of the default file clear
2482 * s-bitops.adb: Clarify comment for Bits_Array
2484 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2486 * Make-lang.in (ada.install-normal): Remove.
2488 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2490 * Make-lang.in: Remove all dependencies on s-gtype.
2492 2005-12-05 Richard Guenther <rguenther@suse.de>
2494 * utils.c (convert): Use fold_convert where appropriate.
2496 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
2498 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
2501 2005-12-02 Richard Guenther <rguenther@suse.de>
2503 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
2505 2005-12-01 Roger Sayle <roger@eyesopen.com>
2507 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
2510 2005-11-23 Laurent GUERBY <laurent@guerby.net>
2512 * mlib-prj.adb (Build_Library): Initialize Delete.
2514 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
2516 * socket.c: Add extern int h_errno for rtems since networking header
2517 files are not available at this point in a tool bootstrap. Newlib
2518 only has basic C library header files.
2520 2005-11-19 Richard Guenther <rguenther@suse.de>
2521 Roger Sayle <roger@eyesopen.com>
2524 * misc.c (internal_error_function): Don't use vsprintf to format
2525 the error message text, instead use pp_format_text and the new
2526 pretty printer APIs. This allows handling of %qs, %w, etc.
2528 2005-11-18 Laurent GUERBY <laurent@guerby.net>
2531 * Makefile.in: Use s-auxdec-empty for RTEMS.
2533 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2536 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
2537 a temporary if taking the address of something that is neither
2538 reference, declaration, or constant, since the gimplifier
2539 can't handle that case.
2541 2005-11-17 Laurent GUERBY <laurent@guerby.net>
2544 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
2546 2005-11-16 Richard Guenther <rguenther@suse.de>
2548 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
2550 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
2553 * raise-gcc.c: Add missing stdarg.h include.
2555 2005-11-16 Richard Guenther <rguenther@suse.de>
2557 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
2558 (ada/misc.o): Likewise.
2560 2005-11-14 Thomas Quinot <quinot@adacore.com>
2562 * g-soccon.ads: Minor reformatting. Update comments.
2564 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
2565 gain visibility on the declaration of struct timeval.
2567 * g-soccon-freebsd.ads,
2568 g-soccon-darwin.ads,
2573 g-soccon-solaris.ads,
2576 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
2578 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
2579 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
2580 g-soccon-linux-x86.ads: New files.
2582 * g-socthi-mingw.adb:
2583 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
2585 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
2586 (time_t, suseconds_t): New types constructed to match the tv_sec
2587 and tv_usec fields of C struct timeval.
2588 (Timeval): Construct structure in terms of the new types.
2589 (Host_Errno): New function (imported from socket.c), returns last hosts
2592 * g-socthi-vxworks.adb: Add error handling circuitry.
2594 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
2595 components of struct timeval.
2596 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
2597 (Check_Selector): In error conditions, clear internal socket sets to
2598 avoid a memory leak.
2599 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
2600 Send_Timeout, Receive_Timeout.
2602 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
2603 the tv_sec and tv_usec fields of C struct timeval.
2604 (Timeval): Construct structure in terms of the new types.
2605 (Host_Errno): New function (imported from socket.c), returns last hosts
2608 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
2609 hosts database last error code.
2611 * gen-soccon.c: Complete value expansion should not be performed on
2612 TARGET, as it has the form of a math expression, and some components
2613 may be platform-defined macros.
2614 For VxWorks, generate the OK and ERROR values.
2615 New constants giving the sizes of the components of C struct timeval.
2617 2005-11-14 Robert Dewar <dewar@adacore.com>
2618 Ed Schonberg <schonberg@adacore.com>
2622 * types.ads: Include All_Checks in Suppress_Array
2624 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
2625 not(a=b), since we no longer do this rewriting, and hence it is not
2627 (Elaboration_Checks_Suppressed): Add special casing to
2628 deal with different cases of static and dynamic elaboration checks (all
2629 checks does not count in the first case, but does in the second).
2630 (Expr_Known_Valid): Do not assume that the result of any arbitrary
2631 function call is valid, since this is not the case.
2632 (Ensure_Valid): Do not apply validity check to a real literal
2633 in a universal or fixed context
2635 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
2636 elementary types using the operator in standard. It is cleaner not to
2637 modify the programmers intent, especially in the case of floating-point.
2638 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
2639 it did not matter because we always rewrote a/=b to not(a=b).
2640 (Expand_Allocator_Expression): For an allocator expression whose nominal
2641 subtype is an unconstrained packed type, convert the expression to its
2642 actual constrained subtype.
2643 Implement warning for <= or >= where < or > not possible
2644 Fix to Vax_Float tests (too early in many routines, causing premature
2645 Vax_Float expansions.
2647 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
2648 to be used with packages and generic packages as well as with
2650 (Suppress): Set All_Checks, but not Elaboration_Check, for case
2651 of pragma Suppress (All_Checks)
2652 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
2653 a string literal for precise control over warnings.
2654 Avoid raise of pragma in case of unrecognized pragma and just return
2657 * sem_prag.ads: Minor reformatting
2659 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
2660 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
2661 Switch. Do not handle any exception.
2662 Include -gnatwx as part of -gnatg (warn on redundant parens)
2663 Allow optional = after -gnatm
2664 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
2665 longer sets Elaboration_Checks.
2666 Code to set warning mode moved to Sem_Warn
2667 so that it can be shared by pragma processing.
2669 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
2672 * s-taprop-solaris.adb:
2673 Change some <= to =, to avoid new warning
2675 * a-exexda.adb, prj-proc.adb:
2676 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
2677 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
2679 2005-11-14 Robert Dewar <dewar@adacore.com>
2681 * exp_vfpt.adb: Handle /= case
2682 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
2683 so that we do not get duplicate scaling for fixed point conversions.
2685 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
2687 2005-11-14 Matthew Gingell <gingell@adacore.com>
2689 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
2690 Increase default priority on Lynx from 15 to 17, and meet the Ada
2691 requirement that Default_Priority be ((Priority'First +
2692 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
2694 2005-11-14 Vincent Celier <celier@adacore.com>
2696 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
2697 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2698 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
2699 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
2700 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
2701 mlib-tgt-lynxos.adb (DLL_Prefix): New function
2703 2005-11-14 Doug Rupp <rupp@adacore.com>
2705 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
2708 2005-11-14 Arnaud Charlet <charlet@adacore.com>
2710 * s-traces-default.adb, s-trafor-default.ads,
2711 s-tratas-default.adb: Fix compilation errors.
2713 2005-11-14 Jose Ruiz <ruiz@adacore.com>
2715 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
2716 raising the exception so the memory used is freed.
2718 2005-11-14 Arnaud Charlet <charlet@adacore.com>
2720 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
2721 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
2722 (convert_address): Update comments and list of platforms using this.
2724 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
2727 2005-11-14 Pascal Obry <obry@adacore.com>
2728 Vincent Celier <celier@adacore.com>
2730 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
2733 * memroot.adb: Remove redundant with/use clause on
2734 System.Storage_Elements.
2736 2005-11-14 Arnaud Charlet <charlet@adacore.com>
2738 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
2739 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
2740 related code to a-exexpr.adb
2741 (Save_Occurrence_And_Private): Move GCC EH related code to
2743 (Raise_Current_Excep): Add new variable Id with pragma
2744 volatile, to ensure that the variable lives on stack.
2746 * a-exexpr-gcc.adb, raise-gcc.c: New file.
2748 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
2750 Move GCC EH related code to a-exexpr-gcc.adb
2752 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
2754 Split the Linux version of g-soccon into separate variants for 32 and 64
2756 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
2757 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
2758 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
2759 of host variable $(RANLIB_FLAGS).
2760 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
2761 Code clean up: remove unused/obsolete targets.
2762 (EH_MECHANISM): New variable introduced to differenciate between the
2763 two EH mechanisms statically.
2764 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
2765 (LIBGNAT_OBJS): Add raise-gcc.o
2766 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
2767 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
2768 supports VxWorks 6 RTPs.
2769 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
2770 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
2772 * raise.c: Move all GCC EH-related routines to raise-gcc.c
2774 2005-11-14 Jose Ruiz <ruiz@adacore.com>
2776 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
2777 deferral level, when abort is not allowed, to a later stage (the
2779 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
2780 it will not get changed by the generated code. It was previously done
2783 2005-11-14 Thomas Quinot <quinot@adacore.com>
2784 Olivier Hainque <hainque@adacore.com>
2785 Eric Botcazou <ebotcazou@adacore.com>
2788 Factor common code to build a storage type for an unconstrained object
2789 from a fat or thin pointer type and a constrained object type.
2790 (annotate_value): Handle BIT_AND_EXPR.
2791 (annotate_rep): Don't restrict the back annotation of inherited
2792 components to the type_annotate_only case.
2793 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
2794 we are not defining the type.
2795 <E_Record_Type>: Likewise.
2796 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
2797 to get advantage of the new maybe_stabilize_reference interface, to
2798 ensure that what we reference is indeed stabilized instead of relying
2799 on assumptions on what the stabilizer does.
2800 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
2801 type imported through a limited_with clause, use its non-limited view.
2802 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
2804 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
2805 of #if sections + explicit comparisons of convention identifiers.
2806 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
2807 before early-returning for certain types when code generation is
2809 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
2810 nullification of gnu_expr we do for objects with address clause and
2811 that we are not defining.
2812 (elaborate_expression_1): Do not create constants when creating
2813 variables needed by the debug info: the dwarf2 writer considers that
2814 CONST_DECLs is used only to represent enumeration constants, and emits
2816 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
2817 object with an address clause into an indirect reference, drop the
2818 initializing expression.
2820 (STACK_CHECK_BUILTIN): Delete.
2821 (STACK_CHECK_PROBE_INTERVAL): Likewise.
2822 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
2823 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
2824 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
2825 corresponding to the renamed object as ignored for debugging purposes.
2827 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
2828 related): For a prefix that is a dereference of a fat or thin pointer,
2829 if there is an actual subtype provided by the front-end, use that
2830 subtype to build an actual type with bounds template.
2831 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
2832 is provided by the front-end, use that subtype to compute the size of
2833 the deallocated object.
2834 (gnat_to_gnu): When adding a statement into an elaboration procedure,
2835 check for a potential violation of a No_Elaboration_Code restriction.
2836 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2837 with extra arguments to control whether to recurse through non-values
2838 and to let the caller know if the stabilization has succeeded.
2839 (gnat_stabilize_reference): Now a simple wrapper around
2840 maybe_stabilize, for common uses without restriction on lvalues and
2841 without need to check for the success indication.
2842 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
2843 pass false instead of 0 as the FORCE argument which is a bool.
2844 (Identifier_to_gnu): Remove checks ensuring that an renamed object
2845 attached to a renaming pointer has been properly stabilized, as no such
2846 object is attached otherwise.
2847 (call_to_gnu): Invoke create_var_decl to create the temporary when the
2848 function uses the "target pointer" return mechanism.
2849 Reinstate conversion of the actual to the type of the formal
2850 parameter before any other specific treatment based on the passing
2851 mechanism. This turns out to be necessary in order for PLACEHOLDER
2852 substitution to work properly when the latter type is unconstrained.
2854 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
2856 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
2857 with extra arguments to control whether to recurse through non-values
2858 and to let the caller know if the stabilization has succeeded.
2860 * utils2.c (gnat_build_constructor): Only sort the fields for possible
2861 static output of record constructor if all the components are constant.
2862 (gnat_build_constructor): For a record type, sort the list of field
2863 initializers in increasing bit position order.
2864 Factor common code to build a storage type for an unconstrained object
2865 from a fat or thin pointer type and a constrained object type.
2866 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
2867 types variants, and process special cases of VIEW_CONVERT expressions
2868 as their NOP_EXPR counterpart to ensure we get to the
2869 CORRESPONDING_VARs associated with CONST_DECls.
2870 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
2871 on the right-hand side.
2873 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
2875 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
2876 are converting back to its original type.
2877 (convert) <JM input>: Fallthrough regular conversion code instead of
2878 extracting the object if converting to a type variant.
2879 (create_var_decl): When a variable has an initializer requiring code
2880 generation and we are at the top level, check for a potential violation
2881 of a No_Elaboration_Code restriction.
2882 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
2883 SIZE and SIZE_UNIT which we need for later back-annotations.
2884 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
2885 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
2886 is an unchecked union.
2887 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
2888 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
2889 main variant, just replace the VIEW_CONVERT_EXPR.
2890 <UNION_TYPE>: Revert 2005-03-02 change.
2892 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
2894 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
2896 2005-11-14 Matthew Heaney <heaney@adacore.com>
2898 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
2899 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
2900 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
2901 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
2902 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
2903 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
2904 Compiles against the spec for ordered maps described in sections
2905 A.18.6 of the most recent (August 2005) AI-302 draft.
2907 2005-11-14 Olivier Hainque <hainque@adacore.com>
2909 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
2910 to ensure bias adjustments take place when need be and to prevent
2911 occurrences of intermediate overflows.
2913 2005-11-14 Matthew Gingell <gingell@adacore.com>
2914 Olivier Hainque <hainque@adacore.com>
2916 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
2919 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
2920 tracebacks on ia64 HP-UX and provide explanatory comment.
2921 Enable backtraces on ia64 GNU/Linux.
2922 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
2923 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
2925 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
2926 Javier Miranda <miranda@adacore.com>
2928 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
2929 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
2930 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
2931 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
2933 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
2934 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
2937 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
2938 subprogram that generates the external name associated with a
2939 secondary dispatch table.
2940 (Get_Secondary_DT_External_Name): New subprogram that generates the
2941 external name associated with a secondary dispatch table.
2943 2005-11-14 Emmanuel Briot <briot@adacore.com>
2945 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
2946 line in the ALI file to include both an instantiation reference, and a
2949 2005-11-14 Vincent Celier <celier@adacore.com>
2951 * clean.adb (Check_Project): Look for Ada code in extending project,
2952 even if Ada is not specified as a language.
2953 Use new function DLL_Prefix for DLL_Name
2954 (Clean_Interface_Copy_Directory): New procedure
2955 (Clean_Library_Directory): New procedure
2956 (Clean_Directory): Remove procedure, no longer used
2957 (Clean_Project): Do not delete any file in an externally built project
2959 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
2960 directory of an extending project, even when there are no Ada source
2962 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
2963 (Set_Ada_Paths.Add.Recursive_Add): Ditto
2965 * mlib-prj.adb (Check_Library): For all library projects, get the
2966 library file timestamp.
2967 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
2968 (Build_Library): Use new function DLL_Prefix for the DLL_Name
2969 (Clean): Remove procedure, no longer used
2970 (Ultimate_Extension_Of): New function
2971 (Build_Library): When cleaning the library directory, only remove an
2972 existing library file and any ALI file of a source of the project.
2973 When cleaning the interface copy directory, remove any source that
2974 could be a source of the project.
2976 * prj.ads, prj.adb (Project_Empty): Add values of new components
2977 Library_TS and All_Imported_Projects.
2978 (Project_Empty): Add values for new components of Project_Data:
2979 Library_ALI_Dir and Display_Library_ALI_Dir
2981 * prj-attr.adb: New project level attribute name Library_ALI_Dir
2983 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
2984 attribute Library_ALI_Dir.
2985 (Check_Library_Attributes): The library directory cannot be the same as
2986 any source directory of the project tree.
2987 (Check_Stand_Alone_Library): The interface copy directory cannot be
2988 the same as any source directory of the project tree.
2990 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
2991 all temporary files.
2993 2005-11-14 Robert Dewar <dewar@adacore.com>
2994 Ed Schonberg <schonberg@adacore.com>
2996 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
2997 (Check_Elab_Call): A call within a protected body is never an
2998 elaboration call, and does not require checking.
2999 (Same_Elaboration_Scope): Take into account protected types for both
3001 (Activate_Elaborate_All_Desirable): New procedure
3003 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
3006 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
3007 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
3009 * lib-writ.ads, lib-writ.adb:
3010 Implement new AD/ED for Elaborate_All/Elaborate desirable
3011 Use new Elaborate_All_Desirable flag in N_With_Clause node
3013 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
3014 N_Free_Statement nodes.
3015 Define new class N_Subprogram_Instantiation
3016 Add Elaborate_Desirable flag to N_With_Clause node
3017 Add N_Delay_Statement (covering two kinds of delay)
3019 * debug.adb: Introduce d.f flag for compiler
3020 Add -da switch for binder
3022 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3023 Cyrille Comar <comar@adacore.com>
3025 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
3026 for task component, in the case of a limited aggregate. The enclosed
3027 object declaration will create it earlier. Otherwise, in the case of a
3028 nested aggregate, the object may appear in the wrong scope.
3029 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
3030 (Gen_Assign): If the component being assigned is an array type and the
3031 expression is itself an aggregate, wrap the assignment in a block to
3032 force finalization actions on the temporary created for each row of the
3034 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
3035 structures are initialized after all discriminants are set so that
3036 they can be accessed even when their offset is dynamic.
3038 2005-11-14 Robert Dewar <dewar@adacore.com>
3039 Hristian Kirtchev <kirtchev@adacore.com>
3041 * sem_attr.adb: Implement Machine_Rounding attribute
3042 (Analyze_Access_Attribute): The access attribute may appear within an
3043 aggregate that has been expanded into a loop.
3044 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
3045 'Terminated whenever the prefix is of a task interface class-wide type.
3046 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
3047 the prefix is of a task interface class-wide type.
3049 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
3052 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
3053 Remove pragma Inline for [Unaligned_]Valid.
3054 Add comments that Valid routines do not work for Vax_Float
3056 * exp_attr.adb: Implement Machine_Rounding attribute
3058 * snames.h: Add entry for Machine_Rounding attribute
3060 2005-11-14 Javier Miranda <miranda@adacore.com>
3061 Robert Dewar <dewar@adacore.com>
3062 Hristian Kirtchev <kirtchev@adacore.com>
3064 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
3065 and related): For a prefix that is an explicit dereference of an
3066 access to unconstrained packed array type, annotate the dereference
3067 with an actual subtype so GIGI can make a correct size computation.
3068 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
3069 'Unrestricted_Access, if the designated type is an interface we
3070 add a type conversion to force the displacement of the pointer
3071 to the secondary dispatch table.
3072 Use Universal_Real instead of Long_Long_Float when we need a high
3073 precision float type for the generated code (prevents gratuitous
3074 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
3075 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
3076 'Terminated for task interface class-wide objects. Generate a call to
3077 the predefined dispatching routine used to retrieve the _task_id from
3078 a task corresponding record.
3079 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
3081 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
3082 (Check_Dispatching_Operation): Protect the frontend againts
3083 previously detected errors.
3085 * Makefile.rtl: Add new instantiations of system.fat_gen
3087 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
3088 Change name of instantiated package for better consistency
3089 with newly added system.fat_gen instantiations.
3091 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
3092 s-fvagfl.ads: New files.
3094 2005-11-14 Cyrille Comar <comar@adacore.com>
3095 Thomas Quinot <quinot@adacore.com>
3097 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
3098 assignment of a value of a tagged type that has been rewritten to a
3099 block statement, it is known by construction that no checks are
3100 necessary for the statements within the block: analyze it with checks
3102 (Expand_N_If_Statement): When killing a dead then-branch in an
3103 if-statement that has elsif_parts, recompute the Current_Value node
3104 for any entity whose value is known from the condition of the first
3106 (Expand_N_Return_Statement): When returning a mutable record, convert
3107 the return value into its actual subtype in order to help the backend
3108 to return the actual size instead of the maximum. This is another
3109 aftermath of not returning mutable records on the sec-stack anymore.
3111 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
3112 handling of error msg for suspicious reverse range iteration.
3113 (Check_Possible_Current_Value_Condition): Move declaration from body to
3114 spec, to allow this subprogram to be called from exp_ch5.
3116 2005-11-14 Thomas Quinot <quinot@adacore.com>
3118 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
3119 generate a set of nested array aggregates instead of a single flat
3120 aggregate for multi-dimensional arrays.
3122 2005-11-14 Pascal Obry <obry@adacore.com>
3124 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
3125 by spawnve is a process handle, no need to convert. Add a parameter
3126 close to control wether the process handle must be closed.
3127 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
3128 a process handle, not need to convert.
3129 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
3131 * g-expect.adb: (Kill): Document the new close parameter.
3132 (Close): Do not release the process handle in the kill there as
3133 waitpid() is using it.
3134 (Send_Signal): Release the process handle.
3136 2005-11-14 Robert Dewar <dewar@adacore.com>
3138 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
3139 need a high precision float type for the generated code (prevents
3140 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3143 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
3144 need a high precision float type for the generated code (prevents
3145 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
3147 (Expand_Width_Attribute): In configurable run-time, the attribute is not
3148 allowed on non-static enumeration subtypes. Force a load error to emit
3149 the correct diagnostic.
3151 2005-11-14 Thomas Quinot <quinot@adacore.com>
3152 Robert Dewar <dewar@adacore.com>
3153 Ed Schonberg <schonberg@adacore.com>
3155 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
3156 subtype to compute the size of the designated object at run-time,
3157 create such a subtype and store it in the Actual_Designated_Subtype
3158 attribute of the N_Free_Statement.
3159 Generate itype for classwide designated object in both cases of
3160 user-specified storage pool: specific and class-wide, not only in the
3162 Raise CE when trying to set a not null access type object to null.
3163 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
3164 an explicit loop, because freeze nodes make its position variable.
3166 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
3169 2005-11-14 Javier Miranda <miranda@adacore.com>
3171 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
3172 Build_Stream_Procedure): Add the null-excluding attribute to the first
3174 This has no semantic meaning under Ada95 mode but it is a
3175 requirement under Ada05 mode.
3177 * par-ch3.adb (P_Access_Definition): Addition of warning message if
3178 the null exclusion is used under Ada95 mode
3179 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
3180 (P_Access_Definition): Remove assertion that forbids the use of
3181 the null-exclusion feature in Ada95.
3183 2005-11-14 Robert Dewar <dewar@adacore.com>
3185 * impunit.adb: Exclude container helper units not intended for use by
3188 2005-11-14 Ed Schonberg <schonberg@adacore.com>
3190 * freeze.adb (Freeze_Entity): For an access formal that is an access
3191 to subprogram, freeze the anonymous subprogram type at the same time,
3192 to prevent later freezing in the wrong scope, such as the enclosing
3194 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
3195 subprogram whenever available.
3197 2005-11-14 Arnaud Charlet <charlet@adacore.com>
3200 * gnatvsn.ads (Library_Version): Bump to 4.1
3202 2005-11-14 Robert Dewar <dewar@adacore.com>
3204 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
3205 Storage_Offset to avoid wrap around causing invalid results.
3207 2005-11-14 Pascal Obry <obry@adacore.com>
3209 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
3211 (Scan_Bind_Arg): Fail with an error message if -M option is used
3212 on a native compiler.
3214 2005-11-14 Robert Dewar <dewar@adacore.com>
3215 Vincent Celier <celier@adacore.com>
3217 * gprep.adb: Implement -C switch to scan comments
3219 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
3221 * scans.ads: Comment updates (including new use of Tok_Comment in
3224 * opt.ads: Add documentation for flags that are used by gprmake,
3225 currently and in the next version of gprmake.
3226 (Verbosity_Level): New variable
3227 Add Replace_In_Comments switch
3229 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
3231 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
3233 2005-11-14 Arnaud Charlet <charlet@adacore.com>
3235 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
3236 message, friendlier.
3238 2005-11-14 Robert Dewar <dewar@adacore.com>
3240 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
3242 2005-11-14 Doug Rupp <rupp@adacore.com>