2014-04-14  Richard Biener  <rguenther@suse.de>

	* tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
	check for which sign-changes we allow when forwarding
	a converted value into a switch.

	* g++.dg/tree-ssa/forwprop-switch.C: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209372 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-14  Richard Biener  <rguenther@suse.de>

	* passes.def: Move early points-to after early SRA.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209373 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60042
	* tree-ssa-pre.c (inhibit_phi_insertion): Remove.
	(insert_into_preds_of_block): Do not prevent PHI insertion
	for REFERENCE exprs here ...
	(eliminate_dom_walker::before_dom_children): ... but prevent
	their use here under similar conditions when applied to the
	IL after PRE optimizations.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209374 138bc75d-0d04-0410-961f-82ee72b054a4
	* snames.ads-tmpl (Name_Ivdep): New pragma-related name.
	* sem_prag.adb (Analyze_Pragma) <Pragma_Loop_Optimize>: Add support
	for Ivdep hint.
	* gnat_rm.texi (Implementation Defined Pragmas): Document new Ivdep
	hint for Loop_Optimize.
	* gnat_ugn.texi (Vectorization of loops): Mention new Ivdep hint.
	* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Loop_Optimize>: Deal
	with new Ivdep hint.
	* gcc-interface/ada-tree.h (LOOP_STMT_IVDEP): New macro.
	* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Loop_Optimize>: Deal
	with new Ivdep hint.
	(gnat_gimplify_stmt) <LOOP_STMT>: Propagate the loop hints.


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

	* doc/invoke.texi (free): Document AArch64.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209376 138bc75d-0d04-0410-961f-82ee72b054a4
Limit operations on vector::pointer to NullablePointer requirements.

	* include/bits/stl_vector.h (_Vector_base::_Vector_impl,
	_Vector_base::_M_allocate): NullablePointer requirements do not
	include initialization from literal zero, use value-initialization.
	* include/bits/vector.tcc (vector::_M_insert_aux,
	vector::_M_explace_back_aux): Likewise for assignment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209377 138bc75d-0d04-0410-961f-82ee72b054a4
	* include/bits/allocator.h (operator==, operator!=): Add exception
	specifications.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209379 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/60497
	* include/std/tuple (get): Qualify calls to prevent ADL.
	* testsuite/20_util/tuple/60497.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209381 138bc75d-0d04-0410-961f-82ee72b054a4
Check optimize_insn_for_speed_p in *fixuns_trunc<mode>_1

Since fixuns_trunc<mode>si2 expander checks optimize_insn_for_size_p
before generating *fixuns_trunc<mode>_1,  we should use
optimize_insn_for_speed_p in *fixuns_trunc<mode>_1 for consistency.

	PR target/60827
	* config/i386/i386.md (*fixuns_trunc<mode>_1): Check
	optimize_insn_for_speed_p instead of
	optimize_function_for_speed_p.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209383 138bc75d-0d04-0410-961f-82ee72b054a4
Revert the last change on *fixuns_trunc<mode>_1

	PR target/60827
	* config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last
	change.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209385 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-14  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (ipa_sra_preliminary_function_checks): Skip
	DECL_DISREGARD_INLINE_LIMITS functions.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209386 138bc75d-0d04-0410-961f-82ee72b054a4
	* ipa-utils.c (ipa_merge_profiles): Merge profile_id.
	* coverage.c (coverage_compute_profile_id): Handle externally visible
	symbols.

	* lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
	tp_first_run.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209387 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/i386.c (examine_argument): Return bool.  Return true if
	parameter should be passed in memory.
	<case X86_64_COMPLEX_X87_CLASS>: Adjust.
	(construct_container): Update calls to examine_argument.
	(function_arg_advance_64): Ditto.
	(return_in_memory_32): Merge with ix86_return_in_memory.
	(return_in_memory_64): Ditto.
	(return_in_memory_ms_64): Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209388 138bc75d-0d04-0410-961f-82ee72b054a4
	PR lto/60820
	* varpool.c (varpool_remove_node): Do not alter decls when streaming.


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

	* tree.h (TYPE_IDENTIFIER): Declare.
	* tree.c (subrange_type_for_debug_p): Use it.
	* godump.c (go_format_type): Likewise.
	* dwarf2out.c (is_cxx_auto, modified_type_die,
	gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
	* dbxout.c (dbxout_type, dbxout_symbol): Likewise.

/cp
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
      	    
/objcp
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* objcp-decl.h (OBJC_TYPE_NAME, OBJC_SET_TYPE_NAME): Use
	TYPE_IDENTIFIER.

/ada
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity, components_to_record):
	Use TYPE_IDENTIFIER.
	* gcc-interface/utils.c (make_aligning_type, maybe_pad_type,
	finish_record_type, rest_of_record_type_compilation): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209390 138bc75d-0d04-0410-961f-82ee72b054a4
	* ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
	cxa_pure_virtual).


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209391 138bc75d-0d04-0410-961f-82ee72b054a4
Sync to current external repository.

