1 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
3 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
4 (fdesc_type_node): Define.
5 (null_fdesc_node): Likewise.
6 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
7 uses descriptors for vtables and the type comes from a dispatch table,
8 return the descriptor type.
9 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
10 uses descriptors for vtables and the type comes from a dispatch table,
11 build a descriptor in the static case and copy the existing one in the
13 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
14 the type is a pointer-to-subprogram coming from a dispatch table,
15 return the null descriptor.
16 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
17 vtables, the source type is the descriptor type and the target type
18 is a pointer type, first build the pointer.
19 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
20 build the descriptor type and the null descriptor.
22 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
24 * decl.c (prepend_attributes): Fix typo.
25 * trans.c (Pragma_to_gnu): Likewise.
26 * utils.c (gnat_genericize): Likewise.
28 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
29 Richard Kenner <kenner@adacore.com>
31 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
32 * decl.c (gnat_to_gnu_entity): Adjust for above change.
33 <E_Record_Type>: Try to get a better form of the component for
34 packing, even if it has an integral mode.
35 <E_Record_Subtype>: Likewise.
36 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
37 exception suppressing the final conversion between record types.
39 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
41 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
42 alignment for space, promote the alignment of non-scalar variables with
43 no size and alignment.
44 * gigi.h (gnat_types_compatible_p): Declare.
45 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
46 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
47 * utils.c (gnat_types_compatible_p) : New predicate.
48 (convert): Use it throughout to test for cases where a mere view
49 conversion is sufficient.
50 * utils2.c (build_binary_op): Minor tweaks.
51 (build_unary_op): Likewise.
53 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
55 * decl.c (adjust_packed): Expand comment.
57 2008-04-08 Arnaud Charlet <charlet@adacore.com>
59 * s-tasuti.ads: Use Task_Address instead of System.Address.
61 * makeutl.adb (Path_Or_File_Name): New function
63 * nlists.ads, itypes.ads: Update comments.
65 * s-crtl.ads (malloc32, realloc32): New functions.
67 * s-auxdec.ads (Short_Address_Size): New constant.
69 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
71 * s-ststop.ads, s-ststop.adb: New file.
73 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
76 2008-04-08 Pascal Obry <obry@adacore.com>
78 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
79 (Stop_Bits_Number): New type.
80 (Parity_Check): Likewise.
81 (Set): Add parameter to set the number of stop bits and
82 the parity. Parameter timeout is now a duration instead
86 Implement the stop bits and parity support for GNU/Linux.
87 Fix handling of timeout, it must be given in tenth of seconds.
90 Implement the stop bits and parity support for Windows.
91 Use new s-win32.ads unit instead of declaring Win32 services
92 directly into this body.
93 Update handling of timeout as now a duration.
95 * s-win32.ads, s-winext.ads: New files.
97 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
98 Arnaud Charlet <charlet@adacore.com>
100 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
102 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
103 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
105 * s-osinte-lynxos-3.ads,
106 (Alternate_Stack): Remove when not needed. Simplify declaration
108 (Alternate_Stack_Size): New constant.
110 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
111 'Unrestricted_Access.
113 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
114 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
115 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
116 s-osinte-solaris.ads, s-osinte-vms.ads
117 (SA_ONSTACK): New constant.
118 (stack_t): New record type.
119 (sigaltstack): New imported function.
120 (Alternate_Stack): New imported variable.
121 (Alternate_Stack_Size): New constant.
123 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
125 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
126 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
127 s-taspri-vms.ads (Task_Address): New subtype of System.Address
128 (Task_Address_Size): New constant size of System.Address
129 (Alternate_Stack_Size): New constant.
131 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
132 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
133 Establish the alternate stack if the platform makes use of n alternate
134 signal stack for stack overflows.
135 (Create_Task): Take into account the alternate stack in the stack size.
136 (Initialize): Save the address of the alternate stack into the ATCB for
137 the environment task.
138 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
140 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
142 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
144 * s-intman-posix.adb:
145 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
146 alternate signal stack for stack overflows.
148 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
149 x86-64, adjust the saved value of the stack pointer if the signal was
150 raised by a stack checking probe.
151 (HP-UX section): Use global __gnat_alternate_stack as signal handler
152 stack and only for SIGSEGV.
153 (Linux section): Likewise on x86 and x86-64.
155 (__gnat_map_signal): Now static.
156 (__gnat_error_handler): Not static any more.
157 (__gnat_adjust_context_for_raise): New function. Signal context
158 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
159 propagation circuitry.
160 (__gnat_error_handler): Second argument of a sigaction handler is a
161 pointer, not an int, and is unused.
162 Adjust signal context before mapping to exception.
163 Install signal handlers for LynxOS case.
165 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
166 (Task_Id): Set size to Task_Address_Size
167 (To_Task_id): Unchecked convert from Task_Address vice System.Address
168 (To_Address): Unchecked convert to Task_Address vice System.Address
170 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
171 address into the ATCB if the platform makes use of an alternate signal
172 stack for stack overflows.
173 (Free_Task): Add call to Finalize_Attributes_Link.
174 Add argument Relative_Deadline to pass the value specified for
175 the task. This is not yet used for any target.
177 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
178 the value specified for the task.
180 2008-04-08 Arnaud Charlet <charlet@adacore.com>
182 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
183 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
184 s-vxwext-rtp.adb): New files.
186 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
187 Minor updates to accomodate changes above.
189 2008-04-08 Pascal Obry <obry@adacore.com>
191 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
192 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
193 Use new s-win32.ads unit instead of declaration
194 from s-osinte-mingw.ads.
196 * s-osinte-mingw.ads:
197 Move all non tasking based interface to s-win32.ads.
199 * s-osprim-mingw.adb:
200 Remove duplicated declarations and use s-win32.ads
203 2008-04-08 Vincent Celier <celier@adacore.com>
204 Arnaud Charlet <charlet@adacore.com>
206 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
207 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
208 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
209 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
210 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
212 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
213 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
214 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
215 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
216 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
217 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
218 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
219 mlib-tgt-specific-mingw.adb: New names.
222 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
224 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
225 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
226 Minor updates for VMS
230 2008-04-08 Thomas Quinot <quinot@adacore.com>
232 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
233 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
234 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
235 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
236 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
237 ASCII.NUL throughout.
239 2008-04-08 Arnaud Charlet <charlet@adacore.com>
240 Matthew Heaney <heaney@adacore.com>
242 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
245 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
246 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
247 to convention for non-RM specs.
248 Add descriptive header, and documented each operation
249 document each operation
251 2008-04-08 Robert Dewar <dewar@adacore.com>
252 Bob Duff <duff@adacore.com>
253 Gary Dismukes <dismukes@adacore.com>
254 Ed Schonberg <schonberg@adacore.com>
256 * alloc.ads: Add entries for Obsolescent_Warnings table
258 * einfo.ads, einfo.adb: Minor reformatting.
259 (Is_Discriminal): New subprogram.
260 (Is_Prival): New subprogram.
261 (Is_Protected_Component): New subprogram.
262 (Is_Protected_Private): Removed.
263 (Object_Ref, Set_Object_Ref): Removed.
264 (Prival, Set_Prival): Change assertion.
265 (Privals_Chain, Set_Privals_Chain): Removed.
266 (Prival_Link, Set_Prival_Link): New subprogram.
267 (Protected_Operation, Set_Protected_Operation): Removed.
268 (Protection_Object, Set_Protection_Object): New subprogram.
269 (Write_Field17_Name): Remove case for Object_Ref.
270 (Write_Field20_Name): Add case for Prival_Link.
271 (Write_Field22_Name): Remove case for Protected_Operation,
273 Add case for Protection_Object.
274 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
276 (Overlays_Constant): New flag
277 (Is_Constant_Object): New predicate
278 (Is_Standard_Character_Type): New predicate
279 (Optimize_Alignment_Space): New flag
280 (Optimize_Alignment_Time): New flag
281 (Has_Postconditions): New flag
282 (Obsolescent_Warrning): Field removed
283 (Spec_PPC_List): New field
284 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
285 subprograms to get and set the relative deadline associated to a task.
287 * exp_attr.adb (May_Be_External_Call): Account for the case where the
288 Access attribute is part of a named parameter association.
289 (Expand_Access_To_Protected_Op): Test for the attribute occurring
290 within an init proc and use that directly as the scope rather than
291 traversing up to the protected operation's enclosing scope. Only apply
292 assertion on Is_Open_Scopes in the case the scope traversal is done.
293 For the init proc case use the address of the first formal (_init) as
294 the protected object reference.
295 Implement Invalid_Value attribute
296 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
297 contents of the dispatch table there is no need to duplicate the
298 itypes associated with record types (i.e. the implicit full view
300 Implement Enum_Val attribute
301 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
302 within _Postconditions procedure
303 (Expand_N_Attribute_Reference, case Result): Implement new attribute
305 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
306 a return statement calls a function that is not available in
307 configurable runtime.
308 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
309 (Expand_Non_Function_Return): Generate call to _Postconditions proc
310 (Expand_Simple_Function_Return): Ditto
312 * frontend.adb: Add call to Sem_Aux.Initialize
314 * sem_aux.ads, sem_aux.adb: New file.
316 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
317 Add new Pragma_Relative_Deadline.
318 Add support for pragmas Check and Check_Policy
320 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
321 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
322 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
323 missing check because they are not allowed in CPP tagged types.
324 Add Sure parameter to Note_Possible_Modification calls
325 Add implementation of Invalid_Value attribute
326 Implement new attribute Has_Tagged_Values
327 Implement Enum_Val attribute
328 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
329 generated attributes.
330 (Analyze_Attribute, case Result): If prefix of the attribute is
331 overloaded, it always resolves to the enclosing function.
332 (Analyze_Attribute, case Result): Properly deal with analysis when
333 Postconditions are not active.
334 (Resolve_Attribute, case Result): Properly deal with appearence during
336 Add processing for attribute Result
338 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
340 (Analyze_Subprogram_Body): Install private_with_clauses when the body
342 (Check_Inline_Pragma): recognize an inline pragma that appears within
343 the subprogram body to which it applies.
344 (Analyze_Function_Return): Check that type of the expression of a return
345 statement in a function with a class-wide result is not declared at a
346 deeper level than the function.
347 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
348 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
349 user- defined operators.
350 (Install_Formals): Moved to spec to allow use from Sem_Prag for
351 analysis of precondition/postcondition pragmas.
352 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
353 Last_Formal, along with lots of comments on what this is about
354 (Analyze_Subprogram_Body): Fix case where we move entities from the
355 spec to the body when there are no body entities (now possible with
356 precondition and postcondition pragmas).
357 (Process_PPCs): New procedure
358 (Analyze_Subprogram_Body): Add call to Process_PPCs
360 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
362 (Pop_Scope): Restore Check_Policy_List on scope exit
363 (Push_Scope): Save Check_Policy_List on scope entry
364 Change name In_Default_Expression => In_Spec_Expression
365 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
366 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
367 (Analyze_Object_Renaming): Allow 'Reference as object
368 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
369 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
370 of restriction identifier.
371 Add Sure parameter to Note_Possible_Modication calls
373 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
374 Don't check for primitive operations when calling Rep_Item_Too_Late.
375 (Process_Import_Or_Interface): Do not place flag on formal
377 (Analyze_Pragma, case Export): If the entity is a deferred constant,
378 propagate information to full view, which is the one elaborated by the
380 (Make_Inline): the pragma is effective if it applies to an internally
381 generated subprogram declaration for a body that carries the pragma.
382 (Analyze_Pragma, case Optimize_Alignment): Set new flag
383 Optimize_Alignment_Local.
384 (Analyze_PPC_In_Decl_Part): New procedure
385 (Get_Pragma_Arg): Moved to outer level
386 (Check_Precondition_Postcondition): Change to allow new visibility
387 rules for package spec
388 (Analyze_Pragma, case Check_Policy): Change placement rules to be
389 same as pragma Suppress/Unsuppress.
390 Change name In_Default_Expression => In_Spec_Expression
391 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
392 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
393 (Check_Precondition_Postcondition): Do proper visibility preanalysis
394 for the case of these pragmas appearing in the spec.
395 (Check_Enabled): New function
396 (Initialize): New procedure
397 (Tree_Read): New procedure
398 (Tree_Write): New procedure
399 (Check_Precondition_Postcondition): New procedure
400 Implement pragmas Check and Check_Policy
401 Merge Assert processing with Check
403 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
404 New warning flag -gnatw.e
406 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
407 returning whether a task (or main procedure) has a pragma
409 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
410 (or main procedure) has a pragma Relative_Deadline.
411 Add Next_Pragma field to N_Pragma node
412 (PPC_Enabled): New flag
413 (Next_Pragma): Now used for Pre/Postcondition processing
415 * snames.h, snames.ads, snames.adb: New standard name
417 Add entry for 'Invalid_Value attribute
418 Add entry for new attribute Has_Tagged_Values
419 Add entry for Enum_Val attribute
420 Add new standard names Aggregate, Configuration and Library.
423 Add Pragma_Precondition
424 Add Pragma_Postcondition
426 New standard name Archive_Builder_Append_Option
427 (Preset_Names): Add _relative_deadline and relative_deadline definitions
428 There was also a missing non_preemptive_within_priorities.
429 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
431 Add support for pragmas Check and Check_Policy
433 * tree_gen.adb: Call Sem_Aux.Tree_Write
435 * tree_in.adb: Call Sem_Aux.Tree_Read
437 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
440 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
443 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
444 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
446 (Expand_Pragma_Check): New procedure
448 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
451 * sinfo.adb (PPC_Enabled): New flag
453 2008-04-08 Robert Dewar <dewar@adacore.com>
454 Gary Dismukes <dismukes@adacore.com>
455 Javier Miranda <miranda@adacore.com>
456 Ed Schonberg <schonberg@adacore.com>
458 * fe.h: Remove global Optimize_Alignment flag, no longer used
460 * layout.adb: Test Optimize_Alignment flags rather than global switch
462 * lib.ads, lib.adb: New OA_Setting field in library record
464 * lib-load.adb: New OA_Setting field in library record
466 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
467 units mentioned in limited_with_ clauses in the ali file, with an
469 New Ox fields in U line
471 * opt.adb: New flag Optimize_Alignment_Local
472 (Check_Policy_List[_Config]): New flags
474 * opt.ads (Invalid_Value_Used): New flag
475 New switch Optimize_Alignment_Local
476 (Warn_On_Parameter_Order): New flag
477 (Check_Policy_List[_Config]): New flags
479 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
480 limited_with clauses.
481 New data structures for Optimize_Alignment
483 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
485 (Check_Consistent_Optimize_Alignment): Rework for new structure
486 (Check_Consistent_Restrictions): Fix incorrect error message
488 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
489 created class-wide type (to the Parent field of the specific type).
490 (Install_Siblings): Handle properly private_with_clauses on subprogram
491 bodies and on generic units.
492 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
493 illegal limited_with_clause that names a non-existent package.
494 (Check_Body_Required): Determine whether a unit named a limited_with
496 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
497 Capture Optimize_Alignment settings to set new OA_Setting field in
499 (Build_Limited_Views): Include task and protected type declarations.
501 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
502 case of a possible constant redeclaration where the current object is
503 an entry index constant.
504 (Analyze_Object_Declaration): Generate an error in case of CPP
505 class-wide object initialization.
506 (Analyze_Object_Declaration): Add extra information on warnings for
507 declaration of unconstrained objects.
508 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
509 conflicts with the setting of Stored_Constraint in the case where the
510 access type entity has already been created as an E_Incomplete_Type due
511 to a limited with clause.
512 Use new Is_Standard_Character_Type predicate
513 (Analyze_Object_Declaration): Apply access_constant check only after
514 expression has been resolved, given that it may be overloaded with
515 several access types.
516 (Constant_Redeclaration): Additional legality checks for deferred
517 constant declarations tha involve anonymous access types and/or null
518 exclusion indicators.
519 (Analyze_Type_Declaration): Set Optimize_Alignment flags
520 (Analyze_Subtype_Declaration): Ditto
521 (Analyze_Object_Declaration): Ditto
522 (Analyze_Object_Declaration): Don't count tasks in generics
523 Change name In_Default_Expression => In_Spec_Expression
524 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
525 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
526 (Process_Discriminants): Additional check for illegal use of default
527 expressions in access discriminant specifications in a type that is not
529 (Check_Abstract_Overriding): If an inherited function dispaches on an
530 access result, it must be overridden, even if the type is a null
532 (Derive_Subprogram): The formals of the derived subprogram have the
533 names and defaults of the parent subprogram, even if the type is
534 obtained from the actual subprogram.
535 (Derive_Subprogram): In the presence of interfaces, a formal of an
536 inherited operation has the derived type not only if it descends from
537 the type of the formal of the parent operation, but also if it
538 implements it. This is relevant for the renamings created for the
539 primitive operations of the actual for a formal derived type.
540 (Is_Progenitor): New predicate, to determine whether the type of a
541 formal in the parent operation must be replaced by the derived type.
543 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
544 predicate recursive to handle components that have a user-defined
545 Initialize procedure. Handle controlled derived types whose ancestor
546 has a user-defined Initialize procedured.
547 (Note_Possible_Modification): Add Sure parameter, generate warning if
548 sure modification of constant
549 Use new Is_Standard_Character_Type predicate
550 (Find_Parameter_Type): when determining whether a protected operation
551 implements an interface operation, retrieve the type of the formal from
552 the entity when the formal is an access parameter or an
553 anonymous-access-to-subprogram.
554 Move Copy_Parameter_List to sem_util, for use when building stubbed
556 (Has_Access_Values): Tagged types now return False
557 (Within_HSS_Or_If): New procedure
558 (Set_Optimize_Alignment_Flags): New procedure
559 Change name In_Default_Expression => In_Spec_Expression
560 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
561 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
563 2008-04-08 Tristan Gingold <gingold@adacore.com>
565 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
567 2008-04-08 Tristan Gingold <gingold@adacore.com>
571 * cuintp.c: Fix 16 bits issue for AVR.
572 On AVR, integer is 16 bits, so it can't be used to do math with
574 So use long_integer instead.
576 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
578 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
579 System.OS_Primitives.
580 Change type of various constants, parameters and local variables from
581 Time to representation type OS_Time.
582 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
583 Remove the declaration of constant Mili_F from several routines. New
584 body for internal package Conversions_Operations.
585 (Time_Of): Add default parameters for several formals.
587 * a-caldel.adb: Minor reformatting
589 * a-calend.ads, a-calend.adb: New body for internal package
590 Conversions_Operations.
591 (Time_Of): Add default parameters for several formals.
593 * Makefile.rtl: Add a-ststop
594 Add Ada.Calendar.Conversions to the list of runtime files.
597 * a-calcon.adb, a-calcon.ads: New files.
599 2008-04-08 Jose Ruiz <ruiz@adacore.com>
600 Tristan Gingold <gingold@adacore.com>
602 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
603 (Install_Restricted_Handlers): New procedure
604 which is a simplified version of Install_Handlers that does not store
605 previously installed.
607 * s-interr-vxworks.adb: Fix ACATS cxc3001
608 On VxWorks interrupts can't be detached.
609 (Install_Restricted_Handlers): New procedure.
611 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
614 2008-04-08 Olivier Hainque <hainque@adacore.com>
616 * s-intman-vxworks.ads, s-intman-vxworks.adb
617 (Map_And_Raise_Exception): Remove. Was an import of only part of the
618 required services already implemented elsewhere.
619 (Notify_Exception): Delete body, import __gnat_error_handler instead.
620 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
621 argument passed to the handler, which we need for ZCX propagation
624 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
626 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
628 * g-timsta.adb, g-timsta.ads: New files.
630 2008-04-08 Robert Dewar <dewar@adacore.com>
632 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
633 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
634 (Raise_Exception_Always): Fix documentation accordingly
636 2008-04-08 Robert Dewar <dewar@adacore.com>
638 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
641 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
644 2008-04-08 Javier Miranda <miranda@adacore.com>
645 Robert Dewar <dewar@adacore.com>
646 Ed Schonberg <schonberg@adacore.com>
648 * a-tags.adb (Register_Interface_Offset): New subprogram.
649 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
650 (To_Predef_Prims_Table_Ptr): Removed.
652 (To_Acc_Size): Removed.
653 (Parent_Size): Modified to the call the subprogram returning the size of
654 the parent by means of the new TSD component Size_Func.
656 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
657 (DT_Offset_To_Top_Offset): New constant value that is used to generate
658 code referencing the Offset_To_Top component of the dispatch table's
660 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
661 use of 'address to initialize dispatch table slots.
662 (Size_Func): New component of the TSD. Used by the run-time to call the
663 size primitive of the tagged type.
665 * checks.adb (Apply_Access_Check): Avoid check when accessing the
666 Offset_To_Top component of a dispatch table.
667 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
668 deferred constant declaration. do not add a null expression, to prevent
669 spurious errors when full declaration is analyzed.
670 (Apply_Discriminant_Check): If both discriminant constraints share a
671 node which is not static but has no side effects, do not generate a
672 check for that discriminant.
673 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
674 subexpr, since the prefix of an attribute is a name.
676 * checks.ads: Fix nit in comment.
678 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
679 and body of predefined primitives in case of CPP tagged type
681 (Freeze_Type): Deal properly with no storage pool case
682 (Make_Predefined_Primitive_Specs): Generate specification of abstract
683 primitive Deep_Adjust if a nonlimited interface is derived from a
685 (Build_Dcheck_Functions): Create discriminant-checking functions only
686 for variants that have some component(s).
687 (Build_Slice_Assignment): In expanded code for slice assignment, handle
688 properly the case where the slice bounds extend to the last value of the
689 underlying representation.
690 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
691 (Is_Variable_Size_Record): An array component has a static size if
692 index bounds are enumeration literals.
694 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
695 an external tag has been specified for the type.
696 (Building_Static_DT): Add missing support for private types.
697 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
698 to the entity associated with the parent of Typ. This is done to
699 avoid wrong access when the parent is a private type.
700 (Expand_Interface_Conversion): Improve error message when the
701 configurable runtime has no support for dynamic interface conversion.
702 (Expand_Interface_Thunk): Add missing support to interface types in
703 configurable runtime.
704 (Expand_Dispatching_Call): remove obsolete code.
705 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
706 ensure that all subtypes and aggregates associated with dispatch
707 tables have the attribute Is_Dispatch_Table_Entity set to true.
708 (Register_Primitive): Rename one variable to improve code reading.
709 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
710 of the pointer to the 'size primitive in the TSD.
712 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
713 (RE_Offset_To_Top_Ptr): New entity.
714 (RE_Register_Interface_Offset): New entity.
715 (RE_Set_Dynamic_Offset_To_Top): New entity.
716 (RE_Set_Offset_To_Top): Removed entity.
717 (RE_Prim_Ptr): New entity
718 (RE_Size_Func): New entity
719 (RE_Size_Ptr): New entity
720 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
721 (Ada_Dispatching_Child): Define this new subrange.
722 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
723 RE_Time_Span, and RE_Time_Span_Zero).
724 (RE_Unit_Table): Add new required run-time calls
726 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
729 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
730 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
731 initializes the Offset_To_Top component of a dispatch table.
732 (Build_Predef_Prims): Removed.
733 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
735 (Build_Set_Size_Function): New subprogram.
737 * exp_ch13.adb: Do not generate storage variable for storage_size zero
738 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
740 2008-04-08 Robert Dewar <dewar@adacore.com>
742 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
743 computing Fore when Exp > 0
745 2008-04-08 Robert Dewar <dewar@adacore.com>
747 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
749 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
750 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
752 * fmap.adb: Remove Big_String declarations (now in Types)
753 (No_Mapping_File): New Boolean global variable
754 (Initialize): When mapping file cannot be read, set No_Mapping_File to
756 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
757 tables were empty before adding entries, open the mapping file
758 with Truncate = True, instead of delete/re-create.
760 * fname-sf.adb: Remove Big_String declarations (now in Types)
762 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
763 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
766 * table.ads: Add for Table_Ptr'Storage_Size use 0
768 * types.ads: Add Big_String declarations
769 Add Size_Clause of zero for big pointer types
771 2008-04-08 Vincent Celier <celier@adacore.com>
773 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
774 (Usage): Add line for switch --subdirs=
775 Add new switch -eL, to follow symbolic links when processing project
778 * gnatcmd.adb: Process switches -eL and --subdirs=
779 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
780 Program_Name to get proper tool names when AAMP_On_Target is set.
781 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
782 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
785 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
786 (Usage): Add lines for switches -eL and --subdirs=
788 * makeusg.adb: Add line for switch --subdirs=
791 (Source_Data): New Boolean component Compiled, defaulted to True
792 (Empty_File_Name: New global variable in private part, initialized in
793 procedure Initialize.
794 (Subdirs_Option): New constant string
795 (Subdirs): New String_Ptr global variable
796 (Language_Config): New component Include_Compatible_Languages
797 (Project_Qualifier): New type for project qualifiers
798 (Project_Data): New component Qualifier
799 (Project_Configuration): New component Archive_Builder_Append_Option
801 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
802 another imported project indicate the name of this imported project.
803 (Check_File): When a unit is in two project files, indicate the project
804 names and the paths of the source files for each project.
805 (Add_Source): Set Compiled to False if compiler driver is empty. Only
806 set object, dependency and switches file names if Compiled is True.
807 (Process_Compiler): Allow the empty string for value of attribute Driver
808 (Get_Directories): When Subdirs is not null and Object_Dir is not
809 specified, locate and create if necessary the actual object dir.
810 (Locate_Directory): When Subdirs is not empty and Create is not the
811 empty string, locate and create if necessary the actual directory
812 as a subdirectory of directory Name.
813 (Check_Library_Attributes.Check_Library): Allow a project where the only
814 "sources" are header files of file based languages to be imported by
815 library projects, in multi-language mode (gprbuild).
816 (Check_Library_Attributes.Check_Library): In multi-language mode
817 (gprbuild), allow a library project to import a project with no
818 sources, even when this is not declared explicitly.
819 (Check_If_Externally_Built): A virtual project extending an externally
820 built project is also externally built.
821 (Check_Library_Attributes): For a virtual project extending a library
822 project, inherit the library directory.
823 (Process_Project_Level_Array_Attributes): Process new attribute
825 For projects with specified qualifiers "standard", "library" or
826 "abstract", check that the project conforms to the qualifier.
827 (Process_Project_Level_Simple_Attributes): Process new attribute
828 Archive_Builder_Append_Option.
830 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
831 (Normalize_Compiler_Switches): Only keep compiler switches that are
832 passed to gnat1 by the gcc driver and that are stored in the ALI file
834 Do not take into account switc -save-temps
836 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
837 gprmake is called with -eL.
838 (Scan_Arg): Recognize switch -eL
839 (Usage): Add line for switch -eL
841 * prj.adb (Initialize): Initialize Empty_File_Name
842 (Project_Empty): New component Qualifier
844 * prj-attr.ads, prj-attr.adb: New project level attribute
846 New project level attribute Archive_Builder_Append_Option
848 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
850 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
851 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
852 upward compatibility.
854 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
855 each Trying ..." on different lines.
856 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
857 is "configuration" when not in configuration. Fail when in configuration
858 when a specified qualifier is other than "configuration".
860 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
861 full associative array together.
862 (Recursive_Process): Put the project qualifier in the project data
864 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
865 (Set_Project_Qualifier_Of): New procedure
867 2008-04-08 Robert Dewar <dewar@adacore.com>
869 * errout.ads: Update comments for new handling of info: messages
871 * erroutc.adb (Matches): New procedure
872 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
873 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
874 info messages as well as style messages.
876 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
878 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
880 (Check_A_Call): Special "info: " warnings now have ? in the text
881 (Elab_Warning): Use info message in static case
883 2008-04-08 Ed Schonberg <schonberg@adacore.com>
885 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
886 whether an array aggregate with static bounds and scalar components
887 should be expanded into a static constant.
889 2008-04-08 Gary Dismukes <dismukes@adacore.com>
890 Ed Schonberg <schonberg@adacore.com>
891 Robert Dewar <dewar@adacore.com>
893 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
894 Has_Stream_Attribute_ Definition when checking for available stream
895 attributes on parameters of a limited type in Ada 2005. Necessary for
896 proper recognition of visible stream attribute clauses.
897 (Has_Stream_Attribute_Definition): If the type is derived from a
898 private type, then use the derived type's underlying type for checking
899 whether it has stream attributes.
900 (Validate_Object_Declaration): The check for a user-defined Initialize
901 procedure applies also to types with controlled components or a
903 Reject an object declaration in a preelaborated unit if the type is a
904 controlled type with an overriding Initialize procedure.
905 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
906 checking when the parent of a dereference is a selected component and
907 the name has not been analyzed.
909 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
910 prefixes that are invalid explicit dereferences of remote
911 access-to-class-wide values, first checking whether the selected
912 component is a prefixed form of call to a tagged operation.
913 (Analyze_Call): Remove code that issues an error for limited function
914 calls in illegal contexts, as we now support all of the contexts that
916 Allow a function call that returns a task.and appears as the
917 prefix of a selected component.
918 (Analyze_Reference): Give error message if we try to make a 'Reference
919 for an object that is atomic/aliased without its type having the
920 corresponding attribute.
921 (Analyze_Call): Remove condition checking for attributes to allow
922 calls to functions with inherently limited results as prefixes of
923 attributes. Remove related comment about Class attributes.
924 (Analyze_Selected_Component): If the prefix is a remote type, check
925 whether this is a prefixed call before reporting an error.
926 (Complete_Object_Operation): If the controlling formal is an access to
927 variable reject an actual that is a constant or an access to one.
928 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
929 primitive operations from base type.
931 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
933 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
934 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
935 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
936 (Expand_N_Slice): Test for prefix that is a build-in-place function call
937 and call Make_Build_In_Place_Call_In_Anonymous_Context.
938 (Analyze_Call): Remove code that issues an error for limited function
939 calls in illegal contexts, as we now support all of the contexts that
941 New calling sequence for Get_Simple_Init_Val
942 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
943 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
945 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
946 Ed Schonberg <schonberg@adacore.com>
947 Robert Dewar <dewar@adacore.com>
949 * exp_ch2.adb: Minor reformatting.
950 (Expand_Entry_Index_Parameter): Set the type of the identifier.
951 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
952 (Expand_Protected_Component): New routine.
953 (Expand_Protected_Private): Removed.
954 Add Sure parameter to Note_Possible_Modification calls
956 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
957 generated subprogram declaration must inherit the overriding indicator
958 from the instantiation node.
959 (Validate_Access_Type_Instance): If the designated type of the actual is
960 a limited view, use the available view in all cases, not only if the
961 type is an incomplete type.
962 (Instantiate_Object): Actual is illegal if the formal is null-excluding
963 and the actual subtype does not exclude null.
964 (Process_Default): Handle properly abstract formal subprograms.
965 (Check_Formal_Package_Instance): Handle properly defaulted formal
966 subprograms in a partially parameterized formal package.
967 Add Sure parameter to Note_Possible_Modification calls
968 (Validate_Derived_Type_Instance): if the formal is non-limited, the
969 actual cannot be limited.
970 (Collect_Previous_Instances): Generate instance bodies for subprograms
973 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
975 Add Sure parameter to Note_Possible_Modification calls
976 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
977 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
978 constant overlaid by variable and issue warning.
979 Use new Is_Standard_Character_Type predicate
980 (Analyze_Record_Representation_Clause): Check that the specified
981 Last_Bit is not less than First_Bit - 1.
982 (Analyze_Attribute_Definition_Clause, case Address): Check for
983 self-referential address clause
985 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
986 detection mechanism when the lhs is a prival.
987 (Analyze_Assignment): Call Check_Unprotected_Access to detect
988 assignment of a pointer to protected data, to an object declared
989 outside of the protected object.
990 (Analyze_Loop_Statement): Check for unreachable code after loop
991 Add Sure parameter to Note_Possible_Modication calls
992 Protect analysis from previous syntax error such as a scope mismatch
994 (Analyze_Assignment_Statement): The assignment is illegal if the
995 left-hand is an interface.
997 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
998 violation of restriction No_Implicit_Conditionals
999 Add Sure parameter to Note_Possible_Modication calls
1000 Use new Is_Standard_Character_Type predicate
1001 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
1002 call as operator. Fixes problems (e.g. validity checking) which
1003 come from the result looking as though it does not come from source).
1004 (Resolve_Call): Check case of name in named parameter if style checks
1006 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
1007 from the checking that such calls should not occur from an entry body.
1008 (Resolve_Call): If the return type of an Inline_Always function
1009 requires the secondary stack, create a transient scope for the call
1010 if the body of the function is not available for inlining.
1011 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
1012 that are actuals for in-out formals.
1013 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
1014 primitive operations from base type.
1015 (Analyze_Selected_Component): If the context is a call to a protected
1016 operation the parent may be an indexed component prior to expansion.
1017 (Resolve_Actuals): If an actual is of a protected subtype, use its
1018 base type to determine whether a conversion to the corresponding record
1020 (Resolve_Short_Circuit): Handle pragma Check
1022 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
1023 Use new Is_Standard_Character_Type predicate
1024 (Eval_Relational_Op): Catch more cases of string comparison
1026 2008-04-08 Robert Dewar <dewar@adacore.com>
1027 Gary Dismukes <dismukes@adacore.com>
1029 * s-rident.ads: Add No_Default_Initialization restriction
1032 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
1033 (Set_TSS): Handle No_Default_Initialization case
1035 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
1036 No_Default_Initialization
1037 (Expand_N_Subprogram_Body): Remove redundant initialization of out
1038 parameters when Normalize_Scalars is active.
1039 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
1040 Fix casing error in formal parameter name in call
1041 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
1042 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
1043 dispatching call on VM targets.
1045 2008-04-08 Gary Dismukes <dismukes@adacore.com>
1046 Thomas Quinot <quinot@adacore.com>
1048 * exp_ch7.adb (Find_Final_List): Change the test for generating a
1049 selected component from an access type's Associated_Final_Chain to
1050 check for the presence of that field, rather than assuming it exists
1051 for all named access types.
1052 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
1053 procedure to call at the end of the generated cleanup procedure.
1054 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
1055 and an At_End_Proc already exists in the handled sequence of statements
1056 for which cleanup actions are being expanded, the original cleanup
1057 action must be preserved.
1059 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1060 Ed Schonberg <schonberg@adacore.com>
1061 Robert Dewar <dewar@adacore.com>
1062 Gary Dismukes <dismukes@adacore.com>
1064 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
1065 Build_Unprotected_Subprogram_Body): Generate debug info for
1066 declarations related to the handling of private data in task and
1068 (Debug_Private_Data_Declarations): New subprogram.
1069 (Install_Private_Data_Declarations): Remove all debug info flagging.
1070 This is now done by Debug_Private_Data_Declarations at the correct
1072 (Build_Simple_Entry_Call): If the task name is a function call, expand
1073 the prefix into an object declaration, and make the surrounding block a
1075 (Build_Master_Entity): An internal block is a master if it wraps a call.
1076 Code reformatting, update comments. Code clean up.
1077 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
1078 (Replicate_Entry_Formals): If the formal is an access parameter or
1079 anonymous access to subprogram, copy the original tree to create new
1080 entities for the formals of the subprogram.
1081 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
1082 for tasks to store the value passed using pragma Relative_Deadline.
1083 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
1084 run-time call to create a task.
1085 (Build_Wrapper_Spec): If the controlling argument of the interface
1086 operation is an access parameter with a non-null indicator, use the
1087 non-null indicator on the wrapper.
1089 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
1090 present, which it may not be in the case where the type entity is an
1091 incomplete view brought in by a limited with.
1092 (Analyze_Task_Type): Only retrieve the full view when present, which it
1093 may not be in the case where the type entity is an incomplete view brought
1094 in by a limited with.
1095 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
1096 private components of a protected type, to prevent the generation of freeze
1097 nodes for which there is no proper scope of elaboration.
1099 * exp_util.ads, exp_util.adb
1100 (Remove_Side_Effects): If the expression is a function call that returns a
1101 task, expand into a declaration to invoke the build_in_place machinery.
1102 (Find_Protection_Object): New routine.
1103 (Remove_Side_Effects): Also make a copy of the value
1104 for attributes whose result is of an elementary type.
1105 (Silly_Boolean_Array_Not_Test): New procedure
1106 (Silly_Boolean_Array_Xor_Test): New procedure
1107 (Is_Volatile_Reference): New function
1108 (Remove_Side_Effects): Use Is_Volatile_Reference
1109 (Possible_Bit_Aligned_Component): Handle slice case properly
1111 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
1112 case test to Exp_Util
1113 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
1115 2008-04-08 Thomas Quinot <quinot@adacore.com>
1117 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
1119 (Add_RACW_Features): When processing an RACW in another unit than the
1120 main unit, set Body_Decls to No_List to indicate that the bodies of
1121 the type's TSS must not be generated.
1122 (GARLIC_Support.Add_RACW_Read_Attribute,
1123 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
1124 Body_Decls is No_List.
1125 (PolyORB_Support.Add_RACW_Read_Attribute,
1126 PolyORB_Support.Add_RACW_Write_Attribute,
1127 PolyORB_Support.Add_RACW_From_Any,
1128 PolyORB_Support.Add_RACW_To_Any,
1129 PolyORB_Support.Add_RACW_TypeCode): Same.
1130 (Transmit_As_Unconstrained): New function.
1131 (Build_Ordered_Parameters_List): Use the above to order parameters.
1132 (GARLIC_Support.Build_General_Calling_Stubs):
1133 Use the above to determine which parameters to unmarshall using 'Input
1134 at the point where their temporary is declared (as opposed to later on
1136 (PolyORB_Support.Build_General_Calling_Stubs):
1137 Use the above to determine which parameters to unmarshall using From_Any
1138 at the point where their temporary is declared (as opposed to later on
1139 with an assignment).
1141 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1143 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
1144 an Input function for an access type, do not perform default
1145 initialization on the local variable that receives the value, to
1146 prevent spurious warnings when the type is null-excluding.
1148 2008-04-08 Robert Dewar <dewar@adacore.com>
1149 Ed Schonberg <schonberg@adacore.com>
1151 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
1153 (Size_Known): Generic formal scalar types have known at compile
1154 time size, so remove check.
1155 Fix casing error in formal parameter name in call
1156 (Freeze_Subprogram): If the subprogram is a user-defined operator,
1157 recheck its overriding indication.
1159 2008-04-08 Vincent Celier <celier@adacore.com>
1161 * gnat1drv.adb: Send all messages indicating an error to standard error
1163 2008-04-08 Robert Dewar <dewar@adacore.com>
1165 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
1166 (List_Applicable_Restrictions): Do not list existing restrictions
1168 2008-04-08 Thomas Quinot <quinot@adacore.com>
1170 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
1171 add a pointer to generic sockets literature
1172 do not mention that the given example is "typical" usage.
1173 Remove obsolete comment about multicast not being supported on Windows.
1174 (Connect_Socket): Make Server mode IN rather than IN OUT
1175 since this formal is never modified.
1177 2008-04-08 Robert Dewar <dewar@adacore.com>
1179 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
1180 the declaration for some different entity.
1181 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
1182 list is precent (following the parent subtype indication), display
1183 appropriate "and" keyword.
1185 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
1186 Remove unnecessary calls to Init_Size_Align and Init_Esize.
1187 Add notes on use of Parent field of an Itype
1189 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1190 Robert Dewar <dewar@adacore.com>
1191 Gary Dismukes <dismukes@adacore.com>
1193 * lib-xref.adb (Is_On_LHS): Remove dead code
1194 (Output_Overriden_Op): If the overridden operation is itself inherited,
1195 list the ancestor operation, which is the one whose body or absstract
1196 specification is actually being overridden. For source navigation
1199 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
1200 operation is primitive for the type.
1201 (Declare_Inherited_Private_Subprograms): If the new operation overrides
1202 an inherited private subprogram, set properly the Overridden_Operation
1203 attribute, for better cross-reference information.
1204 (Analyze_Package_Specification): Do late analysis of spec PPCs
1205 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
1206 properly the full view and underlying full views of a private type in a
1207 child unit, whose full view is derived from a private type in a parent
1208 unit, and whose own full view becomes visible in the child body.
1210 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
1211 primitive operation after the type has been frozen, add an explicit
1212 reference to the type and the operation, because other primitive
1213 references have been emitted already.
1214 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
1215 dispatching call on VM targets.
1217 2008-04-08 Vincent Celier <celier@adacore.com>
1218 Thomas Quinot <quinot@adacore.com>
1220 * make.adb: (Gnatmake_Called): Remove, no longer necessary
1221 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
1222 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
1223 (Insert_Project_Sources): Take into account index in multi-unit source
1225 After building a library project, delete all temporary files.
1226 (Initialize): Reset current output after parsing project file.
1227 (Collect_Arguments_And_Compile): Never insert in the queue the sources
1228 of library projects that are externally built.
1229 Put file name in error and inform messages if -df is used
1230 (Display): If invoked with -d7, do not display path names, but only
1233 * makeutl.ads (Path_Or_File_Name): New function
1234 (Path_Or_File_Name): New function
1236 2008-04-08 Arnaud Charlet <charlet@adacore.com>
1238 * Make-lang.in: Disable warnings during first stage of bootstrap
1240 Update dependencies.
1242 2008-04-08 Vincent Celier <celier@adacore.com>
1244 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
1245 case to decide if ALI object file is included in library.
1246 (Build_Library): Never attempt to build a library if the project is
1249 2008-04-08 Thomas Quinot <quinot@adacore.com>
1251 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
1252 (No_List) is defined to return Empty.
1254 2008-04-08 Jose Ruiz <ruiz@adacore.com>
1256 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
1259 (Read_Default_Search_Dirs): Do not consider spaces as path separators
1260 because spaces may be part of legal paths.
1262 2008-04-08 Robert Dewar <dewar@adacore.com>
1264 * par-ch11.adb (P_Exception_Handler): Check indentation level for
1267 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1269 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
1270 in a type declaration, if this is not an interface declaration or
1271 private type extension.
1273 2008-04-08 Vincent Celier <celier@adacore.com>
1275 * prj-util.adb (Executable_Of): New String parameter Language. When
1276 Ada_Main is False and Language is not empty, attempt to remove the body
1277 suffix or the spec suffix of the language to get the base of the
1278 executable file name.
1279 (Put): New Boolean parameter Lower_Case, defauilted to False. When
1280 Lower_Case is True, put the value in lower case in the name list.
1281 (Executable_Of): If there is no executable suffix in the configuration,
1282 then do not modify Executable_Extension_On_Target.
1284 * prj-util.ads (Executable_Of): New String parameter Language,
1285 defaulted to the empty string.
1286 (Put): New Boolean parameter Lower_Case, defauilted to False
1288 2008-04-08 Robert Dewar <dewar@adacore.com>
1290 * scng.adb (Scan_Identifier): Handle case of identifier starting with
1291 wide character using UTF-8 encoding.
1293 2008-04-08 Javier Miranda <miranda@adacore.com>
1295 * sem.adb (Analyze): Consider case in which we analyze an empty node
1296 that was generated by a call to a runtime function that is not
1297 available under the configurable runtime.
1299 * sem.ads (Inside_Freezing_Actions): New flag.
1300 (Save_Check_Policy_List): New field in scope stack entry
1302 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1303 Robert Dewar <dewar@adacore.com>
1305 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
1306 the ancestor part of an extension aggregate for a limited type.
1307 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
1308 enumeration index bounds.
1309 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
1310 when array is too short.
1311 (Check_Expr_OK_In_Limited_Aggregate): Move function
1312 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
1314 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
1315 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
1316 component associations.
1317 (Check_Non_Limited_Type): Moved to outer level and renamed.
1318 (Resolve_Record_Aggregate): In an extension aggregate, an association
1319 with a box initialization can only designate a component of the
1320 extension, not a component inherited from the given ancestor
1322 * sem_case.adb: Use new Is_Standard_Character_Type predicate
1324 2008-04-08 Robert Dewar <dewar@adacore.com>
1326 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
1328 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
1329 Properly handle case where Aft > Scale and input number is less than
1332 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1334 * s-stoele.ads, s-soflin.ads: Move the location of
1335 Dummy_Communication_Block from System.Storage_Elements to
1338 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
1339 emulate Communication_Block in certain scenarios.
1341 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1343 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
1345 Add new subtype S_WWC, unchecked conversion routines From_WWC and
1347 (I_WWC, O_WWC): New routines for input and output of
1348 Wide_Wide_Character.
1350 2008-04-08 Robert Dewar <dewar@adacore.com>
1352 * stringt.adb (Write_String_Table_Entry): Handle wide characters
1355 2008-04-08 Robert Dewar <dewar@adacore.com>
1357 * styleg.adb (Check_Comment): Allow special char after -- in
1358 non-end-of-line case
1360 2008-04-08 Robert Dewar <dewar@adacore.com>
1362 * stylesw.adb: Implement -gnaty + - y options
1363 (Set_GNAT_Style_Check_Options): Includ I in style check string
1365 * stylesw.ads: Add comments for new style switch options
1367 2008-04-08 Sergey Rybin <rybin@adacore.com>
1369 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
1370 to the set of the GNAT components needed by ASIS.
1372 2008-04-08 Bob Duff <duff@adacore.com>
1374 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
1376 2008-04-08 Tristan Gingold <gingold@adacore.com>
1378 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
1379 Improve error message generation.
1381 2008-04-08 Vincent Celier <celier@adacore.com>
1383 * a-direct.adb (Start_Search): Check for Name_Error before checking for
1384 Use_Error, as specified in the RM. Check if directory is open and raise
1385 Use_Error if it is not.
1387 2008-04-08 Vincent Celier <celier@adacore.com>
1388 Robert Dewar <dewar@adacore.com>
1390 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
1391 AAMP_On_Target is set.
1393 * vms_data.ads: Add NOxxx to style check switch list
1394 Add entry COMPONENTS for -gnatVe
1395 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
1397 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
1398 Add qualifiers for gnatmetric coupling options
1399 Add note that -gnata enables all checks
1400 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
1401 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
1402 New warning flag -gnatw.e
1404 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
1405 Add entry for -gnatyN (forgotten before)
1406 Line for new warning switch -gnatw.p
1407 New warning flag -gnatw.e
1409 * gnat_ugn.texi: Add documentation fpr project file switch -aP
1410 Document -gnaty - + y
1411 Replace occurences of "package specification" with "package spec"
1412 Define preprocessing symbols in documentation of gnatprep
1413 Clarify reason for distinguishing overflow checking
1414 Add documentation for project-aware tool switches -eL and --subdirs=
1415 Complete list of configuration pragmas
1416 Specify that, even when gnatmake switch -x is used, mains on the command
1417 line need to be sources of project files.
1418 Editing of gnatcheck/gnatmetric doc.
1419 Add documentation for -gnatw.p/-gnatw.P
1420 Add missing documentation for -fno-inline-functions.
1421 Add documentation for -gnatw.e
1423 * gnat_rm.texi: Add documentation for No_Default_Initialization
1424 Replace occurences of "package specification" with "package spec"
1425 Document use of * in Warnings Off string
1426 Update documentation of alignment/component clauses.
1427 Add documentation for Invalid_Value
1428 Document new consistency rule for Optimize_Alignment
1429 Add documentation for Precondition and Postcondition pragmas
1430 Add documentation for Check and Check_Policy pragmas
1431 Document new Enum_Val attribute
1432 Remove requirement for static string in pragma Assert
1433 Add documentation on GNAT.Time_Stamp
1435 * ug_words: add entry for -gnatVe
1436 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
1437 Add entry for -gnatw.e
1439 * debug.adb: Add missing documentation for d.a flag
1440 Document new -gnatd.a switch.
1441 Add documentation for new gnatmake debug switch -df
1443 2008-04-08 Thomas Quinot <quinot@adacore.com>
1445 * gen-soccon.c: Bump year in copyright notices.
1447 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
1449 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
1451 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
1454 2008-04-08 Robert Dewar <dewar@adacore.com>
1455 Bob Duff <duff@adacore.com>
1457 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
1458 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
1460 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
1462 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
1464 * g-trasym.ads: Minor comment improvements
1466 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
1468 * a-sequio.ads, a-direio.ads: improve message for tagged type
1470 * a-strunb.ads: Minor reformatting
1472 * a-tifiio.adb: Minor reformatting
1474 * atree.adb (Fix_Parents): Use clearer names for formals
1475 Cleanup and simplify code
1476 Use named notation in calls
1478 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
1481 * uintp.adb: Used named notation for some confusing calls
1483 * bindusg.adb: Minor change in one line of output
1485 * cstand.adb: Minor reformatting of src representation of Standard
1487 * a-assert.ads: Add comment.
1489 * g-decstr.adb: Fix bad indentation
1491 * expander.ads, expander.adb: Code clean up.
1493 * sem_dist.ads: Minor comment improvement
1495 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
1496 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
1498 * i-cstrin.adb: Fix casing error in formal parameter name in call
1500 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1502 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
1503 mentioned in limited_with_clauses to do create semantic dependencies
1504 even though they appear in the ali file.
1506 2008-04-08 Emmanuel Briot <briot@adacore.com>
1508 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
1510 (Get_Configuration): New subprogram.
1512 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
1513 These optional parameters help preserve the casing of the project's name
1514 when pretty-printing.
1516 2008-04-08 Jerome Lambourg <lambourg@adacore.com>
1517 Arnaud Charlet <charlet@adacore.com>
1519 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
1520 then use __gnat_set_exit_status to report the returned status code.
1522 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
1523 messages on .NET, since some constructs of the language are not
1526 * gnatlink.adb (Gnatlink): In case the command line is too long for the
1527 .NET linker, gnatlink now concatenate all .il files and pass this to
1530 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1531 Xavier Grave <grave@ipno.in2p3.fr>
1533 * Makefile.in: Add make ifeq define for mips/mipsel support.
1534 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
1535 system-linux-mips.ads: New files.
1537 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1539 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
1540 detect systems using GNU libc.
1546 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1548 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
1549 constant constant for sysconf call.
1550 (bit_field): New packed boolean type used by cpu_set_t.
1551 (cpu_set_t): New type corresponding to the C type with
1552 the same name. Note that on the Ada side we use a bit
1553 field array for the affinity mask. There is not need
1554 for the C macro for setting individual bit.
1555 (pthread_setaffinity_np): New imported routine.
1556 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
1559 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
1561 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
1563 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
1565 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
1566 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
1567 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
1568 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
1569 Return by Depressed Stack Pointer.
1571 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
1573 * decl.c (is_variable_size): Do not unconditionally return false
1574 on non-strict alignment platforms.
1576 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
1578 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
1579 used to process all the variants of the specified type.
1580 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
1581 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
1582 (rest_of_type_decl_compilation): Likewise.
1583 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
1585 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
1587 * gigi.h (insert_block): Kill.
1588 * utils.c (insert_block): Kill.
1590 2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
1592 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
1593 type has self-referential size, get the size from the initializing
1594 expression directly if it is also a constant whose nominal type
1595 has self-referential size.
1597 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1600 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
1603 * env.c: Always include crt_externs.h if __APPLE__ is defined.
1604 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
1606 2008-04-01 Andreas Jaeger <aj@suse.de>
1608 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
1611 2008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1613 * g-table.adb, g-tasloc.adb, g-traceb.ads,
1614 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
1615 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
1616 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
1617 gnatlink.adb, gnatmem.adb, gprep.adb,
1618 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
1619 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
1620 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
1621 lib-xref.ads, lib.adb, link.c, live.ads,
1622 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
1623 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
1624 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
1625 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
1626 namet.adb, namet.h, nlists.adb, nlists.ads,
1627 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
1628 osint-c.ads, osint.adb, osint.ads, output.ads,
1629 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
1630 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
1631 par-endh.adb, par-labl.adb, par-prag.adb,
1632 par-sync.adb, par-tchk.adb, par-util.adb,
1633 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
1634 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
1635 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
1636 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
1638 2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
1640 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
1641 size if it has overflowed.
1643 2008-03-31 Olivier Hainque <hainque@adacore.com>
1644 Eric Botcazou <ebotcazou@adacore.com>
1646 * utils2.c (find_common_type): Document assumption on t1/t2 vs
1647 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
1649 2008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1651 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
1652 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
1653 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
1654 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
1655 exp_tss.ads, exp_util.adb, exp_util.ads,
1656 exp_vfpt.adb, freeze.adb, freeze.ads,
1657 frontend.adb, g-alleve.adb, g-altcon.adb,
1658 g-altive.ads, g-alveop.ads, g-alvevi.ads,
1659 g-arrspl.adb, g-busorg.ads, g-calend.adb,
1660 g-calend.ads, g-casuti.ads, g-cgideb.adb,
1661 g-comlin.adb, g-comlin.ads, g-curexc.ads,
1662 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
1663 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
1664 g-dyntab.adb, g-encstr.ads, g-excact.ads,
1665 g-except.ads, g-expect.ads, g-heasor.adb,
1666 g-hesora.adb, g-hesorg.adb, g-htable.ads,
1667 g-locfil.ads, g-md5.adb, g-md5.ads,
1668 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
1669 g-pehage.adb, g-pehage.ads, g-regexp.adb,
1670 g-regexp.ads, g-regpat.adb, g-regpat.ads,
1671 g-soccon-aix.ads, g-soccon-darwin.ads,
1672 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
1673 g-soccon-hpux.ads, g-soccon-irix.ads,
1674 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
1675 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
1676 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
1677 g-soccon-solaris.ads, g-soccon-tru64.ads,
1678 g-soccon-vms.ads, g-soccon-vxworks.ads,
1679 g-soccon.ads, g-socket.adb, g-socket.ads,
1680 g-socthi-mingw.adb, g-socthi-vms.adb,
1681 g-socthi-vxworks.adb, g-soliop-mingw.ads,
1682 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
1683 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
1686 2008-03-27 Eric Botcazou <ebotcazou@adacore.com>
1688 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
1689 if the procedure is imported.
1691 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1693 * adaint.c: Fix warnings.
1695 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1697 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
1699 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1701 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
1702 Fix problem of status check for null file
1704 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1706 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
1707 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
1708 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
1709 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
1710 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
1713 2008-03-26 Thomas Quinot <quinot@adacore.com>
1716 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
1717 Get_Socket_Option): Add support for Receive_Packet_Info.
1719 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
1720 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
1721 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
1722 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
1723 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
1724 new constants SO_REUSEPORT and IP_PKTINFO
1726 2008-03-26 Robert Dewar <dewar@adacore.com>
1728 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
1729 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
1730 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
1731 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
1732 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
1733 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
1734 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
1735 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
1736 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
1737 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
1738 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
1739 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
1740 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
1741 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
1742 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
1743 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
1744 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
1745 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
1746 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
1747 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
1748 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
1749 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
1750 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
1751 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
1752 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
1753 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
1754 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
1755 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
1756 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
1757 s-tasloc.adb: Minor reformatting.
1759 Remove "used for" sections from comments.
1761 2008-03-26 Robert Dewar <dewar@adacore.com>
1763 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
1764 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
1765 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
1766 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
1767 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
1768 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
1769 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
1770 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
1771 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
1772 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
1773 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
1774 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
1775 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
1776 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
1777 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
1778 double spaced if it fits on one line and otherwise single spaced.
1780 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1782 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
1783 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
1784 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
1785 or task info if the thread could not be created.
1787 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1789 * gnatvsn.ads (Library_Version): Bump to 4.4.
1790 (Current_Year): Bump to 2008.
1792 2008-03-26 Robert Dewar <dewar@adacore.com>
1794 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
1796 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
1798 * debug.adb: Add debug flags d.r and d.v
1799 Add debug flag .T (Optimize_Alignment (Time))
1800 Add debug flag .S (Optimize_Alignment (Space))
1802 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
1803 depending on setting of relevant debug flags.
1804 Replace use of Warnings_Off by Has_Warnings_Off
1805 (Freeze_Entity): In circuit for warning on suspicious convention
1806 actuals, do not give warning if subprogram has same entity as formal
1807 type, or if subprogram does not come from source.
1808 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
1809 if Optimize_Alignment set to Space.
1811 * frontend.adb: Add call to Sem_Warn.Initialize
1812 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
1813 Reset Optimize_Alignment mode from debug switches .S and .T
1815 * layout.adb (Layout_Composite_Object): Rewritten for
1816 Optimize_Aligment pragma.
1818 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
1821 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
1823 * par-prag.adb (N_Pragma): Chars field removed, use Chars
1824 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
1825 this change. Add entry for pragma Optimize_Alignment
1827 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
1828 (Pragma_Identifier (..
1829 instead, adjustments throughout to accomodate this change.
1830 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
1831 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
1832 Add implementation of pragma Optimize_Alignment
1834 2008-03-26 Vincent Celier <celier@adacore.com>
1836 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
1837 Improve memory usage to avoid use of stack.
1839 2008-03-26 Robert Dewar <dewar@adacore.com>
1841 * a-teioed.ads: Correct value of Default_Fill
1843 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
1845 2008-03-26 Robert Dewar <dewar@adacore.com>
1847 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
1848 with Current_Output (introduce Self).
1850 2008-03-26 Robert Dewar <dewar@adacore.com>
1852 * checks.adb (Ensure_Valid): Capture valid status if possible
1855 2008-03-26 Robert Dewar <dewar@adacore.com>
1857 * stand.ads: Deal with reordering of package standard declarations
1859 * cstand.adb: Put package Standard declarations in proper order
1861 2008-03-26 Robert Dewar <dewar@adacore.com>
1863 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
1864 (Pragma_Identifier (.. instead.
1865 (OK_To_Reorder_Components): New flag
1866 (Has_Entries): Code cleanup.
1867 (Warnings_Off_Used): New flag
1868 (Warnings_Off_Used_Unmodified): New flag
1869 (Warnings_Off_Used_Unreferenced): New flag
1870 (Has_Warnings_Off): New function
1871 (Has_Unmodified): New function
1872 (Has_Unreferenced): New function
1873 (Is_Trivial_Subprogram): New flag
1874 (Is_Static_Dispatch_Table_Entity): New attribute.
1875 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
1876 (more consistent with other similar names)
1877 (Access_Subprogram_Type): New classification function
1879 2008-03-26 Robert Dewar <dewar@adacore.com>
1881 * errout.ads: Document new !! insertion sequence
1883 * errout.adb (N_Pragma): Chars field removed, use Chars
1884 (Pragma_Identifier (.. instead.
1885 Replace use of Warnings_Off by Has_Warnings_Off
1886 (Error_Msg_Internal): Don't delete warning ending in !!
1888 2008-03-26 Robert Dewar <dewar@adacore.com>
1890 * par.adb (Check_No_Right_Paren): Removed no longer used
1892 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
1893 (Pragma_Identifier (.. instead.
1895 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
1897 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
1898 par-ch4.adb: Minor improvements in error recovery and messages.
1900 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
1903 * par-ch9.adb: Minor improvements in error recovery and messages
1904 (P_Protected): Better error recovery for "protected type x;"
1906 * par-util.adb: Minor improvements in error recovery and messages
1907 (Check_No_Right_Paren): Removed no longer used
1909 2008-03-26 Ed Schonberg <schonberg@adacore.com>
1911 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
1912 that the prefix of an attribute is the type of the aggregate being
1915 2008-03-26 Javier Miranda <miranda@adacore.com>
1916 Robert Dewar <dewar@adacore.com>
1918 * exp_attr.adb (N_Pragma): Chars field removed.
1919 (Expand_N_Attribute_Reference): If the designated type associated with
1920 attribute 'Unrestricted_Access is a subprogram entity then replace it
1921 by an E_Subprogram_Type itype.
1922 Implement attribute Old
1924 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
1926 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
1928 New_Internal_Entity by call to Create_Itype to centralize calls
1929 building itypes, ad propagate the convention of the designated
1930 subprogram. In addition, disable the machinery cleaning constant
1931 indications from all entities in current scope when 'Unrestricted_Access
1932 corresponds with a node initializing a dispatch table slot.
1933 (Analyze_Attribute): Parameterless attributes returning a string or a
1934 type will not be called with improper arguments, so we can remove junk
1935 code that was dealing with this case.
1936 Implement attribute Old
1938 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
1939 Add entry for pragma Optimize_Alignment
1940 New standard names Sync and Synchronize
1942 2008-03-26 Robert Dewar <dewar@adacore.com>
1943 Arnaud Charlet <charlet@adacore.com>
1945 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
1947 (No_Exception_Propagation_Active): New function.
1948 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
1949 Update comments, and review all uses of No_Exception_Propagation, which
1950 are now correct and in sync with what gigi expects.
1952 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
1954 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
1955 Update comments, and review all uses of No_Exception_Propagation, which
1956 are now correct and in sync with what gigi expects.
1958 2008-03-26 Ed Schonberg <schonberg@adacore.com>
1960 * sem_ch3.adb (Access_Definition): If the access type is the return
1961 result of a protected function, create an itype reference for it
1962 because usage will be in an inner scope from the point of declaration.
1963 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
1964 OK_To_Reorder_Components.
1965 (Make_Index): If an overloaded range includes a universal integer
1966 interpretation, resolve to Standard.Integer.
1967 (Analyze_Subtype_Indication): Copy Convention to subtype
1968 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
1969 limited an synchronized progenitors in type declaration and private
1970 extension declarations.
1972 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
1973 protected subprogram body, determine proper scope from subprogram
1976 2008-03-26 Robert Dewar <dewar@adacore.com>
1978 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
1981 2008-03-26 Gary Dismukes <dismukes@adacore.com>
1983 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
1984 of a heap allocator for a limited unconstrained function return when
1985 resstriction No_Allocators is active.
1986 (Analyze_Allocator): The restriction No_Allocators is now only checked
1987 on allocators that have Comes_From_Source set, as per RM-H.4(7).
1989 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
1990 of a heap allocator for a limited unconstrained function return when
1991 resstriction No_Allocators is active.
1992 (Analyze_Allocator): The restriction No_Allocators is now only checked
1993 on allocators that have Comes_From_Source set, as per RM-H.4(7).
1994 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
1995 operands are fixed-point types, the universal_fixed predefined operation
1996 is used, regardless of whether the operand type (s) have a primitive
1997 operation of the same name.
1999 2008-03-26 Javier Miranda <miranda@adacore.com>
2001 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
2002 Is_Static_Dispatch_Table
2003 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
2004 to Exchange_Declarations to exchange the private and full-view. Bug
2005 found working in this issue.
2006 (Expand_Dispatching_Call): Propagate the convention of the subprogram
2007 to the subprogram pointer type.
2008 (Make_Secondary_DT): Replace generation of Prim'Address by
2009 Address (Prim'Unrestricted_Access)
2010 (Make_DT): Replace generation of Prim'Address by
2011 Address (Prim'Unrestricted_Access)
2012 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
2013 simple call form for single entry.
2014 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
2015 tables of predefined primitives).
2016 (Make_Secondary_DT): Add support to handle access to dispatch tables of
2017 predefined primitives.
2018 (Make_Tags): Add entities to Access_Dispatch_Table associated with
2019 access to dispatch tables containing predefined primitives.
2021 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
2022 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
2024 (Register_Predefined_DT_Entry): Updated to handle the new contents
2025 of attribute Access_Disp_Table (pointers to dispatch tables containing
2026 predefined primitives).
2028 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
2030 (Find_Interface_ADT): Updated to skip the new contents of attribute
2031 Access_Dispatch_Table (pointers to dispatch tables containing predefined
2034 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
2036 (Set_Convention): Use new function Is_Access_Subprogram_Type
2037 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
2038 Access_Dispatch_Table (pointers to dispatch tables containing predefined
2041 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
2042 expanded code avoiding calls to Build_Predef_Prims.
2043 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
2044 call to Build_Get_Predefined_Prim_Op_Address.
2046 2008-03-26 Javier Miranda <miranda@adacore.com>
2048 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
2049 subprogram Corresponding_Runtime_Package to know the runtime package
2050 that will provide support to a given protected type.
2052 * exp_ch9.adb (Add_Private_Declarations,
2053 Build_Protected_Subprogram_Call,
2054 Build_Protected_Entry, Build_Simple_Entry_Call,
2055 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
2056 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
2057 cleanup using the new centralized subprogram Corresponding_Runtime
2058 Package to know the runtime package that provides support to
2059 a given protected type.
2061 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2063 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
2064 assignment is within the initialization procedure for a packed array,
2065 and Initialize_Scalars is enabled, compile right-hand side with checks
2066 off, because the value is purposely out of range.
2068 2008-03-26 Vincent Celier <celier@adacore.com>
2070 * gnatcmd.adb: Add processing for GNAT SYNC
2072 * vms_conv.ads: (Command_Type): Add command Sync
2074 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
2076 * vms_data.ads: Add entries for -gnatw.w
2077 Add qualifier for gnatstub --header-file option
2078 Add switches for GNAT SYNC
2080 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
2081 (Add_Package_Name): New procedure
2082 (Package_Name_List): New function
2083 (Initialize): Add known package names to the list
2084 (Register_New_Package): Add the new package name to the list
2086 2008-03-26 Robert Dewar <dewar@adacore.com>
2088 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
2089 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
2090 Raise_Exception by "raise with" construct.
2092 2008-03-26 Pascal Obry <obry@adacore.com>
2094 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
2095 supported platforms.
2097 * Makefile.rtl: Add g-sercom.o.
2099 * impunit.adb: Add g-sercom.adb.
2101 * s-crtl.ads (open): New routine.
2105 * s-osinte-mingw.ads (BYTE): New type.
2107 (OVERLAPPED): Likewise.
2108 (GENERIC_READ): New constant.
2109 (GENERIC_WRITE): Likewise.
2110 (OPEN_EXISTING): Likewise.
2111 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
2113 (CreateFile): New routine.
2114 (WriteFile): Likewise.
2115 (ReadFile): Likewise.
2116 (CloseHandle): Move next to the other file oriented routines.
2118 * g-sercom.ads: New unit.
2120 * g-sercom.adb: Default implementation, calls to this unit will raise
2121 a program error exception.
2123 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
2124 GNU/Linux implementations.
2126 2008-03-26 Robert Dewar <dewar@adacore.com>
2128 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
2130 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
2131 unchecked conversion for different conventions only for subprogram
2134 2008-03-26 Vincent Celier <celier@adacore.com>
2136 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
2137 to check if the specified object file is correct.
2139 2008-03-26 Thomas Quinot <quinot@adacore.com>
2141 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
2142 Comes_From_Source to exclude primitives from being checked. We want to
2143 exclude predefined primitives only, so use the appropriate specific
2144 predicate. Also, flag a formal parameter of an anonymous
2145 access-to-subprogram type as illegal for a primitive operation of a
2146 remote access to class-wide type.
2148 2008-03-26 Vincent Celier <celier@adacore.com>
2150 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
2151 known, check if it may be a missspelling of a known package name. In
2152 not verbose, not mode, issue warnings only if the package name is a
2153 possible misspelling.
2154 In verbose mode, always issue a warning for a not known package name,
2155 plus a warning if the name is a misspelling of a known package name.
2157 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
2158 limited withs or limited withs are parse during one call.
2159 (Parse_Single_Project): Post parse context clause in two passes: non
2160 limited withs before current project and limited withs after current
2163 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
2164 project with the name With_Name, even if it is only extended indirectly.
2165 (Recursive_Process): Process projects in order: first single withs, then
2166 current project, then limited withs.
2168 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
2169 project with the name With_Name, even if it is only extended indirectly.
2171 2008-03-26 Robert Dewar <dewar@adacore.com>
2173 * scn.adb (Initialize_Scanner): Format messages belong on standard error
2175 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2177 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
2178 a generic subprogram that is imported, do not attempt to compile
2181 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
2182 imported, do not generate a raise_program_error for the non-existent
2184 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
2185 perform minimal name resolution on the generic to avoid spurious
2187 (Find_Actual_Type): the designated type of the actual in a child unit
2188 may be declared in a parent unit without being an actual.
2190 2008-03-26 Robert Dewar <dewar@adacore.com>
2192 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
2193 * sinfo.ads, sinfo.adb (From_At_End): New flag
2195 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2197 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
2198 operations that have an interface parameter.
2199 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
2200 Don't treat No_Return call as raise.
2202 * sem_disp.adb (Check_Dispatching_Operations): apply check for
2203 non-primitive interface primitives to access parameters, not to all
2204 parameters of an access type.
2206 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2208 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
2209 declarations of a parent unit are made visible when compiling a child
2210 instance, the parent is not a hidden open scope, even though it may
2211 contain other pending instance.
2213 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
2214 hidden open scope for some child instance, it does affect the
2215 visibility status of other stach entries.
2216 (Analyze_Object_Renaming): Check that a class-wide object cannot be
2217 renamed as an object of a specific type.
2219 2008-03-26 Robert Dewar <dewar@adacore.com>
2221 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
2222 recursion and raise SE directly.
2223 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
2224 set for formal type for IN mode parameter.
2226 2008-03-26 Robert Dewar <dewar@adacore.com>
2228 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
2229 (Initialize): New procedure
2230 (Output_Warnings_Off_Warnings): New procedure
2231 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
2232 (Output_Non_Modifed_In_Out_Warnings): Ditto
2233 (Warn_On_Unreferenced_Entity): Ditto
2235 2008-03-26 Vincent Celier <celier@adacore.com>
2237 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
2240 2008-03-26 Matthew Heaney <heaney@adacore.com>
2242 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
2243 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
2244 Marked with clauses as private, and controlled operations as overriding
2246 2008-03-26 Robert Dewar <dewar@adacore.com>
2248 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
2250 2008-03-26 Robert Dewar <dewar@adacore.com>
2252 * back_end.adb, back_end.ads: Minor reformatting
2254 * bindgen.adb: Minor clarification of comments
2256 * fname.ads: Minor comment fixes
2258 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
2259 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
2261 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
2262 xsnames.adb: Remove warnings off pragma no longer needed
2264 * a-catizo.ads, a-calari.ads, a-calfor.adb,
2265 a-calfor.ads: Fix header.
2267 2008-03-26 Tristan Gingold <gingold@adacore.com>
2269 * init.c: Do not adjust pc for HPARITH on alpha/vms.
2271 2008-03-26 Robert Dewar <dewar@adacore.com>
2273 * lib-xref.adb: (OK_To_Set_Reference): New function
2274 (Generate_Reference): Don't set referenced from occurrence in Warnings,
2275 Unmodified, or Unreferenced pragma
2277 2008-03-26 Robert Dewar <dewar@adacore.com>
2279 * alloc.ads: Add entries for Warnings_Off_Pragmas table
2281 2008-03-26 GNAT Script <nobody@adacore.com>
2283 * Make-lang.in: Makefile automatically updated
2285 2008-03-26 Robert Dewar <dewar@adacore.com>
2287 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
2288 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
2289 removed, use Chars (Pragma_Identifier (.. instead, adjustments
2290 throughout to accomodate this change.
2292 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
2294 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
2295 Einfo.Set_Needs_Debug_Info)
2297 2008-03-26 Robert Dewar <dewar@adacore.com>
2299 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
2300 Add description for the new gnatstub option '--header-file'
2301 clarification of -gnatwz/-gnatwZ
2302 Add a "Irix-Specific Considerations" section to document the need to
2303 set LD_LIBRARY_PATH when using the default shared runtime library.
2304 Added documentation for both gcov and gprof.
2306 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
2307 messages that are not suppressed when clients are compiled.
2308 Add documentation of s-pooglo s-pooloc
2309 Document the new GNAT.Serial_Communications API.
2310 Add documentation for 'Old attribute
2311 Add description of pragma Optimize_Alignment
2313 * ug_words: Add entries for -gnatw.w -gnatw.W
2315 * usage.adb: Add line for -gnatw.w (warn on warnings off)
2317 2008-03-25 Eric Botcazou <ebotcazou@adacore.com>
2320 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
2322 * decl.c (maybe_pad_type): Avoid padding an integral type when
2323 bumping its alignment is sufficient.
2325 2008-03-25 Arnaud Charlet <charlet@adacore.com>
2327 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
2328 Fix wrong formatting (lines too long)
2330 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2332 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
2333 a-calend-vms.adb, a-calend.adb, a-calend.ads,
2334 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
2335 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
2336 a-cohama.ads, a-comlin.ads, a-coorse.adb,
2337 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
2338 a-except-2005.ads, a-except.adb, a-except.ads,
2339 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
2340 a-exextr.adb, a-filico.ads, a-finali.ads,
2341 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
2342 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
2343 a-sequio.ads, a-strbou.ads, a-strfix.adb,
2344 checks.adb, exp_ch3.adb, exp_ch4.adb,
2345 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
2346 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
2347 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
2348 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
2349 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
2351 2008-03-24 Robert Dewar <dewar@adacore.com>
2353 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
2354 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
2355 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
2356 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
2357 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
2358 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
2359 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
2360 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
2361 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
2362 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
2363 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
2364 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
2365 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
2366 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
2367 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
2368 double spaced if it fits on one line and otherwise single spaced.
2370 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2372 PR documentation/15479
2373 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
2374 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
2375 (doc/gnat_ugn.info): Renamed from ...
2376 (doc/gnat_ugn_unw.info): ... this.
2377 (doc/gnat_ugn.dvi): Renamed from ...
2378 (doc/gnat_ugn_unw.dvi): ... this.
2379 (doc/gnat_ugn.pdf): Renamed from ...
2380 (doc/gnat_ugn_unw.pdf): ... this.
2381 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
2383 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
2384 unconditionally to gnat_ugn.info. Fix cross references to the
2385 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
2386 and GNU make manuals to be proper texinfo links.
2387 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
2389 2008-03-21 Olivier Hainque <hainque@adacore.com>
2391 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
2392 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
2394 2008-03-21 Eric Botcazou <ebotcazou@adacore.com>
2396 * trans.c (addressable_p): Add notes on addressability issues.
2398 2008-03-21 Olivier Hainque <hainque@adacore.com>
2399 Ed Schonberg <schonberg@adacore.com>
2401 * trans.c (addressable_p): Accept COND_EXPR when both arms
2403 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
2404 (call_to_gnu): Do not use name reference in the error message
2405 for a misaligned by_reference_parameter. The actual may be a
2408 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
2410 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2412 2008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2414 * gnat_rm.texi (Implementation Defined Characteristics)
2415 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
2417 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
2418 (Switches for gnatchop, Installing a library): Likewise.
2420 2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
2422 * trans.c (emit_range_check): Do not emit the check if the base type
2423 of the expression is the type against which its range must be checked.
2425 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2427 * decl.c (maybe_pad_type): Use value_factor_p.
2429 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2431 * lang.opt (nostdlib): Move around.
2432 * misc.c (gnat_handle_option): Fix formatting.
2433 (gnat_dwarf_name): Move around.
2434 * trans.c (Case_Statement_to_gnu): Fix formatting.
2435 (gnat_to_gnu): Likewise.
2436 * utils.c (aggregate_type_contains_array_p): Likewise.
2437 (create_subprog_decl): Likewise.
2439 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2441 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
2442 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
2444 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2446 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
2447 BIGGEST_ALIGNMENT when capping the alignment of records with
2448 strict alignment and size clause.
2450 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2452 * lang-specs.h: Pass -gnatwa if -Wall is passed.
2453 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
2454 and -Wuninitialized.
2455 (gnat_post_options): Clear warn_unused_parameter.
2457 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2459 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
2460 aligned bit-fields, bumping the alignment of the record type if deemed
2462 (value_factor_p): Return false instead of 0.
2464 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2466 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
2467 for scalar types with small alignment.
2469 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2471 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
2472 from that of the front-end's end label.
2473 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
2474 from that of the loop label.
2476 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2478 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
2479 comment for the packed array type case.
2480 * utils.c (build_template): Use a loop to strip padding or
2481 containing records for justified modular types.
2483 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2485 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
2486 large alignments specified for types.
2487 (validate_alignment): Minor cleanup.
2489 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2491 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
2492 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
2493 the component for packing, if possible, as well as if a component
2494 size clause is specified.
2495 <E_Record_Subtype>: For an array type used to implement a packed
2496 array, get the component type from the original array type.
2497 Try to get a smaller form of the component for packing, if possible,
2498 as well as if a component size clause is specified.
2499 (round_up_to_align): New function.
2500 (make_packable_type): Add in_record parameter.
2501 For a padding record, preserve the size. If not in_record and the
2502 size is too large for an integral mode, attempt to shrink the size
2503 by lowering the alignment.
2504 Ditch the padding bits of the last component.
2505 Compute sizes and mode manually, and propagate the RM size.
2506 Return a BLKmode record type if its size has shrunk.
2507 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
2508 Use Original_Array_Type to retrieve the type in case of an error.
2509 Adjust call to make_packable_type.
2510 (gnat_to_gnu_field): Likewise.
2511 (concat_id_with_name): Minor tweak.
2512 * trans.c (larger_record_type_p): New predicate.
2513 (call_to_gnu): Compute the nominal type of the object only if the
2514 parameter is by-reference. Do the conversion actual type -> nominal
2515 type if the nominal type is a larger record.
2516 (gnat_to_gnu): Do not require integral modes on the source type to
2517 avoid the conversion for types with identical names.
2518 (addressable_p): Add gnu_type parameter. If it is specified, do not
2519 return true if the expression is not addressable in gnu_type.
2520 Adjust recursive calls.
2521 * utils.c (finish_record_type): Remove dead code.
2523 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
2526 * decl.c (maybe_pad_type): Avoid padding an integral type when
2527 bumping its alignment is sufficient.
2529 2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2531 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
2532 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
2534 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
2535 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
2536 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
2537 code output strings.
2538 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
2539 system-vms_64.ads: Fix typos in ada source code comments.
2540 * sinfo-cn.adb: Remove incomplete sentence.
2542 PR documentation/15479
2543 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
2545 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
2548 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
2550 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
2553 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
2554 that underlying type is present.
2556 2008-02-26 Tom Tromey <tromey@redhat.com>
2558 * misc.c (internal_error_function): Remove test of
2559 USE_MAPPED_LOCATION.
2560 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
2561 (Sloc_to_locus): Remove old location code.
2563 2008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2565 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
2566 `i.e.' by adding comma or `@:' as appropriate.
2567 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
2568 plain characters `C', use `@samp{C}'.
2569 * gnat_ugn.texi (File Naming Rules, About gnatkr)
2570 (Krunching Method): Likewise.
2572 * gnat_ugn.texi (Conventions): List environment variables and
2573 metasyntactic variables.
2574 (Compiling Programs): Fix notation of metasyntactic variables.
2575 Add @file where appropriate. Use @file for file extensions,
2577 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
2578 instead of @file, @env instead of @code.
2580 2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2582 PR documentation/15479
2583 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
2584 and `...' with `@dots{}' or `@enddots{}'.
2586 PR documentation/15479
2587 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
2588 use @command instead of @code, @option instead of @samp or @code,
2589 @code instead of @var, @samp instead of @file.
2591 PR documentation/15479
2592 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
2593 in Makefile rules, by using `&&' rather than `;'.
2595 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2597 PR documentation/15479
2598 * gnat_ugn.texi: In non-code, avoid space before colon.
2599 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
2600 (Examples of gnatxref Usage): Use @command{vi} instead of
2602 (Character Set Control): Do not use @code for UTF-8.
2603 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
2605 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
2607 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
2609 2008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
2612 * env.c: Add __rtems__ to if defined.
2613 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
2614 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
2615 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
2616 pragma Convention as required.
2617 * gsocket.h: Make compile in and out of RTS.
2618 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
2619 Use g-soccon-rtems.ads.
2620 * g-soccon-rtems.ads, system-rtems.ads: New files.
2622 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2625 * Make-lang.in (gnat1): Add $(GMPLIBS).
2627 2008-01-26 Eric Botcazou <ebotcazou@adacore.com>
2629 * decl.c (components_to_record): Improve comment.
2631 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
2633 * decl.c (components_to_record): Do not reuse the empty union type
2634 if there is a representation clause on the record.
2635 * trans.c (addressable_p): Return true for INTEGER_CST.
2637 2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
2639 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
2640 in pointer arithmetics.
2641 * utils2.c (build_allocator): Likewise.
2643 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
2645 * utils.c (build_function_stub): Properly build the call expression.
2647 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
2649 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
2650 before converting the expression to the type of the object.
2651 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
2652 Stabilize constructors for special wrapping types.
2654 2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
2656 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
2657 when necessary. Merge some conditional statements. Update comments.
2658 Rename unchecked_convert_p local variable to suppress_type_conversion.
2659 Do not suppress conversions in the In case.
2660 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
2661 into account on non strict-alignment platforms.
2663 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
2665 * utils.c (aggregate_type_contains_array_p): New predicate.
2666 (create_field_decl): In a packed record, force byte alignment
2667 for fields without specified position that contain an array.
2669 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
2671 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
2673 2008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
2676 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
2678 (bit_field): New packed boolean type used by cpu_set_t.
2679 (cpu_set_t): New type corresponding to the C type with
2680 the same name. Note that on the Ada side we use a bit
2681 field array for the affinity mask. There is not need
2682 for the C macro for setting individual bit.
2683 (pthread_setaffinity_np): New imported routine.
2685 2008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
2688 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
2689 on OpenBSD as is done on other BSD systems.
2692 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
2693 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
2697 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
2701 * init.c (__gnat_error_handler, __gnat_install_handler,
2702 __gnat_init_float): Define for OpenBSD.
2704 * initialize.c (__gnat_initialize): Define for OpenBSD.
2706 2007-12-27 Samuel Tardieu <sam@rfc1149.net>
2709 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
2710 instead of mktemp() or tmpnam() on NetBSD.
2712 2007-12-23 Eric Botcazou <ebotcazou@adacore.com>
2714 * trans.c (call_to_gnu): Make the temporary for non-addressable
2715 In parameters passed by reference.
2716 (addressable_p): Return true for STRING_CST and CALL_EXPR.
2718 2007-12-19 Robert Dewar <dewar@adacore.com>
2720 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
2721 Add pragma Warnings (Off) for unassigned IN OUT arguments
2723 * sem_warn.adb (Output_Reference): Suppress messages for internal names
2724 (Check_References): Extensive changes to tune up warnings
2725 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
2726 (Has_Pragma_Unmodifed_Check_Spec): New function
2727 (Check_References): Implement pragma Unmodified
2728 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
2730 * par-prag.adb: Dummy entry for pragma Unmodified
2732 * sem_prag.adb: Implement pragma Unmodified
2734 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
2735 (Proc_Next_Component_Or_Discriminant): Fix typo.
2738 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
2740 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
2741 because the former already takes care of discarding the result.
2742 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
2745 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
2747 2007-12-19 Eric Botcazou <ebotcazou@adacore.com>
2749 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
2750 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
2751 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
2752 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
2753 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
2754 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
2755 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
2756 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
2757 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
2758 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
2759 (Dynamic_Trampolines_Used): Delete.
2761 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
2762 Turn on stack probing mechanism on LynxOS.
2764 2007-12-19 Bob Duff <duff@adacore.com>
2766 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
2767 the resulting tail recursion by hand. This prevents running out of
2768 memory on deeply nested concatenations, since Field2 is where the left
2769 operand of concatenations is stored.
2770 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
2771 clarify that it can only return OK or Abandon.
2773 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
2774 operand by iteration, in order to avoid running out of memory on
2775 deeply-nested concatenations. Use the Parent pointer to get back up the
2777 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
2778 Resolve_Op_Concat_Rest): New procedures split out of
2779 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
2782 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
2783 Traverse_Func, because the former already takes care of discarding the
2786 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
2787 because the former already takes care of discarding the result.
2788 (Remove_Warning_Messages): Use appropriate subtype for Status and
2791 2007-12-19 Ed Schonberg <schonberg@adacore.com>
2793 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
2794 discriminants forces expansion of the aggregate into assignments.
2795 (Init_Record_Controller): If the type of the aggregate is untagged and
2796 is not inherently limited, the record controller is not limited either.
2798 2007-12-19 Robert Dewar <dewar@adacore.com>
2800 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
2801 handling compile time known size of record or array (case of front end
2802 layout active, e.g. in GNAAMP).
2804 2007-12-19 Javier Miranda <miranda@adacore.com>
2806 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
2807 that forces the construction of static dispatch tables in case of
2810 2007-12-19 Robert Dewar <dewar@adacore.com>
2812 * exp_ch9.adb (Null_Statements): Moved to library level
2813 (Trivial_Accept_OK): New function
2814 (Expand_Accept_Declaration): Use Trivial_Accept_OK
2815 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
2817 2007-12-19 Robert Dewar <dewar@adacore.com>
2819 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
2820 in complex case where array is Volatile.
2822 2007-12-19 Ed Schonberg <schonberg@adacore.com>
2824 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
2825 properly the Ada2005 rules concerning when the current instance of a
2826 record type is aliased.
2828 2007-12-19 Ed Schonberg <schonberg@adacore.com>
2830 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
2832 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
2834 (P_Variant_Part): Cleaner patch for parenthesized discriminant
2836 2007-12-19 Vincent Celier <celier@adacore.com>
2838 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
2839 package is not known
2841 * prj-attr.ads (Unknown_Package): New constant
2842 Do not crash when an unknown package is in several projects
2844 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
2847 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
2848 existing package Language_Processing.
2850 2007-12-19 Ed Schonberg <schonberg@adacore.com>
2851 Gary Dismukes <dismukes@adacore.com>
2852 Samuel Tardieu <sam@rfc1149.net>
2854 PR ada/15803, ada/15805
2855 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
2856 illegal access subtypes when there is a constrained partial view.
2857 (Check_For_Premature_Usage): New procedure inside
2858 Access_Subprogram_Declaration for checking that an access-to-subprogram
2859 type doesn't reference its own name within any formal parameters or
2860 result type (including within nested anonymous access types).
2861 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
2862 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
2863 context is an access_to_variable, the expression cannot be an
2866 2007-12-19 Bob Duff <duff@adacore.com>
2868 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
2869 (Analyze_Concatenation): Use iteration instead of recursion in order
2870 to avoid running out of stack space for deeply nested concatenations.
2872 2007-12-19 Ed Schonberg <schonberg@adacore.com>
2873 Gary Dismukes <dismukes@adacore.com>
2875 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
2876 whose renamed entity is a subprogram that requires overriding.
2877 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
2878 issuing an error for premature usage and issue a message that says
2879 'type' rather than 'object'.
2881 2007-12-19 Gary Dismukes <dismukes@adacore.com>
2884 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
2885 presence of a statically tagged operand (Present (Static_Tag)) with
2886 test for Indeterm_Ancestor_Call when determining whether to propagate
2887 the static tag to tag-indeterminate operands (which forces dispatching
2889 (Check_Controlling_Formals): Ada2005, access parameters can have
2891 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
2892 not insert subprogram in list of primitive operations if already there.
2894 2007-12-19 Tristan Gingold <gingold@adacore.com>
2896 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
2899 2007-12-19 Thomas Quinot <quinot@adacore.com>
2901 Part of PR ada/33688
2902 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
2903 datagram info on Linux.
2905 2007-12-19 Vincent Celier <celier@adacore.com>
2907 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
2908 that the source path name is always found in the dependencies.
2910 2007-12-19 Robert Dewar <dewar@adacore.com>
2912 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
2913 Fix name of Wide_Wide_Latin_1/9 file names
2914 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
2915 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
2916 Add missing documentation for Ada.Command_Line.Response_File
2917 Update list of warning letters for Warnings pragma
2918 Add documentation for pragma Unmodified
2920 2007-12-19 Samuel Tardieu <sam@rfc1149.net>
2922 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
2924 2007-12-17 Arnaud Charlet <charlet@adacore.com>
2926 * s-vxwork-alpha.ads: Removed, no longer used.
2928 2007-12-15 Jakub Jelinek <jakub@redhat.com>
2930 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
2932 2007-12-13 Samuel Tardieu <sam@rfc1149.net>
2935 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
2936 mlib-tgt-specific.adb.
2938 2007-12-13 Bob Duff <duff@adacore.com>
2940 * trans.c (Attribute_to_gnu): Check for violations of the
2941 No_Implicit_Dynamic_Code restriction. This checking used to be done in
2942 the front end, but is moved here so we can make it more accurate.
2944 2007-12-13 Pascal Obry <obry@adacore.com>
2946 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
2947 version is provided for older GNU/Linux distribution not
2948 supporting thread affinity sets.
2950 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
2952 (bit_field): New packed boolean type used by cpu_set_t.
2953 (cpu_set_t): New type corresponding to the C type with
2954 the same name. Note that on the Ada side we use a bit
2955 field array for the affinity mask. There is not need
2956 for the C macro for setting individual bit.
2957 (pthread_setaffinity_np): New imported routine.
2959 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
2961 (Create_Task): Set the processor affinity mask if information
2964 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
2966 2007-12-13 Robert Dewar <dewar@adacore.com>
2968 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
2969 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
2970 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
2971 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
2972 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
2973 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
2974 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
2975 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
2976 for subprogram pointers.
2978 * g-ctrl_c.adb: New file.
2980 * g-ctrl_c.ads (Install_Handler): New body.
2982 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
2983 instead of obsolete function Is_Always_Inlined.
2984 (Freeze_Entity): check for tagged type in imported C subprogram
2985 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
2986 (Freeze_Entity): check for convention Ada subprogram pointer in
2987 imported C subprogram.
2988 (Freeze_Fixed_Point_Type): In the case of a base type where the low
2989 bound would be chopped off and go from negative to zero, force
2990 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
2991 bound) so that the size computation for the base type will take
2992 negative values into account.
2994 2007-12-13 Eric Botcazou <ebotcazou@adacore.com>
2995 Bob Duff <duff@adacore.com>
2996 Tristan Gingold <gingold@adacore.com>
2998 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
2999 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
3000 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
3001 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
3002 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
3003 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
3004 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
3005 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
3006 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
3007 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
3008 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
3009 (Always_Compatible_Rep): New flag to control trampolines globally.
3010 (Dynamic_Trampolines_Used): New flag for implementing the
3011 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
3012 and not yet set correctly for some targets).
3014 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
3015 Simply indirectly call s-stchop when a task is created.
3018 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
3019 appears as an argument (entries A) in an ALI file.
3021 * fe.h (Stack_Check_Limits): Declare new target parameter.
3022 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
3024 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
3025 This variable is declared in C to be sure not subject to elaboration
3027 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
3030 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
3031 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
3033 * s-stchop.ads: Add comments.
3035 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
3036 limit method of stack checking.
3038 * s-stchop-limit.ads: New file.
3040 2007-12-13 Robert Dewar <dewar@adacore.com>
3042 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
3043 a-cihama.adb, g-awk.adb,
3044 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
3047 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
3049 * sem.adb: Update handling of assigned value/unreferenced warnings
3051 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
3053 * lib-xref.ads: Improve documentation for k xref type
3056 Update handling of assigned value/unreferenced warnings
3057 (Generate_Reference): Warning for reference to entity for which a
3058 pragma Unreferenced has been given should be unconditional.
3059 If the entity is a discriminal, mark the original
3060 discriminant as referenced.
3062 * sem_warn.ads, sem_warn.adb
3063 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
3064 no entities referenced in package
3065 (Check_One_Unit): Don't give message about no entities referenced in
3066 a package if a pragma Unreferenced has appeared.
3067 Handle new warning flag -gnatw.a/-gnatw.A
3068 Update handling of assigned value/unreferenced warnings
3070 * atree.h: Add flags up to Flag247
3071 (Flag231): New macro.
3073 2007-12-13 Jose Ruiz <ruiz@adacore.com>
3075 * adaint.h: (__gnat_plist_init): Not defined for RTX.
3077 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
3080 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
3081 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
3082 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
3083 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
3086 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
3088 * sysdep.c (winflush_function for RTX): Procedure that does nothing
3089 since we only have problems with Windows 95/98, which are not
3091 (__gnat_ttyname): Return the empty string on Nucleus, just as
3094 2007-12-13 Robert Dewar <dewar@adacore.com>
3096 * a-textio.adb, a-textio.ads:
3097 Extensive changes to private part for wide character encoding
3099 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
3100 (Look_Ahead): Fix mishandling of encoded sequences
3101 Move declaration of Wch_Con to private part (should not be visible)
3103 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
3104 UTF-8. Probably this is never used, but if it is, brackets is
3107 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
3108 setting wide character encoding for no main program case and when
3109 encoding is specified using -W?
3110 Initialize stack limit of environment task if stack limit method of
3111 stack checking is enabled.
3112 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
3113 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
3114 (Get_Main_Unit_Name): New function.
3115 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
3116 (Gen_Output_File): Set Bind_Main_Program to True for .NET
3118 * bindusg.adb: Add line for -Wx switch
3120 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
3122 Add new useful constant WC_Longest_Sequences
3124 * switch-b.adb: Clean up handling of -Wx switch
3125 For -gnatWx, set Wide_Character_Encoding_Method_Specified
3127 * switch-c.adb: -gnatg activates warning on assertion errors
3128 For -gnatWx, set Wide_Character_Encoding_Method_Specified
3130 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
3132 2007-12-13 Robert Dewar <dewar@adacore.com>
3133 Ed Schonberg <schonberg@adacore.com>
3135 * a-ngcoty.adb: New pragma Fast_Math
3137 * opt.adb: New pragma Fast_Math
3140 Add Implemented_By_Entry to the list of pragmas which do not require any
3142 (Favor_Top_Level): New pragma.
3143 New pragma Fast_Math
3145 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
3146 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
3147 Expand_Allocator_Expression): Take into account VM_Target
3148 (Expand_Attribute, case 'Identity): Handle properly the case where
3149 the prefix is a task interface.
3150 New pragma Fast_Math
3152 * par.adb (Next_Token_Is): New function
3153 (P_Pragma): Add Skipping parameter
3154 (U_Left_Paren): New procedure
3155 (U_Right_Paren): New procedure
3156 New pragma Fast_Math
3158 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
3160 New pragma Fast_Math
3162 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
3163 Implemented_By_Entry.
3164 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
3165 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
3166 items, since it can apply to more than one overloadable entity. Set
3167 new flag Has_Pragma_Inline_Always for Inline_Always case.
3168 (Analyze_Pragma, case Complex_Representation): Improve error message.
3169 (Analyze_Pragma, case Assert): When assertions are disabled build the
3170 rewritten code with Sloc of expression rather than pragma, so new
3171 warning about failing is not deleted.
3172 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
3173 protected types and update error message to reflect that. Test whether
3174 the protected type is allowed for the pragma (an error is issued if the
3175 type has any entries, or components that do not have preelaborable
3177 New pragma Fast_Math
3178 (Analyze_Pragma, case No_Return): Handle generic instance
3180 * snames.h, snames.ads, snames.adb:
3181 Add new predefined name for interface primitive _Disp_Requeue.
3182 New pragma Fast_Math
3184 * a-tags.ads, a-tags.adb: New calling sequence for
3185 String_To_Wide_[Wide_]String
3186 (Secondary_Tag): New subprogram.
3188 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
3190 New calling sequence for String_To_Wide_[Wide_]String
3191 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
3192 the use of the secondary stack for image routines.
3194 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
3195 calling sequence for String_To_Wide_[Wide_]String
3197 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
3199 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
3200 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3202 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
3203 (P_Formal_Part): Use Skipping parameter in P_Pragma call
3204 to improve error recovery
3206 * par-util.adb (Next_Token_Is): New function
3207 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
3209 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
3210 semicolon if missing
3211 (P_Pragma): Implement new Skipping parameter
3212 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3213 Fix location of flag for unrecognized pragma message
3215 * par-tchk.adb (U_Left_Paren): New procedure
3216 (U_Right_Paren): New procedure
3218 2007-12-13 Geert Bosch <bosch@adacore.com>
3221 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
3222 the second or later Scaled_Divide would omit leading zeroes,
3223 resulting in too few digits produced and a Layout_Error as result.
3224 (Put): Initialize Pos.
3226 2007-12-13 Robert Dewar <dewar@adacore.com>
3228 atree.ads, atree.adb (Flag231..Flag247): New functions
3229 (Set_Flag231..Set_Flag247): New procedures
3230 (Basic_Set_Convention): Rename Set_Convention to be
3231 Basic_Set_Convention
3232 (Nkind_In): New functions
3233 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3235 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
3237 of obsolete function Is_Always_Inlined
3238 (Register_Predefined_DT_Entry): Initialize slots of the second
3239 secondary dispatch table.
3240 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3241 (Expand_N_Function_Call): Remove special provision for stack checking.
3243 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
3244 Include _Disp_Requeue in the list of predefined operations.
3245 (Find_Interface_ADT): Modified to fulfill the new specification.
3246 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3248 * par-ch4.adb, nlists.ads, nlists.adb:
3249 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3251 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
3252 Fix location of flag for unrecognized pragma message
3254 * sem_ch7.adb: Use Nkind_In
3256 2007-12-13 Vincent Celier <celier@adacore.com>
3259 Indicate what flags are used by the Project Manager, gprbuild and
3261 (Opt.Follow_Links_For_Dirs): New flag
3262 (Warn_On_Assertion_Failure): New flag
3263 (Wide_Character_Encoding_Method_Specified): New flag
3264 (Suppress_All_Inlining): New switch set by -fno-inline
3265 (Real_VMS_Target): New flag
3266 New pragma Fast_Math
3268 2007-12-13 Robert Dewar <dewar@adacore.com>
3270 * back_end.adb: Recognize -fno-inline
3272 2007-12-13 Robert Dewar <dewar@adacore.com>
3274 * checks.adb: Fix optimization problem with short-circuited form
3276 2007-12-13 Bob Duff <duff@adacore.com>
3278 * clean.adb (Usage): Add line for -aP
3279 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
3280 with a parameter "procedure Usage", instead of passing a pointer to a
3281 procedure. This is to eliminate trampolines (since the Usage procedure
3282 is often nested in a main procedure, and it would be inconvenient to
3285 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
3286 to be generic, with a parameter "procedure Callback (...)", instead of
3287 passing a pointer to a procedure. This is to eliminate trampolines
3288 (since the Callback procedure is usually nested).
3290 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
3291 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
3292 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
3294 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
3295 Use the generic Heap