Commit Graph

164000 Commits

Author SHA1 Message Date
Martin Jambor
80c6d1f446 Add -Wabsolute-value
2018-09-17  Martin Jambor  <mjambor@suse.cz>

	gcc/
	* doc/invoke.texi (Warning Options): Likewise.

	gcc/c-family/
	* c.opt (Wabsolute-value): New.

	gcc/c/
	* c-parser.c: (warn_for_abs): New function.
	(c_parser_postfix_expression_after_primary): Call it.

	testsuite/
	* gcc.dg/warn-abs-1.c: New test.
	* gcc.dg/dfp/warn-abs-2.c: Likewise.

From-SVN: r264368
2018-09-17 15:12:12 +02:00
Bernd Edlinger
3ab3a92e8e ms-sysv.exp: Don't pass TEST_ALWAYS_FLAGS to HOSTCXX.
2018-09-17  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Don't pass
        TEST_ALWAYS_FLAGS to HOSTCXX.

From-SVN: r264367
2018-09-17 12:41:58 +00:00
Paul Thomas
d44235fbe0 re PR fortran/64120 ([F03] Wrong handling of allocatable character string)
2018-09-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/64120
	* trans-decl.c (gfc_get_symbol_decl): Flag allocatable, scalar
	characters with a variable length expression for deferred init.
	(gfc_trans_deferred_vars): Perform the assignment for these
	symbols by calling gfc_conv_string_length.

2018-09-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/64120
	* gfortran.dg/allocatable_scalar_14.f90 : New test.

From-SVN: r264365
2018-09-17 11:22:27 +00:00
Richard Biener
ecfb64f692 re PR tree-optimization/87301 (ICE: verify_gimple failed (error: statement marked for throw, but doesn't))
2018-09-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87301
	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): Properly
	clean EH info from leftover copy assignments.

	* gcc.dg/torture/pr87301.c: New testcase.

From-SVN: r264364
2018-09-17 10:21:21 +00:00
Martin Liska
dda107dfb4 Fix out-of-bounds in gcov.c (PR gcov-profile/85871).
2018-09-17  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/85871
	* gcov.c (output_intermediate_file): Fix out of bounds
	access.

From-SVN: r264363
2018-09-17 10:19:02 +00:00
Vineet Gupta
dd1fd744cc [ARC] Enable DBNZ for core3 and newer CPUs.
2018-09-17  Vineet Gupta  <vgupta@synopsys.com>

	* config/arc/arc.c: Object attributes for core4 not reflected
	correctly.
	* config/arc/arc.h: Don't restrict DBNZ to core3 (core4 includes
	core3).

From-SVN: r264362
2018-09-17 10:52:22 +02:00
Alexey Brodkin
5305a279c0 [ARC] Update LINK_EH_SPEC linker spec.
With no trailing space in LINK_EH_SPEC linker spec gets generated as:
------------------------>8---------------------
%{!r:--build-id} --eh-frame-hdr%{h*} ...
------------------------>8---------------------

or even worse if hash style is added:
------------------------>8---------------------
%{!r:--build-id} --eh-frame-hdr--hash-style=sysv %{h*} ...
------------------------>8---------------------

Now if that spec is really used by LD then it fails inevitably
saying that it doesn't know option "--eh-frame-hdr--hash-style=sysv".

2018-09-17  Alexey Brodkin  <abrodkin@synopsys.com>

	* config/arc/linux.h (LINK_EH_SPEC): Add missing space.

From-SVN: r264361
2018-09-17 10:52:10 +02:00
Martin Liska
d6683f8912 gcov: emit hotness colors to easily find hot code.
2018-09-17  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Document new option --use-hotness-colors.
	* gcov.c (struct source_info): Declare new field.
	(source_info::source_info): Set default for maximum_count.
	(print_usage): Add new -q option.
	(process_args): Process it.
	(accumulate_line_info): Save src->maximum_count.
	(output_line_beginning): Make color line number if
	flag_use_hotness_colors is set.
	(output_line_details): Pass default argument value.
	(output_lines): Pass src->maximum_count.

