1. 19 Jul, 2012 5 commits
    • eh_personality.cc (__gxx_personality_seh0): New function. · bf1431e3
      libstdc++-v3/
      	* libsupc++/eh_personality.cc (__gxx_personality_seh0): New function.
      	Adjust for SEH.
      	* config/abi/pre/gnu.ver: Add __gxx_personality_seh0.
      
      libobjc/
      	* exception.c (__gnu_objc_personality_seh0): New function.
      
      libjava/
      	* libgcj.ver: Add __gcj_personality_seh0.
      	* exception.cc (__gcj_personality_seh0): New function.
      	Adjust for SEH.
      
      libgcc/
      	* unwind-seh.c: New file.
      	* unwind-generic.h: Include windows.h for SEH.
      	(_Unwind_Exception): Use 6 private fields for SEH.
      	(_GCC_specific_handler): Declare.
      	* unwind-c.c (__gcc_personality_seh0): New function.
      	Adjust for SEH.
      	* config/i386/libgcc-cygming.ver: New file.
      	* config/i386/t-seh-eh: New file.
      	* config.host (x86_64-*-mingw*): Default to seh.
      
      gcc/
      	* opts.c (finish_options): Handle UI_SEH.
      	* expr.c (build_personality_function): Handle UI_SEH.
      	* dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
      	* coretypes.h (unwind_info_type): Add UI_SEH.
      	* config/i386/winnt.c (i386_pe_seh_emit_except_personality):
      	New function.
      	(i386_pe_seh_init_sections): Likewise.
      	* config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	* common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
      	(i386_except_unwind_info): New function.
      
      
      Co-Authored-By: Richard Henderson <rth@redhat.com>
      
      From-SVN: r189644
      Tristan Gingold committed
    • * pt.c (instantiate_decl): Don't recheck substitutions. · fa4a66d1
      From-SVN: r189640
      Jason Merrill committed
    • DR 1170 PR c++/51213 · 0e69fdf0
      	DR 1170
      	PR c++/51213
      	* semantics.c (perform_access_checks): Add complain parm, return bool.
      	(perform_deferred_access_checks): Likewise.
      	(perform_or_defer_access_check): Likewise.
      	(speculative_access_check): Remove.
      	* call.c (enforce_access): Add complain parm, return bool.
      	* decl.c, friend.c, class.c, init.c, parser.c: Adjust callers.
      	* search.c: Adjust callers.
      	* cp-tree.h (TINFO_RECHECK_ACCESS_P): New macro.
      	(FNDECL_RECHECK_ACCESS_P): New macro.
      	* method.c (synthesized_method_walk): Stop deferring access checks.
      	* pt.c (recheck_decl_substitution): New.
      	(instantiate_template_1): Set and check FNDECL_RECHECK_ACCESS_P.
      
      Co-Authored-By: Jason Merrill <jason@redhat.com>
      
      From-SVN: r189639
      Paolo Carlini committed
    • method.c (process_subob_fn): Make sure no_implicit_p is non-null before trying to store through it. · 1936ace0
      	* method.c (process_subob_fn): Make sure no_implicit_p is non-null
      	before trying to store through it.
      
      From-SVN: r189638
      Jason Merrill committed
    • Daily bump. · 6968ffa4
      From-SVN: r189637
      GCC Administrator committed
  2. 18 Jul, 2012 24 commits
  3. 17 Jul, 2012 11 commits
    • fix botched commit · b0bf98a1
      From-SVN: r189591
      Steven Bosscher committed
    • dumpfile.h (TDF_COMMENT): New define. · a315c44c
      	* dumpfile.h (TDF_COMMENT): New define.
      	* basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
      	EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
      	EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
      	EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
      	Move to new file cfg-flags.h.
      	(enum cfg_edge_flags): New enum, using cfg-flags.h.
      	(EDGE_ALL_FLAGS): Compute value automatically.
      	(BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
      	BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
      	BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
      	BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
      	BB_IN_TRANSACTION): Move to new file cfg-flags.h.
      	(enum bb_flags): Rename to cfg_bb_flags.  Use cfg-flags.h.
      	(BB_ALL_FLAGS): New, compute value automatically.
      	(dump_bb_info): Update prototype.
      	(dump_edge_info): Update prototype.
      	* cfg-flags.h: New file.
      	* cfg.c (dump_edge_info): Take flags argument.  Be verbose only if
      	TDF_DETAILS and not TDF_SLIM.  Include cfg-flags.h for bitnames.
      	Check that the edge flags are within the range of EDGE_ALL_FLAGS.
      	(debug_bb): Update dump_bb call.
      	(dump_cfg_bb_info): Remove.
      	(dump_bb_info): New function.  Use cfg-flags.h for bitnames.
      	Adjust verbosity using TDF_* flags.  Check that the basic block flags
      	are within the range of BB_ALL_FLAGS.
      	(brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
      	* cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
      	first for consistency with other dump functions.
      	(dump_bb): Update prototype accordingly.
      	* cfghooks.c: Include dumpfile.h.
      	(verify_flow_info): Update dump_edge_info calls.
      	(dump_bb): Take a flags argument and pass it around.
      	Use dump_bb_info to dump common information about a basic block.
      	(dump_flow_info): Moved here from cfgrtl.c.  Make IL agnostic.
      	(debug_flow_info): Moved here from cfgrtl.c.
      	* profile.c (is_edge_inconsistent): Update dump_bb calls.
      	* loop-invariant.c (find_defs): Update print_rtl_with_bb call.
      	* rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
      	print_rtl_slim_with_bb): Remove prototypes.
      	(dump_insn_slim): Adjust prototype to take a const_rtx.
      	(print_rtl_with_bb): Adjust prototype.
      	* sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
      	* sched-vis.c (dump_insn_slim): Take a const_rtx.
      	(debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
      	(print_rtl_slim_with_bb): Remove.
      	(print_rtl_slim): Rename to debug_rtl_slim.  Print only insn info,
      	not basic block info (print_rtl_with_bb with TDF_SLIM should be used
      	for that.  Prototype here near DEBUG_FUNCTION marker.
      	(debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
      	Use dump_bb.
      	(debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
      	* tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
      	(remove_bb): Update dump_bb call.
      	(gimple_debug_bb): Use dump_bb.
      	(dump_function_to_file): Update gimple_dump_bb call.
      	(print_loops_bb): Likewise.
      	* tree-flow.h (gimple_dump_bb): Update prototype.
      	* gimple-pretty-print.c (dump_bb_header): Rename to
      	dump_gimple_bb_header.  Write to a stream instead of a pretty
      	printer.  Use dump_bb_info to dump basic block info.
      	(dump_bb_end): Rename to dump_gimple_bb_footer.  Write to a
      	stream instead of a pretty printer.  Use dump_bb_info.
      	(gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
      	(gimple_dump_bb): Do it here with dump_gimple_bb_header and
      	dump_gimple_bb_footer.
      	* cfgrtl.c (rtl_dump_bb): Update prototype.  Only dump DF if the
      	dump flags have TDF_DETAILS.  Use dump_insn_slim if TDF_SLIM.
      	(print_rtl_with_bb): Take a flags argument and pass it around.
      	Use dump_insn_slim if TDF_SLIM.
      	(dump_bb_info): Removed and re-incarnated in cfg.c.
      	(dump_flow_info): Moved to cfghooks.c.
      	(debug_flow_info): Moved to cfghooks.c.
      	* passes.c (execute_function_dump): Unconditionally use
      	print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
      	* final.c (dump_basic_block_info): Update dump_edge_info calls.
      	* tree-vrp.c (dump_asserts_for): Likewise.
      	* ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
      	* tree-if-conv.c (if_convertible_bb_p): Don't look at
      	EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
      	* trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
      	for the same reason.
      	* config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.
      
      From-SVN: r189590
      Steven Bosscher committed
    • re PR fortran/51081 ([F03] Proc-pointer assignment: Rejects valid internal proc) · 9717f7a1
      2012-07-17  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/51081
      	* error.c (gfc_notify_std): Automatically print the relevant Fortran
      	standard version.
      	* arith.c (arith_power): Remove explicit standard reference string.
      	* array.c (gfc_match_array_spec, gfc_match_array_constructor): Ditto.
      	* check.c (gfc_check_a_p, gfc_check_besn, gfc_check_count,
      	gfc_check_float, gfc_check_fn_rc2008, gfc_check_iand,
      	gfc_check_ichar_iachar, gfc_check_ieor, gfc_check_index, gfc_check_ior,
      	gfc_check_lbound, gfc_check_len_lentrim, check_rest, gfc_check_min_max,
      	gfc_check_null, gfc_check_scan, gfc_check_selected_real_kind,
      	gfc_check_shape, gfc_check_size, gfc_check_sngl, gfc_check_ubound,
      	gfc_check_verify): Ditto.
      	* data.c (gfc_assign_data_value): Ditto.
      	* decl.c (var_element, char_len_param_value, match_char_length,
      	gfc_verify_c_interop_param, match_pointer_init, variable_decl,
      	gfc_match_decl_type_spec, gfc_match_import, match_attr_spec, 
      	gfc_match_prefix, gfc_match_suffix, match_ppc_decl,
      	match_procedure_in_interface, gfc_match_procedure,gfc_match_entry,
      	gfc_match_subroutine, gfc_match_end, gfc_match_codimension,
      	gfc_match_protected, gfc_match_value, gfc_match_volatile,
      	gfc_match_asynchronous, gfc_match_modproc, gfc_get_type_attr_spec,
      	gfc_match_enum, match_procedure_in_type): Ditto.
      	* expr.c (check_elemental, gfc_check_assign, gfc_check_pointer_assign):
      	Ditto.
      	* interface.c (gfc_match_abstract_interface, check_interface0): Ditto.
      	* intrinsic.c (gfc_intrinsic_func_interface): Ditto.
      	* io.c (format_lex, resolve_tag_format, resolve_tag,
      	compare_to_allowed_values, gfc_match_open, gfc_match_rewind,
      	gfc_resolve_dt, gfc_match_wait): Ditto.
      	* match.c (match_arithmetic_if, gfc_match_if, gfc_match_critical,
      	gfc_match_do, match_exit_cycle, gfc_match_pause, gfc_match_stop,
      	gfc_match_lock, sync_statement, gfc_match_assign, gfc_match_goto,
      	gfc_match_allocate, gfc_match_return, gfc_match_st_function): Ditto.
      	* module.c (gfc_match_use, gfc_use_module): Ditto.
      	* parse.c (parse_derived_contains, parse_block_construct,
      	parse_associate, parse_contained): Ditto.
      	* primary.c (match_hollerith_constant, match_boz_constant,
      	match_real_constant, match_sym_complex_part, match_arg_list_function,
      	build_actual_constructor, gfc_convert_to_structure_constructor): Ditto.
      	* resolve.c (resolve_formal_arglist, resolve_entries,
      	resolve_common_blocks, resolve_actual_arglist, gfc_resolve_index_1,
      	gfc_resolve_iterator_expr, resolve_ordinary_assign,
      	resolve_fl_var_and_proc, resolve_fl_variable_derived,
      	resolve_fl_procedure, resolve_fl_derived0, resolve_fl_derived,
      	resolve_fl_namelist, resolve_symbol, resolve_fntype): Ditto.
      	* symbol.c (check_conflict, conflict, gfc_add_is_bind_c,
      	gfc_add_extension, gfc_check_symbol_typed): Ditto.
      
      From-SVN: r189589
      Janus Weil committed
    • re PR c++/53989 (Internal compiler error in strip_typedefs, at cp/tree.c:1187) · 697c474c
      	PR c++/53989
      	* tree.c (build_cplus_array_type): Also add TYPE_CANONICAL
      	to the list of variants.
      
      From-SVN: r189587
      Jason Merrill committed
    • re PR fortran/53985 (-Wno-c-binding-type still prints a warning) · 7fe3aa08
      2012-07-17  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/53985
              * decl.c (gfc_verify_c_interop_param): Make warning conditional
              on -Wc-binding-type works and improve the wording.
      
      2012-07-17  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/53985
              * gfortran.dg/bind_c_usage_26.f90: New.
              * gfortran.dg/bind_c_procs.f03: Add dg-options
              * "-Wc-binding-type".
              * gfortran.dg/bind_c_usage_13.f03: Ditto.
              * gfortran.dg/bind_c_usage_18.f90: Ditto.
              * gfortran.dg/interop_params.f03: Ditto.
      
      From-SVN: r189586
      Tobias Burnus committed
    • decl.c (xref_basetypes): Complain about incomplete template base. · 947296ca
      	* decl.c (xref_basetypes): Complain about incomplete template base.
      	* class.c (finish_struct): Adjust variants in templates, too.
      
      From-SVN: r189583
      Jason Merrill committed
    • re PR c++/53549 (g++ and armadillo 3.2.0, operator() is inaccessible) · ec44e463
      	PR c++/53549
      	* parser.c (cp_parser_class_head): Call xref_basetypes here.
      	(cp_parser_class_specifier_1): Not here.
      	* pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms
      	as well as DECL_DEPENDENT_P.
      
      From-SVN: r189582
      Jason Merrill committed
    • tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced vars here, use… · 65876d24
      tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced vars here, use create_tmp_reg where appropriate.
      
      2012-07-17  Richard Guenther  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
      	vars here, use create_tmp_reg where appropriate.
      	(vect_create_addr_base_for_vector_ref): Do not add referenced
      	vars here, use create_tmp_reg where appropriate.
      	(vect_create_data_ref_ptr): Likewise.
      	(vect_create_destination_var): Likewise.
      	(vect_permute_store_chain): Likewise.
      	(vect_permute_load_chain): Likewise.
      	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
      	Likewise.
      	* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
      	* tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
      	(vect_handle_widen_op_by_const): Likewise.
      	* tree-vect-stmts.c (vect_init_vector): Likewise.
      	(vectorizable_load): Likewise.
      
      From-SVN: r189581
      Richard Guenther committed
    • hwint.c: Fix loop range. · 7cb151c0
      2012-07-17  Tom de Vries  <tom@codesourcery.com>
      
      	* hwint.c: Fix loop range.
      
      From-SVN: r189577
      Tom de Vries committed
    • double-int.h (double_int_popcount): New inline function. · 440b6d59
      2012-07-17  Tom de Vries  <tom@codesourcery.com>
      
      	* double-int.h (double_int_popcount): New inline function.
      	* hwint.c (popcount_hwi): New function.
      	* hwint.h (popcount_hwi): Declare function.  New inline function.
      
      From-SVN: r189575
      Tom de Vries committed
    • Clean up supportable_widening_operation. · a86ec597
      	* tree-vect-stmts.c (supportable_widening_operation): Remove decl
      	parameters.
      	(vectorizable_conversion): Update supportable_widening_operation call.
      	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
      	(vect_recog_widen_shift_pattern): Likewise.
      	* tree-vectorizer.h: Update decl.
      
      From-SVN: r189574
      Richard Henderson committed