2012-05-21  Chung-Lin Tang  <cltang@codesourcery.com>

	* Makefile.in (options.c): Add options.h to included header
	files, before tm.h.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187705 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-21  Richard Guenther  <rguenther@suse.de>

	* tree-loop-distribution.c (can_generate_builtin): Reject
	volatile stmts.

	* gcc.dg/torture/ldist-1.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187707 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-21  Richard Guenther  <rguenther@suse.de>

	* gfortran.dg/pr46519-2.f90: Adjust to avoid memset transform.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187708 138bc75d-0d04-0410-961f-82ee72b054a4
Use unspec_volatile on rdrand<mode>_1

gcc/

	PR target/53416
	* config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
	(UNSPECV_RDRAND): This.
	(rdrand<mode>_1): Updated.

gcc/testsuite/

	PR target/53416
	* gcc.target/i386/pr53416.c: New file.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187709 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53408
	* tree-vect-loop.c (vectorizable_induction): Properly check
	the restriction that we cannot handle induction results from
	the inner loop outside of the outer loop.

	* gcc.dg/torture/pr53408.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187710 138bc75d-0d04-0410-961f-82ee72b054a4
Warn passing SSE argument ABI change for -m64

gcc/

	PR target/53425
	* config/i386/i386.c (type_natural_mode): Warn passing SSE
	vector argument without SSE enabled changes the ABI.

gcc/testsuite/

	PR target/53425
	* gcc.target/i386/pr53425-1.c: New file.
	* gcc.target/i386/pr53425-2.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187711 138bc75d-0d04-0410-961f-82ee72b054a4
	* genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
	(simplify_test_exp): Handle one more case of distributive law,
	decrease cost threshold.
	(tests_attr_p, get_attr_order): New functions.
	(optimize_attrs): Use topological order, inline only cheap values.
	(write_attr_set): Reset our_known_true after some time.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187714 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/53410
	* fold-const.c (fold_binary_loc): Use build_zero_cst (type)
	instead of build_int_cst (type, 0) where vector types might be
	involved. Instead of build_int_cst (type, 1) convert the original
	integer_onep argument to the desired type.

	* gcc.c-torture/compile/pr53410-1.c: New test.
	* gcc.c-torture/compile/pr53410-2.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187715 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/53409
	* tree-vect-loop.c (vect_analyze_loop_operations): Don't check
	vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.

	* gcc.c-torture/compile/pr53409.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187716 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/53366
	* tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
	tests if complex_numbers == 2, but there are non-complex number loads
	too.

	* gcc.dg/torture/pr53366-1.c: New test.
	* gcc.dg/torture/pr53366-2.c: New test.
	* gcc.target/i386/pr53366-1.c: New test.
	* gcc.target/i386/pr53366-2.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187717 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c/53148
	* c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
	from folded operands before wrapping another around the
	conditional expression.

testsuite:
	* gcc.c-torture/compile/pr53418-1.c,
	gcc.c-torture/compile/pr53418-2.c: New tests.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187718 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-21  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
	more referenced vars.
	* tree-ssa-live.c (mark_all_vars_used_1): Only set the used
	flag on variables that have a var-annotation.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187719 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51184
	* decl.c (grokdeclarator): Diagnose functions returning abstract
	class types as TYPENAME.
	* cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add.
	* except.c (is_admissible_throw_operand_or_catch_parameter): Use it.
	* pt.c (tsubst): Likewise.
	* semantics.c (trait_expr_value): Likewise.

/testsuite
2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51184
	* g++.dg/other/abstract4.C: New-

/cp
2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/40821
	* parser.c (cp_parser_attributes_opt): Enforce error checking of
	unbalanced parentheses in the presence of tentative parsing.

/testsuite
2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/40821
	* g++.dg/ext/attrib46.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187720 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/53399
	* config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
	for TARGET_BMI.
	(ffssi2_no_cmove): Ditto.
	(*ffs<mode>_1): Remove insn pattern.
	(*tzcnt<mode>_1): New insn pattern.
	(*bsf<mode>1): Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187722 138bc75d-0d04-0410-961f-82ee72b054a4
Fix PR number in ChangeLogs.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187723 138bc75d-0d04-0410-961f-82ee72b054a4
	PR java/52815
	* class.c (emit_register_classes_in_jcr_section): Revise placement
	of #ifdef JCR_SECTION_NAME.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187724 138bc75d-0d04-0410-961f-82ee72b054a4
* expr.c (get_def_for_expr_class): Define only if
HAVE_conditional_move.
(convert_tree_comp_to_rtx): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187727 138bc75d-0d04-0410-961f-82ee72b054a4
2012-05-21  Benjamin Kosnik  <bkoz@redhat.com>

        PR libstdc++/52700
        * configure.ac: Allow gnu, gnu-versioned-namespace for
        --enable-symvers arguments.
        * configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187728 138bc75d-0d04-0410-961f-82ee72b054a4
        * gimple.h (gimple_set_in_transaction): Remove.
        (gimple_in_transaction): Look in BB instead.
        (gimple_statement_base): Remove in_transaction field.
        * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
        * trans-mem.c (compute_transaction_bits): Place transaction bit
        information into basic blocks.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187729 138bc75d-0d04-0410-961f-82ee72b054a4
* config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2.  Call
CC_STATUS_INIT.
(clzsi2): New expander.
(*clzsi2_68k): New insn.
* config/m68k/m68k.h: Update comment about
CLZ_DEFINED_VALUE_AT_ZERO.


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