From-SVN: r264360
2018-09-17 08:49:09 +00:00
Martin Liska
7dc58b5053 i386: move alignment defaults to processor_costs.
2018-09-17  Martin Liska  <mliska@suse.cz>

	* common/config/i386/i386-common.c (ix86_get_valid_option_values):
	Use processor_names table.
	* config/i386/i386.c (ix86_default_align): Use
	processor_cost_table for alignment values.
	(ix86_option_override_internal): Use processor_names.
	(ix86_function_specific_print): Likewise.
	* config/i386/i386.h (struct processor_costs):
	Add alignment values.
	(struct ptt): Remove and replace with const char *.
	* config/i386/x86-tune-costs.h (struct processor_costs):
	Declare default alignments for all costs.

From-SVN: r264359
2018-09-17 08:47:38 +00:00
Paul Thomas
ca32d61bab re PR fortran/85954 (ICE in make_ssa_name_fn, at tree-ssanames.c:266)
2018-09-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85954
	* resolve.c (resolve_assoc_var): If the target expression is a
	deferred charlen dummy and the associate name shares the
	charlen, generate a new one. Make sure that new charlens are in
	the namespace list so that they get cleaned up.
	* trans-array.c (gfc_is_reallocatable_lhs): Associate names are
	not reallocatable.
	* trans-decl.c (gfc_get_symbol_decl): Put deferred character
	length dummy and result arrays on the deferred initialization
	list so that the variable length arrays can be correctly dealt
	with.
	* trans-expr.c (gfc_conv_string_length): Return if 'expr' is
	NULL rather than ICEing..

2018-09-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85954
	* gfortran.dg/deferred_character_21.f90 : New test.

From-SVN: r264358
2018-09-17 07:18:17 +00:00
Aldy Hernandez
3cc2fdfd93 tree-vrp.c (extract_range_from_unary_expr): Do not special case symbolics or VR_VARYING ranges for ABS_EXPR.
* tree-vrp.c (extract_range_from_unary_expr): Do not special case
	symbolics or VR_VARYING ranges for ABS_EXPR.
	* wide-int-range.cc (wide_int_range_abs): Return positive numbers
	when range will wrap.

From-SVN: r264356
2018-09-17 06:07:52 +00:00
GCC Administrator
baeab78db2 Daily bump.
From-SVN: r264355
2018-09-17 00:16:33 +00:00
Janus Weil
74b08343da fix PR 86484 and PR 84543
2018-09-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/86484
	PR fortran/84543
	* match.c (gfc_match_assignment): For a polymorphic assignment,
	make sure that the vtab for the rhs type is generated.

2018-09-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/86484
	PR fortran/84543
	* gfortran.dg/class_assign_2.f90: New test case.
	* gfortran.dg/class_assign_3.f90: New test case.

From-SVN: r264350
2018-09-16 21:57:52 +02:00
Thomas Koenig
ed33417a64 re PR fortran/37802 (Improve wording for matmul bound checking)
2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* frontend-passes.c (B_ERROR): New macro for matmul bounds
	checking error messages.
	(C_ERROR): Likewise.
	(inline_matmul_assign): Reorganize bounds checking, use B_ERROR
	and C_ERROR macros.

2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* gfortran.dg/matmul_bounds_13.f90: New test case.
	* gfortran.dg/inline_matmul_15.f90:  Adjust test for runtime
	error.
	* gfortran.dg/matmul_5.f90: Likewise.
	* gfortran.dg/matmul_bounds_10.f90: Likewise.
	* gfortran.dg/matmul_bounds_11.f90: Likewise.
	* gfortran.dg/matmul_bounds_2.f90: Likewise.
	* gfortran.dg/matmul_bounds_4.f90: Likewise.
	* gfortran.dg/matmul_bounds_5.f90: Likewise.

