]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
6 years ago cmd/go: correct gccgo buildid file on ARM
ian [Fri, 14 Sep 2018 19:42:01 +0000 (19:42 +0000)] 
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

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

6 years ago * builtins.c (unterminated_array): Handle ARRAY_REF.
law [Fri, 14 Sep 2018 18:35:26 +0000 (18:35 +0000)] 
* 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.

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

6 years ago * builtins.c (unterminated_array): New.
law [Fri, 14 Sep 2018 18:23:58 +0000 (18:23 +0000)] 
* 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.

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

6 years ago * config/i386/movdirintrin.h: Fix copyright year.
law [Fri, 14 Sep 2018 17:03:09 +0000 (17:03 +0000)] 
* config/i386/movdirintrin.h: Fix copyright year.

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

6 years ago compiler: don't use address of temporary for deferred delete
ian [Fri, 14 Sep 2018 16:55:41 +0000 (16:55 +0000)] 
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

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

6 years agoc++/61941 - Mis-parsing of warn_unused_result function with ref-qualifiers
msebor [Fri, 14 Sep 2018 16:41:37 +0000 (16:41 +0000)] 
c++/61941 - Mis-parsing of warn_unused_result function with ref-qualifiers

gcc/testsuite/ChangeLog:
* g++.dg/pr61941.C: New test.

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

