OSDN Git Service

pf3gnuchains/gcc-fork.git
17 years ago2006-10-31 Thomas Quinot <quinot@adacore.com>
charlet [Tue, 31 Oct 2006 18:02:00 +0000 (18:02 +0000)]
2006-10-31  Thomas Quinot  <quinot@adacore.com>
    Eric Botcazou  <ebotcazou@adacore.com>
    Arnaud Charlet  <charlet@adacore.com>

* Makefile.in: Set EH mechanism to ZCX for FreeBSD.
(NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
possible.
(a-except.o): Pass it to the compiler.
(gnatlib-shared-vms): Removed -nostartfiles switch in link step.
(LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
a-calend-mingw.adb version.

        * Makefile.rtl: Added s-dsaser.
Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
(GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
Ada.Dispatching.Round_Robin.
Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists

* Make-lang.in: Remove all references to gt-ada-decl.h.
Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
sources.
Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
Update dependencies.

* system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118285 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Vincent Celier <celier@adacore.com>
charlet [Tue, 31 Oct 2006 18:01:41 +0000 (18:01 +0000)]
2006-10-31  Vincent Celier  <celier@adacore.com>

* lib-load.adb (Load_Unit): Skip the test for a unit not found when
its file has already been loaded, according to the unit being loaded,
not to the current value of Multiple_Unit_Index.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118284 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 18:01:28 +0000 (18:01 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

        * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
        variant records
        (Layout_Variant_Record): Retrieve the discriminants from the entity
rather than from the type definition, because in the case of a full
type for a private type we need to take the discriminants from the
partial view.
        (Layout_Component_List): When applying the Max operator to variants with
        a nonstatic size, check whether either operand is static and scale that
        operand from bits to storage units before applying Max.
(Layout_Type): In VMS, if a C-convention access type has no explicit
size clause (and does not inherit one in the case of a derived type),
then the size is reset to 32 from 64.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118283 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 18:01:11 +0000 (18:01 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118282 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 18:00:56 +0000 (18:00 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* g-speche.ads, g-speche.adb: Add special case to recognize misspelling
initial letter o as a zero.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118281 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Thomas Quinot <quinot@adacore.com>
charlet [Tue, 31 Oct 2006 18:00:42 +0000 (18:00 +0000)]
2006-10-31  Thomas Quinot  <quinot@adacore.com>

* g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
to No_Socket.
(Selector_Type): Add default value of No_Socket for R_Sig_Socket and
W_Sig_Socket.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118280 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Vincent Celier <celier@adacore.com>
charlet [Tue, 31 Oct 2006 18:00:29 +0000 (18:00 +0000)]
2006-10-31  Vincent Celier  <celier@adacore.com>

* g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
absolute path name.
(Locate_Regular_File): Ditto
(Change_Dir): Remove, no longer used
(Normalize_Pathname): Do not use Change_Dir to get the drive letter
on Windows. Get it calling Get_Current_Dir.
(OpenVMS): Remove imported boolean, no longer needed.
(Normalize_Pathname)[VMS]: Do not resolve directory names.
(Pid_To_Integer): New function to convert a Process_Id to  Integer

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118279 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Vincent Celier <celier@adacore.com>
charlet [Tue, 31 Oct 2006 18:00:14 +0000 (18:00 +0000)]
2006-10-31  Vincent Celier  <celier@adacore.com>

* gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
instead of ADA_PROJECT_PATH, for the project path.
(Gnatls): When displaying the project path directories, use host dir
specs.

* prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
names in the project path, as absolute paths may correspond to
multi-valued VMS logical names.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118278 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Vincent Celier <celier@adacore.com>
charlet [Tue, 31 Oct 2006 17:59:58 +0000 (17:59 +0000)]
2006-10-31  Vincent Celier  <celier@adacore.com>

* gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
call it with -static-libgcc, as there are some platforms, such as
Darwin, where one of these two switches is compulsory to link.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118277 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Arnaud Charlet <charlet@adacore.com>
charlet [Tue, 31 Oct 2006 17:59:45 +0000 (17:59 +0000)]
2006-10-31  Arnaud Charlet  <charlet@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
handling executable extension manually and duplicating code.

* make.adb: Implement new -S switch
(Gnatmake): Use new function Osint.Executable_Name instead
of handling executable extension manually.

* prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
is specified, the executable name ends with this suffix.
Take advantage of Osint.Executable_Name instead of duplicating code.

* switch-m.adb: Recognize new gnatmake -S switch

* targparm.ads, targparm.adb (Executable_Extension_On_Target): New
variable.
(Get_Target_Parameters): Set Executable_Extension_On_Target if
available.

* makeusg.adb: Add line for gnatmake -S switch

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118276 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Vincent Celier <celier@adacore.com>
charlet [Tue, 31 Oct 2006 17:59:28 +0000 (17:59 +0000)]
2006-10-31  Vincent Celier  <celier@adacore.com>

* g-debpoo.adb (Is_Valid): Correctly compute Offset using
Integer_Address arithmetic, as in Set_Valid.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118275 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Tue, 31 Oct 2006 17:59:12 +0000 (17:59 +0000)]
2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>

* g-catiio.ads, g-catiio.adb (Value): New function.
Given an input String, try and parse a valid Time value.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118274 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Bob Duff <duff@adacore.com>
charlet [Tue, 31 Oct 2006 17:58:48 +0000 (17:58 +0000)]
2006-10-31  Bob Duff  <duff@adacore.com>
    Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* g-awk.adb (Default_Session, Current_Session): Compile this file in
Ada 95 mode, because it violates the new rules for AI-318.

* g-awk.ads: Use overloaded subprograms in every case where we used to
have a default of Current_Session. This makes the code closer to be
correct for both Ada 95 and 2005.

* g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
code, relying on the fact that the compiler generates a warning
instead of an error in -gnatg mode.

* lib-xref.ads (Xref_Entity_Letters): Add entry for new
E_Return_Statement entity kind.
Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.

* par.adb (P_Interface_Type_Definition): Addition of one formal to
report an error if the reserved word abstract has been previously found.
(SS_End_Type): Add E_Return for new extended_return_statement syntax.

        * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
parenthesized range attribute usage
(P_Expression_No_Right_Paren): Add missing comment about error recovery.

* par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
in the syntax for extended_return_statement. This is not in the latest
RM, but the ARG is expected to issue an AI allowing this.
(P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
N_Return_Object_Declaration. We now use N_Object_Declaration instead.
(P_Return_Object_Declaration, P_Return_Subtype_Indication,
P_Return_Statement): Parse the new syntax for extended_return_statement.

* par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
Output_End_Missing): Add error-recovery code for the new
extended_return_statement syntax; that is, the new E_Return entry on
the scope stack.

* s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
limited to nonlimited, because otherwise we violate the new Ada 2005
rules about returning limited types in function Create_AST_Handler in
s-asthan.adb.

* sem.adb (Analyze): Add cases for new node kinds
N_Extended_Return_Statement and N_Return_Object_Declaration.

* sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
type is in the same category as type of context before applying check,
to prevent anomalies in instantiations.
(Resolve_Aggregate): Remove test for limited components in aggregates.
It's unnecessary in Ada 95, because if it has limited components, then
it must be limited. It's wrong in Ada 2005, because limited aggregates
are now allowed.
(Resolve_Record_Aggregate): Move check for limited types later, because
OK_For_Limited_Init requires its argument to have been resolved.
(Get_Value): When copying the component default expression for a
defaulted association in an aggregate, use the sloc of the aggregate
and not that of the original expression, to prevent spurious
elaboration errors, when the expression includes function calls.
(Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
were missing. We also didn't handle qualified expressions. Now also
allow function calls. Use new common routine OK_For_Limited_Init.
(Resolve_Extension_Aggregate): Minor fix to bad error message (started
with space can upper case letter).

        * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
Has_Static_Discriminants flag
        (Record_Type_Declaration): Diagnose an attempt to declare an interface
        type with discriminants.
        (Process_Range_Expr_In_Decl): Do validity checks on range
(Build_Discriminant_Constraints): Use updated form of
Denotes_Discriminant.
(Process_Subtype): If the subtype is a private subtype whose full view
is a concurrent subtype, introduce an itype reference to prevent scope
anomalies in gigi.
(Build_Derived_Record_Type, Collect_Interface_Primitives,
Record_Type_Declaration):  The functionality of the subprograms
Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
is now performed by a single routine.
(Build_Derived_Record_Type): If the type definition includes an explicit
indication of limitedness, then the type must be marked as limited here
to ensure that any access discriminants will not be treated as having
a local anonymous access type.
(Check_Abstract_Overriding): Issue a detailed error message when an
abstract subprogram was not overridden due to incorrect mode of its
first parameter.
(Analyze_Private_Extension_Declaration): Add support for the analysis of
synchronized private extension declarations. Verify that the ancestor is
a limited or synchronized interface or in the generic case, the ancestor
is a tagged limited type or synchronized interface and all progenitors
are either limited or synchronized interfaces.
Derived_Type_Declaration): Check for presence of private extension when
dealing with synchronized formal derived types.
Process_Full_View): Enchance the check done on the usage of "limited" by
testing whether the private view is synchronized.
Verify that a synchronized private view is completed by a protected or
task type.
(OK_For_Limited_Init_In_05): New function.
(Analyze_Object_Declaration): Move check for limited types later,
because OK_For_Limited_Init requires its argument to have been resolved.
Add -gnatd.l --Use Ada 95 semantics for limited function returns,
in order to alleviate the upward compatibility introduced by AI-318.
(Constrain_Corresponding_Record): If the constraint is for a component
subtype, mark the itype as frozen, to avoid out-of-scope references to
discriminants in the back-end.
(Collect_Implemented_Interfaces): Protect the recursive algorithm of
this subprogram against wrong sources.
(Get_Discr_Value, Is_Discriminant): Handle properly references to a
discriminant of limited type completed with a protected type, when the
discriminant is used to constrain a private component of the type, and
expansion is disabled.
(Find_Type_Of_Object): Do not treat a return subtype that is an
anonymous subtype as a local_anonymous_type, because its accessibility
level is the return type of the enclosing function.
(Check_Initialization): In -gnatg mode, turn the error "cannot
initialize entities of limited type" into a warning.
(OK_For_Limited_Init): Return true for generated nodes, since it
sometimes violates the legality rules.
(Make_Incomplete_Declaration): If the type for which an incomplete
declaration is created happens to be the currently visible entity,
preserve the homonym chain when removing it from visibility.
(Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
inherited subprograms.
(Access_Definition): If this is an access to function that is the return
type of an access_to_function definition, context is a type declaration
and the scope of the anonymous type is the current one.
(Analyze_Subtype_Declaration): Add the defining identifier of a regular
incomplete subtype to the set of private dependents of the original
incomplete type.
(Constrain_Discriminated_Type): Emit an error message whenever an
incomplete subtype is being constrained.
(Process_Incomplete_Dependents): Transform an incomplete subtype into a
corresponding subtype of the full view of the original incomplete type.
(Check_Incomplete): Properly detect invalid usage of incomplete types
and subtypes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118273 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Olivier Hainque <hainque@adacore.com>
charlet [Tue, 31 Oct 2006 17:58:30 +0000 (17:58 +0000)]
2006-10-31  Olivier Hainque  <hainque@adacore.com>

* g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118272 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:58:16 +0000 (17:58 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* freeze.adb: Add handling of Last_Assignment field
(Warn_Overlay): Supply missing continuation marks in error msgs
(Freeze_Entity): Add check for Preelaborable_Initialization

* g-comlin.adb: Add Warnings (Off) to prevent new warning

* g-expect.adb: Add Warnings (Off) to prevent new warning

* lib-xref.adb: Add handling of Last_Assignment field
(Generate_Reference): Centralize handling of pragma Obsolescent here
(Generate_Reference): Accept an implicit reference generated for a
default in an instance.
(Generate_Reference): Accept a reference for a node that is not in the
main unit, if it is the generic body corresponding to an subprogram
instantiation.

* xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings

        * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
-gnatwq/Q.
(Warn_On_Useless_Assignment): Suppress warning if enclosing inner
exception handler.
(Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
use clauses, to avoid messages on packages used to qualify, and also
to avoid messages from obsolescent units.
(Warn_On_Useless_Assignments): Don't generate messages for imported
and exported variables.
(Warn_On_Useless_Assignments): New procedure
(Output_Obsolescent_Entity_Warnings): New procedure
(Check_Code_Statement): New procedure

        * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
Change name Is_Ada_2005 to Is_Ada_2005_Only
(Last_Assignment): New field for useless assignment warning

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118271 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Vincent Celier <celier@adacore.com>
charlet [Tue, 31 Oct 2006 17:57:54 +0000 (17:57 +0000)]
2006-10-31  Vincent Celier  <celier@adacore.com>

* krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
When True, apply VMS treatment to children of packages A, G, I and S.
For F320-016

* fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118270 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Bob Duff <duff@adacore.com>
charlet [Tue, 31 Oct 2006 17:57:36 +0000 (17:57 +0000)]
2006-10-31  Bob Duff  <duff@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
Is_Inherently_Limited_Type, because return-by-reference has no meaning
in Ada 2005.
(Find_Node_To_Be_Wrapped): Use new method of determining the result
type of the function containing a return statement, because the
Return_Type field was removed. We now use the Return_Applies_To field.

        * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
(Build_Task_Image_Decl): If procedure is not called from an
initialization procedure, indicate that function that builds task name
uses the sec. stack. Otherwise the enclosing initialization procedure
will carry the indication.
(Insert_Actions): Remove N_Return_Object_Declaration. We now use
N_Object_Declaration instead.
(Kill_Dead_Code): New interface to implement -gnatwt warning for
conditional dead code killed, and change implementation accordingly.
(Insert_Actions): Add N_Return_Object_Declaration case.
Correct comment to mention N_Extension_Aggregate node.
(Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
attempts to save information for global variables which cannot be
safely tracked.
(Get_Current_Value_Condition): Handle conditions the other way round
(constant on left). Also handle right operand of AND and AND THEN
(Set_Current_Value_Condition): Corresponding changes
(Append_Freeze_Action): Remove unnecessary initialization of Fnode.
(Get_Current_Value_Condition): Handle simple boolean operands
(Get_Current_Value_Condition): Handle left operand of AND or AND THEN
(Get_Current_Value_Condition): If the variable reference is within an
if-statement, does not appear in the list of then_statments, and does
not come from source, treat it as being at unknown location.
(Get_Current_Value_Condition): Enhance to allow while statements to be
processed as well as if statements.
(New_Class_Wide_Subtype): The entity for a class-wide subtype does not
come from source.
(OK_To_Do_Constant_Replacement): Allow constant replacement within body
of loop. This is safe now that we fixed Kill_Current_Values.
(OK_To_Do_Constant_Replacement): Check whether current scope is
Standard, before examining outer scopes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118269 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:57:10 +0000 (17:57 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* exp_prag.adb (Expand_Pragma_Common_Object): Use a single
Machine_Attribute pragma internally to implement the user pragma.
Add processing for pragma Interface so that it is now completely
equivalent to pragma Import.

* sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
so that it can be applied to all entities, including record components
and enumeration literals.
(Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
priority ranges are correct, verify compatibility against task
dispatching and locking policies, and if everything is correct an entry
is added to the table containing priority specific dispatching entries
for this compilation unit.
(Delay_Config_Pragma_Analyze): Delay processing
Priority_Specific_Dispatching pragmas because when processing the
pragma we need to access run-time data, such as the range of
System.Any_Priority.
(Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
Allow pragma Unreferenced as a context item
Add pragma Preelaborable_Initialization
(Analyze_Pragma, case Interface): Interface is extended so that it is
now syntactically and semantically equivalent to Import.
(Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
insertion characters.
Add handling for Pragma_Wide_Character_Encoding
(Process_Restrictions_Restriction_Warnings): Ensure that a warning
never supercedes a real restriction, and that a real restriction
always supercedes a warning.
(Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
appropriate form.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118268 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Javier Miranda <miranda@adacore.com>
charlet [Tue, 31 Oct 2006 17:56:43 +0000 (17:56 +0000)]
2006-10-31  Javier Miranda  <miranda@adacore.com>

* exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
run-time membership test to ensure that the constructed object
implements the target abstract interface.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118267 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:56:24 +0000 (17:56 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
cases, pass the encoding method, since it is now required by the run
time.

* s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
assumption that Str'First = 1.
(Value_Wide_Character): Takes EM (encoding method) parameter and passes
it on to the Value_Wide_Wide_Character call.
(Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
properly handles a string of the form quote-encoded_wide_char-quote.

* s-wchcnv.adb: Minor reformatting

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118266 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Ed Schonberg <schonberg@adacore.com>
charlet [Tue, 31 Oct 2006 17:56:09 +0000 (17:56 +0000)]
2006-10-31  Ed Schonberg  <schonberg@adacore.com>

* exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
fixed-point operations in an integer context, i.e. as operands of a
conversion to an integer type, indicate that result must be rounded.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118265 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Thomas Quinot <quinot@adacore.com>
charlet [Tue, 31 Oct 2006 17:55:55 +0000 (17:55 +0000)]
2006-10-31  Thomas Quinot  <quinot@adacore.com>
    Pablo Oliveira  <oliveira@adacore.com>

        * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
subprogram Ids, even if they are not yet assigned.
(Build_Subprogram_Id): It is now this function that will take care of
calling Assign_Subprogram_Ids if necessary.
(Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
should be done only once they are assigned.
(Build_From_Any_Function, case of tagged types): Add missing call to
Allocate_Buffer.
(Corresponding_Stub_Type): New subprogram. Returns the associated stub
type for an RACW type.
(Add_RACW_Features): When processing an RACW declaration for which the
designated type is already frozen, enforce E.2.2(14) rules immediately.
(GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
special reordering of controlling formals.

* exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
associated stub type for an RACW type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118264 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:55:39 +0000 (17:55 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
initialization of Homonym_Len.
(Fully_Qualify_Name): Remove kludge to eliminate anonymous block
names from fully qualified name. Fixes problem of duplicate
external names differing only in the presence of such a block name.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118263 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Ed Schonberg <schonberg@adacore.com>
charlet [Tue, 31 Oct 2006 17:55:21 +0000 (17:55 +0000)]
2006-10-31  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
references that are private components of the protected object.
(Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
(Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
instantiation to deal with warnings.
(Initialize_Protection): If expression for priority is non-static, use
System_Priority as its expected type, in case the expression has not
been analyzed yet.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118261 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:55:05 +0000 (17:55 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Bob Duff  <duff@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

* exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
capability.
(Expand_Inlined_Call): Tagged types are by-reference types, and
therefore should be replaced by a renaming declaration in the expanded
body, as is done for limited types.
(Expand_Call): If this is a call to a function with dispatching access
result, propagate tag from context.
(Freeze_Subprogram): Enable full ABI compatibility for interfacing with
CPP by default.
(Make_Build_In_Place_Call_In_Assignment): New procedure to do
build-in-place when the right-hand side of an assignment is a
build-in-place function call.
(Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
of the explicit dereference of the allocator to the result subtype of
the build-in-place function. This is needed to satisfy type checking
in cases where the caller's return object is created by an allocator for
a class-wide access type and the type named in the allocator is a
specific type.
(Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
conversion of the reference to the declared object to the result subtype
of the build-in-place function. This is needed to satisfy type checking
in cases where the declared object has a class-wide type. Also, in the
class-wide case, change the type of the object entity to the specific
result subtype of the function, to avoid passing a class-wide object
without explicit initialization to the back end.
(Register_Interface_DT_Entry): Moved outside the body of
Freeze_Subprogram because this routine is now public; it is called from
Check_Dispatching_Overriding to handle late overriding of abstract
interface primitives.
(Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
adding an implicit access actual on a call to a build-in-place function.
(Expand_Actuals): Test for an actual parameter that is a call to a
build-in-place function and apply
Make_Build_In_Place_Call_In_Anonymous_Context to the call.
(Is_Build_In_Place_Function): New function to determine whether an
entity is a function whose calls should be handled as build-in-place.
(Is_Build_In_Place_Function_Call): New function to determine whether an
expression is a function call that should handled as build-in-place.
(Make_Build_In_Place_Call_In_Allocator): New procedure for handling
calls to build-in-place functions as the initialization of an allocator.
(Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
handling calls to build-in-place functions in contexts that do not
involve init of a separate object (for example, actuals of subprogram
calls).
(Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
handling calls to build-in-place functions as the initialization of an
object declaration.
(Detect_Infinite_Recursion): Add explicit parameter Process to
instantiation of Traverse_Body to avoid unreferenced warning.
(Check_Overriding_Inherited_Interfaces): Removed.
(Register_Interface_DT_Entry): Code cleanup.
(Register_Predefined_DT_Entry): Code cleanup.
(Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
inlined statements if within a transient scope.
(Expand_Inlined_Call.Process_Formals): When replacing occurrences of
formal parameters with occurrences of actuals in inlined body, establish
visibility on the proper view of the actual's subtype for the body's
context.
(Freeze_Subprogram): Do nothing if we are compiling under full ABI
compatibility mode and we have an imported CPP subprogram because
for now we assume that imported CPP primitives correspond with
objects whose constructor is in the CPP side (and therefore we
don't need to generate code to register them in the dispatch table).
(Expand_Actuals): Introduce copy of actual, only if it might be a bit-
aligned selected component.
(Add_Call_By_Copy_Node): Add missing code to handle the case in which
the actual of an in-mode parameter is a type conversion.
(Expand_Actuals): If the call does not come from source and the actual
is potentially misaligned, let gigi handle it rather than rejecting the
(Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
Class Wide types as returning by reference independantly of their
controlled status since with HIE runtimes class wide types are not
potentially controlled anymore.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118260 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago PR target/24071
ebotcazou [Tue, 31 Oct 2006 17:54:58 +0000 (17:54 +0000)]
PR target/24071
* gthr-posix.h (__gthread_active_p): New implementation on Solaris.
* gthr-posix95.h (__gthread_active_p): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118259 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Bob Duff <duff@adacore.com>
charlet [Tue, 31 Oct 2006 17:54:50 +0000 (17:54 +0000)]
2006-10-31  Bob Duff  <duff@adacore.com>
    Robert Dewar  <dewar@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.

        * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
(Expand_N_Assignment_Statement): Call
Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
build-in-place function call. Currently, this can happen only for
assignments that come from aggregates.
Add -gnatd.l --Use Ada 95 semantics for limited function returns,
in order to alleviate the upward compatibility introduced by AI-318.
(Expand_N_Extended_Return_Statement): Add support for handling the
return object as a build-in-place result.
(Expand_Non_Function_Return): Implement simple return statements nested
within an extended return.
(Enable_New_Return_Processing): Turn on the new processing of return
statements.
(Expand_Non_Function_Return): For a return within an extended return,
don't raise Program_Error, because Sem_Ch6 now gives a warning.
(Expand_N_Extended_Return_Statement): Implement AI-318
(Expand_Simple_Function_Return): Ditto.
(Expand_N_If_Statement): Handle new -gnatwt warning
(Expand_N_Case_Statement): Handle new -gnatwt warning
(Expand_N_Assignment): Handle assignment to the Priority attribute of
a protected object.
(Expand_N_Assignment_Statement): Implement -gnatVe/E to control
validity checking of assignments to elementary record components.
(Expand_N_Return_Statement): return Class Wide types on the secondary
stack independantly of their controlled status since with HIE runtimes,
class wide types are not potentially controlled anymore.

* expander.adb (Expand): Add case for new N_Extended_Return_Statement
node kind.

* exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
it expects a block, procedure, or task. The return statement will get
turned into a block, and Expand_Cleanup_Actions will happen then.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118258 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Javier Miranda <miranda@adacore.com>
charlet [Tue, 31 Oct 2006 17:54:34 +0000 (17:54 +0000)]
2006-10-31  Javier Miranda  <miranda@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Bob Duff  <duff@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>
    Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
conversion.
        (Expand_N_In): Do validity checks on range
(Expand_Selected_Component): Use updated for of Denotes_Discriminant.
(Expand_N_Allocator): For "new T", if the object is constrained by
discriminant defaults, allocate the right amount of memory, rather than
the maximum for type T.
(Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
when the allocator is initialized by a build-in-place call, since the
allocator is already rewritten as a reference to the function result,
and this prevents an unwanted duplication of the function call.
Add with and use of Exp_Ch6.
(Expand_Allocator_Expresssion): Check for an allocator whose expression
is a call to build-in-place function and apply
Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
untagged designated types).
(Expand_N_Unchecked_Type_Conversion): Do not do integer literal
optimization if source or target is biased.
(Expand_N_Allocator): Add comments for case of an allocator within a
function that returns an anonymous access type designating tasks.
(Expand_N_Allocator): apply discriminant checks for access
discriminants of anonymous access types (AI-402, AI-416)

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118257 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Javier Miranda <miranda@adacore.com>
charlet [Tue, 31 Oct 2006 17:54:22 +0000 (17:54 +0000)]
2006-10-31  Javier Miranda  <miranda@adacore.com>
    Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

        * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
register in the final list objects containing class-wide interfaces;
otherwise we incorrectly register the tag of the interface in the final
list.
        (Make_Controlling_Function_Wrappers): Add missing barrier to do not
        generate the wrapper if the parent primitive is abstract. This is
        required to report the correct error message.
        (Expand_N_Subtype_Indication): Do validity checks on range
(Clean_Task_Names): If an initialization procedure includes a call to
initialize a task (sub)component, indicate that the procedure will use
the secondary stack.
(Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
compatibility for interfacing with CPP by default.
(Expand_N_Object_Declaration): Only build an Adjust call when the
object's type is a nonlimited controlled type.
* exp_ch3.adb: Add with and use of Exp_Ch6.
(Expand_N_Object_Declaration): Check for object initialization that is a
call to build-in-place function and apply Make_Build_In_Place_Call_In_
Object_Declaration to the call.
(Freeze_Type): When the designated type of an RACW was not frozen at the
point where the RACW was declared, validate the primitive operations
with respect to E.2.2(14) when it finally is frozen.
(Build_Initialization_Call,Expand_Record_Controller): Rename
Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
return-by-reference has no meaning in Ada 2005.
(Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
to register tag of the immediate ancestor interfaces in the
run-time structure.
(Init_Secondary_Tags): Moved to the specification to allow the
initialization of extension aggregates with abstract interfaces.
(Build_Master_Renaming): Make public, for use by function declarations
whose return type is an anonymous access type.
(Freeze_Record_Type): Replace call to Insert_List_Before by call to
Insert_List_Before_And_Analyze after the generation of the specs
associated with null procedures.
(Expand_Tagged_Root): Update documentation in its specification.
(Init_Secondary_Tags): Update documentation.
(Build_Init_Procedure): If we are compiling under CPP full ABI compa-
tibility mode and the immediate ancestor is a CPP_Pragma tagged type
then generate code to inherit the contents of the dispatch table
directly from the ancestor.
(Expand_Record_Controller): Insert controller component after tags of
implemented interfaces.
(Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
create null procedure overridings when null procedures are inherited
from interfaces.
(Make_Null_Procedure_Specs): New procedure to generate null procedure
declarations for overriding null primitives inherited from interfaces.
(Is_Null_Interface_Procedure): New function in
Make_Null_Procedure_Specs.
(Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
immediate ancestor of a tagged type is an abstract interface type we
must generate the specification of the predefined primitives associated
with controlled types (because the dispatch table of the ancestor is
null and hence these entries cannot be inherited). This is required to
elaborate well the dispatch table.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118256 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:54:05 +0000 (17:54 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
(Expand_Entity_Reference): Correct error of not handling subprogram
formals in current_value processing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118255 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Ed Schonberg <schonberg@adacore.com>
charlet [Tue, 31 Oct 2006 17:53:50 +0000 (17:53 +0000)]
2006-10-31  Ed Schonberg  <schonberg@adacore.com>
    Thomas Quinot  <quinot@adacore.com>
    Javier Miranda  <miranda@adacore.com>
    Robert Dewar  <dewar@adacore.com>

        * exp_attr.adb:
        (Expand_Access_To_Protected_Op): If the context indicates that an access
        to a local operation may be transfered outside of the object, create an
        access to the wrapper operation that must be used in an external call.
(Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
target, pass the Valid attribute applied to a floating-point prefix on
to the back end without expansion.
(Storage_Size): Use the new run-time function Storage_Size to retrieve
the allocated storage when it is specified by a per-object expression.
(Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
Nothing to do here, the attribute has been rewritten during semantic
analysis.
(Expand_Attribute_Reference): Handle expansion of the new Priority
attribute
(Find_Fat_Info): Handle case of universal real
(Expand_Access_To_Protected_Op): Fix use of access to protected
subprogram from inside the body of a protected entry.
(Expand_Access_To_Protected_Op): Common procedure for the expansion of
'Access and 'Unrestricted_Access, to transform the attribute reference
into a fat pointer.
(Is_Constrained_Aliased_View): New predicate to help determine whether a
subcomponent's enclosing variable is aliased with a constrained subtype.
(Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
an aliased prefix must be known to be constrained in order to use True
for the attribute value, and now it's possible for some aliased views
to be unconstrained.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118254 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Bob Duff <duff@adacore.com>
charlet [Tue, 31 Oct 2006 17:53:35 +0000 (17:53 +0000)]
2006-10-31  Bob Duff  <duff@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
the parent part is a build-in-place function call, generate assignments.
(Expand_Record_Aggregate): Call Convert_To_Assignments if any components
are build-in-place function calls.
(Replace_Self_Reference): New subsidiary of
Make_OK_Assignment_Statement, to replace an access attribute that is a
self-reference into an access to the appropriate component of the
target object. Generalizes previous mechanism to handle self-references
nested at any level.
(Is_Self_Referential_Init): Remove, not needed.
(Is_Self_Referential_Init): New predicate to simplify handling of self
referential components in record aggregates.
(Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
check for presence of entity before checking for self-reference.
(Has_Default_Init_Comps): Return True if a component association is a
self-reference to the enclosing type, which can only come from a
default initialization.
(Make_OK_Assignment_Statement): If the expression is of the form
Typ'Acc, where Acc is an access attribute, the expression comes from a
default initialized self-referential component.
(Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
that has been derived from several abstract interfaces we must also
initialize the tags of the secondary dispatch tables.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118253 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:53:20 +0000 (17:53 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
(Set_Specific_Warning_Off): New procedure
(Warning_Specifically_Suppressed): New function
(Validate_Specific_Warnings): New procedure
(Output_Msg_Text): Complete rewrite to support -gnatjnn

* err_vars.ads: Implement insertion character ~ (insert string)

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118252 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:52:20 +0000 (17:52 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
Avoid abbreviation Creat
(Finalize): List all sources in extended mail source if -gnatl
switch is active.
Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
(Finalize): Implement new -gnatl=xxx switch to output listing to file
(Set_Specific_Warning_On): New procedure
(Set_Specific_Warning_Off): New procedure
Add implementation of new insertion \\
(Error_Msg_Internal): Add handling for Error_Msg_Line_Length
(Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
types.
(Error_Msg_Internal): Make sure that we set Last_Killed to
True when a message from another package is suppressed.
Implement insertion character ~ (insert string)
(First_Node): Minor adjustments to get better placement.

* frontend.adb:
Implement new -gnatl=xxx switch to output listing to file

* gnat1drv.adb:
Implement new -gnatl=xxx switch to output listing to file

        * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
(Commands_To_Stdout): New flag
Implement new -gnatl=xxx switch to output listing to file
New switch Dump_Source_Text
(Warn_On_Deleted_Code): New warning flag for -gnatwt
Define Error_Msg_Line_Length
(Warn_On_Assumed_Low_Bound): New switch

* osint.ads, osint.adb
(Normalize_Directory_Name): Fix bug.
Implement new -gnatl=xxx switch to output listing to file
(Concat): Removed, replaced by real concatenation
Make use of concatenation now allowed in compiler
(Executable_Prefix.Get_Install_Dir): First get the full path, so that
we find the 'lib' or 'bin' directory even when the tool has been
invoked with a relative path.
(Executable_Name): New function taking string parameters.

* osint-c.ads, osint-c.adb:
Implement new -gnatl=xxx switch to output listing to file

* sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File

* switch-c.adb:
Implement new -gnatl=xxx switch to output listing to file
Recognize new -gnatL switch
(no longer keep in old warning about old style usage)
Use concatenation to simplify code
Recognize -gnatjnn switch
(Scan_Front_End_Switches): Clean up handling of -gnatW
(Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118251 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:51:56 +0000 (17:51 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Bob Duff  <duff@adacore.com>

* einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
entities. Move other fields around to make this possible
(Is_Derived_Type): Add missing call to Is_Type.
(Extra_Formals): New function for subprograms, entries, subprogram
types.
(Set_Extra_Formals): New procedure for subprograms, entries, subp types.
(First_Formal_With_Extras): New function for subprogs, entries, subp
types.
(Write_Field28_Name): New procedure for node display of "Extra_Formals".
Add node information for E_Return_Statement.
(Elaborate_Body_Desirable): New flag
(Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
to be Is_Inherently_Limited_Type, because return-by-reference has
no meaning in Ada 2005.
(E_Return_Statement): New entity kind.
(Return_Applies_To): Field of E_Return_Statement.
(Is_Return_Object): New flag in object entities.
(Is_Dynamic_Scope): Make it True for E_Return_Statement.
(Must_Have_Preelab_Init): New flag
(Known_To_Have_Preelab_Init): New flag
(Is_Formal_Object): Move from Sem_Ch8 body to Einfo
(Is_Visible_Formal): New flag on entities in formal packages.
(Low_Bound_Known): New flag
(Non_Limited_View, Set_Non_Limited_View): Add membership test agains
Incomplete_Kind.
(Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
output when Id is an incomplete subtype.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118250 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:51:38 +0000 (17:51 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
vms_conv.adb: Fix bad table increment values (much too small)

* table.adb (Realloc): Make sure we get at least some new elements
Defends against silly small values for table increment

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118249 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:51:20 +0000 (17:51 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* treepr.adb: Use new subtype N_Membership_Test

        * checks.ads, checks.adb: Add definition for Validity_Check
        (Range_Or_Validity_Checks_Suppressed): New function
        (Ensure_Valid): Test Validity_Check suppressed
        (Insert_Valid_Check): Test Validity_Check suppressed
        (Insert_Valid_Check): Preserve Do_Range_Check flag
(Validity_Check_Range): New procedure
(Expr_Known_Valid): Result of membership test is always valid
(Selected_Range_Checks): Range checks cannot be applied to discriminants
by themselves. Disabling those checks must also be done for task types,
where discriminants may be used for the bounds of entry families.
(Apply_Address_Clause_Check): Remove side-effects if address expression
is non-static and is not the name of a declared constant.
(Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
Code cleanup and new error messages.
(Enable_Range_Check): Test for some cases of suppressed checks
(Generate_Index_Checks): Suppress index checks if index checks are
suppressed for array object or array type.
(Apply_Selected_Length_Checks): Give warning for compile-time detected
length check failure, even if checks are off.
(Ensure_Valid): Do not generate a check on an indexed component whose
prefix is a packed boolean array.
* checks.adb: (Alignment_Checks_Suppressed): New function
(Apply_Address_Clause_Check): New procedure, this is a completely
rewritten replacement for Apply_Alignment_Check
(Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
we request a discriminal value only in case of discriminants.
(Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
assignments where the target subtype is unconstrained and the target
object is a parameter or dereference (other aliased cases are known
to be unconstrained).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118248 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Jose Ruiz <ruiz@adacore.com>
charlet [Tue, 31 Oct 2006 17:51:01 +0000 (17:51 +0000)]
2006-10-31  Jose Ruiz  <ruiz@adacore.com>

* cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
using RTPs.

* mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
when using RTPs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118247 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:50:47 +0000 (17:50 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* bindusg.ads, bindusg.adb:
Change to package and rename procedure as Display, which
now ensures that it only outputs usage information once.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118246 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:50:31 +0000 (17:50 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* binde.adb (Better_Choice, Worse_Choice): Implement new preferences.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118245 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Javier Miranda <miranda@adacore.com>
charlet [Tue, 31 Oct 2006 17:50:11 +0000 (17:50 +0000)]
2006-10-31  Javier Miranda  <miranda@adacore.com>

* a-tags.ads, a-tags.adb:
(Predefined_DT): New function that improves readability of the code.
(Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
Inherit_DT): Use the new function Predefined_DT to improve code
readability.
(Register_Interface_Tag): Update assertion.
(Set_Interface_Table): Update assertion.
(Interface_Ancestor_Tags): New subprogram required to implement AI-405:
determining progenitor interfaces in Tags.
(Inherit_CPP_DT): New subprogram.

        * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
analysis of the thunk code.
        (Expand_Interface_Conversion): Handle run-time conversion of
        access to class wide types.
(Expand_Dispatching_Call): When generating the profile for the
subprogram itype for a dispatching operation, properly terminate the
formal parameters chaind list (set the Next_Entity of the last formal
to Empty).
(Collect_All_Interfaces): Removed. This routine has been moved to
sem_util and renamed as Collect_All_Abstract_Interfaces.
(Set_All_DT_Position): Hidden entities associated with abstract
interface primitives are not taken into account in the check for
3.9.3(10); this check is done with the aliased entity.
(Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
interfacing with CPP by default.
(Expand_Interface_Conversion): Add missing support for static conversion
from an interface to a tagged type.
(Collect_All_Interfaces): Add new out formal containing the list of
abstract interface types to cleanup the subprogram Make_DT.
(Make_DT): Update the code to generate the table of interfaces in case
of abstract interface types.
(Is_Predefined_Dispatching_Alias): New function that returns true if
a primitive is not a predefined dispatching primitive but it is an
alias of a predefined dispatching primitive.
(Make_DT): If the ancestor of the type is a CPP_Class and we are
compiling under full ABI compatibility mode we avoid the generation of
calls to run-time services that fill the dispatch tables because under
this mode we currently inherit the dispatch tables in the IP subprogram.
(Write_DT): Emit an "is null" indication for a null procedure primitive.
(Expand_Interface_Conversion): Use an address as the type of the formal
of the internally built function that handles the case in which the
target type is an access type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118244 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:49:53 +0000 (17:49 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>
    Jose Ruiz  <ruiz@adacore.com>

* a-dispat.ads, a-diroro.ads, a-diroro.adb: New files.

* ali.adb (Get_Name): Properly handle scanning of wide character names
encoded with brackets notation.
(Known_ALI_Lines): Add S lines to this list.
(Scan_ALI): Acquire S (priority specific dispatching) lines.
New flag Elaborate_All_Desirable in unit table

* ali.ads (Priority_Specific_Dispatching): Add this range of
identifiers to be used for Priority_Specific_Dispatching table entries.
(ALIs_Record): Add First_Specific_Dispatching and
Last_Specific_Dispatching that point to the first and last entries
respectively in the priority specific dispatching table for this unit.
(Specific_Dispatching): Add this table for storing each S (priority
specific dispatching) line encountered in the input ALI file.
New flag Elaborate_All_Desirable in unit table

* bcheck.adb: (Check_Configuration_Consistency): Add call to
Check_Consistent_Dispatching_Policy.
(Check_Consistent_Dispatching_Policy): Add this procedure in charge of
verifying that the use of Priority_Specific_Dispatching,
Task_Dispatching_Policy, and Locking_Policy is consistent across the
partition.

* bindgen.adb: (Public_Version_Warning): function removed.
(Set_PSD_Pragma_Table): Add this procedure in charge of getting the
required information from ALI files in order to initialize the table
containing the specific dispatching policy.
(Gen_Adainit_Ada): Generate the variables required for priority specific
dispatching entries (__gl_priority_specific_dispatching and
__gl_num_specific_dispatching).
(Gen_Adainit_C): Generate the variables required for priority specific
dispatching entries (__gl_priority_specific_dispatching and
__gl_num_specific_dispatching).
(Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
pragma entries.
(Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
(Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
(Tab_To): Removed.
(Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
a call to gnat_set_globals.
Generate a string containing settings from
Priority_Specific_Dispatching pragma entries.
(Gen_Object_Files_Options): Do not include the runtime libraries when
pragma No_Run_Time is specified.

* init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
consistency with s-intman-posix.adb.
(__gnat_error_handler, case FreeBSD): Account for the fact that the
handler is installed with SA_SIGINFO.
(__gnat_adjust_context_for_raise, FreeBSD case): New function for
FreeBSD ZCX support, copied from Linux version.
Add MaRTE-specific definitions for the linux target. Redefine sigaction,
sigfillset, and sigemptyset so the routines defined by MaRTE.
(__gl_priority_specific_dispatching): Add this variable that stores the
string containing priority specific dispatching policies in the
partition.
(__gl_num_specific_dispatching): Add this variable that indicates the
highest priority for which a priority specific dispatching pragma
applies.
(__gnat_get_specific_dispatching): Add this routine that returns the
priority specific dispatching policy, as set by a
Priority_Specific_Dispatching pragma appearing anywhere in the current
partition. The input argument is the priority number, and the result
is the upper case first character of the policy name.
(__gnat_set_globals): Now a dummy function.
(__gnat_handle_vms_condition): Feed adjust_context_for_raise with
mechargs instead of sigargs, as the latter can be retrieved from the
former and sigargs is not what we want on ia64.
(__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
mechargs argument.
(__gnat_adjust_context_for_raise, ia64-vms): New function.
(tasking_error): Remove unused symbol.
(_abort_signal): Move this symbol to the IRIX specific part since this
is the only target that uses this definition.
(Check_Abort_Status): Move this symbol to the IRIX specific part since
this is the only target that uses this definition.
(Lock_Task): Remove unused symbol.
(Unlock_Task): Remove unused symbol.

* lib-writ.adb (Write_ALI): Output new S lines for
Priority_Specific_Dispatching pragmas.
Implement new flag BD for elaborate body desirable

* lib-writ.ads: Document S lines for Priority Specific Dispatching.
(Specific_Dispatching): Add this table for storing the entries
corresponding to Priority_Specific_Dispatching pragmas.
Document new BD flag for elaborate body desirable

* par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
of known pragmas.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118243 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:49:05 +0000 (17:49 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* lib.adb, lib.ads: (In_Predefined_Unit): New functions

* a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
a-except-2005.ads: Add pragma Preelaborable_Warning

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118242 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Bob Duff <duff@adacore.com>
charlet [Tue, 31 Oct 2006 17:48:46 +0000 (17:48 +0000)]
2006-10-31  Bob Duff  <duff@adacore.com>

* a-filico.adb (Finalize(List_Controller)): Mark the finalization list
as finalization-started, so we can raise Program_Error on 'new'.

* s-finimp.adb: Raise Program_Error on 'new' if finalization of the
collection has already started.

* s-finimp.ads (Collection_Finalization_Started): Added new special
flag value for indicating that a collection's finalization has started.

* s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
create a task whose master has already waited for dependent tasks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118241 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Pascal Obry <obry@adacore.com>
charlet [Tue, 31 Oct 2006 17:47:20 +0000 (17:47 +0000)]
2006-10-31  Pascal Obry  <obry@adacore.com>
    Eric Botcazou  <ebotcazou@adacore.com>
    Vincent Celier  <celier@adacore.com>

* adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
ASCII version of the registry API. This is needed as the GNAT runtime
is now UNICODE by default.
Include version.h.
(get_gcc_version): Do not hardcode the return value.
(__gnat_file_time_name): On Windows properly set the default returned
value to -1 which corresponds to Invalid_Time.
(__gnat_fopen): New routine. A simple wrapper on all plateforms
 except on Windows where it does conversion for unicode support.
(__gnat_freopen): Idem.
(__gnat_locate_exec_on_path): If environment variable PATH does not
exist, return a NULL pointer

* adaint.h: (__gnat_fopen): Declare.
(__gnat_freopen): Likewise.

* mingw32.h (_tfreopen): Define this macro here for older MingW
version.
Activate the unicode support on platforms using a MingW runtime
version 3.9 or newer.

* s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
This is needed for proper unicode support on Windows.
(freopen): Idem.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118240 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Jose Ruiz <ruiz@adacore.com>
charlet [Tue, 31 Oct 2006 17:47:01 +0000 (17:47 +0000)]
2006-10-31  Jose Ruiz  <ruiz@adacore.com>

* s-osinte-vxworks.ads, s-osinte-vxworks.adb:
(getpid): New body for this function that uses the underlying taskIdSelf
function for VxWorks 5 and VxWorks 6 in kernel mode.
(unsigned_int): New type, modular to allow logical bit operations.
(taskOptionsGet): New imported function.

* s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
field to be compliant with the type used by the corresponding operating
system primitive.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118239 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
charlet [Tue, 31 Oct 2006 17:46:26 +0000 (17:46 +0000)]
2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>

* s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
(Initialize): Add type conversions required by above change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118238 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Vincent Celier <celier@adacore.com>
charlet [Tue, 31 Oct 2006 17:45:59 +0000 (17:45 +0000)]
2006-10-31  Vincent Celier  <celier@adacore.com>
    Eric Botcazou  <ebotcazou@adacore.com>

* mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
Ext_To, when building the library file name

* mlib-tgt-vxworks.adb: ditto.
(Get_Target_Suffix): Add support for x86 targets.

* mlib-fil.ads, mlib-fil.adb: (Append_To): New function

* mlib-tgt-darwin.adb:
Use Append_To, instead of Ext_To, when building the library file name
(Flat_Namespace): New global variable.
(No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
(Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
(Link_Shared_Libgcc): Delete.
(Build_Dynamic_Library): Adjust for above changes.
Use Opt package.
(Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118237 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:45:31 +0000 (17:45 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
system-linux-hppa.ads, system-hpux-ia64.ads,
system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
system-vxworks-sparcv9.ads, system-solaris-x86.ads,
system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
Default_Bit_Order) to kill constant condition warnings for references
to this switch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118236 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Arnaud Charlet <charlet@adacore.com>
charlet [Tue, 31 Oct 2006 17:45:11 +0000 (17:45 +0000)]
2006-10-31  Arnaud Charlet  <charlet@adacore.com>
    Jose Ruiz  <ruiz@adacore.com>

* s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
System.Any_Priority to a POSIX priority on the target.

* system-linux-ia64.ads:
Extend range of Priority types on Linux to use the whole range made
available by the system.

* s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
function maps from System.Any_Priority to a POSIX priority on the
target.
(PTHREAD_PRIO_PROTECT): Set real value.
(PTHREAD_PRIO_INHERIT): Now a function.
(SIGCPUFAIL): New signal.
(Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
are documented as reserved by the OS.

* system-aix.ads: Use the full range of priorities provided by the
system on AIX.

* s-taprop-posix.adb: Call new function To_Target_Priority.
(Set_Priority): Take into account Task_Dispatching_Policy and
Priority_Specific_Dispatching pragmas when determining if Round Robin
must be used for scheduling the task.

* system-linux-x86_64.ads, system-linux-x86.ads,
system-linux-ppc.ads: Extend range of Priority types on Linux to use
the whole range made available by the system.

* s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
when deallocating the TCB in order to avoid potential references to
deallocated data.
(Set_Priority): Take into account Task_Dispatching_Policy and
Priority_Specific_Dispatching pragmas when determining if Round Robin
or FIFO within priorities must be used for scheduling the task.

* s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
the Thread field (to be used internally by the run-time system) and the
kernel-level task id in the LWP field (to be used by the debugger).
(Create_Task): Reorganize to unify the calls to taskSpawn into a single
instance, and propagate the current task options to the spawned task.
(Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
(Initialize): Set Round Robin dispatching when the corresponding pragma
is in effect.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118235 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Tue, 31 Oct 2006 17:44:55 +0000 (17:44 +0000)]
2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
    Jose Ruiz  <ruiz@adacore.com>

* a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
part of Ada.Calendar: all subprogram raise Unimplemented.
(Split_W_Offset): Temp function body, raising Unimplemented

* a-calend.ads, a-calend-vms.ads:
Add imported variable Invalid_TZ_Offset used to designate targets unable
to support time zones.
(Unimplemented): Temporary function raised by the body of new
subprograms below.
(Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
unit provides handling of leap seconds and is used by the new Ada 2005
packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
(Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
version returns an extra value which is the offset to UTC.

* a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
(Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
(Split_W_Offset): New function body.
(Time_Of): When a date is close to UNIX epoch, compute the time for
that date plus one day (that amount is later substracted after
executing mktime) so there are no problems with time zone adjustments.

* a-calend-mingw.adb: Remove Windows specific version no longer needed.

* a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
a-catizo.ads, a-catizo.adb: New files.

        * impunit.adb: Add new Ada 2005 entries

* sysdep.c: Add external variable __gnat_invalid_tz_offset.
Rename all occurences of "__gnat_localtime_r" to
"__gnat_localtime_tzoff".
(__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
zone data and calculate the GMT offset.
(__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
Use the field "tm_gmtoff" to extract the GMT offset.
(__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
the external variable "timezone" to calculate the GMT offset.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118234 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Thomas Quinot <quinot@adacore.com>
charlet [Tue, 31 Oct 2006 17:44:38 +0000 (17:44 +0000)]
2006-10-31  Thomas Quinot  <quinot@adacore.com>

* g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
error status.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118233 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:44:22 +0000 (17:44 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>
    Bob Duff  <duff@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
with multiplying operator.
(Expected_Type_Is_Any_Real): New function to determine from the Parent
pointer whether the context expects "any real type".
(Resolve_Arithmetic_Op): Do not give an error on calls to the
universal_fixed "*" and "/" operators when they are used in a context
that expects any real type. Also set the type of the node to
Universal_Real in this case, because downstream processing requires it
(mainly static expression evaluation).
Reword some continuation messages
Add some \\ sequences to continuation messages
(Resolve_Call): Refine infinite recursion case. The test has been
sharpened to eliminate some false positives.
Check for Current_Task usage now includes entry barrier, and is now a
warning, not an error.
(Resolve): If the call is ambiguous, indicate whether an interpretation
is an inherited operation.
(Check_Aggr): When resolving aggregates, skip associations with a box,
which are priori correct, and will be replaced by an actual default
expression in the course of expansion.
(Resolve_Type_Conversion): Add missing support for conversion from
a class-wide interface to a tagged type. Minor code cleanup.
(Valid_Tagged_Converion): Add support for abstact interface type
conversions.
(Resolve_Selected_Component): Call Generate_Reference here rather than
during analysis, and use May_Be_Lvalue to distinguish read/write.
(Valid_Array_Conversion): New procedure, abstracted from
Valid_Conversion, to incorporate accessibility checks for arrays of
anonymous access types.
(Valid_Conversion): For a conversion to a numeric type occurring in an
instance or inlined body, no need to check that the operand type is
numeric, since this has been checked during analysis of the template.
Remove legacy test for scope name Unchecked_Conversion.

* sem_res.ads: Minor reformatting

* a-except.adb, a-except-2005.adb: Turn off subprogram ordering
(PE_Current_Task_In_Entry_Body): New exception code
(SE_Restriction_Violation): Removed, not used

* a-except.ads:  Update comments.

* types.h, types.ads: Add definition for Validity_Check
(PE_Current_Task_In_Entry_Body): New exception code
(SE_Restriction_Violation): Removed, not used

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118232 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Robert Dewar <dewar@adacore.com>
charlet [Tue, 31 Oct 2006 17:43:17 +0000 (17:43 +0000)]
2006-10-31  Robert Dewar  <dewar@adacore.com>

* a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
a-szbzha.adb: Minor reformatting. Fix header.

* a-numaux-x86.adb: Add parentheses for use of unary minus
* a-ngcefu.adb: Supply missing parentheses for unary minus
* a-ngcoty.adb: Add parens for use of unary minus
* a-ngelfu.adb: Add missing parens for unary minus
* a-tifiio.adb: Add parentheses for uses of unary minus

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118231 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agoMAINTAINERS (Write After Approval): Add myself.
smw [Tue, 31 Oct 2006 17:04:32 +0000 (17:04 +0000)]
MAINTAINERS (Write After Approval): Add myself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118230 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 31 Oct 2006 09:08:11 +0000 (09:08 +0000)]
2006-10-31  Richard Guenther  <rguenther@suse.de>

* config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
!optimize_size.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118221 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-31 Paul Thomas <pault@gcc.gnu.org>
pault [Tue, 31 Oct 2006 06:03:24 +0000 (06:03 +0000)]
2006-10-31  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/29387
* trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have
a specific case for EXPR_VARIABLE and, in default, build an ss
to call gfc_conv_expr_descriptor for array expressions..

PR fortran/29490
* trans-expr.c (gfc_set_interface_mapping_bounds): In the case
that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor
values for it and GFC_TYPE_ARRAY_UBOUND.

PR fortran/29641
* trans-types.c (gfc_get_derived_type): If the derived type
namespace has neither a parent nor a proc_name, set NULL for
the search namespace.

2006-10-31  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/29387
* gfortran.dg/intrinsic_actual_2.f90: New test.

PR fortran/29490
* gfortran.dg/actual_array_interface_1.f90: New test.

PR fortran/29641
* gfortran.dg/used_types_11.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118220 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * opts.c (decode_options): Disable CSE skip blocks.
steven [Tue, 31 Oct 2006 05:31:53 +0000 (05:31 +0000)]
    * opts.c (decode_options): Disable CSE skip blocks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118219 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agoDaily bump.
gccadmin [Tue, 31 Oct 2006 00:17:51 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118215 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * decl.c (grokdeclarator): Fix line-wrapping.
mueller [Mon, 30 Oct 2006 23:56:15 +0000 (23:56 +0000)]
    * decl.c (grokdeclarator): Fix line-wrapping.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118210 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agofix typo
mueller [Mon, 30 Oct 2006 23:41:07 +0000 (23:41 +0000)]
fix typo

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118209 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Dirk Mueller <dmueller@suse.de>
mueller [Mon, 30 Oct 2006 23:32:29 +0000 (23:32 +0000)]
2006-10-30  Dirk Mueller  <dmueller@suse.de>

       PR c++/28704
       * decl.c (grokdeclarator): Duplicate diagnostic message
       for easier translation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118208 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Paolo Carlini <pcarlini@suse.de>
paolo [Mon, 30 Oct 2006 23:23:44 +0000 (23:23 +0000)]
2006-10-30  Paolo Carlini  <pcarlini@suse.de>

* include/tr1/utility (tuple_size<std::pair<> >::value): Provide
definition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118207 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Dirk Mueller <dmueller@suse.de>
mueller [Mon, 30 Oct 2006 23:15:42 +0000 (23:15 +0000)]
2006-10-30  Dirk Mueller  <dmueller@suse.de>

        PR c++/6321
        * cp/decl.c (grokfndecl): Use check_main_parameter_types.

        * c-common.h (strict_aliasing_warning): Fix whitespace.
        * c-decl (start_function): Move code for main decl warning ..
        * c-common.c (check_main_parameter_types): .. here.
        * c-common.h (check_main_parameter_types): Declare.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118206 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Dirk Mueller <dmueller@suse.de>
mueller [Mon, 30 Oct 2006 23:08:59 +0000 (23:08 +0000)]
2006-10-30  Dirk Mueller  <dmueller@suse.de>

       PR c++/28669
       * decl.c (grokfndecl): Duplicate warning message for
       easier translation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118205 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Dirk Mueller <dmueller@suse.de>
mueller [Mon, 30 Oct 2006 22:25:07 +0000 (22:25 +0000)]
2006-10-30  Dirk Mueller  <dmueller@suse.de>

       * g++.old-deja/g++.pt/eichin01a.C (main): Fix prototype.
       * g++.old-deja/g++.pt/eichin01b.C (main): Same.
       * g++.old-deja/g++.pt/eichin01.C (main): Same.
       * g++.old-deja/g++.mike/net25.C (main): Same.
       * g++.dg/lookup/exception1.C (main): Same.
       * g++.dg/parse/parens2.C (main): Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118204 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Paolo Carlini <pcarlini@suse.de>
paolo [Mon, 30 Oct 2006 22:22:38 +0000 (22:22 +0000)]
2006-10-30  Paolo Carlini  <pcarlini@suse.de>

* include/tr1/tuple_iterate.h (tuple_size<tuple<> >::value): Provide
definition.
* include/tr1/functional (is_bind_expression<>::value,
is_placeholder<>::value, + various partial specializations): Likewise.
* include/tr1/array (tuple_size<array<> >::value): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118203 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * gcc.target/i386/pr27827.c: Explicitly specify -mfpmath=387.
sayle [Mon, 30 Oct 2006 21:31:19 +0000 (21:31 +0000)]
* gcc.target/i386/pr27827.c: Explicitly specify -mfpmath=387.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118201 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago PR middle-end/29335
ghazi [Mon, 30 Oct 2006 20:21:59 +0000 (20:21 +0000)]
PR middle-end/29335
* builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.

testsuite:
* gcc.dg/torture/builtin-math-2.c: Add tgamma tests.
* gcc.dg/torture/builtin-math-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118200 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
bergner [Mon, 30 Oct 2006 19:43:55 +0000 (19:43 +0000)]
* recog.c (store_data_bypass_p): Add support to allow IN_INSN to
be a PARALLEL containing sets.  Return false when out_pat is not
a PARALLEL insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118199 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * MAINTAINERS: Change email address.
uros [Mon, 30 Oct 2006 19:41:10 +0000 (19:41 +0000)]
    * MAINTAINERS: Change email address.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118198 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Paolo Carlini <pcarlini@suse.de>
paolo [Mon, 30 Oct 2006 18:59:00 +0000 (18:59 +0000)]
2006-10-30  Paolo Carlini  <pcarlini@suse.de>

* testsuite/tr1/6_containers/array/capacity/max_size.cc: Actually
do test max_size().

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118194 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Vladimir Prus <vladimir@codesourcery.com>
vprus [Mon, 30 Oct 2006 18:47:33 +0000 (18:47 +0000)]
2006-10-30  Vladimir Prus  <vladimir@codesourcery.com>

        * MAINTAINERS (Write After Approval): Add myself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118193 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agofortran/
burnus [Mon, 30 Oct 2006 18:22:47 +0000 (18:22 +0000)]
fortran/
2006-10-30  Tobias Burnus  <burnus@net-b.de>

        PR fortran/29452
        * io.c (check_io_constraints): Fix keyword string comparison.

libgfortran/
2006-10-30  Tobias Burnus  <burnus@net-b.de>

        PR fortran/29452
* runtime/string.c (compare0): Check whether string lengths match.

testsuite/
2006-10-30  Tobias Burnus  <burnus@net-b.de>

PR fortran/29452
* gfortran.dg/write_check.f90: Check run-time keyword checking.
* gfortran.dg/write_check2.f90: Check compile-time keyword checking

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118191 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agogcc/
rsandifo [Mon, 30 Oct 2006 18:18:03 +0000 (18:18 +0000)]
gcc/
* config/mips/mips.md (mul<mode>3): Split into...
(mulsi3, muldi3): ...these separate patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118190 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agogcc/
rsandifo [Mon, 30 Oct 2006 18:05:54 +0000 (18:05 +0000)]
gcc/
* config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
but with each set of options separated by spaces.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118189 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * unwind-dw2.c (uw_init_context_1): Fix test that checks if
amylaar [Mon, 30 Oct 2006 17:55:33 +0000 (17:55 +0000)]
* unwind-dw2.c (uw_init_context_1): Fix test that checks if
dwarf_reg_size_table has been initialized.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118188 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * builtins.c (expand_builtin_mathfn_3): Correct coding style.
sayle [Mon, 30 Oct 2006 17:51:46 +0000 (17:51 +0000)]
* builtins.c (expand_builtin_mathfn_3): Correct coding style.
* ddg.c (print_ddg_edge): Likewise.
* dwarf2out.c (prune_unused_types_walk): Likewise.
* ifcvt.c (noce_try_cmove_arith): Likewise.
* langhooks.c (add_builtin_function): Likewise.
* reg-stack.c (subst_stack_regs_pat): Likewise.
* tree.c (expanded_location): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118187 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Andrew Pinski <pinskia@gmail.com>
pinskia [Mon, 30 Oct 2006 16:15:09 +0000 (16:15 +0000)]
2006-10-30  Andrew Pinski  <pinskia@gmail.com>

        PR fortran/29410
        * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer):
        Change over to create VIEW_CONVERT_EXPR instead of using an
        ADDR_EXPR, a cast and then an indirect reference
2006-10-30  Andrew Pinski  <pinskia@gmail.com>

        PR Fortran/29410
        * gfortran.fortran-torture/execute/transfer1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118186 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-30 Dirk Mueller <dmueller@suse.de>
mueller [Mon, 30 Oct 2006 14:44:45 +0000 (14:44 +0000)]
2006-10-30  Dirk Mueller  <dmueller@suse.de>

       * typeck.c (build_unary_op): Fix indenting. Use G_().

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118185 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agolibstdc++-v3:
jsm28 [Mon, 30 Oct 2006 14:03:05 +0000 (14:03 +0000)]
libstdc++-v3:
* testsuite/config/default.exp (${tool}_target_compile): Use
v3_target_compile.

gcc/testsuite:
* lib/target-supports.exp (check_function_available): Declare
function before calling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118182 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
daney [Mon, 30 Oct 2006 08:25:25 +0000 (08:25 +0000)]
    * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118179 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago PR tree-optimization/29637
jakub [Mon, 30 Oct 2006 08:01:28 +0000 (08:01 +0000)]
PR tree-optimization/29637
* tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
of the innertype is the innertype itself.

* gcc.dg/pr29637.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118175 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agoFix whitespacing.
mrs [Mon, 30 Oct 2006 05:56:18 +0000 (05:56 +0000)]
Fix whitespacing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118173 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * dwarf2out.c (file_name_acquire): Correct typo.
dannysmith [Mon, 30 Oct 2006 03:18:57 +0000 (03:18 +0000)]
* dwarf2out.c (file_name_acquire): Correct typo.
Formatting tweak to earlier ChangeLog entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118171 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * gcc.dg/fold-compare-1.c: Update to reflect recent changes in
sayle [Mon, 30 Oct 2006 02:46:11 +0000 (02:46 +0000)]
* gcc.dg/fold-compare-1.c: Update to reflect recent changes in
tree canonicalization.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118170 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-29 Daniel Berlin <dberlin@dberlin.org>
dberlin [Mon, 30 Oct 2006 01:58:42 +0000 (01:58 +0000)]
2006-10-29  Daniel Berlin  <dberlin@dberlin.org>

* tree.h (tree_value_handle): Remove struct value_set declaration.
Change value_set to bitmap_set.
* tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
* tree-vn.c (get_value_handle): Made inline and moved to
tree-flow-inline.h.
* tree-flow-inline.h: (has_stmt_ann): New function.
* tree-ssa-pre.c (expressions): New variable.
(next_expression_id): Ditto.
(alloc_expression_id): New function.
(struct value_set): Remove.
(get_expression_id): New function.
(get_or_alloc_expression_id): Ditto.
(expression_for_id): Ditto.
(clear_expression_ids): Ditto.
(FOR_EACH_EXPR_ID_IN_SET): New macro.
(bb_value_sets): Renamed to bb_bitmap_sets.
All value sets replaced with bitmap_sets.
Add visited member.
(BB_VISITED): New macro.
(postorder): New variable.
(add_to_value): Removed.
(value_exists_in_set_bitmap): Ditto.
(value_insert_into_set_bitmap): Ditto.
(set_new): Ditto.
(set_copy): Ditto.
(set_remove): Ditto.
(set_contains_value): Ditto.
(insert_into_set): Ditto.
(set_equal): Ditto.
(find_leader): Ditto.
(bitmap_set_subtract_from_value_set): Ditto.
(value_insert_into_set): Ditto.
(print_value_set): Ditto.
(debug_value_set): Ditto.
(constant_expr_p): New function.
(bitmap_remove_from_set): Ditto.
(bitmap_insert_into_set): Ditto.
(bitmap_set_free): Ditto.
(vh_compare): Ditto.
(sorted_array_from_bitmap_set): Ditto.
(bitmap_set_subtract): Ditto.
(bitmap_set_equal): Ditto.
(debug_bitmap_set): Ditto.
(find_leader_in_sets): Ditto.
(bitmap_set_replace_value): Modify for bitmapped sets.
(phi_translate): Ditto.
(phi_translate_set): Ditto.
(bitmap_find_leader): Ditto.
(valid_in_sets): Ditto.
(union_contains_value): Ditto.
(clean): Ditto.
(compute_antic_aux): Ditto.  Mark changed blocks.
(compute_antic): Ditto. Iterate in postorder and only over
changing blocks.
(compute_rvuse_and_antic_safe): Reuse postorder.
(create_component_ref_by_pieces): Modify for bitmapped sets.
(find_or_generate_expression): Ditto.
(create_expression_by_pieces): Ditto.
(insert_into_preds_of_block): Ditto.
(changed_blocks): New variable.
(do_regular_insertion): Broken out from insert_aux.
(insert_aux): Modified for bitmapped sets.
(find_existing_value_expr): New function.
(create_value_expr_from): Use it.
(insert_extra_phis): Removed.
(print_bitmap_set): Renamed from bitmap_print_value_set.
(compute_avail): Handle RETURN_EXPR.
(init_pre): Modify for bitmapped sets.
* tree-flow.h (has_stmt_ann): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118169 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * builtins.c (fold_builtin_floor): Check for the availability of
sayle [Mon, 30 Oct 2006 01:14:37 +0000 (01:14 +0000)]
* builtins.c (fold_builtin_floor): Check for the availability of
the C99 trunc function before transforming floor into trunc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118168 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agoDaily bump.
gccadmin [Mon, 30 Oct 2006 00:17:44 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118165 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * builtins.c (fold_builtin_hypot): Rearrange recursive
ghazi [Sun, 29 Oct 2006 23:08:23 +0000 (23:08 +0000)]
* builtins.c (fold_builtin_hypot): Rearrange recursive
transformation before others, and also do ABS_EXPR.  When
necessary, check flag_unsafe_math_optimizations.  When necessary,
add fabs.

testsuite:
* gcc.dg/builtins-20.c: Add more hypot tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118160 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-29 Paolo Carlini <pcarlini@suse.de>
paolo [Sun, 29 Oct 2006 21:50:23 +0000 (21:50 +0000)]
2006-10-29  Paolo Carlini  <pcarlini@suse.de>

* src/debug.cc (_Safe_sequence_base::_M_revalidate_singular): Fix
pasto, advance __iter only once per iteration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118159 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
sayle [Sun, 29 Oct 2006 21:41:48 +0000 (21:41 +0000)]
* fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
Fold ~X op C as X op' ~C, where op' is the swapped comparison.
(fold_binary): ~X eq/ne C is now handled in fold_comparison.
Fold -X eq/ne -Y as X eq/ne Y.

* gcc.dg/fold-compare-1.c: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118158 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago PR c++/29089
mueller [Sun, 29 Oct 2006 19:52:52 +0000 (19:52 +0000)]
   PR c++/29089
       * typeck.c (build_unary_op): Duplicate warning message
       for easier translation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118156 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agofix testcase
mueller [Sun, 29 Oct 2006 18:46:49 +0000 (18:46 +0000)]
fix testcase

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118155 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-29 Dirk Mueller <dmueller@suse.de>
mueller [Sun, 29 Oct 2006 18:38:26 +0000 (18:38 +0000)]
2006-10-29  Dirk Mueller  <dmueller@suse.de>

        PR c++/16307
        * typeck.c (build_array_ref): Warn for char subscriptions
        on pointers.

        * g++.dg/warn/Wchar-subscripts-2.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118154 138bc75d-0d04-0410-961f-82ee72b054a4

17 years agogcc/
rsandifo [Sun, 29 Oct 2006 18:20:45 +0000 (18:20 +0000)]
gcc/
* config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
rather than GENERATE_MULT3_SI in the various define_peephole2s.
(mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
Use an inclusive test for "mult" rather than "mul".
(rotr<mode>3): Depend on ISA_HAS_ROR.
* config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
ISA_HAS_MUL3.
(GENERATE_MULT3_DI): Delete.
(ISA_HAS_64BIT_REGS): Use consistent formatting.
(ISA_HAS_MUL3): New macro.
(ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
(ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
(ISA_HAS_CLZ_CLO): Likewise.
(ISA_HAS_DCLZ_DCLO): Delete.
(ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
(ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
the VR4120 and VR4130.
(ISA_HAS_MACCHI): Use consistent formatting.
(ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
(ISA_HAS_ROR): ...this new macro.
(ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
(ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
(ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118153 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago PR tree-optimization/15458
sayle [Sun, 29 Oct 2006 17:51:07 +0000 (17:51 +0000)]
PR tree-optimization/15458
* fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
is a constant.

* gcc.dg/fold-xornot-1.c: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118152 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago * trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a
fxcoudert [Sun, 29 Oct 2006 17:05:37 +0000 (17:05 +0000)]
* trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a
signed integer node.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118151 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sun, 29 Oct 2006 16:43:48 +0000 (16:43 +0000)]
2006-10-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/17741
* decl.c (get_proc_name): Bump current namespace refs count.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118149 138bc75d-0d04-0410-961f-82ee72b054a4

17 years ago2006-10-29 Richard Guenther <rguenther@suse.de>
rguenth [Sun, 29 Oct 2006 16:43:21 +0000 (16:43 +0000)]
2006-10-29  Richard Guenther  <rguenther@suse.de>

* config/i386/i386-protos.h (ix86_expand_trunc): Declare.
(ix86_expand_truncdf_32): Likewise.
* config/i386/i386.c (ix86_expand_trunc): New function expanding
trunc inline for SSE math and -fno-trapping-math and if not
optimizing for size.
(ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
* config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
for expanding btrunc inline for SSE math.

* gcc.target/i386/math-torture/trunc.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118148 138bc75d-0d04-0410-961f-82ee72b054a4