1. 13 May, 2014 12 commits
    • rtl.def (scratch): Fix outdated comment and remove "0" field. · feb09dd9
      gcc/
      	* rtl.def (scratch): Fix outdated comment and remove "0" field.
      	* gengtype.c (adjust_field_rtx_def): Update accordingly.
      
      From-SVN: r210361
      Richard Sandiford committed
    • gcc/ · ed8921dc
      	* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
      	(BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
      	* rtl.h (rtx_def): Add insn_uid to u2 field.
      	(RTX_FLAG_CHECK8): Delete in favor of...
      	(RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
      	(INSN_DELETED_P): Update accordingly.
      	(INSN_UID): Use u2.insn_uid.
      	(INSN_CHAIN_CODE_P): Define.
      	(PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
      	(INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
      	(NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
      	(NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
      	(NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
      	indices accordingly.
      	* print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
      	Update indices for insn-chain rtxes.
      	* gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
      	(adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
      	* emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
      	* caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
      	* combine.c (try_combine): Likewise.
      	* ira.c (setup_prohibited_mode_move_regs): Likewise.
      
      From-SVN: r210360
      Richard Sandiford committed
    • rtl.def (REG): Remove middle field. · fccc5515
      gcc/
      	* rtl.def (REG): Remove middle field.
      	* rtl.h (rtx_def): Add orignal_regno to u2.
      	(ORIGINAL_REGNO): Use it instead of field 1.
      	(REG_ATTRS): Lower field index accordingly.
      	* gengtype.c (adjust_field_rtx_def): Remove handling of
      	ORIGINAL_REGNO.  Move REG_ATTRS index down.
      	* print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
      	code that prints the REGNO.
      
      From-SVN: r210359
      Richard Sandiford committed
    • print-rtl.c (print_rtx): Guard whole '0' block with ifndef GENERATOR_FILE. · 925c1bae
      gcc/
      	* print-rtl.c (print_rtx): Guard whole '0' block with ifndef
      	GENERATOR_FILE.
      
      From-SVN: r210358
      Richard Sandiford committed
    • rtl.h (rtx_def): Mark u2 as GTY ((skip)). · 13b0c5ac
      gcc/
      	* rtl.h (rtx_def): Mark u2 as GTY ((skip)).
      
      From-SVN: r210357
      Richard Sandiford committed
    • tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New. · be9a0da5
      
      	* tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
      	(alloc_iv): Lower base expressions containing ADDR_EXPR.
      
      	* gcc.dg/tree-ssa/ivopts-lower_base.c: New test.
      
      From-SVN: r210356
      Bin Cheng committed
    • Implement HARD_REGNO_CALLER_SAVE_MODE for AArch64 · 73d9ac6a
      	* config/aarch64/aarch64-protos.h
      	(aarch64_hard_regno_caller_save_mode): New prototype.
      	* config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
      	New function.
      	* config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
      
      From-SVN: r210355
      Ian Bolton committed
    • target.def (mode_switching): New hook vector. · 06b90602
      2014-05-13  Christian Bruel  <christian.bruel@st.com>
      
      	* target.def (mode_switching): New hook vector.
      	(mode_emit, mode_needed, mode_after, mode_entry): New hooks.
      	(mode_exit, modepriority_to_mode): Likewise.
      	* mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
      	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
      	(default_priority_to_mode): Define.
      	* targhooks.h (default_priority_to_mode): Declare.
      	* target.h: Include tm.h and hard-reg-set.h.
      	* doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
      	(MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
      	* doc/tm.texi Regenerate.
      	* config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
      	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
      	* config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
      	(sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
      	* config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
      	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
      	* config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
      	(ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
      	* config/i386/i386.c (ix86_mode_needed, ix86_mode_after, ix86_mode_exit,
      	(ix86_mode_entry, ix86_mode_priority, ix86_emit_mode_set): Hookify.
      	* config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
      	Delete
      	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
      	* config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
      	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
      	* config/sh/sh.c (sh4_emit_mode_set, sh4_mode_needed): Hookify.
      	(sh4_mode_after, sh4_mode_entry, sh4_mode_exit): Likewise.
      	* config/epiphany/epiphany-protos.h (epiphany_mode_needed)
      	(emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
      	(epiphany_mode_priority_to_mode): Remove declaration.
      	* config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
      	(epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
      	(epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
      	Likewise.
      	(epiphany_mode_priority_to_mode): Change priority type. Hookify.
      	(epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
      	(epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
      
      From-SVN: r210354
      Christian Bruel committed
    • re PR target/61060 (ICE: in int_mode_for_mode, at stor-layout.c:400 with -free-ter) · 455464ab
      	PR target/61060
      	* config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
      	is const0_rtx, return immediately.  Don't test count == 0 when
      	it is always true.
      
      	* gcc.dg/pr61060.c: New test.
      
      From-SVN: r210352
      Jakub Jelinek committed
    • Makefile.in: add shrink-wrap.o. · f30e25a3
      2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
      
      	* Makefile.in: add shrink-wrap.o.
      	* config/i386/i386.c: include "shrink-wrap.h"
      	* function.c: Likewise.
      	(requires_stack_frame_p, next_block_for_reg,
      	move_insn_for_shrink_wrap, prepare_shrink_wrap,
      	dup_block_and_redirect): Move to shrink-wrap.c
      	(thread_prologue_and_epilogue_insns): Extract three code segments
      	as functions in shrink-wrap.c
      	* function.h: Move #ifdef HAVE_simple_return ... #endif block to
      	shrink-wrap.h
      	* shrink-wrap.c: New file.
      	* shrink-wrap.h: New file.
      
      From-SVN: r210351
      Zhenqiang Chen committed
    • call.c (maybe_print_user_conv_context): New. · 3f55e16a
      	* call.c (maybe_print_user_conv_context): New.
      	(convert_like_real): Use it.  Print call context for bad
      	user-defined conversion.
      	(build_over_call): Print call context for bad 'this' conversion.
      
      From-SVN: r210350
      Jason Merrill committed
    • Daily bump. · eed64f27
      From-SVN: r210349
      GCC Administrator committed
  2. 12 May, 2014 17 commits
  3. 11 May, 2014 6 commits
    • tree.h (OMP_CLAUSE_LINEAR_STMT): Define. · dd2fc525
      	* tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
      	* tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
      	number of operands to 3.
      	(walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
      	* tree-nested.c (convert_nonlocal_omp_clauses,
      	convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
      	* gimplify.c (gimplify_scan_omp_clauses): Handle
      	OMP_CLAUSE_LINEAR_STMT.
      	* omp-low.c (lower_rec_input_clauses): Fix typo.
      	(maybe_add_implicit_barrier_cancel, lower_omp_1): Add
      	cast between Fortran boolean_type_node and C _Bool if
      	needed.
      gcc/fortran/
      	* gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
      	ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
      	ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
      	ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
      	ST_OMP_DECLARE_SIMD.
      	(gfc_omp_namelist): New typedef.
      	(gfc_get_omp_namelist): Define.
      	(OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
      	OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
      	(gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
      	(gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
      	Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
      	simdlen_expr fields.
      	(gfc_omp_declare_simd): New typedef.
      	(gfc_get_omp_declare_simd): Define.
      	(gfc_namespace): Add omp_declare_simd field.
      	(gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
      	EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
      	EXEC_OMP_PARALLEL_DO_SIMD.
      	(gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
      	and GFC_OMP_ATOMIC_SWAP.
      	(gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
      	(gfc_free_omp_namelist, gfc_free_omp_declare_simd,
      	gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
      	prototypes.
      	* trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
      	* symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
      	* openmp.c (gfc_free_omp_clauses): Free safelen_expr and
      	simdlen_expr.  Use gfc_free_omp_namelist instead of
      	gfc_free_namelist.
      	(gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
      	functions.
      	(gfc_match_omp_variable_list): Add end_colon, headp and
      	allow_sections arguments.  Handle parsing of array sections.
      	Use *omp_namelist* instead of *namelist* data structure and
      	functions/macros.  Allow termination at : character.
      	(OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
      	OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
      	OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
      	(gfc_match_omp_clauses): Change first and needs_space variables
      	into arguments with default values.  Parse inbranch, notinbranch,
      	proc_bind, safelen, simdlen, uniform, linear, aligned and
      	depend clauses.
      	(OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
      	(OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
      	(OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
      	(gfc_match_omp_do_simd): New function.
      	(gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
      	data structure and functions/macros.
      	(gfc_match_omp_simd, gfc_match_omp_declare_simd,
      	gfc_match_omp_parallel_do_simd): New functions.
      	(gfc_match_omp_atomic): Handle seq_cst clause.  Handle atomic swap.
      	(gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
      	gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
      	functions.
      	(resolve_omp_clauses): Add where, omp_clauses and ns arguments.
      	Use *omp_namelist* instead of *namelist* data structure and
      	functions/macros.  Resolve uniform, aligned, linear, depend,
      	safelen and simdlen clauses.
      	(resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
      	addition, recognize atomic swap.
      	(gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
      	of gfc_namelist.  Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
      	EXEC_OMP_PARALLEL_DO.
      	(gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
      	data structure and functions/macros.
      	(resolve_omp_do): Likewise.  Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
      	EXEC_OMP_PARALLEL_DO_SIMD.
      	(gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
      	EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL.  Adjust
      	resolve_omp_clauses caller.
      	(gfc_resolve_omp_declare_simd): New function.
      	* parse.c (decode_omp_directive): Parse cancellation point, cancel,
      	declare simd, end do simd, end simd, end parallel do simd,
      	end taskgroup, parallel do simd, simd and taskgroup directives.
      	(case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
      	(case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
      	ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
      	(case_decl): Add ST_OMP_DECLARE_SIMD.
      	(gfc_ascii_statement): Handle ST_OMP_CANCEL,
      	ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
      	ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
      	ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
      	ST_OMP_DECLARE_SIMD.
      	(parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
      	ST_OMP_PARALLEL_DO_SIMD.
      	(parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
      	(parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
      	ST_OMP_PARALLEL_DO_SIMD.
      	(parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
      	ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
      	* trans-decl.c (gfc_get_extern_function_decl,
      	gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
      	needed.
      	* frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
      	EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD.  Walk
      	safelen_expr and simdlen_expr.  Walk expressions in gfc_omp_namelist
      	of depend, aligned and linear clauses.
      	* match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
      	and EXEC_OMP_PARALLEL_DO_SIMD.
      	(gfc_free_omp_namelist): New function.
      	* dump-parse-tree.c (show_namelist): Removed.
      	(show_omp_namelist): New function.
      	(show_omp_node): Handle OpenMP 4.0 additions.
      	(show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
      	EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
      	EXEC_OMP_TASKGROUP.
      	* match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
      	gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
      	gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
      	gfc_match_omp_taskgroup): New prototypes.
      	* trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
      	argument, handle it.  Allow current_function_decl to be NULL.
      	(gfc_trans_omp_variable_list): Add declare_simd argument, pass
      	it through to gfc_trans_omp_variable and disregard whether
      	sym is referenced if declare_simd is true.  Work on gfc_omp_namelist
      	instead of gfc_namelist.
      	(gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
      	gfc_namelist.  Adjust gfc_trans_omp_variable caller.
      	(gfc_trans_omp_clauses): Add declare_simd argument, pass it through
      	to gfc_trans_omp_variable{,_list} callers.  Work on gfc_omp_namelist
      	instead of gfc_namelist.  Handle inbranch, notinbranch, safelen,
      	simdlen, depend, uniform, linear, proc_bind and aligned clauses.
      	Handle cancel kind.
      	(gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
      	adjust for GFC_OMP_ATOMIC_* changes.
      	(gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
      	functions.
      	(gfc_trans_omp_do): Add op argument, handle simd translation into
      	generic.
      	(GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
      	GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
      	GFC_OMP_MASK_PARALLEL): New.
      	(gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
      	(gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
      	(gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
      	functions.
      	(gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
      	EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
      	EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
      	Adjust gfc_trans_omp_do caller.
      	(gfc_trans_omp_declare_simd): New function.
      	* st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
      	EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
      	EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
      	For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
      	gfc_free_namelist.
      	* module.c (omp_declare_simd_clauses): New variable.
      	(mio_omp_declare_simd): New function.
      	(mio_symbol): Call it.
      	* trans.c (trans_code): Handle EXEC_OMP_CANCEL,
      	EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
      	EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
      	* resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,  
      	EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
      	(resolve_code): Handle EXEC_OMP_CANCEL,
      	EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
      	EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
      	(resolve_types): Call gfc_resolve_omp_declare_simd.
      gcc/testsuite/
      	* gfortran.dg/gomp/affinity-1.f90: New test.
      libgomp/
      	* testsuite/libgomp.fortran/cancel-do-1.f90: New test.
      	* testsuite/libgomp.fortran/cancel-do-2.f90: New test.
      	* testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
      	* testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
      	* testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
      	* testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
      	* testsuite/libgomp.fortran/declare-simd-1.f90: New test.
      	* testsuite/libgomp.fortran/declare-simd-2.f90: New test.
      	* testsuite/libgomp.fortran/declare-simd-3.f90: New test.
      	* testsuite/libgomp.fortran/depend-1.f90: New test.
      	* testsuite/libgomp.fortran/depend-2.f90: New test.
      	* testsuite/libgomp.fortran/omp_atomic5.f90: New test.
      	* testsuite/libgomp.fortran/simd1.f90: New test.
      	* testsuite/libgomp.fortran/simd2.f90: New test.
      	* testsuite/libgomp.fortran/simd3.f90: New test.
      	* testsuite/libgomp.fortran/simd4.f90: New test.
      	* testsuite/libgomp.fortran/taskgroup1.f90: New test.
      
      From-SVN: r210313
      Jakub Jelinek committed
    • re PR c/61136 (ice in tree_nop_conversion) · 7588d8aa
      gcc/
      	PR tree-optimization/61136
      	* wide-int.h (multiple_of_p): Define a version that doesn't return
      	the quotient.
      	* fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
      	integer_zerop/const_binop pair.
      	(multiple_of_p): Likewise, converting both operands to widest_int
      	precision.
      
      gcc/testsuite/
      	* gcc.dg/torture/pr61136.c: New test.
      
      From-SVN: r210312
      Richard Sandiford committed
    • trans-intrinsic.c (gfc_build_builtin_function_decls): Change type of second argument to int. · a9fe6877
      2014-05-11  Tobias Burnus  <burnus@net-b.de>
      
             * trans-intrinsic.c (gfc_build_builtin_function_decls):
             Change type of second argument to int.
      
      2014-05-11  Tobias Burnus  <burnus@net-b.de>
      
             * caf/libcaf.h (_gfortran_caf_num_images): Change type of
             second argument to int.
             * caf/mpi.c (_gfortran_caf_num_images): Ditto.
             * caf/single.c (_gfortran_caf_num_images): Ditto.
      
      From-SVN: r210311
      Tobias Burnus committed
    • re PR c++/59705 (possible compiler bug regarding SFINAE (program compiles fine)) · 3af89f8b
      2014-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/59705
      	* g++.dg/cpp0x/sfinae51.C: New.
      
      	PR c++/58353
      	* g++.dg/cpp0x/variadic157.C: New.
      
      From-SVN: r210310
      Paolo Carlini committed
    • Daily bump. · 6f8531af
      From-SVN: r210305
      GCC Administrator committed
  4. 10 May, 2014 4 commits
  5. 09 May, 2014 1 commit
    • re PR c++/60463 (Lambda function can call a non-const member function with const this) · 0b360a07
      	PR c++/60463
      	PR c++/60755
      	* lambda.c (lambda_expr_this_capture): Add new parameter
      	add_capture_p controlling whether the functions will try to
      	capture 'this' via the default capture.
      	(maybe_resolve_dummy): Likewise.
      	* cp-tree.h: Adjust prototypes.
      	* call.c, semantics.c: Change callers of these functions.
      	* call.c (build_new_method_call_1): Use the actual 'this' that
      	would be potentially captured for the overload resolution, instead
      	of the dummy object.
      
      From-SVN: r210292
      Momchil Velikov committed