6 years ago[AArch64][committed] Fix gcc.target/aarch64/combine_bfi_1.c
ktkachov [Fri, 14 Sep 2018 16:05:42 +0000 (16:05 +0000)] 
[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.

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

6 years ago * reg-stack.c: Include regs.h.
uros [Fri, 14 Sep 2018 15:52:04 +0000 (15:52 +0000)] 
* 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.

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

6 years agogcc/ChangeLog:
carll [Fri, 14 Sep 2018 15:36:52 +0000 (15:36 +0000)] 
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.

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

6 years agors6000: Add another Z to go with Y (PR87224)
segher [Fri, 14 Sep 2018 15:24:47 +0000 (15:24 +0000)] 
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.

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

6 years ago[Aarch64] Added pattern to match zero extended bfxil
samtebbs [Fri, 14 Sep 2018 15:16:17 +0000 (15:16 +0000)] 
[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.

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

6 years ago Fix --enable-gather-detailed-mem-stats.
jason [Fri, 14 Sep 2018 13:26:27 +0000 (13:26 +0000)] 
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.

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

6 years ago[tree-ssa-mathopts] PR tree-optimization/87259: Call execute_cse_reciprocals_1 before...
ktkachov [Fri, 14 Sep 2018 13:13:14 +0000 (13:13 +0000)] 
[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.

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

6 years ago * tree-vrp.c (extract_range_from_binary_expr_1): Normalize
aldyh [Fri, 14 Sep 2018 10:46:35 +0000 (10:46 +0000)] 
* tree-vrp.c (extract_range_from_binary_expr_1): Normalize
VR_VARYING for PLUS/MINUS_EXPR.

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

6 years agopatching file gcc/config/s390/s390-passes.def
iii [Fri, 14 Sep 2018 10:15:46 +0000 (10:15 +0000)] 
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.

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

6 years ago[libgfortran] Fix uninitialized variable use in fallback_access
ktkachov [Fri, 14 Sep 2018 09:22:01 +0000 (09:22 +0000)] 
[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.

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

6 years ago2018-09-14 Richard Biener <rguenther@suse.de>
rguenth [Fri, 14 Sep 2018 06:59:21 +0000 (06:59 +0000)] 
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.

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

6 years ago * builtins.h (c_srlen): Add argument.
law [Fri, 14 Sep 2018 03:34:19 +0000 (03:34 +0000)] 
* 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.

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

6 years ago * builtins.c (c_strlen): Handle not zero terminated STRING_CSTs
law [Fri, 14 Sep 2018 01:49:38 +0000 (01:49 +0000)] 
* 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.

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

6 years ago * expr.c (string_constant): Adjust function comment.
law [Fri, 14 Sep 2018 01:42:56 +0000 (01:42 +0000)] 
* expr.c (string_constant): Adjust function comment.
Remove bogus check for zero termination.

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

6 years agoDaily bump.
gccadmin [Fri, 14 Sep 2018 00:16:45 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago compiler, runtime: call gcWriteBarrier instead of writebarrierptr
ian [Thu, 13 Sep 2018 22:25:58 +0000 (22:25 +0000)] 
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

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

6 years ago runtime: correct counters in sweep
ian [Thu, 13 Sep 2018 22:06:16 +0000 (22:06 +0000)] 
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

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

6 years ago * fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE.
law [Thu, 13 Sep 2018 22:00:56 +0000 (22:00 +0000)] 
    * fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE.

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

6 years ago * varasm.c (compare_constant): Compare type size of STRING_CSTs.
law [Thu, 13 Sep 2018 21:43:16 +0000 (21:43 +0000)] 
* 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.

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

6 years ago * c-typeck.c (digest_init): Shorten overlength strings.
law [Thu, 13 Sep 2018 21:40:38 +0000 (21:40 +0000)] 
* c-typeck.c (digest_init): Shorten overlength strings.

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

6 years ago compiler, runtime: open code select
ian [Thu, 13 Sep 2018 21:32:24 +0000 (21:32 +0000)] 
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

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

6 years agoFix the previous ChangeLog
edlinger [Thu, 13 Sep 2018 18:56:49 +0000 (18:56 +0000)] 
Fix the previous ChangeLog

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

6 years ago * typeck2.c (digest_init_r): Fix overlength strings.
law [Thu, 13 Sep 2018 18:43:44 +0000 (18:43 +0000)] 
* typeck2.c (digest_init_r): Fix overlength strings.
* vtable-class-hierarchy.c (build_key_buffer_arg): Make string literal
NUL terminated.

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

6 years ago * trans-array.c (gfc_conv_array_initializer): Remove excess precision
law [Thu, 13 Sep 2018 18:42:16 +0000 (18:42 +0000)] 
* trans-array.c (gfc_conv_array_initializer): Remove excess precision
from overlength string initializers.

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

6 years ago compiler: implement //go:nowritebarrierrec
ian [Thu, 13 Sep 2018 17:49:07 +0000 (17:49 +0000)] 
compiler: implement //go:nowritebarrierrec

    Reviewed-on: https://go-review.googlesource.com/134228

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

6 years ago runtime: avoid write barriers with traceback info
ian [Thu, 13 Sep 2018 17:30:00 +0000 (17:30 +0000)] 
runtime: avoid write barriers with traceback info

    Unlike the gc runtime, libgo stores traceback information in location
    structs, which contain strings.  Therefore, copying location structs
    around appears to require write barriers, although in fact write
    barriers are never important because the strings are never allocated
    in Go memory.  They come from libbacktrace.

    Some of the generated write barriers come at times when write barriers
    are not permitted.  For example, exitsyscall, marked
    nowritebarrierrec, calls exitsyscallfast which calls traceGoSysExit
    which calls traceEvent which calls traceStackID which calls
    trace.stackTab.put which copies location values into memory allocated
    by tab.newStack.  This write barrier can be invoked when there is no
    p, causing a crash.

    This change fixes the problem by ensuring that location values are
    copied around in the tracing code with no write barriers.

    This was found by fixing the compiler to fully implement
    //go:nowritebarrierrec; CL to follow.

    Reviewed-on: https://go-review.googlesource.com/134226

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

6 years ago PR target/86812
ebotcazou [Thu, 13 Sep 2018 17:27:00 +0000 (17:27 +0000)] 
PR target/86812
* config/visium/visium.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.

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

6 years ago * Makefile.rtl (arm% linux-gnueabi%): Always set EH_MECHANISM to -arm.
ebotcazou [Thu, 13 Sep 2018 17:13:05 +0000 (17:13 +0000)] 
* Makefile.rtl (arm% linux-gnueabi%): Always set EH_MECHANISM to -arm.

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

6 years ago PR ada/81103
ebotcazou [Thu, 13 Sep 2018 17:05:40 +0000 (17:05 +0000)] 
PR ada/81103
* terminals.c: Do not include termio.h.

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

6 years ago libgo: build roots index to speed up bulkBarrierPreWrite
ian [Thu, 13 Sep 2018 16:44:43 +0000 (16:44 +0000)] 
libgo: build roots index to speed up bulkBarrierPreWrite

    To reduce the amount of time spent in write barrier processing
    (specifically runtime.bulkBarrierPreWrite), add support for building a
    'GC roots index', basically a sorted list of all roots, so as to
    allow more efficient lookups of gcdata structures for globals. The
    previous implementation worked on the raw (unsorted) roots list
    itself, which did not scale well.

    Reviewed-on: https://go-review.googlesource.com/132595

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

6 years agoAdd self to maintainers list.
matmal01 [Thu, 13 Sep 2018 16:11:29 +0000 (16:11 +0000)] 
Add self to maintainers list.

2018-09-13  Matthew Malcomson  <matthew.malcomson@arm.com>

* MAINTAINERS (Write After Approval): Add self.

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

6 years ago2018-09-13 Sam Tebbs <sam.tebbs@arm.com>
samtebbs [Thu, 13 Sep 2018 16:03:05 +0000 (16:03 +0000)] 
2018-09-13  Sam Tebbs  <sam.tebbs@arm.com>

* MAINTAINERS (write_after_approval): Add myself.

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

6 years ago2018-09-13 Richard Biener <rguenther@suse.de>
rguenth [Thu, 13 Sep 2018 14:15:41 +0000 (14:15 +0000)] 
2018-09-13  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87263
* tree-ssa-sccvn.c (visit_phi): Revert some earlier changes.
(struct unwind_state): Add max_rpo field.
(do_rpo_vn): Allow up-to-date loop state to be used when not iterating.
Compute max_rpo, the max RPO number a block can be backwards reached
from.  Re-write non-iterating mode to a RPO ordered worklist approach,
separating it from the iterating mode.

* gcc.dg/torture/pr87263.c: New testcase.
* gcc.dg/torture/ssa-fre-2.c: Likewise.
* gcc.dg/torture/ssa-fre-3.c: Likewise.
* gcc.dg/torture/ssa-fre-4.c: Likewise.

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

6 years agoLimit workaround for Clang bug to __clang_major__ <= 7
redi [Thu, 13 Sep 2018 13:47:14 +0000 (13:47 +0000)] 
Limit workaround for Clang bug to __clang_major__ <= 7

The bug https://bugs.llvm.org/show_bug.cgi?id=33222 is now fixed on
Clang trunk, so the workaround won't be needed for Clang 8.0 and later.

* include/std/variant (variant) [__clang__]: Limit workaround to
Clang 7 and older.

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

6 years agoSchedule by INSN_COST in case of tie
vladlazar [Thu, 13 Sep 2018 13:43:48 +0000 (13:43 +0000)] 
Schedule by INSN_COST in case of tie

2018-09-13  Vlad Lazar  <vlad.lazar@arm.com>

* haifa-sched.c (rank_for_schedule): Schedule by INSN_COST.
(rfs_decision): New scheduling decision.

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

6 years ago2018-09-13 Richard Biener <rguenther@suse.de>
rguenth [Thu, 13 Sep 2018 11:31:58 +0000 (11:31 +0000)] 
2018-09-13  Richard Biener  <rguenther@suse.de>

PR bootstrap/87134
* tree-ssa-sccvn.c (vn_nary_op_insert_into): Fix assert.
(vn_nary_op_insert_pieces_predicated): Do not write useless
valid_dominated_by_p entry outside of the allocated storage.

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

6 years ago[debug] DWARF: add DW_AT_count to zero-length arrays
vries [Thu, 13 Sep 2018 10:27:12 +0000 (10:27 +0000)] 
[debug] DWARF: add DW_AT_count to zero-length arrays

2018-09-13  Omar Sandoval  <osandov@osandov.com>
    Tom de Vries  <tdevries@suse.de>

PR debug/86985
* dwarf2out.c (is_c): New function.
(add_subscript_info): Add DW_AT_count of 0 for C zero-length arrays.

* gcc.dg/guality/zero-length-array.c: New test.

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

6 years ago[Aarch64] Exploiting BFXIL when OR-ing two AND-operations with appropriate bitmasks
ktkachov [Thu, 13 Sep 2018 09:46:55 +0000 (09:46 +0000)] 
[Aarch64] Exploiting BFXIL when OR-ing two AND-operations with appropriate bitmasks

2018-09-13  Sam Tebbs  <sam.tebbs@arm.com>

PR target/85628
* config/aarch64/aarch64.md (*aarch64_bfxil):
Define.
* config/aarch64/constraints.md (Ulc): Define.
* config/aarch64/aarch64-protos.h (aarch64_high_bits_all_ones_p):
Define.
* config/aarch64/aarch64.c (aarch64_high_bits_all_ones_p):
New function.

* gcc.target/aarch64/combine_bfxil.c: New file.
* gcc.target/aarch64/combine_bfxil_2.c: New file.

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

6 years ago[AArch64] Add support for TARGET_COMPUTE_FRAME_LAYOUT
vladlazar [Thu, 13 Sep 2018 09:36:58 +0000 (09:36 +0000)] 
[AArch64] Add support for TARGET_COMPUTE_FRAME_LAYOUT

The patch adds support for the TARGET_COMPUTE_FRAME_LAYOUT hook on AArch64
and removes unneeded frame layout recalculation.

2018-09-13  Vlad Lazar  <vlad.lazar@arm.com>

* config/aarch64/aarch64.h (TARGET_COMPUTE_FRAME_LAYOUT): Define.
* config/aarch64/aarch64.c (aarch64_expand_prologue): Remove
aarch64_layout_frame call.
(aarch64_expand_epilogue): Likewise.
(aarch64_initial_elimination_offset): Likewise.
(aarch64_get_separate_components): Likewise.
(aarch64_use_return_insn_p): Likewise.
(aarch64_layout_frame): Remove unneeded check.

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

6 years ago * configure.ac: Only append
jakub [Thu, 13 Sep 2018 07:43:29 +0000 (07:43 +0000)] 
* configure.ac: Only append
" : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" to
gcc_config_arguments if it was never reconfigured or last reconfigure
was with different arguments.
* configure: Regenerated.

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

6 years ago PR middle-end/87290
jakub [Thu, 13 Sep 2018 07:42:55 +0000 (07:42 +0000)] 
PR middle-end/87290
* expr.c (maybe_optimize_pow2p_mod_cmp): New function.
(maybe_optimize_mod_cmp): Use it if integer_pow2p treeop1.

* gcc.target/i386/pr87290.c: New test.
* gcc.c-torture/execute/pr87290.c: New test.

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

6 years ago PR tree-optimization/87287
jakub [Thu, 13 Sep 2018 07:36:50 +0000 (07:36 +0000)] 
PR tree-optimization/87287
* fold-const.c (fold_binary_loc) <case EQ_EXPR>: Move signed modulo
X % C == 0 to X % (unsigned) C == 0 optimization to ...
* match.pd (X % C == 0): ... here.  New optimization.

* gcc.dg/tree-ssa/pr87287.c: New test.

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

6 years ago compiler: omit a couple of write barriers
ian [Thu, 13 Sep 2018 00:45:55 +0000 (00:45 +0000)] 
compiler: omit a couple of write barriers

    Omit a write barrier for
        s = s[0:]
    for a slice s.  In this case the pointer is not changing and no write
    barrier is required.

    Omit a write barrier for
        s = append(s, v)
    in the case where len(s) < cap(s) (and similarly when appending more
    values).  When the slice has enough capacity the pointer is not
    changing and no write barrier is required.

    These changes are required to avoid write barriers in the method
    randomOrder.reset in the runtime package.  That method is called from
    procresize, at a point where we do not want to allocate memory.
    Otherwise that method can use a write barrier, allocate memory, and
    break TestReadMemStats.

    Reviewed-on: https://go-review.googlesource.com/134219

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

6 years agoDaily bump.
gccadmin [Thu, 13 Sep 2018 00:16:32 +0000 (00:16 +0000)] 
Daily bump.

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

6 years agoPR c++/87093
ville [Wed, 12 Sep 2018 21:10:43 +0000 (21:10 +0000)] 
PR c++/87093

gcc/cp

PR c++/87093
* method.c (constructible_expr): We're in an unevaluated context
in all cases, not just for class targets.

testsuite/

PR c++/87093
* g++.dg/ext/is_constructible2.C: New.

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

6 years agoC++: special-case single non-viable candidate (more PR c++/85110)
dmalcolm [Wed, 12 Sep 2018 18:50:08 +0000 (18:50 +0000)] 
C++: special-case single non-viable candidate (more PR c++/85110)

I broke out the "no viable candidates" case in build_new_method_call_1
into a subroutine, and added special-case handling for when there's
a single non-viable candidate where there's an argument conversion
error.  I turned the error-handling from convert_for_assignment into
a subroutine, calling it from this new special-case.

This converts:

demo.cc: In function 'int test_4(int, const char*, float)':
demo.cc:5:44: error: no matching function for call to 's4::member_1(int&, const char*&, float&)'
5 |   return s4::member_1 (first, second, third);
  |                                            ^
demo.cc:1:24: note: candidate: 'static int s4::member_1(int, const char**, float)'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                        ^~~~~~~~
demo.cc:1:56: note:   no known conversion for argument 2 from 'const char*' to 'const char**'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                                           ~~~~~~~~~~~~~^~~

to:

demo.cc: In function 'int test_4(int, const char*, float)':
demo.cc:5:31: error: cannot convert 'const char*' to 'const char**'
5 |   return s4::member_1 (first, second, third);
  |                               ^~~~~~
  |                               |
  |                               const char*
demo.cc:1:56: note:   initializing argument 2 of 'static int s4::member_1(int, const char**, float)'
1 | struct s4 { static int member_1 (int one, const char **two, float three); };
  |                                           ~~~~~~~~~~~~~^~~

thus highlighting the problematic argument at the callsite (and its type).

gcc/cp/ChangeLog:
PR c++/85110
* call.c (struct conversion_info): Add "loc" field.
(arg_conversion_rejection): Add "loc" param, using it to
initialize the new field.
(bad_arg_conversion_rejection): Likewise.
(explicit_conversion_rejection): Initialize the new field to
UNKNOWN_LOCATION.
(template_conversion_rejection): Likewise.
(add_function_candidate): Pass on the argument location to the new
param of arg_conversion_rejection.
(add_conv_candidate): Likewise.
(build_builtin_candidate): Likewise.
(build_user_type_conversion_1): Likewise.
(single_z_candidate): New function.
(maybe_get_bad_conversion_for_unmatched_call): New function.
(complain_about_bad_argument): New function, based on part of
convert_for_assignment.
(build_new_method_call_1): Split out handling of the "no viable
candidates" case into...
(complain_about_no_candidates_for_method_call): ...this new
function, and use the new functions above to special-case the
handling of a single non-viable candidate due to a bad argument.
* cp-tree.h (complain_about_bad_argument): New decl.
* typeck.c (convert_for_assignment): Split out one error-handling
case into complain_about_bad_argument.

gcc/testsuite/ChangeLog:
PR c++/85110
* g++.dg/cpp0x/explicit4.C: Update expected output to reflect
special-casing of diagnostic for a single non-viable candidate due
to a bad argument.
* g++.dg/diagnostic/param-type-mismatch-2.C: Likewise.
Add test coverage for an unmatched overloaded operator.
* g++.dg/expr/pmf-1.C: Likewise.
* g++.old-deja/g++.bugs/900330_02.C: Likewise.
* g++.old-deja/g++.jason/conversion11.C: Likewise.
* g++.old-deja/g++.law/arg11.C: Likewise.
* g++.old-deja/g++.law/arm9.C: Likewise.
* g++.old-deja/g++.robertl/eb131.C: Likewise.

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

6 years ago2018-09-12 Paul Thomas <pault@gcc.gnu.org>
pault [Wed, 12 Sep 2018 18:33:13 +0000 (18:33 +0000)] 
2018-09-12  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87284
* trans-expr.c (gfc_trans_class_init_assign): Access to
to array elements of the dynamic type requires that the array
reference be added to the class expression and not the _data
component, unlike scalar expressions.

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

PR fortran/87284
* gfortran.dg/allocate_with_mold_2.f90: New test.

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

6 years ago PR middle-end/82853
jakub [Wed, 12 Sep 2018 18:28:20 +0000 (18:28 +0000)] 
PR middle-end/82853
* expr.h (maybe_optimize_mod_cmp): Declare.
* expr.c (mod_inv): New function.
(maybe_optimize_mod_cmp): New function.
(do_store_flag): Use it.
* cfgexpand.c (expand_gimple_cond): Likewise.

* gcc.target/i386/pr82853-1.c: New test.
* gcc.target/i386/pr82853-2.c: New test.

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

6 years ago[OpenACC] C++ reference mapping
jules [Wed, 12 Sep 2018 15:21:19 +0000 (15:21 +0000)] 
[OpenACC] C++ reference mapping

2018-09-09  Cesar Philippidis  <cesar@codesourcery.com>
    Julian Brown  <julian@codesourcery.com>

PR middle-end/86336

gcc/cp/
* semantics.c (finish_omp_clauses): Treat C++ references the same in
OpenACC as OpenMP.

gcc/
* gimplify.c (gimplify_scan_omp_clauses): Set
target_firstprivatize_array_bases in OpenACC parallel and kernels
region contexts.  Remove GOMP_MAP_FIRSTPRIVATE_REFERENCE clauses from
OpenACC data regions.

libgomp/
* testsuite/libgomp.oacc-c++/non-scalar-data.C: Remove XFAIL.

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

6 years ago * config/i386/i386.md (sqrt_extend<mode>xf3_i387): Remove.
uros [Wed, 12 Sep 2018 15:04:41 +0000 (15:04 +0000)] 
* config/i386/i386.md (sqrt_extend<mode>xf3_i387): Remove.
(sqrt<mode>2): Extend operand 1 to XFmode and generate sqrtxf3 insn.

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

6 years ago2018-09-12 Richard Biener <rguenther@suse.de>
rguenth [Wed, 12 Sep 2018 14:03:21 +0000 (14:03 +0000)] 
2018-09-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87280
* tree-ssa-sccvn.c (process_bb): Handle the case of executable
edge but unreachable target.
(do_rpo_vn): For conservatively handling a PHI only mark
the backedge executable but not the block reachable.

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

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

6 years agoFix interleaving of Fortran STOP messages
ams [Wed, 12 Sep 2018 13:53:34 +0000 (13:53 +0000)] 
Fix interleaving of Fortran STOP messages

Fortran STOP and ERROR STOP use a different function to print the "STOP" string
and the message string.  On GCN this results in out-of-order output, such as
"<msg>ERROR STOP ".

This patch fixes the problem by making estr_write use the proper Fortran write,
not C printf, so both parts are now output the same way.  This also ensures
that both parts are output to STDERR (not that that means anything on GCN).

2018-09-12  Kwok Cheung Yeung  <kcy@codesourcery.com>

libgfortran/
* runtime/minimal.c (estr_write): Define in terms of write.

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

6 years agoFix Fortran STOP.
ams [Wed, 12 Sep 2018 13:53:32 +0000 (13:53 +0000)] 
Fix Fortran STOP.

The minimal libgfortran setup was created for NVPTX, but will also be used by
AMD GCN.

This patch simply removes an assumption that NVPTX is the only user.
Specifically, NVPTX exit is broken, but AMD GCN exit works just fine.

2018-09-12  Andrew Stubbs  <ams@codesourcery.com>

libgfortran/
* runtime/minimal.c (exit): Only work around nvptx bugs on nvptx.

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

6 years ago2018-09-12 Richard Biener <rguenther@suse.de>
rguenth [Wed, 12 Sep 2018 12:14:27 +0000 (12:14 +0000)] 
2018-09-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87266
* tree-ssa-sccvn.c (do_rpo_vn): Always iterate to not yet
visited blocks.

* gcc.dg/torture/pr87266-1.c: New testcase.
* gcc.dg/torture/pr87266-2.c: Likewise.
* gcc.dg/torture/pr87266-3.c: Likewise.
* gcc.dg/torture/pr87266-4.c: Likewise.

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

6 years agoS/390: Use proper rounding mode for DFP to BFD conversions
krebbel [Wed, 12 Sep 2018 10:58:42 +0000 (10:58 +0000)] 
S/390: Use proper rounding mode for DFP to BFD conversions

According to IEEE 754 2008 4.3 'Rounding-direction attributes' the
rounding mode of the target format needs to be used. By not setting
the value so far we have always used the DFP rounding mode.

gcc/ChangeLog:

2018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New
constants.
("trunc<BFP:mode><DFP_ALL:mode>2")
("trunc<DFP_ALL:mode><BFP:mode>2")
("extend<BFP:mode><DFP_ALL:mode>2")
("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode
according to the target operand type.

gcc/testsuite/ChangeLog:

2018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>

* gcc.target/s390/dfp_to_bfp_rounding.c: New test.

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

6 years agoAdd quotes for -fconstexpr-depth= in an error message.
marxin [Wed, 12 Sep 2018 10:39:45 +0000 (10:39 +0000)] 
Add quotes for -fconstexpr-depth= in an error message.

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

6 years ago PR tree-optimization/86844
jakub [Wed, 12 Sep 2018 09:25:07 +0000 (09:25 +0000)] 
PR tree-optimization/86844
* gimple-ssa-store-merging.c
(imm_store_chain_info::coalesce_immediate): For overlapping stores, if
there are any overlapping stores in between them, make sure they are
also coalesced or we give up completely.

* gcc.c-torture/execute/pr86844.c: New test.
* gcc.dg/store_merging_22.c: New test.
* gcc.dg/store_merging_23.c: New test.

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

6 years ago PR middle-end/87248
jakub [Wed, 12 Sep 2018 09:18:55 +0000 (09:18 +0000)] 
PR middle-end/87248
* fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that
BIT_AND_EXPR's second operand is a power of two.  Formatting fix.

* c-c++-common/torture/pr87248.c: New test.

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

6 years ago[debug] Add -gdescribe-dies
vries [Wed, 12 Sep 2018 07:27:26 +0000 (07:27 +0000)] 
[debug] Add -gdescribe-dies

This patch adds option -gdescribe-dies.  It sets the DW_AT_description
attribute of dies that do not get a DW_AT_name attribute, to make it easier
to figure out what the die is describing.

The option exports the names of artificial variables:
...
 DIE    0: DW_TAG_variable (0x7fa934dd54b0)
+  DW_AT_description: "D.1922"
   DW_AT_type: die -> 0 (0x7fa934dd0d70)
   DW_AT_artificial: 1

...
which can be traced back to gimple dumps:
...
  char a[0:D.1922] [value-expr: *a.0];
...

Furthermore, it adds names to external references:
...
 DIE    0: DW_TAG_subprogram (0x7fa88b9650f0)
+DW_AT_description: "main"
 DW_AT_abstract_origin: die -> label: vla_1.c.6719312a + 29 (0x7fa88b965140)
...
and likewise to DW_TAG_call_site_parameter DIEs.

Bootstrapped and reg-tested on x86_64.

2018-09-12  Tom de Vries  <tdevries@suse.de>

* common.opt (gdescribe-dies): Add option.
* dwarf2out.c (add_name_and_src_coords_attributes): Add description
attribute for artifical and nameless decls.
(dwarf2out_register_external_die): Add description attribute to
external reference die.
(add_desc_attribute): New functions.
(gen_subprogram_die): Add description attribute to
DW_TAG_call_site_parameter.
* tree-pretty-print.c (print_generic_expr_to_str): New function.
* tree-pretty-print.h (print_generic_expr_to_str): Declare.
* doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and
-gno-describe-dies.
(@item -gdescribe-dies): Add.

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

6 years ago * tree-vrp.c (vrp_shift_undefined_p): Remove.
aldyh [Wed, 12 Sep 2018 07:04:19 +0000 (07:04 +0000)] 
* tree-vrp.c (vrp_shift_undefined_p): Remove.
(extract_range_from_binary_expr_1: Call
wide_int_range_shift_undefined_p instead of vrp_shift_undefined_p.
* wide-int-range.h (wide_int_range_shift_undefined_p): Do not
depend on sign.

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

6 years ago * gimple-ssa-warn-alloca.c
aldyh [Wed, 12 Sep 2018 06:50:34 +0000 (06:50 +0000)] 
* gimple-ssa-warn-alloca.c
(alloca_type_and_limit::alloca_type_and_limit): Initialize limit
field for ALLOCA_BOUND_*_LARGE.

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

6 years agoDaily bump.
gccadmin [Wed, 12 Sep 2018 00:16:47 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago * gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'.
nathan [Tue, 11 Sep 2018 21:34:14 +0000 (21:34 +0000)] 
* gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'.

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

6 years ago * reg-stack.c (subst_asm_stack_regs): Call replace_reg also
uros [Tue, 11 Sep 2018 19:36:35 +0000 (19:36 +0000)] 
* reg-stack.c (subst_asm_stack_regs): Call replace_reg also
for clobbers.  Remove obsolete comment.

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

6 years agofix PR 87172
janus [Tue, 11 Sep 2018 17:44:04 +0000 (17:44 +0000)] 
fix PR 87172

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

PR fortran/87172
* resolve.c (resolve_fl_derived): If a type has the 'use_assoc'
attribute, then it was declared in another module, so there should be
no error that it has not been declared.

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

PR fortran/87172
* gfortran.dg/iso_c_binding_only_2.f90: New test case.

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

6 years ago * config/i386/i386.md (define_attr "type"): Remove mpxmov, mpxmk,
uros [Tue, 11 Sep 2018 16:53:15 +0000 (16:53 +0000)] 
* config/i386/i386.md (define_attr "type"): Remove mpxmov, mpxmk,
mpxchk, mpxld and mpxst types.
(define_attr length_immediate): Remove all processing of mpx types.
(define_attr prefix_0f): Ditto.
(define_attr memory): Ditto.

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

6 years ago * config/i386/i386.md (fyl2x_extend<mode>xf3_i387): Remove.
uros [Tue, 11 Sep 2018 16:42:35 +0000 (16:42 +0000)] 
* config/i386/i386.md (fyl2x_extend<mode>xf3_i387): Remove.
(log<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate logxf3 insn.
(log10<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate log10xf3 insn.
(log2<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate log2xf3 insn.
(fyl2xp1_extend<mode>xf3_i387): Remove.
(log1p<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate log1pxf3 insn.
(fxtract_extend<mode>xf3_i387): Remove.
(logb<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate logbxf3 insn.
(ilogb<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate fxtractxf3_i387 insn.
(significand<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate significandxf3 insn.

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

6 years ago2018-09-11 Paul Thomas <pault@gcc.gnu.org>
pault [Tue, 11 Sep 2018 15:59:07 +0000 (15:59 +0000)] 
2018-09-11  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87277
* expr.c (is_subref_array): Add the check of dimensionality for
class, dummy, pointer arrays.

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

PR fortran/87277
* gfortran.dg/select_type_43.f90: New test.

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

6 years ago[driver] Use regular error routines
nathan [Tue, 11 Sep 2018 15:03:05 +0000 (15:03 +0000)] 
[driver] Use regular error routines

https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00545.html
* gcc.c (perror_with_name, pfatal_with_name): Delete.
(load_specs): Use fatal_error.
(DELETE_IF_ORDINARY, process_command): Use error.
(execute, run_attempt): Use fatal_error.

* gcc.dg/driver-specs.c: New.

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

6 years agoPR libstdc++/87278 restore support for std::make_shared<volatile T>()
redi [Tue, 11 Sep 2018 11:50:39 +0000 (11:50 +0000)] 
PR libstdc++/87278 restore support for std::make_shared<volatile T>()

PR libstdc++/87278
* include/bits/shared_ptr.h (make_shared): Use remove_cv instead of
remove_const.
* testsuite/20_util/shared_ptr/creation/87278.cc: New test.

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

6 years agoImplement LWG 2905 changes to constrain unique_ptr constructors
redi [Tue, 11 Sep 2018 10:55:49 +0000 (10:55 +0000)] 
Implement LWG 2905 changes to constrain unique_ptr constructors

LWG DR 2905 says that is_constructible_v<unique_ptr<P, D>, P, D const &>
should be false when D is not copy constructible. This commit implements
the changes from the DR and simplifies the signatures as per
https://github.com/cplusplus/draft/issues/1530

* include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to
check deleter type.
(unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy
constructible constraint.
(unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for
deleters of reference type and add move constructible constraint.
(unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)):
Disable for deleters of non-reference type. Define as deleted.
(unique_ptr<T[], D>): Likewise.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
directives with unstable line numbers with dg-prune-output.
* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test.
* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
Make deleter types invocable.

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

6 years agoFix typo in my last ChangeLog entry.
aldyh [Tue, 11 Sep 2018 10:36:20 +0000 (10:36 +0000)] 
Fix typo in my last ChangeLog entry.

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

6 years agoAdd sorry_at diagnostic function.
ams [Tue, 11 Sep 2018 10:26:57 +0000 (10:26 +0000)] 
Add sorry_at diagnostic function.

The plain "sorry" diagnostic only gives the "current" location, which is
typically the last line of the function or translation unit by time we get to
the back end.

GCN uses "sorry" to report unsupported language features, such as static
constructors, so it's useful to have a "sorry_at" variant.

This patch implements "sorry_at" according to the pattern of the other "at"
variants.

2018-09-11  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* diagnostic-core.h (sorry_at): New prototype.
* diagnostic.c (sorry_at): New function.

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

6 years ago * tree-vrp (extract_range_from_binary_expr_1): Treat all divisions
aldyh [Tue, 11 Sep 2018 10:19:45 +0000 (10:19 +0000)] 
* tree-vrp (extract_range_from_binary_expr_1): Treat all divisions
by zero as VR_UNDEFINED.

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

6 years ago2018-09-11 Joey Ye <joey.ye@arm.com>
jye2 [Tue, 11 Sep 2018 08:55:25 +0000 (08:55 +0000)] 
2018-09-11  Joey Ye  <joey.ye@arm.com>

    * lib/gcov.exp (verify-intermediate): Add missing close.

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

6 years agofix PR 86830
janus [Tue, 11 Sep 2018 06:33:39 +0000 (06:33 +0000)] 
fix PR 86830

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

PR fortran/86830
* expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls
with non-polymorphic objects.

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

PR fortran/86830
* gfortran.dg/typebound_call_30.f90: New test case.

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

6 years agoDaily bump.
gccadmin [Tue, 11 Sep 2018 00:16:33 +0000 (00:16 +0000)] 
Daily bump.

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

6 years agofix PR 85395
janus [Mon, 10 Sep 2018 21:25:33 +0000 (21:25 +0000)] 
fix PR 85395

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

PR fortran/85395
* decl.c (match_binding_attributes): Use correct default accessibility
for procedure pointer components.

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

PR fortran/85395
* gfortran.dg/proc_ptr_comp_52.f90: New test case.

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

6 years ago * config/i386/i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387.
uros [Mon, 10 Sep 2018 19:13:49 +0000 (19:13 +0000)] 
* config/i386/i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387.
(*<sincos>_extend<mode>xf2_i387): Remove insn pattern.
(<sincos>mode2): New expander.
(sincos_extend<mode>xf3_i387): Remove insn pattern.
(sincos -> sin, cos splitters): Remove splitter patterns.
(sincos<mode>3): Change operand 2 predicate to general_operand.
Extend operand 2 to XFmode and generate sincosxf3 insn.
(fptanxf4_i387): Change mode of operands 0 and 3 to SFmode.
Change operand 3 predicate to const1_operand.
(fptan_extend<mode>xf4_i387): Remove insn pattern.
(tanxf2): Update operands in the call to fptanxf4_i387.
(tan<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate tanxf3 insn.
(atan2xf3): Rename from *fpatanxf3_i387.
(fpatan_extend<mode>xf3_i387): Remove insn pattern.
(atan2xf3): Remove expander.
(atan2<mode<3):  Change operand 1 and 2 predicates to general_operand.
Extend operands 1 and 2 to XFmode and generate atan2xf3 insn.
(atan<mode>2): Change operand 1 predicate to general_operand.
Extend operand 1 to XFmode and generate atanxf3 insn.

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

6 years ago * config/i386/i386.md (x87/SSE constant load splitter): Use
uros [Mon, 10 Sep 2018 18:46:11 +0000 (18:46 +0000)] 
* config/i386/i386.md (x87/SSE constant load splitter): Use
memory_operand instead of nonimmediate_operand for input operand
predicate.

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

6 years ago * class.c (build_vtbl_ref): Remove.
mpolacek [Mon, 10 Sep 2018 14:49:18 +0000 (14:49 +0000)] 
* class.c (build_vtbl_ref): Remove.
(build_vtbl_ref_1): Rename to build_vtbl_ref.
(build_vfn_ref): Call build_vtbl_ref instead of build_vtbl_ref_1.

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

6 years agoDaily bump.
gccadmin [Mon, 10 Sep 2018 00:16:42 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago * config/i386/i386.md (float partial SSE register stall splitter): Move
uros [Sun, 9 Sep 2018 21:32:08 +0000 (21:32 +0000)] 
* config/i386/i386.md (float partial SSE register stall splitter): Move
splitter near its instruction pattern.
(float_extend partial SSE register stall splitter): Ditto.
(float_truncate partial SSE register stall splitter): Ditto.

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

6 years ago PR target/86794
hp [Sun, 9 Sep 2018 18:13:18 +0000 (18:13 +0000)] 
PR target/86794
* config/mmix/mmix.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine
to speculation_safe_value_not_needed.

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

6 years ago PR target/85666
hp [Sun, 9 Sep 2018 18:12:14 +0000 (18:12 +0000)] 
PR target/85666
* config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size
non-CONST_INT rtx:es using assemble_integer_with_op ".byte".

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

6 years ago PR target/85666
hp [Sun, 9 Sep 2018 18:05:48 +0000 (18:05 +0000)] 
PR target/85666
* config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't
call leaf_function_p, instead use has_hard_reg_initial_val.

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

6 years ago compiler: make sure type descriptor initializers go in .rodata
ian [Sun, 9 Sep 2018 13:26:17 +0000 (13:26 +0000)] 
compiler: make sure type descriptor initializers go in .rodata

    When creating type descriptor variables, the compiler (specifically
    Type::make_type_descriptor_var) invokes the immutable_struct() and
    immutable_struct_set_init() back end methods, so as to insure that
    these items go into the ".rodata" section of the generate object file.
    The expression initializers for these variables can contain nested
    subexpressions, however, and these subexpressions were not always
    being placed into .rodata. This patch changes the backend-gen code for
    slice initializers to emit implicit variables into .rodata if those
    initializers are part of a type descriptor init.

    Reviewed-on: https://go-review.googlesource.com/132596

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

6 years ago[PATCH] internalize a driver fn
nathan [Sun, 9 Sep 2018 07:42:17 +0000 (07:42 +0000)] 
[PATCH] internalize a driver fn

https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00462.html
* gcc.h (pfatal_with_name): Don't declare here.
* gcc.c (pfatal_with_name): Make static.

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

6 years ago2018-09-09 Xianmiao Qu <xianmiao_qu@c-sky.com>
xianmiao [Sun, 9 Sep 2018 04:06:16 +0000 (04:06 +0000)] 
2018-09-09  Xianmiao Qu  <xianmiao_qu@c-sky.com>

* config/csky/csky.md (*cskyv2_adddi3, *cskyv2_subdi3): Add
earlyclobber.

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

6 years agoDaily bump.
gccadmin [Sun, 9 Sep 2018 00:16:52 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago PR c++/87150 - wrong ctor with maybe-rvalue semantics.
mpolacek [Sat, 8 Sep 2018 17:36:08 +0000 (17:36 +0000)] 
PR c++/87150 - wrong ctor with maybe-rvalue semantics.
* call.c (struct conversion): Update commentary.
(standard_conversion): Set rvaluedness_matches_p if LOOKUP_PREFER_RVALUE
for ck_base.

* g++.dg/cpp0x/move-return2.C: New test.

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

6 years ago PR c++/86678 - constexpr function with non-constant after return.
jason [Sat, 8 Sep 2018 16:00:02 +0000 (16:00 +0000)] 
PR c++/86678 - constexpr function with non-constant after return.

In this testcase, the call to f() can never be a constant
expression, but that's not a problem because it isn't always
reached by calls to g.  We were wrongly rejecting this because
potential_constant_expression_1 lacked the jump tracking that
cxx_eval_constant_expression has.  So this patch adds a simpler
version of that tracking.

* constexpr.c (potential_constant_expression_1): Add jump_target.
(breaks): Check for BREAK_STMT.
(continues): Check for CONTINUE_STMT.

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

6 years ago * cxx-pretty-print.c (cxx_pretty_printer::statement) <case
mpolacek [Sat, 8 Sep 2018 14:31:24 +0000 (14:31 +0000)] 
* cxx-pretty-print.c (cxx_pretty_printer::statement) <case
RANGE_FOR_SMT>: Handle RANGE_FOR_INIT_STMT.

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

6 years ago * c-c++-common/array-init.c: Add dg-prune-output.
mpolacek [Sat, 8 Sep 2018 14:27:25 +0000 (14:27 +0000)] 
* c-c++-common/array-init.c: Add dg-prune-output.
* g++.dg/cpp0x/lambda/lambda-const-this.C: Add dg-warning.
* g++.dg/cpp0x/lambda/lambda-in-class-neg.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-in-class.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-nested.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-nsdmi1.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-nsdmi4.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this17.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this18.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this2.C: Likewise.
* g++.dg/cpp0x/lambda/lambda-this8.C: Likewise.
* g++.dg/cpp1y/pr64382.C: Likewise.
* g++.dg/cpp1y/pr77739.C: Likewise.
* g++.dg/cpp1z/lambda-this1.C: Likewise.
* g++.dg/cpp1z/lambda-this2.C: Likewise.
* g++.dg/template/crash84.C: Adjust dg-error.

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