2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* m4/matmul_internal.m4: Adjust error messages.
        * generated/matmul_c10.c: Regenerated.
        * generated/matmul_c16.c: Regenerated.
        * generated/matmul_c4.c: Regenerated.
        * generated/matmul_c8.c: Regenerated.
        * generated/matmul_i1.c: Regenerated.
        * generated/matmul_i16.c: Regenerated.
        * generated/matmul_i2.c: Regenerated.
        * generated/matmul_i4.c: Regenerated.
        * generated/matmul_i8.c: Regenerated.
        * generated/matmul_r10.c: Regenerated.
        * generated/matmul_r16.c: Regenerated.
        * generated/matmul_r4.c: Regenerated.
        * generated/matmul_r8.c: Regenerated.
        * generated/matmulavx128_c10.c: Regenerated.
        * generated/matmulavx128_c16.c: Regenerated.
        * generated/matmulavx128_c4.c: Regenerated.
        * generated/matmulavx128_c8.c: Regenerated.
        * generated/matmulavx128_i1.c: Regenerated.
        * generated/matmulavx128_i16.c: Regenerated.
        * generated/matmulavx128_i2.c: Regenerated.
        * generated/matmulavx128_i4.c: Regenerated.
        * generated/matmulavx128_i8.c: Regenerated.
        * generated/matmulavx128_r10.c: Regenerated.
        * generated/matmulavx128_r16.c: Regenerated.
        * generated/matmulavx128_r4.c: Regenerated.
        * generated/matmulavx128_r8.c: Regenerated.

From-SVN: r264349
2018-09-16 19:37:44 +00:00
GCC Administrator
c546dbdc4a Daily bump.
From-SVN: r264346
2018-09-16 00:16:43 +00:00
Eric Botcazou
ae486e6281 re PR middle-end/86864 (ICE in commit_one_edge_insertion on switch construct)
PR middle-end/86864
	* cfgexpand.c (expand_gimple_basic_block): Be prepared for a BARRIER
	before and after a JUMP_TABLE_DATA.

From-SVN: r264342
2018-09-15 09:21:09 +00:00
GCC Administrator
19d6277cdf Daily bump.
From-SVN: r264341
2018-09-15 00:16:27 +00:00
John David Anglin
f3743e2e32 re PR middle-end/87188 (Function pointer canonicalization optimized away)
PR middle-end/87188
	* dojump.c (do_compare_and_jump): Canonicalize function pointers
	when one operand is a function pointer.  Use POINTER_TYPE_P and
	FUNC_OR_METHOD_TYPE_P.
	* expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P.
	* fold-const.c (build_range_check): Likewise.
	* match.pd (simple_comparison): Likewise.

From-SVN: r264336
2018-09-14 23:26:12 +00:00
David Malcolm
07f8790583 Fix overeager spelling corrections (PR c/82967)
This patch tunes class best_match's cutoff for rejecting meaningless
spelling suggestions.

Previously, we allowed an edit distance of up to half of the length of the
longer of the goal string and closest candidate strings, rounded down.

With this patch, we now allow only up to a third - with some tuning of
rounding (and for very short strings), to ensure that:
(a) everything that worked before still works (with the removal of a
couple of cases that shouldn't), and that
(b) the new threshold is always at least as conservative as the old
threshold and thus shouldn't offer new nonsensical suggestions (with
the possible exception of cases where transposition has helped; see
r261521 aka Damerau-Levenshtein; PR other/69968).

In particular, all of the bogus suggestions from PR c/82967 are now
no longer offered.

