* decl.c (variable_decl): Reject old style initialization
	for derived type components.

	* gfortran.dg/oldstyle_5.f: New test.


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

* mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
(make_preds_opaque): Delete.
(clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
(commit_mode_sets): New function.
(optimize_mode_switching): Handle current_mode to mode_switching_emit.
Process all modes at once.
* basic-block.h (pre_edge_lcm_avs): Declare.
* lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
Call clear_aux_for_edges. Fix comments.
(pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
(pre_edge_rev_lcm): Idem.
* config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode parameter.
* config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
* config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute): Idem.
* config/i386/i386.c (x96_emit_mode_set): Idem.
* config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
* config/sh/sh.md (toggle_pr): 	Defined if TARGET_FPU_SINGLE.
(fpscr_toggle) Disallow from delay slot.
* target.def (emit_mode_set): Add prev_mode parameter.
* doc/tm.texi: Regenerate.



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

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

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

runtime: Don't free tiny blocks in map deletion.

The memory allocator now has a special case for tiny blocks
(smaller than 16 bytes) and they can not be explicitly freed.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212233 138bc75d-0d04-0410-961f-82ee72b054a4
	* c-decl.c (duplicate_decls): CLear DECL_STRUCT_FUNCTION before
	releasing symbol.

	* gcc.c-torture/compile/section.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212234 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/fpu-sysv.h (void set_fpu): Remove stalled comment.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212235 138bc75d-0d04-0410-961f-82ee72b054a4
Only transform rotate to rotatert and v.v. if target has both

Many targets do not have both rotate and rotatert.  Of the 47 targets
in the tree, 17 have both, 9 have only rotate, 2 have only rotatert, and
19 have neither (this is based on "grep -wil" so it can be slightly off).

rs6000 has only rotate, and mips has only rotatert.  For such targets
simplifying rotate to rotatert and vice versa is not simplifying things
at all.  rs6000 has already way too many rotate patterns (some days it
seems like two thousand, but it is somewhat less in reality still); I
would prefer not to double that again.

So, this patch makes genrecog define HAVE_rotate and HAVE_rotatert if
those RTL codes are mentioned anywhere in the machine description, and
then does the transformation in simplify-rtx.c only if both these flags
are set.


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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212253 138bc75d-0d04-0410-961f-82ee72b054a4
ChangeLog:
2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* loop-invariant.c (struct invariant): Add a new member: eqno;
	(find_identical_invariants): Update eqno;
	(create_new_invariant): Init eqno;
	(get_inv_cost): Compute comp_cost with eqno;


testsuite/ChangeLog:
2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* gcc.target/arm/identical-invariants.c: New test.


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

        * scanner.c (skip_free_comments): Fix indentation.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212257 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
	BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
	endianness.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212258 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/invoke.texi (-fsanitize=bounds): Tweak wording.
	(-fsanitize=float-divide-by-zero): Move to the table with
	-fsanitize=undefined suboptions.
	(-fsanitize=float-cast-overflow): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212260 138bc75d-0d04-0410-961f-82ee72b054a4
	* gfortran.dg/ieee/ieee_1.F90: Mark variables as volatile to
	avoid optimization.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212261 138bc75d-0d04-0410-961f-82ee72b054a4
Functions renamed.
	* gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
	* data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
	HWI 1 and negate the unsigned value.
	* expmed.c (expand_sdiv_pow2): For modes wider than word always
	use AND instead of shift.
	* wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
c-family/
	* c-ada-spec.c (dump_ada_nodes): Don't call qsort if 
	comments->count <= 1, as comments->entries might be NULL.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212264 138bc75d-0d04-0410-961f-82ee72b054a4
symtab_node::cgraph nad symtab_node::varpool removed.
	* arm.md (arch): Add armv6_or_vfpv3.
	(arch_enabled): Add test for the above.
	* vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
	on VFP9.
	(sqrtsf_vfp, sqrtdf_vfp): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212265 138bc75d-0d04-0410-961f-82ee72b054a4
Explain gfortran-dg-runtest usage in libgomp Fortran testing.

	libgomp/
	* testsuite/libgomp.fortran/fortran.exp: Explain
	gfortran-dg-runtest usage.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212266 138bc75d-0d04-0410-961f-82ee72b054a4
Fix the shift patterns, and add test

Firstly, it adds back the split conditions that I accidentally removed.
Without it the dot insns are never generated, or rather, always split
back to a separate compare instruction.

Secondly, the shift amount should be SI always, not GPR, or GCC will
insert a zero-extend at expand time that it cannot get rid of later.

The test tests whether dot-form instructions are generated for both
"dot" and "dot2" cases, that is, with just a CC output or also a GPR
output; for all four basic shifts, with a register amount or an
immediate amount.  It also tests for superfluous zero-extends.  This
also tests if combine "simplifies" the rotates to right-rotates, which
it shouldn't do anymore.


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