* builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
	* gcc.c (sanitize_spec_function): Likewise.
	* convert.c (convert_to_integer): Include "ubsan.h".  Add
	floating-point to integer instrumentation.
	* doc/invoke.texi: Document -fsanitize=float-cast-overflow.
	* flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
	SANITIZE_NONDEFAULT.
	* opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
	BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
	* ubsan.c: Include "realmpfr.h" and "dfp.h".
	(get_ubsan_type_info_for_type): Handle REAL_TYPEs.
	(ubsan_type_descriptor): Set tkind to 0xffff for types other than
	float/double/long double.
	(ubsan_instrument_float_cast): New function.
	* ubsan.h (ubsan_instrument_float_cast): Declare.
testsuite/
	* c-c++-common/ubsan/float-cast-overflow-1.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-10.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-2.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-3.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-4.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-5.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-6.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-7.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-7.h: New file.
	* c-c++-common/ubsan/float-cast-overflow-8.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-9.c: New test.
	* c-c++-common/ubsan/float-cast.h: New file.
	* g++.dg/ubsan/float-cast-overflow-bf.C: New test.
	* gcc.dg/ubsan/float-cast-overflow-bf.c: New test.
libsanitizer/
	* ubsan/ubsan_value.cc (getFloatValue): Handle 96-bit
	floating-point types.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210862 138bc75d-0d04-0410-961f-82ee72b054a4
2014-05-23  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/61215
	* gcc.target/i386/pr61215.c: New.



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

	PR tree-optimization/53787
	* params.def (PARAM_IPA_MAX_AA_STEPS): New param.
	* ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
	analysis_done, update all uses.
	* ipa-prop.c: Include domwalk.h
	(param_analysis_info): Removed.
	(param_aa_status): New type.
	(ipa_bb_info): Likewise.
	(func_body_info): Likewise.
	(ipa_get_bb_info): New function.
	(aa_overwalked): Likewise.
	(find_dominating_aa_status): Likewise.
	(parm_bb_aa_status_for_bb): Likewise.
	(parm_preserved_before_stmt_p): Changed to use new param AA info.
	(load_from_unmodified_param): Accept func_body_info as a parameter
	instead of parms_ainfo.
	(parm_ref_data_preserved_p): Changed to use new param AA info.
	(parm_ref_data_pass_through_p): Likewise.
	(ipa_load_from_parm_agg_1): Likewise.  Update callers.
	(compute_complex_assign_jump_func): Changed to use new param AA info.
	(compute_complex_ancestor_jump_func): Likewise.
	(ipa_compute_jump_functions_for_edge): Likewise.
	(ipa_compute_jump_functions): Removed.
	(ipa_compute_jump_functions_for_bb): New function.
	(ipa_analyze_indirect_call_uses): Likewise, moved variable
	declarations down.
	(ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
	and info, moved variable declarations down.
	(ipa_analyze_call_uses): Accept and pass on func_body_info instead of
	node and info.
	(ipa_analyze_stmt_uses): Likewise.
	(ipa_analyze_params_uses): Removed.
	(ipa_analyze_params_uses_in_bb): New function.
	(ipa_analyze_controlled_uses): Likewise.
	(free_ipa_bb_info): Likewise.
	(analysis_dom_walker): New class.
	(ipa_analyze_node): Handle node-specific forbidden analysis,
	initialize and free func_body_info, use dominator walker.
	(ipcp_modif_dom_walker): New class.
	(ipcp_transform_function): Create and free func_body_info, use
	ipcp_modif_dom_walker, moved a lot of functionality there.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210864 138bc75d-0d04-0410-961f-82ee72b054a4
[PATCH 1/9] rs6000: Clean up the "type" attribute

Get rid of the one huge line.  Group and order things a bit.  Further
changes will follow so this doesn't try to make it perfect.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210865 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: New type attribute value "halfmul"

This is for the legacy integer multiply-accumulate instructions.
Quite a mouthful, and "mulhw" is also a terrible name since we already
have a machine instruction called exactly that.  Hence "halfmul".

Also fixes the titan automaton description for this.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210866 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all multiply instructions one type

This uses the attributes "size" and "dot" to specify the differences:

	imul3 -> mul size=8
	imul2 -> mul size=16
	imul -> mul size=32
	lmul -> mul size=64
	imul_compare -> mul size=32 dot=yes
	lmul_compare -> mul size=64 dot=yes


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210867 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all insert instructions one type

This uses the attribute "size" to specify the differences:

	insert_word  -> insert size=32
	insert_dword -> insert size=64

It could use "dot" as well, but the current code doesn't handle that.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210868 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all divide instructions one type

This uses the attribute "size" to specify the differences:

	idiv -> div size=32
	ldiv -> div size=64

It could use "dot" as well, but the current code doesn't handle that.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210869 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all shift instructions one type

This uses the attributes "var_shift" and "dot" to specify the differences:

	var_shift_rotate    -> shift var_shift=yes
	delayed_compare     -> shift var_shift=no  dot=yes
	var_delayed_compare -> shift var_shift=yes dot=yes


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210870 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all add instructions one type

They are currently just "integer", but the dot version is fast_compare.
This makes them all "add".  Later we should introduce attributes to
distinguish e.g. addc and adde (which aren't currently handled as
separate instructions at all, only in groups).


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210871 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all logical instructions one type

They are currently just "integer", but the dot version is fast_compare.
This makes them all "logical".


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210872 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all rlw*nm and rld*c* type shift

They are often labeled just "integer" currently.  Fix that.

Also handle shift properly in those scheduling descriptions that
neglected it.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210873 138bc75d-0d04-0410-961f-82ee72b054a4
2014-05-23  Tobias Burnus  <burnus@net-b.de>

        * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
        * gfortran.texi: Ditto.



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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210885 138bc75d-0d04-0410-961f-82ee72b054a4
	* class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
	ignoring other target adjustments.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210886 138bc75d-0d04-0410-961f-82ee72b054a4
	* rtti.c: Include tm_p.h
	(emit_tinfo_decl): Force RTTI data to be aligned to required
	ABI alignment only.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210887 138bc75d-0d04-0410-961f-82ee72b054a4
	* texi2pod.pl: Force .pod file to not be a numbered list.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210889 138bc75d-0d04-0410-961f-82ee72b054a4
Merge remote-tracking branch 'gnu/master' into 4.10.0