gcc/ChangeLog:
	PR c/82967
	* spellcheck.c (get_edit_distance_cutoff): New function.
	(selftest::test_edit_distance_unit_test_oneway): Rename to...
	(selftest::test_get_edit_distance_one_way): ...this.
	(selftest::test_get_edit_distance_unit): Rename to...
	(selftest::test_get_edit_distance_both_ways): ...this.
	(selftest::test_edit_distances): Move tests to this new function,
	and test some more pairs of strings.  Update for above renaming.
	(selftest::get_old_cutoff): New function.
	(selftest::test_get_edit_distance_cutoff): New function.
	(selftest::assert_suggested_for): New function.
	(ASSERT_SUGGESTED_FOR): New macro.
	(selftest::assert_not_suggested_for): New function.
	(ASSERT_NOT_SUGGESTED_FOR): New macro.
	(selftest::test_suggestions): New function.
	(selftest::spellcheck_c_tests): Move test_get_edit_distance_unit
	tests to selftest::test_edit_distances and call it.  Add calls to
	selftest::test_get_edit_distance_cutoff and
	selftest::test_suggestions.
	* spellcheck.h (get_edit_distance_cutoff): New function declaration.
	(best_match::consider): Replace hard-coded cutoff calculation with
	a call to...
	(best_match::get_cutoff): New declaration.
	(best_match::get_best_meaningful_candidate): Likewise.

gcc/testsuite/ChangeLog:
	PR c/82967
	* c-c++-common/attributes-1.c: Remove bogus suggestion from
	dg-prune-output.
	* gcc.dg/diagnostic-token-ranges.c (undeclared_identifier): Remove
	bogus suggestion.
	* gcc.dg/spellcheck-identifiers-4.c: New test.

From-SVN: r264335
2018-09-14 22:02:58 +00:00
Bernd Edlinger
2870a4da4f builtins.c (fold_builtin_strlen): Remove TODO comment.
2018-09-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * builtins.c (fold_builtin_strlen): Remove TODO comment.

testsuite:
2018-09-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.dg/warn-strlen-no-nul.c: Add some missing test cases.

From-SVN: r264334
2018-09-14 20:36:19 +00:00
Bernd Edlinger
05172c0937 fix previous commit message
From-SVN: r264333
2018-09-14 20:14:20 +00:00
Bernd Edlinger
a70f3820a0 2018-09-14 Bernd Edlinger msebor@redhat.com>
revert:
        2018-07-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL
        terminated string literal.

From-SVN: r264332
2018-09-14 19:56:32 +00:00
Ian Lance Taylor
e47515aa89 cmd/go: correct gccgo buildid file on ARM
Bring in https://golang.org/cl/135297 from the gc repository to fix a
    GCC bug report.
    
    Original CL description:
    
        The GNU assembler for ARM treats @ as a comment character, so section
        types must be written using % instead.
    
        Fixes https://gcc.gnu.org/PR87260.
    
    Reviewed-on: https://go-review.googlesource.com/135360

From-SVN: r264330
2018-09-14 19:42:01 +00:00
Martin Sebor
01b0acb761 builtins.c (unterminated_array): Handle ARRAY_REF.
* builtins.c (unterminated_array): Handle ARRAY_REF.
	(expand_builtin_stpcpy_1): Detect unterminated char arrays.
	* builtins.h (unterminated_array): Declare extern.
	* gimple-fold.c (gimple_fold_builtin_stpcpy): Detect unterminated
	  arrays.
	(gimple_fold_builtin_sprintf): Propagate NO_WARNING to transformed
	calls.

	* gcc.dg/warn-stpcpy-no-nul.c: New test.

From-SVN: r264328
2018-09-14 12:35:26 -06:00
Martin Sebor
e08341bb0e builtins.c (unterminated_array): New.
* builtins.c (unterminated_array): New.
	(expand_builtin_strcpy): Adjust.
	(expand_builtin_strcpy_args): Detect unterminated arrays.
	* gimple-fold.c (get_maxval_strlen): Add argument.  Detect
	unterminated arrays.
	* gimple-fold.h (get_maxval_strlen): Add argument.
	(gimple_fold_builtin_strcpy): Detec unterminated arrays.

	* gimple-fold.c (get_range_strlen): Add argument.
	(get_maxval_strlen): Adjust.
	* gimple-fold.h (get_range_strlen): Add argument.

	* gcc.dg/warn-strcpy-no-nul.c: New test.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r264327
