platform/upstream/gcc.git
6 years agore PR libgomp/84466 (libgomp.graphite/force-parallel-8.c fails starting with r257723)
Richard Biener [Tue, 27 Feb 2018 14:45:46 +0000 (14:45 +0000)]
re PR libgomp/84466 (libgomp.graphite/force-parallel-8.c fails starting with r257723)

2018-02-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/84466
* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
Adjust last change to less strictly validate use operands.

From-SVN: r258035

6 years agoMake groups more generic (PR gcov-profile/84548).
Martin Liska [Tue, 27 Feb 2018 14:11:08 +0000 (15:11 +0100)]
Make groups more generic (PR gcov-profile/84548).

2018-02-27  Martin Liska  <mliska@suse.cz>

PR gcov-profile/84548
* gcov.c (process_file): Allow partial overlap and consider it
also as group functions.
(output_lines): Properly calculate range of lines for a group.
2018-02-27  Martin Liska  <mliska@suse.cz>

PR gcov-profile/84548
* g++.dg/gcov/pr84548.C: New test.

From-SVN: r258033

6 years agoImplement the missing bits of LWG 2769
Ville Voutilainen [Tue, 27 Feb 2018 11:33:30 +0000 (13:33 +0200)]
Implement the missing bits of LWG 2769

* include/std/any (any_cast(const any&)): Add static_assert.
(any_cast(any&)): Likewise.
(any_cast(any&&)): Likewise, and remove the handling
for copyable-but-not-movable type.
* testsuite/20_util/any/misc/any_cast.cc: Adjust.
* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
add new tests.

From-SVN: r258031

6 years agore PR target/84575 (gcc.target/i386/pr84309.c fail)
Jakub Jelinek [Tue, 27 Feb 2018 08:44:48 +0000 (09:44 +0100)]
re PR target/84575 (gcc.target/i386/pr84309.c fail)

PR target/84575
* gcc.target/i386/pr84309.c: Add -mno-avx2 to dg-options.

From-SVN: r258030

6 years agoFix formatting of -ftime-report.
Martin Liska [Tue, 27 Feb 2018 08:27:12 +0000 (09:27 +0100)]
Fix formatting of -ftime-report.

2018-02-27  Martin Liska  <mliska@suse.cz>

* timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and
'ggc' suffixes.  Change first column width.
(timer::print): Fix formatting of the column.

From-SVN: r258029

6 years ago[IEPM] don't preserve lexical blocks just for debug inline markers
Alexandre Oliva [Tue, 27 Feb 2018 03:37:10 +0000 (03:37 +0000)]
[IEPM] don't preserve lexical blocks just for debug inline markers

This patch stops preserving scope blocks just because they are inlined
function scopes, when cleaning up unused scope blocks.  This change
was introduced along with IEPM, but it preserved lots of blocks, and
output debug information for them, although no code from the inlined
function remained after optimization.

The additional preserved blocks took up compile-time memory, and
significant disk space and link time, in some cases more than 25%.
This is deemed excessive, compared with the reasonably small benefit
of allowing one to single-step into an inlined function using a
view-capable debugger.

There was another way of marking inlined function scopes as unused,
based on the markers referencing them during stmt scanning, but that
still preserved too much.

So, this patch restores the pre-IEPM logic of preservation of scopes.
Should a scope block referenced by an inline entry marker be found to
be unused in remove_unused_scope_block_p, the marker will be cleaned
up right after that, in clear_unused_block_pointer, so we won't keep
a dangling reference to a dropped block.

for  gcc/ChangeLog

* tree-ssa-live.c (remove_unused_scope_block_p): Do not
preserve inline entry blocks for the sake of debug inline
entry point markers alone.
(remove_unused_locals): Suggest in comments a better place to
force the preservation of inline entry blocks that are
otherwise unused, but do not preserve them.

From-SVN: r258026

6 years agoPR c++/84560 - ICE capturing multi-dimensional VLA.
Jason Merrill [Tue, 27 Feb 2018 02:45:56 +0000 (21:45 -0500)]
PR c++/84560 - ICE capturing multi-dimensional VLA.

* tree.c (array_of_runtime_bound_p): False if the element is
variably-modified.

From-SVN: r258023

6 years agoPR c++/84441 - ICE with base initialized from ?:
Jason Merrill [Tue, 27 Feb 2018 02:45:12 +0000 (21:45 -0500)]
PR c++/84441 - ICE with base initialized from ?:

* call.c (unsafe_copy_elision_p): Handle COND_EXPR.

From-SVN: r258022

6 years agoPR c++/84520 - ICE with generic lambda in NSDMI.
Jason Merrill [Tue, 27 Feb 2018 02:44:26 +0000 (21:44 -0500)]
PR c++/84520 - ICE with generic lambda in NSDMI.

* lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI
'this' in a generic lambda instantiation.

From-SVN: r258021

6 years agoDaily bump.
GCC Administrator [Tue, 27 Feb 2018 00:16:24 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258020

6 years ago* es.po, sv.po: Update.
Joseph Myers [Mon, 26 Feb 2018 22:35:23 +0000 (22:35 +0000)]
* es.po, sv.po: Update.

From-SVN: r258016

6 years agoPR c++/84559 - ICE with constexpr VLA.
Jason Merrill [Mon, 26 Feb 2018 21:55:41 +0000 (16:55 -0500)]
PR c++/84559 - ICE with constexpr VLA.

* constexpr.c (ensure_literal_type_for_constexpr_object): Check
for constexpr variable with VLA type.

From-SVN: r258015

6 years agore PR c++/84558 (ICE with invalid constexpr constructor)
Jakub Jelinek [Mon, 26 Feb 2018 21:52:39 +0000 (22:52 +0100)]
re PR c++/84558 (ICE with invalid constexpr constructor)

PR c++/84558
* constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like
a valid constant initializer.  Formatting fixes.

* g++.dg/cpp1y/pr84558.C: New test.

From-SVN: r258014

6 years agore PR c++/84540 (ICE with alignas in variadic template)
Paolo Carlini [Mon, 26 Feb 2018 20:06:40 +0000 (20:06 +0000)]
re PR c++/84540 (ICE with alignas in variadic template)

/cp
2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84540
* pt.c (tsubst_attributes): Handle correctly tsubst_attribute
returning NULL_TREE.
(apply_late_template_attributes): Likewise.

/testsuite
2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84540
* g++.dg/cpp0x/alignas14.C: New.
* g++.dg/cpp0x/alignas15.C: Likewise.

From-SVN: r258012

6 years agore PR c++/84557 (ICE with invalid firstprivate variable)
Jakub Jelinek [Mon, 26 Feb 2018 19:51:05 +0000 (20:51 +0100)]
re PR c++/84557 (ICE with invalid firstprivate variable)

PR c++/84557
* parser.c (cp_parser_omp_var_list_no_open): Only call
cp_parser_lookup_name_simple on names satisfying identifier_p.
(cp_parser_oacc_routine): Likewise.

* g++.dg/gomp/pr84557.C: New test.

From-SVN: r258011

6 years agore PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore...
Jakub Jelinek [Mon, 26 Feb 2018 19:46:34 +0000 (20:46 +0100)]
re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace)

PR debug/83917
* config/i386/i386-asm.h (PACKAGE_VERSION, PACKAGE_NAME,
PACKAGE_STRING, PACKAGE_TARNAME, PACKAGE_URL): Undefine between
inclusion of auto-target.h and auto-host.h.
(USE_GAS_CFI_DIRECTIVES): Define if not defined already based on
__GCC_HAVE_DWARF2_CFI_ASM.
(cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
cfi_def_cfa_register, cfi_def_cfa, cfi_register, cfi_offset, cfi_push,
cfi_pop): Define.
* config/i386/cygwin.S: Don't include auto-host.h here, just
define USE_GAS_CFI_DIRECTIVES to 1 or 0 and include i386-asm.h.
(cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): Remove.
* config/i386/resms64fx.h: Add cfi_* directives.
* config/i386/resms64x.h: Likewise.

