1 2008-08-08 Thomas Quinot <quinot@adacore.com>
3 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
4 previous change, not needed after all.
6 2008-08-08 Ed Schonberg <schonberg@adacore.com>
8 * exp_ch4.adb (Expand_Allocator_Expression): add check if null
9 exclusion indicator is present
11 2008-08-08 Robert Dewar <dewar@adacore.com>
13 * g-comlin.adb: Minor code reorganization
16 * g-comlin.ads: Minor reformatting
18 * s-fileio.adb: Minor reformatting
20 * sem_attr.adb: Minor code reorganization (use Nkind_In)
23 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
25 * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
26 with s-oscons-tmplt.i.
28 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
30 * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
32 2008-08-06 Ed Schonberg <schonberg@adacore.com>
34 * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
37 * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
38 of a formal parameter of an incomplete type. Improve error message for
39 other improper uses of incomplete types.
41 2008-08-06 Robert Dewar <dewar@adacore.com>
43 * gnat_ugn.texi: Clarify -gnato documentation
45 2008-08-06 Thomas Quinot <quinot@adacore.com>
47 * gcc-interface/Makefile.in,
48 g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
49 g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
50 g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
51 g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
52 g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
53 g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
54 g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
55 g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
56 g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
57 Remove GNAT.Sockets.Constants. This internal package is replaced by
60 2008-08-06 Thomas Quinot <quinot@adacore.com>
62 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
63 Remove obsolete targets referencing gen-soccon
64 When generating s-oscons.ads, use a file name that includes the
65 THREAD_KIND, to ensure that the (potentially different) version from a
66 previous build with a different threads flavour does not get reused.
68 2008-08-06 Thomas Quinot <quinot@adacore.com>
70 * sem_res.adb: Minor reformatting
72 * s-fileio.adb (Open): When file open operation fails, raise Name_Error
73 only when the operating system reports a non-existing file or directory
74 (ENOENT), otherwise raise Name_Error.
76 * exp_ch11.adb: Minor reformatting
78 2008-08-06 Ed Schonberg <schonberg@adacore.com>
80 * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
81 incomplete, add the access_to_subprogram type to the list of private
82 dependents only if the incomplete type will be completed in the current
84 (Build_Discriminant_Constraints): If the type of the discriminant is
85 access_to_variable, reject a constraint that is access_to_constant.
87 2008-08-06 Thomas Quinot <quinot@adacore.com>
89 * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
90 g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
91 g-sttsne-dummy.ads: New files.
93 * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
94 with pragma Unimplemented_Unit for sockets packages on Nucleus.
96 2008-08-06 Pascal Obry <obry@adacore.com>
98 * adaint.c: Another fix for ACL support on Windows.
100 2008-08-06 Javier Miranda <miranda@adacore.com>
102 * exp_disp (Expand_Interface_Actuals): Adds missing support for
103 expansion of calls to subprograms using selected components.
105 2008-08-06 Ed Schonberg <schonberg@adacore.com>
107 * sem_res.adb (Resolve_Call): Use base type to determine whether a
108 dereference is needed because a subtype of an access_to_subprogram is
109 simply an access-subtype
111 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
113 * g-comlin.adb (Set_Command_Line): Now that aliases can contain
114 parameters, always specify the expected separator.
116 2008-08-06 Thomas Quinot <quinot@adacore.com>
118 * xnmake.adb: Use new XUtil package for platform independent text
121 2008-08-06 Vincent Celier <celier@adacore.com>
123 * gnat_ugn.texi: Document compiler switch -gnateG
125 2008-08-06 Quentin Ochem <ochem@adacore.com>
127 * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
128 in the case of an empty pattern size.
129 (Compute_Result): Do not do any computation in the case of an empty
131 (Report_Result): Fixed computation of the overflow guard.
133 2008-08-06 Ed Schonberg <schonberg@adacore.com>
135 * g-awk.adb (Finalize): Do not use directly objects of the type in the
136 finalization routine to prevent elaboration order anomalies in new
139 2008-08-06 Ed Schonberg <schonberg@adacore.com>
141 * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
142 declaration for the same type.
144 2008-08-06 Thomas Quinot <quinot@adacore.com>
146 * sem.adb: Minor rewording (comment)
148 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
150 * g-comlin.adb (Define_Switch, Get_Switches): New.
151 (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
153 (For_Each_Simple_Switch): Allow more control over parameters handling.
154 This generic method now allows ungrouping of switches with parameters
155 and switches with more than one letter after the prefix.
156 (Set_Command_Line): Take care of switches that are prefixed with a
157 switch handling parameters without delimiter (-gnatya and -gnaty3 for
159 (Add_Switch, Remove_Switch): Handle parameters possibly present inside
160 a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
162 (Start, Alias_Switches, Group_Switches): Take care of parameters
163 possibly present inside a group.
165 * g-comlin.ads (Define_Switch): New method used to define a list of
166 expected switches, that are necessary for correctly ungrouping switches
167 with more that one character after the prefix.
168 (Get_Switches): Method that builds a getopt string from the list of
169 switches as set previously by Define_Switch.
170 (Add_Switch, Remove_Switch): New versions of the methods, reporting the
171 status of the operation. Also allow the removal of switches with
173 (Command_Line_Configuration_Record): Maintain a list of expected
176 2008-08-06 Doug Rupp <rupp@adacore.com>
178 * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
179 TARGET_MALLOC64 clear.
181 * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
182 if TARGET_MALLOC64 clear.
184 * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
185 (TARGET_MALLC64): New macro. Default to clear.
187 2008-08-06 Doug Rupp <rupp@adacore.com>
189 * gcc-interface/utils2.c (snames.h) Include
190 (TARGET_ABI_OPEN_VMS): Initialize.
191 (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
194 2008-08-06 Ed Schonberg <schonberg@adacore.com>
196 * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
197 null exclusion in a discriminant declaration
199 * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
200 indicators when type is not an access type.
202 * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
203 indicators when type is not an access type.
205 2008-08-06 Javier Miranda <miranda@adacore.com>
207 * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
208 with the target interface before expanding the code of the interface
211 2008-08-05 Ed Schonberg <schonberg@adacore.com>
214 (Freeze_Entity): A deferred constant does not violate the restriction
215 No_Default_Initialization,
217 * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
218 can carry a null exclusion indicator, and on which an error may be
219 posted if the indicator is redundant.
221 * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
222 does not apply to a subtype mark that already excludes null.
224 * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
225 exclusion does not apply to a subtype mark that already excludes null.
227 2008-08-05 Thomas Quinot <quinot@adacore.com>
229 * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
231 2008-08-05 Doug Rupp <rupp@adacore.com>
233 * vms_data.ads: Translation for /POINTER_SIZE qualifier.
235 2008-08-05 Thomas Quinot <quinot@adacore.com>
237 * gsocket.h: Make this file includable in a Nucleus environment, which
238 does not support sockets.
240 * socket.c: Remove Nucleus-specific hack.
242 2008-08-05 Pascal Obry <obry@adacore.com>
244 * adaint.c: Remove support for readable attribute on vxworks and nucleus
246 2008-08-05 Ed Schonberg <schonberg@adacore.com>
249 (Analyze_Attribute, case 'Result): handle properly the case where some
250 operand of the expression in a post-condition generates a transient
253 * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
254 right-hand side when it is an anonymous access_to_subprogram, to force
255 static accessibility check when needed.
257 2008-08-05 Sergey Rybin <rybin@adacore.com>
259 * gnat_ugn.texi: Changing the description of the gnatcheck metrics
260 rule according to the change in the rule option.
261 Add documentation for -gnatw.b/-gnatw.B
263 2008-08-05 Robert Dewar <dewar@adacore.com>
265 * ug_words: Add entries for -gnatw.b/-gnatw.B
267 * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
269 2008-08-05 Vincent Celier <celier@adacore.com>
271 * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
274 * a-ztdeio.adb: Ditto.
276 2008-08-05 Pascal Obry <obry@adacore.com>
278 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
281 2008-08-05 Vincent Celier <celier@adacore.com>
284 (Wide_String_To_String): Returns a String with the same 'First as its
286 (Wide_Wide_String_To_String): Ditto
289 (Wide_String_To_String): Document that the lowest index of the returned
290 String is equal to S'First.
292 2008-08-05 Thomas Quinot <quinot@adacore.com>
294 * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
296 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
299 2008-08-05 Robert Dewar <dewar@adacore.com>
301 * opt.ads (Warn_On_Biased_Representation): New flag
304 (Analyze_Attribute_Definition_Clause): Issue warning when biased
305 representation is required.
306 (Minimum_Size): Don't allow biasing if enum rep clause case
309 (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
310 (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
312 * usage.adb: Add lines for -gnatw.b/B switches
314 2008-08-05 Pascal Obry <obry@adacore.com>
316 * a-coinve.adb: Reorder the code to avoid uninitialized warning.
318 * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
320 2008-08-05 Thomas Quinot <quinot@adacore.com>
322 * socket.c: Minor reformatting.
324 2008-08-05 Robert Dewar <dewar@adacore.com>
326 * sem_ch3.adb: Minor reformatting
328 * prj-nmsc.adb: Minor reformatting
330 2008-08-05 Ed Schonberg <schonberg@adacore.com>
332 * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
333 visibility check on the component type if the simple test fails.
335 2008-08-05 Jose Ruiz <ruiz@adacore.com>
337 * init.c (__gnat_install_handler for linux): If we are building the
338 Xenomai run time then we need to do two additional things: avoid
339 memory swapping and transform the Linux environment task into a native
342 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
343 time): Use interface to Xenomai native skin and avoid linux-specific
344 way of setting CPU affinity.
345 (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
347 2008-08-05 Bob Duff <duff@adacore.com>
349 * checks.ads: Minor comment fix
351 2008-08-05 Thomas Quinot <quinot@adacore.com>
353 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
354 g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
357 2008-08-05 Robert Dewar <dewar@adacore.com>
359 * mlib.adb: Minor code reorganization
362 * make.adb: Minor reformatting
364 * prj-attr.ads: Minor reformatting
366 * s-os_lib.adb: Minor reformatting
368 * s-fileio.adb: Minor code reorganization
371 * prj.ads: Minor reformatting
373 2008-08-05 Bob Duff <duff@adacore.com>
375 * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
376 unresolved initial value of "null", because it causes implicitly
377 generated "=" operators to be ambiguous, and because this type should
378 not be passed to gigi.
380 2008-08-05 Vincent Celier <celier@adacore.com>
382 * mlib.adb: Update comments.
384 * make.adb (Switches_Of): Check for Switches (others), before checking
385 for Default_Switches ("Ada").
386 (Gnatmake): Use Builder'Switches (others) in preference to
387 Builder'Default_Switches ("Ada") if there are several mains.
390 (Add_Attribute): Add component Others_Allowed in Attribute_Record
394 Add markers to indicates that attributes Switches allow others as index
395 (Others_Allowed_For): New Boolean function, returning True for
396 attributes with the mark.
397 (Initialize): Recognize optional letter 'O' as the marker for
398 associative array attributes where others is allowed as the index.
401 (Others_Allowed_For): New Boolean function
402 (Attribute_Record): New Boolean component Others_Allowed
405 (Parse_Attribute_Declaration): For associative array attribute where
406 others is allowed as the index, allow others as an index.
409 (Process_Binder): Skip associative array attributes with index others
410 (Process_Compiler): Ditto
413 (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
414 index is All_Other_Names.
417 (All_Other_Names): New constant
420 (Process_Declarative_Items): Skip associative array attribute when index
421 is reserved word "others".
423 2008-08-05 Vasiliy Fofanov <fofanov@adacore.com>
425 * gen-oscons.c: Adapt for VMS where termios.h is not available.
427 2008-08-05 Thomas Quinot <quinot@adacore.com>
429 * a-rttiev.adb: Minor reformatting (comments)
431 * gen-soccon.c: Rename to gen-oscons.c
433 * gen-oscons.c: New file. Now generate System.OS_Constants instead of
434 GNAT.Sockets.Constants.
435 Add new constants for GNAT.Serial_Communications and System.File_IO.
437 2008-08-05 Javier Miranda <miranda@adacore.com>
439 * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
440 * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
441 implementation of this routine has been simplified.
443 2008-08-05 Pascal Obry <obry@adacore.com>
445 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
446 Set_Read_Only Win32 implementation.
448 2008-08-05 Thomas Quinot <quinot@adacore.com>
450 * exp_strm.adb: Minor reformatting (comments)
452 * sem_ch12.adb: Minor reformatting.
454 2008-08-05 Robert Dewar <dewar@adacore.com>
456 * sem_ch3.adb: Minor reformatting
458 * checks.adb: Minor reformatting
460 2008-08-05 Thomas Quinot <quinot@adacore.com>
462 * tbuild.ads (New_External_Name): Update spec to reflect relaxed
463 restriction on Prefix.
465 2008-08-05 Jerome Lambourg <lambourg@adacore.com>
467 * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
468 methods needed to handle switch sections when building a command line.
469 (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
470 Current_Section): New public methods or methods modified to handle
471 building command lines with sections.
472 (Set_Command_Line): Take into account sections when analysing a switch
474 (Start): Sort the switches by sections before iterating the command line
477 * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
478 Is_New_Section, Current_Section): New methods or methods modified to
479 handle building command lines with sections.
481 2008-08-05 Ed Schonberg <schonberg@adacore.com>
483 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
484 discriminants, indicate that the corresponding object declaration has
485 no initialization, to prevent spurious warnings when the access type is
488 2008-08-05 Ed Schonberg <schonberg@adacore.com>
490 * sem_res.adb (Resolve_Call): If this is a call to the predefined
491 Abort_Task, warn if the call appears within a protected operation.
493 2008-08-04 Robert Dewar <dewar@adacore.com>
495 * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
497 2008-08-04 Ed Schonberg <schonberg@adacore.com>
500 (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
501 anonymous access to protected subprogram that is the return type of the
502 specification of a subprogram body.
505 (Analyze_Subprogram_Body): if the return type is an anonymous access to
506 subprogram, freeze it now to prevent access anomalies in the back-end.
508 * exp_ch9.adb: Minor code cleanup.
509 Make sure that new declarations are inserted into the tree before
510 analysis (from code reading).
512 2008-08-04 Robert Dewar <dewar@adacore.com>
515 (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
518 2008-08-04 Thomas Quinot <quinot@adacore.com>
520 * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
522 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
524 * g-soccon-mingw.ads: Fix value for MSG_WAITALL
526 2008-08-04 Javier Miranda <miranda@adacore.com>
528 * sem_prag.adb (Process_Convention): Add missing support for
529 N_Private_Extension_Declaration nodes.
531 2008-08-04 Robert Dewar <dewar@adacore.com>
533 * exp_ch4.adb: Minor reformatting
535 2008-08-04 Pascal Obry <obry@adacore.com>
537 * adaint.h: Add missing prototype.
539 * adaint.c: Refine support for Windows file attributes.
541 2008-08-04 Robert Dewar <dewar@adacore.com>
544 (Valid_Conversion): Catch case of designated types having different
545 sizes, even though they statically match.
547 2008-08-04 Javier Miranda <miranda@adacore.com>
549 * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
550 added in previous patch to handle access to subprograms.
552 2008-08-04 Robert Dewar <dewar@adacore.com>
555 (Freeze_Entity): Only check No_Default_Initialization restriction for
556 constructs that come from source
558 2008-08-04 Thomas Quinot <quinot@adacore.com>
560 * exp_ch6.adb: Minor comment fix.
562 * sem_ch4.adb: Minor reformatting.
564 2008-08-04 Robert Dewar <dewar@adacore.com>
566 * sem_res.adb: (Large_Storage_Type): Improve previous change.
568 2008-08-04 Pascal Obry <obry@adacore.com>
570 * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
573 2008-08-04 Javier Miranda <miranda@adacore.com>
575 * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
576 for N_Formal_Object_Declaration nodes. Adding kludge required by
577 First_Formal to provide its functionality with access to functions.
578 (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
579 for anonymous access types returned by functions.
581 * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
582 conversion of null-excluding access types (required only once to force
583 the generation of the required runtime check).
585 * sem_type.adb (Covers): minor reformating
587 * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
588 with internally generated nodes. Avoid generating the error inside init
591 * sem_res.adb (Resolve_Membership_Test): Minor reformating.
592 (Resolve_Null): Generate the null-excluding check in case of assignment
593 to a null-excluding object.
594 (Valid_Conversion): Add missing support for anonymous access to
597 * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
598 anonymous access types whose designated type is an itype. This case
599 occurs with anonymous access to protected subprograms types.
600 (Analyze_Return_Type): Add missing support for anonymous access to
601 protected subprogram.
603 * sem_eval.adb (Subtypes_Statically_Match): In case of access to
604 subprograms addition of missing check on matching convention. Required
605 to properly handle access to protected subprogram types.
607 * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
608 null excluding access types.
610 2008-08-04 Ed Schonberg <schonberg@adacore.com>
612 * sem_ch12.adb: Add comments
614 * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
615 access type and the allocator is not initialized, warn rather than
618 2008-08-04 Robert Dewar <dewar@adacore.com>
620 * exp_ch4.adb: Minor reformatting
622 * exp_dist.adb: Minor reformatting
624 * g-comlin.adb: Minor reformatting
626 2008-08-04 Gary Dismukes <dismukes@adacore.com>
628 * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
629 target to the type of the aggregate in the case where the target object
632 * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
633 result type is class-wide and inherently limited, and the expression
634 has a specific type, create a return object of the specific type, for
635 more efficient handling of returns of build-in-place aggregates (avoids
636 conversions of the class-wide return object to the specific type on
637 component assignments).
639 * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
640 about a type mismatch for a class-wide function with a return object
641 having a specific type when the object declaration doesn't come from
642 source. Such an object can result from the expansion of a simple return.
644 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
646 * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
648 * gcc-interface/Makefile.in: Use 64bit-specific system files when
649 compiling for 64bit windows.
651 2008-08-04 Jerome Lambourg <lambourg@adacore.com>
653 * g-comlin.adb (Group_Switches): Preserve the switch order when
654 grouping and allow switch grouping of switches with more than one
655 character extension (e.g. gnatw.x).
656 (Args_From_Expanded): Remove this now obsolete method.
658 2008-08-04 Ed Schonberg <schonberg@adacore.com>
660 * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
661 chain at once, to ensure that type is properly decorated for back-end,
662 when allocator appears within a loop.
664 2008-08-04 Kevin Pouget <pouget@adacore.com>
666 * snames.h, snames.adb, snames.ads:
667 Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
669 * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
670 Build_To_Any_Call and Build_TypeCode_Call procedures.
672 * exp_attr.adb, sem_attr.adb: Add corresponding cases.
674 * rtsfind.ads: Add corresponding names.
676 * tbuild.adb: Update prefix restrictions to allow '_' character.
678 2008-08-04 Doug Rupp <rupp@adacore.com>
680 * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
681 * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
682 * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
683 use it. Calculate pointer range overflow using 64bit types.
685 2008-08-04 Ed Schonberg <schonberg@adacore.com>
687 * sem_ch3.adb (Access_Definition): A formal object declaration is a
688 legal context for an anonymous access to subprogram.
690 * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
691 indirect call, report success to the caller to include possible
694 * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
696 of the extended return is an anonymous access_to_subprogram type.
699 (Resolve_Call): Insert a dereference if the type of the subprogram is an
700 access_to_subprogram and the context requires its return type, and a
701 dereference has not been introduced previously.
703 2008-08-04 Arnaud Charlet <charlet@adacore.com>
705 * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
706 gnatcheck support in GPS.
708 2008-08-04 Vincent Celier <celier@adacore.com>
710 * mlib.adb (Create_Sym_Links): Create relative symbolic links when
713 2008-08-04 Vincent Celier <celier@adacore.com>
715 * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
716 variable, but don't check the resulting value as it has no impact on
720 (Generate_Processed_File): New Boolean flag, set to True in the compiler
721 when switch -gnateG is used.
724 (Preprocess): new Boolean out parameter Source_Modified. Set it to True
725 when the source is modified by the preprocessor and there is no
726 preprocessing errors.
728 * prep.ads (Preprocess): new Boolean out parameter Source_Modified
731 (Load_File): Output the result of preprocessing if the source text was
734 * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
736 * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
738 * ug_words: Add VMS equivalent for -gnateG
741 Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
743 2008-08-04 Doug Rupp <rupp@adacore.com>
745 * gcc-interface/utils2.c:
746 (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
749 2008-08-04 Robert Dewar <dewar@adacore.com>
751 * par-ch10.adb: Minor reformatting
753 * i-cobol.adb: Minor reformatting.
755 2008-08-04 Ed Schonberg <schonberg@adacore.com>
757 * sem_ch3.adb (Access_Definition): Create an itype reference for an
758 anonymous access return type of a regular function that is not a
761 2008-08-04 Vincent Celier <celier@adacore.com>
763 * prj-attr.adb: New Builder attribute Global_Compilation_Switches
765 * snames.adb: New standard name Global_Compilation_Switches
767 * snames.ads: New standard name Global_Compilation_Switches
769 * make.adb: Correct spelling error in comment
771 2008-08-04 Arnaud Charlet <charlet@adacore.com>
773 * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
776 2008-08-04 Thomas Quinot <quinot@adacore.com>
778 * sem_ch10.adb: Minor comment fix.
780 2008-08-04 Robert Dewar <dewar@adacore.com>
782 * restrict.adb: Improved messages for restriction warnings
784 * restrict.ads: Improved messages for restriction messages
786 * s-rident.ads (Profile_Name): Add No_Profile
788 2008-08-04 Robert Dewar <dewar@adacore.com>
790 * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
792 2008-08-04 Robert Dewar <dewar@adacore.com>
794 * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
796 2008-08-04 Vincent Celier <celier@adacore.com>
799 (Copy_Package_Declarations): When inheriting package Naming from a
800 project being extended, do not inherit source exception names.
802 2008-08-04 Ed Schonberg <schonberg@adacore.com>
804 * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
805 list of declaration to find previous subprogram, do not go to the
806 original node of a generic unit.
808 2008-08-02 Eric Botcazou <ebotcazou@adacore.com>
810 * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
811 New case. Convert BOOLEAN_TYPE operation to the default integer type.
813 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
815 * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
816 * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
817 and adjust for above renaming.
818 * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
819 gnu_expr_alt_type parameter. Convert the expression to it instead
820 of changing its type in place.
821 (build_function_stub): Adjust call to above function.
823 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
825 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
826 code. Do not get full definition of deferred constants with address
827 clause for a use. Do not ignore deferred constant definitions with
828 address clause. Ignore constant definitions already marked with the
830 <object>: Remove obsolete comment. For a deferred constant with
831 address clause, get the initializer from the full view.
832 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
833 Rework and remove obsolete comment.
834 <N_Object_Declaration>: For a deferred constant with address clause,
835 mark the full view with the error node.
836 * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
839 2008-08-01 Hristian Kirtchev <kirtchev@adacore.com>
841 * rtsfind.ads: Add block IO versions of stream routines for Strings.
843 * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
844 sem_prag.adb, snames.adb, snames.ads, snames.h,
845 par-prag.adb: Undo previous stream related changes.
847 * s-rident.ads: Add new restriction No_Stream_Optimizations.
849 * s-ststop.ads, s-ststop.adb: Comment reformatting.
850 Define enumeration type to designate different IO mechanisms.
851 Enchance generic package Stream_Ops_Internal to include an
852 implementation of Input and Output.
854 * exp_attr.adb (Find_Stream_Subprogram): If restriction
855 No_Stream_Optimization is active, choose the default byte IO
856 implementations of stream attributes for Strings.
857 Otherwise use the corresponding block IO version.
859 2008-08-01 Olivier Hainque <hainque@adacore.com>
861 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
862 turn Ada Pure into GCC const, now implicitely implying nothrow as well.
864 2008-08-01 Robert Dewar <dewar@adacore.com>
866 * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
867 convert plain identifier into defining identifier.
869 2008-08-01 Robert Dewar <dewar@adacore.com>
871 * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
874 * lib-xref.adb: Add error defense.
876 2008-08-01 Bob Duff <duff@adacore.com>
878 * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
880 2008-08-01 Gary Dismukes <dismukes@adacore.com>
882 * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
883 correct accessibility levels. In the "when others" case, retrieve the
884 access level of the Etype of Prev rather than Prev_Orig, because the
885 original exression has not always been analyzed.
887 2008-08-01 Robert Dewar <dewar@adacore.com>
889 * prj-nmsc.adb: Minor reformatting
891 * sem_ch4.adb: Minor reformatting
892 Minor code reorganization
894 * prj.ads: Minor reformatting
896 * s-os_lib.adb: Minor reformatting
898 * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
901 * scans.ads: Minor reformatting.
903 * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
904 (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
907 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
909 * sem_ch12.adb: Minor comment reformatting
911 * par-ch3.adb (P_Type_Declaration): Properly handle missing type
914 2008-08-01 Robert Dewar <dewar@adacore.com>
916 * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
919 2008-08-01 Ed Schonberg <schonberg@adacore.com>
921 * checks.adb (Apply_Float_Conversion_Check): If the expression to be
922 converted is a real literal and the target type has static bounds,
923 perform the conversion exactly to prevent floating-point anomalies on
926 2008-08-01 Vincent Celier <celier@adacore.com>
928 * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
930 * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
932 * prj.adb (Object_Exist_For): Use Object_Generated, not
933 Objects_Generated that is removed and was never modified anyway.
936 (Path_Syntax_Kind): New enumeration type
937 (Language_Config): New component Path_Syntax, defaulted to Host.
938 Components PIC_Option and Objects_Generated removed, as they are not
941 * snames.adb: New standard name Path_Syntax
943 * snames.ads: New standard name Path_Syntax
945 2008-08-01 Vincent Celier <celier@adacore.com>
948 (Adalib_Path): New variable to store the path of the adalib directory
949 when procedure Specify_Adalib_Dir is called.
950 (Lib_Directory): If Adalib_Path is not null, return its value
951 (Specify_Adalib_Dir): New procedure
953 * mlib-utl.ads (Specify_Adalib_Dir): New procedure
955 2008-08-01 Ed Schonberg <schonberg@adacore.com>
958 (Check_Precondition_Postcondition): If not generating code, analyze the
959 expression in a postcondition that appears in a subprogram body, so that
960 it is properly decorated for ASIS use.
962 2008-08-01 Gary Dismukes <dismukes@adacore.com>
964 * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
965 Orig_Prev to Prev in the case where the actual is N_Function_Call or
966 N_Identifier. This was interfering with other cases that are rewritten
967 as N_Identifier, such as allocators, resulting in passing of the wrong
968 accessibility level, and based on testing this code is apparently no
969 longer needed at all.
971 2008-08-01 Ed Schonberg <schonberg@adacore.com>
973 * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
974 procedure call whose prefix
975 is a parameterless function call that returns an access_to_procedure.
977 2008-08-01 Jose Ruiz <ruiz@adacore.com>
979 * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
980 for RTX. Adding a suffix that is incremented at each iteration.
982 2008-08-01 Robert Dewar <dewar@adacore.com>
984 * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
987 2008-08-01 Jerome Lambourg <lambourg@adacore.com>
989 * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
990 paths, which are authorized by Windows but can lead to errors when used
993 2008-08-01 Ed Schonberg <schonberg@adacore.com>
995 * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
996 a pending instantiation for the body of a subprogram that is to be
1000 (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
1002 * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
1003 create a pending instance for its body, so that calls to the subprogram
1004 can be inlined by the back-end.
1006 2008-08-01 Jose Ruiz <ruiz@adacore.com>
1008 * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
1011 2008-08-01 Robert Dewar <dewar@adacore.com>
1013 * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
1015 2008-08-01 Doug Rupp <rupp@adacore.com>
1017 * gnat_rm.texi: Document new mechanism Short_Descriptor.
1019 * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
1022 * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1023 mechanism and Short_Descriptor mechanism values.
1025 * snames.adb (preset_names): Add short_descriptor entry.
1027 * snames.ads: Add Name_Short_Descriptor.
1029 * types.h: Add new By_Short_Descriptor mechanism values.
1031 * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
1032 mechanism and Short_Descriptor mechanism values.
1034 * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
1036 (Descriptor_Codes): Modify range for new mechanism values.
1038 * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
1041 * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
1042 (gnat_to_gnu_param): Handle By_Short_Descriptor.
1044 * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
1045 (build_vms_descriptor32): New prototype.
1046 (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
1048 * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
1049 argument in call fill_vms_descriptor.
1051 * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
1052 build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
1053 (build_vms_descriptor): Renamed from build_vms_descriptor64.
1054 (convert_vms_descriptor32): New function.
1055 (convert_vms_descriptor64): New function.
1056 (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
1059 * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
1062 2008-08-01 Jose Ruiz <ruiz@adacore.com>
1064 * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
1065 nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
1068 2008-08-01 Jose Ruiz <ruiz@adacore.com>
1070 * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
1071 current directory so only fully qualified names are allowed.
1073 2008-08-01 Robert Dewar <dewar@adacore.com>
1076 Minor editing, remove uncomfortable use of semicolon
1078 * s-ststop.adb: Add some ??? comments
1080 * sem_ch10.adb: Minor reformatting
1083 Minor comment fixes, some pragmas were not properly
1084 categorized in the comments, documentation change only
1086 * xref_lib.adb: Minor reformatting
1088 * sinput.adb: Minor reformatting
1090 * gnatchop.adb: Minor reformatting
1092 * sem_util.ads: Minor reformatting.
1094 * opt.ads: Minor documentation fix
1096 * scng.adb: Minor reformatting
1098 * prj-part.adb: Update comments
1100 2008-08-01 Ed Schonberg <schonberg@adacore.com>
1102 * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
1103 tagged synchronized type, use corresponding record type.
1105 2008-08-01 Doug Rupp <rupp@adacore.com>
1107 * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
1108 dummy transfer address for debugging.
1110 * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
1112 * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
1114 2008-07-31 Eric Botcazou <ebotcazou@adacore.com>
1116 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
1117 * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
1119 2008-07-31 Pascal Obry <obry@adacore.com>
1121 * prj-nmsc.adb: Keep Object and Exec directory casing.
1123 2008-07-31 Jose Ruiz <ruiz@adacore.com>
1125 * system-rtx-rtss.ads
1126 Change the default stack size. It is important to set the commit part.
1129 (Initialize): Get the clock resolution.
1130 (RT_Resolution): Return the clock resolution that is indicated by the
1133 * s-parame-vxworks.adb
1134 Document that this body is used for RTX in RTSS (kernel) mode.
1136 * gcc-interface/Makefile.in
1137 (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
1138 s-parame-vxworks.adb body in order to have reasonable stack sizes in
1139 RTX RTSS kernel mode. Virtual memory is not used in that case, so we
1140 cannot ask for too big values.
1142 2008-07-31 Robert Dewar <dewar@adacore.com>
1144 * exp_aggr.adb: Minor reformatting
1146 * makeutl.adb: Minor reformatting
1148 * prj-env.adb: Minor reformatting
1150 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
1152 * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
1153 tagged type is completed by a concurrent type.
1155 2008-07-31 Gary Dismukes <dismukes@adacore.com>
1158 (Resolve_Record_Aggregate): Bypass error that a type without
1159 components must have a "null record" aggregate when compiling for Ada
1160 2005, since it's legal to give an aggregate of form (others => <>)
1163 2008-07-31 Javier Miranda <miranda@adacore.com>
1165 * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
1166 handle synchronized types. Required to handle well the object.operation
1167 notation applied to synchronized types.
1169 2008-07-31 Quentin Ochem <ochem@adacore.com>
1171 * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
1172 anymore - just used internally.
1173 Added handling of very small tasks - when the theoretical size is
1174 already full at the point of the call.
1175 (Report_Result): Fixed result computation, Stack_Used_When_Filling does
1176 not need to be added to the result.
1178 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
1180 * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
1181 corresponding spec is a primitive wrapper. Update comment.
1183 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
1185 * bindgen.adb Comment reformatting. Update the list of run-time globals.
1186 (Gen_Adainit_Ada): Add the declaration, import and value set for
1187 configuration flag Canonical_Streams.
1188 (Gen_Adainit_C): Add the declaration and initial value of external
1189 symbol __gl_canonical_streams.
1191 * init.c: Update the list of global values computed by the binder.
1193 * opt.ads: Add flag Canonical_Streams.
1195 * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
1196 semantically handled pragmas.
1198 * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
1199 (Analyze_Pragma): Add case for pragma Canonical_Streams.
1201 * snames.adb: Add character value for name Canonical_Streams.
1204 Add Name_Canonical_Streams to the list of configuration pragmas.
1205 Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
1207 * snames.h: Add a definition for Pragma_Canonical_Streams.
1210 Add a flag and import to seize the value of external symbol
1211 __gl_canonical_streams. Update comment and initial value of constant
1214 * gnat_rm.texi: Add section of pragma Canonical_Streams.
1217 Add pragma Canonical_Streams to the list of configuration pragmas.
1219 2008-07-31 Ed Schonberg <schonberg@adacore.com>
1221 * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
1222 has the form A.B.C and B is a unit renaming, analyze its compilation
1223 unit and add a with_clause on A.b to the context.
1225 2008-07-31 Vincent Celier <celier@adacore.com>
1227 * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
1228 return the empty string, instead of raising Constraint_Error.
1230 2008-07-31 Gary Dismukes <dismukes@adacore.com>
1232 * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
1234 * checks.adb (Apply_Accessibility_Check): Insert the check on
1238 (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
1239 to new parameter Insert_Node on call to Apply_Accessibility_Check.
1240 Necessary to distinguish the insertion node because the dereferenced
1241 formal may come from a rename, but the check must be inserted in
1242 front of the attribute.
1245 (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
1246 call to Apply_Accessibility_Check.
1247 (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
1248 on call to Apply_Accessibility_Check.
1251 2008-07-31 Javier Miranda <miranda@adacore.com>
1253 * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
1254 types when the candidate type is a synchronized type.
1256 * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
1257 types, and complete management of synchronized types adding missing
1258 code to handle formal that is a synchronized type.
1260 * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
1261 are not available and cause the compiler to blowup. Found compiling
1262 test with switch -gnatc
1264 * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
1265 Has_Correct_Formal_Mode plus code cleanup.
1267 2008-07-31 Bob Duff <duff@adacore.com>
1269 * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
1270 recognized as two end-of-lines, but it should be just one.
1272 2008-07-31 Thomas Quinot <quinot@adacore.com>
1274 * exp_ch9.adb: Minor reformatting
1276 * tbuild.ads: Fix several occurrences of incorrectly referring to
1277 Name_Find as Find_Name.
1279 2008-07-31 Ed Schonberg <schonberg@adacore.com>
1281 * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
1282 and the context is an object declaration with non-static bounds, treat
1283 the aggregate as non-static.
1285 2008-07-31 Vincent Celier <celier@adacore.com>
1287 * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
1288 Move back spec of Parse_Single_Project to body, as it is not called
1289 outside of package Prj.Part.
1290 (Project_Data): Remove components Linker_Name, Linker_Path and
1291 Minimum_Linker_Options as they are no longer set.
1292 Remove function There_Are_Ada_Sources from package Prj and move code
1293 in the only place it was used, in Prj.Env.Set_Ada_Paths.
1295 2008-07-31 Arnaud Charlet <charlet@adacore.com>
1297 * mlib-utl.ads: Fix typo.
1299 2008-07-31 Robert Dewar <dewar@adacore.com>
1301 * sem_ch12.adb: Minor reformatting
1303 2008-07-31 Sergey Rybin <rybin@adacore.com>
1305 * gnat_ugn.texi: Change the description of the
1306 Overly_Nested_Control_Structures: now the rule always requires a
1307 positive parameter for '+R' option
1309 2008-07-31 Thomas Quinot <quinot@adacore.com>
1311 * g-pehage.adb: Minor reformatting
1313 2008-07-31 Pascal Obry <obry@adacore.com>
1315 * s-finimp.ads: Minor reformatting.
1317 2008-07-31 Vincent Celier <celier@adacore.com>
1319 * s-regexp.ads: Minor comment fix
1321 2008-07-31 Arnaud Charlet <charlet@adacore.com>
1323 * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
1324 so that we can compile this file successfully with -gnatc.
1326 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
1328 * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
1329 of the type when looking for stream subprograms for type String,
1330 Wide_String and Wide_Wide_String.
1332 * s-ststop.adb: Change the initialization expression of constant
1335 2008-07-31 Geert Bosch <bosch@adacore.com>
1338 New file implementing __gnat_mulv64 signed integer multiplication with
1341 * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
1343 * gcc-interface/gigi.h:
1344 (standard_types): Add ADT_mulv64_decl
1345 (mulv64_decl): Define subprogram declaration for __gnat_mulv64
1347 * gcc-interface/utils.c:
1348 (init_gigi_decls): Add initialization of mulv64_decl
1350 * gcc-interface/trans.c:
1351 (build_unary_op_trapv): New function
1352 (build_binary_op_trapv): New function
1353 (gnat_to_gnu): Use the above functions instead of
1354 build_{unary,binary}_op
1356 * gcc-interface/Makefile.in
1357 (LIBGNAT_SRCS): Add arit64.c
1358 (LIBGNAT_OBJS): Add arit64.o
1360 2008-07-31 Vincent Celier <celier@adacore.com>
1362 * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
1363 Linker'Default_Switches are declared. Warn if they are declared.
1365 2008-07-31 Ed Schonberg <schonberg@adacore.com>
1367 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
1368 Insert_Actions to place the pointer declaration in the code, rather
1369 than Insert_Before_And_Analyze, so that insertions of temporaries are
1370 kept in the proper order when transient scopes are present.
1373 2008-07-31 Robert Dewar <dewar@adacore.com>
1375 * einfo.adb (Spec_PPC): Now defined for generic subprograms
1377 * einfo.ads (Spec_PPC): Now defined for generic subprograms
1379 * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
1382 2008-07-31 Vincent Celier <celier@adacore.com>
1384 * s-os_lib.adb: Minor comment fix
1386 2008-07-31 Ed Schonberg <schonberg@adacore.com>
1388 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
1389 transfer pre/postconditions from generic copy to original tree, so that
1390 they will appear in each instance.
1391 (Process_PPCs): Do not transform postconditions into a procedure in a
1392 generic context, to prevent double expansion of check pragmas.
1394 * sem_attr.adb: In an instance, the prefix of the 'result attribute
1395 can be the renaming of the
1396 current instance, so check validity of the name accordingly.
1398 2008-07-31 Robert Dewar <dewar@adacore.com>
1400 * mlib-utl.ads: Minor reformatting
1402 2008-07-31 Ed Schonberg <schonberg@adacore.com>
1404 sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
1405 from context. This attribute must be usable in Ada95 mode.
1406 The attribute can appear in the body of a function marked
1407 Inline_Always, but in this case the postocondition is not enforced.
1409 sem_prag.adb (Check_Precondition_Postcondition): within the expansion
1410 of an inlined call pre- and postconditions are legal
1412 2008-07-31 Vincent Celier <celier@adacore.com>
1414 * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
1415 were for gprmake only
1417 2008-07-31 Robert Dewar <dewar@adacore.com>
1419 * gnat_ugn.texi: Update -gnatN documentation.
1421 * gnat_rm.texi: Add note about pre/postcondition
1422 pragmas not checked in conjunction with front-end inlining.
1424 2008-07-31 Robert Dewar <dewar@adacore.com>
1426 * g-pehage.adb, g-pehage.ads: Minor reformatting
1428 2008-07-31 Arnaud Charlet <charlet@adacore.com>
1430 * mlib-utl.ads, prj-makr.ads: Add comments.
1432 2008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1434 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
1435 [WINDOWS]: Add s-winext.o.
1437 2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
1440 * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
1441 * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
1442 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
1443 Set precision to 1 for subtype of BOOLEAN_TYPE.
1444 (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
1445 (make_type_from_size): Deal with BOOLEAN_TYPE.
1446 * gcc-interface/misc.c (gnat_print_type): Likewise.
1447 * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
1448 Set boolean_type_node as its translation in the table, as well
1449 as boolean_false_node for False and boolean_true_node for True.
1450 * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
1451 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
1452 (create_param_decl): Deal with BOOLEAN_TYPE.
1453 (build_vms_descriptor): Likewise.
1454 (build_vms_descriptor64): Likewise.
1455 (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
1457 2008-07-30 Robert Dewar <dewar@adacore.com>
1459 * exp_ch9.adb: Minor reformatting
1461 * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
1462 if no primitive operation is found.
1464 * exp_util.adb: (Find_Prim_Op): Add comments for previous change
1466 * sem_ch8.adb: Minor reformatting
1468 2008-07-30 Laurent Pautet <pautet@adacore.com>
1471 Remove a limitation on the length of the words handled by the minimal
1472 perfect hash function generator.
1475 Detail the use of subprograms Insert, Initialize, Compute and Finalize.
1478 2008-07-30 Robert Dewar <dewar@adacore.com>
1480 * gnatlink.adb: Minor reformatting
1482 2008-07-30 Thomas Quinot <quinot@adacore.com>
1484 * rtsfind.adb (Check_RPC): Check version consistency even when not
1485 generating RCI stubs. Provide more detailed error message in case of
1488 2008-07-30 Ed Schonberg <schonberg@adacore.com>
1490 * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
1491 as a actual in an instance, check for a missing attribute to prevent
1492 program_error on an illegal program.
1494 * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
1495 error if primitive is not found, so that exception can be handled
1496 elsewhere on illegal programs.
1498 2008-07-30 Robert Dewar <dewar@adacore.com>
1500 * uintp.adb (UI_GCD): Fix potential overflow
1502 2008-07-30 Hristian Kirtchev <kirtchev@adacore.com>
1504 * einfo.adb: Flag245 is now used.
1505 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
1506 check to include functions.
1507 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
1508 (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
1510 (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
1511 to the list of displayed flags.
1513 * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
1514 Wrapped_Entity. These two flags are now present in functions.
1515 New flag Is_Private_Primitive.
1516 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
1519 (Build_Wrapper_Bodies): New subprogram.
1520 (Build_Wrapper_Body): The spec and body have been moved to in
1521 Build_Wrapper_ Bodies. Code cleanup.
1522 (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
1523 Wrappers are now generated for primitives declared between the private
1524 and full view of a concurrent type that implements an interface.
1525 (Build_Wrapper_Specs): New subprogram.
1526 (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
1527 creation mechanism with a call to Build_Wrapper_Bodies.
1528 (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
1529 wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
1530 (Expand_N_Task_Body): Replace the wrapper body creation
1531 mechanism with a call to Build_Wrapper_Bodies.
1532 (Expand_N_Task_Type_Declaration): Replace the wrapper spec
1533 creation mechanism with a call to Build_Wrapper_Specs.
1534 (Is_Private_Primitive_Subprogram): New subprogram.
1535 (Overriding_Possible): Code cleanup.
1536 (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
1538 * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
1540 * sem_ch3.adb: Add with and use clause for Exp_Ch9.
1541 (Process_Full_View): Build wrapper specs for all primitives
1542 that belong to a private view completed by a concurrent type
1543 implementing an interface.
1545 * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
1547 concurrent type with a private view that implements an interface, try to
1548 find the proper spec.
1549 (Analyze_Subprogram_Declaration): Mark a subprogram as a private
1550 primitive if the type of its first parameter is a non-generic tagged
1552 (Analyze_Subprogram_Specification): Code reformatting.
1553 (Disambiguate_Spec): New routine.
1554 (Find_Corresponding_Spec): Add a flag to controll the output of errors.
1555 (Is_Private_Concurrent_Primitive): New routine.
1558 (Find_Corresponding_Spec): Add a formal to control the output of errors.
1560 2008-07-30 Doug Rupp <rupp@adacore.com>
1562 * gigi.h (build_vms_descriptor64): New function prototype.
1563 (fill_vms_descriptor): Modified function prototype.
1565 * utils.c (build_vms_descriptor64): New function.
1567 * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
1569 * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
1572 * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
1573 64bit and 32bit descriptor and save the 64bit version as an alternate
1574 TREE_TYPE in the parameter.
1575 (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
1578 * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
1580 2008-07-30 Robert Dewar <dewar@adacore.com>
1582 * make.adb: Minor reformatting
1584 * mlib-utl.adb: Minor reformatting
1586 * osint.ads: Minor reformatting
1588 2008-07-30 Jose Ruiz <ruiz@adacore.com>
1591 (__gnat_file_exists): Do not use __gnat_stat for RTX.
1592 (__main for RTX in RTSS mode): Create this dummy procedure symbol to
1593 avoid the use of this symbol from libgcc.a in RTX kernel mode.
1596 (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
1597 the function RtPrintf for console output.
1599 * argv.c Do not use the environ variable for RTX.
1601 * gnatlink.adb (gnatlink): The part that handles the --RTS option has
1602 been moved before the call to Osint.Add_Default_Search_Dirs in order
1603 to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
1604 from the appropriate run time.
1607 (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
1608 target is a RTSS module for RTX.
1610 * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
1611 RTX_RTSS_Kernel_Module
1612 (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
1614 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
1615 exception handling mechanism for Windows and RTX in Win32 mode, but
1616 not for RTX in kernel mode (RTSS).
1617 (LIBGNAT_SRCS): Remove ada.h
1619 2008-07-30 Paolo Bonzini <bonzini@gnu.org>
1621 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
1622 T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
1623 (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
1624 * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
1625 X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
1626 ALL_ADA_CFLAGS): Remove.
1627 (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
1628 replace ALL_ADA_CFLAGS with ADA_CFLAGS.
1629 (GCC_CFLAGS): Remove X_CFLAGS.
1630 (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
1631 (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
1632 (ADA_CFLAGS): Substitute.
1634 2008-07-30 Laurent Guerby <laurent@guerby.net>
1637 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
1638 Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
1639 Replace stamp-gnatlib* by stamp-gnatlib*-rts.
1640 * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
1641 by stamp-gnatlib2-rts.
1643 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1645 PR documentation/15479
1646 * gnat-style.texi: Remove AdaCore copyright statement and GPL
1647 statement for GNAT. Add @copying stanza, use it. Update to
1648 GFDL 1.2. Do not list GFDL as Invariant Section, do not list
1649 title as Front-Cover Text.
1650 * gnat_rm.texi: Likewise.
1651 * gnat_ugn.texi: Likewise.
1653 2008-07-29 Jan Hubicka <jh@suse.cz>
1655 * trans.c (process_inlined_subprograms): Remove tree_really_inline
1658 2008-07-29 Arnaud Charlet <charlet@adacore.com>
1660 * gcc-interface: New directory.
1662 * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
1663 utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
1664 config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
1665 to gcc-interface subdirectory.
1667 2008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1669 * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
1671 2008-07-28 Jan Hubicka <jh@suse.cz>
1673 * misc.c (gnat_post_options): Do not set flag_no_inline.
1675 2008-07-28 Richard Guenther <rguenther@suse.de>
1677 Merge from gimple-tuples-branch.
1679 2008-07-22 Olivier Hainque <hainque@adacore.com>
1681 * gigi.h (end_subprog_body): New ELAB_P argument, saying if
1682 this is called for an elab proc to be discarded if empty.
1683 * utils.c (end_subprog_body): Honor ELAB_P.
1684 (build_function_stub): Adjust call to end_subprog_body.
1685 * trans.c (Subprogram_Body_to_gnu): Likewise.
1686 (gigi): Reorganize processing of elab procs to prevent
1687 gimplifying twice, using the new end_subprog_body argument.
1689 2008-07-19 Richard Guenther <rguenther@suse.de>
1691 * Make-lang.in (trans.o): Add tree-iterator.h dependency.
1692 (utils.o): Likewise.
1693 * trans.c: Include tree-iterator.h.
1694 (gnat_gimplify_expr): Adjust prototype. Fix typo.
1695 (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
1696 (set_expr_location_from_node): Likewise.
1698 * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
1700 * utils.c: Include tree-iterator.h.
1701 * gigi.h (gnat_gimplify_expr): Adjust prototype.
1703 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
1705 * trans.c: Include gimple.h instead of tree-gimple.h.
1708 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
1710 * trans.c (gnat_gimplify_expr): Use gimplify_assign.
1712 2008-07-25 Jan Hubicka <jh@suse.cz>
1714 * utils.c (end_subprog_body): Remove inline trees check.
1715 * misc.c (gnat_post_options): Do not set flag_inline_trees.
1717 2008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1719 * raise-gcc.c: Move tsystem.h before tm.h.
1721 2008-07-20 Arnaud Charlet <charlet@adacore.com>
1723 * gnathtml.pl: New file.
1725 2008-07-19 Olivier Hainque <hainque@adacore.com>
1727 * targtyps.c (get_target_default_allocator_alignment): Use
1728 MALLOC_ABI_ALIGNMENT.
1730 2008-07-17 Olivier Hainque <hainque@adacore.com>
1732 * adaint.c (__MINGW32__ section): Include ctype.h and define
1733 a fallback ISALPHA if IN_RTS.
1734 (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
1736 2008-07-17 Olivier Hainque <hainque@adacore.com>
1738 * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
1739 argument, to apply to references in addition to definitions. Prevent
1740 setting TREE_STATIC on externals.
1741 (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
1743 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1745 PR documentation/15479
1746 * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
1747 Replace backets around optional parameters with @ovar
1748 where possible, use @r{[}, @r{]} otherwise.
1749 Replace some @r, @i, and @emph with @var where appropriate.
1751 2008-07-02 Eric Botcazou <ebotcazou@adacore.com>
1753 * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
1755 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1757 * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
1758 -Wc++-compat warnings.
1759 * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
1760 __gnat_locate_exec_on_path): Likewise.
1761 * decl.c (annotate_value): Likewise.
1762 * misc.c (gnat_handle_option): Likewise.
1763 * trans.c (gnat_to_gnu, extract_encoding, decode_name,
1764 post_error_ne_tree): Likewise.
1766 2008-06-27 Eric Botcazou <ebotcazou@adacore.com>
1768 * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
1769 version of its type, attempt to first convert its elements.
1771 2008-06-26 Chris Proctor <chrisp_42@bigpond.com>
1773 * Makefile.in: Fix *86 kfreebsd target specific pairs.
1775 2008-06-25 Samuel Tardieu <sam@rfc1149.net>
1777 * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
1779 2008-06-24 Eric Botcazou <ebotcazou@adacore.com>
1781 * utils2.c (known_alignment): Derive the alignment from pointed-to
1782 types only if it is otherwise unknown.
1783 <INTEGER_CST>: Tidy.
1784 <MULT_EXPR>: Likewise.
1785 <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
1788 2008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1791 * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
1793 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1795 * gnat_rm.texi (Implementation Defined Characteristics)
1796 (Standard Library Routines): Use @smallexample for indented
1797 text. Drop Indentation outside examples.
1798 * gnat_ugn.texi: Likewise.
1800 2008-06-13 Olivier Hainque <hainque@adacore.com>
1802 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
1804 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
1805 realignment with force_align_arg_pointer attribute on foreign
1806 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
1808 2008-06-13 Olivier Hainque <hainque@adacore.com>
1810 * utils.c (rest_of_record_type_compilation): When computing
1811 encodings for the components of a variable size type, early
1812 strip conversions on the current position expression to make
1813 sure it's shape is visible. Use remove_conversions for this
1816 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
1818 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
1819 constrained subtype of a discriminated type, discard the fields that
1820 are beyond its limits according to its size.
1822 2008-06-10 Olivier Hainque <hainque@adacore.com>
1824 * utils.c (create_subprog_decl): If this is for the 'main' entry
1825 point according to the asm name, redirect main_identifier_node.
1827 2008-06-09 Eric Botcazou <ebotcazou@adacore.com>
1829 * decl.c (components_to_record): Adjust the packedness for the
1830 qualified union as well.
1832 2008-06-09 Arnaud Charlet <charlet@adacore.com>
1834 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
1837 2008-06-07 Samuel Tardieu <sam@rfc1149.net>
1839 * sem_res.adb (Large_Storage_Type): A type is large if it
1840 requires as many bits as Positive to store its values and its
1841 bounds are known at compile time.
1842 * sem_ch13.adb (Minimum_Size): Note that this function returns
1843 0 if the size is not known at compile time.
1845 2008-06-06 Nicolas Setton <setton@adacore.com>
1846 Olivier Hainque <hainque@adacore.com>
1848 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
1849 attribute, parallel descriptive type attached to another
1850 type for debug info generation purposes.
1851 * utils.c (add_parallel_type): New function, register
1852 parallel type to be attached to a type.
1853 (get_parallel_type): New function, fetch a registered
1854 parallel type, if any.
1855 (rest_of_record_type_compilation): Register the parallel
1856 type we make for variable size records.
1857 * gigi.h (add_parallel_type, get_parallel_type): Declare.
1858 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
1859 parallel debug types we make.
1860 * trans.c (extract_encoding, decode_name): New functions.
1861 (gigi): If the DWARF attribute extensions are available, setup
1863 * lang.opt: Register language specific processing request
1865 * misc.c (gnat_dwarf_extensions): New global variable. How much
1866 do we want of our DWARF extensions. 0 by default.
1867 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
1868 (gnat_post_options): Map gnat_dwarf_extensions to the
1869 commonuse_gnu_debug_info_extensions for later processing.
1871 2008-06-04 Samuel Tardieu <sam@rfc1149.net>
1873 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
1875 2008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1877 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
1878 * gnat_ugn.texi (Style Checking)
1879 (Adding the Results of Compiler Checks to gnatcheck Output)
1880 (Example of Binder Output File): Fix typos.
1881 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
1882 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
1883 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
1884 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
1885 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
1886 sinfo.ads, utils.c: Fix typos in comments.
1887 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
1889 2008-05-29 Thomas Quinot <quinot@adacore.com>
1891 * sem_eval.adb: Minor reformatting
1893 2008-05-29 Ed Schonberg <schonberg@adacore.com>
1895 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
1896 is abstract, do not apply abstractness check on subprogram if this is
1897 a renaming declaration.
1899 2008-05-29 Arnaud Charlet <charlet@adacore.com>
1902 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
1903 allow recognition of program suffix in addition to prefix.
1905 * gnatchop.adb (Locate_Executable): Add support for prefix.
1907 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
1908 mlib-utl.adb: Adjust calls to Program_Name.
1910 2008-05-29 Robert Dewar <dewar@adacore.com>
1912 * sem_ch3.adb: Minor reformatting
1913 * sem_prag.adb: Minor reformatting
1914 * sem_res.adb: Minor reformatting
1915 * sinput-p.ads: Minor reformatting
1917 2008-05-29 Javier Miranda <miranda@adacore.com>
1920 (Abstract_Interface_List): Add missing support for full type-declaration
1921 associated with synchronized types.
1923 2008-05-29 Robert Dewar <dewar@adacore.com>
1925 * sem_eval.adb (Is_Same_Value): Take care of several more cases
1927 2008-05-28 Ed Schonberg <schonberg@adacore.com>
1929 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
1930 access type, wrap the expression in a conversion to force an
1931 accessibility check.
1933 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
1934 accessibility checks even when expansion is disabled in order to
1935 generate messages in the presence of previous errors or in
1936 semantics-only mode.
1938 2008-05-28 Eric Botcazou <ebotcazou@adacore.com>
1940 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
1941 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
1943 2008-05-28 Vincent Celier <celier@adacore.com>
1946 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
1947 preprocessing expressions
1949 2008-05-28 Vincent Celier <celier@adacore.com>
1951 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
1954 * sinput-p.ads: Minor comment update and reformatting
1956 2008-05-28 Ed Schonberg <schonberg@adacore.com>
1958 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
1959 type has a deeper level than any master only when it is the type of an
1962 2008-05-28 Javier Miranda <miranda@adacore.com>
1964 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
1966 2008-05-28 Javier Miranda <miranda@adacore.com>
1968 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
1969 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
1970 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
1971 Add code that was previously located in
1972 Find_Overridden_Synchronized_Primitive because it is only used here.
1974 2008-05-28 Sergey Rybin <rybin@adacore.com>
1976 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
1977 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
1979 2008-05-28 Robert Dewar <dewar@adacore.com>
1982 Add missing restrictions, and properly label all GNAT defined ones
1985 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
1986 Add entry for Ada.Task_Termination.Set_Specific_Handler
1987 Add entry for Ada.Task_Termination.Specific_Handler
1990 Add missing restrictions and properly mark all gnat defined ones
1993 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
1996 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
1998 * gnat_rm.texi: Add missing restrictions, and properly label all
2001 2008-05-28 Robert Dewar <dewar@adacore.com>
2004 (Check_Restriction): violation of restriction No_Finalization is
2005 treated as a serious error to stop expansion
2007 2008-05-28 Robert Dewar <dewar@adacore.com>
2009 * exp_util.adb: Minor reformatting
2010 * exp_util.ads: Minor reformatting.
2012 2008-05-28 Arnaud Charlet <charlet@adacore.com>
2014 * Make-lang.in: Remove gprmake.
2016 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
2018 2008-05-28 Ed Schonberg <schonberg@adacore.com>
2020 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
2021 improper progenitor names, and avoid cascaded errors.
2023 2008-05-28 Robert Dewar <dewar@adacore.com>
2025 * gnat_rm.texi: Add note on Old giving warning when applied to constant
2027 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
2030 2008-05-28 Robert Dewar <dewar@adacore.com>
2032 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
2035 2008-05-28 Robert Dewar <dewar@adacore.com>
2038 (Expand_Simple_Function_Return): Copy unaligned result into temporary
2040 2008-05-28 Javier Miranda <miranda@adacore.com>
2042 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
2043 for user-defined predefined primitives.
2045 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
2046 (Find_Overridden_Synchronized_Primitive): Ditto.
2048 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
2050 2008-05-27 Arnaud Charlet <charlet@adacore.com>
2052 * a-ststio.adb, s-direio.adb:
2053 Further code clean up of previous change.
2056 2008-05-27 Vincent Celier <celier@adacore.com>
2058 * prj-nmsc.adb: Minor reformatting
2060 2008-05-27 Bob Duff <duff@adacore.com>
2062 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
2063 untagged private type with a tagged full type, where the full type has
2064 a self reference, create the corresponding class-wide type early, in
2065 case the self reference is "access T'Class".
2067 2008-05-27 Ed Schonberg <schonberg@adacore.com>
2069 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
2070 tasks and context is an object declaration. create master entity before
2073 2008-05-27 Robert Dewar <dewar@adacore.com>
2075 * mlib-prj.adb: Minor reformatting
2077 * prj-part.adb: Minor reformatting
2079 * prj.ads: Minor reformatting
2081 * exp_ch3.adb: Minor reformatting.
2083 * sem_ch3.ads: Minor reformatting
2085 * sem_eval.adb: Minor reformatting
2087 2008-05-27 Vincent Celier <celier@adacore.com>
2090 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
2092 2008-05-27 Ed Schonberg <schonberg@adacore.com>
2094 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
2095 tasks, create an activation chain now, before the expansion into
2096 assignments and build-in-place calls that require the presence of an
2098 (Backend_Processing_Possible): If the component type is inherently
2099 limited, the aggregate must be expanded into individual built-in-place
2102 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
2103 determine whether an allocation extra parameter must be built, to
2104 handle case of a private type whose full type is a discriminated type
2107 2008-05-27 Bob Duff <duff@adacore.com>
2110 Document the new behavior regarding trampolines.
2112 2008-05-27 Arnaud Charlet <charlet@adacore.com>
2114 * a-direio.adb, a-sequio.adb: Replace address clause by
2115 unrestricted_access, simpler and compatible with .NET.
2117 2008-05-27 Vincent Celier <celier@adacore.com>
2120 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
2121 a project file, so that symbolic links are not resolved.
2123 2008-05-27 Arnaud Charlet <charlet@adacore.com>
2125 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
2126 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
2127 portable across GNAT targets, since this kind of address clause is not
2128 supported by VM back-ends (.NET/JGNAT).
2130 2008-05-27 Arnaud Charlet <charlet@adacore.com>
2132 * bindgen.adb: Update comments.
2134 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
2136 2008-05-27 Vincent Celier <celier@adacore.com>
2138 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
2139 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
2140 mlib-tgt.adb, prj-env.adb, prj-env.ads:
2141 (Path_Information): New record type
2142 Use component of type Path_Information when there are two paths, one in
2143 canonical format and one in display format.
2144 Update the project manager to these new components.
2146 2008-05-27 Robert Dewar <dewar@adacore.com>
2148 * makeutl.adb: Minor reformatting
2149 * prj-nmsc.adb: Minor reformatting
2150 * s-stausa.adb: Minor reformatting
2151 * s-stausa.ads: Minor reformatting
2152 * sem_ch6.adb: Minor reformatting
2154 2008-05-27 Thomas Quinot <quinot@adacore.com>
2156 * sem_res.adb: Minor comment fixes
2158 2008-05-27 Thomas Quinot <quinot@adacore.com>
2160 * makeutl.adb: Minor code reorganization
2162 * exp_aggr.adb: Add ??? comment
2165 * exp_ch6.adb: Minor reformatting
2167 2008-05-27 Quentin Ochem <ochem@adacore.com>
2169 * s-stausa.adb (Initialize): Updated result initialization, and
2170 initialization of environment stack.
2171 (Fill_Stack): Improved computation of the pattern zone, taking into
2172 account already filled at the calling point.
2173 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
2174 Measure and Overflow_Guard.
2175 (Report_Result): Fixed computation of the result using new fields of
2178 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
2179 params by more explicit Stack_Size / Max_Pattern_Size params.
2180 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
2181 Added Stack_Used_When_Filling field.
2182 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
2183 Min_Measure and Max_Measure fields.
2185 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
2187 2008-05-27 Vincent Celier <celier@adacore.com>
2190 (Check_File): Make sure that a unit that replaces the same unit in a
2191 project being extended is properly processed.
2193 2008-05-27 Ed Schonberg <schonberg@adacore.com>
2196 (Get_Discr_Value): Remove obsolete code that failed to find the value
2197 of a discriminant for an inherited task component appearing in a type
2200 2008-05-27 Thomas Quinot <quinot@adacore.com>
2202 (System.File_IO.{Close, Delete, Reset}):
2203 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
2205 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
2206 Pass File parameter by reference.
2208 2008-05-27 Vincent Celier <celier@adacore.com>
2211 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
2212 sources of the same project that have the same object file name.
2213 (Find_Explicit_Sources): Always remove a source exception that was not
2216 2008-05-27 Thomas Quinot <quinot@adacore.com>
2218 * sem_ch3.adb: Minor reformatting
2220 2008-05-27 Ed Schonberg <schonberg@adacore.com>
2223 (Is_Interface_Conformant): Handle properly a primitive operation that
2224 overrides an interface function with a controlling access result.
2225 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
2226 inherited and overriding operations, omit as well the conformance check
2227 on result types, to prevent spurious errors.
2229 2008-05-27 Vincent Celier <celier@adacore.com>
2231 * makeutl.ads, makeutl.adb:
2232 (Set_Location): New procedure
2233 (Get_Location): New function
2234 (Update_Main): New procedure
2236 2008-05-27 Vincent Celier <celier@adacore.com>
2239 (Check_Library): Allow standard project to be extended as a static
2241 (Get_Mains): Do not inherit attribute Main in an extending library
2244 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
2246 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
2247 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
2248 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
2249 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
2250 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
2251 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
2252 * system-mingw.ads (Always_Compatible_Rep): Likewise.
2253 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
2254 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
2255 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
2257 2008-05-27 Ed Schonberg <schonberg@adacore.com>
2259 * sem_attr.adb: add guard to previous patch.
2261 2008-05-27 Ed Schonberg <schonberg@adacore.com>
2263 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
2264 a synchronized tagged type, do not attempt to build dispatch table for
2265 full view. The table is built for the corresponding record type, which
2266 has its own declaration.
2268 2008-05-27 Gary Dismukes <dismukes@adacore.com>
2270 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
2271 to the known type entity E, rather than setting it to Any_Type. Fixes
2272 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
2273 for objects whose type had an illegal constraint.
2275 2008-05-27 Vincent Celier <celier@adacore.com>
2278 Add succinct documentation for attribute Excluded_Source_List_File
2280 2008-05-27 Vincent Celier <celier@adacore.com>
2282 * prj-attr.adb: Add new project level attribute Map_File_Option
2284 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
2286 * prj.ads: Minor reformatting and comment update
2287 (Project_Configuration): New component Map_File_Option
2289 * snames.adb: New standard name Map_File_Option
2291 * snames.ads: New standard name Map_File_Option
2293 2008-05-27 Vincent Celier <celier@adacore.com>
2295 * xsnames.adb: Remove unused variable Oname
2297 2008-05-27 Doug Rupp <rupp@adacore.com>
2300 (Expand_N_Function_Call): Fix comments. Minor reformatting.
2303 (Expand_Vax_Foreign_Return): Fix comments.
2305 2008-05-27 Thomas Quinot <quinot@adacore.com>
2307 * exp_dist.adb: Minor reformating
2309 2008-05-26 Gary Dismukes <dismukes@adacore.com>
2311 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
2312 No_Default_Initialization, which is now delayed until the freeze point
2313 of the object. Add a comment about deferral of the check.
2315 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
2316 on objects is moved here.
2318 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
2320 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
2321 (Compare_Array_S16): Adjust for above change.
2322 * s-casi32.adb (Uword): Likewise.
2323 (Compare_Array_S32): Likewise.
2324 * s-casi64.adb (Uword): Likewise.
2325 (Compare_Array_S64): Likewise.
2326 * s-caun16.adb (Uhalf): Likewise.
2327 (Compare_Array_U16): Likewise.
2328 * s-caun32.adb (Uword): Likewise.
2329 (Compare_Array_U32): Likewise.
2330 * s-caun64.adb (Uword): Likewise.
2331 (Compare_Array_U64): Likewise.
2333 2008-05-26 Robert Dewar <dewar@adacore.com>
2335 * exp_ch6.adb: Add ??? comment for previous change
2337 * exp_vfpt.adb: Minor reformatting
2339 * exp_vfpt.ads: Add ??? comment for last change
2341 * sem_attr.adb: Add some ??? comments for previous change
2343 * s-vaflop.ads: Add comments for previous change
2345 2008-05-26 Doug Rupp <rupp@adacore.com>
2347 * s-vaflop-vms-alpha.adb:
2348 Remove System.IO use clause, to prevent spurious ambiguities when
2349 package is access through rtsfind.
2351 2008-05-26 Sergey Rybin <rybin@adacore.com>
2353 * tree_io.ads (ASIS_Version_Number): Update because of the changes
2356 2008-05-26 Ed Schonberg <schonberg@adacore.com>
2359 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
2360 converted to S (A)'address only if A .. B is known to be a non-null
2363 2008-05-26 Doug Rupp <rupp@adacore.com>
2366 (Return_D, Return_F, Return_G): New functions.
2369 (Return_D, Return_F, Return_G): New functions.
2372 (Expand_Vax_Foreign_Return): New procedure
2375 (Expand_Vax_Foreign_Return): New procedure
2378 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
2379 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
2383 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
2385 * s-vaflop-vms-alpha.adb:
2386 (Return_D, Return_F, Return_G): New functions.
2388 2008-05-26 Gary Dismukes <dismukes@adacore.com>
2390 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
2391 init proc entity when there is actual default initialization associated
2392 with the component type, to avoid spurious errors on objects of scalar
2393 array types that are marked Is_Public when No_Default_Initialization
2396 2008-05-26 Thomas Quinot <quinot@adacore.com>
2398 * rtsfind.ads, rtsfind.adb:
2399 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
2400 (Check_RPC): Support per-PCS-kind API versioning.
2402 exp_dist.ads, exp_dist.adb:
2403 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
2404 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
2405 library function Get_RACW.
2406 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
2407 library function Get_Reference.
2408 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
2409 through an intermediate Any.
2410 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
2411 going through an intermediate Any.
2413 * sem_dist.adb: Minor reformatting.
2415 2008-05-26 Javier Miranda <miranda@adacore.com>
2417 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
2418 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
2419 (Is_Internal): Adding documentation on internal entities that have
2420 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
2422 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
2423 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
2424 Added assertion to force entities with this attribute to have
2425 attribute Is_Internal set to True.
2426 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
2428 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
2429 renamed as Derive_Progenitor_Subprograms. In addition, its code is
2430 a new implementation.
2431 (Add_Interface_Tag_Components): Remove special management of
2432 synchronized interfaces.
2433 (Analyze_Interface_Declaration): Minor reformating
2434 (Build_Derived_Record_Type): Minor reformating
2435 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
2436 predefined primitive inherited from interface type because the body of
2437 internally generated predefined primitives of tagged types are generated
2438 later by Freeze_Type
2439 (Derive_Subprogram): Avoid generating an internal name if the parent
2440 subprogram overrides an interface primitive.
2441 (Derive_Subprograms): New implementation that keeps separate the
2442 management of tagged types not implementing interfaces, from tagged
2443 types that implement interfaces.
2444 (Is_Progenitor): New implementation.
2445 (Process_Full_View): Add documentation
2446 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
2447 by call to Derive_Progenitor_Subprograms.
2449 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
2450 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
2451 Skip_Controlling_Formals.
2453 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
2454 (Check_Conventions): New implementation. Remove local subprogram
2455 Skip_Check. Remove formal Search_From of routine Check_Convention.
2456 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
2457 Skip_Controlling_Formals.
2458 (New_Overloaded_Entity): Enable addition of predefined dispatching
2462 (Find_Primitive_Covering_Interface): New subprogram.
2464 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
2465 the task body procedure as a primitive of the corresponding tagged
2467 (Check_Operation_From_Private_Type): Avoid adding twice an entity
2468 to the list of primitives.
2469 (Find_Primitive_Covering_Interface): New subprogram.
2470 (Override_Dispatching_Operation): Add documentation.
2472 * sem_type.adb (Covers): Minor reformatings
2474 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
2477 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
2478 (Implements_Interface): New subprogram.
2479 (Is_Parent): Removed.
2480 (Primitive_Names_Match): New subprogram.
2481 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
2482 (Ultimate_Alias): New subprogram.
2484 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
2486 Remove special management for synchronized types. Rename formal. Remove
2487 internal subprograms Interface_Present_In_Parent and Add_Interface.
2488 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
2489 on non-record types by code to return false in such case.
2490 (Implements_Interface): New subprogram.
2491 (Is_Parent): Removed. No special management is now required for
2492 synchronized types covering interfaces.
2493 (Primitive_Names_Match): New subprogram.
2494 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
2495 (Ultimate_Alias): New subprogram.
2497 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
2498 Add internal entities associated with secondary dispatch tables to
2499 the list of tagged type primitives that are not interfaces.
2500 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
2501 (Make_Predefined_Primitive_Specs): Code reorganization to improve
2502 the management of predefined equality operator. In addition, if
2503 the type has an equality function corresponding with a primitive
2504 defined in an interface type, the inherited equality is abstract
2505 as well, and no body can be created for it.
2507 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
2508 exp_util to exp_disp.
2509 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
2510 an entity corresponds with one of the predefined primitives required
2511 to implement interfaces.
2512 Update copyright notice.
2514 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
2515 final check on abstract subprograms all the primitives associated with
2516 interface primitives because they must be visible in the public and
2518 (Write_DT): Use Find_Dispatching_Type to locate the name of the
2519 interface type. This allows the use of this routine, for debugging
2520 purposes, when the tagged type is not fully decorated.
2521 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
2522 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
2523 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
2524 entity corresponds with one of the predefined primitives required to
2525 implement interfaces.
2527 * exp_util.adb (Find_Interface_ADT): New implementation
2528 (Find_Interface): Removed.
2530 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
2531 list of interfaces associated with nodes
2532 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
2534 2008-05-26 Thomas Quinot <quinot@adacore.com>
2536 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
2537 condition for assignment to temporary.
2539 2008-05-26 Ed Schonberg <schonberg@adacore.com>
2541 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
2542 checks on the upper bound if the index type is a modular type, to
2543 prevent wrap-around computations when size is close to upper bound of
2546 2008-05-26 Robert Dewar <dewar@adacore.com>
2548 * sem_ch3.adb: Minor reformatting
2550 2008-05-26 Ed Schonberg <schonberg@adacore.com>
2552 * sem_ch12.adb (Remove_Parent): Use specification of instance
2553 to retrieve generic parent,
2554 to handle properly the case where the instance is a child unit.
2555 Add guard to handle properly wrapper packages.
2558 2008-05-26 Thomas Quinot <quinot@adacore.com>
2560 * sinfo.ads: Minor reformatting
2562 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
2564 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
2565 Generate a tag check when the result subtype of a function, defined by
2566 an access definition, designates a specific tagged type.
2567 (Make_Tag_Check): New routine.
2569 2008-05-26 Arnaud Charlet <charlet@adacore.com>
2571 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
2573 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
2575 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
2576 (builtin_decl_for): Likewise.
2577 * trans.c (gigi): Likewise.
2578 * utils.c (def_builtin_1): Fix formatting.
2580 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
2582 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
2583 Create the statements which map a string name to protected or task
2586 * exp_ch9.adb: Add with and use clause for Stringt.
2587 Minor code reformatting.
2588 (Build_Entry_Names): New routine.
2589 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
2590 for flag Build_Entry_Names which controls the allocation of the data
2591 structure for the string names of entries.
2593 * exp_ch9.ads (Build_Entry_Names): New subprogram.
2595 * exp_util.adb (Entry_Names_OK): New function.
2597 * exp_util.ads (Entry_Names_OK): New function.
2599 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
2600 enumerations RE_Id and RE_Unit_Table.
2602 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
2603 (Free_Entry_Names_Array): New routine.
2605 * s-taskin.ads: Comment reformatting.
2606 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
2607 Add component Entry_Names to record Ada_Task_Control_Block.
2608 (Free_Entry_Names_Array): New routine.
2610 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
2611 dynamically allocate an array
2612 of string pointers. This structure holds string entry names.
2613 (Free_Entry_Names): New routine.
2614 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
2615 (Set_Entry_Names): New routine.
2618 (Create_Task): Add formal Build_Entry_Names. The flag is used to
2619 control the allocation of the data structure which stores entry names.
2620 (Set_Entry_Name): New routine.
2623 Add with and use clause for Ada.Unchecked_Conversion.
2624 (Finalize): Deallocate the entry names array.
2625 (Free_Entry_Names): New routine.
2626 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
2627 create an array of string pointers to hold the entry names.
2628 (Set_Entry_Name): New routine.
2631 Add field Entry_Names to record Protection_Entries.
2632 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
2633 (Set_Entry_Name): New routine.
2635 2008-05-26 Vincent Celier <celier@adacore.com>
2638 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
2641 (Project_Configuration): New component Shared_Lib_Driver
2643 2008-05-26 Ed Schonberg <schonberg@adacore.com>
2646 (Cleanup_Scopes): For a protected operation, transfer finalization list
2647 to protected body subprogram, to force cleanup actions when needed.
2649 2008-05-26 Robert Dewar <dewar@adacore.com>
2651 * sem_cat.adb: Minor reformatting
2653 * gnatname.adb: Minor reformatting
2655 * osint.ads: Minor reformatting
2657 * s-carun8.ads: Minor reformatting
2659 * g-heasor.ads: Minor comment fix (unit is now pure)
2661 2008-05-26 Robert Dewar <dewar@adacore.com>
2664 (Expand_Current_Value): Properly type generated integer literal
2666 2008-05-26 Sergey Rybin <rybin@adacore.com>
2668 * gnat_ugn.texi: Add description for the new gnatcheck rule -
2669 Separate_Numeric_Error_Handlers.
2671 2008-05-26 Pascal Obry <obry@adacore.com>
2673 * sem_aggr.adb: Minor reformatting.
2675 2008-05-26 Jose Ruiz <ruiz@adacore.com>
2678 (To_Target_Priority): Setting the time slice value to 0 or greater sets
2679 the scheduling policy to FIFO within priorities or round-robin
2681 Hence, the priority must be set in this case to the one selected by the
2684 2008-05-26 Ed Schonberg <schonberg@adacore.com>
2687 (Remove_Parent): If the enclosing scope is an instance whose generic
2688 parent is declared within some parent scope of the just completed
2689 instance, make full views of the entities in that parent visible, when
2692 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
2694 * mingw32.h (STD_MINGW): Set to true for target w64.
2696 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
2698 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
2699 instead of TREE_STATIC on the ADDR_EXPR.
2701 2008-05-24 Eric Botcazou <ebotcazou@adacore.com>
2703 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
2704 (Sloc_to_locus): Do not overwrite known GCC locations when translating
2705 GNAT standard locations.
2707 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
2709 * gigi.h (mark_visited): Declare.
2710 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
2711 only the topmost node of expressions.
2712 (elaborate_expression_1): Look deeper for read-only variables.
2713 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
2714 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
2715 (mark_visited_r): New function.
2717 2008-05-23 Vincent Celier <celier@adacore.com>
2719 * snames.adb: New standard name Excluded_Source_List_File.
2721 * snames.ads: New standard name Excluded_Source_List_File.
2723 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
2725 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
2726 Get excluded sources from
2727 file indicated by attribute Excluded_Source_List_File, when present and
2728 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
2730 2008-05-23 Robert Dewar <dewar@adacore.com>
2732 * exp_dist.adb: Minor reformatting
2734 2008-05-23 Ed Schonberg <schonberg@adacore.com>
2736 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
2737 slice, convert it to an indexed component, which is equivalent, more
2738 efficient, and usable even if the slice itself is not addressable.
2740 2008-05-23 Olivier Hainque <hainque@adacore.com>
2742 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
2743 convention also allows access to named compiler built-in subprograms
2744 such as the GCC __builtin family.
2746 2008-05-23 Vincent Celier <celier@adacore.com>
2748 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
2749 sep. If there are several possibilities, choose the one with the
2752 2008-05-23 Vincent Celier <celier@adacore.com>
2754 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
2755 back end switches when executable specified with --GCC= is same as
2756 default, even if there are additional options.
2759 Document when the back end switches from the ALI file are taken into
2760 account when gnatlink is invoked with --GCC=
2762 2008-05-23 Thomas Quinot <quinot@adacore.com>
2765 (copy_File): Do not open destination file if source file is unreadable.
2767 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
2769 * utils.c (handle_type_generic_attribute): Adjust to accept
2770 fixed arguments before an elipsis.
2772 2008-05-21 Thomas Quinot <quinot@adacore.com>
2774 * g-sothco.ads, g-sothco.adb: New files.
2776 2008-05-20 Thomas Quinot <quinot@adacore.com>
2778 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
2780 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
2781 Add missing "with" of Ada.Unchecked_Conversion
2783 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
2784 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
2785 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
2786 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
2787 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
2788 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
2789 Move common code out of GNAT.Sockets.Thin implementations and into
2791 New constant SIZEOF_fd_set
2792 New flag Has_Sockaddr_Len
2793 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2795 * g-stsifd-sockets.adb
2796 (Create): Remove call to Set_Length; use Set_Family to set the family
2797 and (on appropriate platforms) length fields in struct sockaddr.
2799 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
2800 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
2801 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
2802 Move common code out of GNAT.Sockets.Thin implementations and into
2805 * g-socket.ads, g-socket.adb:
2806 Move common code out of GNAT.Sockets.Thin implementations and into
2808 (Connect_Socket, Accept_Socket): Provide new versions of these two
2809 routines that operate with a user specified timeout.
2810 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
2811 this is now handled automatically by Set_Family on platforms that
2815 Move common code out of GNAT.Sockets.Thin implementations and into
2817 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
2818 this constant to 0 (not -1) because we use it to initialize an
2819 unsigned_char value.
2820 Align values for numeric constants only.
2821 Handle the case of systems that do not support AF_INET6.
2822 New constant SIZEOF_fd_set
2823 New flag Has_Sockaddr_Len
2824 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2826 * gsocket.h: New flag Has_Sockaddr_Len
2827 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
2829 2008-05-20 Santiago Uruena <uruena@adacore.com>
2831 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
2833 2008-05-20 Arnaud Charlet <charlet@adacore.com>
2835 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
2836 the underlying issue with malloc/free has been fixed. Remove associated
2839 Related to PR ada/24533
2841 2008-05-20 Robert Dewar <dewar@adacore.com>
2843 * ali.adb: Correct casing of ASCII.NUL
2845 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
2848 2008-05-20 Robert Dewar <dewar@adacore.com>
2849 Gary Dismukes <dismukes@adacore.com>
2851 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
2852 overflow if result converted to wider integer type.
2853 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
2854 discriminated types when discriminant checks are suppressed.
2856 2008-05-20 Vincent Celier <celier@adacore.com>
2858 * cstand.adb (Print_Standard): Issue the correct Size clause for type
2859 Wide_Wide_Character.
2861 2008-05-20 Tristan Gingold <gingold@adacore.com>
2863 * decl.c: Do not emit a variable for a object that has an address
2864 representation clause whose value is known at compile time.
2865 When a variable has an address clause whose value is known at compile
2866 time, refer to this variable by using directly the address instead of
2867 dereferencing a pointer.
2869 2008-05-20 Robert Dewar <dewar@adacore.com>
2872 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
2873 subtypes, always False for non-modular types.
2874 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
2875 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
2876 for Shared_Storage package.
2877 (Is_RACW_Stub_Type): New entity flag.
2880 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
2881 case where we have a modular type with a non-binary modules.
2882 Comments reformattings.
2884 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
2887 2008-05-20 Javier Miranda <miranda@adacore.com>
2890 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
2891 tests did not covered the case in which the type of the aggregate has
2892 no progenitors but some its parents has progenitors.
2894 2008-05-20 Gary Dismukes <dismukes@adacore.com>
2895 Hristian Kirtchev <kirtchev@adacore.com>
2898 (Expand_N_Object_Declaration): Correct the condition which triggers the
2899 generation of a call to Displace when initializing a class-wide object.
2900 (Build_Dcheck_Functions): Build discriminant-checking for null variants
2901 when Frontend_Layout_On_Target is true to ensure that they're available
2902 for calling when a record variant size function is built in Layout.
2904 2008-05-20 Ed Schonberg <schonberg@adacore.com>
2906 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
2907 procedure for a derived type retrieve the discriminant values from the
2908 parent using the corresponding discriminant.
2909 (Expand_N_Assignment_Statement): Skip generation of implicit
2910 if-statement associated with controlled types if we are
2911 compiling with restriction No_Finalization.
2913 2008-05-20 Vincent Celier <celier@adacore.com>
2915 * prj.adb (Hash (Project_Id)): New function
2916 (Project_Empty): Add new component Interfaces_Defined
2918 * prj.ads (Source_Data): New component Object_Linked
2919 (Language_Config): New components Object_Generated and Objects_Linked
2920 (Hash (Project_Id)): New function
2921 (Source_Data): New Boolean components In_Interfaces and
2922 Declared_In_Interfaces.
2923 (Project_Data): New Boolean component Interfaces_Defined
2926 New project level attribute Object_Generated and Objects_Linked
2927 Add new project level attribute Interfaces
2929 * prj-dect.adb: Use functions Present and No throughout
2930 (Parse_Variable_Declaration): If a string type is specified as a simple
2931 name and is not found in the current project, look for it also in the
2932 ancestors of the project.
2935 Replace procedure Make with procedures Initialize, Process and Finalize
2936 to implement H414-023: process different directories with different
2938 Use functions Present and No throughout
2941 Replace procedure Make with procedures Initialize, Process and Finalize
2944 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
2945 the language configuration.
2946 (Process_Project_Level_Array_Attributes): Process new attributes
2947 Object_Generated and Object_Linked.
2948 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
2949 False, to indicate that the erreor/warning is a continuation.
2950 (Check): Call Report_No_Sources with Contnuation = True after the first
2952 (Error_Msg): Process successively contnuation character and warning
2954 (Find_Explicit_Sources): Check that all declared sources have been found
2955 (Check_File): Indicate in hash table Source_Names when a declared source
2957 (Check_File): Set Other_Part when found
2958 (Find_Explicit_Sources): In multi language mode, check if all exceptions
2959 to the naming scheme have been found. For Ada, report an error if an
2960 exception has not been found. Otherwise, disregard the exception.
2961 (Check_Interfaces): New procedure
2962 (Add_Source): When Other_Part is defined, set mutual pointers in spec
2964 (Check): In multi-language mode, call Check_Interfaces
2965 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
2966 for an excluded source.
2967 (Remove_Source): A source replacing a source in the interfaces is also
2970 * prj-pars.adb: Use function Present
2972 * prj-part.adb: Use functions Present and No throughout
2973 (Parse_Single_Project): Set the parent project for child projects
2974 (Create_Virtual_Extending_Project): Register project with no qualifier
2975 (Parse_Single_Project): Allow an abstract project to be extend several
2976 times. Do not allow an abstract project to extend a non abstract
2979 * prj-pp.adb: Use functions Present and No throughout
2980 (Print): Take into account the full associative array attribute
2983 * prj-proc.adb: Use functions Present and No throughout
2984 (Expression): Call itself with the same From_Project_Node for the
2985 default value of an external reference.
2987 * prj-strt.adb: Use functions Present and No throughout
2988 (Parse_Variable_Reference): If a variable is specified as a simple name
2989 and is not found in the current project, look for it also in the
2990 ancestors of the project.
2992 * prj-tree.ads, prj-tree.adb (Present): New function
2994 Use functions Present and No throughout
2995 (Parent_Project_Of): New function
2996 (Set_Parent_Project_Of): New procedure
2998 * snames.ads, snames.adb:
2999 Add new standard names Object_Generated and Objects_Linked
3001 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3003 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
3004 and the derived type are of the same kind.
3005 (Expand_Call): Generate type conversions for actuals of
3006 record or array types when the parent and the derived types differ in
3007 size and/or packed status.
3009 2008-05-20 Javier Miranda <miranda@adacore.com>
3010 Ed Schonberg <schonberg@adacore.com>
3012 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
3013 generating dispatch tables of locally defined tagged types statically.
3014 Remove implicit if-statement that is no longer required.
3015 (Expand_Dispatching_Call): If this is a call to an instance of the
3016 generic dispatching constructor, the type of the first argument may be
3017 a subtype of Tag, so always use the base type to recognize this case.
3019 2008-05-20 Thomas Quinot <quinot@adacore.com>
3022 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
3023 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
3024 assigning NULL into the result, to avoid a spurious warning.
3025 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
3027 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
3029 (Build_From_Any_Function, Build_To_Any_Function,
3030 Build_TypeCode_Function): For a type that has user-specified stream
3031 attributes, use an opaque sequence of octets as the representation.
3033 2008-05-20 Kevin Pouget <pouget@adacore.com>
3035 * exp_smem.ads, exp_smem.adb: Construction of access and assign
3036 routines has been replaced by an instantiation of
3037 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
3038 shared variable declaration.
3039 Calls to access and assign routines have been replaced by calls to
3040 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
3041 instantiated package.
3043 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
3044 It identifies the new generic package added in s-shasto.
3046 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
3047 is instantiated for each shared passive variable. It provides
3048 supporting procedures called upon each read or write access by the
3052 For this runtime unit (always compiled in GNAT mode), we allow
3053 stream attributes references for limited types for the case where
3054 shared passive objects are implemented using stream attributes,
3055 which is the default in GNAT's persistent storage implementation.
3057 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3060 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
3061 convention from its base type, do not set the type to that of integer,
3062 because it may inherit a size clause.
3063 Warn on a size clause with a size different
3064 from that of Integer, if the type has convention C.
3066 2008-05-20 Vincent Celier <celier@adacore.com>
3069 (Scan_Args): Rewrite to take into account new switch --and to separate
3070 arguments into sections.
3071 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
3072 section, then Finalize.
3074 2008-05-20 Tristan Gingold <gingold@adacore.com>
3076 * init.c: Enable stack probing on ppc-linux.
3078 * tracebak.c: Add symbolic traceback for ppc-linux.
3080 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
3082 2008-05-20 Arnaud Charlet <charlet@adacore.com>
3085 (common-tools): New rule, to avoid parallel build failure on gnat tools.
3086 Reenable parallel builds on this Makefile.
3088 * Make-lang.in: Update dependencies.
3090 2008-05-20 Robert Dewar <dewar@adacore.com>
3092 * opt.ads (Treat_Restrictions_As_Warnings): New switch
3094 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
3095 Treat_Restrictions_As_Warnings.
3097 * switch-c.adb: Recognize new switch -gnatr
3099 * usage.adb: Add line for -gnatr
3101 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3104 (P_Access_Definition): Change the error message when parsing "access
3105 all" in Ada 95 mode. The message no longer forces the user to recompile
3106 in 05 mode only to discover that anonymous access types are not allowed
3109 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
3112 (P_Protected): Update the error message on missing "-gnat05" switch when
3113 using interfaces in conjunction with protected types. Remove the
3114 incorrect error message associated with the presence of "private" after
3117 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3119 * sem_aggr.adb: Update comments.
3120 Improve previous change for PR ada/17985
3122 2008-05-20 Thomas Quinot <quinot@adacore.com>
3125 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
3126 the visible part of the spec of a remote types unit.
3127 (Validate_Remote_Access_Object_Type_Declaration):
3128 New local subprogram Is_Valid_Remote_Object_Type, replaces
3129 Is_Recursively_Limited_Private.
3130 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
3131 non-controlling formals (and the return type, even though this is not
3132 explicit in the standard) must support external streaming.
3133 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
3134 as above for of RAS types and RCI subprograms. (The return type is not
3136 Update comments related to RACWs designating limited interfaces per
3137 ARG ruling on AI05-060.
3139 * sem_util.ads, sem_util.adb
3140 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
3141 Is_Remote_Call_Interface to identify RACW types in a stable and
3142 consistent way. We used to rely in this predicate on the privateness of
3143 the designated type and its ancestors, but depending on the currently
3144 visible private parts, this caused false negatives. We now uniformly
3145 rely on checks made at the point where the RACW type is declared.
3146 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
3148 2008-05-20 Javier Miranda <miranda@adacore.com>
3149 Ed Schonberg <schonberg@adacore.com>
3150 Hristian Kirtchev <kirtchev@adacore.com>
3153 (Analyze_Object_Declaration): Fix over-conservative condition
3154 restricting use of predefined assignment with tagged types that have
3156 (Analyze_Object_Declaration): Relax the check regarding deferred
3157 constants declared in scopes other than packages since they can be
3158 completed with pragma Import.
3159 Add missing escaping of all-caps word 'CPP' in error messages.
3160 (Build_Discriminated_Subtype): Do not inherit representation clauses
3161 from parent type if subtype already carries them, because they are
3162 inherited earlier during derivation and already include those that may
3163 come from a partial view.
3165 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
3166 Check the declarations of a subprogram body for proper deferred
3167 constant completion.
3169 * sem_ch7.ads, sem_ch7.adb
3170 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
3172 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3173 Thomas Quinot <quinot@adacore.com>
3176 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
3177 F is a parameterless function that returns an array, and S is a subtype
3179 (Analyze_Call): Insert dereference when the prefix is a parameterless
3180 function that returns an access to subprogram and the call has
3182 Reject a non-overloaded call whose name resolves to denote
3183 a primitive operation of the stub type generated to support a remote
3184 access-to-class-wide type.
3186 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3189 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
3190 when there is a use clause for the same entity in the context.
3191 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
3192 created for a stream attribute of an abstract type or interface type.
3194 2008-05-20 Thomas Quinot <quinot@adacore.com>
3196 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
3200 (Add_One_Interp): Ignore any interpretation that is a primitive
3201 operation of an RACW stub type (these primitives are only executed
3202 through dispatching, never through static calls).
3203 (Collect_Interps): When only one interpretation has been found, set N's
3204 Entity and Etype to that interpretation, otherwise Entity and Etype may
3205 still refer to an interpretation that was ignored by Add_One_Interp,
3206 in which case would end up with being marked as not overloaded but with
3207 an Entity attribute not pointing to its (unique) correct interpretation.
3209 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3212 (Eval_Slice): Warn when a slice whose discrete range is a subtype name
3213 denotes the whole array of its prefix.
3215 2008-05-20 Robert Dewar <dewar@adacore.com>
3217 * sem_res.adb (Resolve_Op_Not): Warn on double negation
3219 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3222 (Print_Itype): Do not modify the sloc of the component type of a
3223 (packed) array itype, because it is an unrelated type whose source
3224 location is independent of the point of creation of the itype itself.
3226 2008-05-20 Thomas Quinot <quinot@adacore.com>
3228 * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
3231 2008-05-20 Robert Dewar <dewar@adacore.com>
3232 Vincent Celier <celier@adacore.com>
3234 * vms_data.ads: Add entry for -gnatr
3235 Put GNAT SYNC section in proper alpha order
3236 Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
3238 * gnat_ugn.texi: Add documentation for new gnatname switch --and
3239 Update the style checks section
3240 Add documentation of -gnatr
3241 Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
3242 subsection the explanation how compiler checks should be disabled for
3244 Update the list of Ada 95 reserved words used by in the project language
3245 Add documentation for project qualifiers.
3246 Document that abstract projects may be extended by different projects in
3247 the same project tree.
3248 Add documentation for gnatmake switch -d
3250 * ug_words: Add -gnatyy VMS equivalence string.
3251 Add entry for -gnatr
3253 2008-05-20 Bob Duff <duff@adacore.com>
3256 (Set_Handler): Remove code from both of these that implements
3257 RM-D.15(15/2), because it causes a race condition and potential
3259 (Process_Queued_Events): Add comment explaining "exception when others
3260 => null". Add clarifying ".all", even though implicit .all is legal
3263 2008-05-20 Arnaud Charlet <charlet@adacore.com>
3265 * s-winext.ads: Replace representation clause by pragma Pack. Gives
3266 equivalent representation, but has the advantage of allowing
3267 compilation of this file under 64 bits platforms.
3269 * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
3271 * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
3274 Don't define dummy implementation of convert_addresses on ppc-linux.
3276 2008-05-20 Ed Schonberg <schonberg@adacore.com>
3279 (Expand_Ctrl_Function_Call): Do not attach result to finalization list
3280 if expression is aggregate component.
3282 2008-05-20 Robert Dewar <dewar@adacore.com>
3284 * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
3285 sem_ch12.adb: Update comments. Minor reformatting.
3289 * s-unstyp.ads: Fixed some typos in comments.
3291 2008-05-20 Arnaud Charlet <charlet@adacore.com>
3293 * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
3296 * g-socthi-vxworks.ads: Update to latest socket changes.
3298 * a-caldel-vms.adb: Resync with a-caldel spec.
3300 * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
3303 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
3305 * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
3306 for dummy types pointed to by the converted pointer types.
3308 2008-05-15 Eric Botcazou <ebotcazou@adacore.com>
3310 * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
3311 of records and unions.
3312 (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
3314 2008-05-14 Samuel Tardieu <sam@rfc1149.net>
3315 Robert Dewar <dewar@adacore.com>
3317 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
3318 restrictions to the prefix of 'Old.
3319 * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
3320 * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
3323 2008-05-13 Eric Botcazou <ebotcazou@adacore.com>
3327 * utils.c (convert) <INTEGER_TYPE>: When converting an additive
3328 expression to an integral type with lower precision, use NOP_EXPR
3329 directly in a couple of special cases.
3331 2008-05-12 Samuel Tardieu <sam@rfc1149.net>
3332 Ed Schonberg <schonberg@adacore.com>
3334 * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
3335 constraint expressions.
3337 2008-05-12 Tomas Bily <tbily@suse.cz>
3339 * utils2.c (known_alignment, contains_save_expr_p)
3340 (gnat_mark_addressable): Use CASE_CONVERT.
3341 * decl.c (annotate_value): Likewise.
3342 * trans.c (maybe_stabilize_reference): Likewise.
3343 * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
3344 * utils.c (rest_of_record_type_compilation): Likewise.
3345 * trans.c (protect_multiple_eval, Attribute_to_gnu)
3346 (protect_multiple_eval): Likewise.
3348 2008-05-08 Andreas Schwab <schwab@suse.de>
3350 * utils.c (handle_pure_attribute, init_gigi_decls): Rename
3351 DECL_IS_PURE to DECL_PURE_P.
3353 2008-05-05 Eric Botcazou <ebotcazou@adacore.com>
3355 * decl.c (maybe_pad_type): Add ??? comment.
3357 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
3359 * decl.c (components_to_record): Zero the alignment of the qualified
3360 union built for the variant part upon creating it.
3362 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
3364 * decl.c (maybe_pad_type): Try to get a form of the type with integral
3365 mode even if the alignment is not a factor of the original size. But
3366 make sure to create the inner field with the original size. Reorder.
3367 * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
3368 record as always addressable.
3369 * utils.c (convert): Deal specially with conversions between original
3370 and packable versions of a record type.
3371 * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
3372 recognizing an assignment between padded objects.
3374 2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
3376 * decl.c (make_packable_type): Resize the last component to its RM size
3377 only if it is of an aggregate type.
3378 * trans.c (call_to_gnu): Fix nit in comment.
3379 (gnat_to_gnu): Likewise.
3381 2008-04-30 Samuel Tardieu <sam@rfc1149.net>
3383 * Makefile.in: Adapt sh4-linux target.
3385 2008-04-29 Ed Schonberg <schonberg@adacore.com>
3388 * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
3389 tagged type by an untagged protected or task type.
3391 2008-04-28 Eric Botcazou <ebotcazou@adacore.com>
3392 Tristan Gingold <gingold@adacore.com>
3395 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
3396 of aliased objects with an unconstrained nominal subtype.
3397 Cap the promotion to the effective alignment of the word mode.
3399 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3401 * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
3402 (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
3403 Use '&&' instead of ';'.
3405 2008-04-24 Olivier Hainque <hainque@adacore.com>
3407 * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
3408 doesn't require signed arithmetic anymore.
3410 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
3412 * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
3413 (call_to_gnu): Don't set TREE_INVARIANT.
3414 * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
3416 2008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
3418 * s-osinte-rtems.adb: Add sigalstack function.
3419 * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
3420 function. Add Alternate_Stack and Alternate_Stack_Size.
3421 Add missing process_shared field to pthread_condattr_t
3422 and change ss_low_priority to int from timespec.
3424 2008-04-22 Samuel Tardieu <sam@rfc1149.net>
3426 * i-forbla.adb: Link against -llapack and -lblas by default
3427 instead of the private -lgnalasup.
3429 2008-04-21 Olivier Hainque <hainque@adacore.com>
3431 Access to most C builtins from Ada
3432 * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
3433 (handle_pure_attribute, handle_novops_attribute,
3434 handle_nonnull_attribute, handle_sentinel_attribute,
3435 handle_noreturn_attribute, handle_malloc_attribute,