2018-09-14 12:23:58 -06:00
Wei Xiao
dd98382b8b * config/i386/movdirintrin.h: Fix copyright year.
From-SVN: r264326
2018-09-14 11:03:09 -06:00
Ian Lance Taylor
2a7ba9243e compiler: don't use address of temporary for deferred delete
This CL corrects the handling of a deferred delete in a loop, to not
    use a temporary whose value will, at deferred execution time, wind up
    being the last value in the loop.
    
    The test for this is TestDeferDeleteSlow in the 1.11 runtime package.
    
    Reviewed-on: https://go-review.googlesource.com/135358

From-SVN: r264325
2018-09-14 16:55:41 +00:00
Martin Sebor
98ef99ab97 c++/61941 - Mis-parsing of warn_unused_result function with ref-qualifiers
gcc/testsuite/ChangeLog:
	* g++.dg/pr61941.C: New test.

From-SVN: r264324
2018-09-14 10:41:37 -06:00
Kyrylo Tkachov
1b1dfddf2c [AArch64][committed] Fix gcc.target/aarch64/combine_bfi_1.c
This test started failing because some of the functions in the combine dump that it scans uses a different pattern to match the same instruction: insv_regsi rather than aarch64_bfi.
The code generation is still the same.
The patch changes the scan to look for the actual instruction we want in the assembly.

This fixes the test.
Committing to trunk as obvious.

     * gcc.target/aarch64/combine_bfi_1.c: Scan for bfi instruction
     rather than pattern name in combine dump.

From-SVN: r264323
2018-09-14 16:05:42 +00:00
Uros Bizjak
0c2d23711d reg-stack.c: Include regs.h.
* reg-stack.c: Include regs.h.
	(replace_reg): Assert that mode is MODE_FLOAT or MODE_COMPLEX_FLOAT.
	(emit_pop_insn): Default pop insn mode to the reg_raw_mode of
	FIRST_STACK_REG, not DFmode.
	(emit_swap_insn): Default swap insn mode to the reg_raw_mode of
	FIRST_STACK_REG, not XFmode.  Explicitly construct swap RTX.
	(change stack): Default register mode to the reg_raw_mode of
	FIRST_STACK_REG, not DFmode.
	* config/i386/i386.md (*swap<mode>): Remove insn pattern.
	(*swapxf): Rename from swapxf.

From-SVN: r264319
2018-09-14 17:52:04 +02:00
Carl Love
8cafacb5fe emmintrin.h: Add _MM_SHUFFLE2.
gcc/ChangeLog:

2018-09-14  Carl Love  <cel@us.ibm.com>

	* config/rs6000/emmintrin.h: Add _MM_SHUFFLE2.
	* config/rs6000/xmmintrin.h: Add _MM_SHUFFLE.

From-SVN: r264317
2018-09-14 15:36:52 +00:00
Segher Boessenkool
dc928512d2 rs6000: Add another Z to go with Y (PR87224)
This is another case where we ICE because Y does not allow reg+reg, we
need Z for that.


	PR target/87224
	* config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y
	alternatives.

From-SVN: r264316
2018-09-14 17:24:47 +02:00
Sam Tebbs
2dc09f66b3 [Aarch64] Added pattern to match zero extended bfxil
gcc/
2018-07-31  Sam Tebbs  <sam.tebbs@arm.com>

	PR target/85628
	* config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Define.

gcc/testsuite
2018-07-31  Sam Tebbs  <sam.tebbs@arm.com>

	PR target/85628
	* gcc.target/aarch64/combine_bfxil.c (combine_zero_extended_int, foo6):
	New functions.

