[ARM] gnu11 cleanup for aapcs testcases

gcc/testsuite/
   * gcc.target/arm/aapcs/abitest.h: Declare memcpy.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216675 138bc75d-0d04-0410-961f-82ee72b054a4
Fix error in earlier ChangeLog entry: s/define/undefine/.


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

gcc/fortran
        * check.c (check_co_collective): Reject coindexed A args.
        (gfc_check_co_reduce): Add OPERATOR checks.
        * gfortran.texi (_gfortran_caf_co_broadcast,
        * _gfortran_caf_co_max,
        _gfortran_caf_co_min, _gfortran_caf_co_sum,
        _gfortran_caf_co_reduce): Add ABI documentation.
        * intrinsic.texi (CO_REDUCE): Document intrinsic.
        (DPROD): Returns double not single precision.
        * trans-decl.c (gfor_fndecl_co_reduce): New global var.
        (gfc_build_builtin_function_decls): Init it.
        * trans.h (gfor_fndecl_co_reduce): Declare it.
        * trans-intrinsic.c (conv_co_collective,
        gfc_conv_intrinsic_subroutine): Handle CO_REDUCE.

gcc/testsuite/
        * gfortran.dg/coarray_collectives_9.f90: Remove dg-error.
        * gfortran.dg/coarray_collectives_13.f90: New.
        * gfortran.dg/coarray_collectives_14.f90: New.
        * gfortran.dg/coarray_collectives_15.f90: New.
        * gfortran.dg/coarray_collectives_16.f90: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216678 138bc75d-0d04-0410-961f-82ee72b054a4
C++11 explicitly forbids macros for bool, true and false.

gcc:
	* ginclude/stdbool.h: Do not define bool, true or false in C++11.

libstdc++-v3:
	* testsuite/18_support/headers/cstdbool/macros.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216679 138bc75d-0d04-0410-961f-82ee72b054a4
	* dwarf2out.c (declare_in_namespace): Only emit external
	declarations in the local scope once.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216686 138bc75d-0d04-0410-961f-82ee72b054a4
Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use.

Continuing the cleanups of libgcc soft-fp configuration for
powerpc*-*-linux* in preparation for implementing
TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch
optimizes the choice of which functions to build for the 32-bit
classic hard-float and soft-float cases.  (e500 will be dealt with in
a separate patch which will need to add new features to t-hardfp and
t-softfp; this patch keeps the status quo for e500.)

For hard-float, while the functions in question are part of the libgcc
ABI there is no need for them to contain software floating point code:
no newly built code should use them, and if anything does use them
it's most efficient (space and speed) for them to pass straight
through to floating-point hardware instructions; this case is made to
use t-hardfp to achieve that.  For soft-float, direct use of soft-fp
functions for operations involving DImode or unsigned integers is more
efficient than using the libgcc2.c versions of those operations to
convert to operations on other types (which then end up calling
soft-fp functions for those other types, possibly more than once);
this case is thus stopped from using t-softfp-excl.  (A future patch
will stop the e500 cases from using t-softfp-excl as well.)

Tested with no regressions for crosses to powerpc-linux-gnu (soft
float and classic hard float); also checked that the same set of
symbols and versions is exported from shared libgcc before and after
the patch.

	* configure.ac (ppc_fp_type): Set variable on powerpc*-*-linux*.
	* configure: Regenerate.
	* config.host (powerpc*-*-linux*): Use $ppc_fp_type to determine
	additions to tmake_file.  Use t-hardfp-sfdf and t-hardfp instead
	of soft-fp for 32-bit classic hard float.  Do not use
	t-softfp-excl for soft float.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216687 138bc75d-0d04-0410-961f-82ee72b054a4
Only allow e500 double in SPE_SIMD_REGNO_P registers.

rs6000_hard_regno_nregs_internal allows SPE vectors in single
registers satisfying SPE_SIMD_REGNO_P (i.e. register numbers 0 to
31).  However, the corresponding test for e500 double treats all
registers as being able to store a 64-bit value, rather than just
those GPRs.

Logically this inconsistency is wrong; in addition, it causes problems
unwinding from signal handlers.  linux-unwind.h uses
ARG_POINTER_REGNUM as a place to store the return address from a
signal handler, but this logic in rs6000_hard_regno_nregs_internal
results in that being considered an 8-byte register, resulting in
assertion failures.
(<https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02625.html> first
needs to be applied for unwinding to work in general on e500.)  This
patch makes rs6000_hard_regno_nregs_internal handle the e500 double
case consistently with SPE vectors.

Tested with no regressions with cross to powerpc-linux-gnuspe (given
the aforementioned patch applied).  Failures of signal handling
unwinding tests such as gcc.dg/cleanup-{8,9,10,11}.c are fixed by this
patch.

	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
	not allow e500 double in registers not satisyfing
	SPE_SIMD_REGNO_P.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216688 138bc75d-0d04-0410-961f-82ee72b054a4
	PR rtl-optimization/63615
	* simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
	decomposing PLUS or MINUS if operands are not placed adjacent
	in the "ops" array.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216689 138bc75d-0d04-0410-961f-82ee72b054a4
Add forgotten "configure: regenerate" stanza to last CL entry.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216690 138bc75d-0d04-0410-961f-82ee72b054a4
2014-10-25  François Dumont  <fdumont@gcc.gnu.org>

	* doc/xml/manual/status_cxx2011.xml: Update unordered container
	specific behavior.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216692 138bc75d-0d04-0410-961f-82ee72b054a4
	PR tree-optimization/63641
	* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
	to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).

	* gcc.c-torture/execute/pr63641.c: New test.


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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216696 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/m68k/m68k.c: Include rtl-iter.h.
	(m68k_final_prescan_insn_1): Delete.
	(m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216699 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
	(m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216700 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
	rtx as argument and return the number of changes.
	* config/sh/sh.c: Include rtl-iter.h.
	(shmedia_cleanup_truncate): Take an rtx as argument and iterate
	over all subrtxes.  Return the number of changes made.
	* config/sh/sh.md: Update caller accordingly.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216701 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/sh/sh.c (sh_contains_memref_p_1): Delete.
	(sh_contains_memref_p): Use FOR_EACH_SUBRTX.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216702 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/xtensa/xtensa.c: Include rtl-iter.h.
	(xtensa_tls_referenced_p_1): Delete.
	(xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216703 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/mep/mep.c: Include rtl-iter.h.
	(global_reg_mentioned_p_1): Take a const_rtx and return a bool.
	(xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.


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