PR middle-end/40057
* dojump.c (prefer_and_bit_test): Use immed_double_const instead of
GEN_INT for 1 << bitnum.
(do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
build_int_cst_type.
* gcc.c-torture/execute/pr40057.c: New test.
From-SVN: r147241
2009-05-07 Paolo Bonzini <bonzini@gnu.org>
* config.guess: Sync with src.
config:
2009-05-07 Paolo Bonzini
Sync from src:
2009-02-02 Doug Evans <dje@google.com>
* tcl.m4 (SC_PATH_TCLCONFIG): Don't exit 0 if tclconfig fails.
(SC_PATH_TKCONFIG): Don't exit 0 if tkconfig fails.
(SC_LOAD_TCLCONFIG): Quote all uses of TCL_BIN_DIR, it may contain
"# no Tcl configs found".
(SC_LOAD_TKCONFIG): Similarily for TK_BIN_DIR.
From-SVN: r147225
* gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
comment. Add that if LHS is not a gimple register, then RHS1 has
to be a single object (GIMPLE_SINGLE_RHS).
Co-Authored-By: Adam Nemet <anemet@caviumnetworks.com>
From-SVN: r147209
2009-05-06 Janus Weil <janus@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/39630
* decl.c (match_procedure_interface): New function to match the
interface for a PROCEDURE statement.
(match_procedure_decl): Call match_procedure_interface.
(match_ppc_decl): New function to match the declaration of a
procedure pointer component.
(gfc_match_procedure): Call match_ppc_decl.
(match_binding_attributes): Add new argument 'ppc' and handle the
POINTER attribute for procedure pointer components.
(match_procedure_in_type,gfc_match_generic): Added new argument to
match_binding_attributes.
* dump-parse-tree.c (show_expr,show_components,show_code_node): Handle
procedure pointer components.
* expr.c (free_expr0,gfc_copy_expr,gfc_simplify_expr): Handle EXPR_PPC.
(gfc_check_pointer_assign): Handle procedure pointer components, but no
full checking yet.
(is_proc_ptr_comp): New function to determine if an expression is a
procedure pointer component.
* gfortran.h (expr_t): Add EXPR_PPC.
(symbol_attribute): Add new member 'proc_pointer_comp'.
(gfc_component): Add new member 'formal'.
(gfc_exec_op): Add EXEC_CALL_PPC.
(gfc_get_default_type): Changed first argument.
(is_proc_ptr_comp): Add prototype.
(gfc_match_varspec): Add new argument.
* interface.c (compare_actual_formal): Handle procedure pointer
components.
* match.c (gfc_match_pointer_assignment,match_typebound_call): Handle
procedure pointer components.
* module.c (mio_expr): Handle EXPR_PPC.
* parse.c (parse_derived): Handle procedure pointer components.
* primary.c (gfc_match_varspec): Add new argument 'ppc_arg' and handle
procedure pointer components.
(gfc_variable_attr): Handle procedure pointer components.
(gfc_match_rvalue): Added new argument to gfc_match_varspec and changed
first argument of gfc_get_default_type.
(match_variable): Added new argument to gfc_match_varspec.
* resolve.c (resolve_entries,set_type,resolve_fl_parameter): Changed
first argument of gfc_get_default_type.
(resolve_structure_cons,resolve_actual_arglist): Handle procedure
pointer components.
(resolve_ppc_call): New function to resolve a call to a procedure
pointer component (subroutine).
(resolve_expr_ppc): New function to resolve a call to a procedure
pointer component (function).
(gfc_resolve_expr): Handle EXPR_PPC.
(resolve_code): Handle EXEC_CALL_PPC.
(resolve_fl_derived): Copy the interface for a procedure pointer
component.
(resolve_symbol): Fix overlong line.
* st.c (gfc_free_statement): Handle EXEC_CALL_PPC.
* symbol.c (gfc_get_default_type): Changed first argument.
(gfc_set_default_type): Changed first argument of gfc_get_default_type.
(gfc_add_component): Initialize ts.type to BT_UNKNOWN.
* trans.h (gfc_conv_function_call): Renamed.
* trans.c (gfc_trans_code): Handle EXEC_CALL_PPC.
* trans-expr.c (gfc_conv_component_ref): Ditto.
(gfc_conv_function_val): Rename to 'conv_function_val', add new
argument 'expr' and handle procedure pointer components.
(gfc_conv_operator_assign): Renamed gfc_conv_function_val.
(gfc_apply_interface_mapping_to_expr): Handle EXPR_PPC.
(gfc_conv_function_call): Rename to 'gfc_conv_procedure_call', add new
argument 'expr' and handle procedure pointer components.
(gfc_get_proc_ptr_comp): New function to get the backend decl for a
procedure pointer component.
(gfc_conv_function_expr): Renamed gfc_conv_function_call.
(gfc_conv_structure): Handle procedure pointer components.
* trans-intrinsic.c (gfc_conv_intrinsic_funcall,
conv_generic_with_optional_char_arg): Renamed gfc_conv_function_call.
* trans-stmt.h (gfc_get_proc_ptr_comp): Add prototype.
* trans-stmt.c (gfc_trans_call): Renamed gfc_conv_function_call.
* trans-types.h (gfc_get_ppc_type): Add prototype.
* trans-types.c (gfc_get_ppc_type): New function to build a tree node
for a procedure pointer component.
(gfc_get_derived_type): Handle procedure pointer components.
2009-05-06 Janus Weil <janus@gcc.gnu.org>
PR fortran/39630
* gfortran.dg/proc_decl_1.f90: Modified.
* gfortran.dg/proc_ptr_comp_1.f90: New.
* gfortran.dg/proc_ptr_comp_2.f90: New.
* gfortran.dg/proc_ptr_comp_3.f90: New.
* gfortran.dg/proc_ptr_comp_4.f90: New.
* gfortran.dg/proc_ptr_comp_5.f90: New.
* gfortran.dg/proc_ptr_comp_6.f90: New.
Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
From-SVN: r147206
* expr.c (get_def_for_expr): Move it up in the file.
(store_field): When expanding a bit-field store, look at the
defining gimple stmt for the masking conversion.
From-SVN: r147203
2009-05-06 Dodji Seketeli <dodji@redhat.com>
gcc/cp/ChangeLog:
PR c++/17395
* pt.c (tsubst_copy) <case PARM_DECL>: We don't want to tsubst the
whole list of PARM_DECLs, just the current one.
gcc/testsuite/ChangeLog:
PR c++/17395
* g++.dg/template/call7.C: New test.
From-SVN: r147201
* dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
(one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
new_reg_loc_descr.
(loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
instead of appending DW_OP_deref*.
From-SVN: r147187
PR middle-end/40021
* cfgexpand.c (maybe_cleanup_end_of_block): New static function.
(expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
* gfortran.dg/pr40021.f: New test.
From-SVN: r147186
2009-05-06 Le-Chun Wu <lcwu@google.com>
* lib/plugin-support.exp: New file containing support procs for
plugin testcases.
* lib/target-supports.exp (check_plugin_available): New proc.
* gcc.dg/plugin/plugin.exp: New driver script for gcc testcases.
* gcc.dg/plugin/selfassign.c: New plugin source file.
* gcc.dg/plugin/self-assign-test-1.c: New test.
* gcc.dg/plugin/self-assign-test-2.c: Likewise.
* g++.dg/README: Add description for plugin test.
* g++.dg/dg.exp: Exclude plugin tests from the general test list.
* g++.dg/plugin/plugin.exp: New driver script for g++ testcases.
* g++.dg/plugin/selfassign.c: New plugin source file.
* g++.dg/plugin/self-assign-test-1.C: New test.
* g++.dg/plugin/self-assign-test-2.C: Likewise.
* g++.dg/plugin/self-assign-test-3.C: Likewise.
* g++.dg/plugin/dumb_plugin.c: New plugin source file.
* g++.dg/plugin/dumb-plugin-test-1.C: New test.
From-SVN: r147185
2009-05-06 Robert Dewar <dewar@adacore.com>
* sem_attr.adb: Add processing for Standard'Compiler_Version
2009-05-06 Arnaud Charlet <charlet@adacore.com>
* exp_ch5.adb, exp_util.adb, exp_attr.adb, sem_util.adb, sem_res.adb,
targparm.adb, targparm.ads, exp_ch4.adb, exp_ch6.adb, exp_disp.adb,
opt.ads, exp_aggr.adb, exp_intr.adb, sem_disp.adb, exp_ch3.adb
(Tagged_Type_Expansion): New flag.
Replace use of VM_Target related to tagged types expansion by
Tagged_Type_Expansion, since tagged type expansion is not necessarily
linked to VM targets.
From-SVN: r147182
* tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
when processing for not_regs_needed bitmap.
* gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
handling it for rhs.
From-SVN: r147179
2009-05-06 Robert Dewar <dewar@adacore.com>
* errout.adb: Minor reformatting
* scng.adb, sem_prag.adb, par-ch4.adb, sem_res.adb, par-ch6.adb,
sem_ch6.adb, par-prag.adb, sem_ch8.adb, sem_warn.adb, par-util.adb,
styleg.adb: Add stylized comments to error messages that are included
in the codefix circuitry of IDE's such as GPS.
From-SVN: r147173
2009-05-06 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi: For Misnamed_Identifiers rule all description of the
new form of the rule parameter that allows to specify the suffix for
access-to-access type names.
2009-05-06 Robert Dewar <dewar@adacore.com>
* sem_warn.adb (Warn_On_Useless_Assignment): Avoid false negative for
out parameter assigned when exception handlers are present.
* sem_ch5.adb (Analyze_Exit_Statement): Kill current value last
assignments on exit.
* par-ch9.adb, sem_aggr.adb, par-endh.adb, sem_res.adb, par-ch6.adb,
sinput-l.adb, par-load.adb, errout.ads, sem_ch4.adb, lib-load.adb,
prj-dect.adb, par-ch12.adb, sem_ch8.adb, par-util.adb, par-ch3.adb,
par-tchk.adb, par-ch5.adb: This patch adds stylized comments to error
messages that are included in the codefix circuitry of IDE's such as
GPS.
* sinput.ads, sinput.adb (Expr_First_Char): New function
(Expr_Last_Char): New function
From-SVN: r147172
2009-05-06 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi: Add subsection for Exits_From_Conditional_Loops rule
Add formal definition for extra exit point metric
2009-05-06 Pascal Obry <obry@adacore.com>
* adaint.c: Support for setting attributes on unicode filename on
Windows.
From-SVN: r147171
2009-05-06 Robert Dewar <dewar@adacore.com>
* sem_warn.adb: Minor reformatting
2009-05-06 Javier Miranda <miranda@adacore.com>
* sem_prag.adb (Process_Import_Or_Interface): Imported CPP types must
not have discriminants or components with default expressions.
(Analyze_Pragma): For pragma CPP_Class check that imported types
have no discriminants and components have no default expression.
* sem_aggr.adb (Resolve_Aggr_Expr): Add missing check on wrong use of
class-wide types in the expression of a record component association.
2009-05-06 Sergey Rybin <rybin@adacore.com>
* vms_data.ads: Add qualifier for gnatmetric extra exit points metric
* gnat_ugn.texi: Add description for the new extra exit points metric
(gnatmetric section).
From-SVN: r147170
2009-05-06 Johannes Singler <singler@ira.uka.de>
PR libstdc++/39546
* include/parallel/algo.h (find_switch):
Parametrize binder2nd with const T& instead of T.
* testsuite/25_algorithms/find/39546.cc: new test case
From-SVN: r147169