* tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
(record_equivalences_from_stmt): Remove useless checks and
simplifications.
* tree-ssa-pre.c (eliminate): Avoid converting a constant if
the type is already suitable.
* exp_ch7.adb (Expand_Ctrl_Function_Call): Remove incorrect special
case for the case of an aggregate component, the attach call for the
result is actually needed.
* exp_aggr.adb (Backend_Processing_Possible): Backend processing for
an array aggregate must be disabled if the component type requires
controlled actions.
* exp_ch3.adb: Minor reformatting
2009-04-17 Arnaud Charlet <charlet@adacore.com>
* s-taprop-tru64.adb, s-taprop-vms.adb, s-taprop-linux.adb,
s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
s-taprop-posix.adb (Suspend_Until_True): Protect against early wakeup.
Bob Duff [Fri, 17 Apr 2009 12:11:04 +0000 (14:11 +0200)]
output.ads (Indent,Outdent): New procedures for indenting the output.
2009-04-17 Bob Duff <duff@adacore.com>
* output.ads (Indent,Outdent): New procedures for indenting the output.
(Write_Char): Correct comment -- LF _is_ allowed.
* output.adb (Indent,Outdent): New procedures for indenting the output.
Keep track of the indentation level, and make sure it doesn't get too
high.
(Flush_Buffer): Insert spaces at the beginning of each line, if
indentation level is nonzero.
(Save_Output_Buffer,Restore_Output_Buffer): Save and restore the current
indentation level.
(Set_Standard_Error,Set_Standard_Output): Remove superfluous
"Next_Col := 1;". Flush_Buffer does that.
* sem_ch6.adb, sem_ch7.adb (Debug_Flag_C): Reorganize the output
controlled by the -gnatdc switch. It now occurs on entry/exit to the
relevant analysis routines, and calls Indent/Outdent to make the
indentation reflect the nesting level. Add "helper" routines, since
otherwise lots of "return;" statements would skip the debugging output.
* exp_aggr.adb: Minor code reorganization, no behaviour change.
2009-04-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Use_One_Type): Handle properly a redundant use type
clause in a unit that is a package body or a subunit, when the previous
clause appears in a spec or a parent.
* gfortran.dg/default_format_1.f90: XFAIL on spu-*-*.
* gfortran.dg/default_format_denormal_1.f90: XFAIL on spu-*-*.
* gfortran.dg/scalar_mask_2.f90: XFAIL on spu-*-*.
* gfortran.dg/integer_exponentiation_3.F90: XFAIL on spu-*-*.
* gfortran.dg/integer_exponentiation_5.F90: XFAIL on spu-*-*.
gcc-dg.exp (gcc-dg-prune): Make linker message check less strict so it also works with auto-overlay support.
* lib/gcc-dg.exp (gcc-dg-prune): Make linker message check
less strict so it also works with auto-overlay support.
* lib/gcc-defs.exp (${tool}_check_unsupported_p): Add check
for "exceeds local store" linker errors on the SPU.
* lib/gfortran.exp: Include target-supports.exp.
(gfortran_init): On SPU targets where automatic overlay support
is available, use it to build all Fortran test cases.
* gfortran.dg/pr20257.f90: Skip on spu-*-* targets.
* sinfo.ads, exp_aggr.adb, exp_aggr.ads: Minor reformatting
* exp_ch7.adb: Minor reformatting
2009-04-17 Bob Duff <duff@adacore.com>
* exp_ch4.adb (Expand_Allocator_Expression): In an initialized
allocator, check that the expression of the qualified expression obeys
the constraints of the subtype of the qualified expression.
2009-04-17 Thomas Quinot <quinot@adacore.com>
* sprint.adb (Write_Itype): Add handling of enumeration subtypes.
* exp_ch4.adb (Expand_Concatenation): Do not use calls at -Os.
2009-04-17 Pascal Obry <obry@adacore.com>
* mingw32.h: Add S2WSC and WS2SC macros to convert to/from
CurrentCodePage.
* adaint.h: Encoding_Unspecified is now defined. Corresponds to the
value when no encoding form paramter is set on Text_IO services.
* adaint.c: CurrentCodePage new variable on Windows.
Use new macros S2WSC and WS2SC instead of the UTF-8 oriented
ones.
* mkdir.c: Use new macros S2WSC and WS2SC instead of the UTF-8 oriented
ones.
* initialize.c: Initialize CurrentCodePage depending on GNAT_CODE_PAGE
environment variable value. Default is UTF-8.
* s-crtl.ads: Filename_Encoding add Unspecified in the enumeration type.
fopen and freopen encoding parameter is now set to Unspecified.
The default value is in this case UTF-8 (as it was before) but
use the new macros that convert to/from the code page set
at runtime (CurrentCodePage).
* s-fileio.adb: When no encoding specified use Unspecified value.
* nlists.ads, nlists.adb: Move New_Copy_List to sem_util.
* lib-load.adb: Use Copy_Separate_Tree rather than New_Copy_Tree
* sem_util.ads, sem_util.adb: New_Copy_Tree and New_Copy_List belong in
semantic units, because the handling of itypes in the copied tree
requires semantic information that does not belong in atree.
* par-ch6.adb (P_Subprogram): Overriding indicators should be allowed
on protected subprogram bodies, so exclude the case where Pf_Flags is
Pf_Decl_Pbod from the error check.
* par-ch9.adb (P_Protected_Operation_Items): Permit overriding
indicators on subprograms in protected bodies, and proceed with parsing
the subprogram.
* sem_ch6.adb (Verify_Overriding_Indicator): Exclude protected
subprograms from the check for primitiveness on subprograms with
overriding indicators.
(Check_Overriding_Indicator): Include protected subprograms in the
style check for missing overriding indicators.
2009-04-17 Tristan Gingold <gingold@adacore.com>
* init.c: Fix stack checking for x86 Darwin.
2009-04-17 Vincent Celier <celier@adacore.com>
* prj-attr.adb: New project level attribute Object_File_Suffix
(<language>).
* prj-nmsc.adb (Add_Source): Use the object file suffix to get the
object file name
(Process_Compiler): Process attribute Object_File_Suffix
* prj.adb (Object_Name): Use suffix Object_File_Suffix instead of
platform suffix, when specified.
* prj.ads (Language_Config): New component Object_File_Suffix,
defaulted to No_Name.
(Object_Name): New parameter Object_File_Suffix, defaulted to No_Name
* snames.ads-tmpl: New standard name Object_File_Suffix
* rtsfind.ads (RE_Request_Destroy): New PolyORB s-parint entity.
* exp_dist.adb (PolyORB_Support.Build_General_Calling_Stubs): Add
missing calls to RE_Request_Destroy to deallocate request objects after
use.
2009-04-17 Nicolas Setton <setton@adacore.com>
* link.c: Fix support for passing a response file under Darwin.
2009-04-17 Emmanuel Briot <briot@adacore.com>
* prj.adb (Free): new subprogram.
2009-04-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb: additional initialization on incomplete subtypes.
* sem_ch6.adb (Process_Formals): if the subprogram is in the private
part and one of the formals is an incomplete tagged type, attach to
list of private dependends of the type for later validation.
* sem_ch7.adb (Uninstall_Declarations): diagnose attempts to declare
primitive operations of a Taft-amendmment type.
* freeze.adb (Freeze_Entity): Remove tests on formals of an incomplete
type. The check is performed on package exit, possibly after the
subprogram is frozen.
2009-04-17 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Get_Directories): Get the object and exec directory
before looking for source directories, but make sure that there are nil
if they are not explicitely declared and there is explicitely no
sources in the project.
* tree-iterator.c (tsi_split_statement_list_after,
tsi_split_statement_list_before): Remove.
* tree-iterator.h: Remove the prototypes for
tsi_split_statement_list_after and
tsi_split_statement_list_before.
Vladimir Makarov [Thu, 16 Apr 2009 15:15:48 +0000 (15:15 +0000)]
re PR rtl-optimization/39762 (IRA ICE with -msoft-float)
2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/39762
* ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
ira_may_move_out_cost): Add comments about way of their usage.
(ira_get_register_move_cost, ira_get_may_move_cost): New
functions.
* ira-conflicts.c (process_regs_for_copy): Use function
ira_get_register_move_cost instead of global
ira_register_move_cost.
* ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
(record_reg_classes): Ditto. Use functions
ira_get_register_move_cost and ira_get_may_move_cost instead of
global vars ira_register_move_cost, ira_may_move_out_cost and
ira_may_move_in_cost.
(record_address_regs): Don't call ira_init_register_move_cost.
Use function ira_get_may_move_cost instead of global
ira_may_move_in_cost.
(process_bb_node_for_hard_reg_moves): Use function
ira_get_register_move_cost instead of global
ira_register_move_cost.
(ira_costs): Don't call ira_init_register_move_cost.
Richard Guenther [Thu, 16 Apr 2009 14:53:32 +0000 (14:53 +0000)]
tree-cfg.c (verify_gimple_assign_binary): Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
2009-04-16 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_gimple_assign_binary):
Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
* ipa-struct-reorg.c (gen_size): Fold the built expressions.
(create_general_new_stmt): Note that this function is broken.
Richard Guenther [Thu, 16 Apr 2009 13:23:13 +0000 (13:23 +0000)]
gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
2009-04-16 Richard Guenther <rguenther@suse.de>
* gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
(gimple_ior_addresses_taken_1): New function.
(gimple_ior_addresses_taken): Likewise.
* gimple.h (struct gimple_statement_with_ops_base): Remove
addresses_taken member.
(gimple_ior_addresses_taken): Declare.
(gimple_addresses_taken, gimple_addresses_taken_ptr,
gimple_set_addresses_taken): Remove.
* ipa-reference.c (mark_address): New function.
(scan_stmt_for_static_refs): Use it for marking addresses taken.
* tree-ssa-operands.c (add_to_addressable_set): Rename to ...
(mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
(gimple_add_to_addresses_taken): Remove.
(get_tmr_operands): Call mark_address_taken.
(get_asm_expr_operands): Likewise.
(get_expr_operands): Likewise.
(build_ssa_operands): Do not clear the addresses_taken bitmap.
(free_stmt_operands): Do not free it.
* tree-ssa.c (delete_tree_ssa): Likewise.
(execute_update_addresses_taken): Use gimple_ior_addresses_taken.
* sem_ch12.adb (Preanalyze_Actuals): If the instance is a child unit
that hides an outer homograph, make that homograph invisible when
analyzing the actuals, to to prevent illegal direct visibility on it.
Jan Hubicka [Thu, 16 Apr 2009 13:01:17 +0000 (15:01 +0200)]
tree.cc (_Rb_tree_increment, [...]): Mark nothrow; update uses of _Rb_tree_rotate_left, _Rb_tree_rotate_right.
* tree.cc (_Rb_tree_increment, _Rb_tree_decrement,
_Rb_tree_rebalance_for_erase, _Rb_tree_black_count): Mark nothrow;
update uses of _Rb_tree_rotate_left, _Rb_tree_rotate_right.
(_Rb_tree_rotate_left, _Rb_tree_rotate_right): Make wrapper and break
out body to ...
(local_Rb_tree_rotate_left, local_Rb_tree_rotate_right): New static
functions.
* stl_tree.h (_Rb_tree_increment, _Rb_tree_decrement,
_Rb_tree_insert_and_rebalance, _Rb_tree_rebalance_for_erase,
_Rb_tree_black_count): Mark nothrow.
Richard Guenther [Thu, 16 Apr 2009 12:44:46 +0000 (12:44 +0000)]
re PR tree-optimization/39698 (wrong types for vectorized reduction)
2009-04-16 Richard Guenther <rguenther@suse.de>
Ira Rosen <irar@il.ibm.com>
PR tree-optimization/39698
* tree-vect-loop.c (get_initial_def_for_reduction): Use the
type of the reduction variable. Only generate the def if
it is needed.
* omp-low.c (expand_omp_for_generic): When converting to a pointer
make sure to first convert to an integer of the same precision.
* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
the type of the evolution correctly in computing the new
induction variable base.
Co-Authored-By: Ira Rosen <irar@il.ibm.com>
From-SVN: r146180
* sprint.adb (Write_Itype): If the itype is an array subtype, preserve
the original location of the index expressions and the index subtypes,
to prevent spurious out-of-scope references in gigi.
2009-04-16 Tristan Gingold <gingold@adacore.com>
* init.c, s-osinte-darwin.ads, system-darwin-x86_64.ads:
Add support for stack checking on darwin.
2009-04-16 Vincent Celier <celier@adacore.com>
* prj-attr.adb: New attribute Runtime_Source_Dir
* prj-nmsc.adb (Process_Project_Level_Array_Attributes): Process
attribute Runtime_Source_Dir.
(Check_Naming_Schemes): Give default values to out parameters to avoid
invalid data.
* prj.ads (Language_Config): New component Runtime_Source_Dir
* snames.ads-tmpl: New standard name Runtime_Source_Dir
* snames.ads-tmpl (Name_Defined): New predefined name for use by the
integrated preprocessor.
* prep.ads, prep.adb (Setup_Hooks): New subprogram.
(Initialize): Split into two subprograms, Initialize (to be called
prior to compiler command line processing) and Setup_Hooks (to be called
later on when the first source file is loaded).
* gprep.adb: Change call to Prep.Initialize to call to Prep.Setup_Hooks.
Add call to Prep.Initialize.
* sinput-l.adb, prepcomp.adb: Change call to Prep.Initialize to call
to Prep.Setup_Hooks.
2009-04-16 Pascal Obry <obry@adacore.com>
* adaint.h, adaint.c (__gnat_chdir): New routine.
Simple wrapper routines used to convert to proper encoding on
Windows.
* s-crtl.ads: Use __gnat_chdir instead of direct call to the C library.
* a-direct.adb, g-dirope.adb: Use chdir from System.CRTL.
* sem_prag.adb (Process_Import_Or_Interface): With .NET,
Access_Subprogram types can also be imported.
(Check_Form_Of_Interface_Name): Accept '/' character in entity CIL
names.
2009-04-16 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
preserve homonym chain when the declaration is rewritten into a
renaming declaration, in order to preserve visibility structure.
* g-calend.ads, g-calend.adb (Week_In_Year): Now calls
Year_Week_In_Year.
(Year_Week_In_Year): New routine which contains the original code from
Week_In_Year. Add the missing special case for January 1st falling on
a Monday.
Thomas Quinot [Thu, 16 Apr 2009 10:31:23 +0000 (10:31 +0000)]
exp_dist.adb (Build_From_Any_Call): For a subtype that is a generic actual type...
2009-04-16 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Build_From_Any_Call): For a subtype that is a generic
actual type, use the base type to build the To_Any function.
(Build_From_Any_Function): Remove junk, useless subtype conversion.
2009-04-16 Thomas Quinot <quinot@adacore.com>
* exp_ch9.adb, exp_code.adb, tbuild.adb, sem_case.adb,
restrict.adb: Minor code reorganization (use
Add_{Char,Str}_To_Name_Buffer instead of inlining it by hand).
* sem_ch12.adb (Map_Formal_Package_Entities): renamed from Map_Entities
and made global, to be used when installing parents of a child
instance, to provide mappings for entities declared in formal packages
of ancestor units. Now called from Install_Formal_Packages.
2009-04-16 Doug Rupp <rupp@adacore.com>
* s-taskin.adb (Initialize_ATCB): Initialize Debug_Events with others
notation for clarity.
Ed Schonberg [Thu, 16 Apr 2009 09:35:38 +0000 (09:35 +0000)]
exp_ch9.adb (Expand_N_Protected_Type_Declaration): If a protected operation has an inline pragma...
2009-04-16 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.adb (Expand_N_Protected_Type_Declaration): If a protected
operation has an inline pragma, propagate the flag to the internal
unprotected subprogram.
* s-tassta.adb (Activate_Tasks): After task creation set state to
Activating, vice Runnable. Initialize Known_Tasks, moved here from
s-taprop.adb (Enter_Task). Set Debug_Event_Activating for debugger.
Set state to Runnable after above.
(Task_Wrapper): Set Debug_Event_Run. In exception block set
Debug_Event_Terminated.
* s-taskin.ads (Task_States): Add new states Activiting and
Activator_Delay_Sleep.
(Bit_Array, Debug_Event_Array): New types.
(Global_Task_Debug_Event_Set: New flag.
(Common_ATCB): New field Debug_Events.