Commit Graph

150273 Commits

Author SHA1 Message Date
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
Jakub Jelinek 053d5e0cdd re PR tree-optimization/78586 (Wrong code caused by printf-return-value)
PR tree-optimization/78586
	* gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or
	TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR.
	Don't build_int_cst min/max twice.  Formatting fix.

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

From-SVN: r242998
2016-11-30 09:01:47 +01:00
Markus Trippelsdorf ced17de640 Fix PR78588 - rtlanal.c:5210:38: runtime error: shift exponent 4294967295 is too large for 64-bit type
Building gcc with -fsanitize=undefined shows:
 rtlanal.c:5210:38: runtime error: shift exponent 4294967295 is too large for 64-bit type 'long unsigned int'

This happens because if_then_else_cond() in combine.c calls
num_sign_bit_copies() in rtlanal.c with mode==BLKmode.

5205   bitwidth = GET_MODE_PRECISION (mode);
5206   if (bitwidth > HOST_BITS_PER_WIDE_INT)
5207     return 1;
5208
5209   nonzero = nonzero_bits (x, mode);
5210   return nonzero & (HOST_WIDE_INT_1U << (bitwidth - 1))
5211          ? 1 : bitwidth - floor_log2 (nonzero) - 1;

This causes (bitwidth - 1) to wrap around.

	PR rtl-optimization/78588
	* combine.c (if_then_else_cond): Also guard against BLKmode.
	* rtlanal.c (num_sign_bit_copies1): Add assert.

From-SVN: r242997
2016-11-30 07:30:55 +00:00
Janus Weil a4f15a7d45 re PR fortran/78573 ([OOP] ICE in resolve_component, at fortran/resolve.c:13405)
2016-11-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/78573
	* decl.c (build_struct): On error, return directly and do not build
	class symbol.

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

	PR fortran/78573
	* gfortran.dg/class_61.f90: New test case.

From-SVN: r242996
2016-11-30 08:25:36 +01:00
Jeff Law a195e177c0 arc-common.c (arc_handle_option): Remove unused variables.
* common/config/arc/arc-common.c (arc_handle_option): Remove unused
        variables.

From-SVN: r242994
2016-11-29 21:37:10 -07:00
Jeff Law 48855443fa lra-constraints.c (check_and_process_move): Constrain the range of DCLASS and SCLASS to avoid false positive out of bounds...
* lra-constraints.c (check_and_process_move): Constrain the
	range of DCLASS and SCLASS to avoid false positive out of bounds
	array index warning.

From-SVN: r242993
2016-11-29 21:15:55 -07:00
Ian Lance Taylor fbe9724cc3 runtime: fixes for -buildmode=c-archive
With -buildmode=c-archive, initsig is called before the memory
    allocator has been initialized.  The code was doing a memory
    allocation because of the call to funcPC(sigtramp).  When escape
    analysis is fully implemented, that call should not allocate.  For
    now, finesse the issue by calling a C function to get the C function
    pointer value of sigtramp.
    
    When returning from a call from C to a Go function, a deferred
    function is run to go back to syscall mode.  When the call occurs on a
    non-Go thread, that call sets g to nil, making it impossible to add
    the _defer struct back to the pool.  Just drop it and let the garbage
    collector clean it up.
    
    Reviewed-on: https://go-review.googlesource.com/33675

From-SVN: r242992
2016-11-30 02:09:24 +00:00
David Malcolm f521b29334 Remove stray character from install.texi
gcc/ChangeLog:
	* doc/install.texi (--with-target-bdw-gc): Remove stray '@'.

From-SVN: r242991
2016-11-30 01:23:44 +00:00
David Malcolm 94f597df22 substring locations and # line directives (PR preprocessor/78569)
The ICE in PR preprocessor/78569 appears to be due to an attempt to
generate substring locations in a .i file where the underlying .c file
has changed since the .i file was generated.

This can't work, so it seems safest for the on-demand substring
locations to be unavailable for such files, falling back to
"whole string" locations for such cases.

gcc/ChangeLog:
	PR preprocessor/78569
	* input.c (get_substring_ranges_for_loc): Fail gracefully if
	line directives were present.

gcc/testsuite/ChangeLog:
	PR preprocessor/78569
	* gcc.dg/format/pr78569.c: New test case.

From-SVN: r242990
2016-11-30 01:13:37 +00:00
GCC Administrator 3517d13be7 Daily bump.
From-SVN: r242988
2016-11-30 00:16:19 +00:00