user:        Ian Lance Taylor <iant@golang.org>
date:        Thu Apr 10 09:25:24 2014 -0700
files:       go/expressions.cc
description:
compiler: add checks for constant overflow

Prevent extremely large constants from eating all of memory.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Apr 07 16:57:09 2014 -0700
files:       go/gogo-tree.cc go/gogo.cc go/gogo.h go/statements.cc
description:
compiler: Use backend interface for variable initialization.


user:        Chris Manghane <cmang@golang.org>
date:        Thu Apr 03 19:56:05 2014 -0700
files:       go/backend.h go/gogo-tree.cc go/gogo.cc go/gogo.h
description:
compiler: Use backend interface to build function code.


changeset:   1269:6e30875d539e
user:        Chris Manghane <cmang@golang.org>
date:        Wed Apr 02 13:16:00 2014 -0700
files:       go/backend.h go/gogo-tree.cc go/gogo.cc go/gogo.h
description:
compiler: Use backend interface for building function defer wrappers.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 31 12:42:49 2014 -0700
files:       go/expressions.cc go/gogo-tree.cc go/gogo.cc go/gogo.h
description:
compiler: Use backend interface for memory allocation.


user:        Chris Manghane <cmang@golang.org>
date:        Thu Mar 27 14:22:49 2014 -0700
files:       go/backend.h go/expressions.cc go/expressions.h
description:
compiler: Use backend interface for fixed array construction.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 17 21:25:04 2014 -0700
files:       go/expressions.cc
description:
compiler: Check for loops in self-referential array types. Fixes issue 7525.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 17 14:31:59 2014 -0700
files:       go/gogo.cc go/parse.cc
description:
compiler: Don't declare blank labels. Fixes issue 7539.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 17 13:12:32 2014 -0700
files:       go/backend.h go/expressions.cc go/expressions.h go/runtime.def
description:
compiler: Use backend interface for call expressions.


user:        Chris Manghane <cmang@golang.org>
date:        Wed Mar 12 13:34:27 2014 -0700
files:       go/expressions.cc go/expressions.h go/gogo-tree.cc go/statements.cc
description:
compiler: Use backend interface map construction.


user:        Chris Manghane <cmang@golang.org>
date:        Tue Mar 11 12:53:06 2014 -0700
files:       go/backend.h go/expressions.cc go/gogo-tree.cc go/gogo.h
description:
compiler: Use backend interface for string expressions.


user:        Chris Manghane <cmang@golang.org>
date:        Sat Mar 08 15:56:59 2014 -0800
files:       go/backend.h go/expressions.cc go/expressions.h
description:
compiler: Use backend interface for array and string indexing.


user:        Chris Manghane <cmang@golang.org>
date:        Fri Mar 07 16:02:18 2014 -0800
files:       go/expressions.cc
description:
compiler: Use backend interface for constant expressions.


user:        Chris Manghane <cmang@golang.org>
date:        Thu Mar 06 16:00:18 2014 -0800
files:       go/expressions.cc
description:
compiler: Use backend interface for struct construction.


user:        Chris Manghane <cmang@golang.org>
date:        Wed Mar 05 13:09:37 2014 -0800
files:       go/expressions.cc
description:
compiler: Use backend interface for type conversions.


user:        Chris Manghane <cmang@golang.org>
date:        Tue Mar 04 07:03:47 2014 -0800
files:       go/expressions.cc go/expressions.h go/gogo-tree.cc go/gogo.h go/runtime.def libgo/runtime/chan.c
description:
compiler: Use backend interface for channel receive.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 03 15:18:57 2014 -0800
files:       go/backend.h go/expressions.cc go/runtime.def
description:
compiler: Use backend interface for builtin calls.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 03 07:44:35 2014 -0800
files:       go/expressions.cc go/expressions.h go/types.cc go/types.h
description:
compiler: Use backend interface for string info.


user:        Chris Manghane <cmang@golang.org>
date:        Fri Feb 28 10:45:55 2014 -0800
files:       go/expressions.cc go/expressions.h go/gogo-tree.cc go/statements.cc
description:
compiler: Use backend interface for map indexing.