From-SVN: r264315
2018-09-14 15:16:17 +00:00
Jason Merrill
d604907d64 Fix --enable-gather-detailed-mem-stats.
* hash-table.c (hash_table_usage): Change from variable to function.
	* hash-table.h: Adjust.
	* Makefile.in: Add missing dependencies on hash-table.h.

From-SVN: r264313
2018-09-14 09:26:27 -04:00
Kyrylo Tkachov
115b470829 [tree-ssa-mathopts] PR tree-optimization/87259: Call execute_cse_reciprocals_1 before trying optimize_recip_sqrt
PR tree-optimization/87259
	PR lto/87283
	(pass_cse_reciprocals::execute): Run optimize_recip_sqrt after
	execute_cse_reciprocals_1 has tried transforming.

	PR tree-optimization/87259
	* gcc.dg/pr87259.c: New test.

From-SVN: r264312
2018-09-14 13:13:14 +00:00
Aldy Hernandez
310ee703a2 tree-vrp.c (extract_range_from_binary_expr_1): Normalize VR_VARYING for PLUS/MINUS_EXPR.
* tree-vrp.c (extract_range_from_binary_expr_1): Normalize
	VR_VARYING for PLUS/MINUS_EXPR.

From-SVN: r264307
2018-09-14 10:46:35 +00:00
Ilya Leoshkevich
e2162daa93 patching file gcc/config/s390/s390-passes.def
S/390: Improve s390-passes.def formatting

The result looks nicer in the generated pass-instances.def.

gcc/ChangeLog:

2018-09-14  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390-passes.def (INSERT_PASS_BEFORE): Improve
	formatting.

From-SVN: r264306
2018-09-14 10:15:46 +00:00
Kyrylo Tkachov
ef5057c89e [libgfortran] Fix uninitialized variable use in fallback_access
I've been tracking down a bug in a Fortran program on a newlib target and it boils down to fallback_access doing something bad.
The unconditional calls to close cause havoc when open doesn't get called due to the short-circuiting in the if-statement above
because the fd is uninitialised. In my environment GCC ends up calling close on file descriptor 0, thus trying to close stdin.

This patch tightens up the calling so that close is called only when the corresponding open call succeeded.
With this my runtime failure disappears.

Bootstrapped and tested on aarch64-none-linux-gnu.
Though that doesn't exercise this call I hope it's an obviously correct change. 

	* io/unix.c (fallback_access): Avoid calling close on
	uninitialized file descriptor.

From-SVN: r264305
2018-09-14 09:22:01 +00:00
Richard Biener
7efd5ff31d re PR middle-end/63155 (memory hog)
2018-09-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/63155
	* tree-ssa-coalesce.c (ssa_conflicts_merge): Remove conflict
	bits for the merged partition.

From-SVN: r264304
2018-09-14 06:59:21 +00:00
Martin Sebor
6ab24ea809 builtins.h (c_srlen): Add argument.
* builtins.h (c_srlen): Add argument.
	* builtins.c (warn_string_no_nul): New function.
	(c_strlen): Add argument and use it.  Update recursive calls.
	Pass DECL argument to string_constant to get info on non
	terminated strings.  Update *NONSTR as needed.
	(fold_builtin_strlen): Add argument to calls to c_strlen.
	Warn for unterminated arrays.
	(warn_string_no_null): Add prototype.
	* expr.c (string_constant): Update arguments.  Update recursive
	calls appropriately.  Detect missing NUL terminator and outermost
	declaration its missing in.
	Improve checks for arrays with nonzero lower bound or elements
	that are not a single byte.  Simplify offset computation.
	Simplify checks for non-NUL terminated strings.
	* gimple-fold.c (get_range_strlen): Add argument to c_strlen call.
	* gimple-ssa-sprintf.c (get_string_length): Remove unnecessary code.

	* gcc.dg/warn-strlen-no-nul.c: New test.

Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de>
Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r264302
2018-09-13 21:34:19 -06:00
Bernd Edlinger
d01b568a78 builtins.c (c_strlen): Handle not zero terminated STRING_CSTs correctly.
* builtins.c (c_strlen): Handle not zero terminated STRING_CSTs
	correctly.
	* fold-const.c (c_getstr): Fix function comment.  Remove unused third
	argument.  Fix range checks.
	* fold-const.h (c_getstr): Adjust protoype.
	* gimple-fold.c (gimple_fold_builtin_memory_op): Avoid folding when
	string is constant but contains no NUL byte.