From-SVN: r258010

6 years agoPR c++/84551 - ICE with concepts and -g.
Jason Merrill [Mon, 26 Feb 2018 19:04:42 +0000 (14:04 -0500)]
PR c++/84551 - ICE with concepts and -g.

* parser.c (add_debug_begin_stmt): Do nothing in a concept.

From-SVN: r258009

6 years agore PR c++/84325 (internal compiler error, in cxx_eval_constant_expression gcc/cp...
Marek Polacek [Mon, 26 Feb 2018 18:41:56 +0000 (18:41 +0000)]
re PR c++/84325 (internal compiler error, in cxx_eval_constant_expression gcc/cp/constexpr.c:4740)

PR c++/84325
* tree.c (replace_placeholders_r): Only check TREE_CONSTANT on
non-types.

* g++.dg/cpp1z/pr84325.C: New test.

From-SVN: r258008

6 years agobuiltins-3.c: Move vec_neg builtin tests to Power 8 test file.
Carl Love [Mon, 26 Feb 2018 18:13:56 +0000 (18:13 +0000)]
builtins-3.c: Move vec_neg builtin tests to Power 8 test file.

gcc/testsuite/ChangeLog:

2018-02-26  Carl Love  <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3.c: Move vec_neg builtin tests to
Power 8 test file.
* gcc.target/powerpc/builtins-3-p8.c: Add vec_neg builtin tests.
* gcc.target/powerpc/fold-vec-neg-char.c(dg-options): Add -mcpu=power8.
* gcc.target/powerpc/fold-vec-neg-floatdouble.c(dg-options): Add
-mcpu=power8.
* gcc.target/powerpc/fold-vec-neg-int.c(dg-options): Remove file.
* gcc.target/powerpc/fold-vec-neg-short.c(dg-options): Add
-mcpu=power8.

From-SVN: r258006

6 years agoi386: Update comments for ix86_output_indirect_jmp
H.J. Lu [Mon, 26 Feb 2018 17:57:26 +0000 (17:57 +0000)]
i386: Update comments for ix86_output_indirect_jmp

Revision 257992 removed the bool argument from ix86_output_indirect_jmp.
Update comments to reflect it.

* config/i386/i386.c (ix86_output_indirect_jmp): Update comments.

From-SVN: r258005

6 years agoPR c++/84447 - ICE with deleted inherited ctor with default arg.
Jason Merrill [Mon, 26 Feb 2018 17:06:07 +0000 (12:06 -0500)]
PR c++/84447 - ICE with deleted inherited ctor with default arg.

* call.c (build_over_call): Handle deleted functions in one place.

From-SVN: r258003

6 years agoPR c++/81589 - error with is_trivially_constructible
Jason Merrill [Mon, 26 Feb 2018 17:06:02 +0000 (12:06 -0500)]
PR c++/81589 - error with is_trivially_constructible

* g++.dg/ext/is_trivially_constructible6.C: New.

From-SVN: r258002

6 years agoi386: Add TARGET_INDIRECT_BRANCH_REGISTER
H.J. Lu [Mon, 26 Feb 2018 17:00:46 +0000 (17:00 +0000)]
i386: Add TARGET_INDIRECT_BRANCH_REGISTER

For

---
struct C {
  virtual ~C();
  virtual void f();
};

void
f (C *p)
{
  p->f();
  p->f();
}
---

-mindirect-branch=thunk-extern -O2 on x86-64 GNU/Linux generates:

_Z1fP1C:
.LFB0:
        .cfi_startproc
        pushq   %rbx
        .cfi_def_cfa_offset 16
        .cfi_offset 3, -16
        movq    (%rdi), %rax
        movq    %rdi, %rbx
        jmp     .LIND1
.LIND0:
        pushq   16(%rax)
        jmp     __x86_indirect_thunk
.LIND1:
        call    .LIND0
        movq    (%rbx), %rax
        movq    %rbx, %rdi
        popq    %rbx
        .cfi_def_cfa_offset 8
        movq    16(%rax), %rax
        jmp     __x86_indirect_thunk_rax
        .cfi_endproc

x86-64 is supposed to have asynchronous unwind tables by default, but
there is nothing that reflects the change in the (relative) frame
address after .LIND0.  That region really has to be moved outside of
the .cfi_startproc/.cfi_endproc bracket.

This patch adds TARGET_INDIRECT_BRANCH_REGISTER to force indirect
branch via register whenever -mindirect-branch= is used.  Now,
-mindirect-branch=thunk-extern -O2 on x86-64 GNU/Linux generates:

_Z1fP1C:
.LFB0:
.cfi_startproc
pushq %rbx
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movq (%rdi), %rax
movq %rdi, %rbx
movq 16(%rax), %rax
call __x86_indirect_thunk_rax
movq (%rbx), %rax
movq %rbx, %rdi
popq %rbx
.cfi_def_cfa_offset 8
movq 16(%rax), %rax
jmp __x86_indirect_thunk_rax
.cfi_endproc

so that "-mindirect-branch=thunk-extern" is equivalent to
"-mindirect-branch=thunk-extern -mindirect-branch-register", which is
used by Linux kernel.

gcc/

PR target/84039
* config/i386/constraints.md (Bs): Replace
ix86_indirect_branch_register with
TARGET_INDIRECT_BRANCH_REGISTER.
(Bw): Likewise.
* config/i386/i386.md (indirect_jump): Likewise.
(tablejump): Likewise.
(*sibcall_memory): Likewise.
(*sibcall_value_memory): Likewise.
Peepholes of indirect call and jump via memory: Likewise.
(*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER.
(*sibcall_value_GOT_32): Likewise.
* config/i386/i386.opt: Likewise.
* config/i386/predicates.md (indirect_branch_operand): Likewise.
(GOT_memory_operand): Likewise.
(call_insn_operand): Likewise.
(sibcall_insn_operand): Likewise.
(GOT32_symbol_operand): Likewise.
* config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New.

gcc/testsuite/

PR target/84039
* gcc.target/i386/indirect-thunk-1.c: Updated.
* gcc.target/i386/indirect-thunk-2.c: Likewise.
* gcc.target/i386/indirect-thunk-3.c: Likewise.
* gcc.target/i386/indirect-thunk-4.c: Likewise.
* gcc.target/i386/indirect-thunk-5.c: Likewise.
* gcc.target/i386/indirect-thunk-6.c: Likewise.
* gcc.target/i386/indirect-thunk-7.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-3.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-4.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-7.c: Likewise.
* gcc.target/i386/indirect-thunk-bnd-1.c: Likewise.
* gcc.target/i386/indirect-thunk-bnd-2.c: Likewise.
* gcc.target/i386/indirect-thunk-bnd-3.c: Likewise.
* gcc.target/i386/indirect-thunk-bnd-4.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-5.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-6.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-7.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-1.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-5.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-6.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-7.c: Likewise.
* gcc.target/i386/ret-thunk-9.c: Likewise.
* gcc.target/i386/ret-thunk-10.c: Likewise.
* gcc.target/i386/ret-thunk-11.c: Likewise.
* gcc.target/i386/ret-thunk-12.c: Likewise.
* gcc.target/i386/ret-thunk-13.c: Likewise.
* gcc.target/i386/ret-thunk-14.c: Likewise.
* gcc.target/i386/ret-thunk-15.c: Likewise.

From-SVN: r258001

6 years agoFix typo
Eric Botcazou [Mon, 26 Feb 2018 16:38:37 +0000 (16:38 +0000)]
Fix typo

From-SVN: r257999

6 years agoRe-add test.
Eric Botcazou [Mon, 26 Feb 2018 16:37:11 +0000 (16:37 +0000)]
Re-add test.

From-SVN: r257998

6 years agoRemove bogus test.
Eric Botcazou [Mon, 26 Feb 2018 16:36:20 +0000 (16:36 +0000)]
Remove bogus test.

From-SVN: r257997

6 years agore PR rtl-optimization/83496 (wrong code generated with -Os -mbranch-cost=1)
Eric Botcazou [Mon, 26 Feb 2018 16:29:30 +0000 (16:29 +0000)]
re PR rtl-optimization/83496 (wrong code generated with -Os -mbranch-cost=1)

PR rtl-optimization/83496
* reorg.c (steal_delay_list_from_target): Change REDUNDANT array from
booleans to RTXes.  Call fix_reg_dead_note on every non-null element.
(steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a
redundant insn, if any.
(relax_delay_slots): Likewise.
(update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN.

From-SVN: r257996

6 years agoMake fix for PR 83965 handle SLP reduction chains
Richard Sandiford [Mon, 26 Feb 2018 16:17:00 +0000 (16:17 +0000)]
Make fix for PR 83965 handle SLP reduction chains

This patch prevents pattern-matching of fold-left SLP reduction chains,
which the previous patch for 83965 didn't handle properly.  It only
stops the last statement in the group from being matched, but that's
enough to cause the group to be dissolved later.

A better fix would be to put all the information about the reduction
on the the first statement in the reduction chain, so that every
statement in the group can tell what the group is doing.  That doesn't
seem like stage 4 material though.

2018-02-26  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR tree-optimization/83965
* tree-vect-patterns.c (vect_reassociating_reduction_p): Assume
that grouped statements are part of a reduction chain.  Return
true if the statement is not marked as a reduction itself but
is part of a group.
(vect_recog_dot_prod_pattern): Don't check whether the statement
is part of a group here.
(vect_recog_sad_pattern): Likewise.
(vect_recog_widen_sum_pattern): Likewise.

gcc/testsuite/
PR tree-optimization/83965
* gcc.dg/vect/pr83965-2.c: New test.

From-SVN: r257995

6 years ago[testsuite] Add missing function decl to regs-arg-size.c
Tom de Vries [Mon, 26 Feb 2018 16:02:21 +0000 (16:02 +0000)]
[testsuite] Add missing function decl to regs-arg-size.c

2018-02-26  Tom de Vries  <tom@codesourcery.com>

* gcc.c-torture/compile/regs-arg-size.c (swprintf): Declare.

From-SVN: r257994

6 years agore PR debug/84545 (FAIL: g++.dg/debug/pr44182.C -gdwarf-2 -O2 (test for excess errors))
Eric Botcazou [Mon, 26 Feb 2018 15:40:18 +0000 (15:40 +0000)]
re PR debug/84545 (FAIL: g++.dg/debug/pr44182.C -gdwarf-2 -O2 (test for excess errors))

PR debug/84545
* final.c (rest_of_clean_state): Also look for calls inside sequences.

From-SVN: r257993

6 years agoi386: Update -mfunction-return= for return with pop
H.J. Lu [Mon, 26 Feb 2018 15:29:30 +0000 (15:29 +0000)]
i386: Update -mfunction-return= for return with pop

When -mfunction-return= is used, simple_return_pop_internal should pop
return address into ECX register, adjust stack by bytes to pop from stack
and jump to the return thunk via ECX register.

Tested on i686 and x86-64.

PR target/84530
* config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove
the bool argument.
(ix86_output_indirect_function_return): New prototype.
(ix86_split_simple_return_pop_internal): Likewise.
* config/i386/i386.c (indirect_return_via_cx): New.
(indirect_return_via_cx_bnd): Likewise.
(indirect_thunk_name): Handle return va CX_REG.
(output_indirect_thunk_function): Create alias for
__x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd.
(ix86_output_indirect_jmp): Remove the bool argument.
(ix86_output_indirect_function_return): New function.
(ix86_split_simple_return_pop_internal): Likewise.
* config/i386/i386.md (*indirect_jump): Don't pass false
to ix86_output_indirect_jmp.
(*tablejump_1): Likewise.
(simple_return_pop_internal): Change it to define_insn_and_split.
Call ix86_split_simple_return_pop_internal to split it for
-mfunction-return=.
(simple_return_indirect_internal): Call
ix86_output_indirect_function_return instead of
ix86_output_indirect_jmp.

gcc/testsuite/

PR target/84530
* gcc.target/i386/ret-thunk-22.c: New test.
* gcc.target/i386/ret-thunk-23.c: Likewise.
* gcc.target/i386/ret-thunk-24.c: Likewise.
* gcc.target/i386/ret-thunk-25.c: Likewise.
* gcc.target/i386/ret-thunk-26.c: Likewise.

From-SVN: r257992

6 years agore PR c++/84533 (ICE with duplicate enum value)
Paolo Carlini [Mon, 26 Feb 2018 15:00:44 +0000 (15:00 +0000)]
re PR c++/84533 (ICE with duplicate enum value)

/cp
2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84533
* decl.c (redeclaration_error_message): Don't try to use
DECL_DECLARED_CONSTEXPR_P on CONST_DECLs.

/testsuite
2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84533
* g++.dg/cpp1z/pr84533.C: New.

From-SVN: r257991

6 years agolambda.c (build_capture_proxy): Define static.
Paolo Carlini [Mon, 26 Feb 2018 14:58:47 +0000 (14:58 +0000)]
lambda.c (build_capture_proxy): Define static.

2018-02-26  Paolo Carlini  <paolo.carlini@oracle.com>

* lambda.c (build_capture_proxy): Define static.
* cp-tree.h (build_capture_proxy): Remove.

From-SVN: r257990

6 years agore PR bootstrap/84405 (Fails to bootstrap with GCC 4.1.2, GCC 4.2.4)
Jakub Jelinek [Mon, 26 Feb 2018 14:37:45 +0000 (15:37 +0100)]
re PR bootstrap/84405 (Fails to bootstrap with GCC 4.1.2, GCC 4.2.4)

PR bootstrap/84405
* vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use
memset and value initialization afterwards.

From-SVN: r257989

6 years agore PR c++/84537 (ICE in get_string, at spellcheck-tree.h)
Marek Polacek [Mon, 26 Feb 2018 14:12:25 +0000 (14:12 +0000)]
re PR c++/84537 (ICE in get_string, at spellcheck-tree.h)

PR c++/84537
* name-lookup.c (suggest_alternative_in_explicit_scope): Return false
if name is error node.

* g++.dg/parse/error60.C: New test.

From-SVN: r257988

6 years agoFix lto-wrapper link flags
Christophe Lyon [Mon, 26 Feb 2018 11:07:31 +0000 (11:07 +0000)]
Fix lto-wrapper link flags

2018-02-26  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS.

From-SVN: r257987

6 years agore PR c++/84556 (C++17, lambda, OpenMP simd: sorry, unimplemented: unexpected AST)
Jakub Jelinek [Mon, 26 Feb 2018 10:18:31 +0000 (11:18 +0100)]
re PR c++/84556 (C++17, lambda, OpenMP simd: sorry, unimplemented: unexpected AST)

PR c++/84556
* g++.dg/gomp/pr84556.C: New test.
* g++.dg/vect/pr84556.cc: New test.

From-SVN: r257986

6 years agore PR fortran/32957 (C/Fortran interoperability and -fdefault-integer-8)
Dominique d'Humieres [Mon, 26 Feb 2018 09:55:39 +0000 (10:55 +0100)]
re PR fortran/32957 (C/Fortran interoperability and -fdefault-integer-8)

2018-02-26  Dominique d'Humieres <dominiq@gcc.gnu.org>

PR fortran/32957
* gfortran.dg/c_f_pointer_shape_tests_2.f03: Use explicit KIND c_int.
* gfortran.dg/c_f_pointer_shape_tests_4.f03: Likewise.
* gfortran.dg/c_funloc_tests_3.f03: Likewise.
* gfortran.dg/c_loc_test.f90: Likewise.
* gfortran.dg/c_loc_tests_2.f03: Likewise.
* gfortran.dg/proc_decl_17.f90: Likewise.
* gfortran.dg/proc_ptr_8.f90: Likewise.

From-SVN: r257985

6 years ago[Patch AArch64] Turn on frame pointer / partial fix for PR84521
Ramana Radhakrishnan [Mon, 26 Feb 2018 09:25:21 +0000 (09:25 +0000)]
[Patch AArch64] Turn on frame pointer / partial fix for PR84521

This fixes a GCC-8 regression that we accidentally switched off frame
pointers in the AArch64 backend when changing the defaults in the common
parts of the code. This breaks an ABI decision that was made in GCC at
the dawn of the port with respect to having a frame pointer at all
times.  If we really want to turn this off lets have a discussion around
that separately.

For now turn this back on and I believe this will leave PR84521 latent
again with -fomit-frame-pointer and (hopefully) make the ruby issue go
away. I'm asking Sudi to pick that up.

Bootstrapped and regression tested on AArch64-none-linux-gnu but I see
one regression in gcc.c-torture/execute/960419-2.c which needs to be
looked at next (PR84528, thanks Kyrill).

Ok to put in and then look at PR84528 ?

2018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/84521
* common/config/aarch64/aarch64-common.c
(aarch_option_optimization_table[]): Switch
off fomit-frame-pointer

2018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR target/84521
* gcc.target/aarch64/lr_free_2.c: Revert changes in
r254814 disabling -fomit-frame-pointer by default.
* gcc.target/aarch64/spill_1.c: Likewise.
* gcc.target/aarch64/test_frame_11.c: Likewise.
* gcc.target/aarch64/test_frame_12.c: Likewise.
* gcc.target/aarch64/test_frame_13.c: Likewise.
* gcc.target/aarch64/test_frame_14.c: Likewise.
* gcc.target/aarch64/test_frame_15.c: Likewise.
* gcc.target/aarch64/test_frame_3.c: Likewise.
* gcc.target/aarch64/test_frame_5.c: Likewise.
* gcc.target/aarch64/test_frame_9.c: Likewise.

From-SVN: r257984

6 years ago[NDS32] Do not use multiple load/store instructions for volatile memory access.
Kito Cheng [Mon, 26 Feb 2018 07:01:08 +0000 (07:01 +0000)]
[NDS32] Do not use multiple load/store instructions for volatile memory access.

gcc/
* config/nds32/nds32-multiple.md(load_multiple): Disallow
volatile memory.
(store_multiple): Ditto.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r257983

6 years ago[NDS32] Basic support for -mcpu= and --with-cpu= options.
Kito Cheng [Mon, 26 Feb 2018 06:47:32 +0000 (06:47 +0000)]
[NDS32] Basic support for -mcpu= and --with-cpu= options.

gcc/
* config.gcc: Add --with-cpu support for nds32 target.
* config/nds32/nds32-opts.h(nds32_cpu_type): New.
* config/nds32/nds32.opt: Add -mcpu= option.

From-SVN: r257982

6 years agoPR c++/84015 - ICE with class deduction and auto template parm.
Jason Merrill [Mon, 26 Feb 2018 05:05:15 +0000 (00:05 -0500)]
PR c++/84015 - ICE with class deduction and auto template parm.

* pt.c (rewrite_template_parm): Use tf_partial in first tsubst.

From-SVN: r257979

6 years agoDaily bump.
GCC Administrator [Mon, 26 Feb 2018 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r257978

6 years agors6000: Warn for deprecated options
Segher Boessenkool [Sun, 25 Feb 2018 20:54:41 +0000 (21:54 +0100)]
rs6000: Warn for deprecated options

Some command-line options have been deprecated for a long time.  This
patch adds a warning for them, so that we can remove them in GCC 9
without surprising any users.

* config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no,
isel=yes): Warn for these deprecated options.

From-SVN: r257975

6 years agore PR fortran/83633 (gfortran internal compiler error for explicit-shape array with...
Steven G. Kargl [Sun, 25 Feb 2018 16:50:50 +0000 (16:50 +0000)]
re PR fortran/83633 (gfortran internal compiler error for explicit-shape array with non-constant bounds)

2018-02-25  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/83633
* decl.c (variable_decl): Check that an explicit-shape-array with
nonconstant bounds is allowed.

2018-02-25  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/83633
* gfortran.dg/explicit_shape_1.f90: New test.
* gfortran.dg/automatic_module_variable.f90: Update regex.
* gfortran.dg/bad_automatic_objects_1.f90: Ditto.
* gfortran.dg/constant_shape.f90: Ditto.
* gfortran.dg/dec_structure_23.f90: Ditto.
* gfortran.dg/pr78240.f90: Ditto.

From-SVN: r257971

6 years agore PR fortran/84523 (Runtime crash deallocating allocatable array within derived...
Paul Thomas [Sun, 25 Feb 2018 12:41:26 +0000 (12:41 +0000)]
re PR fortran/84523 (Runtime crash deallocating allocatable array within derived type)

2018-02-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/84523
* trans-intrinsic.c (gfc_conv_allocated): If the argument se
has a pre block, add it to the expression pre block.

2018-02-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/84523
* gfortran.dg/pr84523.f90: New test.

From-SVN: r257970

6 years agore PR fortran/78238 ([OOP] ICE: verify_gimple failed, with -fdefault-integer-8)
Thomas Koenig [Sun, 25 Feb 2018 09:02:32 +0000 (09:02 +0000)]
re PR fortran/78238 ([OOP] ICE: verify_gimple failed, with -fdefault-integer-8)

2018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/78238
* gfortran.h (gfc_integer_4_kind): Define.
* resolve.c (resolve_select_type): Make sure that the
kind of c->high is gfc_integer_4_kind.

2018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/78238
* gfortran.dg/select_type_40.f90: New test.

From-SVN: r257968

6 years agoDaily bump.
GCC Administrator [Sun, 25 Feb 2018 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r257967

6 years agore PR fortran/30792 (DATA implied-do substring allowed with -std=f95/f2003)
Steven G. Kargl [Sat, 24 Feb 2018 17:22:10 +0000 (17:22 +0000)]
re PR fortran/30792 (DATA implied-do substring allowed with -std=f95/f2003)

2018-02-24  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/30792
* decl.c (gfc_match_data): Check for invalid substring in
data-implied-do

2018-02-24  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/30792
* gfortran.dg/data_substring.f90: New test.

From-SVN: r257962

6 years agore PR c++/83692 (Rejects valid constexpr with unrelated code fixing problem)
Marek Polacek [Sat, 24 Feb 2018 13:10:44 +0000 (13:10 +0000)]
re PR c++/83692 (Rejects valid constexpr with unrelated code fixing problem)

PR c++/83692
* constexpr.c (maybe_constant_init_1): New function.
(maybe_constant_init): Make it a wrapper around maybe_constant_init_1.
(cxx_constant_init): New function.
* cp-tree.h (cxx_constant_init): Declare.
* typeck2.c (store_init_value): Call cxx_constant_init instead of
cxx_constant_value.  Move the maybe_constant_init call under an 'else'.

* g++.dg/cpp1z/constexpr-83692.C: New test.

From-SVN: r257961

6 years agoDaily bump.
GCC Administrator [Sat, 24 Feb 2018 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r257960

6 years agoPR libstdc++/84532 prevent unwrapping of reference_wrapper arguments
Jonathan Wakely [Fri, 23 Feb 2018 23:23:43 +0000 (23:23 +0000)]
PR libstdc++/84532 prevent unwrapping of reference_wrapper arguments

PR libstdc++/84532
* include/std/thread (thread::__make_invoker): Construct tuple
directly instead of using make_tuple.
* testsuite/30_threads/async/84532.cc: New.
* testsuite/30_threads/thread/84532.cc: New.

From-SVN: r257956

6 years agocompiler: ignore aliases in fieldtrack info
Ian Lance Taylor [Fri, 23 Feb 2018 21:38:57 +0000 (21:38 +0000)]
compiler: ignore aliases in fieldtrack info

    We want to track references to fields in the real struct, not in
    aliases to the struct.

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

From-SVN: r257954

6 years agointrinsic.texi: Arguments to MATMUL cannot both be rank one.
Steven G. Kargl [Fri, 23 Feb 2018 20:06:52 +0000 (20:06 +0000)]
intrinsic.texi: Arguments to MATMUL cannot both be rank one.

2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>

* intrinsic.texi: Arguments to MATMUL cannot both be rank one.

From-SVN: r257952

6 years ago* config/rs6000/aix71.h (TARGET_DEFAULT): Change to ISA_2_5_MASKS_EMBEDDED.
David Edelsohn [Fri, 23 Feb 2018 19:14:15 +0000 (19:14 +0000)]
* config/rs6000/aix71.h (TARGET_DEFAULT): Change to ISA_2_5_MASKS_EMBEDDED.

From-SVN: r257944

6 years agore PR fortran/84511 (Internal compiler error from directly printing return of C_LOC)
Steven G. Kargl [Fri, 23 Feb 2018 18:59:38 +0000 (18:59 +0000)]
re PR fortran/84511 (Internal compiler error from directly printing return of C_LOC)

2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/84511
* trans-io.c (transfer_expr): Deal with C_LOC in transfer statement.

From-SVN: r257943

6 years agore PR fortran/84346 (Statement functions should not accept keywords)
Steven G. Kargl [Fri, 23 Feb 2018 18:57:41 +0000 (18:57 +0000)]
re PR fortran/84346 (Statement functions should not accept keywords)

2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/84346
* interface.c (compare_actual_formal): Issue error if keyword is
used in a statement function.

2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/84346
* gfortran.dg/statement_function_1.f90: Update test.

From-SVN: r257942

6 years agore PR fortran/84506 (INQUIRE(pos=) always sets pos=0 with -fdefault-integer-8)
Jerry DeLisle [Fri, 23 Feb 2018 18:40:14 +0000 (18:40 +0000)]
re PR fortran/84506 (INQUIRE(pos=) always sets pos=0 with -fdefault-integer-8)

2018-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/84506
* trans-io.c (set_parameter_value_inquire): Adjust range check of
negative unit values for kind=8 units to the kind=4 negative limit.

* gfortran.dg/inquire_19.f90: New test.

From-SVN: r257941

6 years agoipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and p->max as pointers rather...
Jakub Jelinek [Fri, 23 Feb 2018 18:27:28 +0000 (19:27 +0100)]
ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and p->max as pointers rather than using iterative_hash_expr.

* ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and
p->max as pointers rather than using iterative_hash_expr.

From-SVN: r257940

6 years ago* lto-partition.c (lto_balanced_map): Watch overflow.
Jan Hubicka [Fri, 23 Feb 2018 18:18:07 +0000 (19:18 +0100)]
* lto-partition.c (lto_balanced_map): Watch overflow.

From-SVN: r257939

6 years agore PR fortran/83149 ([6- and 7-branches] Missing test for sym->ns->proc_name: crash_s...
Paul Thomas [Fri, 23 Feb 2018 17:55:13 +0000 (17:55 +0000)]
re PR fortran/83149 ([6- and 7-branches] Missing test for sym->ns->proc_name: crash_signal in toplev.c:325)

2018-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83149
* trans-types.c (gfc_sym_type): Test sym->ns->proc_name before
accessing its components.

2018-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83149
* gfortran.dg/pr83149_b.f90: New test.
* gfortran.dg/pr83149_a.f90: Additional source for previous.

From-SVN: r257938

6 years agors6000-builtin.def: Change VSIGNED2 and VUNSIGNED2 macro expansions from BU_VSX_2...
Carl Love [Fri, 23 Feb 2018 17:22:10 +0000 (17:22 +0000)]
rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2 macro expansions from BU_VSX_2 to BU_P8V_VSX_2...

gcc/ChangeLog:

2018-02-23  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2
macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to
BU_P8V_OVERLOAD_2.
* config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to
P8V_BUILTIN_VEC_VSIGNED2.  Change VSX_BUILTIN_VEC_VUNSIGNED2 to
P8V_BUILTIN_VEC_VUNSIGNED2.

gcc/testsuite/ChangeLog:

2018-02-23  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-3-runnable.c: Move tests for vec_float2,
vec_signed2 and vec_unsigned2 to new Power 8 test file.
* gcc.target/powerpc/builtins-3-runnable-p8.c: New test file for
Power 8 tests.

From-SVN: r257937

6 years agopr80695-p8.c: Update dg-requires stanza.
Will Schmidt [Fri, 23 Feb 2018 16:50:58 +0000 (16:50 +0000)]
pr80695-p8.c: Update dg-requires stanza.

[testsuite]

2018-02-23  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/pr80695-p8.c: Update dg-requires stanza.
* gcc.target/powerpc/pr80695-p9.c: Update dg-requires stanza.

From-SVN: r257936

6 years ago[testsuite]
Will Schmidt [Fri, 23 Feb 2018 16:46:00 +0000 (16:46 +0000)]
[testsuite]

        2018-02-23  Will Schmidt  <will_schmidt@vnet.ibm.com>

        * fold-vec-mult-int128-p9.c: Add maddld insn to expected output.

From-SVN: r257935

6 years agore PR fortran/83149 ([6- and 7-branches] Missing test for sym->ns->proc_name: crash_s...
Paul Thomas [Fri, 23 Feb 2018 16:22:28 +0000 (16:22 +0000)]
re PR fortran/83149 ([6- and 7-branches] Missing test for sym->ns->proc_name: crash_signal in toplev.c:325)

2018-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83149
* trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name
before accessing its components.

2018-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83149
* gfortran.dg/pr83149_1.f90: New test.
* gfortran.dg/pr83149.f90: Additional source for previous.

From-SVN: r257934

6 years agoFix tsan race_on_mutex.c testcase (PR80551)
Segher Boessenkool [Fri, 23 Feb 2018 14:17:35 +0000 (15:17 +0100)]
Fix tsan race_on_mutex.c testcase (PR80551)

The testcase did not match the glibc internal names while it should.
This fixes it.

gcc/testsuite/
PR testsuite/80551
* c-c++-common/tsan/race_on_mutex.c: Change regexp to allow
__GI___pthread_mutex_init as well.

From-SVN: r257932

6 years agoPR c++/70468 - ICE with constructor delegation via typedef.
Jason Merrill [Fri, 23 Feb 2018 13:32:41 +0000 (08:32 -0500)]
PR c++/70468 - ICE with constructor delegation via typedef.

* pt.c (tsubst_initializer_list): Check for other mem-initializers
with constructor delegation.

From-SVN: r257931

6 years agore PR fortran/83148 (ICE: crash_signal from toplev.c:325)
Paul Thomas [Fri, 23 Feb 2018 12:35:30 +0000 (12:35 +0000)]
re PR fortran/83148 (ICE: crash_signal from toplev.c:325)

2018-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83148
* trans-const.c : Clean up some whitespace issues.
* trans-expr.c (gfc_conv_initializer): If an iso_c_binding
derived type has a kind value of zero, set it to the default
integer kind.

2018-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83148
* gfortran.dg/class_68.f90: New test.

From-SVN: r257930

6 years agoChangeLog entry for r257928
Janne Blomqvist [Fri, 23 Feb 2018 09:33:27 +0000 (11:33 +0200)]
ChangeLog entry for r257928

From-SVN: r257929

6 years agoPR 84519 Handle optional QUIET specifier for STOP and ERROR STOP
Janne Blomqvist [Fri, 23 Feb 2018 09:07:24 +0000 (11:07 +0200)]
PR 84519 Handle optional QUIET specifier for STOP and ERROR STOP

Fortran 2018 adds a new QUIET specifier for the STOP and ERROR STOP
statements, in order to suppress the printing of signaling FP
exceptions and the stop code. This patch adds the necessary library
changes, but for now the new specifier is not parsed and the frontend
unconditionally adds a false value for the new argument.

Regtested on x86_64-pc-linux-gnu.

gcc/fortran/ChangeLog:

2018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/84519
* trans-decl.c (gfc_build_builtin_function_decls): Add bool
argument to stop and error stop decls.
* trans-stmt.c (gfc_trans_stop): Add false value to argument
lists.

libgfortran/ChangeLog:

2018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>

PR fortran/84519
* caf/libcaf.h (_gfortran_caf_stop_numeric): Add bool argument.
(_gfortran_caf_stop_str): Likewise.
(_gfortran_caf_error_stop_str): Likewise.
(_gfortran_caf_error_stop): Likewise.
* caf/mpi.c (_gfortran_caf_error_stop_str): Handle new argument.
(_gfortran_caf_error_stop): Likewise.
* caf/single.c (_gfortran_caf_stop_numeric): Likewise.
(_gfortran_caf_stop_str): Likewise.
(_gfortran_caf_error_stop_str): Likewise.
(_gfortran_caf_error_stop): Likewise.
(_gfortran_caf_lock): Likewise.
(_gfortran_caf_unlock): Likewise.
* libgfortran.h (stop_string): Add bool argument.
* runtime/pause.c (do_pause): Add false argument.
* runtime/stop.c (stop_numeric): Handle new argument.
(stop_string): Likewise.
(error_stop_string): Likewise.
(error_stop_numeric): Likewise.

From-SVN: r257928

6 years agoDaily bump.
GCC Administrator [Fri, 23 Feb 2018 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r257927

6 years agoPR c++/84424 - ICE with constexpr and __builtin_shuffle.
Jason Merrill [Thu, 22 Feb 2018 22:50:37 +0000 (17:50 -0500)]
PR c++/84424 - ICE with constexpr and __builtin_shuffle.

* constexpr.c (reduced_constant_expression_p): Handle CONSTRUCTOR of
VECTOR_TYPE.

From-SVN: r257924

6 years agore PR fortran/59781 ([F03] Incorrect initialisation of derived type)
Thomas Koenig [Thu, 22 Feb 2018 22:01:53 +0000 (22:01 +0000)]
re PR fortran/59781 ([F03] Incorrect initialisation of derived type)

2018-02-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/59781
* gfortran.dg/derived_init_5.f90: New test.

From-SVN: r257917

6 years agore PR target/82851 (g++.dg/vect/slp-pr56812.cc, i386/avx2-vpaddq-3.c, i386/avx2-vpsub...
Jakub Jelinek [Thu, 22 Feb 2018 21:27:44 +0000 (22:27 +0100)]
re PR target/82851 (g++.dg/vect/slp-pr56812.cc, i386/avx2-vpaddq-3.c, i386/avx2-vpsubq-3.c fails)

PR target/82851
* gcc.target/i386/avx2-vpaddq-3.c: Add -mtune=generic to dg-options.
* gcc.target/i386/avx2-vpsubq-3.c: Likewise.

From-SVN: r257916

6 years agore PR target/81572 (gcc-7 regression: unnecessary vector regmove on compare)
Vladimir Makarov [Thu, 22 Feb 2018 21:17:51 +0000 (21:17 +0000)]
re PR target/81572 (gcc-7 regression: unnecessary vector regmove on compare)

2018-02-22  Vladimir Makarov  <vmakarov@redhat.com>

PR target/81572
* lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros.
* lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use
LRA_UNKNOWN_ALT.
* lra-constraints.c (curr_insn_transform): Set up
LRA_NON_CLOBBERED_ALT for moves processed on the fast path.  Use
LRA_UNKNOWN_ALT.
(remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT.
* lra-eliminations.c (spill_pseudos): Ditto.
(process_insn_for_elimination): Ditto.
* lra-lives.c (reg_early_clobber_p): Use the new macros.
* lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and
LRA_NON_CLOBBERED_ALT.

2018-02-22  Vladimir Makarov  <vmakarov@redhat.com>

PR target/81572
* gcc.target/powerpc/pr81572.c: New.

From-SVN: r257915

6 years agore PR go/84484 (libgo configure tests fail to find -latomic)
Andreas Schwab [Thu, 22 Feb 2018 19:49:04 +0000 (19:49 +0000)]
re PR go/84484 (libgo configure tests fail to find -latomic)

PR go/84484
    libgo: add support for riscv64

    Patch by Andreas Schwab.

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

* go.test/go-test.exp (go-set-goarch): Recognize riscv64-*-*.

From-SVN: r257914

6 years agoruntime: funcfileline: get missing function name from symbol table
Ian Lance Taylor [Thu, 22 Feb 2018 18:52:33 +0000 (18:52 +0000)]
runtime: funcfileline: get missing function name from symbol table

    Copy the idea of https://golang.org/cl/92756 to funcfileline, which is
    used by runtime.FuncForPC, runtime.(*Frames).Next, and others.

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

From-SVN: r257913

6 years agolibgo: add -L option for libatomic when using -pthread
Ian Lance Taylor [Thu, 22 Feb 2018 18:49:33 +0000 (18:49 +0000)]
libgo: add -L option for libatomic when using -pthread

    Fixes https://gcc.gnu.org/PR84484

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

From-SVN: r257911

6 years agoPR tree-optimization/84480 - bogus -Wstringop-truncation despite assignment with...
Martin Sebor [Thu, 22 Feb 2018 17:35:29 +0000 (17:35 +0000)]
PR tree-optimization/84480 - bogus -Wstringop-truncation despite assignment with an inlined string literal

gcc/ChangeLog:

PR tree-optimization/84480
* gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings
to maybe_diag_stxncpy_trunc.  Call it.
* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings
from gimple_fold_builtin_strcpy.  Print inlining stack.
(handle_builtin_stxncpy): Print inlining stack.
* tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare.

gcc/testsuite/ChangeLog:

PR tree-optimization/84480
* c-c++-common/Wstringop-truncation.c: Adjust text of expected warnings.
* g++.dg/warn/Wstringop-truncation-1.C: New test.

From-SVN: r257910

6 years agoi386: Add __x86_indirect_thunk_nt_reg for -fcf-protection -mcet
H.J. Lu [Thu, 22 Feb 2018 17:09:06 +0000 (17:09 +0000)]
i386: Add __x86_indirect_thunk_nt_reg for -fcf-protection -mcet

nocf_check attribute can be used with -fcf-protection -mcet to disable
control-flow check by adding NOTRACK prefix before indirect branch.
When -mindirect-branch=thunk-extern -mindirect-branch-register is added,
indirect branch via register, "notrack call/jmp reg", is converted to

    call/jmp __x86_indirect_thunk_nt_reg

When running on machines with CET enabled, __x86_indirect_thunk_nt_reg
can be updated to

    notrack jmp reg

at run-time to restore NOTRACK prefix in the original indirect branch.

Since we don't support -mindirect-branch=thunk-extern, CET and MPX at
the same time, -mindirect-branch=thunk-extern is disallowed with
-fcf-protection=branch and -fcheck-pointer-bounds.

Tested on i686 and x86-64.

gcc/

PR target/84176
* config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
error when -mindirect-branch=thunk-extern, -fcf-protection=branch
and -fcheck-pointer-bounds are used together.
(indirect_thunk_prefix): New enum.
(indirect_thunk_need_prefix): New function.
(indirect_thunk_name): Replace need_bnd_p with need_prefix.  Use
"_nt" instead of "_bnd" for NOTRACK prefix.
(output_indirect_thunk): Replace need_bnd_p with need_prefix.
(output_indirect_thunk_function): Likewise.
(): Likewise.
(ix86_code_end): Update output_indirect_thunk_function calls.
(ix86_output_indirect_branch_via_reg): Replace
ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix.
(ix86_output_indirect_branch_via_push): Likewise.
(ix86_output_function_return): Likewise.
* doc/invoke.texi: Document -mindirect-branch=thunk-extern is
incompatible with -fcf-protection=branch and
-fcheck-pointer-bounds.

gcc/testsuite/

PR target/84176
* gcc.target/i386/indirect-thunk-11.c: New test.
* gcc.target/i386/indirect-thunk-12.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-12.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-13.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-14.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-15.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-16.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-10.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-8.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-9.c: Likewise.

From-SVN: r257909

6 years agore PR target/83335 ([aarch64,ilp32] gcc.target/aarch64/asm-2.c ICEs since 255481)
Steve Ellcey [Thu, 22 Feb 2018 17:08:10 +0000 (17:08 +0000)]
re PR target/83335 ([aarch64,ilp32] gcc.target/aarch64/asm-2.c ICEs since 255481)

2018-02-22  Steve Ellcey  <sellcey@cavium.com>

PR target/83335
* gcc/testsuite/gcc.target/aarch64/asm-2.c: Add dg-error for
ILP32 mode.
* gcc/testsuite/gcc.target/aarch64/asm-4.c: New test.

From-SVN: r257908

6 years agore PR target/83335 ([aarch64,ilp32] gcc.target/aarch64/asm-2.c ICEs since 255481)
Steve Ellcey [Thu, 22 Feb 2018 17:06:31 +0000 (17:06 +0000)]
re PR target/83335 ([aarch64,ilp32] gcc.target/aarch64/asm-2.c ICEs since 255481)

2018-02-22  Steve Ellcey  <sellcey@cavium.com>

PR target/83335
* config/aarch64/aarch64.c (aarch64_print_address_internal):
Change gcc_assert call to output_operand_lossage.

From-SVN: r257907

6 years agoextend.texi (__builtin_extend_pointer): Document builtin.
Steve Ellcey [Thu, 22 Feb 2018 16:49:28 +0000 (16:49 +0000)]
extend.texi (__builtin_extend_pointer): Document builtin.

2018-02-22  Steve Ellcey  <sellcey@cavium.com>

* doc/extend.texi (__builtin_extend_pointer): Document builtin.

From-SVN: r257906

6 years agorx.c (rx_rtx_costs): New function.
DJ Delorie [Thu, 22 Feb 2018 16:36:48 +0000 (11:36 -0500)]
rx.c (rx_rtx_costs): New function.

gcc/
* config/rx/rx.c (rx_rtx_costs): New function.
(TARGET_RTX_COSTS): Override to use rx_rtx_costs.

Co-Authored-By: Oleg Endo <olegendo@gcc.gnu.org>
Co-Authored-By: Sebastian Perta <sebastian.perta@renesas.com>
From-SVN: r257905

6 years ago[ARM] Multilib mapping for Armv8-R
Thomas Preud'homme [Thu, 22 Feb 2018 16:31:56 +0000 (16:31 +0000)]
[ARM] Multilib mapping for Armv8-R

Due to there being no multilib mapping for Armv8-R, default multilib
builts for -march=armv4t with softfloat floating-point arithmetic is
being used. This patch maps it instead to the existing Armv7 multilibs.
Note that mapping for single-precision Armv8-R has been left out due to
there being no Arm implementation of that architecture variant.

2018-02-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs.

    gcc/testsuite/
    * gcc.target/arm/multilib.exp: Add tests for Armv8-R multilib mappings.

From-SVN: r257904

6 years agoPR 78534, 84509 Fix libgfortran API for PAUSE statement
Janne Blomqvist [Thu, 22 Feb 2018 16:14:21 +0000 (18:14 +0200)]
PR 78534, 84509 Fix libgfortran API for PAUSE statement

This patch changes the libgfortran API for the PAUSE statement. By
passing a GFC_INTEGER_8 it handles -fdefault-integer-8, and for the
character version passing the length as a size_t.

Regtested on x86_64-pc-linux-gnu, committed as obvious.

gcc/fortran/ChangeLog:

2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>

PR 78534
PR 84509
* trans-decl.c (gfc_build_builtin_function_decls): Pass
gfc_int8_type node to pause_numeric, size_type_node to
pause_string.
* trans-stmt.c (gfc_trans_pause): Likewise.

libgfortran/ChangeLog:

2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>

PR 78534
PR 84509
* runtime/pause.c (pause_numeric): Modify to take GFC_INTEGER_8
argument.
(pause_string): Modify to take size_t character length argument.

From-SVN: r257903

6 years agoinclhack.def (aix_stdlib_vec_malloc): New.
David Edelsohn [Thu, 22 Feb 2018 16:12:26 +0000 (16:12 +0000)]
inclhack.def (aix_stdlib_vec_malloc): New.

* inclhack.def (aix_stdlib_vec_malloc): New.
(aix_stdlib_vec_calloc): New.
* fixincl.x: Regenerate.
* tests/base/stdlib.h [AIX_STDLIB_VEC_MALLOC]: New test.
[AIX_STDLIB_VEC_CALLOC]: New test.

From-SVN: r257902

6 years agoAdd "native" as a valid option value for -mcpu/-mtune= on arm (PR driver/83193).
Martin Liska [Thu, 22 Feb 2018 12:16:58 +0000 (13:16 +0100)]
Add "native" as a valid option value for -mcpu/-mtune= on arm (PR driver/83193).

2018-02-22  Martin Liska  <mliska@suse.cz>

PR driver/83193
* common/config/arm/arm-common.c (arm_print_hint_for_cpu_option):
Add "native" as a possible value.

From-SVN: r257900

6 years agore PR c++/84493 (ICE with invalid cast)
Marek Polacek [Thu, 22 Feb 2018 11:18:37 +0000 (11:18 +0000)]
re PR c++/84493 (ICE with invalid cast)

PR c++/84493
* parser.c (cp_parser_braced_list): Use require_open instead of
consume_open.

* g++.dg/parse/error59.C: New test.

From-SVN: r257899

6 years ago[testsuite] Require et alloca for pr82210.c
Tom de Vries [Thu, 22 Feb 2018 11:01:16 +0000 (11:01 +0000)]
[testsuite] Require et alloca for pr82210.c

2018-02-22  Tom de Vries  <tom@codesourcery.com>

* gcc.c-torture/execute/pr82210.c: Require effective target alloca.

From-SVN: r257898

6 years agore PR c++/77655 (ICE on invalid c++ code on x86_64-linux-gnu (internal compiler error...
Paolo Carlini [Thu, 22 Feb 2018 10:44:04 +0000 (10:44 +0000)]
re PR c++/77655 (ICE on invalid c++ code on x86_64-linux-gnu (internal compiler error: Segmentation fault (program cc1plus)))

2018-02-22  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/77655
* g++.dg/cpp0x/pr77655.C: New.

From-SVN: r257896

6 years agore PR c++/84496 (Internal compiler error with lambda, static and auto since r236615)
Jakub Jelinek [Thu, 22 Feb 2018 09:55:32 +0000 (10:55 +0100)]
re PR c++/84496 (Internal compiler error with lambda, static and auto since r236615)

PR c++/84496
* g++.dg/cpp1y/pr84496.C: New test.

From-SVN: r257895

6 years agoCharacter length cleanup for Coarray Fortran library
Janne Blomqvist [Thu, 22 Feb 2018 09:44:31 +0000 (11:44 +0200)]
Character length cleanup for Coarray Fortran library

Following the change to use size_t for Fortran character lengths (PR
78534), this patch modifies the Coarray ABI in a similar way. The
single-image implementation that is included in libgfortran is
updated, but this needs corresponding work in the OpenCoarray library
as well for multi-image support. I also fixed the types for the STOP
and ERROR STOP implementation in libgfortran, as the calling of them
is somewhat intertwined with the calling of the corresponding CAF
functions. I'll send the OpenCoarray changes as a separate pull
request to the OpenCoarrays repository.

Regtested on x86_64-pc-linux-gnu.

gcc/fortran/ChangeLog:

2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>

* gfortran.texi: Update Coarray API description.
* trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
character lengths, int for exit codes.
(generate_coarray_sym_init): Use size_t for character length.
* trans-intrinsic.c (conv_co_collective): Likewise.
* trans-stmt.c (gfc_trans_lock_unlock): Likewise.
(gfc_trans_event_post_wait): Likewise.
(gfc_trans_sync): Likewise.
(gfc_trans_stop): Use size_t for character lengths, int for exit
codes.

libgfortran/ChangeLog:

2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>

* libgfortran.h (stop_string): Use size_t for character length.
* runtime/stop.c (stop_string): Likewise.
(error_stop_string): Likewise.
(stop_numeric): Use int for exit code.
(error_stop_numeric): Likewise.
* caf/libcaf.h: Remove stdint.h include.
(_gfortran_caf_register): Use size_t for character length.
(_gfortran_caf_deregister): Likewise.
(_gfortran_caf_sync_all): Likewise.
(_gfortran_caf_sync_memory): Likewise.
(_gfortran_caf_sync_images): Likewise.
(_gfortran_caf_stop_numeric): Use int for exit code.
(_gfortran_caf_stop_str): Use size_t for character length.
(_gfortran_caf_error_stop_str): Likewise.
(_gfortran_caf_error_stop): Use int for exit code.
(_gfortran_caf_co_broadcast): Use size_t for character length.
(_gfortran_caf_co_sum): Likewise.
(_gfortran_caf_co_min): Likewise.
(_gfortran_caf_co_max): Likewise.
(_gfortran_caf_co_reduce): Likewise.
(_gfortran_caf_lock): Likewise.
(_gfortran_caf_unlock): Likewise.
(_gfortran_caf_event_post): Likewise.
(_gfortran_caf_event_wait): Likewise.
* caf/mpi.c (_gfortran_caf_register): Update implementation to
match prototype.
(_gfortran_caf_deregister): Likewise.
(_gfortran_caf_sync_all): Likewise.
(_gfortran_caf_sync_images): Likewise.
(_gfortran_caf_error_stop_str): Likewise.
(_gfortran_caf_error_stop): Likewise.
* caf/single.c (caf_internal_error): Likewise.
(_gfortran_caf_register): Likewise.
(_gfortran_caf_deregister): Likewise.
(_gfortran_caf_sync_all): Likewise.
(_gfortran_caf_sync_memory): Likewise.
(_gfortran_caf_sync_images): Likewise.
(_gfortran_caf_stop_numeric): Likewise.
(_gfortran_caf_stop_str): Likewise.
(_gfortran_caf_error_stop_str): Likewise.
(_gfortran_caf_error_stop): Likewise.
(_gfortran_caf_co_broadcast): Likewise.
(_gfortran_caf_co_sum): Likewise.
(_gfortran_caf_co_min): Likewise.
(_gfortran_caf_co_max): Likewise.
(_gfortran_caf_co_reduce): Likewise.
(_gfortran_caf_event_post): Likewise.
(_gfortran_caf_event_wait): Likewise.
(_gfortran_caf_lock): Likewise.
(_gfortran_caf_unlock): Likewise.

From-SVN: r257894

6 years agoAdd "native" as a valid option value for -march= on i386 (PR driver/83193).
Martin Liska [Thu, 22 Feb 2018 08:50:41 +0000 (09:50 +0100)]
Add "native" as a valid option value for -march= on i386 (PR driver/83193).

2018-02-22  Martin Liska  <mliska@suse.cz>

PR driver/83193
* config/i386/i386.c (ix86_option_override_internal):
Add "native" as a possible value for -march and -mtune.

From-SVN: r257893

6 years agore PR c++/84502 (Argument corruption when passing empty templated struct)
Jakub Jelinek [Thu, 22 Feb 2018 08:29:56 +0000 (09:29 +0100)]
re PR c++/84502 (Argument corruption when passing empty templated struct)

PR target/84502
* stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag
to all type variants.

* g++.dg/torture/pr84502.C: New test.

From-SVN: r257892

6 years agore PR tree-optimization/84503 (store-merging miscompilation on powerpc64 with -O3...
Jakub Jelinek [Thu, 22 Feb 2018 08:28:42 +0000 (09:28 +0100)]
re PR tree-optimization/84503 (store-merging miscompilation on powerpc64 with -O3 since r241789)

PR tree-optimization/84503
* gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute
width as info->bitpos + info->bitsize - start.
(merged_store_group::merge_overlapping): Simplify width computation.
(check_no_overlap): New function.
(imm_store_chain_info::try_coalesce_bswap): Compute expected
start + width and last_order of the group, fail if check_no_overlap
fails.
(imm_store_chain_info::coalesce_immediate_stores): Don't merge info
to group if check_no_overlap fails.

* gcc.dg/pr84503-1.c: New test.
* gcc.dg/pr84503-2.c: New test.

From-SVN: r257891

6 years agors6000: Delete meaningless arguments to define_{expand,split,peephole2}
Segher Boessenkool [Thu, 22 Feb 2018 01:09:18 +0000 (02:09 +0100)]
rs6000: Delete meaningless arguments to define_{expand,split,peephole2}

This removes the (usually empty) constraint arguments to define_expand,
define_split, and define_peephole2: this argument is meaningless and
just noise.

* config/rs6000/altivec.md: Delete contraint arguments to
define_expand, define_split, and define_peephole2, and in
define_insn_and_split if always unused.
* config/rs6000/darwin.md: Ditto.
* config/rs6000/dfp.md: Ditto.
* config/rs6000/rs6000.md: Ditto.
* config/rs6000/sync.md: Ditto.
* config/rs6000/vector.md: Ditto.
* config/rs6000/vsx.md: Ditto.

From-SVN: r257890

6 years agors6000: Use brace blocks in define_insn
Segher Boessenkool [Thu, 22 Feb 2018 01:08:02 +0000 (02:08 +0100)]
rs6000: Use brace blocks in define_insn

This patch changes the remaining cases in our machine description files
to use brace blocks instead of double-quoted strings as the output
control string.  This increases readability by making the blocks look
more like normal C code, mostly because backslash quoting is no longer
needed.  It also removes such quoting where it was still there (usually
harmless but always confusing). and it writes "\n\t" as "\;" in one
place where we didn't already.

* config/rs6000/altivec.md: Write output control strings as braced
blocks instead of double-quoted strings.
* config/rs6000/darwin.md: Ditto.
* config/rs6000/rs6000.md: Ditto.
* config/rs6000/vector.md: Ditto.
* config/rs6000/vsx.md: Ditto.

From-SVN: r257889

6 years agoDaily bump.
GCC Administrator [Thu, 22 Feb 2018 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r257887

6 years agoPR c++/84314 - ICE with templates and fastcall attribute.
Jason Merrill [Wed, 21 Feb 2018 22:12:08 +0000 (17:12 -0500)]
PR c++/84314 - ICE with templates and fastcall attribute.

* attribs.c (build_type_attribute_qual_variant): Remove assert.

From-SVN: r257883