2014-11-25  Andrew Pinski <apinski@cavium.com>

        * gcc.c-torture/execute/20141125-1.c: New testcase.



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

	PR tree-optimization/62238
	* tree-predcom.c (ref_at_iteration): Unshare the expression
	before gimplifying it.
	(prepare_initializers_chain): Discard unused seq.

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


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218074 138bc75d-0d04-0410-961f-82ee72b054a4
DWARF add DW_AT_noreturn on noreturn function subprogram.

This implements the DWARFv5 noreturn proposal:
http://dwarfstd.org/ShowIssue.php?issue=140331.1

TREE_THIS_VOLATILE on a FUNCTION_DECL node means the function does not
return normally. This catches the traditional noreturn GNU attribute,
the C11 _Noreturn keyword and the C++11 [[noreturn]] attribute.

This relies on the DW_AT_noreturn constant defined in the DWARFv5 DRAFT:
http://www.dwarfstd.org/doc/dwarf5.20141029.pdf

gcc/ChangeLog

	* dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
	function decl has TREE_THIS_VOLATILE.

gcc/testsuite/ChangeLog

	* g++.dg/debug/dwarf2/noreturn-function.C: New test.
	* gcc.dg/debug/dwarf2/noreturn-function-attribute.c: Likewise.
	* gcc.dg/debug/dwarf2/noreturn-function-keyword.c: Likewise.

include/ChangeLog

	* dwarf2.def (DW_AT_noreturn): New DWARF5 attribute.

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

	* gimple-fold.c (get_symbol_constant_value): Allow all
	GIMPLE register type zero-constants.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218076 138bc75d-0d04-0410-961f-82ee72b054a4
PR debug/38757 continued. Handle C11, C++11 and C++14.

Add experimental (minimal) DWARFv5 support.

This change depends on the new DWARFv5 constants mentioned in the
following draft: http://dwarfstd.org/doc/dwarf5.20141029.pdf

gcc/ChangeLog

	* doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
	* opts.c (common_handle_option): Accept -gdwarf-5.
	* dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
	DW_LANG_C_plus_plus_14.
	(lower_bound_default): Likewise. Plus DW_LANG_C11.
	(gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
	DW_LANG_C_plus_plus_14 or DW_LANG_C11.
	(output_compilation_unit_header): Output at most a DWARFv4 header.
	(output_skeleton_debug_sections): Likewise.
	(output_line_info): Likewise.
	(output_aranges): Document header version number.

gcc/testsuite/ChangeLog

	* gcc.dg/debug/dwarf2/lang-c11.c: New test.
	* gcc.dg/debug/dwarf2/lang-c11-d4-strict.c: Likewise.
	* g++.dg/debug/dwarf2/lang-cpp11.C: Likewise.
	* g++.dg/debug/dwarf2/lang-cpp14.C: Likewise.
	* g++.dg/debug/dwarf2/lang-cpp98.C: Likewise.

include/ChangeLog

	* dwarf2.h: Add DW_LANG_C_plus_plus_11, DW_LANG_C11 and
	DW_LANG_C_plus_plus_14.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218077 138bc75d-0d04-0410-961f-82ee72b054a4
Skip gcc.target/i386/mcount_pic.c on Solaris

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218080 138bc75d-0d04-0410-961f-82ee72b054a4
XFAIL 27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc on Solaris (PR libstd++/64054)

	PR libstdc++/64054
	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
	XFAIL execution on *-*-solaris*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218081 138bc75d-0d04-0410-961f-82ee72b054a4
ChangeLog for last commit.

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

	PR lto/64075
	* tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
	proper size for function_code bitfield.
	(pack_ts_function_decl_value_fields): Likewise.

gcc/testsuite/

	PR lto/64075
	* gcc.dg/pr64075.c: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218083 138bc75d-0d04-0410-961f-82ee72b054a4
	PR sanitizer/63788
	* asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
	var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
	(ATTR_PURE_NOTHROW_LEAF_LIST): Define.


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

	PR bootstrap/63995
	* tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
	debug statement when searching for a new position for
	bounds load/creation statement.

gcc/testsuite/

	PR bootstrap/63995
	* gcc.target/i386/pr63995-2.c: New.



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

	* fold-const.h (const_unop): Declare.
	(const_binop): Likewise.
	* fold-const.c (const_binop): Export overload that expects
	a type parameter and dispatches to fold_relational_const as well.
	Check both operand kinds for guarding the transforms.
	(const_unop): New function, with constant folding from fold_unary_loc.
	(fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
	Remove constant folding done there from the simplifications.
	(fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
	(fold_negate_expr): Remove dead code from the REAL_CST case.
	Avoid building garbage in the COMPLEX_CST case.
	* gimple-match-head.c (gimple_resimplify1): Dispatch to
	const_unop.
	(gimple_resimplify2): Dispatch to const_binop.
	(gimple_simplify): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218086 138bc75d-0d04-0410-961f-82ee72b054a4
	Diagnose string constant conversion to char* in c++11 and above
	as forbidden, not deprecated.
	* typeck.c (string_conv_p): Do a pedwarn in c++11 and above,
	change the diagnostic for the Wwrite-strings case for c++11 and above.

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

	PR middle-end/63738
	* tree-data-ref.c (split_constant_offset_1): Do not follow
	SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.

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


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

	PR c++/59114
	* g++.dg/cpp0x/auto43.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218090 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR ipa/61190
        * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
        (cgraph_node::function_or_virtual_thunk_symbol): New function.
        (cgraph_node::call_for_symbol_and_aliases): Fix comment.
        (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
        Add new optional parameter exclude_virtual_thunks.
        * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
        optional parameter exclude_virtual_thunks.
        (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
        (cgraph_node::set_pure_flag): Likewise.
        (cgraph_node::function_symbol): Simplified.
        (cgraph_node::function_or_virtual_thunk_symbol): New function.
        * ipa-pure-const.c (analyze_function): For virtual thunks set
        pure_const_state to IPA_NEITHER.
        (propagate_pure_const): Use function_or_virtual_thunk_symbol.

testsuite/ChangeLog:
2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR ipa/61190
        * g++.old-deja/g++.mike/p4736b.C: Use -O2.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218091 138bc75d-0d04-0410-961f-82ee72b054a4
	* constexpr.c (cxx_eval_call_expression): Don't talk about
	flowing off the end if we're already non-constant.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218092 138bc75d-0d04-0410-961f-82ee72b054a4
	* constexpr.c (cxx_eval_constant_expression) [SAVE_EXPR]: Avoid
	multiple evaluation.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218094 138bc75d-0d04-0410-961f-82ee72b054a4
	* testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
	to dg-options unless expensive testing is on.  
	(TESTITERS): Define to N if not defined.
	(main): Use TESTITERS instead of N.
	* testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
	dg-additional-options depending on whether expensive testing is on.
	* testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
	Decrease N to 100000 and CHUNKSZ to 10000.


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