Commit Graph

150282 Commits

Author SHA1 Message Date
Segher Boessenkool
0f09127808 combine: Emit a barrier after unconditional trap (PR78607)
After an unconditional trap there should be a barrier.  In most cases
one is automatically inserted, but not if the trap is the final insn in
the instruction stream.  We need to emit one explicitly.


	PR rtl-optimization/78607
	* combine.c (try_combine): Emit a barrier after a unconditional trap.

gcc/testsuite/
	PR rtl-optimization/78607
	* gcc.c-torture/compile/pr78607.c: New testcase.

From-SVN: r243092
2016-12-01 03:04:10 +01:00
GCC Administrator
e95a3eb3c6 Daily bump.
From-SVN: r243091
2016-12-01 00:16:23 +00:00
Joseph Myers
0f52035658 * es.po: Update.
From-SVN: r243085
2016-11-30 22:13:49 +00:00
Ian Lance Taylor
24f1d7f80e runtime: print C functions in traceback
Since gccgo can trace back through C code as easily as Go code, we
    should print C functions in the traceback.
    
    This worked before https://golang.org/cl/31230 for a dumb reason.  The
    default value for runtime.traceback_cache was, and is, 2 << 2, meaning
    to print all functions.  The old C code for runtime_parsedebugvars
    would return immediately and do nothing if the environment variable
    GODEBUG was not set (if GODEBUG was set it would later call
    setTraceback.  The new Go code for runtime.parsedebugvars does not
    return immediately if GODEBUG is not set, and always calls
    setTraceback.  Either way, if GOTRACEBACK is not set, setTraceback
    would set traceback_cache to 1 << 2, meaning to only print non-runtime
    functions and having the effect of not printing plain C functions.
    
    Keep the current handling of GODEBUG/GOTRACEBACK, which matches the gc
    library, but add an extra check to print C functions by default.
    
    Reviewed-on: https://go-review.googlesource.com/33717

From-SVN: r243083
2016-11-30 20:28:28 +00:00
Uros Bizjak
df3f127712 * testsuite/ChangeLog: Fix some entries.
From-SVN: r243082
2016-11-30 20:38:55 +01:00
Martin Sebor
1124cf27b9 PR tree-optimization/78586 - [7 Regression] Wrong code caused by printf-return-value
gcc/testsuite/ChangeLog:

	PR tree-optimization/78586
	* gcc.dg/tree-ssa/builtin-sprintf-2.c: New test cases.

From-SVN: r243081
2016-11-30 12:16:03 -07:00
Michael Meissner
bc28bbb60e re PR target/78602 (PowerPC vec-extract-v2df.c can fail if -mcpu=power9 -O0)
2016-11-30  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/78602
	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the
	element is not a constant or in a register, force it to a
	register.

	PR target/78560
	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value
	that will be set to a vector element to be in a register.
	* config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used
	the wrong multiplier to convert the element number to a byte
	offset.

From-SVN: r243044
2016-11-30 18:43:17 +00:00
Alexander Monakov
630e3c3ad6 libgomp: move data definitions from icv.c back to env.c
* config/nvptx/env.c: Delete.
	* icv.c: Move definitions of ICV variables back ...
	* env.c: ...here.  Do not compile environment-related functionality if
	LIBGOMP_OFFLOADED_ONLY is set.

From-SVN: r243041
2016-11-30 21:23:00 +03:00
Alexander Monakov
9e38af5c55 libgomp: introduce LIBGOMP_OFFLOADED_ONLY macro
* configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it...
	(LIBGOMP_OFFLOADED_ONLY): ...here; new define.
	* configure: Regenerate.
	* config.h.in: Likewise.

From-SVN: r243040
2016-11-30 21:08:30 +03:00
Alexander Monakov
f96b7f1f47 libgomp: regenerate with automake-1.11.6
* Makefile.in: Regenerate with automake-1.11.6.
	* aclocal.m4: Likewise.
	* configure: Likewise.
	* testsuite/Makefile.in: Likewise.

From-SVN: r243039
2016-11-30 21:05:33 +03:00
Vladimir Makarov
f7abdf36e5 re PR tree-optimization/77856 (wrong code at -O2 on x86_64-linux-gnu in 32-bit mode)
2016-11-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR tree-optimization/77856
	* lra-constraints.c (inherit_in_ebb): Check original regno for
	invalid invariant regs too.  Set only clobbered hard regs for the
	invalid invariant regs.

2016-11-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR tree-optimization/77856
	* gcc.target/i386.c (pr77856.c): New.

From-SVN: r243038
2016-11-30 17:35:40 +00:00
Matthias Klose
de683d58cf configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking for the existence of the...
2016-11-30  Matthias Klose  <doko@ubuntu.com>

        * configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking
        for the existence of the pkg-config modules.
        * Regenerate.

From-SVN: r243037
2016-11-30 16:39:30 +00:00
Ville Voutilainen
3ba9051e44 Fix testsuite failures caused by the patch implementing LWG 2534.
* include/std/istream (__is_convertible_to_basic_istream):
Change the return types of __check, introduce istream_type.
(operator>>(_Istream&&, _Tp&&)):
Use __is_convertible_to_basic_istream::istream_type as the return type.
* include/std/ostream (__is_convertible_to_basic_ostream):
Change the return types of __check, introduce ostream_type.
(operator>>(_Ostream&&, _Tp&&)):
Use __is_convertible_to_basic_ostream::ostream_type as the return type.

From-SVN: r243036
2016-11-30 18:32:24 +02:00
David Edelsohn
917b47be74 * g++.dg/debug/dwarf2/ptrdmem-1.C: Don't XFAIL scan-assembler-not on AI\X.
From-SVN: r243035
2016-11-30 11:14:10 -05:00
Andre Vehreschild
8fb75185a2 single.c (_gfortran_caf_get_by_ref): Prevent compile time warning.
libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

        * caf/single.c (_gfortran_caf_get_by_ref): Prevent compile time
        warning.
        (_gfortran_caf_send_by_ref): Same.
        (_gfortran_caf_is_present): Prevent fallthrough warnings.

gcc/testsuite/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* ChangeLog: Removed wrongly placed entry.
	* gfortran.dg/coarray_lib_alloc_4.f90: New test.

From-SVN: r243034
2016-11-30 16:59:07 +01:00
Pitchumani Sivanupandi
bdc5f9370c Commit files forgotten in r242966.
2016-11-30  Pitchumani Sivanupandi  <pitchumani.sivanupandi@microchip.com>

	Commit files forgotten in r242966.

	* config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
	* config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
	* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
	prefix check to find wrap-around value, instead use MCU flash size.
	For 8k flash devices, update link_pmem_wrap spec string to
	add --pmem-wrap-around=8k.
	* config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
	here...
	(LINK_SPEC): ...to here.

From-SVN: r243033
2016-11-30 15:07:37 +00:00
David Edelsohn
82c7aae6ed new1.C: XFAIL on AIX.
* g++.dg/eh/new1.C: XFAIL on AIX.
        * g++.dg/eh/delete1.C: Same.
        * g++.dg/init/new40.C: Same.
        * g++.old-deja/g++.eh/new2.C: Same.

From-SVN: r243032
2016-11-30 10:07:28 -05:00
David Malcolm
9e604f92fd Fix typo in testcase name
gcc/testsuite/ChangeLog:

	PR c/78498
	* gcc.dg/format/pr78494.c: Rename to...
	* gcc.dg/format/pr78498.c: ...this.

From-SVN: r243031
2016-11-30 14:54:43 +00:00
David Malcolm
e613205cef libiberty: avoid reading past end of buffer in strndup/xstrndup (PR c/78498)
gcc/ChangeLog:
	PR c/78498
	* selftest.c (selftest::assert_strndup_eq): New function.
	(selftest::test_strndup): New function.
	(selftest::test_libiberty): New function.
	(selftest::selftest_c_tests): Call test_libiberty.

gcc/testsuite/ChangeLog:
	PR c/78498
	* gcc.dg/format/pr78494.c: New test case.

libiberty/ChangeLog:
	PR c/78498
	* strndup.c (strlen): Delete decl.
	(strnlen): Add decl.
	(strndup): Call strnlen rather than strlen.
	* xstrndup.c (xstrndup): Likewise.

From-SVN: r243030
2016-11-30 14:50:43 +00:00
David Edelsohn
e6383ae7a7 ref-1.C: Don't XFAIL scan-assembler-not on AIX.
* g++.dg/debug/dwarf2/ref-1.C: Don't XFAIL scan-assembler-not on AIX.
        * g++.dg/debug/dwarf2/imported-decl-2.C: Same.
        * g++.dg/debug/dwarf2/refqual-1.C: Same.
        * g++.dg/debug/dwarf2/refqual-2.C: Same.

From-SVN: r243029
2016-11-30 09:49:25 -05:00
Segher Boessenkool
17a938e841 ira: Don't substitute into TRAP_IF insns (PR78610)
In the testcase, IRA propagates a constant into a TRAP_IF insn, which
then becomes an unconditional trap.  Unconditional traps are control
flow insns so doing this requires surgery on the cfg.  We cannot do
that here, so instead refuse to do the substitution.


	PR rtl-optimization/78610
	* ira.c (combine_and_move_insns): Don't substitute into TRAP_IF
	instructions.

gcc/testsuite/
	PR rtl-optimization/78610
	* gcc.c-torture/compile/pr78610.c: New testcase.

From-SVN: r243028
2016-11-30 15:47:01 +01:00
Tim Shen
88811a9753 Fix condition in shared_ptr assertion
2016-11-30  Tim Shen  <timshen@google.com>

	* include/bits/shared_ptr_base.h
	(__shared_ptr_access<T, L, true, false>::operator*()): Fix assertion.

From-SVN: r243027
2016-11-30 14:46:15 +00:00
Bin Cheng
aec0ee116c re PR tree-optimization/78574 (ice on valid C code at -O2 and -O3 in both 32- and 64-bit modes on x86_64-linux-gnu (internal compiler error: Segmentation fault (program cc1)))
PR tree-optimization/78574
	* tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop
	header PHI that doesn't define biv.
	gcc/testsuite
	PR tree-optimization/78574
	* gcc.c-torture/compile/pr78574.c: New test.

From-SVN: r243026
2016-11-30 14:41:09 +00:00
Andre Vehreschild
44cd68d2b7 Add the missing changelog entry to 243023.
libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

        * caf/single.c (_gfortran_caf_is_present): Prevent fallthrough
        warnings.

From-SVN: r243025
2016-11-30 15:38:09 +01:00
Andre Vehreschild
9a0f271862 single.c (_gfortran_caf_is_present): Prevent fallthrough warnings.
libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/single.c (_gfortran_caf_is_present): Prevent fallthrough
	warnings.

From-SVN: r243024
2016-11-30 15:34:13 +01:00
David Edelsohn
6d0e8a552f 50594.cc: XFAIL on AIX.
* testsuite/18_support/50594.cc: XFAIL on AIX.
        * testsuite/ext/mt_allocator/check_new.cc: Same.
        * testsuite/ext/pool_allocator/check_new.cc: Same.
        * testsuite/27_io/ios_base/storage/11584.cc: Same.

From-SVN: r243023
2016-11-30 09:33:02 -05:00
Arnaud Charlet
60aa522875 [multiple changes]
2016-11-30  Gary Dismukes  <dismukes@adacore.com>

	* sem_prag.adb, sem_ch6.adb: Minor reformatting and typo fixes.
	* g-sechas.adb: Minor reformatting.
	* lib-xref.ads: minor grammar fix in comment.
	* lib-xref-spark_specific.adb
	(Is_SPARK_Reference): do not ignore references to concurrent
	objects.
	* sinfo.ads: Fix of unbalanced parens in comment

2016-11-30  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (Get_Type_Reference): If the entity is a function
	returning a classwide type, the type reference is obtained right
	away and does not need further unwinding.

2016-11-30  Javier Miranda  <miranda@adacore.com>

	* sem_ch8.adb (Find_Renamed_Entity): For non-overloaded subprogram
	actuals of generic units check that the spec of the renaming
	and renamed entities match.

2016-11-30  Tristan Gingold  <gingold@adacore.com>

	* raise-gcc.c: For CERT runtimes: do not use gcc includes, simplify
	the handling.
	* sem_attr.adb (Analyze_Attribute): Check No_Dynamic_Priorities
	restriction for Priority Attribute.

From-SVN: r243022
2016-11-30 14:59:16 +01:00
Andre Vehreschild
ba85c8c3fc libcaf.h: Add new action types for (de-)registration of allocatable components in derived...
libgfortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* caf/libcaf.h: Add new action types for (de-)registration of
	allocatable components in derived type coarrays.  Add _caf_is_present
	prototype.
	* caf/single.c (_gfortran_caf_register): Add support for registration
	only and allocation of already registered allocatable components in
	derived type coarrays.
	(_gfortran_caf_deregister): Add mode to deallocate but not deregister
	an allocatable component in a derived type coarray.
	(_gfortran_caf_is_present): New function.  Query whether an
	allocatable component in a derived type coarray on a remote image is
	allocated.


gcc/testsuite/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* gfortran.dg/coarray/alloc_comp_1.f90: Fix tree-dump scans to adhere
	to the changed interfaces.
	* gfortran.dg/coarray_alloc_comp_1.f08: Likewise.
	* gfortran.dg/coarray_allocate_7.f08: Likewise.
	* gfortran.dg/coarray_lib_alloc_1.f90: Likewise.
	* gfortran.dg/coarray_lib_alloc_2.f90: Likewise.
	* gfortran.dg/coarray_lib_alloc_3.f90: Likewise.
	* gfortran.dg/coarray_lib_comm_1.f90: Likewise.
	* gfortran.dg/coarray_lib_alloc_4.f90: New test.

gcc/fortran/ChangeLog:

2016-11-30  Andre Vehreschild  <vehre@gcc.gnu.org>

	* check.c (gfc_check_allocated): By pass the caf_get call and check on
	the array.
	* gfortran.h: Add optional flag to gfc_caf_attr.
	* gfortran.texi: Document new enum values and _caf_is_present function.
	* primary.c (caf_variable_attr): Add optional flag to indicate that the
	expression is reffing a component.
	(gfc_caf_attr): Likewise.
	* trans-array.c (gfc_array_deallocate): Handle deallocation mode for
	coarray deregistration.
	(gfc_trans_dealloc_allocated): Likewise.
	(duplicate_allocatable): Use constants instead of
        creating custom constant tree node of zero or one.  Use gfc_add_modify
        convenience function.
	(duplicate_allocatable_coarray): This function is similar to
	duplicate_allocatable but tailored to handle coarrays.
	(caf_enabled): Check whether in-derived-type coarray processing is
	enabled.
	(caf_in_coarray): Check that in-derived-type coarray processing is
	enabled and currently in a derived-typed coarray.
	(gfc_caf_is_dealloc_only): Return true, when deallocate only is
	desired for components in derived typed coarrays.
	(structure_alloc_comps): A mode for handling coarrays, that is no
	longer encode in the purpose.  This makes the use cases of the
	routine more flexible without repeating.  Allocatable components in
	derived type coarrays are now registered only when nullifying an
	object and allocated before copying data into them.
	(gfc_nullify_alloc_comp): Use the caf_mode of structure_alloc_comps
	now.
	(gfc_deallocate_alloc_comp): Likewise.
	(gfc_deallocate_alloc_comp_no_caf): Likewise.
	(gfc_reassign_alloc_comp_caf): Likewise.
	(gfc_copy_alloc_comp): Likewise.
	(gfc_copy_only_alloc_comp): Likewise.
	(gfc_alloc_allocatable_for_assignment): Make use to the cheaper way of
	reallocating a coarray without deregistering and reregistering it.
	(gfc_trans_deferred_array): Initialize the coarray token correctly for
	deferred variables and tear them down on exit.
	* trans-array.h: Change some prototypes to add the coarray (de-)
	registration modes.  Add prototype for checking if deallocate only is
	selected for components in derived typed coarrays.
	* trans-decl.c (gfc_build_builtin_function_decls): Generate the
	declarations for the changed/new caf-lib routines.
	(gfc_trans_deferred_vars): Ensure deferred variables are (de-)
	registered correctly on procedure entry/exit.
	(generate_coarray_sym_init): Use constants.
	* trans-expr.c (gfc_conv_procedure_call): Propagate coarray allocation
	modes accordingly.
	(gfc_trans_alloc_subarray_assign): Likewise.
	(gfc_trans_subcomponent_assign): Likewise.
	(gfc_trans_structure_assign): Generate code to register the components
	of a derived type coarray prior to initialization.
	(gfc_conv_structure): Set flag that the structure is in a coarray.
	(gfc_trans_scalar_assign): Add flag to indicate being in a coarray and
	set the structure_alloc_comps modes correctly.
	(gfc_trans_assignment_1): Figure being in a coarray expression.
	* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Adapt to new
	structure_alloc_comps interface.
	(conv_caf_send): Use the old API as long as possible.
	(trans_caf_is_present): Generate code to check whether an allocatable
	component in a derived typed coarray is allocated on a remote image.
	(caf_this_image_ref): Return true, when only reffing this image.
	(gfc_conv_allocated): Convert allocated queries on allocatable
	components to the library API.
	(conv_intrinsic_move_alloc): Adapt to new interface of
	structure_alloc_comps.
	* trans-openmp.c (gfc_walk_alloc_comps): Likewise.
	(gfc_omp_clause_assign_op): Likewise.
	(gfc_omp_clause_dtor): Likewise.
	* trans-stmt.c (gfc_trans_deallocate): Figure which mode to use when
	deallocating allocatable components in derived type coarras.
	* trans.c (gfc_allocate_using_lib): Renamed to
	gfc_allcate_using_caf_lib.
	(gfc_allocate_allocatable): Set the registration mode/type of caf-
	register calls adapting to all the possible allocatable objects.
	(gfc_deallocate_with_status): Add deregistration mode for allocatable
	components in derived type coarrays.
	(gfc_deallocate_scalar_with_status): Likewise.
	* trans.h (enum gfc_coarray_type): Renamed to gfc_coarray_regtype to
	avoid collision with gfc_coarray_deregtype.

From-SVN: r243021
2016-11-30 14:27:49 +01:00
Janus Weil
d5c50b024f re PR fortran/78593 (ICE in gfc_match_varspec, at fortran/primary.c:2053)
2016-11-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/78593
	* primary.c (gfc_match_varspec): Check if sym is non-null to avoid ICE.

2016-11-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/78593
	* gfortran.dg/derived_result.f90: New test case.

From-SVN: r243020
2016-11-30 14:23:17 +01:00
Jakub Jelinek
4b498f721e emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of reset_used_flags.
* emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of
	reset_used_flags.

From-SVN: r243019
2016-11-30 14:02:48 +01:00
Jakub Jelinek
7bbc950b36 i386.c (dimode_scalar_chain::convert_op): Avoid sharing the SUBREG rtx between move and following insn.
* config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid
	sharing the SUBREG rtx between move and following insn.

From-SVN: r243018
2016-11-30 14:02:07 +01:00
Jakub Jelinek
2c79732120 ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx for REG_EQUIV argument.
* ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx
	for REG_EQUIV argument.

From-SVN: r243017
2016-11-30 14:01:34 +01:00
Maxim Ostapenko
11bbe99531 Add PR sanitizer/78532 patch to libsanitizer/LOCAL_PATCHES.
From-SVN: r243016
2016-11-30 14:32:55 +02:00
Thomas Preud'homme
66edb75bdb Add multilib mapping for Cortex-M23 & Cortex-M33
2016-11-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33.

From-SVN: r243015
2016-11-30 12:32:20 +00:00
Maxim Ostapenko
d61ed91ece re PR sanitizer/78532 (libsanitizer fails to build on sparc64-linux-gnu)
PR sanitizer/78532
	* sanitizer_common/sanitizer_platform_limits_posix.h
	(__sanitizer_sigaction): Adjust for sparc targets and various Glibc
	versions.

From-SVN: r243014
2016-11-30 14:31:07 +02:00
Thomas Preud'homme
8fef5ca9ed Force soft float in ARMv6-M and ARMv8-M Baseline options
2016-11-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
    -mfloat-abi=soft option.
    (add_options_for_arm_arch_v8m_base): Likewise.  Reindent containing
    foreach loop.

From-SVN: r243013
2016-11-30 12:30:52 +00:00
Markus Trippelsdorf
7d3d820693 Fix part of PR78555 - gcc/real.c:2890:25: runtime error: left shift of negative value -125
PR ipa/78555
	* real.c (real_hash): Add cast to avoid left
	shifting of negative values.

From-SVN: r243012
2016-11-30 12:22:55 +00:00
Kyrylo Tkachov
35323bd865 [AArch64] PR target/78362: Make sure to only take REGNO of a register
PR target/78362
	* config/aarch64/aarch64.md (add<mode>3): Extract inner expression
	from a subreg in operands[1] and don't call REGNO on a non-reg
	expression when deciding to force operands[2] into a reg.

	* gcc.c-torture/compile/pr78362.c: New test.

From-SVN: r243011
2016-11-30 12:18:47 +00:00
Jakub Jelinek
ac02e9a821 configure.ac (--enable-objc-gc): If not given, default to enable_objc_gc=no.
* configure.ac (--enable-objc-gc): If not given, default to
	enable_objc_gc=no.
	* configure: Regenerated.

From-SVN: r243010
2016-11-30 12:42:04 +01:00
Andrew Burgess
cc46bc4340 arm/gcc: Tighten checks in check_effective_target_freorder
In check_effective_target_freorder we check to see if the target
supports -freorder-blocks-and-partition.  However we disable
-freorder-blocks-and-partition when -fprofile-use is not supplied so for
some targets we'll not see any message about lack of support for
-freorder-blocks-and-partition unless -fprofile-use is also passed.

This commit extends check_effective_target_freorder to first try
-freorder-blocks-and-partition on its own, then try -fprofile-use and
-freorder-blocks-and-partition.

gcc/testsuite/ChangeLog:

	* lib/target-supports.exp (check_effective_target_freorder): Check
	additional case.

From-SVN: r243009
2016-11-30 11:38:46 +00:00
Georg-Johann Lay
6c8bf06658 re PR lto/78562 (Wrong warning for built-in functions with -flto)
gcc/lto/
	PR lto/78562
	* lto-symtab.c (lto_symtab_merge_decls_2): Don't diagnose type
	mismatch if the two types are built-in.

From-SVN: r243008
2016-11-30 11:08:37 +00:00
Andrew Burgess
e9472c81d3 arc: Avoid store/load pipeline hazard
ARC700 targets have a store/load pipeline hazard, if we load within 2
cycles of a store, and the load/store are at the same address, then we
pay a multi-cycle penalty.

This commit avoids this by inserting nop instructions between the store
and the load.

gcc/ChangeLog:

	* config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare.
	* config/arc/arc.c (arc_store_addr_hazard_p): New function.
	(workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700.
	* config/arc/arc700.md: Add define_bypass for store/load.

gcc/testsuite/ChangeLog:

	* gcc.target/arc/arc700-stld-hazard.c: New file.

From-SVN: r243007
2016-11-30 11:08:06 +00:00
Ville Voutilainen
a7da488130 Implement LWG 2534, Constrain rvalue stream operators.
* include/std/istream (__is_convertible_to_basic_istream): New.
(__is_extractable): Likewise.
(operator>>(basic_istream<_CharT, _Traits>&&, _Tp&&)):
Turn the stream parameter into a template parameter
and constrain.
* include/std/ostream (__is_convertible_to_basic_ostream): New.
(__is_insertable): Likewise.
(operator<<(basic_ostream<_CharT, _Traits>&&, const _Tp&)):
Turn the stream parameter into a template parameter
and constrain.
* testsuite/27_io/basic_istream/extractors_other/char/4.cc: New.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/6.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: Likewise.

From-SVN: r243006
2016-11-30 11:59:50 +02:00
Janus Weil
4010958106 re PR fortran/78592 (ICE in gfc_find_specific_dtio_proc, at fortran/interface.c:4939)
2016-11-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/78592
	* interface.c (gfc_find_specific_dtio_proc): Rearrange code to avoid
	dereferencing a null pointer.

2016-11-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/78592
	* gfortran.dg/dtio_18.f90: New test case.

From-SVN: r243005
2016-11-30 10:50:04 +01:00
Martin Liska
0bdad1238b Introduce -fdump-ipa-clones dump output
* cgraph.c (symbol_table::initialize): Initialize
	ipa_clones_dump_file.
	(cgraph_node::remove): Report to ipa_clones_dump_file.
	* cgraph.h: Add new argument (suffix) to cloning methods.
	* cgraphclones.c (dump_callgraph_transformation): New function.
	(cgraph_node::create_clone): New argument.
	(cgraph_node::create_virtual_clone): Likewise.
	(cgraph_node::create_version_clone): Likewise.
	* dumpfile.c: Add .ipa-clones dump file.
	* dumpfile.h (enum tree_dump_index): Add TDI_clones
	* ipa-inline-transform.c (clone_inlined_nodes): Report operation
	to dump_callgraph_transformation.

From-SVN: r243004
2016-11-30 09:28:19 +00:00
Martin Liska
fb61d96cf2 Support nested functions (PR sanitizer/78541).
PR sanitizer/78541
	* gcc.dg/asan/pr78541-2.c: New test.
	* gcc.dg/asan/pr78541.c: New test.
	PR sanitizer/78541
	* asan.c (asan_expand_mark_ifn): Properly
	select a VAR_DECL from FRAME.* component reference.

From-SVN: r243003
2016-11-30 09:26:51 +00:00
Martin Liska
e03fb6ec68 Add missing file
From-SVN: r243002
2016-11-30 09:26:03 +00:00
Christophe Lyon
dfad822a61 [libstdc++, testsuite] Add dg-require-thread-fence
2016-11-30  Christophe Lyon  <christophe.lyon@linaro.org>

	* testsuite/experimental/type_erased_allocator/2.cc: Add
	dg-require-thread-fence.

From-SVN: r243001
2016-11-30 09:49:01 +01:00
Segher Boessenkool
2df22b5f30 simplify-rtx: Add missing line for previous commit (PR78583)
The comment for the added case to simplify_truncation reads

  /* Turn (truncate:M1 (*_extract:M2 (reg:M2) (len) (pos))) into
     (*_extract:M1 (truncate:M1 (reg:M2)) (len) (pos')) if possible without
     changing len.  */

but I forgot to check the two modes M2 are actually the same.


	PR rtl-optimization/78583
	* simplify-rtx.c (simplify_truncation): Add check missing from the
	previous commit.

From-SVN: r243000
2016-11-30 09:41:26 +01:00
Segher Boessenkool
4a954e0685 combine: Don't mess with subregs of floating point (PR78590)
PR78590 shows a problem in change_zero_ext, where we change a zero_extend
of a subreg to a logical and.  We should only do this if the thing we are
taking the subreg of is a scalar integer, otherwise we will take a subreg
of (e.g.) a float in a different size, which is nonsensical and hits an
assert.


	PR rtl-optimization/78590
	* combine.c (change_zero_ext): Transform zero_extend of subregs only
	if the subreg_reg is a scalar integer mode.

From-SVN: r242999
2016-11-30 09:24:59 +01:00