2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* doc/invoke.texi: (fprofile-reorder-functions): Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207423 138bc75d-0d04-0410-961f-82ee72b054a4
Check if mode is OK first

	PR rtl-optimization/60024
	* sel-sched.c (init_regs_for_mode): Check if mode is OK first.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207427 138bc75d-0d04-0410-961f-82ee72b054a4
Add -mlong-double-128 and make it default for 64-bit Bionic

gcc/

	* config/i386/i386.c (flag_opts): Add -mlong-double-128.
	(ix86_option_override_internal): Default long double to 64-bit for
	32-bit Bionic and to 128-bit for 64-bit Bionic.

	* config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
	TARGET_LONG_DOUBLE_128 is true.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.

	* config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
	(mlong-double-64): Negate -mlong-double-128.
	(mlong-double-128): New option.

	* config/i386/i386-c.c (ix86_target_macros): Define
	__LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.

	* doc/invoke.texi: Document -mlong-double-128.

gcc/testsuite/

	* gcc.target/i386/long-double-64-1.c: Verify __multf3 isn't used.
	* gcc.target/i386/long-double-64-4.c: Likewise.
	* gcc.target/i386/long-double-80-1.c: Likewise.
	* gcc.target/i386/long-double-80-2.c: Likewise.
	* gcc.target/i386/long-double-80-3.c: Likewise.
	* gcc.target/i386/long-double-80-4.c: Likewise.
	* gcc.target/i386/long-double-80-5.c: Likewise.
	* gcc.target/i386/long-double-64-2.c: Limit to ia32.  Verify
	__multf3 isn't used.
	* gcc.target/i386/long-double-64-3.c: Likewise.
	* gcc.target/i386/long-double-128-1.c: New test.
	* gcc.target/i386/long-double-128-2.c: Likewise.
	* gcc.target/i386/long-double-128-3.c: Likewise.
	* gcc.target/i386/long-double-128-4.c: Likewise.
	* gcc.target/i386/long-double-128-5.c: Likewise.
	* gcc.target/i386/long-double-128-6.c: Likewise.
	* gcc.target/i386/long-double-128-7.c: Likewise.
	* gcc.target/i386/long-double-128-8.c: Likewise.
	* gcc.target/i386/long-double-128-9.c: Likewise.
	* gcc.target/i386/long-double-64-5.c: Likewise.
	* gcc.target/i386/long-double-64-6.c: Likewise.
	* gcc.target/i386/long-double-64-7.c: Likewise.
	* gcc.target/i386/long-double-64-8.c: Likewise.
	* gcc.target/i386/long-double-64-9.c: Likewise.
	* gcc.target/i386/long-double-80-10.c: Likewise.
	* gcc.target/i386/long-double-80-8.c: Likewise.
	* gcc.target/i386/long-double-80-9.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207428 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc_update (files_and_dependencies): Add aarch64-tune.md.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207429 138bc75d-0d04-0410-961f-82ee72b054a4
ltmain.sh: Patch for Solaris.

From Rainer Orth.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207432 138bc75d-0d04-0410-961f-82ee72b054a4
2014-02-03  Cong Hou  <congh@google.com>

	PR tree-optimization/60000
	* tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
	if the vectorized statement is a store.  A store statement can only
	appear at the end of pattern statements.

2014-02-03  Cong Hou  <congh@google.com>

	PR tree-optimization/60000
	* g++.dg/vect/pr60000.cc: New test.




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

	PR c++/58871
	* method.c (synthesized_method_walk): If vbases is non-null but
	is_empty is true, likewise don't worry about the virtual bases.

/testsuite
2014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58871
	* g++.dg/cpp0x/pr58871.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207434 138bc75d-0d04-0410-961f-82ee72b054a4
2014-02-03  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53017
	PR c++/59211
gcc/c-family/
	* c-common.c (handle_aligned_attribute, handle_alloc_size_attribute,
	handle_vector_size_attribute, handle_nonnull_attribute): Call
	default_conversion on the attribute argument.
	(handle_nonnull_attribute): Increment the argument number.
