Commit Graph

150333 Commits

Author SHA1 Message Date
Jakub Jelinek
60ebe8ce1d re PR rtl-optimization/78547 (ICE: in loc_cmp, at var-tracking.c:3417 with -Os -g -mstringop-strategy=libcall -freorder-blocks-algorithm=simple)
PR rtl-optimization/78547
	* emit-rtl.c (unshare_all_rtl): Make sure DECL_RTL and
	DECL_INCOMING_RTL is not shared.
	* config/i386/i386.c (convert_scalars_to_vectors): If any
	insns have been converted, adjust all parameter's DEC_RTL and
	DECL_INCOMING_RTL back from V1TImode to TImode if the parameters have
	TImode.

	* gcc.dg/pr78547.c: New test.

From-SVN: r243165
2016-12-02 09:44:42 +01:00
Jakub Jelinek
a717444986 re PR rtl-optimization/78575 (ICE: in trunc_int_for_mode, at explow.c:55 with -O2 -g)
PR rtl-optimization/78575
	* config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): Use
	DF infrastructure to wrap all V1TImode reg uses into TImode subreg
	if not already wrapped in a subreg.  Make sure df_insn_rescan does not
	affect further iterations.

	* gcc.dg/pr78575.c: New test.

From-SVN: r243164
2016-12-02 09:42:12 +01:00
Martin Liska
a4f2895465 Fix runtime error: left shift of negative value (PR
PR ipa/78555
	* sreal.c (sreal::to_int): Make absolute value before shifting.
	(sreal::operator/): Likewise.
	(sreal_verify_negative_division): New test.
	(void sreal_c_tests): Call the new test.
	* sreal.h (sreal::normalize_up): Use new SREAL_ABS and
	SREAL_SIGN macros.
	(sreal::normalize_down): Likewise.

From-SVN: r243163
2016-12-02 08:36:01 +00:00
Dominik Vogt
32ff7e39c1 Do not simplify "(and (reg) (const bit)" to if_then_else.
combine_simplify_rtx() tries to replace rtx expressions with just two
possible values with an experession that uses if_then_else:

  (if_then_else (condition) (value1) (value2))

If the original expression is e.g.

  (and (reg) (const_int 2))

where the constant is the mask for a single bit, the replacement results
in a more complex expression than before:

  (if_then_else (ne (zero_extract (reg) (1) (31))) (2) (0))

Similar replacements are done for

  (signextend (and ...))
  (zeroextend (and ...))

Suppress the replacement this special case in if_then_else_cond().

gcc/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* combine.c (combine_simplify_rtx):  Suppress replacement of
	"(and (reg) (const_int bit))" with "if_then_else".

From-SVN: r243162
2016-12-02 08:32:40 +00:00
Dominik Vogt
bba13c0c43 S/390: Fix litpool-r3-1.c.
gcc/testsuite/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/litpool-r3-1.c: Fix label number test.

From-SVN: r243161
2016-12-02 08:31:09 +00:00
Dominik Vogt
0f6f72e805 PR target/77822: S390: Validate argument range of {zero,sign}_extract.
With some undefined code, combine generates patterns where the arguments to
*_extract are out of range, e.b. a negative bit position.  If the s390 backend
accepts these, they lead to not just undefined behaviour but invalid assembly
instructions (argument out of the allowed range).  So this patch makes sure
that the rtl expressions with out of range arguments are rejected.

gcc/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/77822
	* config/s390/s390.md ("extzv")
	("*extzv<mode><clobbercc_or_nocc>")
	("*extzvdi<clobbercc_or_nocc>_lshiftrt")
	("*<risbg_n>_ior_and_sr_ze")
	("*extract1bitdi<clobbercc_or_nocc>")
	("*insv<mode><clobbercc_or_nocc>", "*insv_rnsbg_noshift")
	("*insv_rnsbg_srl", "*insv<mode>_mem_reg")
	("*insvdi_mem_reghigh", "*insvdi_reg_imm"): Use EXTRACT_ARGS_IN_RANGE
	to validate the arguments of zero_extract and sign_extract.

gcc/testsuite/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/77822
	* gcc.target/s390/s390.exp: Support .C tests.
	* gcc.target/s390/pr77822-2.c: New test.
	* gcc.target/s390/pr77822-1.C: New test.

From-SVN: r243160
2016-12-02 08:30:16 +00:00
Dominik Vogt
8f61415f1f PR target/77822: Add helper macro EXTRACT_ARGS_IN_RANGE to system.h.
The macro can be used to validate the arguments of zero_extract and
sign_extract to fix this problem:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77822

gcc/ChangeLog:

2016-12-02  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/77822
	* rtl.h (EXTRACT_ARGS_IN_RANGE): New.

From-SVN: r243159
2016-12-02 08:26:19 +00:00
Andreas Krebbel
7f5fc63362 S/390: Define vectorization_cost hook
Define the vectorization_cost hook.  The only change right now
compared to the default implementation is the reduced costs for
unaligned loads/stores.  This is supposed to prevent unnecessary loop
peeling performed to reach better alignments.

Further tuning of this hook is required.

-Andreas-

gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc/config/s390/s390.c (s390_builtin_vectorization_cost): New
	function.
	(TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Define target
	macro.

gcc/testsuite/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/vector/vec-nopeel-1.c: New test.

From-SVN: r243158
2016-12-02 08:25:27 +00:00
Andreas Krebbel
9ad49cdb53 S/390: Add vector pack/unpack patterns.
gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md (vec_halfhalf): New mode iterator.
	("vec_pack_trunc_<mode>", "vec_pack_ssat_<mode>")
	("vec_pack_usat_<mode>", "vec_unpacks_hi_v16qi")
	("vec_unpacks_low_v16qi", "vec_unpacku_hi_v16qi")
	("vec_unpacku_low_v16qi", "vec_unpacks_hi_v8hi")
	("vec_unpacks_lo_v8hi", "vec_unpacku_hi_v8hi")
	("vec_unpacku_lo_v8hi", "vec_unpacks_hi_v4si")
	("vec_unpacks_lo_v4si", "vec_unpacku_hi_v4si")
	("vec_unpacku_lo_v4si"): New pattern definitions.
	* config/s390/vx-builtins.md: Move VI_HW_HSD mode iterator to
	vector.md.

From-SVN: r243157
2016-12-02 08:24:27 +00:00
Andreas Krebbel
f00bc26c00 Add testcase missing in last commit.
gcc/testsuite/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/zvector/vec-cmp-2.c: New test.

From-SVN: r243156
2016-12-02 08:23:19 +00:00
Andreas Krebbel
eca9803844 S/390: Merge compare of compare results
With this patch EQ and NE compares on CC mode reader patterns are
folded.  This allows using the result of the vec_all_* and vec_any_*
builtins directly in a conditional jump instruction as in the attached
testcase.

gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-protos.h (s390_reverse_condition): New
	prototype.
	* config/s390/s390.c (s390_canonicalize_comparison): Fold compares
	of CC mode values.
	(s390_reverse_condition): New function.
	* config/s390/s390.h (REVERSE_CC_MODE, REVERSE_CONDITION): Define
	target macros.

gcc/testsuite/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/zvector/vec-cmp-2.c: New test.

From-SVN: r243155
2016-12-02 08:22:34 +00:00
Andreas Krebbel
a6a2b532f9 S/390: Fix vector all/any cc modes.
This fixes a problem with the vector compares producing CC mode
results.

The instructions produce condition code modes which can be either
interpreted to check an ALL elements or an ANY element result.  As the
modes where used before they could not be inverted by the middle-end
by inverting the comparison code (e.g. eq to ne).  The result usually
was just wrong.

In fact inverting a comparison code on an CCVALL mode would require to
also change the mode to CCVANY but this cannot be done easily in the
middle-end.  With this patch the meaning of an ALL cc mode only refers
to the not-inverted comparison code (e.g. eq, gt, ge).  With that
change inverting the comparison code matches a not operation on the
condition code mask again.

Bootstrapped and regression tested on s390 and s390x.

Bye,

-Andreas-

gcc/testsuite/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/vector/vec-scalar-cmp-1.c: Fix and harden the
	pattern checks.
	* gcc.target/s390/zvector/vec-cmp-1.c: New test.

gcc/ChangeLog:

2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU)
	(CCVHUANY): Remove modes.
	(CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and
	documentation.
	* config/s390/s390.c (s390_match_ccmode_set): Rename cc modes.
	(s390_expand_vec_compare_scalar): Pick one of the cc consumer
	modes.
	(s390_branch_condition_mask): Adjust to use the new cc consumer
	modes.  The new modes allow for proper reversal in the middle-end.
	(s390_expand_vec_compare_cc): Determine the proper cc producer and
	consumer modes for a comparison.
	* config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU
	throughout the file.
	* config/s390/vx-builtins.md: Likewise.

From-SVN: r243154
2016-12-02 08:21:43 +00:00
Maxim Ostapenko
84b0769e33 Add support for ASan odr_indicator.
config/

        * bootstrap-asan.mk: Replace LSAN_OPTIONS=detect_leaks=0 with
        ASAN_OPTIONS=detect_leaks=0:use_odr_indicator=1.

gcc/

        * asan.c (asan_global_struct): Refactor.
        (create_odr_indicator): New function.
        (asan_needs_odr_indicator_p): Likewise.
        (is_odr_indicator): Likewise.
        (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's
        constructor.
        (asan_protect_global): Do not protect odr indicators.

gcc/c-family/

	* c-attribs.c (asan odr indicator): New attribute.
	(handle_asan_odr_indicator_attribute): New function.

gcc/testsuite/

        * c-c++-common/asan/no-redundant-odr-indicators-1.c: New test.

From-SVN: r243153
2016-12-02 09:39:27 +02:00
Jeff Law
b06496b161 * tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts_at_dest): Avoid temporary
	propagation of operands if there are no operands.

From-SVN: r243152
2016-12-01 23:40:57 -07:00
GCC Administrator
f3adbf9e93 Daily bump.
From-SVN: r243150
2016-12-02 00:16:20 +00:00
Jakub Jelinek
0e81719703 re PR tree-optimization/78586 (Wrong code caused by printf-return-value)
PR tree-optimization/78586
	* gimple-ssa-sprintf.c (format_integer): Don't handle NOP_EXPR,
	CONVERT_EXPR or COMPONENT_REF here.  Formatting fix.  For
	SSA_NAME_DEF_STMT with NOP_EXPR only change argtype if the rhs1's
	type is INTEGER_TYPE or POINTER_TYPE.

From-SVN: r243145
2016-12-02 00:15:57 +01:00
Elizebeth Punnoose
90ee6453b2 re PR fortran/77505 (Negative character length not treated as LEN=0)
2016-12-01  Elizebeth Punnoose  <elizebeth.punnoose@hpe.com>

	PR fortran/77505
	* trans-array.c (trans_array_constructor): Treat negative character
	length as LEN = 0.


2016-12-01  Elizebeth Punnoose  <elizebeth.punnoose@hpe.com>

	PR fortran/77505
	* gfortran.dg/char_length_20.f90: New test.
	* gfortran.dg/char_length_21.f90: Ditto.

From-SVN: r243143
2016-12-01 23:11:35 +00:00
Ma Jiang
b55e6680de acx.m4: Change "tail +16c" to "tail -c +17".
* config/acx.m4: Change "tail +16c" to "tail -c +17".
	* configure: Regenerated.

From-SVN: r243142
2016-12-01 16:02:51 -07:00
Kelvin Nilsen
f13d510e36 re PR target/78577 (Fix define_insn operand types for vexturhlx, vexturhrx, vextuwlx, and vextuwrx patterns)
gcc/ChangeLog:

2016-12-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/78577
	* config/rs6000/vsx.md (vextuhlx): Revise mode of operand 2.
	(vextuhrx): Likewise.
	(vextuwlx): Likewise.
	(vextuwrx): Likewise.

From-SVN: r243141
2016-12-01 22:52:07 +00:00
Joseph Myers
c3a2f7405c * es.po: Update.
From-SVN: r243139
2016-12-01 22:36:49 +00:00
Jason Merrill
03e88100e1 call.c (add_function_candidate): Exclude inherited copy/move ctors.
* call.c (add_function_candidate): Exclude inherited copy/move
	ctors.

From-SVN: r243138
2016-12-01 17:13:06 -05:00
Jason Merrill
c1ff51dc9f fix PR number
From-SVN: r243137
2016-12-01 17:10:57 -05:00
David Malcolm
859faa171e dwarf2out.c: fix jit issue with early_dwarf_finished
All of the jit testcases that generate debuginfo appear to have been
failing since r240228 on their 2nd in-process iteration on this
assertion in set_early_dwarf's ctor:

      gcc_assert (! early_dwarf_finished);

Root cause is that the global is never reset at the end of compilation,
which this patch fixes in the obvious way.

gcc/ChangeLog:
	* dwarf2out.c (dwarf2out_c_finalize): Reset early_dwarf and
	early_dwarf_finished.

From-SVN: r243136
2016-12-01 21:56:09 +00:00
Eric Botcazou
f99bd883fb sparc.opt (mlra): New target option.
* config/sparc/sparc.opt (mlra): New target option.
	* config/sparc/sparc.c (TARGET_LRA_P): Define to...
	(sparc_lra_p): ...this.  New function.
	(D_MODES, DF_MODES): Add missing cast.
	* config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
	provide these insns when flag_pic.
	(sethi_di_medlow, losum_di_medlow, seth44, setm44, setl44, sethh,
	setlm, sethm, setlo, embmedany_sethi, embmedany_losum,
	embmedany_brsum, embmedany_textuhi, embmedany_texthi,
	embmedany_textulo, embmedany_textlo): Likewise.
	(sethi_di_medlow_embmedany_pic): Provide it only when flag_pic.

Co-Authored-By: David S. Miller <davem@davemloft.net>

From-SVN: r243135
2016-12-01 21:41:10 +00:00
Steven G. Kargl
96ad5df6db re PR fortran/78279 (ICE in identical_array_ref, at fortran/dependency.c:104)
2016-12-01  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78279
	* dependency.c (identical_array_ref): Convert gcc_assert to conditional
	and gfc_internal_error.

2016-12-01  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78279
	* gfortran.dg/pr78279.f90: New test.

From-SVN: r243131
2016-12-01 20:37:55 +00:00
Ian Lance Taylor
98934fac3b compiler: add slice initializers to the GC root list
As of https://golang.org/cl/32917 we can put slice initializers in the
    .data section.  The program can still change the values in those
    slices.  That means that if the slice elements can contain pointers,
    we need to register the entire initializer as a GC root.
    
    This would be straightforward except that we only have a Bexpression
    for the slice initializer, not an Expression.  So introduce a
    Backend_expression type that wraps a Bexpression as an Expression.
    
    The test case for this is https://golang.org/cl/33790.
    
    Reviewed-on: https://go-review.googlesource.com/33792

From-SVN: r243129
2016-12-01 19:54:36 +00:00
David Edelsohn
0269650d4a * testsuite/26_numerics/headers/cmath/hypot.cc: XFAIL on AIX.
From-SVN: r243127
2016-12-01 14:02:34 -05:00
David Edelsohn
d8a2f02ec6 re PR debug/66149 (ICE: tree check: expected field_decl, have template_decl in int_bit_position, at tree.h:5012 with -std=c++14 -gstabs)
PR debug/66419
PR c++/78235
* dbxout.c (dbxout_type_fields): Skip TEMPLATE_DECLs.

From-SVN: r243126
2016-12-01 13:58:47 -05:00
Richard Biener
1281fc9911 vec.h (vec<T, [...]): Guard call to memset if len-oldlen != 0.
2016-12-01  Richard Biener  <rguenther@suse.de>
	    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to
	memset if len-oldlen != 0.
	(vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise.

Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>

From-SVN: r243125
2016-12-01 18:18:30 +00:00
David Edelsohn
3c70899469 * g++.dg/tls/pr77285-1.C: dg-add-options tls
From-SVN: r243124
2016-12-01 13:11:56 -05:00
Uros Bizjak
1f0133ebb9 i386.md (*andndi3_doubleword): Depend on TARGET_SSE2.
* config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2.

From-SVN: r243121
2016-12-01 18:10:58 +01:00
Ville Voutilainen
a2863bde75 Implement LWG 2766,
Swapping non-swappable types and LWG 2749,
swappable traits for variants.
* include/bits/move.h (swap(_Tp&, _Tp&)): Constrain
with __is_tuple_like.
* include/bits/stl_pair.h (swap(pair<_T1, _T2>&, pair<_T1, _T2>&)):
Add a deleted overload.
* include/bits/unique_ptr.h
(swap(unique_ptr<_Tp, _Dp>&, unique_ptr<_Tp, _Dp>&)): Likewise.
* include/std/array
(swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&)): Likewise.
* include/std/optional
(swap(optional<_Tp>&, optional<_Tp>&)): Likewise.
* include/std/tuple (__is_tuple_like_impl, __is_tuple_like):
Move to type_traits.
(swap(tuple<_Elements...>&, tuple<_Elements...>&)): Add a deleted
overload.
* include/std/type_traits (__is_tuple_like_impl, __is_tuple_like):
New.
(swap(_Tp&, _Tp&)): Constrain with __is_tuple_like.
* include/std/utility (__is_tuple_like_impl): Move to type_traits.
* include/std/variant
(swap(variant<_Types...>&, variant<_Types...>&)):
Add a deleted overload.
* testsuite/20_util/optional/swap/2.cc: Add tests for disabled
swaps.
* testsuite/20_util/pair/swap_cxx17.cc: New.
* testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
Likewise.
* testsuite/20_util/variant/compile.cc: Add tests for disabled
swaps.
* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
New.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r243120
2016-12-01 18:23:21 +02:00
Georg-Johann Lay
a9c21e2a4f avr.c: Fix coding rule glitches.
* config/avr/avr.c: Fix coding rule glitches.

From-SVN: r243118
2016-12-01 15:56:58 +00:00
James Greenhalgh
d95fe8017d [Patch testsuite obvious] Use setjmp, not sigsetjmp in gcc.dg/pr78582.c
gcc/testsuite/

	* gcc.dg/pr78582.c (main): Call setjmp, not sigsetjmp.

From-SVN: r243116
2016-12-01 15:33:29 +00:00
Markus Trippelsdorf
56e1a4d712 Fix PR tree-optimization/78598 - tree-ssa-loop-prefetch.c:835:16: runtime error: signed integer overflow
Using bootstrap-ubsan gcc to build mplayer shows:

tree-ssa-loop-prefetch.c:835:16: runtime error: signed integer overflow:
288230376151711743 * 64 cannot be represented in type 'long int'

Here signed und unsigned integers are mixed in a division resulting in
bogus values: (-83 + 64ULL -1) / 64ULL) == 288230376151711743

Fixed by casting the unsigned parameter to signed.

	PR tree-optimization/78598
	* tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid
	overflows.

From-SVN: r243113
2016-12-01 14:59:03 +00:00
Rainer Orth
be5ddbb86f Import libcilkrts Build 4467 (PR target/68945)
PR target/68945
	Merge from upstream, version 2.0.4467.0.
	Fix typo in git URL.
	* aclocal.m4, configure, Makefile.in: Regenerate.

From-SVN: r243112
2016-12-01 14:48:49 +00:00
Markus Trippelsdorf
67586d38f5 Fix rtl-optimization/78596 - combine.c:12561:14: runtime error: left shift of negative value
PR rtl-optimization/78596
	* combine.c (simplify_comparison): Cast to unsigned to avoid
	left shifting of negative value.

From-SVN: r243111
2016-12-01 14:04:13 +00:00
David Edelsohn
8e9c33cd3b Remove svn conflict marker.
From-SVN: r243110
2016-12-01 08:48:22 -05:00
Matthias Klose
825fba526c configure.ac: Don't use pkg-config to check for bdw-gc.
<toplevel>

        * configure.ac: Don't use pkg-config to check for bdw-gc.
        * configure: Regenerate.

config/

        * pkg.m4: Remove.

libobjc/

        * configure.ac: Don't use pkg-config to check for bdw-gc.
        * configure: Regenerate.

gcc/

        * doc/install.texi: Don't use pkg-config to check for bdw-gc.

From-SVN: r243108
2016-12-01 12:31:49 +00:00
Richard Biener
a41e62e743 tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap.
2016-12-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
	treat arrays with same type as objects that cannot overlap.

	* gcc.dg/torture/alias-2.c: New testcase.

From-SVN: r243107
2016-12-01 12:22:32 +00:00
Richard Biener
a1fc386ac2 tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap.
2016-12-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
	treat arrays with same type as objects that cannot overlap.

	* gcc.dg/torture/alias-2.c: New testcase.

From-SVN: r243106
2016-12-01 12:15:44 +00:00
Georg-Johann Lay
b0da97091d tiny-memx.c: Only perform if target avr_tiny.
gcc/testsuite/
	* gcc.target/avr/tiny-memx.c: Only perform if target avr_tiny.
	* gcc.target/avr/tiny-caller-save.c: Dito.

From-SVN: r243105
2016-12-01 10:21:31 +00:00
Georg-Johann Lay
1636ebdc8a avr.c (avr_print_operand): Use SYMBOL_REF_P if possible.
gcc/
	* config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible.
	(avr_handle_addr_attribute, avr_asm_output_aligned_decl_common)
	(avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito.

From-SVN: r243104
2016-12-01 10:09:56 +00:00
Andre Vehreschild
ccbf635518 coarray_lib_alloc_4.f90: Fix for 32-bits.
gcc/testsuite/ChangeLog:

2016-12-01  Andre Vehreschild  <vehre@gcc.gnu.org>

	* gfortran.dg/coarray_lib_alloc_4.f90: Fix for 32-bits.

From-SVN: r243101
2016-12-01 10:53:25 +01:00
Jakub Jelinek
d26b3eb765 re PR debug/78587 (dwarf2out.c:1517:45: runtime error: negation of -9223372036854775808 cannot be represented in type 'long int [4]'; cast to an unsigned type to negate this value to itself)
PR debug/78587
	* dwarf2out.c (loc_descr_plus_const): For negative offset use
	uint_loc_descriptor instead of int_loc_descriptor and perform negation
	in unsigned HOST_WIDE_INT type.
	(scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL.

	* gcc.dg/debug/pr78587.c: New test.

From-SVN: r243100
2016-12-01 10:24:55 +01:00
Jakub Jelinek
43d0b501ee re PR target/78614 (ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743)
PR target/78614
	* config/rs6000/rs6000.c (rs6000_frame_related): Call
	set_used_flags (pat) before any simplifications.  Clear used flag on
	PARALLEL copy.  Don't guard add_reg_note call.  Call
	copy_rtx_if_shared on pat before storing it into
	REG_FRAME_RELATED_EXPR.

From-SVN: r243099
2016-12-01 08:56:49 +01:00
Ville Voutilainen
d9b2d86c74 The convertible_to traits need to use a variadic catch-all for the false-cases.
The convertible_to traits need to use a variadic catch-all for the
false-cases.
* include/std/istream (__is_convertible_to_basic_istream):
Change the parameter of the false-case of __check to a variadic.
* include/std/ostream (__is_convertible_to_basic_ostream):
Likewise.

From-SVN: r243098
2016-12-01 09:14:19 +02:00
Alan Modra
f73ee211c3 [RS6000] fix rtl-checking internal compiler error
* gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
	look inside UNSPEC_VSX_XXSPLTW vec.

From-SVN: r243097
2016-12-01 17:44:04 +10:30
Bernd Edlinger
77e6870d7f crossconfig.m4 (*-linux*): Add link-check for memalign.
2016-12-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * crossconfig.m4 (*-linux*): Add link-check for memalign.
        * configure: Regenerated.

From-SVN: r243095
2016-12-01 06:06:04 +00:00
Ian Lance Taylor
6e7f1be7ae runtime: set isarchive in initsig
The library initialization code in go-libmain.c sets the C variable
    runtime_isarchive but failed to set the Go variable runtime.isarchive.
    We don't currently have a way to let C code access an unexported Go
    variable, but fortunately the only time the Go function initsig is
    called with an argument of true is exactly where we want to set
    isarchive.  So let initsig do it.
    
    Reviewed-on: https://go-review.googlesource.com/33753

From-SVN: r243094
2016-12-01 05:47:58 +00:00