From-SVN: r264301
2018-09-13 19:49:38 -06:00
Bernd Edlinger
9a9f692b6c expr.c (string_constant): Adjust function comment.
* expr.c (string_constant): Adjust function comment.
	Remove bogus check for zero termination.

From-SVN: r264300
2018-09-13 19:42:56 -06:00
GCC Administrator
ffbd4c4a25 Daily bump.
From-SVN: r264299
2018-09-14 00:16:45 +00:00
Ian Lance Taylor
cec07c4759 compiler, runtime: call gcWriteBarrier instead of writebarrierptr
In 1.11 writebarrierptr is going away, so change the compiler to call
    gcWriteBarrier instead.  We weren't using gcWriteBarrier before;
    adjust the implementation to use the putFast method.
    
    This revealed a problem in the kickoff function.  When using cgo,
    kickoff can be called on the g0 of an m allocated by newExtraM.  In
    that case the m will generally have a p, but systemstack may be called
    by wbBufFlush as part of flushing the write barrier buffer.  At that
    point the buffer is full, so we can not do a write barrier.  So adjust
    the existing code in kickoff so that in the case where we are g0,
    don't do any write barrier at all.
    
    Reviewed-on: https://go-review.googlesource.com/131395

From-SVN: r264295
2018-09-13 22:25:58 +00:00
Ian Lance Taylor
38fab7369d runtime: correct counters in sweep
In the sweep code we can sometimes see incorrect counts when
    conservative stack scanning causes us to grey an object that we
    earlier decided could be freed.  We already ignored this check, but
    adjust this case to maintain correct span counts when it happens.
    This gives us slightly more correct numbers in MemStats, and helps
    avoid a rare failure in TestReadMemStats.
    
    Also fix the free index, and cope with finding a full span when
    allocating a new one.
    
    Reviewed-on: https://go-review.googlesource.com/134216

From-SVN: r264294
2018-09-13 22:06:16 +00:00
Bernd Edlinger
84b5706abb * fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE.
From-SVN: r264293
2018-09-13 16:00:56 -06:00
Bernd Edlinger
5ec9f8cff3 varasm.c (compare_constant): Compare type size of STRING_CSTs.
* varasm.c (compare_constant): Compare type size of STRING_CSTs.
	(get_constant_size): Don't make STRING_CSTs larger than they are.
	(check_string_literal): New check function for STRING_CSTs.
	(output_constant): Use it.

From-SVN: r264292
2018-09-13 15:43:16 -06:00
Bernd Edlinger
4a426e366e * c-typeck.c (digest_init): Shorten overlength strings.
From-SVN: r264291
2018-09-13 15:40:38 -06:00
Ian Lance Taylor
84cdf51de4 compiler, runtime: open code select
This is the gofrontend version of https://golang.org/cl/37933,
    https://golang.org/cl/37934, and https://golang.org/cl/37935.
    Open code the initialization of select cases.
    
    This is a step toward updating libgo to the 1.11 release.
    
    Reviewed-on: https://go-review.googlesource.com/135000

From-SVN: r264290
2018-09-13 21:32:24 +00:00
Bernd Edlinger
283b9cafbd Fix the previous ChangeLog
From-SVN: r264287
2018-09-13 18:56:49 +00:00