gcc/cp/
	* tree.c (handle_init_priority_attribute): Call default_conversion on
	the attribute argument.
gcc/
	* doc/extend.texi (Function Attributes): Typo.
gcc/testsuite/
	* c-c++-common/attributes-1.c: New testcase.
	* g++.dg/cpp0x/constexpr-attribute2.C: Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207436 138bc75d-0d04-0410-961f-82ee72b054a4
2014-02-03  Teresa Johnson  <tejohnson@google.com>

	* tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
	redef of outer loop index variable.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207437 138bc75d-0d04-0410-961f-82ee72b054a4
	PR ipa/59831
	* g++.dg/ipa/devirt-24.C: New testcase.

	* ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on -fno-devirtualize;
	Try to devirtualize by the knowledge of virtual table pointer given by
	aggregate propagation.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	ipa_print_node_jump_functions): Dump also offset that
	is relevant for polymorphic calls.
	(determine_known_aggregate_parts): Add arg_type parameter; use it
	instead of determining the type from pointer type.
	(ipa_compute_jump_functions_for_edge): Update call of
	determine_known_aggregate_parts.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
	(gimple_get_virt_method_for_binfo): ... here; simplify using
	vtable_pointer_value_to_vtable.
	* gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
	* ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
	to unsigned HOST_WIDE_INT; Use vtable_pointer_value_to_vtable.
	(vtable_pointer_value_to_vtable): Break out from ...; handle also
	POINTER_PLUS_EXPR.
	(vtable_pointer_value_to_binfo): ... here.
	* ipa-utils.h (vtable_pointer_value_to_vtable): Declare.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207439 138bc75d-0d04-0410-961f-82ee72b054a4
	PR gcov-profile/58602
        * gcc/gcov-io.c (gcov_open): Open with truncation when mode<0

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207441 138bc75d-0d04-0410-961f-82ee72b054a4
PR tree-opt/59924

        * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
        already processed this node.
        (normalize_one_pred_1): Pass along mark_set.
        (normalize_one_pred): Create and destroy a pointer_set_t.
        (normalize_one_pred_chain): Likewise.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207445 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/59924
	* gcc.dg/pr59924.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207446 138bc75d-0d04-0410-961f-82ee72b054a4
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
	lookup via vtable pointer; check for type consistency
	and turn inconsitent facts into UNREACHABLE.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): 
	Do not ICE on type inconsistent querries; return UNREACHABLE
	instead.

	* g++.dg/ipa/devirt-25.C: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207447 138bc75d-0d04-0410-961f-82ee72b054a4
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
	lookup via vtable pointer; check for type consistency
	and turn inconsitent facts into UNREACHABLE.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): 
	Do not ICE on type inconsistent querries; return UNREACHABLE
	instead.

	* testsuite/g++.dg/ipa/devirt-25.C: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207448 138bc75d-0d04-0410-961f-82ee72b054a4
	PR ipa/59469
	* lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
	merge force_output and forced_by_abi flags.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207449 138bc75d-0d04-0410-961f-82ee72b054a4
	* gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
	* gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207450 138bc75d-0d04-0410-961f-82ee72b054a4
	PR ipa/59882
	* tree.c (get_binfo_at_offset): Do not get confused by empty classes;
	* g++.dg/torture/pr59882.C: New testcase


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207451 138bc75d-0d04-0410-961f-82ee72b054a4
	PR sanitizer/60038
	* sanitizer_common/sanitizer_linux_libcdep.cc: Include
	sanitizer_atomic.h and unistd.h.
	(kThreadDescriptorSize): Made static, remove initializer and const,
	change type to atomic_uintptr_t.
	(ThreadDescriptorSize): Use confstr(_CS_GNU_LIBC_VERSION, ...) to
	query glibc version, compute kThreadDescriptorSize depending on
	glibc version minor number.
	(GetThreadStackAndTls): Use ThreadDescriptorSize() instead of
	kThreadDescriptorSize directly.


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