user:        Chris Manghane <cmang@golang.org>
date:        Wed Feb 26 14:13:10 2014 -0800
files:       go/expressions.cc go/expressions.h
description:
compiler: Use backend interface for slice value expressions.


user:        Chris Manghane <cmang@golang.org>
date:        Wed Feb 26 13:12:19 2014 -0800
files:       go/backend.h go/expressions.cc go/expressions.h go/gogo-tree.cc go/runtime.def go/statements.cc
description:
compiler: Use backend interface for interface values.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Feb 24 12:30:13 2014 -0800
files:       go/expressions.cc go/expressions.h go/parse.cc go/statements.cc
description:
compiler: Change Heap_composite_expression to Heap_expression.


user:        Chris Manghane <cmang@golang.org>
date:        Thu Feb 20 19:47:06 2014 -0800
files:       go/expressions.cc go/expressions.h go/gogo-tree.cc go/gogo.cc go/gogo.h go/types.cc go/types.h
description:
compiler: Use backend interface for interface method table expressions.


user:        Chris Manghane <cmang@golang.org>
date:        Mon Feb 03 14:36:20 2014 -0800
files:       go/expressions.cc go/expressions.h
description:
compiler: Add compound expressions to the frontend.


	* go-gcc.cc: Include "convert.h".
	(Gcc_backend::string_constant_expression): New function.
	(Gcc_backend::real_part_expression): Likewise.
	(Gcc_backend::imag_part_expression): Likewise.
	(Gcc_backend::complex_expression): Likewise.
	(Gcc_backend::constructor_expression): Likewise.
	(Gcc_backend::array_constructor_expression): Likewise.
	(Gcc_backend::pointer_offset_expression): Likewise.
	(Gcc_backend::array_index_expression): Likewise.
	(Gcc_backend::call_expression): Likewise.
	(Gcc_backend::exception_handler_statement): Likewise.
	(Gcc_backend::function_defer_statement): Likewise.
	(Gcc_backend::function_set_parameters): Likewise.
	(Gcc_backend::function_set_body): Likewise.
	(Gcc_backend::convert_expression): Handle various type
	conversions.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209393 138bc75d-0d04-0410-961f-82ee72b054a4
N3887 Consistent Metafunction Aliases

	* include/std/tuple (tuple_element_t): Define.
	* testsuite/20_util/tuple/tuple_element.cc: Change to compile-only
	test.
	* testsuite/20_util/tuple/tuple_element_t.cc: New.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209399 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-15  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* c-c++-common/asan/null-deref-1.c: Change regexp to pass test
	under qemu-arm.
	* c-c++-common/ubsan/div-by-zero-1.c: Likewise.
	* c-c++-common/ubsan/div-by-zero-2.c: Likewise.
	* c-c++-common/ubsan/div-by-zero-3.c: Likewise.
	* c-c++-common/ubsan/load-bool-enum.c (foo): Likewise.
	* c-c++-common/ubsan/null-1.c: Likewise.
	* c-c++-common/ubsan/null-10.c: Likewise.
	* c-c++-common/ubsan/null-11.c: Likewise.
	* c-c++-common/ubsan/null-2.c: Likewise.
	* c-c++-common/ubsan/null-3.c: Likewise.
	* c-c++-common/ubsan/null-4.c: Likewise.
	* c-c++-common/ubsan/null-5.c: Likewise.
	* c-c++-common/ubsan/null-6.c: Likewise.
	* c-c++-common/ubsan/null-7.c: Likewise.
	* c-c++-common/ubsan/null-8.c: Likewise.
	* c-c++-common/ubsan/null-9.c: Likewise.
	* c-c++-common/ubsan/overflow-add-2.c: Likewise.
	* c-c++-common/ubsan/overflow-int128.c: Likewise.
	* c-c++-common/ubsan/overflow-mul-2.c: Likewise.
	* c-c++-common/ubsan/overflow-mul-4.c: Likewise.
	* c-c++-common/ubsan/overflow-negate-1.c: Likewise.
	* c-c++-common/ubsan/overflow-sub-2.c: Likewise.
	* c-c++-common/ubsan/pr59333.c: Likewise.
	* c-c++-common/ubsan/pr59667.c: Likewise.
	* c-c++-common/ubsan/pr60613-2.c: Likewise.
	* c-c++-common/ubsan/pr60636.c: Likewise.
	* c-c++-common/ubsan/shift-1.c: Likewise.
	* c-c++-common/ubsan/shift-2.c: Likewise.
	* c-c++-common/ubsan/vla-1.c: Likewise.


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